{-# 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.ELB.DetachLoadBalancerFromSubnets
(
detachLoadBalancerFromSubnets
, DetachLoadBalancerFromSubnets
, dlbfsLoadBalancerName
, dlbfsSubnets
, detachLoadBalancerFromSubnetsResponse
, DetachLoadBalancerFromSubnetsResponse
, dlbfsrsSubnets
, dlbfsrsResponseStatus
) where
import Network.AWS.ELB.Types
import Network.AWS.ELB.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DetachLoadBalancerFromSubnets = DetachLoadBalancerFromSubnets'
{ _dlbfsLoadBalancerName :: !Text
, _dlbfsSubnets :: ![Text]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
detachLoadBalancerFromSubnets
:: Text
-> DetachLoadBalancerFromSubnets
detachLoadBalancerFromSubnets pLoadBalancerName_ =
DetachLoadBalancerFromSubnets'
{ _dlbfsLoadBalancerName = pLoadBalancerName_
, _dlbfsSubnets = mempty
}
dlbfsLoadBalancerName :: Lens' DetachLoadBalancerFromSubnets Text
dlbfsLoadBalancerName = lens _dlbfsLoadBalancerName (\ s a -> s{_dlbfsLoadBalancerName = a});
dlbfsSubnets :: Lens' DetachLoadBalancerFromSubnets [Text]
dlbfsSubnets = lens _dlbfsSubnets (\ s a -> s{_dlbfsSubnets = a}) . _Coerce;
instance AWSRequest DetachLoadBalancerFromSubnets
where
type Rs DetachLoadBalancerFromSubnets =
DetachLoadBalancerFromSubnetsResponse
request = postQuery elb
response
= receiveXMLWrapper
"DetachLoadBalancerFromSubnetsResult"
(\ s h x ->
DetachLoadBalancerFromSubnetsResponse' <$>
(x .@? "Subnets" .!@ mempty >>=
may (parseXMLList "member"))
<*> (pure (fromEnum s)))
instance Hashable DetachLoadBalancerFromSubnets
instance NFData DetachLoadBalancerFromSubnets
instance ToHeaders DetachLoadBalancerFromSubnets
where
toHeaders = const mempty
instance ToPath DetachLoadBalancerFromSubnets where
toPath = const "/"
instance ToQuery DetachLoadBalancerFromSubnets where
toQuery DetachLoadBalancerFromSubnets'{..}
= mconcat
["Action" =:
("DetachLoadBalancerFromSubnets" :: ByteString),
"Version" =: ("2012-06-01" :: ByteString),
"LoadBalancerName" =: _dlbfsLoadBalancerName,
"Subnets" =: toQueryList "member" _dlbfsSubnets]
data DetachLoadBalancerFromSubnetsResponse = DetachLoadBalancerFromSubnetsResponse'
{ _dlbfsrsSubnets :: !(Maybe [Text])
, _dlbfsrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
detachLoadBalancerFromSubnetsResponse
:: Int
-> DetachLoadBalancerFromSubnetsResponse
detachLoadBalancerFromSubnetsResponse pResponseStatus_ =
DetachLoadBalancerFromSubnetsResponse'
{ _dlbfsrsSubnets = Nothing
, _dlbfsrsResponseStatus = pResponseStatus_
}
dlbfsrsSubnets :: Lens' DetachLoadBalancerFromSubnetsResponse [Text]
dlbfsrsSubnets = lens _dlbfsrsSubnets (\ s a -> s{_dlbfsrsSubnets = a}) . _Default . _Coerce;
dlbfsrsResponseStatus :: Lens' DetachLoadBalancerFromSubnetsResponse Int
dlbfsrsResponseStatus = lens _dlbfsrsResponseStatus (\ s a -> s{_dlbfsrsResponseStatus = a});
instance NFData DetachLoadBalancerFromSubnetsResponse