{-# 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.ListAcceptedPortfolioShares
(
listAcceptedPortfolioShares
, ListAcceptedPortfolioShares
, lapsAcceptLanguage
, lapsPageToken
, lapsPageSize
, listAcceptedPortfolioSharesResponse
, ListAcceptedPortfolioSharesResponse
, lapsrsNextPageToken
, lapsrsPortfolioDetails
, lapsrsResponseStatus
) 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 ListAcceptedPortfolioShares = ListAcceptedPortfolioShares'
{ _lapsAcceptLanguage :: !(Maybe Text)
, _lapsPageToken :: !(Maybe Text)
, _lapsPageSize :: !(Maybe Nat)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listAcceptedPortfolioShares
:: ListAcceptedPortfolioShares
listAcceptedPortfolioShares =
ListAcceptedPortfolioShares'
{ _lapsAcceptLanguage = Nothing
, _lapsPageToken = Nothing
, _lapsPageSize = Nothing
}
lapsAcceptLanguage :: Lens' ListAcceptedPortfolioShares (Maybe Text)
lapsAcceptLanguage = lens _lapsAcceptLanguage (\ s a -> s{_lapsAcceptLanguage = a})
lapsPageToken :: Lens' ListAcceptedPortfolioShares (Maybe Text)
lapsPageToken = lens _lapsPageToken (\ s a -> s{_lapsPageToken = a})
lapsPageSize :: Lens' ListAcceptedPortfolioShares (Maybe Natural)
lapsPageSize = lens _lapsPageSize (\ s a -> s{_lapsPageSize = a}) . mapping _Nat
instance AWSPager ListAcceptedPortfolioShares where
page rq rs
| stop (rs ^. lapsrsNextPageToken) = Nothing
| stop (rs ^. lapsrsPortfolioDetails) = Nothing
| otherwise =
Just $ rq &
lapsPageToken .~ rs ^. lapsrsNextPageToken
instance AWSRequest ListAcceptedPortfolioShares where
type Rs ListAcceptedPortfolioShares =
ListAcceptedPortfolioSharesResponse
request = postJSON serviceCatalog
response
= receiveJSON
(\ s h x ->
ListAcceptedPortfolioSharesResponse' <$>
(x .?> "NextPageToken") <*>
(x .?> "PortfolioDetails" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable ListAcceptedPortfolioShares where
instance NFData ListAcceptedPortfolioShares where
instance ToHeaders ListAcceptedPortfolioShares where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWS242ServiceCatalogService.ListAcceptedPortfolioShares"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListAcceptedPortfolioShares where
toJSON ListAcceptedPortfolioShares'{..}
= object
(catMaybes
[("AcceptLanguage" .=) <$> _lapsAcceptLanguage,
("PageToken" .=) <$> _lapsPageToken,
("PageSize" .=) <$> _lapsPageSize])
instance ToPath ListAcceptedPortfolioShares where
toPath = const "/"
instance ToQuery ListAcceptedPortfolioShares where
toQuery = const mempty
data ListAcceptedPortfolioSharesResponse = ListAcceptedPortfolioSharesResponse'
{ _lapsrsNextPageToken :: !(Maybe Text)
, _lapsrsPortfolioDetails :: !(Maybe [PortfolioDetail])
, _lapsrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listAcceptedPortfolioSharesResponse
:: Int
-> ListAcceptedPortfolioSharesResponse
listAcceptedPortfolioSharesResponse pResponseStatus_ =
ListAcceptedPortfolioSharesResponse'
{ _lapsrsNextPageToken = Nothing
, _lapsrsPortfolioDetails = Nothing
, _lapsrsResponseStatus = pResponseStatus_
}
lapsrsNextPageToken :: Lens' ListAcceptedPortfolioSharesResponse (Maybe Text)
lapsrsNextPageToken = lens _lapsrsNextPageToken (\ s a -> s{_lapsrsNextPageToken = a})
lapsrsPortfolioDetails :: Lens' ListAcceptedPortfolioSharesResponse [PortfolioDetail]
lapsrsPortfolioDetails = lens _lapsrsPortfolioDetails (\ s a -> s{_lapsrsPortfolioDetails = a}) . _Default . _Coerce
lapsrsResponseStatus :: Lens' ListAcceptedPortfolioSharesResponse Int
lapsrsResponseStatus = lens _lapsrsResponseStatus (\ s a -> s{_lapsrsResponseStatus = a})
instance NFData ListAcceptedPortfolioSharesResponse
where