aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
2 lines (1 loc) • 6.38 kB
JavaScript
"use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnCodeDeployBlueGreenHook=exports.CfnTrafficRoutingType=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var cfn_hook_1=()=>{var tmp=require("./cfn-hook");return cfn_hook_1=()=>tmp,tmp},errors_1=()=>{var tmp=require("./errors");return errors_1=()=>tmp,tmp},util_1=()=>{var tmp=require("./util");return util_1=()=>tmp,tmp},CfnTrafficRoutingType;(function(CfnTrafficRoutingType2){CfnTrafficRoutingType2.ALL_AT_ONCE="AllAtOnce",CfnTrafficRoutingType2.TIME_BASED_CANARY="TimeBasedCanary",CfnTrafficRoutingType2.TIME_BASED_LINEAR="TimeBasedLinear"})(CfnTrafficRoutingType||(exports.CfnTrafficRoutingType=CfnTrafficRoutingType={}));class CfnCodeDeployBlueGreenHook extends cfn_hook_1().CfnHook{static _fromCloudFormation(scope,id,hookAttributes,options){hookAttributes=hookAttributes||{};const hookProperties=options.parser.parseValue(hookAttributes.Properties);return new CfnCodeDeployBlueGreenHook(scope,id,{serviceRole:hookProperties?.ServiceRole,applications:hookProperties?.Applications?.map(applicationFromCloudFormation),trafficRoutingConfig:{type:hookProperties?.TrafficRoutingConfig?.Type,timeBasedCanary:{stepPercentage:hookProperties?.TrafficRoutingConfig?.TimeBasedCanary?.StepPercentage,bakeTimeMins:hookProperties?.TrafficRoutingConfig?.TimeBasedCanary?.BakeTimeMins},timeBasedLinear:{stepPercentage:hookProperties?.TrafficRoutingConfig?.TimeBasedLinear?.StepPercentage,bakeTimeMins:hookProperties?.TrafficRoutingConfig?.TimeBasedLinear?.BakeTimeMins}},additionalOptions:{terminationWaitTimeInMinutes:hookProperties?.AdditionalOptions?.TerminationWaitTimeInMinutes},lifecycleEventHooks:{beforeInstall:hookProperties?.LifecycleEventHooks?.BeforeInstall,afterInstall:hookProperties?.LifecycleEventHooks?.AfterInstall,afterAllowTestTraffic:hookProperties?.LifecycleEventHooks?.AfterAllowTestTraffic,beforeAllowTraffic:hookProperties?.LifecycleEventHooks?.BeforeAllowTraffic,afterAllowTraffic:hookProperties?.LifecycleEventHooks?.AfterAllowTraffic}});function applicationFromCloudFormation(app){const target=findResource(app?.Target?.LogicalID),taskDefinitions=app?.ECSAttributes?.TaskDefinitions?.map(td=>findResource(td)),taskSets=app?.ECSAttributes?.TaskSets?.map(ts=>findResource(ts)),prodTrafficRoute=findResource(app?.ECSAttributes?.TrafficRouting?.ProdTrafficRoute?.LogicalID),testTrafficRoute=findResource(app?.ECSAttributes?.TrafficRouting?.TestTrafficRoute?.LogicalID),targetGroups=app?.ECSAttributes?.TrafficRouting?.TargetGroups?.map(tg=>findResource(tg));return{target:{type:app?.Target?.Type,logicalId:target?.logicalId},ecsAttributes:{taskDefinitions:taskDefinitions?.map(td=>td?.logicalId),taskSets:taskSets?.map(ts=>ts?.logicalId),trafficRouting:{prodTrafficRoute:{type:app?.ECSAttributes?.TrafficRouting?.ProdTrafficRoute?.Type,logicalId:prodTrafficRoute?.logicalId},testTrafficRoute:{type:app?.ECSAttributes?.TrafficRouting?.TestTrafficRoute?.Type,logicalId:testTrafficRoute?.logicalId},targetGroups:targetGroups?.map(tg=>tg?.logicalId)}}}}function findResource(logicalId){if(logicalId==null)return;const ret=options.parser.finder.findResource(logicalId);if(!ret)throw new(errors_1()).UnscopedValidationError(`Hook '${id}' references resource '${logicalId}' that was not found in the template`);return ret}}constructor(scope,id,props){super(scope,id,{type:"AWS::CodeDeploy::BlueGreen"});try{jsiiDeprecationWarnings().aws_cdk_lib_CfnCodeDeployBlueGreenHookProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCodeDeployBlueGreenHook),error}this._serviceRole=props.serviceRole,this._applications=props.applications,this._trafficRoutingConfig=props.trafficRoutingConfig,this._additionalOptions=props.additionalOptions,this._lifecycleEventHooks=props.lifecycleEventHooks}get serviceRole(){return this._serviceRole}set serviceRole(serviceRole){this._serviceRole=serviceRole}get applications(){return this._applications}set applications(value){this._applications=value}get trafficRoutingConfig(){return this._trafficRoutingConfig}set trafficRoutingConfig(value){this._trafficRoutingConfig=value}get additionalOptions(){return this._additionalOptions}set additionalOptions(value){this._additionalOptions=value}get lifecycleEventHooks(){return this._lifecycleEventHooks}set lifecycleEventHooks(value){this._lifecycleEventHooks=value}renderProperties(_props){return{ServiceRole:this.serviceRole,Applications:this.applications.map(app=>({Target:{Type:app.target.type,LogicalID:app.target.logicalId},ECSAttributes:{TaskDefinitions:app.ecsAttributes.taskDefinitions,TaskSets:app.ecsAttributes.taskSets,TrafficRouting:{ProdTrafficRoute:{Type:app.ecsAttributes.trafficRouting.prodTrafficRoute.type,LogicalID:app.ecsAttributes.trafficRouting.prodTrafficRoute.logicalId},TestTrafficRoute:{Type:app.ecsAttributes.trafficRouting.testTrafficRoute.type,LogicalID:app.ecsAttributes.trafficRouting.testTrafficRoute.logicalId},TargetGroups:app.ecsAttributes.trafficRouting.targetGroups}}})),TrafficRoutingConfig:(0,util_1().undefinedIfAllValuesAreEmpty)({Type:this.trafficRoutingConfig?.type,TimeBasedCanary:(0,util_1().undefinedIfAllValuesAreEmpty)({StepPercentage:this.trafficRoutingConfig?.timeBasedCanary?.stepPercentage,BakeTimeMins:this.trafficRoutingConfig?.timeBasedCanary?.bakeTimeMins}),TimeBasedLinear:(0,util_1().undefinedIfAllValuesAreEmpty)({StepPercentage:this.trafficRoutingConfig?.timeBasedLinear?.stepPercentage,BakeTimeMins:this.trafficRoutingConfig?.timeBasedLinear?.bakeTimeMins})}),AdditionalOptions:(0,util_1().undefinedIfAllValuesAreEmpty)({TerminationWaitTimeInMinutes:this.additionalOptions?.terminationWaitTimeInMinutes}),LifecycleEventHooks:(0,util_1().undefinedIfAllValuesAreEmpty)({BeforeInstall:this.lifecycleEventHooks?.beforeInstall,AfterInstall:this.lifecycleEventHooks?.afterInstall,AfterAllowTestTraffic:this.lifecycleEventHooks?.afterAllowTestTraffic,BeforeAllowTraffic:this.lifecycleEventHooks?.beforeAllowTraffic,AfterAllowTraffic:this.lifecycleEventHooks?.afterAllowTraffic})}}}exports.CfnCodeDeployBlueGreenHook=CfnCodeDeployBlueGreenHook,_a=JSII_RTTI_SYMBOL_1,CfnCodeDeployBlueGreenHook[_a]={fqn:"aws-cdk-lib.CfnCodeDeployBlueGreenHook",version:"2.202.0"};