{-# 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.ListAppliedSchemaARNs
(
listAppliedSchemaARNs
, ListAppliedSchemaARNs
, lasaNextToken
, lasaSchemaARN
, lasaMaxResults
, lasaDirectoryARN
, listAppliedSchemaARNsResponse
, ListAppliedSchemaARNsResponse
, lasarsSchemaARNs
, lasarsNextToken
, lasarsResponseStatus
) 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 ListAppliedSchemaARNs = ListAppliedSchemaARNs'
{ _lasaNextToken :: !(Maybe Text)
, _lasaSchemaARN :: !(Maybe Text)
, _lasaMaxResults :: !(Maybe Nat)
, _lasaDirectoryARN :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listAppliedSchemaARNs
:: Text
-> ListAppliedSchemaARNs
listAppliedSchemaARNs pDirectoryARN_ =
ListAppliedSchemaARNs'
{ _lasaNextToken = Nothing
, _lasaSchemaARN = Nothing
, _lasaMaxResults = Nothing
, _lasaDirectoryARN = pDirectoryARN_
}
lasaNextToken :: Lens' ListAppliedSchemaARNs (Maybe Text)
lasaNextToken = lens _lasaNextToken (\ s a -> s{_lasaNextToken = a})
lasaSchemaARN :: Lens' ListAppliedSchemaARNs (Maybe Text)
lasaSchemaARN = lens _lasaSchemaARN (\ s a -> s{_lasaSchemaARN = a})
lasaMaxResults :: Lens' ListAppliedSchemaARNs (Maybe Natural)
lasaMaxResults = lens _lasaMaxResults (\ s a -> s{_lasaMaxResults = a}) . mapping _Nat
lasaDirectoryARN :: Lens' ListAppliedSchemaARNs Text
lasaDirectoryARN = lens _lasaDirectoryARN (\ s a -> s{_lasaDirectoryARN = a})
instance AWSPager ListAppliedSchemaARNs where
page rq rs
| stop (rs ^. lasarsNextToken) = Nothing
| stop (rs ^. lasarsSchemaARNs) = Nothing
| otherwise =
Just $ rq & lasaNextToken .~ rs ^. lasarsNextToken
instance AWSRequest ListAppliedSchemaARNs where
type Rs ListAppliedSchemaARNs =
ListAppliedSchemaARNsResponse
request = postJSON cloudDirectory
response
= receiveJSON
(\ s h x ->
ListAppliedSchemaARNsResponse' <$>
(x .?> "SchemaArns" .!@ mempty) <*>
(x .?> "NextToken")
<*> (pure (fromEnum s)))
instance Hashable ListAppliedSchemaARNs where
instance NFData ListAppliedSchemaARNs where
instance ToHeaders ListAppliedSchemaARNs where
toHeaders = const mempty
instance ToJSON ListAppliedSchemaARNs where
toJSON ListAppliedSchemaARNs'{..}
= object
(catMaybes
[("NextToken" .=) <$> _lasaNextToken,
("SchemaArn" .=) <$> _lasaSchemaARN,
("MaxResults" .=) <$> _lasaMaxResults,
Just ("DirectoryArn" .= _lasaDirectoryARN)])
instance ToPath ListAppliedSchemaARNs where
toPath
= const
"/amazonclouddirectory/2017-01-11/schema/applied"
instance ToQuery ListAppliedSchemaARNs where
toQuery = const mempty
data ListAppliedSchemaARNsResponse = ListAppliedSchemaARNsResponse'
{ _lasarsSchemaARNs :: !(Maybe [Text])
, _lasarsNextToken :: !(Maybe Text)
, _lasarsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listAppliedSchemaARNsResponse
:: Int
-> ListAppliedSchemaARNsResponse
listAppliedSchemaARNsResponse pResponseStatus_ =
ListAppliedSchemaARNsResponse'
{ _lasarsSchemaARNs = Nothing
, _lasarsNextToken = Nothing
, _lasarsResponseStatus = pResponseStatus_
}
lasarsSchemaARNs :: Lens' ListAppliedSchemaARNsResponse [Text]
lasarsSchemaARNs = lens _lasarsSchemaARNs (\ s a -> s{_lasarsSchemaARNs = a}) . _Default . _Coerce
lasarsNextToken :: Lens' ListAppliedSchemaARNsResponse (Maybe Text)
lasarsNextToken = lens _lasarsNextToken (\ s a -> s{_lasarsNextToken = a})
lasarsResponseStatus :: Lens' ListAppliedSchemaARNsResponse Int
lasarsResponseStatus = lens _lasarsResponseStatus (\ s a -> s{_lasarsResponseStatus = a})
instance NFData ListAppliedSchemaARNsResponse where