{-# 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
, sAcceptLanguage
, sAccessLevelFilter
, sPageToken
, sPageSize
, 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'
{ _sAcceptLanguage :: !(Maybe Text)
, _sAccessLevelFilter :: !(Maybe AccessLevelFilter)
, _sPageToken :: !(Maybe Text)
, _sPageSize :: !(Maybe Nat)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
scanProvisionedProducts
:: ScanProvisionedProducts
scanProvisionedProducts =
ScanProvisionedProducts'
{ _sAcceptLanguage = Nothing
, _sAccessLevelFilter = Nothing
, _sPageToken = Nothing
, _sPageSize = Nothing
}
sAcceptLanguage :: Lens' ScanProvisionedProducts (Maybe Text)
sAcceptLanguage = lens _sAcceptLanguage (\ s a -> s{_sAcceptLanguage = a})
sAccessLevelFilter :: Lens' ScanProvisionedProducts (Maybe AccessLevelFilter)
sAccessLevelFilter = lens _sAccessLevelFilter (\ s a -> s{_sAccessLevelFilter = a})
sPageToken :: Lens' ScanProvisionedProducts (Maybe Text)
sPageToken = lens _sPageToken (\ s a -> s{_sPageToken = a})
sPageSize :: Lens' ScanProvisionedProducts (Maybe Natural)
sPageSize = lens _sPageSize (\ s a -> s{_sPageSize = 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 where
instance NFData ScanProvisionedProducts where
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" .=) <$> _sAcceptLanguage,
("AccessLevelFilter" .=) <$> _sAccessLevelFilter,
("PageToken" .=) <$> _sPageToken,
("PageSize" .=) <$> _sPageSize])
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 where