{-# 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.EC2.DescribeStaleSecurityGroups
(
describeStaleSecurityGroups
, DescribeStaleSecurityGroups
, dssgNextToken
, dssgDryRun
, dssgMaxResults
, dssgVPCId
, describeStaleSecurityGroupsResponse
, DescribeStaleSecurityGroupsResponse
, dssgrsStaleSecurityGroupSet
, dssgrsNextToken
, dssgrsResponseStatus
) where
import Network.AWS.EC2.Types
import Network.AWS.EC2.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeStaleSecurityGroups = DescribeStaleSecurityGroups'
{ _dssgNextToken :: !(Maybe Text)
, _dssgDryRun :: !(Maybe Bool)
, _dssgMaxResults :: !(Maybe Nat)
, _dssgVPCId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeStaleSecurityGroups
:: Text
-> DescribeStaleSecurityGroups
describeStaleSecurityGroups pVPCId_ =
DescribeStaleSecurityGroups'
{ _dssgNextToken = Nothing
, _dssgDryRun = Nothing
, _dssgMaxResults = Nothing
, _dssgVPCId = pVPCId_
}
dssgNextToken :: Lens' DescribeStaleSecurityGroups (Maybe Text)
dssgNextToken = lens _dssgNextToken (\ s a -> s{_dssgNextToken = a})
dssgDryRun :: Lens' DescribeStaleSecurityGroups (Maybe Bool)
dssgDryRun = lens _dssgDryRun (\ s a -> s{_dssgDryRun = a})
dssgMaxResults :: Lens' DescribeStaleSecurityGroups (Maybe Natural)
dssgMaxResults = lens _dssgMaxResults (\ s a -> s{_dssgMaxResults = a}) . mapping _Nat
dssgVPCId :: Lens' DescribeStaleSecurityGroups Text
dssgVPCId = lens _dssgVPCId (\ s a -> s{_dssgVPCId = a})
instance AWSRequest DescribeStaleSecurityGroups where
type Rs DescribeStaleSecurityGroups =
DescribeStaleSecurityGroupsResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
DescribeStaleSecurityGroupsResponse' <$>
(x .@? "staleSecurityGroupSet" .!@ mempty >>=
may (parseXMLList "item"))
<*> (x .@? "nextToken")
<*> (pure (fromEnum s)))
instance Hashable DescribeStaleSecurityGroups where
instance NFData DescribeStaleSecurityGroups where
instance ToHeaders DescribeStaleSecurityGroups where
toHeaders = const mempty
instance ToPath DescribeStaleSecurityGroups where
toPath = const "/"
instance ToQuery DescribeStaleSecurityGroups where
toQuery DescribeStaleSecurityGroups'{..}
= mconcat
["Action" =:
("DescribeStaleSecurityGroups" :: ByteString),
"Version" =: ("2016-11-15" :: ByteString),
"NextToken" =: _dssgNextToken,
"DryRun" =: _dssgDryRun,
"MaxResults" =: _dssgMaxResults,
"VpcId" =: _dssgVPCId]
data DescribeStaleSecurityGroupsResponse = DescribeStaleSecurityGroupsResponse'
{ _dssgrsStaleSecurityGroupSet :: !(Maybe [StaleSecurityGroup])
, _dssgrsNextToken :: !(Maybe Text)
, _dssgrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeStaleSecurityGroupsResponse
:: Int
-> DescribeStaleSecurityGroupsResponse
describeStaleSecurityGroupsResponse pResponseStatus_ =
DescribeStaleSecurityGroupsResponse'
{ _dssgrsStaleSecurityGroupSet = Nothing
, _dssgrsNextToken = Nothing
, _dssgrsResponseStatus = pResponseStatus_
}
dssgrsStaleSecurityGroupSet :: Lens' DescribeStaleSecurityGroupsResponse [StaleSecurityGroup]
dssgrsStaleSecurityGroupSet = lens _dssgrsStaleSecurityGroupSet (\ s a -> s{_dssgrsStaleSecurityGroupSet = a}) . _Default . _Coerce
dssgrsNextToken :: Lens' DescribeStaleSecurityGroupsResponse (Maybe Text)
dssgrsNextToken = lens _dssgrsNextToken (\ s a -> s{_dssgrsNextToken = a})
dssgrsResponseStatus :: Lens' DescribeStaleSecurityGroupsResponse Int
dssgrsResponseStatus = lens _dssgrsResponseStatus (\ s a -> s{_dssgrsResponseStatus = a})
instance NFData DescribeStaleSecurityGroupsResponse
where