createCustomRoutingAccelerator method

Future<CreateCustomRoutingAcceleratorResponse> createCustomRoutingAccelerator({
  1. required String name,
  2. bool? enabled,
  3. String? idempotencyToken,
  4. IpAddressType? ipAddressType,
  5. List<Tag>? tags,
})

Create a custom routing accelerator. A custom routing accelerator directs traffic to one of possibly thousands of Amazon EC2 instance destinations running in a single or multiple virtual private clouds (VPC) subnet endpoints.

Be aware that, by default, all destination EC2 instances in a VPC subnet endpoint cannot receive traffic. To enable all destinations to receive traffic, or to specify individual port mappings that can receive traffic, see the AllowCustomRoutingTraffic operation.

May throw InternalServiceErrorException. May throw InvalidArgumentException. May throw LimitExceededException. May throw AccessDeniedException.

Parameter name : The name of a custom routing accelerator. The name can have a maximum of 64 characters, must contain only alphanumeric characters or hyphens (-), and must not begin or end with a hyphen.

Parameter enabled : Indicates whether an accelerator is enabled. The value is true or false. The default value is true.

If the value is set to true, an accelerator cannot be deleted. If set to false, the accelerator can be deleted.

Parameter idempotencyToken : A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the uniqueness—of the request.

Parameter ipAddressType : The value for the address type must be IPv4.

Parameter tags : Create tags for an accelerator.

For more information, see Tagging in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

Implementation

Future<CreateCustomRoutingAcceleratorResponse>
    createCustomRoutingAccelerator({
  required String name,
  bool? enabled,
  String? idempotencyToken,
  IpAddressType? ipAddressType,
  List<Tag>? tags,
}) async {
  ArgumentError.checkNotNull(name, 'name');
  _s.validateStringLength(
    'name',
    name,
    0,
    255,
    isRequired: true,
  );
  _s.validateStringLength(
    'idempotencyToken',
    idempotencyToken,
    0,
    255,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target':
        'GlobalAccelerator_V20180706.CreateCustomRoutingAccelerator'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'Name': name,
      if (enabled != null) 'Enabled': enabled,
      'IdempotencyToken': idempotencyToken ?? _s.generateIdempotencyToken(),
      if (ipAddressType != null) 'IpAddressType': ipAddressType.toValue(),
      if (tags != null) 'Tags': tags,
    },
  );

  return CreateCustomRoutingAcceleratorResponse.fromJson(jsonResponse.body);
}