UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

2 lines (1 loc) 1.27 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ScalableTableAttribute=void 0;var appscaling=()=>{var tmp=require("../../aws-applicationautoscaling");return appscaling=()=>tmp,tmp};class ScalableTableAttribute extends appscaling().BaseScalableAttribute{constructor(){super(...arguments),this.scalingPolicyCreated=!1}scaleOnSchedule(id,action){this.scalingPolicyCreated=!0,super.doScaleOnSchedule(id,action)}scaleOnUtilization(props){if(props.targetUtilizationPercent<10||props.targetUtilizationPercent>90)throw new RangeError(`targetUtilizationPercent for DynamoDB scaling must be between 10 and 90 percent, got: ${props.targetUtilizationPercent}`);this.scalingPolicyCreated=!0;const predefinedMetric=this.props.dimension.indexOf("ReadCapacity")===-1?appscaling().PredefinedMetric.DYNAMODB_WRITE_CAPACITY_UTILIZATION:appscaling().PredefinedMetric.DYNAMODB_READ_CAPACITY_UTILIZATION;super.doScaleToTrackMetric("Tracking",{policyName:props.policyName,disableScaleIn:props.disableScaleIn,scaleInCooldown:props.scaleInCooldown,scaleOutCooldown:props.scaleOutCooldown,targetValue:props.targetUtilizationPercent,predefinedMetric})}get _scalingPolicyCreated(){return this.scalingPolicyCreated}}exports.ScalableTableAttribute=ScalableTableAttribute;