amazonka-neptune-2.0: gen/Amazonka/Neptune/Types/DBEngineVersion.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.Neptune.Types.DBEngineVersion
-- 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.Neptune.Types.DBEngineVersion where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Neptune.Types.CharacterSet
import Amazonka.Neptune.Types.Timezone
import Amazonka.Neptune.Types.UpgradeTarget
import qualified Amazonka.Prelude as Prelude
-- | This data type is used as a response element in the action
-- DescribeDBEngineVersions.
--
-- /See:/ 'newDBEngineVersion' smart constructor.
data DBEngineVersion = DBEngineVersion'
{ -- | The description of the database engine.
dbEngineDescription :: Prelude.Maybe Prelude.Text,
-- | The description of the database engine version.
dbEngineVersionDescription :: Prelude.Maybe Prelude.Text,
-- | The name of the DB parameter group family for the database engine.
dbParameterGroupFamily :: Prelude.Maybe Prelude.Text,
-- | /(Not supported by Neptune)/
defaultCharacterSet :: Prelude.Maybe CharacterSet,
-- | The name of the database engine.
engine :: Prelude.Maybe Prelude.Text,
-- | The version number of the database engine.
engineVersion :: Prelude.Maybe Prelude.Text,
-- | The types of logs that the database engine has available for export to
-- CloudWatch Logs.
exportableLogTypes :: Prelude.Maybe [Prelude.Text],
-- | /(Not supported by Neptune)/
supportedCharacterSets :: Prelude.Maybe [CharacterSet],
-- | A list of the time zones supported by this engine for the @Timezone@
-- parameter of the @CreateDBInstance@ action.
supportedTimezones :: Prelude.Maybe [Timezone],
-- | A value that indicates whether you can use Aurora global databases with
-- a specific DB engine version.
supportsGlobalDatabases :: Prelude.Maybe Prelude.Bool,
-- | A value that indicates whether the engine version supports exporting the
-- log types specified by ExportableLogTypes to CloudWatch Logs.
supportsLogExportsToCloudwatchLogs :: Prelude.Maybe Prelude.Bool,
-- | Indicates whether the database engine version supports read replicas.
supportsReadReplica :: Prelude.Maybe Prelude.Bool,
-- | A list of engine versions that this database engine version can be
-- upgraded to.
validUpgradeTarget :: Prelude.Maybe [UpgradeTarget]
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'DBEngineVersion' 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:
--
-- 'dbEngineDescription', 'dbEngineVersion_dbEngineDescription' - The description of the database engine.
--
-- 'dbEngineVersionDescription', 'dbEngineVersion_dbEngineVersionDescription' - The description of the database engine version.
--
-- 'dbParameterGroupFamily', 'dbEngineVersion_dbParameterGroupFamily' - The name of the DB parameter group family for the database engine.
--
-- 'defaultCharacterSet', 'dbEngineVersion_defaultCharacterSet' - /(Not supported by Neptune)/
--
-- 'engine', 'dbEngineVersion_engine' - The name of the database engine.
--
-- 'engineVersion', 'dbEngineVersion_engineVersion' - The version number of the database engine.
--
-- 'exportableLogTypes', 'dbEngineVersion_exportableLogTypes' - The types of logs that the database engine has available for export to
-- CloudWatch Logs.
--
-- 'supportedCharacterSets', 'dbEngineVersion_supportedCharacterSets' - /(Not supported by Neptune)/
--
-- 'supportedTimezones', 'dbEngineVersion_supportedTimezones' - A list of the time zones supported by this engine for the @Timezone@
-- parameter of the @CreateDBInstance@ action.
--
-- 'supportsGlobalDatabases', 'dbEngineVersion_supportsGlobalDatabases' - A value that indicates whether you can use Aurora global databases with
-- a specific DB engine version.
--
-- 'supportsLogExportsToCloudwatchLogs', 'dbEngineVersion_supportsLogExportsToCloudwatchLogs' - A value that indicates whether the engine version supports exporting the
-- log types specified by ExportableLogTypes to CloudWatch Logs.
--
-- 'supportsReadReplica', 'dbEngineVersion_supportsReadReplica' - Indicates whether the database engine version supports read replicas.
--
-- 'validUpgradeTarget', 'dbEngineVersion_validUpgradeTarget' - A list of engine versions that this database engine version can be
-- upgraded to.
newDBEngineVersion ::
DBEngineVersion
newDBEngineVersion =
DBEngineVersion'
{ dbEngineDescription =
Prelude.Nothing,
dbEngineVersionDescription = Prelude.Nothing,
dbParameterGroupFamily = Prelude.Nothing,
defaultCharacterSet = Prelude.Nothing,
engine = Prelude.Nothing,
engineVersion = Prelude.Nothing,
exportableLogTypes = Prelude.Nothing,
supportedCharacterSets = Prelude.Nothing,
supportedTimezones = Prelude.Nothing,
supportsGlobalDatabases = Prelude.Nothing,
supportsLogExportsToCloudwatchLogs = Prelude.Nothing,
supportsReadReplica = Prelude.Nothing,
validUpgradeTarget = Prelude.Nothing
}
-- | The description of the database engine.
dbEngineVersion_dbEngineDescription :: Lens.Lens' DBEngineVersion (Prelude.Maybe Prelude.Text)
dbEngineVersion_dbEngineDescription = Lens.lens (\DBEngineVersion' {dbEngineDescription} -> dbEngineDescription) (\s@DBEngineVersion' {} a -> s {dbEngineDescription = a} :: DBEngineVersion)
-- | The description of the database engine version.
dbEngineVersion_dbEngineVersionDescription :: Lens.Lens' DBEngineVersion (Prelude.Maybe Prelude.Text)
dbEngineVersion_dbEngineVersionDescription = Lens.lens (\DBEngineVersion' {dbEngineVersionDescription} -> dbEngineVersionDescription) (\s@DBEngineVersion' {} a -> s {dbEngineVersionDescription = a} :: DBEngineVersion)
-- | The name of the DB parameter group family for the database engine.
dbEngineVersion_dbParameterGroupFamily :: Lens.Lens' DBEngineVersion (Prelude.Maybe Prelude.Text)
dbEngineVersion_dbParameterGroupFamily = Lens.lens (\DBEngineVersion' {dbParameterGroupFamily} -> dbParameterGroupFamily) (\s@DBEngineVersion' {} a -> s {dbParameterGroupFamily = a} :: DBEngineVersion)
-- | /(Not supported by Neptune)/
dbEngineVersion_defaultCharacterSet :: Lens.Lens' DBEngineVersion (Prelude.Maybe CharacterSet)
dbEngineVersion_defaultCharacterSet = Lens.lens (\DBEngineVersion' {defaultCharacterSet} -> defaultCharacterSet) (\s@DBEngineVersion' {} a -> s {defaultCharacterSet = a} :: DBEngineVersion)
-- | The name of the database engine.
dbEngineVersion_engine :: Lens.Lens' DBEngineVersion (Prelude.Maybe Prelude.Text)
dbEngineVersion_engine = Lens.lens (\DBEngineVersion' {engine} -> engine) (\s@DBEngineVersion' {} a -> s {engine = a} :: DBEngineVersion)
-- | The version number of the database engine.
dbEngineVersion_engineVersion :: Lens.Lens' DBEngineVersion (Prelude.Maybe Prelude.Text)
dbEngineVersion_engineVersion = Lens.lens (\DBEngineVersion' {engineVersion} -> engineVersion) (\s@DBEngineVersion' {} a -> s {engineVersion = a} :: DBEngineVersion)
-- | The types of logs that the database engine has available for export to
-- CloudWatch Logs.
dbEngineVersion_exportableLogTypes :: Lens.Lens' DBEngineVersion (Prelude.Maybe [Prelude.Text])
dbEngineVersion_exportableLogTypes = Lens.lens (\DBEngineVersion' {exportableLogTypes} -> exportableLogTypes) (\s@DBEngineVersion' {} a -> s {exportableLogTypes = a} :: DBEngineVersion) Prelude.. Lens.mapping Lens.coerced
-- | /(Not supported by Neptune)/
dbEngineVersion_supportedCharacterSets :: Lens.Lens' DBEngineVersion (Prelude.Maybe [CharacterSet])
dbEngineVersion_supportedCharacterSets = Lens.lens (\DBEngineVersion' {supportedCharacterSets} -> supportedCharacterSets) (\s@DBEngineVersion' {} a -> s {supportedCharacterSets = a} :: DBEngineVersion) Prelude.. Lens.mapping Lens.coerced
-- | A list of the time zones supported by this engine for the @Timezone@
-- parameter of the @CreateDBInstance@ action.
dbEngineVersion_supportedTimezones :: Lens.Lens' DBEngineVersion (Prelude.Maybe [Timezone])
dbEngineVersion_supportedTimezones = Lens.lens (\DBEngineVersion' {supportedTimezones} -> supportedTimezones) (\s@DBEngineVersion' {} a -> s {supportedTimezones = a} :: DBEngineVersion) Prelude.. Lens.mapping Lens.coerced
-- | A value that indicates whether you can use Aurora global databases with
-- a specific DB engine version.
dbEngineVersion_supportsGlobalDatabases :: Lens.Lens' DBEngineVersion (Prelude.Maybe Prelude.Bool)
dbEngineVersion_supportsGlobalDatabases = Lens.lens (\DBEngineVersion' {supportsGlobalDatabases} -> supportsGlobalDatabases) (\s@DBEngineVersion' {} a -> s {supportsGlobalDatabases = a} :: DBEngineVersion)
-- | A value that indicates whether the engine version supports exporting the
-- log types specified by ExportableLogTypes to CloudWatch Logs.
dbEngineVersion_supportsLogExportsToCloudwatchLogs :: Lens.Lens' DBEngineVersion (Prelude.Maybe Prelude.Bool)
dbEngineVersion_supportsLogExportsToCloudwatchLogs = Lens.lens (\DBEngineVersion' {supportsLogExportsToCloudwatchLogs} -> supportsLogExportsToCloudwatchLogs) (\s@DBEngineVersion' {} a -> s {supportsLogExportsToCloudwatchLogs = a} :: DBEngineVersion)
-- | Indicates whether the database engine version supports read replicas.
dbEngineVersion_supportsReadReplica :: Lens.Lens' DBEngineVersion (Prelude.Maybe Prelude.Bool)
dbEngineVersion_supportsReadReplica = Lens.lens (\DBEngineVersion' {supportsReadReplica} -> supportsReadReplica) (\s@DBEngineVersion' {} a -> s {supportsReadReplica = a} :: DBEngineVersion)
-- | A list of engine versions that this database engine version can be
-- upgraded to.
dbEngineVersion_validUpgradeTarget :: Lens.Lens' DBEngineVersion (Prelude.Maybe [UpgradeTarget])
dbEngineVersion_validUpgradeTarget = Lens.lens (\DBEngineVersion' {validUpgradeTarget} -> validUpgradeTarget) (\s@DBEngineVersion' {} a -> s {validUpgradeTarget = a} :: DBEngineVersion) Prelude.. Lens.mapping Lens.coerced
instance Data.FromXML DBEngineVersion where
parseXML x =
DBEngineVersion'
Prelude.<$> (x Data..@? "DBEngineDescription")
Prelude.<*> (x Data..@? "DBEngineVersionDescription")
Prelude.<*> (x Data..@? "DBParameterGroupFamily")
Prelude.<*> (x Data..@? "DefaultCharacterSet")
Prelude.<*> (x Data..@? "Engine")
Prelude.<*> (x Data..@? "EngineVersion")
Prelude.<*> ( x
Data..@? "ExportableLogTypes"
Core..!@ Prelude.mempty
Prelude.>>= Core.may (Data.parseXMLList "member")
)
Prelude.<*> ( x
Data..@? "SupportedCharacterSets"
Core..!@ Prelude.mempty
Prelude.>>= Core.may (Data.parseXMLList "CharacterSet")
)
Prelude.<*> ( x
Data..@? "SupportedTimezones"
Core..!@ Prelude.mempty
Prelude.>>= Core.may (Data.parseXMLList "Timezone")
)
Prelude.<*> (x Data..@? "SupportsGlobalDatabases")
Prelude.<*> (x Data..@? "SupportsLogExportsToCloudwatchLogs")
Prelude.<*> (x Data..@? "SupportsReadReplica")
Prelude.<*> ( x
Data..@? "ValidUpgradeTarget"
Core..!@ Prelude.mempty
Prelude.>>= Core.may (Data.parseXMLList "UpgradeTarget")
)
instance Prelude.Hashable DBEngineVersion where
hashWithSalt _salt DBEngineVersion' {..} =
_salt
`Prelude.hashWithSalt` dbEngineDescription
`Prelude.hashWithSalt` dbEngineVersionDescription
`Prelude.hashWithSalt` dbParameterGroupFamily
`Prelude.hashWithSalt` defaultCharacterSet
`Prelude.hashWithSalt` engine
`Prelude.hashWithSalt` engineVersion
`Prelude.hashWithSalt` exportableLogTypes
`Prelude.hashWithSalt` supportedCharacterSets
`Prelude.hashWithSalt` supportedTimezones
`Prelude.hashWithSalt` supportsGlobalDatabases
`Prelude.hashWithSalt` supportsLogExportsToCloudwatchLogs
`Prelude.hashWithSalt` supportsReadReplica
`Prelude.hashWithSalt` validUpgradeTarget
instance Prelude.NFData DBEngineVersion where
rnf DBEngineVersion' {..} =
Prelude.rnf dbEngineDescription
`Prelude.seq` Prelude.rnf dbEngineVersionDescription
`Prelude.seq` Prelude.rnf dbParameterGroupFamily
`Prelude.seq` Prelude.rnf defaultCharacterSet
`Prelude.seq` Prelude.rnf engine
`Prelude.seq` Prelude.rnf engineVersion
`Prelude.seq` Prelude.rnf exportableLogTypes
`Prelude.seq` Prelude.rnf supportedCharacterSets
`Prelude.seq` Prelude.rnf supportedTimezones
`Prelude.seq` Prelude.rnf supportsGlobalDatabases
`Prelude.seq` Prelude.rnf supportsLogExportsToCloudwatchLogs
`Prelude.seq` Prelude.rnf supportsReadReplica
`Prelude.seq` Prelude.rnf validUpgradeTarget