packages feed

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

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import Amazonka.DMS.Types.ReplicationTaskAssessmentRunProgress
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

-- | Provides information that describes a premigration assessment run that
-- you have started using the @StartReplicationTaskAssessmentRun@
-- operation.
--
-- Some of the information appears based on other operations that can
-- return the @ReplicationTaskAssessmentRun@ object.
--
-- /See:/ 'newReplicationTaskAssessmentRun' smart constructor.
data ReplicationTaskAssessmentRun = ReplicationTaskAssessmentRun'
  { -- | Indication of the completion progress for the individual assessments
    -- specified to run.
    assessmentProgress :: Prelude.Maybe ReplicationTaskAssessmentRunProgress,
    -- | Unique name of the assessment run.
    assessmentRunName :: Prelude.Maybe Prelude.Text,
    -- | Last message generated by an individual assessment failure.
    lastFailureMessage :: Prelude.Maybe Prelude.Text,
    -- | ARN of the migration task associated with this premigration assessment
    -- run.
    replicationTaskArn :: Prelude.Maybe Prelude.Text,
    -- | Amazon Resource Name (ARN) of this assessment run.
    replicationTaskAssessmentRunArn :: Prelude.Maybe Prelude.Text,
    -- | Date on which the assessment run was created using the
    -- @StartReplicationTaskAssessmentRun@ operation.
    replicationTaskAssessmentRunCreationDate :: Prelude.Maybe Data.POSIX,
    -- | Encryption mode used to encrypt the assessment run results.
    resultEncryptionMode :: Prelude.Maybe Prelude.Text,
    -- | ARN of the KMS encryption key used to encrypt the assessment run
    -- results.
    resultKmsKeyArn :: Prelude.Maybe Prelude.Text,
    -- | Amazon S3 bucket where DMS stores the results of this assessment run.
    resultLocationBucket :: Prelude.Maybe Prelude.Text,
    -- | Folder in an Amazon S3 bucket where DMS stores the results of this
    -- assessment run.
    resultLocationFolder :: Prelude.Maybe Prelude.Text,
    -- | ARN of the service role used to start the assessment run using the
    -- @StartReplicationTaskAssessmentRun@ operation. The role must allow the
    -- @iam:PassRole@ action.
    serviceAccessRoleArn :: Prelude.Maybe Prelude.Text,
    -- | Assessment run status.
    --
    -- This status can have one of the following values:
    --
    -- -   @\"cancelling\"@ – The assessment run was canceled by the
    --     @CancelReplicationTaskAssessmentRun@ operation.
    --
    -- -   @\"deleting\"@ – The assessment run was deleted by the
    --     @DeleteReplicationTaskAssessmentRun@ operation.
    --
    -- -   @\"failed\"@ – At least one individual assessment completed with a
    --     @failed@ status.
    --
    -- -   @\"error-provisioning\"@ – An internal error occurred while
    --     resources were provisioned (during @provisioning@ status).
    --
    -- -   @\"error-executing\"@ – An internal error occurred while individual
    --     assessments ran (during @running@ status).
    --
    -- -   @\"invalid state\"@ – The assessment run is in an unknown state.
    --
    -- -   @\"passed\"@ – All individual assessments have completed, and none
    --     has a @failed@ status.
    --
    -- -   @\"provisioning\"@ – Resources required to run individual
    --     assessments are being provisioned.
    --
    -- -   @\"running\"@ – Individual assessments are being run.
    --
    -- -   @\"starting\"@ – The assessment run is starting, but resources are
    --     not yet being provisioned for individual assessments.
    status :: Prelude.Maybe Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'ReplicationTaskAssessmentRun' 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:
--
-- 'assessmentProgress', 'replicationTaskAssessmentRun_assessmentProgress' - Indication of the completion progress for the individual assessments
-- specified to run.
--
-- 'assessmentRunName', 'replicationTaskAssessmentRun_assessmentRunName' - Unique name of the assessment run.
--
-- 'lastFailureMessage', 'replicationTaskAssessmentRun_lastFailureMessage' - Last message generated by an individual assessment failure.
--
-- 'replicationTaskArn', 'replicationTaskAssessmentRun_replicationTaskArn' - ARN of the migration task associated with this premigration assessment
-- run.
--
-- 'replicationTaskAssessmentRunArn', 'replicationTaskAssessmentRun_replicationTaskAssessmentRunArn' - Amazon Resource Name (ARN) of this assessment run.
--
-- 'replicationTaskAssessmentRunCreationDate', 'replicationTaskAssessmentRun_replicationTaskAssessmentRunCreationDate' - Date on which the assessment run was created using the
-- @StartReplicationTaskAssessmentRun@ operation.
--
-- 'resultEncryptionMode', 'replicationTaskAssessmentRun_resultEncryptionMode' - Encryption mode used to encrypt the assessment run results.
--
-- 'resultKmsKeyArn', 'replicationTaskAssessmentRun_resultKmsKeyArn' - ARN of the KMS encryption key used to encrypt the assessment run
-- results.
--
-- 'resultLocationBucket', 'replicationTaskAssessmentRun_resultLocationBucket' - Amazon S3 bucket where DMS stores the results of this assessment run.
--
-- 'resultLocationFolder', 'replicationTaskAssessmentRun_resultLocationFolder' - Folder in an Amazon S3 bucket where DMS stores the results of this
-- assessment run.
--
-- 'serviceAccessRoleArn', 'replicationTaskAssessmentRun_serviceAccessRoleArn' - ARN of the service role used to start the assessment run using the
-- @StartReplicationTaskAssessmentRun@ operation. The role must allow the
-- @iam:PassRole@ action.
--
-- 'status', 'replicationTaskAssessmentRun_status' - Assessment run status.
--
-- This status can have one of the following values:
--
-- -   @\"cancelling\"@ – The assessment run was canceled by the
--     @CancelReplicationTaskAssessmentRun@ operation.
--
-- -   @\"deleting\"@ – The assessment run was deleted by the
--     @DeleteReplicationTaskAssessmentRun@ operation.
--
-- -   @\"failed\"@ – At least one individual assessment completed with a
--     @failed@ status.
--
-- -   @\"error-provisioning\"@ – An internal error occurred while
--     resources were provisioned (during @provisioning@ status).
--
-- -   @\"error-executing\"@ – An internal error occurred while individual
--     assessments ran (during @running@ status).
--
-- -   @\"invalid state\"@ – The assessment run is in an unknown state.
--
-- -   @\"passed\"@ – All individual assessments have completed, and none
--     has a @failed@ status.
--
-- -   @\"provisioning\"@ – Resources required to run individual
--     assessments are being provisioned.
--
-- -   @\"running\"@ – Individual assessments are being run.
--
-- -   @\"starting\"@ – The assessment run is starting, but resources are
--     not yet being provisioned for individual assessments.
newReplicationTaskAssessmentRun ::
  ReplicationTaskAssessmentRun
newReplicationTaskAssessmentRun =
  ReplicationTaskAssessmentRun'
    { assessmentProgress =
        Prelude.Nothing,
      assessmentRunName = Prelude.Nothing,
      lastFailureMessage = Prelude.Nothing,
      replicationTaskArn = Prelude.Nothing,
      replicationTaskAssessmentRunArn =
        Prelude.Nothing,
      replicationTaskAssessmentRunCreationDate =
        Prelude.Nothing,
      resultEncryptionMode = Prelude.Nothing,
      resultKmsKeyArn = Prelude.Nothing,
      resultLocationBucket = Prelude.Nothing,
      resultLocationFolder = Prelude.Nothing,
      serviceAccessRoleArn = Prelude.Nothing,
      status = Prelude.Nothing
    }

-- | Indication of the completion progress for the individual assessments
-- specified to run.
replicationTaskAssessmentRun_assessmentProgress :: Lens.Lens' ReplicationTaskAssessmentRun (Prelude.Maybe ReplicationTaskAssessmentRunProgress)
replicationTaskAssessmentRun_assessmentProgress = Lens.lens (\ReplicationTaskAssessmentRun' {assessmentProgress} -> assessmentProgress) (\s@ReplicationTaskAssessmentRun' {} a -> s {assessmentProgress = a} :: ReplicationTaskAssessmentRun)

-- | Unique name of the assessment run.
replicationTaskAssessmentRun_assessmentRunName :: Lens.Lens' ReplicationTaskAssessmentRun (Prelude.Maybe Prelude.Text)
replicationTaskAssessmentRun_assessmentRunName = Lens.lens (\ReplicationTaskAssessmentRun' {assessmentRunName} -> assessmentRunName) (\s@ReplicationTaskAssessmentRun' {} a -> s {assessmentRunName = a} :: ReplicationTaskAssessmentRun)

-- | Last message generated by an individual assessment failure.
replicationTaskAssessmentRun_lastFailureMessage :: Lens.Lens' ReplicationTaskAssessmentRun (Prelude.Maybe Prelude.Text)
replicationTaskAssessmentRun_lastFailureMessage = Lens.lens (\ReplicationTaskAssessmentRun' {lastFailureMessage} -> lastFailureMessage) (\s@ReplicationTaskAssessmentRun' {} a -> s {lastFailureMessage = a} :: ReplicationTaskAssessmentRun)

-- | ARN of the migration task associated with this premigration assessment
-- run.
replicationTaskAssessmentRun_replicationTaskArn :: Lens.Lens' ReplicationTaskAssessmentRun (Prelude.Maybe Prelude.Text)
replicationTaskAssessmentRun_replicationTaskArn = Lens.lens (\ReplicationTaskAssessmentRun' {replicationTaskArn} -> replicationTaskArn) (\s@ReplicationTaskAssessmentRun' {} a -> s {replicationTaskArn = a} :: ReplicationTaskAssessmentRun)

-- | Amazon Resource Name (ARN) of this assessment run.
replicationTaskAssessmentRun_replicationTaskAssessmentRunArn :: Lens.Lens' ReplicationTaskAssessmentRun (Prelude.Maybe Prelude.Text)
replicationTaskAssessmentRun_replicationTaskAssessmentRunArn = Lens.lens (\ReplicationTaskAssessmentRun' {replicationTaskAssessmentRunArn} -> replicationTaskAssessmentRunArn) (\s@ReplicationTaskAssessmentRun' {} a -> s {replicationTaskAssessmentRunArn = a} :: ReplicationTaskAssessmentRun)

-- | Date on which the assessment run was created using the
-- @StartReplicationTaskAssessmentRun@ operation.
replicationTaskAssessmentRun_replicationTaskAssessmentRunCreationDate :: Lens.Lens' ReplicationTaskAssessmentRun (Prelude.Maybe Prelude.UTCTime)
replicationTaskAssessmentRun_replicationTaskAssessmentRunCreationDate = Lens.lens (\ReplicationTaskAssessmentRun' {replicationTaskAssessmentRunCreationDate} -> replicationTaskAssessmentRunCreationDate) (\s@ReplicationTaskAssessmentRun' {} a -> s {replicationTaskAssessmentRunCreationDate = a} :: ReplicationTaskAssessmentRun) Prelude.. Lens.mapping Data._Time

-- | Encryption mode used to encrypt the assessment run results.
replicationTaskAssessmentRun_resultEncryptionMode :: Lens.Lens' ReplicationTaskAssessmentRun (Prelude.Maybe Prelude.Text)
replicationTaskAssessmentRun_resultEncryptionMode = Lens.lens (\ReplicationTaskAssessmentRun' {resultEncryptionMode} -> resultEncryptionMode) (\s@ReplicationTaskAssessmentRun' {} a -> s {resultEncryptionMode = a} :: ReplicationTaskAssessmentRun)

-- | ARN of the KMS encryption key used to encrypt the assessment run
-- results.
replicationTaskAssessmentRun_resultKmsKeyArn :: Lens.Lens' ReplicationTaskAssessmentRun (Prelude.Maybe Prelude.Text)
replicationTaskAssessmentRun_resultKmsKeyArn = Lens.lens (\ReplicationTaskAssessmentRun' {resultKmsKeyArn} -> resultKmsKeyArn) (\s@ReplicationTaskAssessmentRun' {} a -> s {resultKmsKeyArn = a} :: ReplicationTaskAssessmentRun)

-- | Amazon S3 bucket where DMS stores the results of this assessment run.
replicationTaskAssessmentRun_resultLocationBucket :: Lens.Lens' ReplicationTaskAssessmentRun (Prelude.Maybe Prelude.Text)
replicationTaskAssessmentRun_resultLocationBucket = Lens.lens (\ReplicationTaskAssessmentRun' {resultLocationBucket} -> resultLocationBucket) (\s@ReplicationTaskAssessmentRun' {} a -> s {resultLocationBucket = a} :: ReplicationTaskAssessmentRun)

-- | Folder in an Amazon S3 bucket where DMS stores the results of this
-- assessment run.
replicationTaskAssessmentRun_resultLocationFolder :: Lens.Lens' ReplicationTaskAssessmentRun (Prelude.Maybe Prelude.Text)
replicationTaskAssessmentRun_resultLocationFolder = Lens.lens (\ReplicationTaskAssessmentRun' {resultLocationFolder} -> resultLocationFolder) (\s@ReplicationTaskAssessmentRun' {} a -> s {resultLocationFolder = a} :: ReplicationTaskAssessmentRun)

-- | ARN of the service role used to start the assessment run using the
-- @StartReplicationTaskAssessmentRun@ operation. The role must allow the
-- @iam:PassRole@ action.
replicationTaskAssessmentRun_serviceAccessRoleArn :: Lens.Lens' ReplicationTaskAssessmentRun (Prelude.Maybe Prelude.Text)
replicationTaskAssessmentRun_serviceAccessRoleArn = Lens.lens (\ReplicationTaskAssessmentRun' {serviceAccessRoleArn} -> serviceAccessRoleArn) (\s@ReplicationTaskAssessmentRun' {} a -> s {serviceAccessRoleArn = a} :: ReplicationTaskAssessmentRun)

-- | Assessment run status.
--
-- This status can have one of the following values:
--
-- -   @\"cancelling\"@ – The assessment run was canceled by the
--     @CancelReplicationTaskAssessmentRun@ operation.
--
-- -   @\"deleting\"@ – The assessment run was deleted by the
--     @DeleteReplicationTaskAssessmentRun@ operation.
--
-- -   @\"failed\"@ – At least one individual assessment completed with a
--     @failed@ status.
--
-- -   @\"error-provisioning\"@ – An internal error occurred while
--     resources were provisioned (during @provisioning@ status).
--
-- -   @\"error-executing\"@ – An internal error occurred while individual
--     assessments ran (during @running@ status).
--
-- -   @\"invalid state\"@ – The assessment run is in an unknown state.
--
-- -   @\"passed\"@ – All individual assessments have completed, and none
--     has a @failed@ status.
--
-- -   @\"provisioning\"@ – Resources required to run individual
--     assessments are being provisioned.
--
-- -   @\"running\"@ – Individual assessments are being run.
--
-- -   @\"starting\"@ – The assessment run is starting, but resources are
--     not yet being provisioned for individual assessments.
replicationTaskAssessmentRun_status :: Lens.Lens' ReplicationTaskAssessmentRun (Prelude.Maybe Prelude.Text)
replicationTaskAssessmentRun_status = Lens.lens (\ReplicationTaskAssessmentRun' {status} -> status) (\s@ReplicationTaskAssessmentRun' {} a -> s {status = a} :: ReplicationTaskAssessmentRun)

instance Data.FromJSON ReplicationTaskAssessmentRun where
  parseJSON =
    Data.withObject
      "ReplicationTaskAssessmentRun"
      ( \x ->
          ReplicationTaskAssessmentRun'
            Prelude.<$> (x Data..:? "AssessmentProgress")
            Prelude.<*> (x Data..:? "AssessmentRunName")
            Prelude.<*> (x Data..:? "LastFailureMessage")
            Prelude.<*> (x Data..:? "ReplicationTaskArn")
            Prelude.<*> (x Data..:? "ReplicationTaskAssessmentRunArn")
            Prelude.<*> ( x
                            Data..:? "ReplicationTaskAssessmentRunCreationDate"
                        )
            Prelude.<*> (x Data..:? "ResultEncryptionMode")
            Prelude.<*> (x Data..:? "ResultKmsKeyArn")
            Prelude.<*> (x Data..:? "ResultLocationBucket")
            Prelude.<*> (x Data..:? "ResultLocationFolder")
            Prelude.<*> (x Data..:? "ServiceAccessRoleArn")
            Prelude.<*> (x Data..:? "Status")
      )

instance
  Prelude.Hashable
    ReplicationTaskAssessmentRun
  where
  hashWithSalt _salt ReplicationTaskAssessmentRun' {..} =
    _salt
      `Prelude.hashWithSalt` assessmentProgress
      `Prelude.hashWithSalt` assessmentRunName
      `Prelude.hashWithSalt` lastFailureMessage
      `Prelude.hashWithSalt` replicationTaskArn
      `Prelude.hashWithSalt` replicationTaskAssessmentRunArn
      `Prelude.hashWithSalt` replicationTaskAssessmentRunCreationDate
      `Prelude.hashWithSalt` resultEncryptionMode
      `Prelude.hashWithSalt` resultKmsKeyArn
      `Prelude.hashWithSalt` resultLocationBucket
      `Prelude.hashWithSalt` resultLocationFolder
      `Prelude.hashWithSalt` serviceAccessRoleArn
      `Prelude.hashWithSalt` status

instance Prelude.NFData ReplicationTaskAssessmentRun where
  rnf ReplicationTaskAssessmentRun' {..} =
    Prelude.rnf assessmentProgress
      `Prelude.seq` Prelude.rnf assessmentRunName
      `Prelude.seq` Prelude.rnf lastFailureMessage
      `Prelude.seq` Prelude.rnf replicationTaskArn
      `Prelude.seq` Prelude.rnf replicationTaskAssessmentRunArn
      `Prelude.seq` Prelude.rnf replicationTaskAssessmentRunCreationDate
      `Prelude.seq` Prelude.rnf resultEncryptionMode
      `Prelude.seq` Prelude.rnf resultKmsKeyArn
      `Prelude.seq` Prelude.rnf resultLocationBucket
      `Prelude.seq` Prelude.rnf resultLocationFolder
      `Prelude.seq` Prelude.rnf serviceAccessRoleArn
      `Prelude.seq` Prelude.rnf status