import { OpenIDConnectConfigProps } from './OpenIDConnectConfigProps';
import { LambdaAuthorizerConfigProps } from './LambdaAuthorizerConfigProps';
import { CognitoUserPoolConfigProps } from './CognitoUserPoolConfigProps';
import { Value } from '../../../cloudformation/Value';
/**
  Describes an additional authentication provider.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html">the AWS Docs</a>
*/
export interface AdditionalAuthenticationProviderProps {
    /** <code>OpenIDConnectConfig</code>  <a name="cfn-appsync-graphqlapi-additionalauthenticationprovider-openidconnectconfig"></a>
  The OIDC configuration.<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> */
    openIDConnectConfig?: OpenIDConnectConfigProps;
    /** <code>LambdaAuthorizerConfig</code>  <a name="cfn-appsync-graphqlapi-additionalauthenticationprovider-lambdaauthorizerconfig"></a>
  Configuration for AWS Lambda function authorization.<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> */
    lambdaAuthorizerConfig?: LambdaAuthorizerConfigProps;
    /** <code>UserPoolConfig</code>  <a name="cfn-appsync-graphqlapi-additionalauthenticationprovider-userpoolconfig"></a>
  The Amazon Cognito user pool configuration.<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> */
    userPoolConfig?: CognitoUserPoolConfigProps;
    /** <code>AuthenticationType</code>  <a name="cfn-appsync-graphqlapi-additionalauthenticationprovider-authenticationtype"></a>
  The authentication type for API key, AWS Identity and Access Management, OIDC, Amazon Cognito user pools, or AWS Lambda.<br />
  Valid Values: <code>API_KEY</code> | <code>AWS_IAM</code> | <code>OPENID_CONNECT</code> | <code>AMAZON_COGNITO_USER_POOLS</code> | <code>AWS_LAMBDA</code><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> */
    authenticationType: Value<string>;
}
