module Network.AWS.Config.DescribeComplianceByResource
(
describeComplianceByResource
, DescribeComplianceByResource
, dcbrResourceId
, dcbrResourceType
, dcbrComplianceTypes
, dcbrNextToken
, dcbrLimit
, describeComplianceByResourceResponse
, DescribeComplianceByResourceResponse
, dcbrrsComplianceByResources
, dcbrrsNextToken
, dcbrrsResponseStatus
) 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
data DescribeComplianceByResource = DescribeComplianceByResource'
{ _dcbrResourceId :: !(Maybe Text)
, _dcbrResourceType :: !(Maybe Text)
, _dcbrComplianceTypes :: !(Maybe [ComplianceType])
, _dcbrNextToken :: !(Maybe Text)
, _dcbrLimit :: !(Maybe Nat)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeComplianceByResource
:: DescribeComplianceByResource
describeComplianceByResource =
DescribeComplianceByResource'
{ _dcbrResourceId = Nothing
, _dcbrResourceType = Nothing
, _dcbrComplianceTypes = Nothing
, _dcbrNextToken = Nothing
, _dcbrLimit = Nothing
}
dcbrResourceId :: Lens' DescribeComplianceByResource (Maybe Text)
dcbrResourceId = lens _dcbrResourceId (\ s a -> s{_dcbrResourceId = a});
dcbrResourceType :: Lens' DescribeComplianceByResource (Maybe Text)
dcbrResourceType = lens _dcbrResourceType (\ s a -> s{_dcbrResourceType = a});
dcbrComplianceTypes :: Lens' DescribeComplianceByResource [ComplianceType]
dcbrComplianceTypes = lens _dcbrComplianceTypes (\ s a -> s{_dcbrComplianceTypes = a}) . _Default . _Coerce;
dcbrNextToken :: Lens' DescribeComplianceByResource (Maybe Text)
dcbrNextToken = lens _dcbrNextToken (\ s a -> s{_dcbrNextToken = a});
dcbrLimit :: Lens' DescribeComplianceByResource (Maybe Natural)
dcbrLimit = lens _dcbrLimit (\ s a -> s{_dcbrLimit = a}) . mapping _Nat;
instance AWSRequest DescribeComplianceByResource
where
type Rs DescribeComplianceByResource =
DescribeComplianceByResourceResponse
request = postJSON config
response
= receiveJSON
(\ s h x ->
DescribeComplianceByResourceResponse' <$>
(x .?> "ComplianceByResources" .!@ mempty) <*>
(x .?> "NextToken")
<*> (pure (fromEnum s)))
instance Hashable DescribeComplianceByResource
instance ToHeaders DescribeComplianceByResource where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("StarlingDoveService.DescribeComplianceByResource"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeComplianceByResource where
toJSON DescribeComplianceByResource'{..}
= object
(catMaybes
[("ResourceId" .=) <$> _dcbrResourceId,
("ResourceType" .=) <$> _dcbrResourceType,
("ComplianceTypes" .=) <$> _dcbrComplianceTypes,
("NextToken" .=) <$> _dcbrNextToken,
("Limit" .=) <$> _dcbrLimit])
instance ToPath DescribeComplianceByResource where
toPath = const "/"
instance ToQuery DescribeComplianceByResource where
toQuery = const mempty
data DescribeComplianceByResourceResponse = DescribeComplianceByResourceResponse'
{ _dcbrrsComplianceByResources :: !(Maybe [ComplianceByResource])
, _dcbrrsNextToken :: !(Maybe Text)
, _dcbrrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeComplianceByResourceResponse
:: Int
-> DescribeComplianceByResourceResponse
describeComplianceByResourceResponse pResponseStatus_ =
DescribeComplianceByResourceResponse'
{ _dcbrrsComplianceByResources = Nothing
, _dcbrrsNextToken = Nothing
, _dcbrrsResponseStatus = pResponseStatus_
}
dcbrrsComplianceByResources :: Lens' DescribeComplianceByResourceResponse [ComplianceByResource]
dcbrrsComplianceByResources = lens _dcbrrsComplianceByResources (\ s a -> s{_dcbrrsComplianceByResources = a}) . _Default . _Coerce;
dcbrrsNextToken :: Lens' DescribeComplianceByResourceResponse (Maybe Text)
dcbrrsNextToken = lens _dcbrrsNextToken (\ s a -> s{_dcbrrsNextToken = a});
dcbrrsResponseStatus :: Lens' DescribeComplianceByResourceResponse Int
dcbrrsResponseStatus = lens _dcbrrsResponseStatus (\ s a -> s{_dcbrrsResponseStatus = a});