{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.ELB.ModifyLoadBalancerAttributes -- Copyright : (c) 2013-2023 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 /Classic Load Balancers -- Guide/: -- -- - -- -- - -- -- - -- -- - module Amazonka.ELB.ModifyLoadBalancerAttributes ( -- * Creating a Request ModifyLoadBalancerAttributes (..), newModifyLoadBalancerAttributes, -- * Request Lenses modifyLoadBalancerAttributes_loadBalancerName, modifyLoadBalancerAttributes_loadBalancerAttributes, -- * Destructuring the Response ModifyLoadBalancerAttributesResponse (..), newModifyLoadBalancerAttributesResponse, -- * Response Lenses modifyLoadBalancerAttributesResponse_loadBalancerAttributes, modifyLoadBalancerAttributesResponse_loadBalancerName, modifyLoadBalancerAttributesResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.ELB.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | Contains the parameters for ModifyLoadBalancerAttributes. -- -- /See:/ 'newModifyLoadBalancerAttributes' smart constructor. data ModifyLoadBalancerAttributes = ModifyLoadBalancerAttributes' { -- | The name of the load balancer. loadBalancerName :: Prelude.Text, -- | The attributes for the load balancer. loadBalancerAttributes :: LoadBalancerAttributes } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ModifyLoadBalancerAttributes' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'loadBalancerName', 'modifyLoadBalancerAttributes_loadBalancerName' - The name of the load balancer. -- -- 'loadBalancerAttributes', 'modifyLoadBalancerAttributes_loadBalancerAttributes' - The attributes for the load balancer. newModifyLoadBalancerAttributes :: -- | 'loadBalancerName' Prelude.Text -> -- | 'loadBalancerAttributes' LoadBalancerAttributes -> ModifyLoadBalancerAttributes newModifyLoadBalancerAttributes pLoadBalancerName_ pLoadBalancerAttributes_ = ModifyLoadBalancerAttributes' { loadBalancerName = pLoadBalancerName_, loadBalancerAttributes = pLoadBalancerAttributes_ } -- | The name of the load balancer. modifyLoadBalancerAttributes_loadBalancerName :: Lens.Lens' ModifyLoadBalancerAttributes Prelude.Text modifyLoadBalancerAttributes_loadBalancerName = Lens.lens (\ModifyLoadBalancerAttributes' {loadBalancerName} -> loadBalancerName) (\s@ModifyLoadBalancerAttributes' {} a -> s {loadBalancerName = a} :: ModifyLoadBalancerAttributes) -- | The attributes for the load balancer. modifyLoadBalancerAttributes_loadBalancerAttributes :: Lens.Lens' ModifyLoadBalancerAttributes LoadBalancerAttributes modifyLoadBalancerAttributes_loadBalancerAttributes = Lens.lens (\ModifyLoadBalancerAttributes' {loadBalancerAttributes} -> loadBalancerAttributes) (\s@ModifyLoadBalancerAttributes' {} a -> s {loadBalancerAttributes = a} :: ModifyLoadBalancerAttributes) instance Core.AWSRequest ModifyLoadBalancerAttributes where type AWSResponse ModifyLoadBalancerAttributes = ModifyLoadBalancerAttributesResponse request overrides = Request.postQuery (overrides defaultService) response = Response.receiveXMLWrapper "ModifyLoadBalancerAttributesResult" ( \s h x -> ModifyLoadBalancerAttributesResponse' Prelude.<$> (x Data..@? "LoadBalancerAttributes") Prelude.<*> (x Data..@? "LoadBalancerName") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable ModifyLoadBalancerAttributes where hashWithSalt _salt ModifyLoadBalancerAttributes' {..} = _salt `Prelude.hashWithSalt` loadBalancerName `Prelude.hashWithSalt` loadBalancerAttributes instance Prelude.NFData ModifyLoadBalancerAttributes where rnf ModifyLoadBalancerAttributes' {..} = Prelude.rnf loadBalancerName `Prelude.seq` Prelude.rnf loadBalancerAttributes instance Data.ToHeaders ModifyLoadBalancerAttributes where toHeaders = Prelude.const Prelude.mempty instance Data.ToPath ModifyLoadBalancerAttributes where toPath = Prelude.const "/" instance Data.ToQuery ModifyLoadBalancerAttributes where toQuery ModifyLoadBalancerAttributes' {..} = Prelude.mconcat [ "Action" Data.=: ( "ModifyLoadBalancerAttributes" :: Prelude.ByteString ), "Version" Data.=: ("2012-06-01" :: Prelude.ByteString), "LoadBalancerName" Data.=: loadBalancerName, "LoadBalancerAttributes" Data.=: loadBalancerAttributes ] -- | Contains the output of ModifyLoadBalancerAttributes. -- -- /See:/ 'newModifyLoadBalancerAttributesResponse' smart constructor. data ModifyLoadBalancerAttributesResponse = ModifyLoadBalancerAttributesResponse' { -- | Information about the load balancer attributes. loadBalancerAttributes :: Prelude.Maybe LoadBalancerAttributes, -- | The name of the load balancer. loadBalancerName :: Prelude.Maybe Prelude.Text, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ModifyLoadBalancerAttributesResponse' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'loadBalancerAttributes', 'modifyLoadBalancerAttributesResponse_loadBalancerAttributes' - Information about the load balancer attributes. -- -- 'loadBalancerName', 'modifyLoadBalancerAttributesResponse_loadBalancerName' - The name of the load balancer. -- -- 'httpStatus', 'modifyLoadBalancerAttributesResponse_httpStatus' - The response's http status code. newModifyLoadBalancerAttributesResponse :: -- | 'httpStatus' Prelude.Int -> ModifyLoadBalancerAttributesResponse newModifyLoadBalancerAttributesResponse pHttpStatus_ = ModifyLoadBalancerAttributesResponse' { loadBalancerAttributes = Prelude.Nothing, loadBalancerName = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | Information about the load balancer attributes. modifyLoadBalancerAttributesResponse_loadBalancerAttributes :: Lens.Lens' ModifyLoadBalancerAttributesResponse (Prelude.Maybe LoadBalancerAttributes) modifyLoadBalancerAttributesResponse_loadBalancerAttributes = Lens.lens (\ModifyLoadBalancerAttributesResponse' {loadBalancerAttributes} -> loadBalancerAttributes) (\s@ModifyLoadBalancerAttributesResponse' {} a -> s {loadBalancerAttributes = a} :: ModifyLoadBalancerAttributesResponse) -- | The name of the load balancer. modifyLoadBalancerAttributesResponse_loadBalancerName :: Lens.Lens' ModifyLoadBalancerAttributesResponse (Prelude.Maybe Prelude.Text) modifyLoadBalancerAttributesResponse_loadBalancerName = Lens.lens (\ModifyLoadBalancerAttributesResponse' {loadBalancerName} -> loadBalancerName) (\s@ModifyLoadBalancerAttributesResponse' {} a -> s {loadBalancerName = a} :: ModifyLoadBalancerAttributesResponse) -- | The response's http status code. modifyLoadBalancerAttributesResponse_httpStatus :: Lens.Lens' ModifyLoadBalancerAttributesResponse Prelude.Int modifyLoadBalancerAttributesResponse_httpStatus = Lens.lens (\ModifyLoadBalancerAttributesResponse' {httpStatus} -> httpStatus) (\s@ModifyLoadBalancerAttributesResponse' {} a -> s {httpStatus = a} :: ModifyLoadBalancerAttributesResponse) instance Prelude.NFData ModifyLoadBalancerAttributesResponse where rnf ModifyLoadBalancerAttributesResponse' {..} = Prelude.rnf loadBalancerAttributes `Prelude.seq` Prelude.rnf loadBalancerName `Prelude.seq` Prelude.rnf httpStatus