import { ActionProps } from './rule/ActionProps';
import { Value } from '../../cloudformation/Value';
import { Tag } from '../Tag';
import { MatchProps } from './rule/MatchProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type RuleAttributes = {
    Id: Attribute<string>;
    Arn: Attribute<string>;
};
export type Rule = AwsResource<'AWS::VpcLattice::Rule', RuleProperties, RuleAttributes>;
/**
  Creates a listener rule. Each listener has a default rule for checking connection requests, but you can define additional rules. Each rule consists of a priority, one or more actions, and one or more conditions. For more information, see <a href="https://docs.aws.amazon.com/vpc-lattice/latest/ug/listeners.html#listener-rules">Listener rules</a> in the <em>Amazon VPC Lattice User Guide</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-rule.html">the AWS Docs</a>
*/
export declare function rule(ruleProps: RuleProperties): Rule;
/**
  Creates a listener rule. Each listener has a default rule for checking connection requests, but you can define additional rules. Each rule consists of a priority, one or more actions, and one or more conditions. For more information, see <a href="https://docs.aws.amazon.com/vpc-lattice/latest/ug/listeners.html#listener-rules">Listener rules</a> in the <em>Amazon VPC Lattice User Guide</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-rule.html">the AWS Docs</a>
*/
export interface RuleProperties {
    /** <code>Action</code>  <a name="cfn-vpclattice-rule-action"></a>
  Describes the action for a rule.<br />
  
  Required: Yes<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> */
    action: ActionProps;
    /** <code>Priority</code>  <a name="cfn-vpclattice-rule-priority"></a>
  The priority assigned to the rule. Each rule for a specific listener must have a unique priority. The lower the priority number the higher the priority.<br />
  
  Required: Yes<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> */
    priority: Value<number>;
    /** <code>ServiceIdentifier</code>  <a name="cfn-vpclattice-rule-serviceidentifier"></a>
  The ID or Amazon Resource Name (ARN) of the service.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    serviceIdentifier?: Value<string>;
    /** <code>ListenerIdentifier</code>  <a name="cfn-vpclattice-rule-listeneridentifier"></a>
  The ID or Amazon Resource Name (ARN) of the listener.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    listenerIdentifier?: Value<string>;
    /** <code>Tags</code>  <a name="cfn-vpclattice-rule-tags"></a>
  The tags for the rule.<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> */
    tags?: Tag[];
    /** <code>Match</code>  <a name="cfn-vpclattice-rule-match"></a>
  The rule match.<br />
  
  Required: Yes<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> */
    match: MatchProps;
    /** <code>Name</code>  <a name="cfn-vpclattice-rule-name"></a>
  The name of the rule. The name must be unique within the listener. The valid characters are a-z, 0-9, and hyphens (-). You can’t use a hyphen as the first or last character, or immediately after another hyphen.<br />
  If you don’t specify a name, CloudFormation generates one. However, if you specify a name, and later want to replace the resource, you must specify a new name.<br />
  
  Required: No<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>;
}
