{-# 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.BatchGetResourceConfig -- Copyright : (c) 2013-2018 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Returns the current configuration for one or more requested resources. The operation also returns a list of resources that are not processed in the current request. If there are no unprocessed resources, the operation returns an empty unprocessedResourceKeys list. -- -- module Network.AWS.Config.BatchGetResourceConfig ( -- * Creating a Request batchGetResourceConfig , BatchGetResourceConfig -- * Request Lenses , bgrcResourceKeys -- * Destructuring the Response , batchGetResourceConfigResponse , BatchGetResourceConfigResponse -- * Response Lenses , bgrcrsBaseConfigurationItems , bgrcrsUnprocessedResourceKeys , bgrcrsResponseStatus ) where import Network.AWS.Config.Types import Network.AWS.Config.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | /See:/ 'batchGetResourceConfig' smart constructor. newtype BatchGetResourceConfig = BatchGetResourceConfig' { _bgrcResourceKeys :: List1 ResourceKey } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'BatchGetResourceConfig' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'bgrcResourceKeys' - A list of resource keys to be processed with the current request. Each element in the list consists of the resource type and resource ID. batchGetResourceConfig :: NonEmpty ResourceKey -- ^ 'bgrcResourceKeys' -> BatchGetResourceConfig batchGetResourceConfig pResourceKeys_ = BatchGetResourceConfig' {_bgrcResourceKeys = _List1 # pResourceKeys_} -- | A list of resource keys to be processed with the current request. Each element in the list consists of the resource type and resource ID. bgrcResourceKeys :: Lens' BatchGetResourceConfig (NonEmpty ResourceKey) bgrcResourceKeys = lens _bgrcResourceKeys (\ s a -> s{_bgrcResourceKeys = a}) . _List1 instance AWSRequest BatchGetResourceConfig where type Rs BatchGetResourceConfig = BatchGetResourceConfigResponse request = postJSON config response = receiveJSON (\ s h x -> BatchGetResourceConfigResponse' <$> (x .?> "baseConfigurationItems" .!@ mempty) <*> (x .?> "unprocessedResourceKeys") <*> (pure (fromEnum s))) instance Hashable BatchGetResourceConfig where instance NFData BatchGetResourceConfig where instance ToHeaders BatchGetResourceConfig where toHeaders = const (mconcat ["X-Amz-Target" =# ("StarlingDoveService.BatchGetResourceConfig" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON BatchGetResourceConfig where toJSON BatchGetResourceConfig'{..} = object (catMaybes [Just ("resourceKeys" .= _bgrcResourceKeys)]) instance ToPath BatchGetResourceConfig where toPath = const "/" instance ToQuery BatchGetResourceConfig where toQuery = const mempty -- | /See:/ 'batchGetResourceConfigResponse' smart constructor. data BatchGetResourceConfigResponse = BatchGetResourceConfigResponse' { _bgrcrsBaseConfigurationItems :: !(Maybe [BaseConfigurationItem]) , _bgrcrsUnprocessedResourceKeys :: !(Maybe (List1 ResourceKey)) , _bgrcrsResponseStatus :: !Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'BatchGetResourceConfigResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'bgrcrsBaseConfigurationItems' - A list that contains the current configuration of one or more resources. -- -- * 'bgrcrsUnprocessedResourceKeys' - A list of resource keys that were not processed with the current response. The unprocessesResourceKeys value is in the same form as ResourceKeys, so the value can be directly provided to a subsequent BatchGetResourceConfig operation. If there are no unprocessed resource keys, the response contains an empty unprocessedResourceKeys list. -- -- * 'bgrcrsResponseStatus' - -- | The response status code. batchGetResourceConfigResponse :: Int -- ^ 'bgrcrsResponseStatus' -> BatchGetResourceConfigResponse batchGetResourceConfigResponse pResponseStatus_ = BatchGetResourceConfigResponse' { _bgrcrsBaseConfigurationItems = Nothing , _bgrcrsUnprocessedResourceKeys = Nothing , _bgrcrsResponseStatus = pResponseStatus_ } -- | A list that contains the current configuration of one or more resources. bgrcrsBaseConfigurationItems :: Lens' BatchGetResourceConfigResponse [BaseConfigurationItem] bgrcrsBaseConfigurationItems = lens _bgrcrsBaseConfigurationItems (\ s a -> s{_bgrcrsBaseConfigurationItems = a}) . _Default . _Coerce -- | A list of resource keys that were not processed with the current response. The unprocessesResourceKeys value is in the same form as ResourceKeys, so the value can be directly provided to a subsequent BatchGetResourceConfig operation. If there are no unprocessed resource keys, the response contains an empty unprocessedResourceKeys list. bgrcrsUnprocessedResourceKeys :: Lens' BatchGetResourceConfigResponse (Maybe (NonEmpty ResourceKey)) bgrcrsUnprocessedResourceKeys = lens _bgrcrsUnprocessedResourceKeys (\ s a -> s{_bgrcrsUnprocessedResourceKeys = a}) . mapping _List1 -- | -- | The response status code. bgrcrsResponseStatus :: Lens' BatchGetResourceConfigResponse Int bgrcrsResponseStatus = lens _bgrcrsResponseStatus (\ s a -> s{_bgrcrsResponseStatus = a}) instance NFData BatchGetResourceConfigResponse where