{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.ServiceCatalog.ListResourcesForTagOption
(
listResourcesForTagOption
, ListResourcesForTagOption
, lrftoResourceType
, lrftoPageToken
, lrftoPageSize
, lrftoTagOptionId
, listResourcesForTagOptionResponse
, ListResourcesForTagOptionResponse
, lrftorsResourceDetails
, lrftorsPageToken
, lrftorsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.ServiceCatalog.Types
import Network.AWS.ServiceCatalog.Types.Product
data ListResourcesForTagOption = ListResourcesForTagOption'
{ _lrftoResourceType :: !(Maybe Text)
, _lrftoPageToken :: !(Maybe Text)
, _lrftoPageSize :: !(Maybe Nat)
, _lrftoTagOptionId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listResourcesForTagOption
:: Text
-> ListResourcesForTagOption
listResourcesForTagOption pTagOptionId_ =
ListResourcesForTagOption'
{ _lrftoResourceType = Nothing
, _lrftoPageToken = Nothing
, _lrftoPageSize = Nothing
, _lrftoTagOptionId = pTagOptionId_
}
lrftoResourceType :: Lens' ListResourcesForTagOption (Maybe Text)
lrftoResourceType = lens _lrftoResourceType (\ s a -> s{_lrftoResourceType = a})
lrftoPageToken :: Lens' ListResourcesForTagOption (Maybe Text)
lrftoPageToken = lens _lrftoPageToken (\ s a -> s{_lrftoPageToken = a})
lrftoPageSize :: Lens' ListResourcesForTagOption (Maybe Natural)
lrftoPageSize = lens _lrftoPageSize (\ s a -> s{_lrftoPageSize = a}) . mapping _Nat
lrftoTagOptionId :: Lens' ListResourcesForTagOption Text
lrftoTagOptionId = lens _lrftoTagOptionId (\ s a -> s{_lrftoTagOptionId = a})
instance AWSPager ListResourcesForTagOption where
page rq rs
| stop (rs ^. lrftorsPageToken) = Nothing
| stop (rs ^. lrftorsResourceDetails) = Nothing
| otherwise =
Just $ rq & lrftoPageToken .~ rs ^. lrftorsPageToken
instance AWSRequest ListResourcesForTagOption where
type Rs ListResourcesForTagOption =
ListResourcesForTagOptionResponse
request = postJSON serviceCatalog
response
= receiveJSON
(\ s h x ->
ListResourcesForTagOptionResponse' <$>
(x .?> "ResourceDetails" .!@ mempty) <*>
(x .?> "PageToken")
<*> (pure (fromEnum s)))
instance Hashable ListResourcesForTagOption where
instance NFData ListResourcesForTagOption where
instance ToHeaders ListResourcesForTagOption where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWS242ServiceCatalogService.ListResourcesForTagOption"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListResourcesForTagOption where
toJSON ListResourcesForTagOption'{..}
= object
(catMaybes
[("ResourceType" .=) <$> _lrftoResourceType,
("PageToken" .=) <$> _lrftoPageToken,
("PageSize" .=) <$> _lrftoPageSize,
Just ("TagOptionId" .= _lrftoTagOptionId)])
instance ToPath ListResourcesForTagOption where
toPath = const "/"
instance ToQuery ListResourcesForTagOption where
toQuery = const mempty
data ListResourcesForTagOptionResponse = ListResourcesForTagOptionResponse'
{ _lrftorsResourceDetails :: !(Maybe [ResourceDetail])
, _lrftorsPageToken :: !(Maybe Text)
, _lrftorsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listResourcesForTagOptionResponse
:: Int
-> ListResourcesForTagOptionResponse
listResourcesForTagOptionResponse pResponseStatus_ =
ListResourcesForTagOptionResponse'
{ _lrftorsResourceDetails = Nothing
, _lrftorsPageToken = Nothing
, _lrftorsResponseStatus = pResponseStatus_
}
lrftorsResourceDetails :: Lens' ListResourcesForTagOptionResponse [ResourceDetail]
lrftorsResourceDetails = lens _lrftorsResourceDetails (\ s a -> s{_lrftorsResourceDetails = a}) . _Default . _Coerce
lrftorsPageToken :: Lens' ListResourcesForTagOptionResponse (Maybe Text)
lrftorsPageToken = lens _lrftorsPageToken (\ s a -> s{_lrftorsPageToken = a})
lrftorsResponseStatus :: Lens' ListResourcesForTagOptionResponse Int
lrftorsResponseStatus = lens _lrftorsResponseStatus (\ s a -> s{_lrftorsResponseStatus = a})
instance NFData ListResourcesForTagOptionResponse
where