{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# 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.StartReplicationTaskAssessmentRun
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Starts a new premigration assessment run for one or more individual
-- assessments of a migration task.
--
-- The assessments that you can specify depend on the source and target
-- database engine and the migration type defined for the given task. To
-- run this operation, your migration task must already be created. After
-- you run this operation, you can review the status of each individual
-- assessment. You can also run the migration task manually after the
-- assessment run and its individual assessments complete.
module Amazonka.DMS.StartReplicationTaskAssessmentRun
  ( -- * Creating a Request
    StartReplicationTaskAssessmentRun (..),
    newStartReplicationTaskAssessmentRun,

    -- * Request Lenses
    startReplicationTaskAssessmentRun_includeOnly,
    startReplicationTaskAssessmentRun_resultKmsKeyArn,
    startReplicationTaskAssessmentRun_resultLocationFolder,
    startReplicationTaskAssessmentRun_resultEncryptionMode,
    startReplicationTaskAssessmentRun_exclude,
    startReplicationTaskAssessmentRun_replicationTaskArn,
    startReplicationTaskAssessmentRun_serviceAccessRoleArn,
    startReplicationTaskAssessmentRun_resultLocationBucket,
    startReplicationTaskAssessmentRun_assessmentRunName,

    -- * Destructuring the Response
    StartReplicationTaskAssessmentRunResponse (..),
    newStartReplicationTaskAssessmentRunResponse,

    -- * Response Lenses
    startReplicationTaskAssessmentRunResponse_replicationTaskAssessmentRun,
    startReplicationTaskAssessmentRunResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import Amazonka.DMS.Types
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- |
--
-- /See:/ 'newStartReplicationTaskAssessmentRun' smart constructor.
data StartReplicationTaskAssessmentRun = StartReplicationTaskAssessmentRun'
  { -- | Space-separated list of names for specific individual assessments that
    -- you want to include. These names come from the default list of
    -- individual assessments that DMS supports for the associated migration
    -- task. This task is specified by @ReplicationTaskArn@.
    --
    -- You can\'t set a value for @IncludeOnly@ if you also set a value for
    -- @Exclude@ in the API operation.
    --
    -- To identify the names of the default individual assessments that DMS
    -- supports for the associated migration task, run the
    -- @DescribeApplicableIndividualAssessments@ operation using its own
    -- @ReplicationTaskArn@ request parameter.
    StartReplicationTaskAssessmentRun -> Maybe [Text]
includeOnly :: Prelude.Maybe [Prelude.Text],
    -- | ARN of a custom KMS encryption key that you specify when you set
    -- @ResultEncryptionMode@ to @\"SSE_KMS@\".
    StartReplicationTaskAssessmentRun -> Maybe Text
resultKmsKeyArn :: Prelude.Maybe Prelude.Text,
    -- | Folder within an Amazon S3 bucket where you want DMS to store the
    -- results of this assessment run.
    StartReplicationTaskAssessmentRun -> Maybe Text
resultLocationFolder :: Prelude.Maybe Prelude.Text,
    -- | Encryption mode that you can specify to encrypt the results of this
    -- assessment run. If you don\'t specify this request parameter, DMS stores
    -- the assessment run results without encryption. You can specify one of
    -- the options following:
    --
    -- -   @\"SSE_S3\"@ – The server-side encryption provided as a default by
    --     Amazon S3.
    --
    -- -   @\"SSE_KMS\"@ – Key Management Service (KMS) encryption. This
    --     encryption can use either a custom KMS encryption key that you
    --     specify or the default KMS encryption key that DMS provides.
    StartReplicationTaskAssessmentRun -> Maybe Text
resultEncryptionMode :: Prelude.Maybe Prelude.Text,
    -- | Space-separated list of names for specific individual assessments that
    -- you want to exclude. These names come from the default list of
    -- individual assessments that DMS supports for the associated migration
    -- task. This task is specified by @ReplicationTaskArn@.
    --
    -- You can\'t set a value for @Exclude@ if you also set a value for
    -- @IncludeOnly@ in the API operation.
    --
    -- To identify the names of the default individual assessments that DMS
    -- supports for the associated migration task, run the
    -- @DescribeApplicableIndividualAssessments@ operation using its own
    -- @ReplicationTaskArn@ request parameter.
    StartReplicationTaskAssessmentRun -> Maybe [Text]
exclude :: Prelude.Maybe [Prelude.Text],
    -- | Amazon Resource Name (ARN) of the migration task associated with the
    -- premigration assessment run that you want to start.
    StartReplicationTaskAssessmentRun -> Text
replicationTaskArn :: Prelude.Text,
    -- | ARN of the service role needed to start the assessment run. The role
    -- must allow the @iam:PassRole@ action.
    StartReplicationTaskAssessmentRun -> Text
serviceAccessRoleArn :: Prelude.Text,
    -- | Amazon S3 bucket where you want DMS to store the results of this
    -- assessment run.
    StartReplicationTaskAssessmentRun -> Text
resultLocationBucket :: Prelude.Text,
    -- | Unique name to identify the assessment run.
    StartReplicationTaskAssessmentRun -> Text
assessmentRunName :: Prelude.Text
  }
  deriving (StartReplicationTaskAssessmentRun
-> StartReplicationTaskAssessmentRun -> Bool
(StartReplicationTaskAssessmentRun
 -> StartReplicationTaskAssessmentRun -> Bool)
-> (StartReplicationTaskAssessmentRun
    -> StartReplicationTaskAssessmentRun -> Bool)
-> Eq StartReplicationTaskAssessmentRun
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartReplicationTaskAssessmentRun
-> StartReplicationTaskAssessmentRun -> Bool
$c/= :: StartReplicationTaskAssessmentRun
-> StartReplicationTaskAssessmentRun -> Bool
== :: StartReplicationTaskAssessmentRun
-> StartReplicationTaskAssessmentRun -> Bool
$c== :: StartReplicationTaskAssessmentRun
-> StartReplicationTaskAssessmentRun -> Bool
Prelude.Eq, ReadPrec [StartReplicationTaskAssessmentRun]
ReadPrec StartReplicationTaskAssessmentRun
Int -> ReadS StartReplicationTaskAssessmentRun
ReadS [StartReplicationTaskAssessmentRun]
(Int -> ReadS StartReplicationTaskAssessmentRun)
-> ReadS [StartReplicationTaskAssessmentRun]
-> ReadPrec StartReplicationTaskAssessmentRun
-> ReadPrec [StartReplicationTaskAssessmentRun]
-> Read StartReplicationTaskAssessmentRun
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartReplicationTaskAssessmentRun]
$creadListPrec :: ReadPrec [StartReplicationTaskAssessmentRun]
readPrec :: ReadPrec StartReplicationTaskAssessmentRun
$creadPrec :: ReadPrec StartReplicationTaskAssessmentRun
readList :: ReadS [StartReplicationTaskAssessmentRun]
$creadList :: ReadS [StartReplicationTaskAssessmentRun]
readsPrec :: Int -> ReadS StartReplicationTaskAssessmentRun
$creadsPrec :: Int -> ReadS StartReplicationTaskAssessmentRun
Prelude.Read, Int -> StartReplicationTaskAssessmentRun -> ShowS
[StartReplicationTaskAssessmentRun] -> ShowS
StartReplicationTaskAssessmentRun -> String
(Int -> StartReplicationTaskAssessmentRun -> ShowS)
-> (StartReplicationTaskAssessmentRun -> String)
-> ([StartReplicationTaskAssessmentRun] -> ShowS)
-> Show StartReplicationTaskAssessmentRun
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartReplicationTaskAssessmentRun] -> ShowS
$cshowList :: [StartReplicationTaskAssessmentRun] -> ShowS
show :: StartReplicationTaskAssessmentRun -> String
$cshow :: StartReplicationTaskAssessmentRun -> String
showsPrec :: Int -> StartReplicationTaskAssessmentRun -> ShowS
$cshowsPrec :: Int -> StartReplicationTaskAssessmentRun -> ShowS
Prelude.Show, (forall x.
 StartReplicationTaskAssessmentRun
 -> Rep StartReplicationTaskAssessmentRun x)
-> (forall x.
    Rep StartReplicationTaskAssessmentRun x
    -> StartReplicationTaskAssessmentRun)
-> Generic StartReplicationTaskAssessmentRun
forall x.
Rep StartReplicationTaskAssessmentRun x
-> StartReplicationTaskAssessmentRun
forall x.
StartReplicationTaskAssessmentRun
-> Rep StartReplicationTaskAssessmentRun x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep StartReplicationTaskAssessmentRun x
-> StartReplicationTaskAssessmentRun
$cfrom :: forall x.
StartReplicationTaskAssessmentRun
-> Rep StartReplicationTaskAssessmentRun x
Prelude.Generic)

-- |
-- Create a value of 'StartReplicationTaskAssessmentRun' 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:
--
-- 'includeOnly', 'startReplicationTaskAssessmentRun_includeOnly' - Space-separated list of names for specific individual assessments that
-- you want to include. These names come from the default list of
-- individual assessments that DMS supports for the associated migration
-- task. This task is specified by @ReplicationTaskArn@.
--
-- You can\'t set a value for @IncludeOnly@ if you also set a value for
-- @Exclude@ in the API operation.
--
-- To identify the names of the default individual assessments that DMS
-- supports for the associated migration task, run the
-- @DescribeApplicableIndividualAssessments@ operation using its own
-- @ReplicationTaskArn@ request parameter.
--
-- 'resultKmsKeyArn', 'startReplicationTaskAssessmentRun_resultKmsKeyArn' - ARN of a custom KMS encryption key that you specify when you set
-- @ResultEncryptionMode@ to @\"SSE_KMS@\".
--
-- 'resultLocationFolder', 'startReplicationTaskAssessmentRun_resultLocationFolder' - Folder within an Amazon S3 bucket where you want DMS to store the
-- results of this assessment run.
--
-- 'resultEncryptionMode', 'startReplicationTaskAssessmentRun_resultEncryptionMode' - Encryption mode that you can specify to encrypt the results of this
-- assessment run. If you don\'t specify this request parameter, DMS stores
-- the assessment run results without encryption. You can specify one of
-- the options following:
--
-- -   @\"SSE_S3\"@ – The server-side encryption provided as a default by
--     Amazon S3.
--
-- -   @\"SSE_KMS\"@ – Key Management Service (KMS) encryption. This
--     encryption can use either a custom KMS encryption key that you
--     specify or the default KMS encryption key that DMS provides.
--
-- 'exclude', 'startReplicationTaskAssessmentRun_exclude' - Space-separated list of names for specific individual assessments that
-- you want to exclude. These names come from the default list of
-- individual assessments that DMS supports for the associated migration
-- task. This task is specified by @ReplicationTaskArn@.
--
-- You can\'t set a value for @Exclude@ if you also set a value for
-- @IncludeOnly@ in the API operation.
--
-- To identify the names of the default individual assessments that DMS
-- supports for the associated migration task, run the
-- @DescribeApplicableIndividualAssessments@ operation using its own
-- @ReplicationTaskArn@ request parameter.
--
-- 'replicationTaskArn', 'startReplicationTaskAssessmentRun_replicationTaskArn' - Amazon Resource Name (ARN) of the migration task associated with the
-- premigration assessment run that you want to start.
--
-- 'serviceAccessRoleArn', 'startReplicationTaskAssessmentRun_serviceAccessRoleArn' - ARN of the service role needed to start the assessment run. The role
-- must allow the @iam:PassRole@ action.
--
-- 'resultLocationBucket', 'startReplicationTaskAssessmentRun_resultLocationBucket' - Amazon S3 bucket where you want DMS to store the results of this
-- assessment run.
--
-- 'assessmentRunName', 'startReplicationTaskAssessmentRun_assessmentRunName' - Unique name to identify the assessment run.
newStartReplicationTaskAssessmentRun ::
  -- | 'replicationTaskArn'
  Prelude.Text ->
  -- | 'serviceAccessRoleArn'
  Prelude.Text ->
  -- | 'resultLocationBucket'
  Prelude.Text ->
  -- | 'assessmentRunName'
  Prelude.Text ->
  StartReplicationTaskAssessmentRun
newStartReplicationTaskAssessmentRun :: Text -> Text -> Text -> Text -> StartReplicationTaskAssessmentRun
newStartReplicationTaskAssessmentRun
  Text
pReplicationTaskArn_
  Text
pServiceAccessRoleArn_
  Text
pResultLocationBucket_
  Text
pAssessmentRunName_ =
    StartReplicationTaskAssessmentRun' :: Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Text
-> Text
-> Text
-> Text
-> StartReplicationTaskAssessmentRun
StartReplicationTaskAssessmentRun'
      { $sel:includeOnly:StartReplicationTaskAssessmentRun' :: Maybe [Text]
includeOnly =
          Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
        $sel:resultKmsKeyArn:StartReplicationTaskAssessmentRun' :: Maybe Text
resultKmsKeyArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:resultLocationFolder:StartReplicationTaskAssessmentRun' :: Maybe Text
resultLocationFolder = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:resultEncryptionMode:StartReplicationTaskAssessmentRun' :: Maybe Text
resultEncryptionMode = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:exclude:StartReplicationTaskAssessmentRun' :: Maybe [Text]
exclude = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
        $sel:replicationTaskArn:StartReplicationTaskAssessmentRun' :: Text
replicationTaskArn =
          Text
pReplicationTaskArn_,
        $sel:serviceAccessRoleArn:StartReplicationTaskAssessmentRun' :: Text
serviceAccessRoleArn =
          Text
pServiceAccessRoleArn_,
        $sel:resultLocationBucket:StartReplicationTaskAssessmentRun' :: Text
resultLocationBucket =
          Text
pResultLocationBucket_,
        $sel:assessmentRunName:StartReplicationTaskAssessmentRun' :: Text
assessmentRunName = Text
pAssessmentRunName_
      }

-- | Space-separated list of names for specific individual assessments that
-- you want to include. These names come from the default list of
-- individual assessments that DMS supports for the associated migration
-- task. This task is specified by @ReplicationTaskArn@.
--
-- You can\'t set a value for @IncludeOnly@ if you also set a value for
-- @Exclude@ in the API operation.
--
-- To identify the names of the default individual assessments that DMS
-- supports for the associated migration task, run the
-- @DescribeApplicableIndividualAssessments@ operation using its own
-- @ReplicationTaskArn@ request parameter.
startReplicationTaskAssessmentRun_includeOnly :: Lens.Lens' StartReplicationTaskAssessmentRun (Prelude.Maybe [Prelude.Text])
startReplicationTaskAssessmentRun_includeOnly :: (Maybe [Text] -> f (Maybe [Text]))
-> StartReplicationTaskAssessmentRun
-> f StartReplicationTaskAssessmentRun
startReplicationTaskAssessmentRun_includeOnly = (StartReplicationTaskAssessmentRun -> Maybe [Text])
-> (StartReplicationTaskAssessmentRun
    -> Maybe [Text] -> StartReplicationTaskAssessmentRun)
-> Lens
     StartReplicationTaskAssessmentRun
     StartReplicationTaskAssessmentRun
     (Maybe [Text])
     (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartReplicationTaskAssessmentRun' {Maybe [Text]
includeOnly :: Maybe [Text]
$sel:includeOnly:StartReplicationTaskAssessmentRun' :: StartReplicationTaskAssessmentRun -> Maybe [Text]
includeOnly} -> Maybe [Text]
includeOnly) (\s :: StartReplicationTaskAssessmentRun
s@StartReplicationTaskAssessmentRun' {} Maybe [Text]
a -> StartReplicationTaskAssessmentRun
s {$sel:includeOnly:StartReplicationTaskAssessmentRun' :: Maybe [Text]
includeOnly = Maybe [Text]
a} :: StartReplicationTaskAssessmentRun) ((Maybe [Text] -> f (Maybe [Text]))
 -> StartReplicationTaskAssessmentRun
 -> f StartReplicationTaskAssessmentRun)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> StartReplicationTaskAssessmentRun
-> f StartReplicationTaskAssessmentRun
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | ARN of a custom KMS encryption key that you specify when you set
-- @ResultEncryptionMode@ to @\"SSE_KMS@\".
startReplicationTaskAssessmentRun_resultKmsKeyArn :: Lens.Lens' StartReplicationTaskAssessmentRun (Prelude.Maybe Prelude.Text)
startReplicationTaskAssessmentRun_resultKmsKeyArn :: (Maybe Text -> f (Maybe Text))
-> StartReplicationTaskAssessmentRun
-> f StartReplicationTaskAssessmentRun
startReplicationTaskAssessmentRun_resultKmsKeyArn = (StartReplicationTaskAssessmentRun -> Maybe Text)
-> (StartReplicationTaskAssessmentRun
    -> Maybe Text -> StartReplicationTaskAssessmentRun)
-> Lens
     StartReplicationTaskAssessmentRun
     StartReplicationTaskAssessmentRun
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartReplicationTaskAssessmentRun' {Maybe Text
resultKmsKeyArn :: Maybe Text
$sel:resultKmsKeyArn:StartReplicationTaskAssessmentRun' :: StartReplicationTaskAssessmentRun -> Maybe Text
resultKmsKeyArn} -> Maybe Text
resultKmsKeyArn) (\s :: StartReplicationTaskAssessmentRun
s@StartReplicationTaskAssessmentRun' {} Maybe Text
a -> StartReplicationTaskAssessmentRun
s {$sel:resultKmsKeyArn:StartReplicationTaskAssessmentRun' :: Maybe Text
resultKmsKeyArn = Maybe Text
a} :: StartReplicationTaskAssessmentRun)

-- | Folder within an Amazon S3 bucket where you want DMS to store the
-- results of this assessment run.
startReplicationTaskAssessmentRun_resultLocationFolder :: Lens.Lens' StartReplicationTaskAssessmentRun (Prelude.Maybe Prelude.Text)
startReplicationTaskAssessmentRun_resultLocationFolder :: (Maybe Text -> f (Maybe Text))
-> StartReplicationTaskAssessmentRun
-> f StartReplicationTaskAssessmentRun
startReplicationTaskAssessmentRun_resultLocationFolder = (StartReplicationTaskAssessmentRun -> Maybe Text)
-> (StartReplicationTaskAssessmentRun
    -> Maybe Text -> StartReplicationTaskAssessmentRun)
-> Lens
     StartReplicationTaskAssessmentRun
     StartReplicationTaskAssessmentRun
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartReplicationTaskAssessmentRun' {Maybe Text
resultLocationFolder :: Maybe Text
$sel:resultLocationFolder:StartReplicationTaskAssessmentRun' :: StartReplicationTaskAssessmentRun -> Maybe Text
resultLocationFolder} -> Maybe Text
resultLocationFolder) (\s :: StartReplicationTaskAssessmentRun
s@StartReplicationTaskAssessmentRun' {} Maybe Text
a -> StartReplicationTaskAssessmentRun
s {$sel:resultLocationFolder:StartReplicationTaskAssessmentRun' :: Maybe Text
resultLocationFolder = Maybe Text
a} :: StartReplicationTaskAssessmentRun)

-- | Encryption mode that you can specify to encrypt the results of this
-- assessment run. If you don\'t specify this request parameter, DMS stores
-- the assessment run results without encryption. You can specify one of
-- the options following:
--
-- -   @\"SSE_S3\"@ – The server-side encryption provided as a default by
--     Amazon S3.
--
-- -   @\"SSE_KMS\"@ – Key Management Service (KMS) encryption. This
--     encryption can use either a custom KMS encryption key that you
--     specify or the default KMS encryption key that DMS provides.
startReplicationTaskAssessmentRun_resultEncryptionMode :: Lens.Lens' StartReplicationTaskAssessmentRun (Prelude.Maybe Prelude.Text)
startReplicationTaskAssessmentRun_resultEncryptionMode :: (Maybe Text -> f (Maybe Text))
-> StartReplicationTaskAssessmentRun
-> f StartReplicationTaskAssessmentRun
startReplicationTaskAssessmentRun_resultEncryptionMode = (StartReplicationTaskAssessmentRun -> Maybe Text)
-> (StartReplicationTaskAssessmentRun
    -> Maybe Text -> StartReplicationTaskAssessmentRun)
-> Lens
     StartReplicationTaskAssessmentRun
     StartReplicationTaskAssessmentRun
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartReplicationTaskAssessmentRun' {Maybe Text
resultEncryptionMode :: Maybe Text
$sel:resultEncryptionMode:StartReplicationTaskAssessmentRun' :: StartReplicationTaskAssessmentRun -> Maybe Text
resultEncryptionMode} -> Maybe Text
resultEncryptionMode) (\s :: StartReplicationTaskAssessmentRun
s@StartReplicationTaskAssessmentRun' {} Maybe Text
a -> StartReplicationTaskAssessmentRun
s {$sel:resultEncryptionMode:StartReplicationTaskAssessmentRun' :: Maybe Text
resultEncryptionMode = Maybe Text
a} :: StartReplicationTaskAssessmentRun)

-- | Space-separated list of names for specific individual assessments that
-- you want to exclude. These names come from the default list of
-- individual assessments that DMS supports for the associated migration
-- task. This task is specified by @ReplicationTaskArn@.
--
-- You can\'t set a value for @Exclude@ if you also set a value for
-- @IncludeOnly@ in the API operation.
--
-- To identify the names of the default individual assessments that DMS
-- supports for the associated migration task, run the
-- @DescribeApplicableIndividualAssessments@ operation using its own
-- @ReplicationTaskArn@ request parameter.
startReplicationTaskAssessmentRun_exclude :: Lens.Lens' StartReplicationTaskAssessmentRun (Prelude.Maybe [Prelude.Text])
startReplicationTaskAssessmentRun_exclude :: (Maybe [Text] -> f (Maybe [Text]))
-> StartReplicationTaskAssessmentRun
-> f StartReplicationTaskAssessmentRun
startReplicationTaskAssessmentRun_exclude = (StartReplicationTaskAssessmentRun -> Maybe [Text])
-> (StartReplicationTaskAssessmentRun
    -> Maybe [Text] -> StartReplicationTaskAssessmentRun)
-> Lens
     StartReplicationTaskAssessmentRun
     StartReplicationTaskAssessmentRun
     (Maybe [Text])
     (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartReplicationTaskAssessmentRun' {Maybe [Text]
exclude :: Maybe [Text]
$sel:exclude:StartReplicationTaskAssessmentRun' :: StartReplicationTaskAssessmentRun -> Maybe [Text]
exclude} -> Maybe [Text]
exclude) (\s :: StartReplicationTaskAssessmentRun
s@StartReplicationTaskAssessmentRun' {} Maybe [Text]
a -> StartReplicationTaskAssessmentRun
s {$sel:exclude:StartReplicationTaskAssessmentRun' :: Maybe [Text]
exclude = Maybe [Text]
a} :: StartReplicationTaskAssessmentRun) ((Maybe [Text] -> f (Maybe [Text]))
 -> StartReplicationTaskAssessmentRun
 -> f StartReplicationTaskAssessmentRun)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> StartReplicationTaskAssessmentRun
-> f StartReplicationTaskAssessmentRun
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Amazon Resource Name (ARN) of the migration task associated with the
-- premigration assessment run that you want to start.
startReplicationTaskAssessmentRun_replicationTaskArn :: Lens.Lens' StartReplicationTaskAssessmentRun Prelude.Text
startReplicationTaskAssessmentRun_replicationTaskArn :: (Text -> f Text)
-> StartReplicationTaskAssessmentRun
-> f StartReplicationTaskAssessmentRun
startReplicationTaskAssessmentRun_replicationTaskArn = (StartReplicationTaskAssessmentRun -> Text)
-> (StartReplicationTaskAssessmentRun
    -> Text -> StartReplicationTaskAssessmentRun)
-> Lens
     StartReplicationTaskAssessmentRun
     StartReplicationTaskAssessmentRun
     Text
     Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartReplicationTaskAssessmentRun' {Text
replicationTaskArn :: Text
$sel:replicationTaskArn:StartReplicationTaskAssessmentRun' :: StartReplicationTaskAssessmentRun -> Text
replicationTaskArn} -> Text
replicationTaskArn) (\s :: StartReplicationTaskAssessmentRun
s@StartReplicationTaskAssessmentRun' {} Text
a -> StartReplicationTaskAssessmentRun
s {$sel:replicationTaskArn:StartReplicationTaskAssessmentRun' :: Text
replicationTaskArn = Text
a} :: StartReplicationTaskAssessmentRun)

-- | ARN of the service role needed to start the assessment run. The role
-- must allow the @iam:PassRole@ action.
startReplicationTaskAssessmentRun_serviceAccessRoleArn :: Lens.Lens' StartReplicationTaskAssessmentRun Prelude.Text
startReplicationTaskAssessmentRun_serviceAccessRoleArn :: (Text -> f Text)
-> StartReplicationTaskAssessmentRun
-> f StartReplicationTaskAssessmentRun
startReplicationTaskAssessmentRun_serviceAccessRoleArn = (StartReplicationTaskAssessmentRun -> Text)
-> (StartReplicationTaskAssessmentRun
    -> Text -> StartReplicationTaskAssessmentRun)
-> Lens
     StartReplicationTaskAssessmentRun
     StartReplicationTaskAssessmentRun
     Text
     Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartReplicationTaskAssessmentRun' {Text
serviceAccessRoleArn :: Text
$sel:serviceAccessRoleArn:StartReplicationTaskAssessmentRun' :: StartReplicationTaskAssessmentRun -> Text
serviceAccessRoleArn} -> Text
serviceAccessRoleArn) (\s :: StartReplicationTaskAssessmentRun
s@StartReplicationTaskAssessmentRun' {} Text
a -> StartReplicationTaskAssessmentRun
s {$sel:serviceAccessRoleArn:StartReplicationTaskAssessmentRun' :: Text
serviceAccessRoleArn = Text
a} :: StartReplicationTaskAssessmentRun)

-- | Amazon S3 bucket where you want DMS to store the results of this
-- assessment run.
startReplicationTaskAssessmentRun_resultLocationBucket :: Lens.Lens' StartReplicationTaskAssessmentRun Prelude.Text
startReplicationTaskAssessmentRun_resultLocationBucket :: (Text -> f Text)
-> StartReplicationTaskAssessmentRun
-> f StartReplicationTaskAssessmentRun
startReplicationTaskAssessmentRun_resultLocationBucket = (StartReplicationTaskAssessmentRun -> Text)
-> (StartReplicationTaskAssessmentRun
    -> Text -> StartReplicationTaskAssessmentRun)
-> Lens
     StartReplicationTaskAssessmentRun
     StartReplicationTaskAssessmentRun
     Text
     Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartReplicationTaskAssessmentRun' {Text
resultLocationBucket :: Text
$sel:resultLocationBucket:StartReplicationTaskAssessmentRun' :: StartReplicationTaskAssessmentRun -> Text
resultLocationBucket} -> Text
resultLocationBucket) (\s :: StartReplicationTaskAssessmentRun
s@StartReplicationTaskAssessmentRun' {} Text
a -> StartReplicationTaskAssessmentRun
s {$sel:resultLocationBucket:StartReplicationTaskAssessmentRun' :: Text
resultLocationBucket = Text
a} :: StartReplicationTaskAssessmentRun)

-- | Unique name to identify the assessment run.
startReplicationTaskAssessmentRun_assessmentRunName :: Lens.Lens' StartReplicationTaskAssessmentRun Prelude.Text
startReplicationTaskAssessmentRun_assessmentRunName :: (Text -> f Text)
-> StartReplicationTaskAssessmentRun
-> f StartReplicationTaskAssessmentRun
startReplicationTaskAssessmentRun_assessmentRunName = (StartReplicationTaskAssessmentRun -> Text)
-> (StartReplicationTaskAssessmentRun
    -> Text -> StartReplicationTaskAssessmentRun)
-> Lens
     StartReplicationTaskAssessmentRun
     StartReplicationTaskAssessmentRun
     Text
     Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartReplicationTaskAssessmentRun' {Text
assessmentRunName :: Text
$sel:assessmentRunName:StartReplicationTaskAssessmentRun' :: StartReplicationTaskAssessmentRun -> Text
assessmentRunName} -> Text
assessmentRunName) (\s :: StartReplicationTaskAssessmentRun
s@StartReplicationTaskAssessmentRun' {} Text
a -> StartReplicationTaskAssessmentRun
s {$sel:assessmentRunName:StartReplicationTaskAssessmentRun' :: Text
assessmentRunName = Text
a} :: StartReplicationTaskAssessmentRun)

instance
  Core.AWSRequest
    StartReplicationTaskAssessmentRun
  where
  type
    AWSResponse StartReplicationTaskAssessmentRun =
      StartReplicationTaskAssessmentRunResponse
  request :: StartReplicationTaskAssessmentRun
-> Request StartReplicationTaskAssessmentRun
request = Service
-> StartReplicationTaskAssessmentRun
-> Request StartReplicationTaskAssessmentRun
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy StartReplicationTaskAssessmentRun
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse StartReplicationTaskAssessmentRun)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse StartReplicationTaskAssessmentRun))
-> Logger
-> Service
-> Proxy StartReplicationTaskAssessmentRun
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse StartReplicationTaskAssessmentRun)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe ReplicationTaskAssessmentRun
-> Int -> StartReplicationTaskAssessmentRunResponse
StartReplicationTaskAssessmentRunResponse'
            (Maybe ReplicationTaskAssessmentRun
 -> Int -> StartReplicationTaskAssessmentRunResponse)
-> Either String (Maybe ReplicationTaskAssessmentRun)
-> Either String (Int -> StartReplicationTaskAssessmentRunResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object
-> Text -> Either String (Maybe ReplicationTaskAssessmentRun)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"ReplicationTaskAssessmentRun")
              Either String (Int -> StartReplicationTaskAssessmentRunResponse)
-> Either String Int
-> Either String StartReplicationTaskAssessmentRunResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance
  Prelude.Hashable
    StartReplicationTaskAssessmentRun

instance
  Prelude.NFData
    StartReplicationTaskAssessmentRun

instance
  Core.ToHeaders
    StartReplicationTaskAssessmentRun
  where
  toHeaders :: StartReplicationTaskAssessmentRun -> ResponseHeaders
toHeaders =
    ResponseHeaders
-> StartReplicationTaskAssessmentRun -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const
      ( [ResponseHeaders] -> ResponseHeaders
forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"AmazonDMSv20160101.StartReplicationTaskAssessmentRun" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance
  Core.ToJSON
    StartReplicationTaskAssessmentRun
  where
  toJSON :: StartReplicationTaskAssessmentRun -> Value
toJSON StartReplicationTaskAssessmentRun' {Maybe [Text]
Maybe Text
Text
assessmentRunName :: Text
resultLocationBucket :: Text
serviceAccessRoleArn :: Text
replicationTaskArn :: Text
exclude :: Maybe [Text]
resultEncryptionMode :: Maybe Text
resultLocationFolder :: Maybe Text
resultKmsKeyArn :: Maybe Text
includeOnly :: Maybe [Text]
$sel:assessmentRunName:StartReplicationTaskAssessmentRun' :: StartReplicationTaskAssessmentRun -> Text
$sel:resultLocationBucket:StartReplicationTaskAssessmentRun' :: StartReplicationTaskAssessmentRun -> Text
$sel:serviceAccessRoleArn:StartReplicationTaskAssessmentRun' :: StartReplicationTaskAssessmentRun -> Text
$sel:replicationTaskArn:StartReplicationTaskAssessmentRun' :: StartReplicationTaskAssessmentRun -> Text
$sel:exclude:StartReplicationTaskAssessmentRun' :: StartReplicationTaskAssessmentRun -> Maybe [Text]
$sel:resultEncryptionMode:StartReplicationTaskAssessmentRun' :: StartReplicationTaskAssessmentRun -> Maybe Text
$sel:resultLocationFolder:StartReplicationTaskAssessmentRun' :: StartReplicationTaskAssessmentRun -> Maybe Text
$sel:resultKmsKeyArn:StartReplicationTaskAssessmentRun' :: StartReplicationTaskAssessmentRun -> Maybe Text
$sel:includeOnly:StartReplicationTaskAssessmentRun' :: StartReplicationTaskAssessmentRun -> Maybe [Text]
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"IncludeOnly" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
includeOnly,
            (Text
"ResultKmsKeyArn" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
resultKmsKeyArn,
            (Text
"ResultLocationFolder" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
resultLocationFolder,
            (Text
"ResultEncryptionMode" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
resultEncryptionMode,
            (Text
"Exclude" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
exclude,
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
              (Text
"ReplicationTaskArn" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
replicationTaskArn),
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
              ( Text
"ServiceAccessRoleArn"
                  Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
serviceAccessRoleArn
              ),
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
              ( Text
"ResultLocationBucket"
                  Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
resultLocationBucket
              ),
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
              (Text
"AssessmentRunName" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
assessmentRunName)
          ]
      )

instance
  Core.ToPath
    StartReplicationTaskAssessmentRun
  where
  toPath :: StartReplicationTaskAssessmentRun -> ByteString
toPath = ByteString -> StartReplicationTaskAssessmentRun -> ByteString
forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance
  Core.ToQuery
    StartReplicationTaskAssessmentRun
  where
  toQuery :: StartReplicationTaskAssessmentRun -> QueryString
toQuery = QueryString -> StartReplicationTaskAssessmentRun -> QueryString
forall a b. a -> b -> a
Prelude.const QueryString
forall a. Monoid a => a
Prelude.mempty

-- |
--
-- /See:/ 'newStartReplicationTaskAssessmentRunResponse' smart constructor.
data StartReplicationTaskAssessmentRunResponse = StartReplicationTaskAssessmentRunResponse'
  { -- | The premigration assessment run that was started.
    StartReplicationTaskAssessmentRunResponse
-> Maybe ReplicationTaskAssessmentRun
replicationTaskAssessmentRun :: Prelude.Maybe ReplicationTaskAssessmentRun,
    -- | The response's http status code.
    StartReplicationTaskAssessmentRunResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (StartReplicationTaskAssessmentRunResponse
-> StartReplicationTaskAssessmentRunResponse -> Bool
(StartReplicationTaskAssessmentRunResponse
 -> StartReplicationTaskAssessmentRunResponse -> Bool)
-> (StartReplicationTaskAssessmentRunResponse
    -> StartReplicationTaskAssessmentRunResponse -> Bool)
-> Eq StartReplicationTaskAssessmentRunResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartReplicationTaskAssessmentRunResponse
-> StartReplicationTaskAssessmentRunResponse -> Bool
$c/= :: StartReplicationTaskAssessmentRunResponse
-> StartReplicationTaskAssessmentRunResponse -> Bool
== :: StartReplicationTaskAssessmentRunResponse
-> StartReplicationTaskAssessmentRunResponse -> Bool
$c== :: StartReplicationTaskAssessmentRunResponse
-> StartReplicationTaskAssessmentRunResponse -> Bool
Prelude.Eq, ReadPrec [StartReplicationTaskAssessmentRunResponse]
ReadPrec StartReplicationTaskAssessmentRunResponse
Int -> ReadS StartReplicationTaskAssessmentRunResponse
ReadS [StartReplicationTaskAssessmentRunResponse]
(Int -> ReadS StartReplicationTaskAssessmentRunResponse)
-> ReadS [StartReplicationTaskAssessmentRunResponse]
-> ReadPrec StartReplicationTaskAssessmentRunResponse
-> ReadPrec [StartReplicationTaskAssessmentRunResponse]
-> Read StartReplicationTaskAssessmentRunResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartReplicationTaskAssessmentRunResponse]
$creadListPrec :: ReadPrec [StartReplicationTaskAssessmentRunResponse]
readPrec :: ReadPrec StartReplicationTaskAssessmentRunResponse
$creadPrec :: ReadPrec StartReplicationTaskAssessmentRunResponse
readList :: ReadS [StartReplicationTaskAssessmentRunResponse]
$creadList :: ReadS [StartReplicationTaskAssessmentRunResponse]
readsPrec :: Int -> ReadS StartReplicationTaskAssessmentRunResponse
$creadsPrec :: Int -> ReadS StartReplicationTaskAssessmentRunResponse
Prelude.Read, Int -> StartReplicationTaskAssessmentRunResponse -> ShowS
[StartReplicationTaskAssessmentRunResponse] -> ShowS
StartReplicationTaskAssessmentRunResponse -> String
(Int -> StartReplicationTaskAssessmentRunResponse -> ShowS)
-> (StartReplicationTaskAssessmentRunResponse -> String)
-> ([StartReplicationTaskAssessmentRunResponse] -> ShowS)
-> Show StartReplicationTaskAssessmentRunResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartReplicationTaskAssessmentRunResponse] -> ShowS
$cshowList :: [StartReplicationTaskAssessmentRunResponse] -> ShowS
show :: StartReplicationTaskAssessmentRunResponse -> String
$cshow :: StartReplicationTaskAssessmentRunResponse -> String
showsPrec :: Int -> StartReplicationTaskAssessmentRunResponse -> ShowS
$cshowsPrec :: Int -> StartReplicationTaskAssessmentRunResponse -> ShowS
Prelude.Show, (forall x.
 StartReplicationTaskAssessmentRunResponse
 -> Rep StartReplicationTaskAssessmentRunResponse x)
-> (forall x.
    Rep StartReplicationTaskAssessmentRunResponse x
    -> StartReplicationTaskAssessmentRunResponse)
-> Generic StartReplicationTaskAssessmentRunResponse
forall x.
Rep StartReplicationTaskAssessmentRunResponse x
-> StartReplicationTaskAssessmentRunResponse
forall x.
StartReplicationTaskAssessmentRunResponse
-> Rep StartReplicationTaskAssessmentRunResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep StartReplicationTaskAssessmentRunResponse x
-> StartReplicationTaskAssessmentRunResponse
$cfrom :: forall x.
StartReplicationTaskAssessmentRunResponse
-> Rep StartReplicationTaskAssessmentRunResponse x
Prelude.Generic)

-- |
-- Create a value of 'StartReplicationTaskAssessmentRunResponse' 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:
--
-- 'replicationTaskAssessmentRun', 'startReplicationTaskAssessmentRunResponse_replicationTaskAssessmentRun' - The premigration assessment run that was started.
--
-- 'httpStatus', 'startReplicationTaskAssessmentRunResponse_httpStatus' - The response's http status code.
newStartReplicationTaskAssessmentRunResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  StartReplicationTaskAssessmentRunResponse
newStartReplicationTaskAssessmentRunResponse :: Int -> StartReplicationTaskAssessmentRunResponse
newStartReplicationTaskAssessmentRunResponse
  Int
pHttpStatus_ =
    StartReplicationTaskAssessmentRunResponse' :: Maybe ReplicationTaskAssessmentRun
-> Int -> StartReplicationTaskAssessmentRunResponse
StartReplicationTaskAssessmentRunResponse'
      { $sel:replicationTaskAssessmentRun:StartReplicationTaskAssessmentRunResponse' :: Maybe ReplicationTaskAssessmentRun
replicationTaskAssessmentRun =
          Maybe ReplicationTaskAssessmentRun
forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:StartReplicationTaskAssessmentRunResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The premigration assessment run that was started.
startReplicationTaskAssessmentRunResponse_replicationTaskAssessmentRun :: Lens.Lens' StartReplicationTaskAssessmentRunResponse (Prelude.Maybe ReplicationTaskAssessmentRun)
startReplicationTaskAssessmentRunResponse_replicationTaskAssessmentRun :: (Maybe ReplicationTaskAssessmentRun
 -> f (Maybe ReplicationTaskAssessmentRun))
-> StartReplicationTaskAssessmentRunResponse
-> f StartReplicationTaskAssessmentRunResponse
startReplicationTaskAssessmentRunResponse_replicationTaskAssessmentRun = (StartReplicationTaskAssessmentRunResponse
 -> Maybe ReplicationTaskAssessmentRun)
-> (StartReplicationTaskAssessmentRunResponse
    -> Maybe ReplicationTaskAssessmentRun
    -> StartReplicationTaskAssessmentRunResponse)
-> Lens
     StartReplicationTaskAssessmentRunResponse
     StartReplicationTaskAssessmentRunResponse
     (Maybe ReplicationTaskAssessmentRun)
     (Maybe ReplicationTaskAssessmentRun)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartReplicationTaskAssessmentRunResponse' {Maybe ReplicationTaskAssessmentRun
replicationTaskAssessmentRun :: Maybe ReplicationTaskAssessmentRun
$sel:replicationTaskAssessmentRun:StartReplicationTaskAssessmentRunResponse' :: StartReplicationTaskAssessmentRunResponse
-> Maybe ReplicationTaskAssessmentRun
replicationTaskAssessmentRun} -> Maybe ReplicationTaskAssessmentRun
replicationTaskAssessmentRun) (\s :: StartReplicationTaskAssessmentRunResponse
s@StartReplicationTaskAssessmentRunResponse' {} Maybe ReplicationTaskAssessmentRun
a -> StartReplicationTaskAssessmentRunResponse
s {$sel:replicationTaskAssessmentRun:StartReplicationTaskAssessmentRunResponse' :: Maybe ReplicationTaskAssessmentRun
replicationTaskAssessmentRun = Maybe ReplicationTaskAssessmentRun
a} :: StartReplicationTaskAssessmentRunResponse)

-- | The response's http status code.
startReplicationTaskAssessmentRunResponse_httpStatus :: Lens.Lens' StartReplicationTaskAssessmentRunResponse Prelude.Int
startReplicationTaskAssessmentRunResponse_httpStatus :: (Int -> f Int)
-> StartReplicationTaskAssessmentRunResponse
-> f StartReplicationTaskAssessmentRunResponse
startReplicationTaskAssessmentRunResponse_httpStatus = (StartReplicationTaskAssessmentRunResponse -> Int)
-> (StartReplicationTaskAssessmentRunResponse
    -> Int -> StartReplicationTaskAssessmentRunResponse)
-> Lens
     StartReplicationTaskAssessmentRunResponse
     StartReplicationTaskAssessmentRunResponse
     Int
     Int
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartReplicationTaskAssessmentRunResponse' {Int
httpStatus :: Int
$sel:httpStatus:StartReplicationTaskAssessmentRunResponse' :: StartReplicationTaskAssessmentRunResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: StartReplicationTaskAssessmentRunResponse
s@StartReplicationTaskAssessmentRunResponse' {} Int
a -> StartReplicationTaskAssessmentRunResponse
s {$sel:httpStatus:StartReplicationTaskAssessmentRunResponse' :: Int
httpStatus = Int
a} :: StartReplicationTaskAssessmentRunResponse)

instance
  Prelude.NFData
    StartReplicationTaskAssessmentRunResponse