{-# 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.ElastiCache.Types.NodeGroupConfiguration where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
data NodeGroupConfiguration = NodeGroupConfiguration'
{
NodeGroupConfiguration -> Maybe Text
nodeGroupId :: Prelude.Maybe Prelude.Text,
NodeGroupConfiguration -> Maybe Text
primaryAvailabilityZone :: Prelude.Maybe Prelude.Text,
NodeGroupConfiguration -> Maybe Text
primaryOutpostArn :: Prelude.Maybe Prelude.Text,
NodeGroupConfiguration -> Maybe [Text]
replicaAvailabilityZones :: Prelude.Maybe [Prelude.Text],
NodeGroupConfiguration -> Maybe Int
replicaCount :: Prelude.Maybe Prelude.Int,
NodeGroupConfiguration -> Maybe [Text]
replicaOutpostArns :: Prelude.Maybe [Prelude.Text],
NodeGroupConfiguration -> Maybe Text
slots :: Prelude.Maybe Prelude.Text
}
deriving (NodeGroupConfiguration -> NodeGroupConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NodeGroupConfiguration -> NodeGroupConfiguration -> Bool
$c/= :: NodeGroupConfiguration -> NodeGroupConfiguration -> Bool
== :: NodeGroupConfiguration -> NodeGroupConfiguration -> Bool
$c== :: NodeGroupConfiguration -> NodeGroupConfiguration -> Bool
Prelude.Eq, ReadPrec [NodeGroupConfiguration]
ReadPrec NodeGroupConfiguration
Int -> ReadS NodeGroupConfiguration
ReadS [NodeGroupConfiguration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [NodeGroupConfiguration]
$creadListPrec :: ReadPrec [NodeGroupConfiguration]
readPrec :: ReadPrec NodeGroupConfiguration
$creadPrec :: ReadPrec NodeGroupConfiguration
readList :: ReadS [NodeGroupConfiguration]
$creadList :: ReadS [NodeGroupConfiguration]
readsPrec :: Int -> ReadS NodeGroupConfiguration
$creadsPrec :: Int -> ReadS NodeGroupConfiguration
Prelude.Read, Int -> NodeGroupConfiguration -> ShowS
[NodeGroupConfiguration] -> ShowS
NodeGroupConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NodeGroupConfiguration] -> ShowS
$cshowList :: [NodeGroupConfiguration] -> ShowS
show :: NodeGroupConfiguration -> String
$cshow :: NodeGroupConfiguration -> String
showsPrec :: Int -> NodeGroupConfiguration -> ShowS
$cshowsPrec :: Int -> NodeGroupConfiguration -> ShowS
Prelude.Show, forall x. Rep NodeGroupConfiguration x -> NodeGroupConfiguration
forall x. NodeGroupConfiguration -> Rep NodeGroupConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep NodeGroupConfiguration x -> NodeGroupConfiguration
$cfrom :: forall x. NodeGroupConfiguration -> Rep NodeGroupConfiguration x
Prelude.Generic)
newNodeGroupConfiguration ::
NodeGroupConfiguration
newNodeGroupConfiguration :: NodeGroupConfiguration
newNodeGroupConfiguration =
NodeGroupConfiguration'
{ $sel:nodeGroupId:NodeGroupConfiguration' :: Maybe Text
nodeGroupId =
forall a. Maybe a
Prelude.Nothing,
$sel:primaryAvailabilityZone:NodeGroupConfiguration' :: Maybe Text
primaryAvailabilityZone = forall a. Maybe a
Prelude.Nothing,
$sel:primaryOutpostArn:NodeGroupConfiguration' :: Maybe Text
primaryOutpostArn = forall a. Maybe a
Prelude.Nothing,
$sel:replicaAvailabilityZones:NodeGroupConfiguration' :: Maybe [Text]
replicaAvailabilityZones = forall a. Maybe a
Prelude.Nothing,
$sel:replicaCount:NodeGroupConfiguration' :: Maybe Int
replicaCount = forall a. Maybe a
Prelude.Nothing,
$sel:replicaOutpostArns:NodeGroupConfiguration' :: Maybe [Text]
replicaOutpostArns = forall a. Maybe a
Prelude.Nothing,
$sel:slots:NodeGroupConfiguration' :: Maybe Text
slots = forall a. Maybe a
Prelude.Nothing
}
nodeGroupConfiguration_nodeGroupId :: Lens.Lens' NodeGroupConfiguration (Prelude.Maybe Prelude.Text)
nodeGroupConfiguration_nodeGroupId :: Lens' NodeGroupConfiguration (Maybe Text)
nodeGroupConfiguration_nodeGroupId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NodeGroupConfiguration' {Maybe Text
nodeGroupId :: Maybe Text
$sel:nodeGroupId:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Text
nodeGroupId} -> Maybe Text
nodeGroupId) (\s :: NodeGroupConfiguration
s@NodeGroupConfiguration' {} Maybe Text
a -> NodeGroupConfiguration
s {$sel:nodeGroupId:NodeGroupConfiguration' :: Maybe Text
nodeGroupId = Maybe Text
a} :: NodeGroupConfiguration)
nodeGroupConfiguration_primaryAvailabilityZone :: Lens.Lens' NodeGroupConfiguration (Prelude.Maybe Prelude.Text)
nodeGroupConfiguration_primaryAvailabilityZone :: Lens' NodeGroupConfiguration (Maybe Text)
nodeGroupConfiguration_primaryAvailabilityZone = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NodeGroupConfiguration' {Maybe Text
primaryAvailabilityZone :: Maybe Text
$sel:primaryAvailabilityZone:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Text
primaryAvailabilityZone} -> Maybe Text
primaryAvailabilityZone) (\s :: NodeGroupConfiguration
s@NodeGroupConfiguration' {} Maybe Text
a -> NodeGroupConfiguration
s {$sel:primaryAvailabilityZone:NodeGroupConfiguration' :: Maybe Text
primaryAvailabilityZone = Maybe Text
a} :: NodeGroupConfiguration)
nodeGroupConfiguration_primaryOutpostArn :: Lens.Lens' NodeGroupConfiguration (Prelude.Maybe Prelude.Text)
nodeGroupConfiguration_primaryOutpostArn :: Lens' NodeGroupConfiguration (Maybe Text)
nodeGroupConfiguration_primaryOutpostArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NodeGroupConfiguration' {Maybe Text
primaryOutpostArn :: Maybe Text
$sel:primaryOutpostArn:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Text
primaryOutpostArn} -> Maybe Text
primaryOutpostArn) (\s :: NodeGroupConfiguration
s@NodeGroupConfiguration' {} Maybe Text
a -> NodeGroupConfiguration
s {$sel:primaryOutpostArn:NodeGroupConfiguration' :: Maybe Text
primaryOutpostArn = Maybe Text
a} :: NodeGroupConfiguration)
nodeGroupConfiguration_replicaAvailabilityZones :: Lens.Lens' NodeGroupConfiguration (Prelude.Maybe [Prelude.Text])
nodeGroupConfiguration_replicaAvailabilityZones :: Lens' NodeGroupConfiguration (Maybe [Text])
nodeGroupConfiguration_replicaAvailabilityZones = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NodeGroupConfiguration' {Maybe [Text]
replicaAvailabilityZones :: Maybe [Text]
$sel:replicaAvailabilityZones:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe [Text]
replicaAvailabilityZones} -> Maybe [Text]
replicaAvailabilityZones) (\s :: NodeGroupConfiguration
s@NodeGroupConfiguration' {} Maybe [Text]
a -> NodeGroupConfiguration
s {$sel:replicaAvailabilityZones:NodeGroupConfiguration' :: Maybe [Text]
replicaAvailabilityZones = Maybe [Text]
a} :: NodeGroupConfiguration) 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
nodeGroupConfiguration_replicaCount :: Lens.Lens' NodeGroupConfiguration (Prelude.Maybe Prelude.Int)
nodeGroupConfiguration_replicaCount :: Lens' NodeGroupConfiguration (Maybe Int)
nodeGroupConfiguration_replicaCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NodeGroupConfiguration' {Maybe Int
replicaCount :: Maybe Int
$sel:replicaCount:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Int
replicaCount} -> Maybe Int
replicaCount) (\s :: NodeGroupConfiguration
s@NodeGroupConfiguration' {} Maybe Int
a -> NodeGroupConfiguration
s {$sel:replicaCount:NodeGroupConfiguration' :: Maybe Int
replicaCount = Maybe Int
a} :: NodeGroupConfiguration)
nodeGroupConfiguration_replicaOutpostArns :: Lens.Lens' NodeGroupConfiguration (Prelude.Maybe [Prelude.Text])
nodeGroupConfiguration_replicaOutpostArns :: Lens' NodeGroupConfiguration (Maybe [Text])
nodeGroupConfiguration_replicaOutpostArns = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NodeGroupConfiguration' {Maybe [Text]
replicaOutpostArns :: Maybe [Text]
$sel:replicaOutpostArns:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe [Text]
replicaOutpostArns} -> Maybe [Text]
replicaOutpostArns) (\s :: NodeGroupConfiguration
s@NodeGroupConfiguration' {} Maybe [Text]
a -> NodeGroupConfiguration
s {$sel:replicaOutpostArns:NodeGroupConfiguration' :: Maybe [Text]
replicaOutpostArns = Maybe [Text]
a} :: NodeGroupConfiguration) 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
nodeGroupConfiguration_slots :: Lens.Lens' NodeGroupConfiguration (Prelude.Maybe Prelude.Text)
nodeGroupConfiguration_slots :: Lens' NodeGroupConfiguration (Maybe Text)
nodeGroupConfiguration_slots = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NodeGroupConfiguration' {Maybe Text
slots :: Maybe Text
$sel:slots:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Text
slots} -> Maybe Text
slots) (\s :: NodeGroupConfiguration
s@NodeGroupConfiguration' {} Maybe Text
a -> NodeGroupConfiguration
s {$sel:slots:NodeGroupConfiguration' :: Maybe Text
slots = Maybe Text
a} :: NodeGroupConfiguration)
instance Data.FromXML NodeGroupConfiguration where
parseXML :: [Node] -> Either String NodeGroupConfiguration
parseXML [Node]
x =
Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe Int
-> Maybe [Text]
-> Maybe Text
-> NodeGroupConfiguration
NodeGroupConfiguration'
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
"NodeGroupId")
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
"PrimaryAvailabilityZone")
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
"PrimaryOutpostArn")
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
"ReplicaAvailabilityZones"
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
"AvailabilityZone")
)
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
"ReplicaCount")
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
"ReplicaOutpostArns"
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
"OutpostArn")
)
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
"Slots")
instance Prelude.Hashable NodeGroupConfiguration where
hashWithSalt :: Int -> NodeGroupConfiguration -> Int
hashWithSalt Int
_salt NodeGroupConfiguration' {Maybe Int
Maybe [Text]
Maybe Text
slots :: Maybe Text
replicaOutpostArns :: Maybe [Text]
replicaCount :: Maybe Int
replicaAvailabilityZones :: Maybe [Text]
primaryOutpostArn :: Maybe Text
primaryAvailabilityZone :: Maybe Text
nodeGroupId :: Maybe Text
$sel:slots:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Text
$sel:replicaOutpostArns:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe [Text]
$sel:replicaCount:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Int
$sel:replicaAvailabilityZones:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe [Text]
$sel:primaryOutpostArn:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Text
$sel:primaryAvailabilityZone:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Text
$sel:nodeGroupId:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nodeGroupId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
primaryAvailabilityZone
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
primaryOutpostArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
replicaAvailabilityZones
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
replicaCount
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
replicaOutpostArns
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
slots
instance Prelude.NFData NodeGroupConfiguration where
rnf :: NodeGroupConfiguration -> ()
rnf NodeGroupConfiguration' {Maybe Int
Maybe [Text]
Maybe Text
slots :: Maybe Text
replicaOutpostArns :: Maybe [Text]
replicaCount :: Maybe Int
replicaAvailabilityZones :: Maybe [Text]
primaryOutpostArn :: Maybe Text
primaryAvailabilityZone :: Maybe Text
nodeGroupId :: Maybe Text
$sel:slots:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Text
$sel:replicaOutpostArns:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe [Text]
$sel:replicaCount:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Int
$sel:replicaAvailabilityZones:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe [Text]
$sel:primaryOutpostArn:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Text
$sel:primaryAvailabilityZone:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Text
$sel:nodeGroupId:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nodeGroupId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
primaryAvailabilityZone
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
primaryOutpostArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
replicaAvailabilityZones
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
replicaCount
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
replicaOutpostArns
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
slots
instance Data.ToQuery NodeGroupConfiguration where
toQuery :: NodeGroupConfiguration -> QueryString
toQuery NodeGroupConfiguration' {Maybe Int
Maybe [Text]
Maybe Text
slots :: Maybe Text
replicaOutpostArns :: Maybe [Text]
replicaCount :: Maybe Int
replicaAvailabilityZones :: Maybe [Text]
primaryOutpostArn :: Maybe Text
primaryAvailabilityZone :: Maybe Text
nodeGroupId :: Maybe Text
$sel:slots:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Text
$sel:replicaOutpostArns:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe [Text]
$sel:replicaCount:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Int
$sel:replicaAvailabilityZones:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe [Text]
$sel:primaryOutpostArn:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Text
$sel:primaryAvailabilityZone:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Text
$sel:nodeGroupId:NodeGroupConfiguration' :: NodeGroupConfiguration -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"NodeGroupId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
nodeGroupId,
ByteString
"PrimaryAvailabilityZone"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
primaryAvailabilityZone,
ByteString
"PrimaryOutpostArn" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
primaryOutpostArn,
ByteString
"ReplicaAvailabilityZones"
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
"AvailabilityZone"
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
replicaAvailabilityZones
),
ByteString
"ReplicaCount" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
replicaCount,
ByteString
"ReplicaOutpostArns"
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
"OutpostArn"
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
replicaOutpostArns
),
ByteString
"Slots" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
slots
]