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 where
instance NFData SetSecurityGroups where
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 where