{-# 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 #-}
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
data LoadBalancerAttributes = LoadBalancerAttributes'
{
LoadBalancerAttributes -> Maybe AccessLog
accessLog :: Prelude.Maybe AccessLog,
LoadBalancerAttributes -> Maybe [AdditionalAttribute]
additionalAttributes :: Prelude.Maybe [AdditionalAttribute],
LoadBalancerAttributes -> Maybe ConnectionDraining
connectionDraining :: Prelude.Maybe ConnectionDraining,
LoadBalancerAttributes -> Maybe ConnectionSettings
connectionSettings :: Prelude.Maybe ConnectionSettings,
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)
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
}
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)
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
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)
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)
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
]