updateReplicationConfigurationTemplate method

Future<ReplicationConfigurationTemplate> updateReplicationConfigurationTemplate({
  1. required String replicationConfigurationTemplateID,
  2. String? arn,
  3. bool? associateDefaultSecurityGroup,
  4. bool? autoReplicateNewDisks,
  5. int? bandwidthThrottling,
  6. bool? createPublicIP,
  7. ReplicationConfigurationDataPlaneRouting? dataPlaneRouting,
  8. ReplicationConfigurationDefaultLargeStagingDiskType? defaultLargeStagingDiskType,
  9. ReplicationConfigurationEbsEncryption? ebsEncryption,
  10. String? ebsEncryptionKeyArn,
  11. InternetProtocol? internetProtocol,
  12. List<PITPolicyRule>? pitPolicy,
  13. String? replicationServerInstanceType,
  14. List<String>? replicationServersSecurityGroupsIDs,
  15. String? stagingAreaSubnetId,
  16. Map<String, String>? stagingAreaTags,
  17. bool? useDedicatedReplicationServer,
})

Updates a ReplicationConfigurationTemplate by ID.

May throw AccessDeniedException. May throw InternalServerException. May throw ResourceNotFoundException. May throw ThrottlingException. May throw UninitializedAccountException. May throw ValidationException.

Parameter replicationConfigurationTemplateID : The Replication Configuration Template ID.

Parameter arn : The Replication Configuration Template ARN.

Parameter associateDefaultSecurityGroup : Whether to associate the default Elastic Disaster Recovery Security group with the Replication Configuration Template.

Parameter autoReplicateNewDisks : Whether to allow the AWS replication agent to automatically replicate newly added disks.

Parameter bandwidthThrottling : Configure bandwidth throttling for the outbound data transfer rate of the Source Server in Mbps.

Parameter createPublicIP : Whether to create a Public IP for the Recovery Instance by default.

Parameter dataPlaneRouting : The data plane routing mechanism that will be used for replication.

Parameter defaultLargeStagingDiskType : The Staging Disk EBS volume type to be used during replication.

Parameter ebsEncryption : The type of EBS encryption to be used during replication.

Parameter ebsEncryptionKeyArn : The ARN of the EBS encryption key to be used during replication.

Parameter internetProtocol : Which version of the Internet Protocol to use for replication of data. (IPv4 or IPv6)

Parameter pitPolicy : The Point in time (PIT) policy to manage snapshots taken during replication.

Parameter replicationServerInstanceType : The instance type to be used for the replication server.

Parameter replicationServersSecurityGroupsIDs : The security group IDs that will be used by the replication server.

Parameter stagingAreaSubnetId : The subnet to be used by the replication staging area.

Parameter stagingAreaTags : A set of tags to be associated with all resources created in the replication staging area: EC2 replication server, EBS volumes, EBS snapshots, etc.

Parameter useDedicatedReplicationServer : Whether to use a dedicated Replication Server in the replication staging area.

Implementation

Future<ReplicationConfigurationTemplate>
    updateReplicationConfigurationTemplate({
  required String replicationConfigurationTemplateID,
  String? arn,
  bool? associateDefaultSecurityGroup,
  bool? autoReplicateNewDisks,
  int? bandwidthThrottling,
  bool? createPublicIP,
  ReplicationConfigurationDataPlaneRouting? dataPlaneRouting,
  ReplicationConfigurationDefaultLargeStagingDiskType?
      defaultLargeStagingDiskType,
  ReplicationConfigurationEbsEncryption? ebsEncryption,
  String? ebsEncryptionKeyArn,
  InternetProtocol? internetProtocol,
  List<PITPolicyRule>? pitPolicy,
  String? replicationServerInstanceType,
  List<String>? replicationServersSecurityGroupsIDs,
  String? stagingAreaSubnetId,
  Map<String, String>? stagingAreaTags,
  bool? useDedicatedReplicationServer,
}) async {
  _s.validateNumRange(
    'bandwidthThrottling',
    bandwidthThrottling,
    0,
    1152921504606846976,
  );
  final $payload = <String, dynamic>{
    'replicationConfigurationTemplateID': replicationConfigurationTemplateID,
    if (arn != null) 'arn': arn,
    if (associateDefaultSecurityGroup != null)
      'associateDefaultSecurityGroup': associateDefaultSecurityGroup,
    if (autoReplicateNewDisks != null)
      'autoReplicateNewDisks': autoReplicateNewDisks,
    if (bandwidthThrottling != null)
      'bandwidthThrottling': bandwidthThrottling,
    if (createPublicIP != null) 'createPublicIP': createPublicIP,
    if (dataPlaneRouting != null) 'dataPlaneRouting': dataPlaneRouting.value,
    if (defaultLargeStagingDiskType != null)
      'defaultLargeStagingDiskType': defaultLargeStagingDiskType.value,
    if (ebsEncryption != null) 'ebsEncryption': ebsEncryption.value,
    if (ebsEncryptionKeyArn != null)
      'ebsEncryptionKeyArn': ebsEncryptionKeyArn,
    if (internetProtocol != null) 'internetProtocol': internetProtocol.value,
    if (pitPolicy != null) 'pitPolicy': pitPolicy,
    if (replicationServerInstanceType != null)
      'replicationServerInstanceType': replicationServerInstanceType,
    if (replicationServersSecurityGroupsIDs != null)
      'replicationServersSecurityGroupsIDs':
          replicationServersSecurityGroupsIDs,
    if (stagingAreaSubnetId != null)
      'stagingAreaSubnetId': stagingAreaSubnetId,
    if (stagingAreaTags != null) 'stagingAreaTags': stagingAreaTags,
    if (useDedicatedReplicationServer != null)
      'useDedicatedReplicationServer': useDedicatedReplicationServer,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/UpdateReplicationConfigurationTemplate',
    exceptionFnMap: _exceptionFns,
  );
  return ReplicationConfigurationTemplate.fromJson(response);
}