{-# 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.SearchProvisionedProducts
(
searchProvisionedProducts
, SearchProvisionedProducts
, sppFilters
, sppSortOrder
, sppAcceptLanguage
, sppAccessLevelFilter
, sppPageToken
, sppPageSize
, sppSortBy
, searchProvisionedProductsResponse
, SearchProvisionedProductsResponse
, srsNextPageToken
, srsProvisionedProducts
, srsTotalResultsCount
, srsResponseStatus
) 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 SearchProvisionedProducts = SearchProvisionedProducts'
{ _sppFilters :: !(Maybe (Map ProvisionedProductViewFilterBy [Text]))
, _sppSortOrder :: !(Maybe SortOrder)
, _sppAcceptLanguage :: !(Maybe Text)
, _sppAccessLevelFilter :: !(Maybe AccessLevelFilter)
, _sppPageToken :: !(Maybe Text)
, _sppPageSize :: !(Maybe Nat)
, _sppSortBy :: !(Maybe Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
searchProvisionedProducts
:: SearchProvisionedProducts
searchProvisionedProducts =
SearchProvisionedProducts'
{ _sppFilters = Nothing
, _sppSortOrder = Nothing
, _sppAcceptLanguage = Nothing
, _sppAccessLevelFilter = Nothing
, _sppPageToken = Nothing
, _sppPageSize = Nothing
, _sppSortBy = Nothing
}
sppFilters :: Lens' SearchProvisionedProducts (HashMap ProvisionedProductViewFilterBy [Text])
sppFilters = lens _sppFilters (\ s a -> s{_sppFilters = a}) . _Default . _Map
sppSortOrder :: Lens' SearchProvisionedProducts (Maybe SortOrder)
sppSortOrder = lens _sppSortOrder (\ s a -> s{_sppSortOrder = a})
sppAcceptLanguage :: Lens' SearchProvisionedProducts (Maybe Text)
sppAcceptLanguage = lens _sppAcceptLanguage (\ s a -> s{_sppAcceptLanguage = a})
sppAccessLevelFilter :: Lens' SearchProvisionedProducts (Maybe AccessLevelFilter)
sppAccessLevelFilter = lens _sppAccessLevelFilter (\ s a -> s{_sppAccessLevelFilter = a})
sppPageToken :: Lens' SearchProvisionedProducts (Maybe Text)
sppPageToken = lens _sppPageToken (\ s a -> s{_sppPageToken = a})
sppPageSize :: Lens' SearchProvisionedProducts (Maybe Natural)
sppPageSize = lens _sppPageSize (\ s a -> s{_sppPageSize = a}) . mapping _Nat
sppSortBy :: Lens' SearchProvisionedProducts (Maybe Text)
sppSortBy = lens _sppSortBy (\ s a -> s{_sppSortBy = a})
instance AWSRequest SearchProvisionedProducts where
type Rs SearchProvisionedProducts =
SearchProvisionedProductsResponse
request = postJSON serviceCatalog
response
= receiveJSON
(\ s h x ->
SearchProvisionedProductsResponse' <$>
(x .?> "NextPageToken") <*>
(x .?> "ProvisionedProducts" .!@ mempty)
<*> (x .?> "TotalResultsCount")
<*> (pure (fromEnum s)))
instance Hashable SearchProvisionedProducts where
instance NFData SearchProvisionedProducts where
instance ToHeaders SearchProvisionedProducts where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWS242ServiceCatalogService.SearchProvisionedProducts"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON SearchProvisionedProducts where
toJSON SearchProvisionedProducts'{..}
= object
(catMaybes
[("Filters" .=) <$> _sppFilters,
("SortOrder" .=) <$> _sppSortOrder,
("AcceptLanguage" .=) <$> _sppAcceptLanguage,
("AccessLevelFilter" .=) <$> _sppAccessLevelFilter,
("PageToken" .=) <$> _sppPageToken,
("PageSize" .=) <$> _sppPageSize,
("SortBy" .=) <$> _sppSortBy])
instance ToPath SearchProvisionedProducts where
toPath = const "/"
instance ToQuery SearchProvisionedProducts where
toQuery = const mempty
data SearchProvisionedProductsResponse = SearchProvisionedProductsResponse'
{ _srsNextPageToken :: !(Maybe Text)
, _srsProvisionedProducts :: !(Maybe [ProvisionedProductAttribute])
, _srsTotalResultsCount :: !(Maybe Int)
, _srsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
searchProvisionedProductsResponse
:: Int
-> SearchProvisionedProductsResponse
searchProvisionedProductsResponse pResponseStatus_ =
SearchProvisionedProductsResponse'
{ _srsNextPageToken = Nothing
, _srsProvisionedProducts = Nothing
, _srsTotalResultsCount = Nothing
, _srsResponseStatus = pResponseStatus_
}
srsNextPageToken :: Lens' SearchProvisionedProductsResponse (Maybe Text)
srsNextPageToken = lens _srsNextPageToken (\ s a -> s{_srsNextPageToken = a})
srsProvisionedProducts :: Lens' SearchProvisionedProductsResponse [ProvisionedProductAttribute]
srsProvisionedProducts = lens _srsProvisionedProducts (\ s a -> s{_srsProvisionedProducts = a}) . _Default . _Coerce
srsTotalResultsCount :: Lens' SearchProvisionedProductsResponse (Maybe Int)
srsTotalResultsCount = lens _srsTotalResultsCount (\ s a -> s{_srsTotalResultsCount = a})
srsResponseStatus :: Lens' SearchProvisionedProductsResponse Int
srsResponseStatus = lens _srsResponseStatus (\ s a -> s{_srsResponseStatus = a})
instance NFData SearchProvisionedProductsResponse
where