UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

2 lines (1 loc) 1.19 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.StageBase=exports.ApiBase=void 0;var api_mapping_1=()=>{var tmp=require("./api-mapping");return api_mapping_1=()=>tmp,tmp},cloudwatch=()=>{var tmp=require("../../../aws-cloudwatch");return cloudwatch=()=>tmp,tmp},core_1=()=>{var tmp=require("../../../core");return core_1=()=>tmp,tmp};class ApiBase extends core_1().Resource{metric(metricName,props){return new(cloudwatch()).Metric({namespace:"AWS/ApiGateway",metricName,dimensionsMap:{ApiId:this.apiId},...props}).attachTo(this)}}exports.ApiBase=ApiBase;class StageBase extends core_1().Resource{_addDomainMapping(domainMapping){if(this._apiMapping)throw new Error("Only one ApiMapping allowed per Stage");this._apiMapping=new(api_mapping_1()).ApiMapping(this,`${domainMapping.domainName}${domainMapping.mappingKey}`,{api:this.baseApi,domainName:domainMapping.domainName,stage:this,apiMappingKey:domainMapping.mappingKey}),this.node.addDependency(domainMapping.domainName)}metric(metricName,props){return this.baseApi.metric(metricName,props).with({dimensionsMap:{ApiId:this.baseApi.apiId,Stage:this.stageName}}).attachTo(this)}}exports.StageBase=StageBase;