{-# 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.ScanProvisionedProducts
(
scanProvisionedProducts
, ScanProvisionedProducts
, sppAcceptLanguage
, sppAccessLevelFilter
, sppPageToken
, sppPageSize
, scanProvisionedProductsResponse
, ScanProvisionedProductsResponse
, spprsNextPageToken
, spprsProvisionedProducts
, spprsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.ServiceCatalog.Types
import Network.AWS.ServiceCatalog.Types.Product
data ScanProvisionedProducts = ScanProvisionedProducts'
{ _sppAcceptLanguage :: !(Maybe Text)
, _sppAccessLevelFilter :: !(Maybe AccessLevelFilter)
, _sppPageToken :: !(Maybe Text)
, _sppPageSize :: !(Maybe Nat)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
scanProvisionedProducts
:: ScanProvisionedProducts
scanProvisionedProducts =
ScanProvisionedProducts'
{ _sppAcceptLanguage = Nothing
, _sppAccessLevelFilter = Nothing
, _sppPageToken = Nothing
, _sppPageSize = Nothing
}
sppAcceptLanguage :: Lens' ScanProvisionedProducts (Maybe Text)
sppAcceptLanguage = lens _sppAcceptLanguage (\ s a -> s{_sppAcceptLanguage = a});
sppAccessLevelFilter :: Lens' ScanProvisionedProducts (Maybe AccessLevelFilter)
sppAccessLevelFilter = lens _sppAccessLevelFilter (\ s a -> s{_sppAccessLevelFilter = a});
sppPageToken :: Lens' ScanProvisionedProducts (Maybe Text)
sppPageToken = lens _sppPageToken (\ s a -> s{_sppPageToken = a});
sppPageSize :: Lens' ScanProvisionedProducts (Maybe Natural)
sppPageSize = lens _sppPageSize (\ s a -> s{_sppPageSize = a}) . mapping _Nat;
instance AWSRequest ScanProvisionedProducts where
type Rs ScanProvisionedProducts =
ScanProvisionedProductsResponse
request = postJSON serviceCatalog
response
= receiveJSON
(\ s h x ->
ScanProvisionedProductsResponse' <$>
(x .?> "NextPageToken") <*>
(x .?> "ProvisionedProducts" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable ScanProvisionedProducts
instance NFData ScanProvisionedProducts
instance ToHeaders ScanProvisionedProducts where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWS242ServiceCatalogService.ScanProvisionedProducts"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ScanProvisionedProducts where
toJSON ScanProvisionedProducts'{..}
= object
(catMaybes
[("AcceptLanguage" .=) <$> _sppAcceptLanguage,
("AccessLevelFilter" .=) <$> _sppAccessLevelFilter,
("PageToken" .=) <$> _sppPageToken,
("PageSize" .=) <$> _sppPageSize])
instance ToPath ScanProvisionedProducts where
toPath = const "/"
instance ToQuery ScanProvisionedProducts where
toQuery = const mempty
data ScanProvisionedProductsResponse = ScanProvisionedProductsResponse'
{ _spprsNextPageToken :: !(Maybe Text)
, _spprsProvisionedProducts :: !(Maybe [ProvisionedProductDetail])
, _spprsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
scanProvisionedProductsResponse
:: Int
-> ScanProvisionedProductsResponse
scanProvisionedProductsResponse pResponseStatus_ =
ScanProvisionedProductsResponse'
{ _spprsNextPageToken = Nothing
, _spprsProvisionedProducts = Nothing
, _spprsResponseStatus = pResponseStatus_
}
spprsNextPageToken :: Lens' ScanProvisionedProductsResponse (Maybe Text)
spprsNextPageToken = lens _spprsNextPageToken (\ s a -> s{_spprsNextPageToken = a});
spprsProvisionedProducts :: Lens' ScanProvisionedProductsResponse [ProvisionedProductDetail]
spprsProvisionedProducts = lens _spprsProvisionedProducts (\ s a -> s{_spprsProvisionedProducts = a}) . _Default . _Coerce;
spprsResponseStatus :: Lens' ScanProvisionedProductsResponse Int
spprsResponseStatus = lens _spprsResponseStatus (\ s a -> s{_spprsResponseStatus = a});
instance NFData ScanProvisionedProductsResponse