createReplicationConfigurationTemplate method

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

Creates a new ReplicationConfigurationTemplate.

May throw AccessDeniedException. May throw UninitializedAccountException. May throw ValidationException.

Parameter associateDefaultSecurityGroup : Request to associate the default Application Migration Service Security group with the Replication Settings template.

Parameter bandwidthThrottling : Request to configure bandwidth throttling during Replication Settings template creation.

Parameter createPublicIP : Request to create Public IP during Replication Settings template creation.

Parameter dataPlaneRouting : Request to configure data plane routing during Replication Settings template creation.

Parameter defaultLargeStagingDiskType : Request to configure the default large staging disk EBS volume type during Replication Settings template creation.

Parameter ebsEncryption : Request to configure EBS encryption during Replication Settings template creation.

Parameter replicationServerInstanceType : Request to configure the Replication Server instance type during Replication Settings template creation.

Parameter replicationServersSecurityGroupsIDs : Request to configure the Replication Server Security group ID during Replication Settings template creation.

Parameter stagingAreaSubnetId : Request to configure the Staging Area subnet ID during Replication Settings template creation.

Parameter stagingAreaTags : Request to configure Staging Area tags during Replication Settings template creation.

Parameter useDedicatedReplicationServer : Request to use Dedicated Replication Servers during Replication Settings template creation.

Parameter ebsEncryptionKeyArn : Request to configure an EBS encryption key during Replication Settings template creation.

Parameter internetProtocol : Request to configure the internet protocol to IPv4 or IPv6.

Parameter storeSnapshotOnLocalZone : Request to store snapshot on local zone during Replication Settings template creation.

Parameter tags : Request to configure tags during Replication Settings template creation.

Parameter useFipsEndpoint : Request to use Fips Endpoint during Replication Settings template creation.

Implementation

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