import { Value } from '../../../cloudformation/Value';
import { FixedResponseConfigProps } from './FixedResponseConfigProps';
import { AuthenticateCognitoConfigProps } from './AuthenticateCognitoConfigProps';
import { RedirectConfigProps } from './RedirectConfigProps';
import { ForwardConfigProps } from './ForwardConfigProps';
import { AuthenticateOidcConfigProps } from './AuthenticateOidcConfigProps';
/**
  Specifies an action for a listener rule.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-action.html">the AWS Docs</a>
*/
export interface ActionProps {
    /** <code>Order</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-action-order"></a>
  The order for the action. This value is required for rules with multiple actions. The action with the lowest value for order is performed first.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>50000</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> */
    order?: Value<number>;
    /** <code>TargetGroupArn</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-action-targetgrouparn"></a>
  The Amazon Resource Name (ARN) of the target group. Specify only when <code>Type</code> is <code>forward</code> and you want to route to a single target group. To route to one or more target groups, use <code>ForwardConfig</code> instead.<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> */
    targetGroupArn?: Value<string>;
    /** <code>FixedResponseConfig</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-action-fixedresponseconfig"></a>
  [Application Load Balancer] Information for creating an action that returns a custom HTTP response. Specify only when <code>Type</code> is <code>fixed-response</code>.<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> */
    fixedResponseConfig?: FixedResponseConfigProps;
    /** <code>AuthenticateCognitoConfig</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-action-authenticatecognitoconfig"></a>
  [HTTPS listeners] Information for using Amazon Cognito to authenticate users. Specify only when <code>Type</code> is <code>authenticate-cognito</code>.<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> */
    authenticateCognitoConfig?: AuthenticateCognitoConfigProps;
    /** <code>Type</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-action-type"></a>
  The type of action.<br />
  
  Required: Yes<br />
  
  Allowed values: <code>authenticate-cognito | authenticate-oidc | fixed-response | forward | redirect</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> */
    type: Value<'authenticate-cognito' | 'authenticate-oidc' | 'fixed-response' | 'forward' | 'redirect'>;
    /** <code>RedirectConfig</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-action-redirectconfig"></a>
  [Application Load Balancer] Information for creating a redirect action. Specify only when <code>Type</code> is <code>redirect</code>.<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> */
    redirectConfig?: RedirectConfigProps;
    /** <code>ForwardConfig</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-action-forwardconfig"></a>
  Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when <code>Type</code> is <code>forward</code>. If you specify both <code>ForwardConfig</code> and <code>TargetGroupArn</code>, you can specify only one target group using <code>ForwardConfig</code> and it must be the same target group specified in <code>TargetGroupArn</code>.<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> */
    forwardConfig?: ForwardConfigProps;
    /** <code>AuthenticateOidcConfig</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-action-authenticateoidcconfig"></a>
  [HTTPS listeners] Information about an identity provider that is compliant with OpenID Connect (OIDC). Specify only when <code>Type</code> is <code>authenticate-oidc</code>.<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> */
    authenticateOidcConfig?: AuthenticateOidcConfigProps;
}
