"use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.HttpNoneAuthorizer=exports.HttpAuthorizer=exports.AuthorizerPayloadVersion=exports.HttpAuthorizerType=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var index_1=()=>{var tmp=require(".././index");return index_1=()=>tmp,tmp},core_1=()=>{var tmp=require("../../../core");return core_1=()=>tmp,tmp},HttpAuthorizerType;(function(HttpAuthorizerType2){HttpAuthorizerType2.IAM="AWS_IAM",HttpAuthorizerType2.JWT="JWT",HttpAuthorizerType2.LAMBDA="REQUEST"})(HttpAuthorizerType||(exports.HttpAuthorizerType=HttpAuthorizerType={}));var AuthorizerPayloadVersion;(function(AuthorizerPayloadVersion2){AuthorizerPayloadVersion2.VERSION_1_0="1.0",AuthorizerPayloadVersion2.VERSION_2_0="2.0"})(AuthorizerPayloadVersion||(exports.AuthorizerPayloadVersion=AuthorizerPayloadVersion={}));class HttpAuthorizer extends core_1().Resource{static fromHttpAuthorizerAttributes(scope,id,attrs){try{jsiiDeprecationWarnings().aws_cdk_lib_aws_apigatewayv2_HttpAuthorizerAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromHttpAuthorizerAttributes),error}class Import extends core_1().Resource{constructor(){super(...arguments),this.authorizerId=attrs.authorizerId,this.authorizerType=attrs.authorizerType}bind(){return{authorizerId:attrs.authorizerId,authorizationType:attrs.authorizerType}}}return new Import(scope,id)}constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings().aws_cdk_lib_aws_apigatewayv2_HttpAuthorizerProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,HttpAuthorizer),error}let authorizerPayloadFormatVersion=props.payloadFormatVersion;if(props.type===HttpAuthorizerType.JWT&&(!props.jwtAudience||props.jwtAudience.length===0||!props.jwtIssuer))throw new Error("jwtAudience and jwtIssuer are mandatory for JWT authorizers");if(props.type===HttpAuthorizerType.LAMBDA&&!props.authorizerUri)throw new Error("authorizerUri is mandatory for Lambda authorizers");props.type===HttpAuthorizerType.LAMBDA&&typeof authorizerPayloadFormatVersion>"u"&&(authorizerPayloadFormatVersion=AuthorizerPayloadVersion.VERSION_2_0);const resource=new(index_1()).CfnAuthorizer(this,"Resource",{name:props.authorizerName??id,apiId:props.httpApi.apiId,authorizerType:props.type,identitySource:props.identitySource,jwtConfiguration:undefinedIfNoKeys({audience:props.jwtAudience,issuer:props.jwtIssuer}),enableSimpleResponses:props.enableSimpleResponses,authorizerPayloadFormatVersion,authorizerUri:props.authorizerUri,authorizerResultTtlInSeconds:props.resultsCacheTtl?.toSeconds()});this.authorizerId=resource.ref}}exports.HttpAuthorizer=HttpAuthorizer,_a=JSII_RTTI_SYMBOL_1,HttpAuthorizer[_a]={fqn:"aws-cdk-lib.aws_apigatewayv2.HttpAuthorizer",version:"2.148.1"};function undefinedIfNoKeys(obj){return Object.values(obj).every(val=>val===void 0)?void 0:obj}class HttpNoneAuthorizer{bind(_options){try{jsiiDeprecationWarnings().aws_cdk_lib_aws_apigatewayv2_HttpRouteAuthorizerBindOptions(_options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.bind),error}return{authorizationType:"NONE"}}}exports.HttpNoneAuthorizer=HttpNoneAuthorizer,_b=JSII_RTTI_SYMBOL_1,HttpNoneAuthorizer[_b]={fqn:"aws-cdk-lib.aws_apigatewayv2.HttpNoneAuthorizer",version:"2.148.1"};
