createHttpNamespace method

Future<CreateHttpNamespaceResponse> createHttpNamespace({
  1. required String name,
  2. String? creatorRequestId,
  3. String? description,
  4. List<Tag>? tags,
})

Creates an HTTP namespace. Service instances that you register using an HTTP namespace can be discovered using a DiscoverInstances request but can't be discovered using DNS.

For the current quota on the number of namespaces that you can create using the same AWS account, see AWS Cloud Map quotas in the AWS Cloud Map Developer Guide.

May throw InvalidInput. May throw NamespaceAlreadyExists. May throw ResourceLimitExceeded. May throw DuplicateRequest. May throw TooManyTagsException.

Parameter name : The name that you want to assign to this namespace.

Parameter creatorRequestId : A unique string that identifies the request and that allows failed CreateHttpNamespace requests to be retried without the risk of executing the operation twice. CreatorRequestId can be any unique string, for example, a date/time stamp.

Parameter description : A description for the namespace.

Parameter tags : The tags to add to the namespace. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.

Implementation

Future<CreateHttpNamespaceResponse> createHttpNamespace({
  required String name,
  String? creatorRequestId,
  String? description,
  List<Tag>? tags,
}) async {
  ArgumentError.checkNotNull(name, 'name');
  _s.validateStringLength(
    'name',
    name,
    0,
    1024,
    isRequired: true,
  );
  _s.validateStringLength(
    'creatorRequestId',
    creatorRequestId,
    0,
    64,
  );
  _s.validateStringLength(
    'description',
    description,
    0,
    1024,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'Route53AutoNaming_v20170314.CreateHttpNamespace'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'Name': name,
      'CreatorRequestId': creatorRequestId ?? _s.generateIdempotencyToken(),
      if (description != null) 'Description': description,
      if (tags != null) 'Tags': tags,
    },
  );

  return CreateHttpNamespaceResponse.fromJson(jsonResponse.body);
}