packages feed

amazonka-m2-2.0: gen/Amazonka/M2/Types/EnvironmentSummary.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.M2.Types.EnvironmentSummary
-- 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.M2.Types.EnvironmentSummary where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.M2.Types.EngineType
import Amazonka.M2.Types.EnvironmentLifecycle
import qualified Amazonka.Prelude as Prelude

-- | Contains a subset of the possible runtime environment attributes. Used
-- in the environment list.
--
-- /See:/ 'newEnvironmentSummary' smart constructor.
data EnvironmentSummary = EnvironmentSummary'
  { -- | The timestamp when the runtime environment was created.
    creationTime :: Data.POSIX,
    -- | The target platform for the runtime environment.
    engineType :: EngineType,
    -- | The version of the runtime engine.
    engineVersion :: Prelude.Text,
    -- | The Amazon Resource Name (ARN) of a particular runtime environment.
    environmentArn :: Prelude.Text,
    -- | The unique identifier of a particular runtime environment.
    environmentId :: Prelude.Text,
    -- | The instance type of the runtime environment.
    instanceType :: Prelude.Text,
    -- | The name of the runtime environment.
    name :: Prelude.Text,
    -- | The status of the runtime environment
    status :: EnvironmentLifecycle
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'EnvironmentSummary' 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:
--
-- 'creationTime', 'environmentSummary_creationTime' - The timestamp when the runtime environment was created.
--
-- 'engineType', 'environmentSummary_engineType' - The target platform for the runtime environment.
--
-- 'engineVersion', 'environmentSummary_engineVersion' - The version of the runtime engine.
--
-- 'environmentArn', 'environmentSummary_environmentArn' - The Amazon Resource Name (ARN) of a particular runtime environment.
--
-- 'environmentId', 'environmentSummary_environmentId' - The unique identifier of a particular runtime environment.
--
-- 'instanceType', 'environmentSummary_instanceType' - The instance type of the runtime environment.
--
-- 'name', 'environmentSummary_name' - The name of the runtime environment.
--
-- 'status', 'environmentSummary_status' - The status of the runtime environment
newEnvironmentSummary ::
  -- | 'creationTime'
  Prelude.UTCTime ->
  -- | 'engineType'
  EngineType ->
  -- | 'engineVersion'
  Prelude.Text ->
  -- | 'environmentArn'
  Prelude.Text ->
  -- | 'environmentId'
  Prelude.Text ->
  -- | 'instanceType'
  Prelude.Text ->
  -- | 'name'
  Prelude.Text ->
  -- | 'status'
  EnvironmentLifecycle ->
  EnvironmentSummary
newEnvironmentSummary
  pCreationTime_
  pEngineType_
  pEngineVersion_
  pEnvironmentArn_
  pEnvironmentId_
  pInstanceType_
  pName_
  pStatus_ =
    EnvironmentSummary'
      { creationTime =
          Data._Time Lens.# pCreationTime_,
        engineType = pEngineType_,
        engineVersion = pEngineVersion_,
        environmentArn = pEnvironmentArn_,
        environmentId = pEnvironmentId_,
        instanceType = pInstanceType_,
        name = pName_,
        status = pStatus_
      }

-- | The timestamp when the runtime environment was created.
environmentSummary_creationTime :: Lens.Lens' EnvironmentSummary Prelude.UTCTime
environmentSummary_creationTime = Lens.lens (\EnvironmentSummary' {creationTime} -> creationTime) (\s@EnvironmentSummary' {} a -> s {creationTime = a} :: EnvironmentSummary) Prelude.. Data._Time

-- | The target platform for the runtime environment.
environmentSummary_engineType :: Lens.Lens' EnvironmentSummary EngineType
environmentSummary_engineType = Lens.lens (\EnvironmentSummary' {engineType} -> engineType) (\s@EnvironmentSummary' {} a -> s {engineType = a} :: EnvironmentSummary)

-- | The version of the runtime engine.
environmentSummary_engineVersion :: Lens.Lens' EnvironmentSummary Prelude.Text
environmentSummary_engineVersion = Lens.lens (\EnvironmentSummary' {engineVersion} -> engineVersion) (\s@EnvironmentSummary' {} a -> s {engineVersion = a} :: EnvironmentSummary)

-- | The Amazon Resource Name (ARN) of a particular runtime environment.
environmentSummary_environmentArn :: Lens.Lens' EnvironmentSummary Prelude.Text
environmentSummary_environmentArn = Lens.lens (\EnvironmentSummary' {environmentArn} -> environmentArn) (\s@EnvironmentSummary' {} a -> s {environmentArn = a} :: EnvironmentSummary)

-- | The unique identifier of a particular runtime environment.
environmentSummary_environmentId :: Lens.Lens' EnvironmentSummary Prelude.Text
environmentSummary_environmentId = Lens.lens (\EnvironmentSummary' {environmentId} -> environmentId) (\s@EnvironmentSummary' {} a -> s {environmentId = a} :: EnvironmentSummary)

-- | The instance type of the runtime environment.
environmentSummary_instanceType :: Lens.Lens' EnvironmentSummary Prelude.Text
environmentSummary_instanceType = Lens.lens (\EnvironmentSummary' {instanceType} -> instanceType) (\s@EnvironmentSummary' {} a -> s {instanceType = a} :: EnvironmentSummary)

-- | The name of the runtime environment.
environmentSummary_name :: Lens.Lens' EnvironmentSummary Prelude.Text
environmentSummary_name = Lens.lens (\EnvironmentSummary' {name} -> name) (\s@EnvironmentSummary' {} a -> s {name = a} :: EnvironmentSummary)

-- | The status of the runtime environment
environmentSummary_status :: Lens.Lens' EnvironmentSummary EnvironmentLifecycle
environmentSummary_status = Lens.lens (\EnvironmentSummary' {status} -> status) (\s@EnvironmentSummary' {} a -> s {status = a} :: EnvironmentSummary)

instance Data.FromJSON EnvironmentSummary where
  parseJSON =
    Data.withObject
      "EnvironmentSummary"
      ( \x ->
          EnvironmentSummary'
            Prelude.<$> (x Data..: "creationTime")
            Prelude.<*> (x Data..: "engineType")
            Prelude.<*> (x Data..: "engineVersion")
            Prelude.<*> (x Data..: "environmentArn")
            Prelude.<*> (x Data..: "environmentId")
            Prelude.<*> (x Data..: "instanceType")
            Prelude.<*> (x Data..: "name")
            Prelude.<*> (x Data..: "status")
      )

instance Prelude.Hashable EnvironmentSummary where
  hashWithSalt _salt EnvironmentSummary' {..} =
    _salt
      `Prelude.hashWithSalt` creationTime
      `Prelude.hashWithSalt` engineType
      `Prelude.hashWithSalt` engineVersion
      `Prelude.hashWithSalt` environmentArn
      `Prelude.hashWithSalt` environmentId
      `Prelude.hashWithSalt` instanceType
      `Prelude.hashWithSalt` name
      `Prelude.hashWithSalt` status

instance Prelude.NFData EnvironmentSummary where
  rnf EnvironmentSummary' {..} =
    Prelude.rnf creationTime
      `Prelude.seq` Prelude.rnf engineType
      `Prelude.seq` Prelude.rnf engineVersion
      `Prelude.seq` Prelude.rnf environmentArn
      `Prelude.seq` Prelude.rnf environmentId
      `Prelude.seq` Prelude.rnf instanceType
      `Prelude.seq` Prelude.rnf name
      `Prelude.seq` Prelude.rnf status