{-# 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 #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.ELB.ModifyLoadBalancerAttributes -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Modifies the attributes of the specified load balancer. -- -- You can modify the load balancer attributes, such as 'AccessLogs', 'ConnectionDraining', and 'CrossZoneLoadBalancing' by either enabling or disabling them. Or, you can modify the load balancer attribute 'ConnectionSettings' by specifying an idle connection timeout value for your load balancer. -- -- For more information, see the following in the /Elastic Load Balancing Developer Guide/: -- -- - -- - -- - -- - module Network.AWS.ELB.ModifyLoadBalancerAttributes ( -- * Creating a Request modifyLoadBalancerAttributes , ModifyLoadBalancerAttributes -- * Request Lenses , mlbaLoadBalancerName , mlbaLoadBalancerAttributes -- * Destructuring the Response , modifyLoadBalancerAttributesResponse , ModifyLoadBalancerAttributesResponse -- * Response Lenses , mlbarsLoadBalancerName , mlbarsLoadBalancerAttributes , mlbarsResponseStatus ) 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 -- | /See:/ 'modifyLoadBalancerAttributes' smart constructor. data ModifyLoadBalancerAttributes = ModifyLoadBalancerAttributes' { _mlbaLoadBalancerName :: !Text , _mlbaLoadBalancerAttributes :: !LoadBalancerAttributes } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ModifyLoadBalancerAttributes' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'mlbaLoadBalancerName' -- -- * 'mlbaLoadBalancerAttributes' modifyLoadBalancerAttributes :: Text -- ^ 'mlbaLoadBalancerName' -> LoadBalancerAttributes -- ^ 'mlbaLoadBalancerAttributes' -> ModifyLoadBalancerAttributes modifyLoadBalancerAttributes pLoadBalancerName_ pLoadBalancerAttributes_ = ModifyLoadBalancerAttributes' { _mlbaLoadBalancerName = pLoadBalancerName_ , _mlbaLoadBalancerAttributes = pLoadBalancerAttributes_ } -- | The name of the load balancer. mlbaLoadBalancerName :: Lens' ModifyLoadBalancerAttributes Text mlbaLoadBalancerName = lens _mlbaLoadBalancerName (\ s a -> s{_mlbaLoadBalancerName = a}); -- | The attributes of the load balancer. mlbaLoadBalancerAttributes :: Lens' ModifyLoadBalancerAttributes LoadBalancerAttributes mlbaLoadBalancerAttributes = lens _mlbaLoadBalancerAttributes (\ s a -> s{_mlbaLoadBalancerAttributes = a}); instance AWSRequest ModifyLoadBalancerAttributes where type Rs ModifyLoadBalancerAttributes = ModifyLoadBalancerAttributesResponse request = postQuery elb response = receiveXMLWrapper "ModifyLoadBalancerAttributesResult" (\ s h x -> ModifyLoadBalancerAttributesResponse' <$> (x .@? "LoadBalancerName") <*> (x .@? "LoadBalancerAttributes") <*> (pure (fromEnum s))) instance Hashable ModifyLoadBalancerAttributes instance NFData ModifyLoadBalancerAttributes instance ToHeaders ModifyLoadBalancerAttributes where toHeaders = const mempty instance ToPath ModifyLoadBalancerAttributes where toPath = const "/" instance ToQuery ModifyLoadBalancerAttributes where toQuery ModifyLoadBalancerAttributes'{..} = mconcat ["Action" =: ("ModifyLoadBalancerAttributes" :: ByteString), "Version" =: ("2012-06-01" :: ByteString), "LoadBalancerName" =: _mlbaLoadBalancerName, "LoadBalancerAttributes" =: _mlbaLoadBalancerAttributes] -- | /See:/ 'modifyLoadBalancerAttributesResponse' smart constructor. data ModifyLoadBalancerAttributesResponse = ModifyLoadBalancerAttributesResponse' { _mlbarsLoadBalancerName :: !(Maybe Text) , _mlbarsLoadBalancerAttributes :: !(Maybe LoadBalancerAttributes) , _mlbarsResponseStatus :: !Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ModifyLoadBalancerAttributesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'mlbarsLoadBalancerName' -- -- * 'mlbarsLoadBalancerAttributes' -- -- * 'mlbarsResponseStatus' modifyLoadBalancerAttributesResponse :: Int -- ^ 'mlbarsResponseStatus' -> ModifyLoadBalancerAttributesResponse modifyLoadBalancerAttributesResponse pResponseStatus_ = ModifyLoadBalancerAttributesResponse' { _mlbarsLoadBalancerName = Nothing , _mlbarsLoadBalancerAttributes = Nothing , _mlbarsResponseStatus = pResponseStatus_ } -- | The name of the load balancer. mlbarsLoadBalancerName :: Lens' ModifyLoadBalancerAttributesResponse (Maybe Text) mlbarsLoadBalancerName = lens _mlbarsLoadBalancerName (\ s a -> s{_mlbarsLoadBalancerName = a}); -- | Undocumented member. mlbarsLoadBalancerAttributes :: Lens' ModifyLoadBalancerAttributesResponse (Maybe LoadBalancerAttributes) mlbarsLoadBalancerAttributes = lens _mlbarsLoadBalancerAttributes (\ s a -> s{_mlbarsLoadBalancerAttributes = a}); -- | The response status code. mlbarsResponseStatus :: Lens' ModifyLoadBalancerAttributesResponse Int mlbarsResponseStatus = lens _mlbarsResponseStatus (\ s a -> s{_mlbarsResponseStatus = a}); instance NFData ModifyLoadBalancerAttributesResponse