{-# 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.ListTypedLinkFacetNames
(
listTypedLinkFacetNames
, ListTypedLinkFacetNames
, ltlfnNextToken
, ltlfnMaxResults
, ltlfnSchemaARN
, listTypedLinkFacetNamesResponse
, ListTypedLinkFacetNamesResponse
, ltlfnrsNextToken
, ltlfnrsFacetNames
, ltlfnrsResponseStatus
) 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 ListTypedLinkFacetNames = ListTypedLinkFacetNames'
{ _ltlfnNextToken :: !(Maybe Text)
, _ltlfnMaxResults :: !(Maybe Nat)
, _ltlfnSchemaARN :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listTypedLinkFacetNames
:: Text
-> ListTypedLinkFacetNames
listTypedLinkFacetNames pSchemaARN_ =
ListTypedLinkFacetNames'
{ _ltlfnNextToken = Nothing
, _ltlfnMaxResults = Nothing
, _ltlfnSchemaARN = pSchemaARN_
}
ltlfnNextToken :: Lens' ListTypedLinkFacetNames (Maybe Text)
ltlfnNextToken = lens _ltlfnNextToken (\ s a -> s{_ltlfnNextToken = a})
ltlfnMaxResults :: Lens' ListTypedLinkFacetNames (Maybe Natural)
ltlfnMaxResults = lens _ltlfnMaxResults (\ s a -> s{_ltlfnMaxResults = a}) . mapping _Nat
ltlfnSchemaARN :: Lens' ListTypedLinkFacetNames Text
ltlfnSchemaARN = lens _ltlfnSchemaARN (\ s a -> s{_ltlfnSchemaARN = a})
instance AWSPager ListTypedLinkFacetNames where
page rq rs
| stop (rs ^. ltlfnrsNextToken) = Nothing
| stop (rs ^. ltlfnrsFacetNames) = Nothing
| otherwise =
Just $ rq & ltlfnNextToken .~ rs ^. ltlfnrsNextToken
instance AWSRequest ListTypedLinkFacetNames where
type Rs ListTypedLinkFacetNames =
ListTypedLinkFacetNamesResponse
request = postJSON cloudDirectory
response
= receiveJSON
(\ s h x ->
ListTypedLinkFacetNamesResponse' <$>
(x .?> "NextToken") <*>
(x .?> "FacetNames" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable ListTypedLinkFacetNames where
instance NFData ListTypedLinkFacetNames where
instance ToHeaders ListTypedLinkFacetNames where
toHeaders ListTypedLinkFacetNames'{..}
= mconcat ["x-amz-data-partition" =# _ltlfnSchemaARN]
instance ToJSON ListTypedLinkFacetNames where
toJSON ListTypedLinkFacetNames'{..}
= object
(catMaybes
[("NextToken" .=) <$> _ltlfnNextToken,
("MaxResults" .=) <$> _ltlfnMaxResults])
instance ToPath ListTypedLinkFacetNames where
toPath
= const
"/amazonclouddirectory/2017-01-11/typedlink/facet/list"
instance ToQuery ListTypedLinkFacetNames where
toQuery = const mempty
data ListTypedLinkFacetNamesResponse = ListTypedLinkFacetNamesResponse'
{ _ltlfnrsNextToken :: !(Maybe Text)
, _ltlfnrsFacetNames :: !(Maybe [Text])
, _ltlfnrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listTypedLinkFacetNamesResponse
:: Int
-> ListTypedLinkFacetNamesResponse
listTypedLinkFacetNamesResponse pResponseStatus_ =
ListTypedLinkFacetNamesResponse'
{ _ltlfnrsNextToken = Nothing
, _ltlfnrsFacetNames = Nothing
, _ltlfnrsResponseStatus = pResponseStatus_
}
ltlfnrsNextToken :: Lens' ListTypedLinkFacetNamesResponse (Maybe Text)
ltlfnrsNextToken = lens _ltlfnrsNextToken (\ s a -> s{_ltlfnrsNextToken = a})
ltlfnrsFacetNames :: Lens' ListTypedLinkFacetNamesResponse [Text]
ltlfnrsFacetNames = lens _ltlfnrsFacetNames (\ s a -> s{_ltlfnrsFacetNames = a}) . _Default . _Coerce
ltlfnrsResponseStatus :: Lens' ListTypedLinkFacetNamesResponse Int
ltlfnrsResponseStatus = lens _ltlfnrsResponseStatus (\ s a -> s{_ltlfnrsResponseStatus = a})
instance NFData ListTypedLinkFacetNamesResponse where