{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# 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.Types.LoadBalancerAttributes
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.ELB.Types.LoadBalancerAttributes where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.ELB.Internal
import Amazonka.ELB.Types.AccessLog
import Amazonka.ELB.Types.AdditionalAttribute
import Amazonka.ELB.Types.ConnectionDraining
import Amazonka.ELB.Types.ConnectionSettings
import Amazonka.ELB.Types.CrossZoneLoadBalancing
import qualified Amazonka.Prelude as Prelude

-- | The attributes for a load balancer.
--
-- /See:/ 'newLoadBalancerAttributes' smart constructor.
data LoadBalancerAttributes = LoadBalancerAttributes'
  { -- | If enabled, the load balancer captures detailed information of all
    -- requests and delivers the information to the Amazon S3 bucket that you
    -- specify.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html Enable Access Logs>
    -- in the /Classic Load Balancers Guide/.
    LoadBalancerAttributes -> Maybe AccessLog
accessLog :: Prelude.Maybe AccessLog,
    -- | Any additional attributes.
    LoadBalancerAttributes -> Maybe [AdditionalAttribute]
additionalAttributes :: Prelude.Maybe [AdditionalAttribute],
    -- | If enabled, the load balancer allows existing requests to complete
    -- before the load balancer shifts traffic away from a deregistered or
    -- unhealthy instance.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html Configure Connection Draining>
    -- in the /Classic Load Balancers Guide/.
    LoadBalancerAttributes -> Maybe ConnectionDraining
connectionDraining :: Prelude.Maybe ConnectionDraining,
    -- | If enabled, the load balancer allows the connections to remain idle (no
    -- data is sent over the connection) for the specified duration.
    --
    -- By default, Elastic Load Balancing maintains a 60-second idle connection
    -- timeout for both front-end and back-end connections of your load
    -- balancer. For more information, see
    -- <https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html Configure Idle Connection Timeout>
    -- in the /Classic Load Balancers Guide/.
    LoadBalancerAttributes -> Maybe ConnectionSettings
connectionSettings :: Prelude.Maybe ConnectionSettings,
    -- | If enabled, the load balancer routes the request traffic evenly across
    -- all instances regardless of the Availability Zones.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html Configure Cross-Zone Load Balancing>
    -- in the /Classic Load Balancers Guide/.
    LoadBalancerAttributes -> Maybe CrossZoneLoadBalancing
crossZoneLoadBalancing :: Prelude.Maybe CrossZoneLoadBalancing
  }
  deriving (LoadBalancerAttributes -> LoadBalancerAttributes -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LoadBalancerAttributes -> LoadBalancerAttributes -> Bool
$c/= :: LoadBalancerAttributes -> LoadBalancerAttributes -> Bool
== :: LoadBalancerAttributes -> LoadBalancerAttributes -> Bool
$c== :: LoadBalancerAttributes -> LoadBalancerAttributes -> Bool
Prelude.Eq, ReadPrec [LoadBalancerAttributes]
ReadPrec LoadBalancerAttributes
Int -> ReadS LoadBalancerAttributes
ReadS [LoadBalancerAttributes]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [LoadBalancerAttributes]
$creadListPrec :: ReadPrec [LoadBalancerAttributes]
readPrec :: ReadPrec LoadBalancerAttributes
$creadPrec :: ReadPrec LoadBalancerAttributes
readList :: ReadS [LoadBalancerAttributes]
$creadList :: ReadS [LoadBalancerAttributes]
readsPrec :: Int -> ReadS LoadBalancerAttributes
$creadsPrec :: Int -> ReadS LoadBalancerAttributes
Prelude.Read, Int -> LoadBalancerAttributes -> ShowS
[LoadBalancerAttributes] -> ShowS
LoadBalancerAttributes -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LoadBalancerAttributes] -> ShowS
$cshowList :: [LoadBalancerAttributes] -> ShowS
show :: LoadBalancerAttributes -> String
$cshow :: LoadBalancerAttributes -> String
showsPrec :: Int -> LoadBalancerAttributes -> ShowS
$cshowsPrec :: Int -> LoadBalancerAttributes -> ShowS
Prelude.Show, forall x. Rep LoadBalancerAttributes x -> LoadBalancerAttributes
forall x. LoadBalancerAttributes -> Rep LoadBalancerAttributes x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep LoadBalancerAttributes x -> LoadBalancerAttributes
$cfrom :: forall x. LoadBalancerAttributes -> Rep LoadBalancerAttributes x
Prelude.Generic)

-- |
-- Create a value of 'LoadBalancerAttributes' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'accessLog', 'loadBalancerAttributes_accessLog' - If enabled, the load balancer captures detailed information of all
-- requests and delivers the information to the Amazon S3 bucket that you
-- specify.
--
-- For more information, see
-- <https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html Enable Access Logs>
-- in the /Classic Load Balancers Guide/.
--
-- 'additionalAttributes', 'loadBalancerAttributes_additionalAttributes' - Any additional attributes.
--
-- 'connectionDraining', 'loadBalancerAttributes_connectionDraining' - If enabled, the load balancer allows existing requests to complete
-- before the load balancer shifts traffic away from a deregistered or
-- unhealthy instance.
--
-- For more information, see
-- <https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html Configure Connection Draining>
-- in the /Classic Load Balancers Guide/.
--
-- 'connectionSettings', 'loadBalancerAttributes_connectionSettings' - If enabled, the load balancer allows the connections to remain idle (no
-- data is sent over the connection) for the specified duration.
--
-- By default, Elastic Load Balancing maintains a 60-second idle connection
-- timeout for both front-end and back-end connections of your load
-- balancer. For more information, see
-- <https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html Configure Idle Connection Timeout>
-- in the /Classic Load Balancers Guide/.
--
-- 'crossZoneLoadBalancing', 'loadBalancerAttributes_crossZoneLoadBalancing' - If enabled, the load balancer routes the request traffic evenly across
-- all instances regardless of the Availability Zones.
--
-- For more information, see
-- <https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html Configure Cross-Zone Load Balancing>
-- in the /Classic Load Balancers Guide/.
newLoadBalancerAttributes ::
  LoadBalancerAttributes
newLoadBalancerAttributes :: LoadBalancerAttributes
newLoadBalancerAttributes =
  LoadBalancerAttributes'
    { $sel:accessLog:LoadBalancerAttributes' :: Maybe AccessLog
accessLog =
        forall a. Maybe a
Prelude.Nothing,
      $sel:additionalAttributes:LoadBalancerAttributes' :: Maybe [AdditionalAttribute]
additionalAttributes = forall a. Maybe a
Prelude.Nothing,
      $sel:connectionDraining:LoadBalancerAttributes' :: Maybe ConnectionDraining
connectionDraining = forall a. Maybe a
Prelude.Nothing,
      $sel:connectionSettings:LoadBalancerAttributes' :: Maybe ConnectionSettings
connectionSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:crossZoneLoadBalancing:LoadBalancerAttributes' :: Maybe CrossZoneLoadBalancing
crossZoneLoadBalancing = forall a. Maybe a
Prelude.Nothing
    }

-- | If enabled, the load balancer captures detailed information of all
-- requests and delivers the information to the Amazon S3 bucket that you
-- specify.
--
-- For more information, see
-- <https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html Enable Access Logs>
-- in the /Classic Load Balancers Guide/.
loadBalancerAttributes_accessLog :: Lens.Lens' LoadBalancerAttributes (Prelude.Maybe AccessLog)
loadBalancerAttributes_accessLog :: Lens' LoadBalancerAttributes (Maybe AccessLog)
loadBalancerAttributes_accessLog = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerAttributes' {Maybe AccessLog
accessLog :: Maybe AccessLog
$sel:accessLog:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe AccessLog
accessLog} -> Maybe AccessLog
accessLog) (\s :: LoadBalancerAttributes
s@LoadBalancerAttributes' {} Maybe AccessLog
a -> LoadBalancerAttributes
s {$sel:accessLog:LoadBalancerAttributes' :: Maybe AccessLog
accessLog = Maybe AccessLog
a} :: LoadBalancerAttributes)

-- | Any additional attributes.
loadBalancerAttributes_additionalAttributes :: Lens.Lens' LoadBalancerAttributes (Prelude.Maybe [AdditionalAttribute])
loadBalancerAttributes_additionalAttributes :: Lens' LoadBalancerAttributes (Maybe [AdditionalAttribute])
loadBalancerAttributes_additionalAttributes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerAttributes' {Maybe [AdditionalAttribute]
additionalAttributes :: Maybe [AdditionalAttribute]
$sel:additionalAttributes:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe [AdditionalAttribute]
additionalAttributes} -> Maybe [AdditionalAttribute]
additionalAttributes) (\s :: LoadBalancerAttributes
s@LoadBalancerAttributes' {} Maybe [AdditionalAttribute]
a -> LoadBalancerAttributes
s {$sel:additionalAttributes:LoadBalancerAttributes' :: Maybe [AdditionalAttribute]
additionalAttributes = Maybe [AdditionalAttribute]
a} :: LoadBalancerAttributes) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | If enabled, the load balancer allows existing requests to complete
-- before the load balancer shifts traffic away from a deregistered or
-- unhealthy instance.
--
-- For more information, see
-- <https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html Configure Connection Draining>
-- in the /Classic Load Balancers Guide/.
loadBalancerAttributes_connectionDraining :: Lens.Lens' LoadBalancerAttributes (Prelude.Maybe ConnectionDraining)
loadBalancerAttributes_connectionDraining :: Lens' LoadBalancerAttributes (Maybe ConnectionDraining)
loadBalancerAttributes_connectionDraining = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerAttributes' {Maybe ConnectionDraining
connectionDraining :: Maybe ConnectionDraining
$sel:connectionDraining:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe ConnectionDraining
connectionDraining} -> Maybe ConnectionDraining
connectionDraining) (\s :: LoadBalancerAttributes
s@LoadBalancerAttributes' {} Maybe ConnectionDraining
a -> LoadBalancerAttributes
s {$sel:connectionDraining:LoadBalancerAttributes' :: Maybe ConnectionDraining
connectionDraining = Maybe ConnectionDraining
a} :: LoadBalancerAttributes)

-- | If enabled, the load balancer allows the connections to remain idle (no
-- data is sent over the connection) for the specified duration.
--
-- By default, Elastic Load Balancing maintains a 60-second idle connection
-- timeout for both front-end and back-end connections of your load
-- balancer. For more information, see
-- <https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html Configure Idle Connection Timeout>
-- in the /Classic Load Balancers Guide/.
loadBalancerAttributes_connectionSettings :: Lens.Lens' LoadBalancerAttributes (Prelude.Maybe ConnectionSettings)
loadBalancerAttributes_connectionSettings :: Lens' LoadBalancerAttributes (Maybe ConnectionSettings)
loadBalancerAttributes_connectionSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerAttributes' {Maybe ConnectionSettings
connectionSettings :: Maybe ConnectionSettings
$sel:connectionSettings:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe ConnectionSettings
connectionSettings} -> Maybe ConnectionSettings
connectionSettings) (\s :: LoadBalancerAttributes
s@LoadBalancerAttributes' {} Maybe ConnectionSettings
a -> LoadBalancerAttributes
s {$sel:connectionSettings:LoadBalancerAttributes' :: Maybe ConnectionSettings
connectionSettings = Maybe ConnectionSettings
a} :: LoadBalancerAttributes)

-- | If enabled, the load balancer routes the request traffic evenly across
-- all instances regardless of the Availability Zones.
--
-- For more information, see
-- <https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html Configure Cross-Zone Load Balancing>
-- in the /Classic Load Balancers Guide/.
loadBalancerAttributes_crossZoneLoadBalancing :: Lens.Lens' LoadBalancerAttributes (Prelude.Maybe CrossZoneLoadBalancing)
loadBalancerAttributes_crossZoneLoadBalancing :: Lens' LoadBalancerAttributes (Maybe CrossZoneLoadBalancing)
loadBalancerAttributes_crossZoneLoadBalancing = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerAttributes' {Maybe CrossZoneLoadBalancing
crossZoneLoadBalancing :: Maybe CrossZoneLoadBalancing
$sel:crossZoneLoadBalancing:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe CrossZoneLoadBalancing
crossZoneLoadBalancing} -> Maybe CrossZoneLoadBalancing
crossZoneLoadBalancing) (\s :: LoadBalancerAttributes
s@LoadBalancerAttributes' {} Maybe CrossZoneLoadBalancing
a -> LoadBalancerAttributes
s {$sel:crossZoneLoadBalancing:LoadBalancerAttributes' :: Maybe CrossZoneLoadBalancing
crossZoneLoadBalancing = Maybe CrossZoneLoadBalancing
a} :: LoadBalancerAttributes)

instance Data.FromXML LoadBalancerAttributes where
  parseXML :: [Node] -> Either String LoadBalancerAttributes
parseXML [Node]
x =
    Maybe AccessLog
-> Maybe [AdditionalAttribute]
-> Maybe ConnectionDraining
-> Maybe ConnectionSettings
-> Maybe CrossZoneLoadBalancing
-> LoadBalancerAttributes
LoadBalancerAttributes'
      forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"AccessLog")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"AdditionalAttributes"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ConnectionDraining")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ConnectionSettings")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"CrossZoneLoadBalancing")

instance Prelude.Hashable LoadBalancerAttributes where
  hashWithSalt :: Int -> LoadBalancerAttributes -> Int
hashWithSalt Int
_salt LoadBalancerAttributes' {Maybe [AdditionalAttribute]
Maybe AccessLog
Maybe ConnectionDraining
Maybe ConnectionSettings
Maybe CrossZoneLoadBalancing
crossZoneLoadBalancing :: Maybe CrossZoneLoadBalancing
connectionSettings :: Maybe ConnectionSettings
connectionDraining :: Maybe ConnectionDraining
additionalAttributes :: Maybe [AdditionalAttribute]
accessLog :: Maybe AccessLog
$sel:crossZoneLoadBalancing:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe CrossZoneLoadBalancing
$sel:connectionSettings:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe ConnectionSettings
$sel:connectionDraining:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe ConnectionDraining
$sel:additionalAttributes:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe [AdditionalAttribute]
$sel:accessLog:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe AccessLog
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AccessLog
accessLog
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [AdditionalAttribute]
additionalAttributes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ConnectionDraining
connectionDraining
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ConnectionSettings
connectionSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CrossZoneLoadBalancing
crossZoneLoadBalancing

instance Prelude.NFData LoadBalancerAttributes where
  rnf :: LoadBalancerAttributes -> ()
rnf LoadBalancerAttributes' {Maybe [AdditionalAttribute]
Maybe AccessLog
Maybe ConnectionDraining
Maybe ConnectionSettings
Maybe CrossZoneLoadBalancing
crossZoneLoadBalancing :: Maybe CrossZoneLoadBalancing
connectionSettings :: Maybe ConnectionSettings
connectionDraining :: Maybe ConnectionDraining
additionalAttributes :: Maybe [AdditionalAttribute]
accessLog :: Maybe AccessLog
$sel:crossZoneLoadBalancing:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe CrossZoneLoadBalancing
$sel:connectionSettings:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe ConnectionSettings
$sel:connectionDraining:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe ConnectionDraining
$sel:additionalAttributes:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe [AdditionalAttribute]
$sel:accessLog:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe AccessLog
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe AccessLog
accessLog
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [AdditionalAttribute]
additionalAttributes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ConnectionDraining
connectionDraining
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ConnectionSettings
connectionSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CrossZoneLoadBalancing
crossZoneLoadBalancing

instance Data.ToQuery LoadBalancerAttributes where
  toQuery :: LoadBalancerAttributes -> QueryString
toQuery LoadBalancerAttributes' {Maybe [AdditionalAttribute]
Maybe AccessLog
Maybe ConnectionDraining
Maybe ConnectionSettings
Maybe CrossZoneLoadBalancing
crossZoneLoadBalancing :: Maybe CrossZoneLoadBalancing
connectionSettings :: Maybe ConnectionSettings
connectionDraining :: Maybe ConnectionDraining
additionalAttributes :: Maybe [AdditionalAttribute]
accessLog :: Maybe AccessLog
$sel:crossZoneLoadBalancing:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe CrossZoneLoadBalancing
$sel:connectionSettings:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe ConnectionSettings
$sel:connectionDraining:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe ConnectionDraining
$sel:additionalAttributes:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe [AdditionalAttribute]
$sel:accessLog:LoadBalancerAttributes' :: LoadBalancerAttributes -> Maybe AccessLog
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"AccessLog" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe AccessLog
accessLog,
        ByteString
"AdditionalAttributes"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: forall a. ToQuery a => a -> QueryString
Data.toQuery
            ( forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"member"
                forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AdditionalAttribute]
additionalAttributes
            ),
        ByteString
"ConnectionDraining" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe ConnectionDraining
connectionDraining,
        ByteString
"ConnectionSettings" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe ConnectionSettings
connectionSettings,
        ByteString
"CrossZoneLoadBalancing"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe CrossZoneLoadBalancing
crossZoneLoadBalancing
      ]