{-# 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.CloudDirectory.ListFacetNames
(
listFacetNames
, ListFacetNames
, lfnNextToken
, lfnMaxResults
, lfnSchemaARN
, listFacetNamesResponse
, ListFacetNamesResponse
, lfnrsNextToken
, lfnrsFacetNames
, lfnrsResponseStatus
) where
import Network.AWS.CloudDirectory.Types
import Network.AWS.CloudDirectory.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListFacetNames = ListFacetNames'
{ _lfnNextToken :: !(Maybe Text)
, _lfnMaxResults :: !(Maybe Nat)
, _lfnSchemaARN :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listFacetNames
:: Text
-> ListFacetNames
listFacetNames pSchemaARN_ =
ListFacetNames'
{ _lfnNextToken = Nothing
, _lfnMaxResults = Nothing
, _lfnSchemaARN = pSchemaARN_
}
lfnNextToken :: Lens' ListFacetNames (Maybe Text)
lfnNextToken = lens _lfnNextToken (\ s a -> s{_lfnNextToken = a})
lfnMaxResults :: Lens' ListFacetNames (Maybe Natural)
lfnMaxResults = lens _lfnMaxResults (\ s a -> s{_lfnMaxResults = a}) . mapping _Nat
lfnSchemaARN :: Lens' ListFacetNames Text
lfnSchemaARN = lens _lfnSchemaARN (\ s a -> s{_lfnSchemaARN = a})
instance AWSPager ListFacetNames where
page rq rs
| stop (rs ^. lfnrsNextToken) = Nothing
| stop (rs ^. lfnrsFacetNames) = Nothing
| otherwise =
Just $ rq & lfnNextToken .~ rs ^. lfnrsNextToken
instance AWSRequest ListFacetNames where
type Rs ListFacetNames = ListFacetNamesResponse
request = postJSON cloudDirectory
response
= receiveJSON
(\ s h x ->
ListFacetNamesResponse' <$>
(x .?> "NextToken") <*>
(x .?> "FacetNames" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable ListFacetNames where
instance NFData ListFacetNames where
instance ToHeaders ListFacetNames where
toHeaders ListFacetNames'{..}
= mconcat ["x-amz-data-partition" =# _lfnSchemaARN]
instance ToJSON ListFacetNames where
toJSON ListFacetNames'{..}
= object
(catMaybes
[("NextToken" .=) <$> _lfnNextToken,
("MaxResults" .=) <$> _lfnMaxResults])
instance ToPath ListFacetNames where
toPath
= const "/amazonclouddirectory/2017-01-11/facet/list"
instance ToQuery ListFacetNames where
toQuery = const mempty
data ListFacetNamesResponse = ListFacetNamesResponse'
{ _lfnrsNextToken :: !(Maybe Text)
, _lfnrsFacetNames :: !(Maybe [Text])
, _lfnrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listFacetNamesResponse
:: Int
-> ListFacetNamesResponse
listFacetNamesResponse pResponseStatus_ =
ListFacetNamesResponse'
{ _lfnrsNextToken = Nothing
, _lfnrsFacetNames = Nothing
, _lfnrsResponseStatus = pResponseStatus_
}
lfnrsNextToken :: Lens' ListFacetNamesResponse (Maybe Text)
lfnrsNextToken = lens _lfnrsNextToken (\ s a -> s{_lfnrsNextToken = a})
lfnrsFacetNames :: Lens' ListFacetNamesResponse [Text]
lfnrsFacetNames = lens _lfnrsFacetNames (\ s a -> s{_lfnrsFacetNames = a}) . _Default . _Coerce
lfnrsResponseStatus :: Lens' ListFacetNamesResponse Int
lfnrsResponseStatus = lens _lfnrsResponseStatus (\ s a -> s{_lfnrsResponseStatus = a})
instance NFData ListFacetNamesResponse where