createReplicationConfigurationTemplate method

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

Creates a new ReplicationConfigurationTemplate.

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

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

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

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

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 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 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 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 replicationServerInstanceType : The instance type to be used for the replication server.

Parameter tags : A set of tags to be associated with the Replication Configuration Template resource.

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

Implementation

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