{-# 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.MGN.UpdateReplicationConfigurationTemplate
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates multiple ReplicationConfigurationTemplates by ID.
module Amazonka.MGN.UpdateReplicationConfigurationTemplate
  ( -- * Creating a Request
    UpdateReplicationConfigurationTemplate (..),
    newUpdateReplicationConfigurationTemplate,

    -- * Request Lenses
    updateReplicationConfigurationTemplate_arn,
    updateReplicationConfigurationTemplate_associateDefaultSecurityGroup,
    updateReplicationConfigurationTemplate_bandwidthThrottling,
    updateReplicationConfigurationTemplate_createPublicIP,
    updateReplicationConfigurationTemplate_dataPlaneRouting,
    updateReplicationConfigurationTemplate_defaultLargeStagingDiskType,
    updateReplicationConfigurationTemplate_ebsEncryption,
    updateReplicationConfigurationTemplate_ebsEncryptionKeyArn,
    updateReplicationConfigurationTemplate_replicationServerInstanceType,
    updateReplicationConfigurationTemplate_replicationServersSecurityGroupsIDs,
    updateReplicationConfigurationTemplate_stagingAreaSubnetId,
    updateReplicationConfigurationTemplate_stagingAreaTags,
    updateReplicationConfigurationTemplate_useDedicatedReplicationServer,
    updateReplicationConfigurationTemplate_replicationConfigurationTemplateID,

    -- * Destructuring the Response
    ReplicationConfigurationTemplate (..),
    newReplicationConfigurationTemplate,

    -- * Response Lenses
    replicationConfigurationTemplate_arn,
    replicationConfigurationTemplate_associateDefaultSecurityGroup,
    replicationConfigurationTemplate_bandwidthThrottling,
    replicationConfigurationTemplate_createPublicIP,
    replicationConfigurationTemplate_dataPlaneRouting,
    replicationConfigurationTemplate_defaultLargeStagingDiskType,
    replicationConfigurationTemplate_ebsEncryption,
    replicationConfigurationTemplate_ebsEncryptionKeyArn,
    replicationConfigurationTemplate_replicationServerInstanceType,
    replicationConfigurationTemplate_replicationServersSecurityGroupsIDs,
    replicationConfigurationTemplate_stagingAreaSubnetId,
    replicationConfigurationTemplate_stagingAreaTags,
    replicationConfigurationTemplate_tags,
    replicationConfigurationTemplate_useDedicatedReplicationServer,
    replicationConfigurationTemplate_replicationConfigurationTemplateID,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MGN.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newUpdateReplicationConfigurationTemplate' smart constructor.
data UpdateReplicationConfigurationTemplate = UpdateReplicationConfigurationTemplate'
  { -- | Update replication configuration template ARN request.
    UpdateReplicationConfigurationTemplate -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | Update replication configuration template associate default Application
    -- Migration Service Security group request.
    UpdateReplicationConfigurationTemplate -> Maybe Bool
associateDefaultSecurityGroup :: Prelude.Maybe Prelude.Bool,
    -- | Update replication configuration template bandwidth throttling request.
    UpdateReplicationConfigurationTemplate -> Maybe Natural
bandwidthThrottling :: Prelude.Maybe Prelude.Natural,
    -- | Update replication configuration template create Public IP request.
    UpdateReplicationConfigurationTemplate -> Maybe Bool
createPublicIP :: Prelude.Maybe Prelude.Bool,
    -- | Update replication configuration template data plane routing request.
    UpdateReplicationConfigurationTemplate
-> Maybe ReplicationConfigurationDataPlaneRouting
dataPlaneRouting :: Prelude.Maybe ReplicationConfigurationDataPlaneRouting,
    -- | Update replication configuration template use default large Staging Disk
    -- type request.
    UpdateReplicationConfigurationTemplate
-> Maybe ReplicationConfigurationDefaultLargeStagingDiskType
defaultLargeStagingDiskType :: Prelude.Maybe ReplicationConfigurationDefaultLargeStagingDiskType,
    -- | Update replication configuration template EBS encryption request.
    UpdateReplicationConfigurationTemplate
-> Maybe ReplicationConfigurationEbsEncryption
ebsEncryption :: Prelude.Maybe ReplicationConfigurationEbsEncryption,
    -- | Update replication configuration template EBS encryption key ARN
    -- request.
    UpdateReplicationConfigurationTemplate -> Maybe Text
ebsEncryptionKeyArn :: Prelude.Maybe Prelude.Text,
    -- | Update replication configuration template Replication Server instance
    -- type request.
    UpdateReplicationConfigurationTemplate -> Maybe Text
replicationServerInstanceType :: Prelude.Maybe Prelude.Text,
    -- | Update replication configuration template Replication Server Security
    -- groups IDs request.
    UpdateReplicationConfigurationTemplate -> Maybe [Text]
replicationServersSecurityGroupsIDs :: Prelude.Maybe [Prelude.Text],
    -- | Update replication configuration template Staging Area subnet ID
    -- request.
    UpdateReplicationConfigurationTemplate -> Maybe Text
stagingAreaSubnetId :: Prelude.Maybe Prelude.Text,
    -- | Update replication configuration template Staging Area Tags request.
    UpdateReplicationConfigurationTemplate
-> Maybe (Sensitive (HashMap Text Text))
stagingAreaTags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),
    -- | Update replication configuration template use dedicated Replication
    -- Server request.
    UpdateReplicationConfigurationTemplate -> Maybe Bool
useDedicatedReplicationServer :: Prelude.Maybe Prelude.Bool,
    -- | Update replication configuration template template ID request.
    UpdateReplicationConfigurationTemplate -> Text
replicationConfigurationTemplateID :: Prelude.Text
  }
  deriving (UpdateReplicationConfigurationTemplate
-> UpdateReplicationConfigurationTemplate -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateReplicationConfigurationTemplate
-> UpdateReplicationConfigurationTemplate -> Bool
$c/= :: UpdateReplicationConfigurationTemplate
-> UpdateReplicationConfigurationTemplate -> Bool
== :: UpdateReplicationConfigurationTemplate
-> UpdateReplicationConfigurationTemplate -> Bool
$c== :: UpdateReplicationConfigurationTemplate
-> UpdateReplicationConfigurationTemplate -> Bool
Prelude.Eq, Int -> UpdateReplicationConfigurationTemplate -> ShowS
[UpdateReplicationConfigurationTemplate] -> ShowS
UpdateReplicationConfigurationTemplate -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateReplicationConfigurationTemplate] -> ShowS
$cshowList :: [UpdateReplicationConfigurationTemplate] -> ShowS
show :: UpdateReplicationConfigurationTemplate -> String
$cshow :: UpdateReplicationConfigurationTemplate -> String
showsPrec :: Int -> UpdateReplicationConfigurationTemplate -> ShowS
$cshowsPrec :: Int -> UpdateReplicationConfigurationTemplate -> ShowS
Prelude.Show, forall x.
Rep UpdateReplicationConfigurationTemplate x
-> UpdateReplicationConfigurationTemplate
forall x.
UpdateReplicationConfigurationTemplate
-> Rep UpdateReplicationConfigurationTemplate x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateReplicationConfigurationTemplate x
-> UpdateReplicationConfigurationTemplate
$cfrom :: forall x.
UpdateReplicationConfigurationTemplate
-> Rep UpdateReplicationConfigurationTemplate x
Prelude.Generic)

-- |
-- Create a value of 'UpdateReplicationConfigurationTemplate' 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:
--
-- 'arn', 'updateReplicationConfigurationTemplate_arn' - Update replication configuration template ARN request.
--
-- 'associateDefaultSecurityGroup', 'updateReplicationConfigurationTemplate_associateDefaultSecurityGroup' - Update replication configuration template associate default Application
-- Migration Service Security group request.
--
-- 'bandwidthThrottling', 'updateReplicationConfigurationTemplate_bandwidthThrottling' - Update replication configuration template bandwidth throttling request.
--
-- 'createPublicIP', 'updateReplicationConfigurationTemplate_createPublicIP' - Update replication configuration template create Public IP request.
--
-- 'dataPlaneRouting', 'updateReplicationConfigurationTemplate_dataPlaneRouting' - Update replication configuration template data plane routing request.
--
-- 'defaultLargeStagingDiskType', 'updateReplicationConfigurationTemplate_defaultLargeStagingDiskType' - Update replication configuration template use default large Staging Disk
-- type request.
--
-- 'ebsEncryption', 'updateReplicationConfigurationTemplate_ebsEncryption' - Update replication configuration template EBS encryption request.
--
-- 'ebsEncryptionKeyArn', 'updateReplicationConfigurationTemplate_ebsEncryptionKeyArn' - Update replication configuration template EBS encryption key ARN
-- request.
--
-- 'replicationServerInstanceType', 'updateReplicationConfigurationTemplate_replicationServerInstanceType' - Update replication configuration template Replication Server instance
-- type request.
--
-- 'replicationServersSecurityGroupsIDs', 'updateReplicationConfigurationTemplate_replicationServersSecurityGroupsIDs' - Update replication configuration template Replication Server Security
-- groups IDs request.
--
-- 'stagingAreaSubnetId', 'updateReplicationConfigurationTemplate_stagingAreaSubnetId' - Update replication configuration template Staging Area subnet ID
-- request.
--
-- 'stagingAreaTags', 'updateReplicationConfigurationTemplate_stagingAreaTags' - Update replication configuration template Staging Area Tags request.
--
-- 'useDedicatedReplicationServer', 'updateReplicationConfigurationTemplate_useDedicatedReplicationServer' - Update replication configuration template use dedicated Replication
-- Server request.
--
-- 'replicationConfigurationTemplateID', 'updateReplicationConfigurationTemplate_replicationConfigurationTemplateID' - Update replication configuration template template ID request.
newUpdateReplicationConfigurationTemplate ::
  -- | 'replicationConfigurationTemplateID'
  Prelude.Text ->
  UpdateReplicationConfigurationTemplate
newUpdateReplicationConfigurationTemplate :: Text -> UpdateReplicationConfigurationTemplate
newUpdateReplicationConfigurationTemplate
  Text
pReplicationConfigurationTemplateID_ =
    UpdateReplicationConfigurationTemplate'
      { $sel:arn:UpdateReplicationConfigurationTemplate' :: Maybe Text
arn =
          forall a. Maybe a
Prelude.Nothing,
        $sel:associateDefaultSecurityGroup:UpdateReplicationConfigurationTemplate' :: Maybe Bool
associateDefaultSecurityGroup =
          forall a. Maybe a
Prelude.Nothing,
        $sel:bandwidthThrottling:UpdateReplicationConfigurationTemplate' :: Maybe Natural
bandwidthThrottling =
          forall a. Maybe a
Prelude.Nothing,
        $sel:createPublicIP:UpdateReplicationConfigurationTemplate' :: Maybe Bool
createPublicIP = forall a. Maybe a
Prelude.Nothing,
        $sel:dataPlaneRouting:UpdateReplicationConfigurationTemplate' :: Maybe ReplicationConfigurationDataPlaneRouting
dataPlaneRouting = forall a. Maybe a
Prelude.Nothing,
        $sel:defaultLargeStagingDiskType:UpdateReplicationConfigurationTemplate' :: Maybe ReplicationConfigurationDefaultLargeStagingDiskType
defaultLargeStagingDiskType =
          forall a. Maybe a
Prelude.Nothing,
        $sel:ebsEncryption:UpdateReplicationConfigurationTemplate' :: Maybe ReplicationConfigurationEbsEncryption
ebsEncryption = forall a. Maybe a
Prelude.Nothing,
        $sel:ebsEncryptionKeyArn:UpdateReplicationConfigurationTemplate' :: Maybe Text
ebsEncryptionKeyArn =
          forall a. Maybe a
Prelude.Nothing,
        $sel:replicationServerInstanceType:UpdateReplicationConfigurationTemplate' :: Maybe Text
replicationServerInstanceType =
          forall a. Maybe a
Prelude.Nothing,
        $sel:replicationServersSecurityGroupsIDs:UpdateReplicationConfigurationTemplate' :: Maybe [Text]
replicationServersSecurityGroupsIDs =
          forall a. Maybe a
Prelude.Nothing,
        $sel:stagingAreaSubnetId:UpdateReplicationConfigurationTemplate' :: Maybe Text
stagingAreaSubnetId =
          forall a. Maybe a
Prelude.Nothing,
        $sel:stagingAreaTags:UpdateReplicationConfigurationTemplate' :: Maybe (Sensitive (HashMap Text Text))
stagingAreaTags = forall a. Maybe a
Prelude.Nothing,
        $sel:useDedicatedReplicationServer:UpdateReplicationConfigurationTemplate' :: Maybe Bool
useDedicatedReplicationServer =
          forall a. Maybe a
Prelude.Nothing,
        $sel:replicationConfigurationTemplateID:UpdateReplicationConfigurationTemplate' :: Text
replicationConfigurationTemplateID =
          Text
pReplicationConfigurationTemplateID_
      }

-- | Update replication configuration template ARN request.
updateReplicationConfigurationTemplate_arn :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe Prelude.Text)
updateReplicationConfigurationTemplate_arn :: Lens' UpdateReplicationConfigurationTemplate (Maybe Text)
updateReplicationConfigurationTemplate_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateReplicationConfigurationTemplate' {Maybe Text
arn :: Maybe Text
$sel:arn:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Text
arn} -> Maybe Text
arn) (\s :: UpdateReplicationConfigurationTemplate
s@UpdateReplicationConfigurationTemplate' {} Maybe Text
a -> UpdateReplicationConfigurationTemplate
s {$sel:arn:UpdateReplicationConfigurationTemplate' :: Maybe Text
arn = Maybe Text
a} :: UpdateReplicationConfigurationTemplate)

-- | Update replication configuration template associate default Application
-- Migration Service Security group request.
updateReplicationConfigurationTemplate_associateDefaultSecurityGroup :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe Prelude.Bool)
updateReplicationConfigurationTemplate_associateDefaultSecurityGroup :: Lens' UpdateReplicationConfigurationTemplate (Maybe Bool)
updateReplicationConfigurationTemplate_associateDefaultSecurityGroup = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateReplicationConfigurationTemplate' {Maybe Bool
associateDefaultSecurityGroup :: Maybe Bool
$sel:associateDefaultSecurityGroup:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Bool
associateDefaultSecurityGroup} -> Maybe Bool
associateDefaultSecurityGroup) (\s :: UpdateReplicationConfigurationTemplate
s@UpdateReplicationConfigurationTemplate' {} Maybe Bool
a -> UpdateReplicationConfigurationTemplate
s {$sel:associateDefaultSecurityGroup:UpdateReplicationConfigurationTemplate' :: Maybe Bool
associateDefaultSecurityGroup = Maybe Bool
a} :: UpdateReplicationConfigurationTemplate)

-- | Update replication configuration template bandwidth throttling request.
updateReplicationConfigurationTemplate_bandwidthThrottling :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe Prelude.Natural)
updateReplicationConfigurationTemplate_bandwidthThrottling :: Lens' UpdateReplicationConfigurationTemplate (Maybe Natural)
updateReplicationConfigurationTemplate_bandwidthThrottling = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateReplicationConfigurationTemplate' {Maybe Natural
bandwidthThrottling :: Maybe Natural
$sel:bandwidthThrottling:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Natural
bandwidthThrottling} -> Maybe Natural
bandwidthThrottling) (\s :: UpdateReplicationConfigurationTemplate
s@UpdateReplicationConfigurationTemplate' {} Maybe Natural
a -> UpdateReplicationConfigurationTemplate
s {$sel:bandwidthThrottling:UpdateReplicationConfigurationTemplate' :: Maybe Natural
bandwidthThrottling = Maybe Natural
a} :: UpdateReplicationConfigurationTemplate)

-- | Update replication configuration template create Public IP request.
updateReplicationConfigurationTemplate_createPublicIP :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe Prelude.Bool)
updateReplicationConfigurationTemplate_createPublicIP :: Lens' UpdateReplicationConfigurationTemplate (Maybe Bool)
updateReplicationConfigurationTemplate_createPublicIP = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateReplicationConfigurationTemplate' {Maybe Bool
createPublicIP :: Maybe Bool
$sel:createPublicIP:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Bool
createPublicIP} -> Maybe Bool
createPublicIP) (\s :: UpdateReplicationConfigurationTemplate
s@UpdateReplicationConfigurationTemplate' {} Maybe Bool
a -> UpdateReplicationConfigurationTemplate
s {$sel:createPublicIP:UpdateReplicationConfigurationTemplate' :: Maybe Bool
createPublicIP = Maybe Bool
a} :: UpdateReplicationConfigurationTemplate)

-- | Update replication configuration template data plane routing request.
updateReplicationConfigurationTemplate_dataPlaneRouting :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe ReplicationConfigurationDataPlaneRouting)
updateReplicationConfigurationTemplate_dataPlaneRouting :: Lens'
  UpdateReplicationConfigurationTemplate
  (Maybe ReplicationConfigurationDataPlaneRouting)
updateReplicationConfigurationTemplate_dataPlaneRouting = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateReplicationConfigurationTemplate' {Maybe ReplicationConfigurationDataPlaneRouting
dataPlaneRouting :: Maybe ReplicationConfigurationDataPlaneRouting
$sel:dataPlaneRouting:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate
-> Maybe ReplicationConfigurationDataPlaneRouting
dataPlaneRouting} -> Maybe ReplicationConfigurationDataPlaneRouting
dataPlaneRouting) (\s :: UpdateReplicationConfigurationTemplate
s@UpdateReplicationConfigurationTemplate' {} Maybe ReplicationConfigurationDataPlaneRouting
a -> UpdateReplicationConfigurationTemplate
s {$sel:dataPlaneRouting:UpdateReplicationConfigurationTemplate' :: Maybe ReplicationConfigurationDataPlaneRouting
dataPlaneRouting = Maybe ReplicationConfigurationDataPlaneRouting
a} :: UpdateReplicationConfigurationTemplate)

-- | Update replication configuration template use default large Staging Disk
-- type request.
updateReplicationConfigurationTemplate_defaultLargeStagingDiskType :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe ReplicationConfigurationDefaultLargeStagingDiskType)
updateReplicationConfigurationTemplate_defaultLargeStagingDiskType :: Lens'
  UpdateReplicationConfigurationTemplate
  (Maybe ReplicationConfigurationDefaultLargeStagingDiskType)
updateReplicationConfigurationTemplate_defaultLargeStagingDiskType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateReplicationConfigurationTemplate' {Maybe ReplicationConfigurationDefaultLargeStagingDiskType
defaultLargeStagingDiskType :: Maybe ReplicationConfigurationDefaultLargeStagingDiskType
$sel:defaultLargeStagingDiskType:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate
-> Maybe ReplicationConfigurationDefaultLargeStagingDiskType
defaultLargeStagingDiskType} -> Maybe ReplicationConfigurationDefaultLargeStagingDiskType
defaultLargeStagingDiskType) (\s :: UpdateReplicationConfigurationTemplate
s@UpdateReplicationConfigurationTemplate' {} Maybe ReplicationConfigurationDefaultLargeStagingDiskType
a -> UpdateReplicationConfigurationTemplate
s {$sel:defaultLargeStagingDiskType:UpdateReplicationConfigurationTemplate' :: Maybe ReplicationConfigurationDefaultLargeStagingDiskType
defaultLargeStagingDiskType = Maybe ReplicationConfigurationDefaultLargeStagingDiskType
a} :: UpdateReplicationConfigurationTemplate)

-- | Update replication configuration template EBS encryption request.
updateReplicationConfigurationTemplate_ebsEncryption :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe ReplicationConfigurationEbsEncryption)
updateReplicationConfigurationTemplate_ebsEncryption :: Lens'
  UpdateReplicationConfigurationTemplate
  (Maybe ReplicationConfigurationEbsEncryption)
updateReplicationConfigurationTemplate_ebsEncryption = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateReplicationConfigurationTemplate' {Maybe ReplicationConfigurationEbsEncryption
ebsEncryption :: Maybe ReplicationConfigurationEbsEncryption
$sel:ebsEncryption:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate
-> Maybe ReplicationConfigurationEbsEncryption
ebsEncryption} -> Maybe ReplicationConfigurationEbsEncryption
ebsEncryption) (\s :: UpdateReplicationConfigurationTemplate
s@UpdateReplicationConfigurationTemplate' {} Maybe ReplicationConfigurationEbsEncryption
a -> UpdateReplicationConfigurationTemplate
s {$sel:ebsEncryption:UpdateReplicationConfigurationTemplate' :: Maybe ReplicationConfigurationEbsEncryption
ebsEncryption = Maybe ReplicationConfigurationEbsEncryption
a} :: UpdateReplicationConfigurationTemplate)

-- | Update replication configuration template EBS encryption key ARN
-- request.
updateReplicationConfigurationTemplate_ebsEncryptionKeyArn :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe Prelude.Text)
updateReplicationConfigurationTemplate_ebsEncryptionKeyArn :: Lens' UpdateReplicationConfigurationTemplate (Maybe Text)
updateReplicationConfigurationTemplate_ebsEncryptionKeyArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateReplicationConfigurationTemplate' {Maybe Text
ebsEncryptionKeyArn :: Maybe Text
$sel:ebsEncryptionKeyArn:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Text
ebsEncryptionKeyArn} -> Maybe Text
ebsEncryptionKeyArn) (\s :: UpdateReplicationConfigurationTemplate
s@UpdateReplicationConfigurationTemplate' {} Maybe Text
a -> UpdateReplicationConfigurationTemplate
s {$sel:ebsEncryptionKeyArn:UpdateReplicationConfigurationTemplate' :: Maybe Text
ebsEncryptionKeyArn = Maybe Text
a} :: UpdateReplicationConfigurationTemplate)

-- | Update replication configuration template Replication Server instance
-- type request.
updateReplicationConfigurationTemplate_replicationServerInstanceType :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe Prelude.Text)
updateReplicationConfigurationTemplate_replicationServerInstanceType :: Lens' UpdateReplicationConfigurationTemplate (Maybe Text)
updateReplicationConfigurationTemplate_replicationServerInstanceType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateReplicationConfigurationTemplate' {Maybe Text
replicationServerInstanceType :: Maybe Text
$sel:replicationServerInstanceType:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Text
replicationServerInstanceType} -> Maybe Text
replicationServerInstanceType) (\s :: UpdateReplicationConfigurationTemplate
s@UpdateReplicationConfigurationTemplate' {} Maybe Text
a -> UpdateReplicationConfigurationTemplate
s {$sel:replicationServerInstanceType:UpdateReplicationConfigurationTemplate' :: Maybe Text
replicationServerInstanceType = Maybe Text
a} :: UpdateReplicationConfigurationTemplate)

-- | Update replication configuration template Replication Server Security
-- groups IDs request.
updateReplicationConfigurationTemplate_replicationServersSecurityGroupsIDs :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe [Prelude.Text])
updateReplicationConfigurationTemplate_replicationServersSecurityGroupsIDs :: Lens' UpdateReplicationConfigurationTemplate (Maybe [Text])
updateReplicationConfigurationTemplate_replicationServersSecurityGroupsIDs = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateReplicationConfigurationTemplate' {Maybe [Text]
replicationServersSecurityGroupsIDs :: Maybe [Text]
$sel:replicationServersSecurityGroupsIDs:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe [Text]
replicationServersSecurityGroupsIDs} -> Maybe [Text]
replicationServersSecurityGroupsIDs) (\s :: UpdateReplicationConfigurationTemplate
s@UpdateReplicationConfigurationTemplate' {} Maybe [Text]
a -> UpdateReplicationConfigurationTemplate
s {$sel:replicationServersSecurityGroupsIDs:UpdateReplicationConfigurationTemplate' :: Maybe [Text]
replicationServersSecurityGroupsIDs = Maybe [Text]
a} :: UpdateReplicationConfigurationTemplate) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Update replication configuration template Staging Area subnet ID
-- request.
updateReplicationConfigurationTemplate_stagingAreaSubnetId :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe Prelude.Text)
updateReplicationConfigurationTemplate_stagingAreaSubnetId :: Lens' UpdateReplicationConfigurationTemplate (Maybe Text)
updateReplicationConfigurationTemplate_stagingAreaSubnetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateReplicationConfigurationTemplate' {Maybe Text
stagingAreaSubnetId :: Maybe Text
$sel:stagingAreaSubnetId:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Text
stagingAreaSubnetId} -> Maybe Text
stagingAreaSubnetId) (\s :: UpdateReplicationConfigurationTemplate
s@UpdateReplicationConfigurationTemplate' {} Maybe Text
a -> UpdateReplicationConfigurationTemplate
s {$sel:stagingAreaSubnetId:UpdateReplicationConfigurationTemplate' :: Maybe Text
stagingAreaSubnetId = Maybe Text
a} :: UpdateReplicationConfigurationTemplate)

-- | Update replication configuration template Staging Area Tags request.
updateReplicationConfigurationTemplate_stagingAreaTags :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
updateReplicationConfigurationTemplate_stagingAreaTags :: Lens'
  UpdateReplicationConfigurationTemplate (Maybe (HashMap Text Text))
updateReplicationConfigurationTemplate_stagingAreaTags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateReplicationConfigurationTemplate' {Maybe (Sensitive (HashMap Text Text))
stagingAreaTags :: Maybe (Sensitive (HashMap Text Text))
$sel:stagingAreaTags:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate
-> Maybe (Sensitive (HashMap Text Text))
stagingAreaTags} -> Maybe (Sensitive (HashMap Text Text))
stagingAreaTags) (\s :: UpdateReplicationConfigurationTemplate
s@UpdateReplicationConfigurationTemplate' {} Maybe (Sensitive (HashMap Text Text))
a -> UpdateReplicationConfigurationTemplate
s {$sel:stagingAreaTags:UpdateReplicationConfigurationTemplate' :: Maybe (Sensitive (HashMap Text Text))
stagingAreaTags = Maybe (Sensitive (HashMap Text Text))
a} :: UpdateReplicationConfigurationTemplate) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 (forall a. Iso' (Sensitive a) a
Data._Sensitive forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced)

-- | Update replication configuration template use dedicated Replication
-- Server request.
updateReplicationConfigurationTemplate_useDedicatedReplicationServer :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe Prelude.Bool)
updateReplicationConfigurationTemplate_useDedicatedReplicationServer :: Lens' UpdateReplicationConfigurationTemplate (Maybe Bool)
updateReplicationConfigurationTemplate_useDedicatedReplicationServer = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateReplicationConfigurationTemplate' {Maybe Bool
useDedicatedReplicationServer :: Maybe Bool
$sel:useDedicatedReplicationServer:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Bool
useDedicatedReplicationServer} -> Maybe Bool
useDedicatedReplicationServer) (\s :: UpdateReplicationConfigurationTemplate
s@UpdateReplicationConfigurationTemplate' {} Maybe Bool
a -> UpdateReplicationConfigurationTemplate
s {$sel:useDedicatedReplicationServer:UpdateReplicationConfigurationTemplate' :: Maybe Bool
useDedicatedReplicationServer = Maybe Bool
a} :: UpdateReplicationConfigurationTemplate)

-- | Update replication configuration template template ID request.
updateReplicationConfigurationTemplate_replicationConfigurationTemplateID :: Lens.Lens' UpdateReplicationConfigurationTemplate Prelude.Text
updateReplicationConfigurationTemplate_replicationConfigurationTemplateID :: Lens' UpdateReplicationConfigurationTemplate Text
updateReplicationConfigurationTemplate_replicationConfigurationTemplateID = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateReplicationConfigurationTemplate' {Text
replicationConfigurationTemplateID :: Text
$sel:replicationConfigurationTemplateID:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Text
replicationConfigurationTemplateID} -> Text
replicationConfigurationTemplateID) (\s :: UpdateReplicationConfigurationTemplate
s@UpdateReplicationConfigurationTemplate' {} Text
a -> UpdateReplicationConfigurationTemplate
s {$sel:replicationConfigurationTemplateID:UpdateReplicationConfigurationTemplate' :: Text
replicationConfigurationTemplateID = Text
a} :: UpdateReplicationConfigurationTemplate)

instance
  Core.AWSRequest
    UpdateReplicationConfigurationTemplate
  where
  type
    AWSResponse
      UpdateReplicationConfigurationTemplate =
      ReplicationConfigurationTemplate
  request :: (Service -> Service)
-> UpdateReplicationConfigurationTemplate
-> Request UpdateReplicationConfigurationTemplate
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateReplicationConfigurationTemplate
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse UpdateReplicationConfigurationTemplate)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      (\Int
s ResponseHeaders
h Object
x -> forall a. FromJSON a => Object -> Either String a
Data.eitherParseJSON Object
x)

instance
  Prelude.Hashable
    UpdateReplicationConfigurationTemplate
  where
  hashWithSalt :: Int -> UpdateReplicationConfigurationTemplate -> Int
hashWithSalt
    Int
_salt
    UpdateReplicationConfigurationTemplate' {Maybe Bool
Maybe Natural
Maybe [Text]
Maybe Text
Maybe (Sensitive (HashMap Text Text))
Maybe ReplicationConfigurationDataPlaneRouting
Maybe ReplicationConfigurationDefaultLargeStagingDiskType
Maybe ReplicationConfigurationEbsEncryption
Text
replicationConfigurationTemplateID :: Text
useDedicatedReplicationServer :: Maybe Bool
stagingAreaTags :: Maybe (Sensitive (HashMap Text Text))
stagingAreaSubnetId :: Maybe Text
replicationServersSecurityGroupsIDs :: Maybe [Text]
replicationServerInstanceType :: Maybe Text
ebsEncryptionKeyArn :: Maybe Text
ebsEncryption :: Maybe ReplicationConfigurationEbsEncryption
defaultLargeStagingDiskType :: Maybe ReplicationConfigurationDefaultLargeStagingDiskType
dataPlaneRouting :: Maybe ReplicationConfigurationDataPlaneRouting
createPublicIP :: Maybe Bool
bandwidthThrottling :: Maybe Natural
associateDefaultSecurityGroup :: Maybe Bool
arn :: Maybe Text
$sel:replicationConfigurationTemplateID:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Text
$sel:useDedicatedReplicationServer:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Bool
$sel:stagingAreaTags:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate
-> Maybe (Sensitive (HashMap Text Text))
$sel:stagingAreaSubnetId:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Text
$sel:replicationServersSecurityGroupsIDs:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe [Text]
$sel:replicationServerInstanceType:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Text
$sel:ebsEncryptionKeyArn:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Text
$sel:ebsEncryption:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate
-> Maybe ReplicationConfigurationEbsEncryption
$sel:defaultLargeStagingDiskType:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate
-> Maybe ReplicationConfigurationDefaultLargeStagingDiskType
$sel:dataPlaneRouting:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate
-> Maybe ReplicationConfigurationDataPlaneRouting
$sel:createPublicIP:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Bool
$sel:bandwidthThrottling:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Natural
$sel:associateDefaultSecurityGroup:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Bool
$sel:arn:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
arn
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
associateDefaultSecurityGroup
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
bandwidthThrottling
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
createPublicIP
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ReplicationConfigurationDataPlaneRouting
dataPlaneRouting
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ReplicationConfigurationDefaultLargeStagingDiskType
defaultLargeStagingDiskType
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ReplicationConfigurationEbsEncryption
ebsEncryption
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ebsEncryptionKeyArn
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
replicationServerInstanceType
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
replicationServersSecurityGroupsIDs
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
stagingAreaSubnetId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive (HashMap Text Text))
stagingAreaTags
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
useDedicatedReplicationServer
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
replicationConfigurationTemplateID

instance
  Prelude.NFData
    UpdateReplicationConfigurationTemplate
  where
  rnf :: UpdateReplicationConfigurationTemplate -> ()
rnf UpdateReplicationConfigurationTemplate' {Maybe Bool
Maybe Natural
Maybe [Text]
Maybe Text
Maybe (Sensitive (HashMap Text Text))
Maybe ReplicationConfigurationDataPlaneRouting
Maybe ReplicationConfigurationDefaultLargeStagingDiskType
Maybe ReplicationConfigurationEbsEncryption
Text
replicationConfigurationTemplateID :: Text
useDedicatedReplicationServer :: Maybe Bool
stagingAreaTags :: Maybe (Sensitive (HashMap Text Text))
stagingAreaSubnetId :: Maybe Text
replicationServersSecurityGroupsIDs :: Maybe [Text]
replicationServerInstanceType :: Maybe Text
ebsEncryptionKeyArn :: Maybe Text
ebsEncryption :: Maybe ReplicationConfigurationEbsEncryption
defaultLargeStagingDiskType :: Maybe ReplicationConfigurationDefaultLargeStagingDiskType
dataPlaneRouting :: Maybe ReplicationConfigurationDataPlaneRouting
createPublicIP :: Maybe Bool
bandwidthThrottling :: Maybe Natural
associateDefaultSecurityGroup :: Maybe Bool
arn :: Maybe Text
$sel:replicationConfigurationTemplateID:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Text
$sel:useDedicatedReplicationServer:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Bool
$sel:stagingAreaTags:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate
-> Maybe (Sensitive (HashMap Text Text))
$sel:stagingAreaSubnetId:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Text
$sel:replicationServersSecurityGroupsIDs:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe [Text]
$sel:replicationServerInstanceType:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Text
$sel:ebsEncryptionKeyArn:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Text
$sel:ebsEncryption:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate
-> Maybe ReplicationConfigurationEbsEncryption
$sel:defaultLargeStagingDiskType:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate
-> Maybe ReplicationConfigurationDefaultLargeStagingDiskType
$sel:dataPlaneRouting:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate
-> Maybe ReplicationConfigurationDataPlaneRouting
$sel:createPublicIP:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Bool
$sel:bandwidthThrottling:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Natural
$sel:associateDefaultSecurityGroup:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Bool
$sel:arn:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
associateDefaultSecurityGroup
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
bandwidthThrottling
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
createPublicIP
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ReplicationConfigurationDataPlaneRouting
dataPlaneRouting
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ReplicationConfigurationDefaultLargeStagingDiskType
defaultLargeStagingDiskType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ReplicationConfigurationEbsEncryption
ebsEncryption
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ebsEncryptionKeyArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
replicationServerInstanceType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
replicationServersSecurityGroupsIDs
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
stagingAreaSubnetId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive (HashMap Text Text))
stagingAreaTags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
useDedicatedReplicationServer
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Text
replicationConfigurationTemplateID

instance
  Data.ToHeaders
    UpdateReplicationConfigurationTemplate
  where
  toHeaders :: UpdateReplicationConfigurationTemplate -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance
  Data.ToJSON
    UpdateReplicationConfigurationTemplate
  where
  toJSON :: UpdateReplicationConfigurationTemplate -> Value
toJSON UpdateReplicationConfigurationTemplate' {Maybe Bool
Maybe Natural
Maybe [Text]
Maybe Text
Maybe (Sensitive (HashMap Text Text))
Maybe ReplicationConfigurationDataPlaneRouting
Maybe ReplicationConfigurationDefaultLargeStagingDiskType
Maybe ReplicationConfigurationEbsEncryption
Text
replicationConfigurationTemplateID :: Text
useDedicatedReplicationServer :: Maybe Bool
stagingAreaTags :: Maybe (Sensitive (HashMap Text Text))
stagingAreaSubnetId :: Maybe Text
replicationServersSecurityGroupsIDs :: Maybe [Text]
replicationServerInstanceType :: Maybe Text
ebsEncryptionKeyArn :: Maybe Text
ebsEncryption :: Maybe ReplicationConfigurationEbsEncryption
defaultLargeStagingDiskType :: Maybe ReplicationConfigurationDefaultLargeStagingDiskType
dataPlaneRouting :: Maybe ReplicationConfigurationDataPlaneRouting
createPublicIP :: Maybe Bool
bandwidthThrottling :: Maybe Natural
associateDefaultSecurityGroup :: Maybe Bool
arn :: Maybe Text
$sel:replicationConfigurationTemplateID:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Text
$sel:useDedicatedReplicationServer:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Bool
$sel:stagingAreaTags:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate
-> Maybe (Sensitive (HashMap Text Text))
$sel:stagingAreaSubnetId:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Text
$sel:replicationServersSecurityGroupsIDs:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe [Text]
$sel:replicationServerInstanceType:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Text
$sel:ebsEncryptionKeyArn:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Text
$sel:ebsEncryption:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate
-> Maybe ReplicationConfigurationEbsEncryption
$sel:defaultLargeStagingDiskType:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate
-> Maybe ReplicationConfigurationDefaultLargeStagingDiskType
$sel:dataPlaneRouting:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate
-> Maybe ReplicationConfigurationDataPlaneRouting
$sel:createPublicIP:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Bool
$sel:bandwidthThrottling:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Natural
$sel:associateDefaultSecurityGroup:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Bool
$sel:arn:UpdateReplicationConfigurationTemplate' :: UpdateReplicationConfigurationTemplate -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"arn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
arn,
            (Key
"associateDefaultSecurityGroup" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
associateDefaultSecurityGroup,
            (Key
"bandwidthThrottling" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
bandwidthThrottling,
            (Key
"createPublicIP" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
createPublicIP,
            (Key
"dataPlaneRouting" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ReplicationConfigurationDataPlaneRouting
dataPlaneRouting,
            (Key
"defaultLargeStagingDiskType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ReplicationConfigurationDefaultLargeStagingDiskType
defaultLargeStagingDiskType,
            (Key
"ebsEncryption" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ReplicationConfigurationEbsEncryption
ebsEncryption,
            (Key
"ebsEncryptionKeyArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
ebsEncryptionKeyArn,
            (Key
"replicationServerInstanceType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
replicationServerInstanceType,
            (Key
"replicationServersSecurityGroupsIDs" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
replicationServersSecurityGroupsIDs,
            (Key
"stagingAreaSubnetId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
stagingAreaSubnetId,
            (Key
"stagingAreaTags" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Sensitive (HashMap Text Text))
stagingAreaTags,
            (Key
"useDedicatedReplicationServer" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
useDedicatedReplicationServer,
            forall a. a -> Maybe a
Prelude.Just
              ( Key
"replicationConfigurationTemplateID"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
replicationConfigurationTemplateID
              )
          ]
      )

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

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