{-# 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 #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.Config.ListDiscoveredResources -- Copyright : (c) 2013-2018 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Accepts a resource type and returns a list of resource identifiers for the resources of that type. A resource identifier includes the resource type, ID, and (if available) the custom resource name. The results consist of resources that AWS Config has discovered, including those that AWS Config is not currently recording. You can narrow the results to include only resources that have specific resource IDs or a resource name. -- -- -- The response is paginated. By default, AWS Config lists 100 resource identifiers on each page. You can customize this number with the @limit@ parameter. The response includes a @nextToken@ string. To get the next page of results, run the request again and specify the string for the @nextToken@ parameter. -- -- -- This operation returns paginated results. module Network.AWS.Config.ListDiscoveredResources ( -- * Creating a Request listDiscoveredResources , ListDiscoveredResources -- * Request Lenses , ldrResourceIds , ldrResourceName , ldrIncludeDeletedResources , ldrNextToken , ldrLimit , ldrResourceType -- * Destructuring the Response , listDiscoveredResourcesResponse , ListDiscoveredResourcesResponse -- * Response Lenses , 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 -- | -- -- -- -- /See:/ 'listDiscoveredResources' smart constructor. 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) -- | Creates a value of 'ListDiscoveredResources' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'ldrResourceIds' - The IDs of only those resources that you want AWS Config to list in the response. If you do not specify this parameter, AWS Config lists all resources of the specified type that it has discovered. -- -- * 'ldrResourceName' - The custom name of only those resources that you want AWS Config to list in the response. If you do not specify this parameter, AWS Config lists all resources of the specified type that it has discovered. -- -- * 'ldrIncludeDeletedResources' - Specifies whether AWS Config includes deleted resources in the results. By default, deleted resources are not included. -- -- * 'ldrNextToken' - The @nextToken@ string returned on a previous page that you use to get the next page of results in a paginated response. -- -- * 'ldrLimit' - The maximum number of resource identifiers returned on each page. The default is 100. You cannot specify a number greater than 100. If you specify 0, AWS Config uses the default. -- -- * 'ldrResourceType' - The type of resources that you want AWS Config to list in the response. listDiscoveredResources :: ResourceType -- ^ 'ldrResourceType' -> ListDiscoveredResources listDiscoveredResources pResourceType_ = ListDiscoveredResources' { _ldrResourceIds = Nothing , _ldrResourceName = Nothing , _ldrIncludeDeletedResources = Nothing , _ldrNextToken = Nothing , _ldrLimit = Nothing , _ldrResourceType = pResourceType_ } -- | The IDs of only those resources that you want AWS Config to list in the response. If you do not specify this parameter, AWS Config lists all resources of the specified type that it has discovered. ldrResourceIds :: Lens' ListDiscoveredResources [Text] ldrResourceIds = lens _ldrResourceIds (\ s a -> s{_ldrResourceIds = a}) . _Default . _Coerce -- | The custom name of only those resources that you want AWS Config to list in the response. If you do not specify this parameter, AWS Config lists all resources of the specified type that it has discovered. ldrResourceName :: Lens' ListDiscoveredResources (Maybe Text) ldrResourceName = lens _ldrResourceName (\ s a -> s{_ldrResourceName = a}) -- | Specifies whether AWS Config includes deleted resources in the results. By default, deleted resources are not included. ldrIncludeDeletedResources :: Lens' ListDiscoveredResources (Maybe Bool) ldrIncludeDeletedResources = lens _ldrIncludeDeletedResources (\ s a -> s{_ldrIncludeDeletedResources = a}) -- | The @nextToken@ string returned on a previous page that you use to get the next page of results in a paginated response. ldrNextToken :: Lens' ListDiscoveredResources (Maybe Text) ldrNextToken = lens _ldrNextToken (\ s a -> s{_ldrNextToken = a}) -- | The maximum number of resource identifiers returned on each page. The default is 100. You cannot specify a number greater than 100. If you specify 0, AWS Config uses the default. ldrLimit :: Lens' ListDiscoveredResources (Maybe Natural) ldrLimit = lens _ldrLimit (\ s a -> s{_ldrLimit = a}) . mapping _Nat -- | The type of resources that you want AWS Config to list in the response. 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 -- | -- -- -- -- /See:/ 'listDiscoveredResourcesResponse' smart constructor. data ListDiscoveredResourcesResponse = ListDiscoveredResourcesResponse' { _ldrrsNextToken :: !(Maybe Text) , _ldrrsResourceIdentifiers :: !(Maybe [ResourceIdentifier]) , _ldrrsResponseStatus :: !Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'ListDiscoveredResourcesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'ldrrsNextToken' - The string that you use in a subsequent request to get the next page of results in a paginated response. -- -- * 'ldrrsResourceIdentifiers' - The details that identify a resource that is discovered by AWS Config, including the resource type, ID, and (if available) the custom resource name. -- -- * 'ldrrsResponseStatus' - -- | The response status code. listDiscoveredResourcesResponse :: Int -- ^ 'ldrrsResponseStatus' -> ListDiscoveredResourcesResponse listDiscoveredResourcesResponse pResponseStatus_ = ListDiscoveredResourcesResponse' { _ldrrsNextToken = Nothing , _ldrrsResourceIdentifiers = Nothing , _ldrrsResponseStatus = pResponseStatus_ } -- | The string that you use in a subsequent request to get the next page of results in a paginated response. ldrrsNextToken :: Lens' ListDiscoveredResourcesResponse (Maybe Text) ldrrsNextToken = lens _ldrrsNextToken (\ s a -> s{_ldrrsNextToken = a}) -- | The details that identify a resource that is discovered by AWS Config, including the resource type, ID, and (if available) the custom resource name. ldrrsResourceIdentifiers :: Lens' ListDiscoveredResourcesResponse [ResourceIdentifier] ldrrsResourceIdentifiers = lens _ldrrsResourceIdentifiers (\ s a -> s{_ldrrsResourceIdentifiers = a}) . _Default . _Coerce -- | -- | The response status code. ldrrsResponseStatus :: Lens' ListDiscoveredResourcesResponse Int ldrrsResponseStatus = lens _ldrrsResponseStatus (\ s a -> s{_ldrrsResponseStatus = a}) instance NFData ListDiscoveredResourcesResponse where