import { IpAddressRequestProps } from './resolverendpoint/IpAddressRequestProps';
import { Value } from '../../cloudformation/Value';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type ResolverEndpointAttributes = {
    ResolverEndpointId: Attribute<string>;
    IpAddressCount: Attribute<string>;
    OutpostArn: Attribute<string>;
    PreferredInstanceType: Attribute<string>;
    ResolverEndpointType: Attribute<string>;
    Arn: Attribute<string>;
    Direction: Attribute<string>;
    HostVPCId: Attribute<string>;
    Name: Attribute<string>;
};
export type ResolverEndpoint = AwsResource<'AWS::Route53Resolver::ResolverEndpoint', ResolverEndpointProperties, ResolverEndpointAttributes>;
/**
  Creates a Resolver endpoint. There are two types of Resolver endpoints, inbound and outbound:
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverendpoint.html">the AWS Docs</a>
*/
export declare function resolverEndpoint(resolverEndpointProps: ResolverEndpointProperties): ResolverEndpoint;
/**
  Creates a Resolver endpoint. There are two types of Resolver endpoints, inbound and outbound:
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverendpoint.html">the AWS Docs</a>
*/
export interface ResolverEndpointProperties {
    /** <code>IpAddresses</code>  <a name="cfn-route53resolver-resolverendpoint-ipaddresses"></a>
  The subnets and IP addresses in your VPC that DNS queries originate from (for outbound endpoints) or that you forward DNS queries to (for inbound endpoints). The subnet ID uniquely identifies a VPC.<br />
  Even though the minimum is 1, Route 53 requires that you create at least two.
  
  Required: Yes<br />
  
  Maximum: <code>20</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> */
    ipAddresses: IpAddressRequestProps[];
    /** <code>OutpostArn</code>  <a name="cfn-route53resolver-resolverendpoint-outpostarn"></a>
  The ARN (Amazon Resource Name) for the Outpost.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>255</code><br />
  
  Pattern: <code>^arn:aws([a-z-]+)?:outposts:[a-z\d-]+:\d{12}:outpost/op-[a-f0-9]{17}$</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> */
    outpostArn?: Value<string>;
    /** <code>PreferredInstanceType</code>  <a name="cfn-route53resolver-resolverendpoint-preferredinstancetype"></a>
  The Amazon EC2 instance type.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>255</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> */
    preferredInstanceType?: Value<string>;
    /** <code>ResolverEndpointType</code>  <a name="cfn-route53resolver-resolverendpoint-resolverendpointtype"></a>
  The Resolver endpoint IP address type.<br />
  
  Required: No<br />
  
  Allowed values: <code>DUALSTACK | IPV4 | IPV6</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> */
    resolverEndpointType?: Value<'DUALSTACK' | 'IPV4' | 'IPV6'>;
    /** <p> */
    direction: Value<string>;
    /** <code>SecurityGroupIds</code>  <a name="cfn-route53resolver-resolverendpoint-securitygroupids"></a>
  The ID of one or more security groups that control access to this VPC. The security group must include one or more inbound rules (for inbound endpoints) or outbound rules (for outbound endpoints). Inbound and outbound rules must allow TCP and UDP access. For inbound access, open port 53. For outbound access, open the port that you’re using for DNS queries on your network.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    securityGroupIds: Value<Value<string>[]>;
    /** <code>Tags</code>  <a name="cfn-route53resolver-resolverendpoint-tags"></a>
  Route 53 Resolver doesn’t support updating tags through CloudFormation.<br />
  
  Required: No<br />
  
  Maximum: <code>200</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> */
    tags?: Tag[];
    /** <code>Name</code>  <a name="cfn-route53resolver-resolverendpoint-name"></a>
  A friendly name that lets you easily find a configuration in the Resolver dashboard in the Route 53 console.<br />
  
  Required: No<br />
  
  Maximum: <code>64</code><br />
  
  Pattern: <code>(?!^[0-9]+$)([a-zA-Z0-9\-_' ']+)</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> */
    name?: Value<string>;
}
