packages feed

amazonka-dms-2.0: gen/Amazonka/DMS/Types/DatabaseInstanceSoftwareDetailsResponse.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.DMS.Types.DatabaseInstanceSoftwareDetailsResponse
-- 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.DMS.Types.DatabaseInstanceSoftwareDetailsResponse 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

-- | Describes an inventory database instance for a Fleet Advisor collector.
--
-- /See:/ 'newDatabaseInstanceSoftwareDetailsResponse' smart constructor.
data DatabaseInstanceSoftwareDetailsResponse = DatabaseInstanceSoftwareDetailsResponse'
  { -- | The database engine of a database in a Fleet Advisor collector
    -- inventory, for example @Microsoft SQL Server@.
    engine :: Prelude.Maybe Prelude.Text,
    -- | The database engine edition of a database in a Fleet Advisor collector
    -- inventory, for example @Express@.
    engineEdition :: Prelude.Maybe Prelude.Text,
    -- | The database engine version of a database in a Fleet Advisor collector
    -- inventory, for example @2019@.
    engineVersion :: Prelude.Maybe Prelude.Text,
    -- | The operating system architecture of the database.
    osArchitecture :: Prelude.Maybe Prelude.Int,
    -- | The service pack level of the database.
    servicePack :: Prelude.Maybe Prelude.Text,
    -- | The support level of the database, for example @Mainstream support@.
    supportLevel :: Prelude.Maybe Prelude.Text,
    -- | Information about the database engine software, for example
    -- @Mainstream support ends on November 14th, 2024@.
    tooltip :: Prelude.Maybe Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'DatabaseInstanceSoftwareDetailsResponse' 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:
--
-- 'engine', 'databaseInstanceSoftwareDetailsResponse_engine' - The database engine of a database in a Fleet Advisor collector
-- inventory, for example @Microsoft SQL Server@.
--
-- 'engineEdition', 'databaseInstanceSoftwareDetailsResponse_engineEdition' - The database engine edition of a database in a Fleet Advisor collector
-- inventory, for example @Express@.
--
-- 'engineVersion', 'databaseInstanceSoftwareDetailsResponse_engineVersion' - The database engine version of a database in a Fleet Advisor collector
-- inventory, for example @2019@.
--
-- 'osArchitecture', 'databaseInstanceSoftwareDetailsResponse_osArchitecture' - The operating system architecture of the database.
--
-- 'servicePack', 'databaseInstanceSoftwareDetailsResponse_servicePack' - The service pack level of the database.
--
-- 'supportLevel', 'databaseInstanceSoftwareDetailsResponse_supportLevel' - The support level of the database, for example @Mainstream support@.
--
-- 'tooltip', 'databaseInstanceSoftwareDetailsResponse_tooltip' - Information about the database engine software, for example
-- @Mainstream support ends on November 14th, 2024@.
newDatabaseInstanceSoftwareDetailsResponse ::
  DatabaseInstanceSoftwareDetailsResponse
newDatabaseInstanceSoftwareDetailsResponse =
  DatabaseInstanceSoftwareDetailsResponse'
    { engine =
        Prelude.Nothing,
      engineEdition = Prelude.Nothing,
      engineVersion = Prelude.Nothing,
      osArchitecture = Prelude.Nothing,
      servicePack = Prelude.Nothing,
      supportLevel = Prelude.Nothing,
      tooltip = Prelude.Nothing
    }

-- | The database engine of a database in a Fleet Advisor collector
-- inventory, for example @Microsoft SQL Server@.
databaseInstanceSoftwareDetailsResponse_engine :: Lens.Lens' DatabaseInstanceSoftwareDetailsResponse (Prelude.Maybe Prelude.Text)
databaseInstanceSoftwareDetailsResponse_engine = Lens.lens (\DatabaseInstanceSoftwareDetailsResponse' {engine} -> engine) (\s@DatabaseInstanceSoftwareDetailsResponse' {} a -> s {engine = a} :: DatabaseInstanceSoftwareDetailsResponse)

-- | The database engine edition of a database in a Fleet Advisor collector
-- inventory, for example @Express@.
databaseInstanceSoftwareDetailsResponse_engineEdition :: Lens.Lens' DatabaseInstanceSoftwareDetailsResponse (Prelude.Maybe Prelude.Text)
databaseInstanceSoftwareDetailsResponse_engineEdition = Lens.lens (\DatabaseInstanceSoftwareDetailsResponse' {engineEdition} -> engineEdition) (\s@DatabaseInstanceSoftwareDetailsResponse' {} a -> s {engineEdition = a} :: DatabaseInstanceSoftwareDetailsResponse)

-- | The database engine version of a database in a Fleet Advisor collector
-- inventory, for example @2019@.
databaseInstanceSoftwareDetailsResponse_engineVersion :: Lens.Lens' DatabaseInstanceSoftwareDetailsResponse (Prelude.Maybe Prelude.Text)
databaseInstanceSoftwareDetailsResponse_engineVersion = Lens.lens (\DatabaseInstanceSoftwareDetailsResponse' {engineVersion} -> engineVersion) (\s@DatabaseInstanceSoftwareDetailsResponse' {} a -> s {engineVersion = a} :: DatabaseInstanceSoftwareDetailsResponse)

-- | The operating system architecture of the database.
databaseInstanceSoftwareDetailsResponse_osArchitecture :: Lens.Lens' DatabaseInstanceSoftwareDetailsResponse (Prelude.Maybe Prelude.Int)
databaseInstanceSoftwareDetailsResponse_osArchitecture = Lens.lens (\DatabaseInstanceSoftwareDetailsResponse' {osArchitecture} -> osArchitecture) (\s@DatabaseInstanceSoftwareDetailsResponse' {} a -> s {osArchitecture = a} :: DatabaseInstanceSoftwareDetailsResponse)

-- | The service pack level of the database.
databaseInstanceSoftwareDetailsResponse_servicePack :: Lens.Lens' DatabaseInstanceSoftwareDetailsResponse (Prelude.Maybe Prelude.Text)
databaseInstanceSoftwareDetailsResponse_servicePack = Lens.lens (\DatabaseInstanceSoftwareDetailsResponse' {servicePack} -> servicePack) (\s@DatabaseInstanceSoftwareDetailsResponse' {} a -> s {servicePack = a} :: DatabaseInstanceSoftwareDetailsResponse)

-- | The support level of the database, for example @Mainstream support@.
databaseInstanceSoftwareDetailsResponse_supportLevel :: Lens.Lens' DatabaseInstanceSoftwareDetailsResponse (Prelude.Maybe Prelude.Text)
databaseInstanceSoftwareDetailsResponse_supportLevel = Lens.lens (\DatabaseInstanceSoftwareDetailsResponse' {supportLevel} -> supportLevel) (\s@DatabaseInstanceSoftwareDetailsResponse' {} a -> s {supportLevel = a} :: DatabaseInstanceSoftwareDetailsResponse)

-- | Information about the database engine software, for example
-- @Mainstream support ends on November 14th, 2024@.
databaseInstanceSoftwareDetailsResponse_tooltip :: Lens.Lens' DatabaseInstanceSoftwareDetailsResponse (Prelude.Maybe Prelude.Text)
databaseInstanceSoftwareDetailsResponse_tooltip = Lens.lens (\DatabaseInstanceSoftwareDetailsResponse' {tooltip} -> tooltip) (\s@DatabaseInstanceSoftwareDetailsResponse' {} a -> s {tooltip = a} :: DatabaseInstanceSoftwareDetailsResponse)

instance
  Data.FromJSON
    DatabaseInstanceSoftwareDetailsResponse
  where
  parseJSON =
    Data.withObject
      "DatabaseInstanceSoftwareDetailsResponse"
      ( \x ->
          DatabaseInstanceSoftwareDetailsResponse'
            Prelude.<$> (x Data..:? "Engine")
            Prelude.<*> (x Data..:? "EngineEdition")
            Prelude.<*> (x Data..:? "EngineVersion")
            Prelude.<*> (x Data..:? "OsArchitecture")
            Prelude.<*> (x Data..:? "ServicePack")
            Prelude.<*> (x Data..:? "SupportLevel")
            Prelude.<*> (x Data..:? "Tooltip")
      )

instance
  Prelude.Hashable
    DatabaseInstanceSoftwareDetailsResponse
  where
  hashWithSalt
    _salt
    DatabaseInstanceSoftwareDetailsResponse' {..} =
      _salt
        `Prelude.hashWithSalt` engine
        `Prelude.hashWithSalt` engineEdition
        `Prelude.hashWithSalt` engineVersion
        `Prelude.hashWithSalt` osArchitecture
        `Prelude.hashWithSalt` servicePack
        `Prelude.hashWithSalt` supportLevel
        `Prelude.hashWithSalt` tooltip

instance
  Prelude.NFData
    DatabaseInstanceSoftwareDetailsResponse
  where
  rnf DatabaseInstanceSoftwareDetailsResponse' {..} =
    Prelude.rnf engine
      `Prelude.seq` Prelude.rnf engineEdition
      `Prelude.seq` Prelude.rnf engineVersion
      `Prelude.seq` Prelude.rnf osArchitecture
      `Prelude.seq` Prelude.rnf servicePack
      `Prelude.seq` Prelude.rnf supportLevel
      `Prelude.seq` Prelude.rnf tooltip