import { Value } from '../../../cloudformation/Value';
/**
  Specifies information required using an identity provide (IdP) that is compliant with OpenID Connect (OIDC) to authenticate users.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticateoidcconfig.html">the AWS Docs</a>
*/
export interface AuthenticateOidcConfigProps {
    /** <p> */
    onUnauthenticatedRequest?: Value<string>;
    /** <code>TokenEndpoint</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-tokenendpoint"></a>
  The token endpoint of the IdP. This must be a full URL, including the HTTPS protocol, the domain, and the path.<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> */
    tokenEndpoint: Value<string>;
    /** <code>UseExistingClientSecret</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-useexistingclientsecret"></a>
  Indicates whether to use the existing client secret when modifying a rule. If you are creating a rule, you can omit this parameter or set it to false.<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> */
    useExistingClientSecret?: Value<boolean>;
    /** <code>SessionTimeout</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-sessiontimeout"></a>
  The maximum duration of the authentication session, in seconds. The default is 604800 seconds (7 days).<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> */
    sessionTimeout?: Value<number>;
    /** <code>Scope</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-scope"></a>
  The set of user claims to be requested from the IdP. The default is <code>openid</code>.<br />
  To verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP.<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> */
    scope?: Value<string>;
    /** <code>Issuer</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-issuer"></a>
  The OIDC issuer identifier of the IdP. This must be a full URL, including the HTTPS protocol, the domain, and the path.<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> */
    issuer: Value<string>;
    /** <code>ClientSecret</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-clientsecret"></a>
  The OAuth 2.0 client secret. This parameter is required if you are creating a rule. If you are modifying a rule, you can omit this parameter if you set <code>UseExistingClientSecret</code> to true.<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> */
    clientSecret?: Value<string>;
    /** <code>UserInfoEndpoint</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-userinfoendpoint"></a>
  The user info endpoint of the IdP. This must be a full URL, including the HTTPS protocol, the domain, and the path.<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> */
    userInfoEndpoint: Value<string>;
    /** <code>ClientId</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-clientid"></a>
  The OAuth 2.0 client identifier.<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> */
    clientId: Value<string>;
    /** <code>AuthorizationEndpoint</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-authorizationendpoint"></a>
  The authorization endpoint of the IdP. This must be a full URL, including the HTTPS protocol, the domain, and the path.<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> */
    authorizationEndpoint: Value<string>;
    /** <code>SessionCookieName</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-sessioncookiename"></a>
  The name of the cookie used to maintain session information. The default is AWSELBAuthSessionCookie.<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> */
    sessionCookieName?: Value<string>;
    /** <code>AuthenticationRequestExtraParams</code>  <a name="cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-authenticationrequestextraparams"></a>
  The query parameters (up to 10) to include in the redirect request to the authorization endpoint.<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> */
    authenticationRequestExtraParams?: Value<{
        [key: string]: Value<string>;
    }>;
}
