import { Value } from '../../cloudformation/Value';
import { Tag } from '../Tag';
import { TargetAddressProps } from './resolverrule/TargetAddressProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type ResolverRuleAttributes = {
    ResolverEndpointId: Attribute<string>;
    DomainName: Attribute<string>;
    ResolverRuleId: Attribute<string>;
    Arn: Attribute<string>;
    TargetIps: Attribute<TargetAddressProps[]>;
    Name: Attribute<string>;
};
export type ResolverRule = AwsResource<'AWS::Route53Resolver::ResolverRule', ResolverRuleProperties, ResolverRuleAttributes>;
/**
  For DNS queries that originate in your VPCs, specifies which Resolver endpoint the queries pass through, one domain name that you want to forward to your network, and the IP addresses of the DNS resolvers in your network.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverrule.html">the AWS Docs</a>
*/
export declare function resolverRule(resolverRuleProps: ResolverRuleProperties): ResolverRule;
/**
  For DNS queries that originate in your VPCs, specifies which Resolver endpoint the queries pass through, one domain name that you want to forward to your network, and the IP addresses of the DNS resolvers in your network.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverrule.html">the AWS Docs</a>
*/
export interface ResolverRuleProperties {
    /** <code>ResolverEndpointId</code>  <a name="cfn-route53resolver-resolverrule-resolverendpointid"></a>
  The ID of the endpoint that the rule is associated with.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><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-no-interrupt">No interruption</a> */
    resolverEndpointId?: Value<string>;
    /** <code>DomainName</code>  <a name="cfn-route53resolver-resolverrule-domainname"></a>
  DNS queries for this domain name are forwarded to the IP addresses that are specified in <code>TargetIps</code>. If a query matches multiple Resolver rules (example.com and www.example.com), the query is routed using the Resolver rule that contains the most specific domain name (www.example.com).<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>256</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt">Some interruptions</a> */
    domainName: Value<string>;
    /** <code>RuleType</code>  <a name="cfn-route53resolver-resolverrule-ruletype"></a>
  When you want to forward DNS queries for specified domain name to resolvers on your network, specify <code>FORWARD</code>.<br />
  When you have a forwarding rule to forward DNS queries for a domain to your network and you want Resolver to process queries for a subdomain of that domain, specify <code>SYSTEM</code>.<br />
  For example, to forward DNS queries for example.com to resolvers on your network, you create a rule and specify <code>FORWARD</code> for <code>RuleType</code>. To then have Resolver process queries for apex.example.com, you create a rule and specify <code>SYSTEM</code> for <code>RuleType</code>.<br />
  Currently, only Resolver can create rules that have a value of <code>RECURSIVE</code> for <code>RuleType</code>.<br />
  
  Required: Yes<br />
  
  Allowed values: <code>FORWARD | RECURSIVE | SYSTEM</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> */
    ruleType: Value<'FORWARD' | 'RECURSIVE' | 'SYSTEM'>;
    /** <code>Tags</code>  <a name="cfn-route53resolver-resolverrule-tags"></a>
  Tags help organize and categorize your Resolver rules. Each tag consists of a key and an optional value, both of which you define.<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>TargetIps</code>  <a name="cfn-route53resolver-resolverrule-targetips"></a>
  An array that contains the IP addresses and ports that an outbound endpoint forwards DNS queries to. Typically, these are the IP addresses of DNS resolvers on your network.<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> */
    targetIps?: TargetAddressProps[];
    /** <code>Name</code>  <a name="cfn-route53resolver-resolverrule-name"></a>
  The name for the Resolver rule, which you specified when you created the Resolver rule.<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>;
}
