{-# 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.EC2.Types.LoadBalancersConfig where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EC2.Internal
import Amazonka.EC2.Types.ClassicLoadBalancersConfig
import Amazonka.EC2.Types.TargetGroupsConfig
import qualified Amazonka.Prelude as Prelude
data LoadBalancersConfig = LoadBalancersConfig'
{
LoadBalancersConfig -> Maybe ClassicLoadBalancersConfig
classicLoadBalancersConfig :: Prelude.Maybe ClassicLoadBalancersConfig,
LoadBalancersConfig -> Maybe TargetGroupsConfig
targetGroupsConfig :: Prelude.Maybe TargetGroupsConfig
}
deriving (LoadBalancersConfig -> LoadBalancersConfig -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LoadBalancersConfig -> LoadBalancersConfig -> Bool
$c/= :: LoadBalancersConfig -> LoadBalancersConfig -> Bool
== :: LoadBalancersConfig -> LoadBalancersConfig -> Bool
$c== :: LoadBalancersConfig -> LoadBalancersConfig -> Bool
Prelude.Eq, ReadPrec [LoadBalancersConfig]
ReadPrec LoadBalancersConfig
Int -> ReadS LoadBalancersConfig
ReadS [LoadBalancersConfig]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [LoadBalancersConfig]
$creadListPrec :: ReadPrec [LoadBalancersConfig]
readPrec :: ReadPrec LoadBalancersConfig
$creadPrec :: ReadPrec LoadBalancersConfig
readList :: ReadS [LoadBalancersConfig]
$creadList :: ReadS [LoadBalancersConfig]
readsPrec :: Int -> ReadS LoadBalancersConfig
$creadsPrec :: Int -> ReadS LoadBalancersConfig
Prelude.Read, Int -> LoadBalancersConfig -> ShowS
[LoadBalancersConfig] -> ShowS
LoadBalancersConfig -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LoadBalancersConfig] -> ShowS
$cshowList :: [LoadBalancersConfig] -> ShowS
show :: LoadBalancersConfig -> String
$cshow :: LoadBalancersConfig -> String
showsPrec :: Int -> LoadBalancersConfig -> ShowS
$cshowsPrec :: Int -> LoadBalancersConfig -> ShowS
Prelude.Show, forall x. Rep LoadBalancersConfig x -> LoadBalancersConfig
forall x. LoadBalancersConfig -> Rep LoadBalancersConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep LoadBalancersConfig x -> LoadBalancersConfig
$cfrom :: forall x. LoadBalancersConfig -> Rep LoadBalancersConfig x
Prelude.Generic)
newLoadBalancersConfig ::
LoadBalancersConfig
newLoadBalancersConfig :: LoadBalancersConfig
newLoadBalancersConfig =
LoadBalancersConfig'
{ $sel:classicLoadBalancersConfig:LoadBalancersConfig' :: Maybe ClassicLoadBalancersConfig
classicLoadBalancersConfig =
forall a. Maybe a
Prelude.Nothing,
$sel:targetGroupsConfig:LoadBalancersConfig' :: Maybe TargetGroupsConfig
targetGroupsConfig = forall a. Maybe a
Prelude.Nothing
}
loadBalancersConfig_classicLoadBalancersConfig :: Lens.Lens' LoadBalancersConfig (Prelude.Maybe ClassicLoadBalancersConfig)
loadBalancersConfig_classicLoadBalancersConfig :: Lens' LoadBalancersConfig (Maybe ClassicLoadBalancersConfig)
loadBalancersConfig_classicLoadBalancersConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancersConfig' {Maybe ClassicLoadBalancersConfig
classicLoadBalancersConfig :: Maybe ClassicLoadBalancersConfig
$sel:classicLoadBalancersConfig:LoadBalancersConfig' :: LoadBalancersConfig -> Maybe ClassicLoadBalancersConfig
classicLoadBalancersConfig} -> Maybe ClassicLoadBalancersConfig
classicLoadBalancersConfig) (\s :: LoadBalancersConfig
s@LoadBalancersConfig' {} Maybe ClassicLoadBalancersConfig
a -> LoadBalancersConfig
s {$sel:classicLoadBalancersConfig:LoadBalancersConfig' :: Maybe ClassicLoadBalancersConfig
classicLoadBalancersConfig = Maybe ClassicLoadBalancersConfig
a} :: LoadBalancersConfig)
loadBalancersConfig_targetGroupsConfig :: Lens.Lens' LoadBalancersConfig (Prelude.Maybe TargetGroupsConfig)
loadBalancersConfig_targetGroupsConfig :: Lens' LoadBalancersConfig (Maybe TargetGroupsConfig)
loadBalancersConfig_targetGroupsConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancersConfig' {Maybe TargetGroupsConfig
targetGroupsConfig :: Maybe TargetGroupsConfig
$sel:targetGroupsConfig:LoadBalancersConfig' :: LoadBalancersConfig -> Maybe TargetGroupsConfig
targetGroupsConfig} -> Maybe TargetGroupsConfig
targetGroupsConfig) (\s :: LoadBalancersConfig
s@LoadBalancersConfig' {} Maybe TargetGroupsConfig
a -> LoadBalancersConfig
s {$sel:targetGroupsConfig:LoadBalancersConfig' :: Maybe TargetGroupsConfig
targetGroupsConfig = Maybe TargetGroupsConfig
a} :: LoadBalancersConfig)
instance Data.FromXML LoadBalancersConfig where
parseXML :: [Node] -> Either String LoadBalancersConfig
parseXML [Node]
x =
Maybe ClassicLoadBalancersConfig
-> Maybe TargetGroupsConfig -> LoadBalancersConfig
LoadBalancersConfig'
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
"classicLoadBalancersConfig")
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
"targetGroupsConfig")
instance Prelude.Hashable LoadBalancersConfig where
hashWithSalt :: Int -> LoadBalancersConfig -> Int
hashWithSalt Int
_salt LoadBalancersConfig' {Maybe ClassicLoadBalancersConfig
Maybe TargetGroupsConfig
targetGroupsConfig :: Maybe TargetGroupsConfig
classicLoadBalancersConfig :: Maybe ClassicLoadBalancersConfig
$sel:targetGroupsConfig:LoadBalancersConfig' :: LoadBalancersConfig -> Maybe TargetGroupsConfig
$sel:classicLoadBalancersConfig:LoadBalancersConfig' :: LoadBalancersConfig -> Maybe ClassicLoadBalancersConfig
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ClassicLoadBalancersConfig
classicLoadBalancersConfig
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TargetGroupsConfig
targetGroupsConfig
instance Prelude.NFData LoadBalancersConfig where
rnf :: LoadBalancersConfig -> ()
rnf LoadBalancersConfig' {Maybe ClassicLoadBalancersConfig
Maybe TargetGroupsConfig
targetGroupsConfig :: Maybe TargetGroupsConfig
classicLoadBalancersConfig :: Maybe ClassicLoadBalancersConfig
$sel:targetGroupsConfig:LoadBalancersConfig' :: LoadBalancersConfig -> Maybe TargetGroupsConfig
$sel:classicLoadBalancersConfig:LoadBalancersConfig' :: LoadBalancersConfig -> Maybe ClassicLoadBalancersConfig
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ClassicLoadBalancersConfig
classicLoadBalancersConfig
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TargetGroupsConfig
targetGroupsConfig
instance Data.ToQuery LoadBalancersConfig where
toQuery :: LoadBalancersConfig -> QueryString
toQuery LoadBalancersConfig' {Maybe ClassicLoadBalancersConfig
Maybe TargetGroupsConfig
targetGroupsConfig :: Maybe TargetGroupsConfig
classicLoadBalancersConfig :: Maybe ClassicLoadBalancersConfig
$sel:targetGroupsConfig:LoadBalancersConfig' :: LoadBalancersConfig -> Maybe TargetGroupsConfig
$sel:classicLoadBalancersConfig:LoadBalancersConfig' :: LoadBalancersConfig -> Maybe ClassicLoadBalancersConfig
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"ClassicLoadBalancersConfig"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe ClassicLoadBalancersConfig
classicLoadBalancersConfig,
ByteString
"TargetGroupsConfig" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe TargetGroupsConfig
targetGroupsConfig
]