{-# 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 or 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