{-# 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.CacheEngineVersion -- 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.CacheEngineVersion 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 -- | Provides all of the details about a particular cache engine version. -- -- /See:/ 'newCacheEngineVersion' smart constructor. data CacheEngineVersion = CacheEngineVersion' { -- | The description of the cache engine. cacheEngineDescription :: Prelude.Maybe Prelude.Text, -- | The description of the cache engine version. cacheEngineVersionDescription :: Prelude.Maybe Prelude.Text, -- | The name of the cache parameter group family associated with this cache -- engine. -- -- Valid values are: @memcached1.4@ | @memcached1.5@ | @memcached1.6@ | -- @redis2.6@ | @redis2.8@ | @redis3.2@ | @redis4.0@ | @redis5.0@ | -- @redis6.x@ cacheParameterGroupFamily :: Prelude.Maybe Prelude.Text, -- | The name of the cache engine. engine :: Prelude.Maybe Prelude.Text, -- | The version number of the cache engine. engineVersion :: Prelude.Maybe Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'CacheEngineVersion' 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: -- -- 'cacheEngineDescription', 'cacheEngineVersion_cacheEngineDescription' - The description of the cache engine. -- -- 'cacheEngineVersionDescription', 'cacheEngineVersion_cacheEngineVersionDescription' - The description of the cache engine version. -- -- 'cacheParameterGroupFamily', 'cacheEngineVersion_cacheParameterGroupFamily' - The name of the cache parameter group family associated with this cache -- engine. -- -- Valid values are: @memcached1.4@ | @memcached1.5@ | @memcached1.6@ | -- @redis2.6@ | @redis2.8@ | @redis3.2@ | @redis4.0@ | @redis5.0@ | -- @redis6.x@ -- -- 'engine', 'cacheEngineVersion_engine' - The name of the cache engine. -- -- 'engineVersion', 'cacheEngineVersion_engineVersion' - The version number of the cache engine. newCacheEngineVersion :: CacheEngineVersion newCacheEngineVersion = CacheEngineVersion' { cacheEngineDescription = Prelude.Nothing, cacheEngineVersionDescription = Prelude.Nothing, cacheParameterGroupFamily = Prelude.Nothing, engine = Prelude.Nothing, engineVersion = Prelude.Nothing } -- | The description of the cache engine. cacheEngineVersion_cacheEngineDescription :: Lens.Lens' CacheEngineVersion (Prelude.Maybe Prelude.Text) cacheEngineVersion_cacheEngineDescription = Lens.lens (\CacheEngineVersion' {cacheEngineDescription} -> cacheEngineDescription) (\s@CacheEngineVersion' {} a -> s {cacheEngineDescription = a} :: CacheEngineVersion) -- | The description of the cache engine version. cacheEngineVersion_cacheEngineVersionDescription :: Lens.Lens' CacheEngineVersion (Prelude.Maybe Prelude.Text) cacheEngineVersion_cacheEngineVersionDescription = Lens.lens (\CacheEngineVersion' {cacheEngineVersionDescription} -> cacheEngineVersionDescription) (\s@CacheEngineVersion' {} a -> s {cacheEngineVersionDescription = a} :: CacheEngineVersion) -- | The name of the cache parameter group family associated with this cache -- engine. -- -- Valid values are: @memcached1.4@ | @memcached1.5@ | @memcached1.6@ | -- @redis2.6@ | @redis2.8@ | @redis3.2@ | @redis4.0@ | @redis5.0@ | -- @redis6.x@ cacheEngineVersion_cacheParameterGroupFamily :: Lens.Lens' CacheEngineVersion (Prelude.Maybe Prelude.Text) cacheEngineVersion_cacheParameterGroupFamily = Lens.lens (\CacheEngineVersion' {cacheParameterGroupFamily} -> cacheParameterGroupFamily) (\s@CacheEngineVersion' {} a -> s {cacheParameterGroupFamily = a} :: CacheEngineVersion) -- | The name of the cache engine. cacheEngineVersion_engine :: Lens.Lens' CacheEngineVersion (Prelude.Maybe Prelude.Text) cacheEngineVersion_engine = Lens.lens (\CacheEngineVersion' {engine} -> engine) (\s@CacheEngineVersion' {} a -> s {engine = a} :: CacheEngineVersion) -- | The version number of the cache engine. cacheEngineVersion_engineVersion :: Lens.Lens' CacheEngineVersion (Prelude.Maybe Prelude.Text) cacheEngineVersion_engineVersion = Lens.lens (\CacheEngineVersion' {engineVersion} -> engineVersion) (\s@CacheEngineVersion' {} a -> s {engineVersion = a} :: CacheEngineVersion) instance Data.FromXML CacheEngineVersion where parseXML x = CacheEngineVersion' Prelude.<$> (x Data..@? "CacheEngineDescription") Prelude.<*> (x Data..@? "CacheEngineVersionDescription") Prelude.<*> (x Data..@? "CacheParameterGroupFamily") Prelude.<*> (x Data..@? "Engine") Prelude.<*> (x Data..@? "EngineVersion") instance Prelude.Hashable CacheEngineVersion where hashWithSalt _salt CacheEngineVersion' {..} = _salt `Prelude.hashWithSalt` cacheEngineDescription `Prelude.hashWithSalt` cacheEngineVersionDescription `Prelude.hashWithSalt` cacheParameterGroupFamily `Prelude.hashWithSalt` engine `Prelude.hashWithSalt` engineVersion instance Prelude.NFData CacheEngineVersion where rnf CacheEngineVersion' {..} = Prelude.rnf cacheEngineDescription `Prelude.seq` Prelude.rnf cacheEngineVersionDescription `Prelude.seq` Prelude.rnf cacheParameterGroupFamily `Prelude.seq` Prelude.rnf engine `Prelude.seq` Prelude.rnf engineVersion