{-# 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.ListObjectAttributes
(
listObjectAttributes
, ListObjectAttributes
, loaFacetFilter
, loaConsistencyLevel
, loaNextToken
, loaMaxResults
, loaDirectoryARN
, loaObjectReference
, listObjectAttributesResponse
, ListObjectAttributesResponse
, loarsNextToken
, loarsAttributes
, loarsResponseStatus
) 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 ListObjectAttributes = ListObjectAttributes'
{ _loaFacetFilter :: !(Maybe SchemaFacet)
, _loaConsistencyLevel :: !(Maybe ConsistencyLevel)
, _loaNextToken :: !(Maybe Text)
, _loaMaxResults :: !(Maybe Nat)
, _loaDirectoryARN :: !Text
, _loaObjectReference :: !ObjectReference
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listObjectAttributes
:: Text
-> ObjectReference
-> ListObjectAttributes
listObjectAttributes pDirectoryARN_ pObjectReference_ =
ListObjectAttributes'
{ _loaFacetFilter = Nothing
, _loaConsistencyLevel = Nothing
, _loaNextToken = Nothing
, _loaMaxResults = Nothing
, _loaDirectoryARN = pDirectoryARN_
, _loaObjectReference = pObjectReference_
}
loaFacetFilter :: Lens' ListObjectAttributes (Maybe SchemaFacet)
loaFacetFilter = lens _loaFacetFilter (\ s a -> s{_loaFacetFilter = a})
loaConsistencyLevel :: Lens' ListObjectAttributes (Maybe ConsistencyLevel)
loaConsistencyLevel = lens _loaConsistencyLevel (\ s a -> s{_loaConsistencyLevel = a})
loaNextToken :: Lens' ListObjectAttributes (Maybe Text)
loaNextToken = lens _loaNextToken (\ s a -> s{_loaNextToken = a})
loaMaxResults :: Lens' ListObjectAttributes (Maybe Natural)
loaMaxResults = lens _loaMaxResults (\ s a -> s{_loaMaxResults = a}) . mapping _Nat
loaDirectoryARN :: Lens' ListObjectAttributes Text
loaDirectoryARN = lens _loaDirectoryARN (\ s a -> s{_loaDirectoryARN = a})
loaObjectReference :: Lens' ListObjectAttributes ObjectReference
loaObjectReference = lens _loaObjectReference (\ s a -> s{_loaObjectReference = a})
instance AWSPager ListObjectAttributes where
page rq rs
| stop (rs ^. loarsNextToken) = Nothing
| stop (rs ^. loarsAttributes) = Nothing
| otherwise =
Just $ rq & loaNextToken .~ rs ^. loarsNextToken
instance AWSRequest ListObjectAttributes where
type Rs ListObjectAttributes =
ListObjectAttributesResponse
request = postJSON cloudDirectory
response
= receiveJSON
(\ s h x ->
ListObjectAttributesResponse' <$>
(x .?> "NextToken") <*>
(x .?> "Attributes" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable ListObjectAttributes where
instance NFData ListObjectAttributes where
instance ToHeaders ListObjectAttributes where
toHeaders ListObjectAttributes'{..}
= mconcat
["x-amz-consistency-level" =# _loaConsistencyLevel,
"x-amz-data-partition" =# _loaDirectoryARN]
instance ToJSON ListObjectAttributes where
toJSON ListObjectAttributes'{..}
= object
(catMaybes
[("FacetFilter" .=) <$> _loaFacetFilter,
("NextToken" .=) <$> _loaNextToken,
("MaxResults" .=) <$> _loaMaxResults,
Just ("ObjectReference" .= _loaObjectReference)])
instance ToPath ListObjectAttributes where
toPath
= const
"/amazonclouddirectory/2017-01-11/object/attributes"
instance ToQuery ListObjectAttributes where
toQuery = const mempty
data ListObjectAttributesResponse = ListObjectAttributesResponse'
{ _loarsNextToken :: !(Maybe Text)
, _loarsAttributes :: !(Maybe [AttributeKeyAndValue])
, _loarsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listObjectAttributesResponse
:: Int
-> ListObjectAttributesResponse
listObjectAttributesResponse pResponseStatus_ =
ListObjectAttributesResponse'
{ _loarsNextToken = Nothing
, _loarsAttributes = Nothing
, _loarsResponseStatus = pResponseStatus_
}
loarsNextToken :: Lens' ListObjectAttributesResponse (Maybe Text)
loarsNextToken = lens _loarsNextToken (\ s a -> s{_loarsNextToken = a})
loarsAttributes :: Lens' ListObjectAttributesResponse [AttributeKeyAndValue]
loarsAttributes = lens _loarsAttributes (\ s a -> s{_loarsAttributes = a}) . _Default . _Coerce
loarsResponseStatus :: Lens' ListObjectAttributesResponse Int
loarsResponseStatus = lens _loarsResponseStatus (\ s a -> s{_loarsResponseStatus = a})
instance NFData ListObjectAttributesResponse where