{-# 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.ELBv2.SetSecurityGroups
(
setSecurityGroups
, SetSecurityGroups
, ssgLoadBalancerARN
, ssgSecurityGroups
, setSecurityGroupsResponse
, SetSecurityGroupsResponse
, ssgrsSecurityGroupIds
, ssgrsResponseStatus
) where
import Network.AWS.ELBv2.Types
import Network.AWS.ELBv2.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data SetSecurityGroups = SetSecurityGroups'
{ _ssgLoadBalancerARN :: !Text
, _ssgSecurityGroups :: ![Text]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
setSecurityGroups
:: Text
-> SetSecurityGroups
setSecurityGroups pLoadBalancerARN_ =
SetSecurityGroups'
{ _ssgLoadBalancerARN = pLoadBalancerARN_
, _ssgSecurityGroups = mempty
}
ssgLoadBalancerARN :: Lens' SetSecurityGroups Text
ssgLoadBalancerARN = lens _ssgLoadBalancerARN (\ s a -> s{_ssgLoadBalancerARN = a});
ssgSecurityGroups :: Lens' SetSecurityGroups [Text]
ssgSecurityGroups = lens _ssgSecurityGroups (\ s a -> s{_ssgSecurityGroups = a}) . _Coerce;
instance AWSRequest SetSecurityGroups where
type Rs SetSecurityGroups = SetSecurityGroupsResponse
request = postQuery eLBv2
response
= receiveXMLWrapper "SetSecurityGroupsResult"
(\ s h x ->
SetSecurityGroupsResponse' <$>
(x .@? "SecurityGroupIds" .!@ mempty >>=
may (parseXMLList "member"))
<*> (pure (fromEnum s)))
instance Hashable SetSecurityGroups
instance NFData SetSecurityGroups
instance ToHeaders SetSecurityGroups where
toHeaders = const mempty
instance ToPath SetSecurityGroups where
toPath = const "/"
instance ToQuery SetSecurityGroups where
toQuery SetSecurityGroups'{..}
= mconcat
["Action" =: ("SetSecurityGroups" :: ByteString),
"Version" =: ("2015-12-01" :: ByteString),
"LoadBalancerArn" =: _ssgLoadBalancerARN,
"SecurityGroups" =:
toQueryList "member" _ssgSecurityGroups]
data SetSecurityGroupsResponse = SetSecurityGroupsResponse'
{ _ssgrsSecurityGroupIds :: !(Maybe [Text])
, _ssgrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
setSecurityGroupsResponse
:: Int
-> SetSecurityGroupsResponse
setSecurityGroupsResponse pResponseStatus_ =
SetSecurityGroupsResponse'
{ _ssgrsSecurityGroupIds = Nothing
, _ssgrsResponseStatus = pResponseStatus_
}
ssgrsSecurityGroupIds :: Lens' SetSecurityGroupsResponse [Text]
ssgrsSecurityGroupIds = lens _ssgrsSecurityGroupIds (\ s a -> s{_ssgrsSecurityGroupIds = a}) . _Default . _Coerce;
ssgrsResponseStatus :: Lens' SetSecurityGroupsResponse Int
ssgrsResponseStatus = lens _ssgrsResponseStatus (\ s a -> s{_ssgrsResponseStatus = a});
instance NFData SetSecurityGroupsResponse