aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
2 lines (1 loc) • 4.69 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.throwIfInvalid=exports.ALLOWED_OAUTH2_RETURN_URL_MAX=exports.ALLOWED_OAUTH2_RETURN_URL_MIN=exports.WORKLOAD_IDENTITY_NAME_PATTERN=exports.WORKLOAD_IDENTITY_NAME_MAX=exports.WORKLOAD_IDENTITY_NAME_MIN=exports.CREDENTIAL_PROVIDER_TAG_MAX=exports.CREDENTIAL_PROVIDER_TAG_MIN=exports.API_KEY_VALUE_MAX=exports.API_KEY_VALUE_MIN=exports.CREDENTIAL_PROVIDER_NAME_PATTERN=exports.CREDENTIAL_PROVIDER_NAME_MAX=exports.CREDENTIAL_PROVIDER_NAME_MIN=void 0,exports.validateWorkloadIdentityName=validateWorkloadIdentityName,exports.validateAllowedResourceOauth2ReturnUrls=validateAllowedResourceOauth2ReturnUrls,exports.validateCredentialProviderName=validateCredentialProviderName,exports.validateApiKeyValue=validateApiKeyValue,exports.validateCredentialProviderTags=validateCredentialProviderTags;var core_1=()=>{var tmp=require("../../../core");return core_1=()=>tmp,tmp},validation_helpers_1=()=>{var tmp=require("../common/validation-helpers");return validation_helpers_1=()=>tmp,tmp};Object.defineProperty(exports,"throwIfInvalid",{enumerable:!0,get:function(){return validation_helpers_1().throwIfInvalid}}),exports.CREDENTIAL_PROVIDER_NAME_MIN=1,exports.CREDENTIAL_PROVIDER_NAME_MAX=128,exports.CREDENTIAL_PROVIDER_NAME_PATTERN=/^[a-zA-Z0-9\-_]+$/,exports.API_KEY_VALUE_MIN=1,exports.API_KEY_VALUE_MAX=65536,exports.CREDENTIAL_PROVIDER_TAG_MIN=1,exports.CREDENTIAL_PROVIDER_TAG_MAX=256,exports.WORKLOAD_IDENTITY_NAME_MIN=3,exports.WORKLOAD_IDENTITY_NAME_MAX=255,exports.WORKLOAD_IDENTITY_NAME_PATTERN=/^[A-Za-z0-9_.-]+$/,exports.ALLOWED_OAUTH2_RETURN_URL_MIN=1,exports.ALLOWED_OAUTH2_RETURN_URL_MAX=2048;function validateWorkloadIdentityName(name,scope){const errors=[];return errors.push(...(0,validation_helpers_1().validateStringFieldLength)({value:name,fieldName:"Workload identity name",minLength:exports.WORKLOAD_IDENTITY_NAME_MIN,maxLength:exports.WORKLOAD_IDENTITY_NAME_MAX},scope)),errors.push(...(0,validation_helpers_1().validateFieldPattern)(name,"Workload identity name",exports.WORKLOAD_IDENTITY_NAME_PATTERN,"Workload identity name may only contain letters, numbers, dots, underscores, and hyphens.",scope)),errors}function validateAllowedResourceOauth2ReturnUrls(urls,scope){if(urls==null)return[];if(core_1().Token.isUnresolved(urls))return[];const errors=[];if(urls.length===0)return errors.push("Allowed OAuth2 return URLs must contain at least one URL when specified."),errors;for(const url of urls)core_1().Token.isUnresolved(url)||errors.push(...(0,validation_helpers_1().validateStringFieldLength)({value:url,fieldName:"Allowed OAuth2 return URL",minLength:exports.ALLOWED_OAUTH2_RETURN_URL_MIN,maxLength:exports.ALLOWED_OAUTH2_RETURN_URL_MAX},scope));return errors}function validateCredentialProviderName(name,scope){const errors=[];return errors.push(...(0,validation_helpers_1().validateStringFieldLength)({value:name,fieldName:"Credential provider name",minLength:exports.CREDENTIAL_PROVIDER_NAME_MIN,maxLength:exports.CREDENTIAL_PROVIDER_NAME_MAX},scope)),errors.push(...(0,validation_helpers_1().validateFieldPattern)(name,"Credential provider name",exports.CREDENTIAL_PROVIDER_NAME_PATTERN,"Credential provider name may only contain letters, numbers, hyphens, and underscores.",scope)),errors}function validateApiKeyValue(apiKey,scope){return apiKey==null||apiKey===""?[]:core_1().Token.isUnresolved(apiKey)?[]:(0,validation_helpers_1().validateStringFieldLength)({value:apiKey,fieldName:"API key",minLength:exports.API_KEY_VALUE_MIN,maxLength:exports.API_KEY_VALUE_MAX},scope)}function validateCredentialProviderTags(tags,scope){let errors=[];if(tags===void 0||core_1().Token.isUnresolved(tags))return errors;const validKeyPattern=/^[a-zA-Z0-9\s._:/=+@-]*$/,validValuePattern=/^[a-zA-Z0-9\s._:/=+@-]*$/;for(const[key,value]of Object.entries(tags))core_1().Token.isUnresolved(key)||(key.toLowerCase().startsWith("aws:")&&errors.push(`Tag key "${key}" cannot start with "aws:" as this prefix is reserved by AWS`),errors.push(...(0,validation_helpers_1().validateStringFieldLength)({value:key,fieldName:"Tag key",minLength:exports.CREDENTIAL_PROVIDER_TAG_MIN,maxLength:exports.CREDENTIAL_PROVIDER_TAG_MAX},scope)),errors.push(...(0,validation_helpers_1().validateFieldPattern)(key,"Tag key",validKeyPattern,void 0,scope))),core_1().Token.isUnresolved(value)||(errors.push(...(0,validation_helpers_1().validateStringFieldLength)({value,fieldName:"Tag value",minLength:exports.CREDENTIAL_PROVIDER_TAG_MIN,maxLength:exports.CREDENTIAL_PROVIDER_TAG_MAX},scope)),errors.push(...(0,validation_helpers_1().validateFieldPattern)(value,"Tag value",validValuePattern,void 0,scope)));return errors}