import { Value } from '../../cloudformation/Value';
import { PropertiesProps } from './privatednsnamespace/PropertiesProps';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type PrivateDnsNamespaceAttributes = {
    HostedZoneId: Attribute<string>;
    Id: Attribute<string>;
    Arn: Attribute<string>;
};
export type PrivateDnsNamespace = AwsResource<'AWS::ServiceDiscovery::PrivateDnsNamespace', PrivateDnsNamespaceProperties, PrivateDnsNamespaceAttributes>;
/**
  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 <code>example.com</code> and name your service <code>backend</code>, the resulting DNS name for the service is <code>backend.example.com</code>. Service instances that are registered using a private DNS namespace can be discovered using either a <code>DiscoverInstances</code> request or using DNS. For the current quota on the number of namespaces that you can create using the same AWS account, see <a href="https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-limits.html">AWS Cloud Map quotas</a> in the * AWS Cloud Map Developer Guide*.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-privatednsnamespace.html">the AWS Docs</a>
*/
export declare function privateDnsNamespace(privateDnsNamespaceProps: PrivateDnsNamespaceProperties): PrivateDnsNamespace;
/**
  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 <code>example.com</code> and name your service <code>backend</code>, the resulting DNS name for the service is <code>backend.example.com</code>. Service instances that are registered using a private DNS namespace can be discovered using either a <code>DiscoverInstances</code> request or using DNS. For the current quota on the number of namespaces that you can create using the same AWS account, see <a href="https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-limits.html">AWS Cloud Map quotas</a> in the * AWS Cloud Map Developer Guide*.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-privatednsnamespace.html">the AWS Docs</a>
*/
export interface PrivateDnsNamespaceProperties {
    /** <code>Description</code>  <a name="cfn-servicediscovery-privatednsnamespace-description"></a>
  A description for the namespace.<br />
  
  Required: No<br />
  
  Maximum: <code>1024</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    description?: Value<string>;
    /** <code>Vpc</code>  <a name="cfn-servicediscovery-privatednsnamespace-vpc"></a>
  The ID of the Amazon VPC that you want to associate the namespace with.<br />
  
  Required: Yes<br />
  
  Maximum: <code>64</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    vpc: Value<string>;
    /** <code>Properties</code>  <a name="cfn-servicediscovery-privatednsnamespace-properties"></a>
  Properties for the private DNS namespace.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    properties?: PropertiesProps;
    /** <code>Tags</code>  <a name="cfn-servicediscovery-privatednsnamespace-tags"></a>
  The tags for 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.<br />
  
  Required: No<br />
  
  Maximum: <code>200</code><br />
  
  Update requires: Updates are not supported. */
    tags?: Tag[];
    /** <code>Name</code>  <a name="cfn-servicediscovery-privatednsnamespace-name"></a>
  The name that you want to assign to this namespace. When you create a private DNS namespace, AWS Cloud Map automatically creates an Amazon Route 53 private hosted zone that has the same name as the namespace.<br />
  
  Required: Yes<br />
  
  Maximum: <code>253</code><br />
  
  Pattern: <code>^[!-~]{1,253}$</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    name: Value<string>;
}
