aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
2 lines (1 loc) • 2.04 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0}),exports.AUTOGEN_MARKER=void 0,exports.arnForParameterName=arnForParameterName;var core_1=()=>{var tmp=require("../../core");return core_1=()=>tmp,tmp},errors_1=()=>{var tmp=require("../../core/lib/errors");return errors_1=()=>tmp,tmp};exports.AUTOGEN_MARKER="$$autogen$$";function arnForParameterName(scope,parameterName,options={}){const physicalName=options.physicalName,nameToValidate=physicalName||parameterName;if(!core_1().Token.isUnresolved(nameToValidate)&&nameToValidate.includes("/")&&!nameToValidate.startsWith("/"))throw new(errors_1()).ValidationError(`Parameter names must be fully qualified (if they include "/" they must also begin with a "/"): ${nameToValidate}`,scope);if(isSimpleName())return core_1().Stack.of(scope).formatArn({service:"ssm",resource:"parameter",arnFormat:core_1().ArnFormat.SLASH_RESOURCE_NAME,resourceName:parameterName});return core_1().Stack.of(scope).formatArn({service:"ssm",resource:`parameter${parameterName}`});function isSimpleName(){const concreteName=core_1().Token.isUnresolved(parameterName)?physicalName:parameterName;if(!concreteName||core_1().Token.isUnresolved(concreteName)){if(options.simpleName===void 0)throw new(errors_1()).ValidationError('Unable to determine ARN separator for SSM parameter since the parameter name is an unresolved token. Use "fromAttributes" and specify "simpleName" explicitly',scope);return options.simpleName}const result=!concreteName.startsWith("/");if(options.simpleName!==void 0&&options.simpleName!==result)throw concreteName===exports.AUTOGEN_MARKER?new(errors_1()).ValidationError('If "parameterName" is not explicitly defined, "simpleName" must be "true" or undefined since auto-generated parameter names always have simple names',scope):new(errors_1()).ValidationError(`Parameter name "${concreteName}" is ${result?"a simple name":"not a simple name"}, but "simpleName" was explicitly set to ${options.simpleName}. Either omit it or set it to ${result}`,scope);return result}}
;