{-# 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.Config.ListDiscoveredResources
(
listDiscoveredResources
, ListDiscoveredResources
, ldrResourceIds
, ldrResourceName
, ldrIncludeDeletedResources
, ldrNextToken
, ldrLimit
, ldrResourceType
, listDiscoveredResourcesResponse
, ListDiscoveredResourcesResponse
, ldrrsNextToken
, ldrrsResourceIdentifiers
, ldrrsResponseStatus
) where
import Network.AWS.Config.Types
import Network.AWS.Config.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListDiscoveredResources = ListDiscoveredResources'
{ _ldrResourceIds :: !(Maybe [Text])
, _ldrResourceName :: !(Maybe Text)
, _ldrIncludeDeletedResources :: !(Maybe Bool)
, _ldrNextToken :: !(Maybe Text)
, _ldrLimit :: !(Maybe Nat)
, _ldrResourceType :: !ResourceType
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listDiscoveredResources
:: ResourceType
-> ListDiscoveredResources
listDiscoveredResources pResourceType_ =
ListDiscoveredResources'
{ _ldrResourceIds = Nothing
, _ldrResourceName = Nothing
, _ldrIncludeDeletedResources = Nothing
, _ldrNextToken = Nothing
, _ldrLimit = Nothing
, _ldrResourceType = pResourceType_
}
ldrResourceIds :: Lens' ListDiscoveredResources [Text]
ldrResourceIds = lens _ldrResourceIds (\ s a -> s{_ldrResourceIds = a}) . _Default . _Coerce
ldrResourceName :: Lens' ListDiscoveredResources (Maybe Text)
ldrResourceName = lens _ldrResourceName (\ s a -> s{_ldrResourceName = a})
ldrIncludeDeletedResources :: Lens' ListDiscoveredResources (Maybe Bool)
ldrIncludeDeletedResources = lens _ldrIncludeDeletedResources (\ s a -> s{_ldrIncludeDeletedResources = a})
ldrNextToken :: Lens' ListDiscoveredResources (Maybe Text)
ldrNextToken = lens _ldrNextToken (\ s a -> s{_ldrNextToken = a})
ldrLimit :: Lens' ListDiscoveredResources (Maybe Natural)
ldrLimit = lens _ldrLimit (\ s a -> s{_ldrLimit = a}) . mapping _Nat
ldrResourceType :: Lens' ListDiscoveredResources ResourceType
ldrResourceType = lens _ldrResourceType (\ s a -> s{_ldrResourceType = a})
instance AWSPager ListDiscoveredResources where
page rq rs
| stop (rs ^. ldrrsNextToken) = Nothing
| stop (rs ^. ldrrsResourceIdentifiers) = Nothing
| otherwise =
Just $ rq & ldrNextToken .~ rs ^. ldrrsNextToken
instance AWSRequest ListDiscoveredResources where
type Rs ListDiscoveredResources =
ListDiscoveredResourcesResponse
request = postJSON config
response
= receiveJSON
(\ s h x ->
ListDiscoveredResourcesResponse' <$>
(x .?> "nextToken") <*>
(x .?> "resourceIdentifiers" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable ListDiscoveredResources where
instance NFData ListDiscoveredResources where
instance ToHeaders ListDiscoveredResources where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("StarlingDoveService.ListDiscoveredResources" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListDiscoveredResources where
toJSON ListDiscoveredResources'{..}
= object
(catMaybes
[("resourceIds" .=) <$> _ldrResourceIds,
("resourceName" .=) <$> _ldrResourceName,
("includeDeletedResources" .=) <$>
_ldrIncludeDeletedResources,
("nextToken" .=) <$> _ldrNextToken,
("limit" .=) <$> _ldrLimit,
Just ("resourceType" .= _ldrResourceType)])
instance ToPath ListDiscoveredResources where
toPath = const "/"
instance ToQuery ListDiscoveredResources where
toQuery = const mempty
data ListDiscoveredResourcesResponse = ListDiscoveredResourcesResponse'
{ _ldrrsNextToken :: !(Maybe Text)
, _ldrrsResourceIdentifiers :: !(Maybe [ResourceIdentifier])
, _ldrrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listDiscoveredResourcesResponse
:: Int
-> ListDiscoveredResourcesResponse
listDiscoveredResourcesResponse pResponseStatus_ =
ListDiscoveredResourcesResponse'
{ _ldrrsNextToken = Nothing
, _ldrrsResourceIdentifiers = Nothing
, _ldrrsResponseStatus = pResponseStatus_
}
ldrrsNextToken :: Lens' ListDiscoveredResourcesResponse (Maybe Text)
ldrrsNextToken = lens _ldrrsNextToken (\ s a -> s{_ldrrsNextToken = a})
ldrrsResourceIdentifiers :: Lens' ListDiscoveredResourcesResponse [ResourceIdentifier]
ldrrsResourceIdentifiers = lens _ldrrsResourceIdentifiers (\ s a -> s{_ldrrsResourceIdentifiers = a}) . _Default . _Coerce
ldrrsResponseStatus :: Lens' ListDiscoveredResourcesResponse Int
ldrrsResponseStatus = lens _ldrrsResponseStatus (\ s a -> s{_ldrrsResponseStatus = a})
instance NFData ListDiscoveredResourcesResponse where