module Network.AWS.SSM.ListAssociations
(
listAssociations
, ListAssociations
, laAssociationFilterList
, laNextToken
, laMaxResults
, listAssociationsResponse
, ListAssociationsResponse
, larsNextToken
, larsAssociations
, larsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.SSM.Types
import Network.AWS.SSM.Types.Product
data ListAssociations = ListAssociations'
{ _laAssociationFilterList :: !(Maybe (List1 AssociationFilter))
, _laNextToken :: !(Maybe Text)
, _laMaxResults :: !(Maybe Nat)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listAssociations
:: ListAssociations
listAssociations =
ListAssociations'
{ _laAssociationFilterList = Nothing
, _laNextToken = Nothing
, _laMaxResults = Nothing
}
laAssociationFilterList :: Lens' ListAssociations (Maybe (NonEmpty AssociationFilter))
laAssociationFilterList = lens _laAssociationFilterList (\ s a -> s{_laAssociationFilterList = a}) . mapping _List1;
laNextToken :: Lens' ListAssociations (Maybe Text)
laNextToken = lens _laNextToken (\ s a -> s{_laNextToken = a});
laMaxResults :: Lens' ListAssociations (Maybe Natural)
laMaxResults = lens _laMaxResults (\ s a -> s{_laMaxResults = a}) . mapping _Nat;
instance AWSPager ListAssociations where
page rq rs
| stop (rs ^. larsNextToken) = Nothing
| stop (rs ^. larsAssociations) = Nothing
| otherwise =
Just $ rq & laNextToken .~ rs ^. larsNextToken
instance AWSRequest ListAssociations where
type Rs ListAssociations = ListAssociationsResponse
request = postJSON ssm
response
= receiveJSON
(\ s h x ->
ListAssociationsResponse' <$>
(x .?> "NextToken") <*>
(x .?> "Associations" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable ListAssociations where
instance NFData ListAssociations where
instance ToHeaders ListAssociations where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonSSM.ListAssociations" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListAssociations where
toJSON ListAssociations'{..}
= object
(catMaybes
[("AssociationFilterList" .=) <$>
_laAssociationFilterList,
("NextToken" .=) <$> _laNextToken,
("MaxResults" .=) <$> _laMaxResults])
instance ToPath ListAssociations where
toPath = const "/"
instance ToQuery ListAssociations where
toQuery = const mempty
data ListAssociationsResponse = ListAssociationsResponse'
{ _larsNextToken :: !(Maybe Text)
, _larsAssociations :: !(Maybe [Association])
, _larsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listAssociationsResponse
:: Int
-> ListAssociationsResponse
listAssociationsResponse pResponseStatus_ =
ListAssociationsResponse'
{ _larsNextToken = Nothing
, _larsAssociations = Nothing
, _larsResponseStatus = pResponseStatus_
}
larsNextToken :: Lens' ListAssociationsResponse (Maybe Text)
larsNextToken = lens _larsNextToken (\ s a -> s{_larsNextToken = a});
larsAssociations :: Lens' ListAssociationsResponse [Association]
larsAssociations = lens _larsAssociations (\ s a -> s{_larsAssociations = a}) . _Default . _Coerce;
larsResponseStatus :: Lens' ListAssociationsResponse Int
larsResponseStatus = lens _larsResponseStatus (\ s a -> s{_larsResponseStatus = a});
instance NFData ListAssociationsResponse where