createPrivateDnsNamespace method
Creates a private namespace based on DNS, which is visible only inside a
specified Amazon VPC. The namespace defines your service naming scheme.
For example, if you name your namespace example.com and name
your service backend, the resulting DNS name for the service
is backend.example.com. Service instances that are registered
using a private DNS namespace can be discovered using either a
DiscoverInstances request or using DNS. For the current quota
on the number of namespaces that you can create using the same Amazon Web
Services account, see Cloud
Map quotas in the Cloud Map Developer Guide.
May throw DuplicateRequest.
May throw InvalidInput.
May throw NamespaceAlreadyExists.
May throw ResourceLimitExceeded.
May throw TooManyTagsException.
Parameter name :
The name that you want to assign to this namespace. When you create a
private DNS namespace, Cloud Map automatically creates an Amazon Route 53
private hosted zone that has the same name as the namespace.
Parameter vpc :
The ID of the Amazon VPC that you want to associate the namespace with.
Parameter creatorRequestId :
A unique string that identifies the request and that allows failed
CreatePrivateDnsNamespace requests to be retried without the
risk of running the operation twice. CreatorRequestId can be
any unique string (for example, a date/timestamp).
Parameter description :
A description for the namespace.
Parameter properties :
Properties for the private DNS namespace.
Parameter tags :
The tags to add to the namespace. Each tag consists of a key and an
optional value that you define. Tags keys can be up to 128 characters in
length, and tag values can be up to 256 characters in length.
Implementation
Future<CreatePrivateDnsNamespaceResponse> createPrivateDnsNamespace({
required String name,
required String vpc,
String? creatorRequestId,
String? description,
PrivateDnsNamespaceProperties? properties,
List<Tag>? tags,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'Route53AutoNaming_v20170314.CreatePrivateDnsNamespace'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'Name': name,
'Vpc': vpc,
'CreatorRequestId': creatorRequestId ?? _s.generateIdempotencyToken(),
if (description != null) 'Description': description,
if (properties != null) 'Properties': properties,
if (tags != null) 'Tags': tags,
},
);
return CreatePrivateDnsNamespaceResponse.fromJson(jsonResponse.body);
}