{-# 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.ListPublishedSchemaARNs
(
listPublishedSchemaARNs
, ListPublishedSchemaARNs
, lpsaNextToken
, lpsaSchemaARN
, lpsaMaxResults
, listPublishedSchemaARNsResponse
, ListPublishedSchemaARNsResponse
, lpsarsSchemaARNs
, lpsarsNextToken
, lpsarsResponseStatus
) 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 ListPublishedSchemaARNs = ListPublishedSchemaARNs'
{ _lpsaNextToken :: !(Maybe Text)
, _lpsaSchemaARN :: !(Maybe Text)
, _lpsaMaxResults :: !(Maybe Nat)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listPublishedSchemaARNs
:: ListPublishedSchemaARNs
listPublishedSchemaARNs =
ListPublishedSchemaARNs'
{ _lpsaNextToken = Nothing
, _lpsaSchemaARN = Nothing
, _lpsaMaxResults = Nothing
}
lpsaNextToken :: Lens' ListPublishedSchemaARNs (Maybe Text)
lpsaNextToken = lens _lpsaNextToken (\ s a -> s{_lpsaNextToken = a})
lpsaSchemaARN :: Lens' ListPublishedSchemaARNs (Maybe Text)
lpsaSchemaARN = lens _lpsaSchemaARN (\ s a -> s{_lpsaSchemaARN = a})
lpsaMaxResults :: Lens' ListPublishedSchemaARNs (Maybe Natural)
lpsaMaxResults = lens _lpsaMaxResults (\ s a -> s{_lpsaMaxResults = a}) . mapping _Nat
instance AWSPager ListPublishedSchemaARNs where
page rq rs
| stop (rs ^. lpsarsNextToken) = Nothing
| stop (rs ^. lpsarsSchemaARNs) = Nothing
| otherwise =
Just $ rq & lpsaNextToken .~ rs ^. lpsarsNextToken
instance AWSRequest ListPublishedSchemaARNs where
type Rs ListPublishedSchemaARNs =
ListPublishedSchemaARNsResponse
request = postJSON cloudDirectory
response
= receiveJSON
(\ s h x ->
ListPublishedSchemaARNsResponse' <$>
(x .?> "SchemaArns" .!@ mempty) <*>
(x .?> "NextToken")
<*> (pure (fromEnum s)))
instance Hashable ListPublishedSchemaARNs where
instance NFData ListPublishedSchemaARNs where
instance ToHeaders ListPublishedSchemaARNs where
toHeaders = const mempty
instance ToJSON ListPublishedSchemaARNs where
toJSON ListPublishedSchemaARNs'{..}
= object
(catMaybes
[("NextToken" .=) <$> _lpsaNextToken,
("SchemaArn" .=) <$> _lpsaSchemaARN,
("MaxResults" .=) <$> _lpsaMaxResults])
instance ToPath ListPublishedSchemaARNs where
toPath
= const
"/amazonclouddirectory/2017-01-11/schema/published"
instance ToQuery ListPublishedSchemaARNs where
toQuery = const mempty
data ListPublishedSchemaARNsResponse = ListPublishedSchemaARNsResponse'
{ _lpsarsSchemaARNs :: !(Maybe [Text])
, _lpsarsNextToken :: !(Maybe Text)
, _lpsarsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listPublishedSchemaARNsResponse
:: Int
-> ListPublishedSchemaARNsResponse
listPublishedSchemaARNsResponse pResponseStatus_ =
ListPublishedSchemaARNsResponse'
{ _lpsarsSchemaARNs = Nothing
, _lpsarsNextToken = Nothing
, _lpsarsResponseStatus = pResponseStatus_
}
lpsarsSchemaARNs :: Lens' ListPublishedSchemaARNsResponse [Text]
lpsarsSchemaARNs = lens _lpsarsSchemaARNs (\ s a -> s{_lpsarsSchemaARNs = a}) . _Default . _Coerce
lpsarsNextToken :: Lens' ListPublishedSchemaARNsResponse (Maybe Text)
lpsarsNextToken = lens _lpsarsNextToken (\ s a -> s{_lpsarsNextToken = a})
lpsarsResponseStatus :: Lens' ListPublishedSchemaARNsResponse Int
lpsarsResponseStatus = lens _lpsarsResponseStatus (\ s a -> s{_lpsarsResponseStatus = a})
instance NFData ListPublishedSchemaARNsResponse where