module Network.AWS.ELB.ApplySecurityGroupsToLoadBalancer
(
ApplySecurityGroupsToLoadBalancer
, applySecurityGroupsToLoadBalancer
, asgtlbLoadBalancerName
, asgtlbSecurityGroups
, ApplySecurityGroupsToLoadBalancerResponse
, applySecurityGroupsToLoadBalancerResponse
, asgtlbrSecurityGroups
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.ELB.Types
import qualified GHC.Exts
data ApplySecurityGroupsToLoadBalancer = ApplySecurityGroupsToLoadBalancer
{ _asgtlbLoadBalancerName :: Text
, _asgtlbSecurityGroups :: List "member" Text
} deriving (Eq, Ord, Show)
applySecurityGroupsToLoadBalancer :: Text
-> ApplySecurityGroupsToLoadBalancer
applySecurityGroupsToLoadBalancer p1 = ApplySecurityGroupsToLoadBalancer
{ _asgtlbLoadBalancerName = p1
, _asgtlbSecurityGroups = mempty
}
asgtlbLoadBalancerName :: Lens' ApplySecurityGroupsToLoadBalancer Text
asgtlbLoadBalancerName =
lens _asgtlbLoadBalancerName (\s a -> s { _asgtlbLoadBalancerName = a })
asgtlbSecurityGroups :: Lens' ApplySecurityGroupsToLoadBalancer [Text]
asgtlbSecurityGroups =
lens _asgtlbSecurityGroups (\s a -> s { _asgtlbSecurityGroups = a })
. _List
newtype ApplySecurityGroupsToLoadBalancerResponse = ApplySecurityGroupsToLoadBalancerResponse
{ _asgtlbrSecurityGroups :: List "member" Text
} deriving (Eq, Ord, Show, Monoid, Semigroup)
instance GHC.Exts.IsList ApplySecurityGroupsToLoadBalancerResponse where
type Item ApplySecurityGroupsToLoadBalancerResponse = Text
fromList = ApplySecurityGroupsToLoadBalancerResponse . GHC.Exts.fromList
toList = GHC.Exts.toList . _asgtlbrSecurityGroups
applySecurityGroupsToLoadBalancerResponse :: ApplySecurityGroupsToLoadBalancerResponse
applySecurityGroupsToLoadBalancerResponse = ApplySecurityGroupsToLoadBalancerResponse
{ _asgtlbrSecurityGroups = mempty
}
asgtlbrSecurityGroups :: Lens' ApplySecurityGroupsToLoadBalancerResponse [Text]
asgtlbrSecurityGroups =
lens _asgtlbrSecurityGroups (\s a -> s { _asgtlbrSecurityGroups = a })
. _List
instance ToPath ApplySecurityGroupsToLoadBalancer where
toPath = const "/"
instance ToQuery ApplySecurityGroupsToLoadBalancer where
toQuery ApplySecurityGroupsToLoadBalancer{..} = mconcat
[ "LoadBalancerName" =? _asgtlbLoadBalancerName
, "SecurityGroups" =? _asgtlbSecurityGroups
]
instance ToHeaders ApplySecurityGroupsToLoadBalancer
instance AWSRequest ApplySecurityGroupsToLoadBalancer where
type Sv ApplySecurityGroupsToLoadBalancer = ELB
type Rs ApplySecurityGroupsToLoadBalancer = ApplySecurityGroupsToLoadBalancerResponse
request = post "ApplySecurityGroupsToLoadBalancer"
response = xmlResponse
instance FromXML ApplySecurityGroupsToLoadBalancerResponse where
parseXML = withElement "ApplySecurityGroupsToLoadBalancerResult" $ \x -> ApplySecurityGroupsToLoadBalancerResponse
<$> x .@? "SecurityGroups" .!@ mempty