amazonka-elasticache-2.0: gen/Amazonka/ElastiCache/Types/PendingModifiedValues.hs
{-# 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.ElastiCache.Types.PendingModifiedValues
-- 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.ElastiCache.Types.PendingModifiedValues where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.ElastiCache.Types.AuthTokenUpdateStatus
import Amazonka.ElastiCache.Types.PendingLogDeliveryConfiguration
import Amazonka.ElastiCache.Types.TransitEncryptionMode
import qualified Amazonka.Prelude as Prelude
-- | A group of settings that are applied to the cluster in the future, or
-- that are currently being applied.
--
-- /See:/ 'newPendingModifiedValues' smart constructor.
data PendingModifiedValues = PendingModifiedValues'
{ -- | The auth token status
authTokenStatus :: Prelude.Maybe AuthTokenUpdateStatus,
-- | A list of cache node IDs that are being removed (or will be removed)
-- from the cluster. A node ID is a 4-digit numeric identifier (0001, 0002,
-- etc.).
cacheNodeIdsToRemove :: Prelude.Maybe [Prelude.Text],
-- | The cache node type that this cluster or replication group is scaled to.
cacheNodeType :: Prelude.Maybe Prelude.Text,
-- | The new cache engine version that the cluster runs.
engineVersion :: Prelude.Maybe Prelude.Text,
-- | The log delivery configurations being modified
logDeliveryConfigurations :: Prelude.Maybe [PendingLogDeliveryConfiguration],
-- | The new number of cache nodes for the cluster.
--
-- For clusters running Redis, this value must be 1. For clusters running
-- Memcached, this value must be between 1 and 40.
numCacheNodes :: Prelude.Maybe Prelude.Int,
-- | A flag that enables in-transit encryption when set to true.
transitEncryptionEnabled :: Prelude.Maybe Prelude.Bool,
-- | A setting that allows you to migrate your clients to use in-transit
-- encryption, with no downtime.
transitEncryptionMode :: Prelude.Maybe TransitEncryptionMode
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'PendingModifiedValues' 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:
--
-- 'authTokenStatus', 'pendingModifiedValues_authTokenStatus' - The auth token status
--
-- 'cacheNodeIdsToRemove', 'pendingModifiedValues_cacheNodeIdsToRemove' - A list of cache node IDs that are being removed (or will be removed)
-- from the cluster. A node ID is a 4-digit numeric identifier (0001, 0002,
-- etc.).
--
-- 'cacheNodeType', 'pendingModifiedValues_cacheNodeType' - The cache node type that this cluster or replication group is scaled to.
--
-- 'engineVersion', 'pendingModifiedValues_engineVersion' - The new cache engine version that the cluster runs.
--
-- 'logDeliveryConfigurations', 'pendingModifiedValues_logDeliveryConfigurations' - The log delivery configurations being modified
--
-- 'numCacheNodes', 'pendingModifiedValues_numCacheNodes' - The new number of cache nodes for the cluster.
--
-- For clusters running Redis, this value must be 1. For clusters running
-- Memcached, this value must be between 1 and 40.
--
-- 'transitEncryptionEnabled', 'pendingModifiedValues_transitEncryptionEnabled' - A flag that enables in-transit encryption when set to true.
--
-- 'transitEncryptionMode', 'pendingModifiedValues_transitEncryptionMode' - A setting that allows you to migrate your clients to use in-transit
-- encryption, with no downtime.
newPendingModifiedValues ::
PendingModifiedValues
newPendingModifiedValues =
PendingModifiedValues'
{ authTokenStatus =
Prelude.Nothing,
cacheNodeIdsToRemove = Prelude.Nothing,
cacheNodeType = Prelude.Nothing,
engineVersion = Prelude.Nothing,
logDeliveryConfigurations = Prelude.Nothing,
numCacheNodes = Prelude.Nothing,
transitEncryptionEnabled = Prelude.Nothing,
transitEncryptionMode = Prelude.Nothing
}
-- | The auth token status
pendingModifiedValues_authTokenStatus :: Lens.Lens' PendingModifiedValues (Prelude.Maybe AuthTokenUpdateStatus)
pendingModifiedValues_authTokenStatus = Lens.lens (\PendingModifiedValues' {authTokenStatus} -> authTokenStatus) (\s@PendingModifiedValues' {} a -> s {authTokenStatus = a} :: PendingModifiedValues)
-- | A list of cache node IDs that are being removed (or will be removed)
-- from the cluster. A node ID is a 4-digit numeric identifier (0001, 0002,
-- etc.).
pendingModifiedValues_cacheNodeIdsToRemove :: Lens.Lens' PendingModifiedValues (Prelude.Maybe [Prelude.Text])
pendingModifiedValues_cacheNodeIdsToRemove = Lens.lens (\PendingModifiedValues' {cacheNodeIdsToRemove} -> cacheNodeIdsToRemove) (\s@PendingModifiedValues' {} a -> s {cacheNodeIdsToRemove = a} :: PendingModifiedValues) Prelude.. Lens.mapping Lens.coerced
-- | The cache node type that this cluster or replication group is scaled to.
pendingModifiedValues_cacheNodeType :: Lens.Lens' PendingModifiedValues (Prelude.Maybe Prelude.Text)
pendingModifiedValues_cacheNodeType = Lens.lens (\PendingModifiedValues' {cacheNodeType} -> cacheNodeType) (\s@PendingModifiedValues' {} a -> s {cacheNodeType = a} :: PendingModifiedValues)
-- | The new cache engine version that the cluster runs.
pendingModifiedValues_engineVersion :: Lens.Lens' PendingModifiedValues (Prelude.Maybe Prelude.Text)
pendingModifiedValues_engineVersion = Lens.lens (\PendingModifiedValues' {engineVersion} -> engineVersion) (\s@PendingModifiedValues' {} a -> s {engineVersion = a} :: PendingModifiedValues)
-- | The log delivery configurations being modified
pendingModifiedValues_logDeliveryConfigurations :: Lens.Lens' PendingModifiedValues (Prelude.Maybe [PendingLogDeliveryConfiguration])
pendingModifiedValues_logDeliveryConfigurations = Lens.lens (\PendingModifiedValues' {logDeliveryConfigurations} -> logDeliveryConfigurations) (\s@PendingModifiedValues' {} a -> s {logDeliveryConfigurations = a} :: PendingModifiedValues) Prelude.. Lens.mapping Lens.coerced
-- | The new number of cache nodes for the cluster.
--
-- For clusters running Redis, this value must be 1. For clusters running
-- Memcached, this value must be between 1 and 40.
pendingModifiedValues_numCacheNodes :: Lens.Lens' PendingModifiedValues (Prelude.Maybe Prelude.Int)
pendingModifiedValues_numCacheNodes = Lens.lens (\PendingModifiedValues' {numCacheNodes} -> numCacheNodes) (\s@PendingModifiedValues' {} a -> s {numCacheNodes = a} :: PendingModifiedValues)
-- | A flag that enables in-transit encryption when set to true.
pendingModifiedValues_transitEncryptionEnabled :: Lens.Lens' PendingModifiedValues (Prelude.Maybe Prelude.Bool)
pendingModifiedValues_transitEncryptionEnabled = Lens.lens (\PendingModifiedValues' {transitEncryptionEnabled} -> transitEncryptionEnabled) (\s@PendingModifiedValues' {} a -> s {transitEncryptionEnabled = a} :: PendingModifiedValues)
-- | A setting that allows you to migrate your clients to use in-transit
-- encryption, with no downtime.
pendingModifiedValues_transitEncryptionMode :: Lens.Lens' PendingModifiedValues (Prelude.Maybe TransitEncryptionMode)
pendingModifiedValues_transitEncryptionMode = Lens.lens (\PendingModifiedValues' {transitEncryptionMode} -> transitEncryptionMode) (\s@PendingModifiedValues' {} a -> s {transitEncryptionMode = a} :: PendingModifiedValues)
instance Data.FromXML PendingModifiedValues where
parseXML x =
PendingModifiedValues'
Prelude.<$> (x Data..@? "AuthTokenStatus")
Prelude.<*> ( x
Data..@? "CacheNodeIdsToRemove"
Core..!@ Prelude.mempty
Prelude.>>= Core.may (Data.parseXMLList "CacheNodeId")
)
Prelude.<*> (x Data..@? "CacheNodeType")
Prelude.<*> (x Data..@? "EngineVersion")
Prelude.<*> ( x
Data..@? "LogDeliveryConfigurations"
Core..!@ Prelude.mempty
Prelude.>>= Core.may (Data.parseXMLList "member")
)
Prelude.<*> (x Data..@? "NumCacheNodes")
Prelude.<*> (x Data..@? "TransitEncryptionEnabled")
Prelude.<*> (x Data..@? "TransitEncryptionMode")
instance Prelude.Hashable PendingModifiedValues where
hashWithSalt _salt PendingModifiedValues' {..} =
_salt
`Prelude.hashWithSalt` authTokenStatus
`Prelude.hashWithSalt` cacheNodeIdsToRemove
`Prelude.hashWithSalt` cacheNodeType
`Prelude.hashWithSalt` engineVersion
`Prelude.hashWithSalt` logDeliveryConfigurations
`Prelude.hashWithSalt` numCacheNodes
`Prelude.hashWithSalt` transitEncryptionEnabled
`Prelude.hashWithSalt` transitEncryptionMode
instance Prelude.NFData PendingModifiedValues where
rnf PendingModifiedValues' {..} =
Prelude.rnf authTokenStatus
`Prelude.seq` Prelude.rnf cacheNodeIdsToRemove
`Prelude.seq` Prelude.rnf cacheNodeType
`Prelude.seq` Prelude.rnf engineVersion
`Prelude.seq` Prelude.rnf logDeliveryConfigurations
`Prelude.seq` Prelude.rnf numCacheNodes
`Prelude.seq` Prelude.rnf transitEncryptionEnabled
`Prelude.seq` Prelude.rnf transitEncryptionMode