updateReplicationConfiguration method

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

Allows you to update a ReplicationConfiguration by Source Server ID.

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

Parameter sourceServerID : The ID of the Source Server for this Replication Configuration.

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

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 name : The name of the Replication Configuration.

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

Parameter replicatedDisks : The configuration of the disks of the Source Server to be replicated.

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<ReplicationConfiguration> updateReplicationConfiguration({
  required String sourceServerID,
  bool? associateDefaultSecurityGroup,
  bool? autoReplicateNewDisks,
  int? bandwidthThrottling,
  bool? createPublicIP,
  ReplicationConfigurationDataPlaneRouting? dataPlaneRouting,
  ReplicationConfigurationDefaultLargeStagingDiskType?
      defaultLargeStagingDiskType,
  ReplicationConfigurationEbsEncryption? ebsEncryption,
  String? ebsEncryptionKeyArn,
  InternetProtocol? internetProtocol,
  String? name,
  List<PITPolicyRule>? pitPolicy,
  List<ReplicationConfigurationReplicatedDisk>? replicatedDisks,
  String? replicationServerInstanceType,
  List<String>? replicationServersSecurityGroupsIDs,
  String? stagingAreaSubnetId,
  Map<String, String>? stagingAreaTags,
  bool? useDedicatedReplicationServer,
}) async {
  _s.validateNumRange(
    'bandwidthThrottling',
    bandwidthThrottling,
    0,
    1152921504606846976,
  );
  final $payload = <String, dynamic>{
    'sourceServerID': sourceServerID,
    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 (name != null) 'name': name,
    if (pitPolicy != null) 'pitPolicy': pitPolicy,
    if (replicatedDisks != null) 'replicatedDisks': replicatedDisks,
    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: '/UpdateReplicationConfiguration',
    exceptionFnMap: _exceptionFns,
  );
  return ReplicationConfiguration.fromJson(response);
}