aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
1 lines • 115 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnAlarmMuteRule=exports.CfnMetricStream=exports.CfnInsightRule=exports.CfnDashboard=exports.CfnCompositeAlarm=exports.CfnAnomalyDetector=exports.CfnAlarm=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var cdk=()=>{var tmp=require("../../core/lib");return cdk=()=>tmp,tmp},cfn_parse=()=>{var tmp=require("../../core/lib/helpers-internal");return cfn_parse=()=>tmp,tmp},cdk_errors=()=>{var tmp=require("../../core/lib/errors");return cdk_errors=()=>tmp,tmp};class CfnAlarm extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudwatch.CfnAlarm",version:"2.251.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudWatch::Alarm";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnAlarmPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnAlarm(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnAlarm(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnAlarm.CFN_RESOURCE_TYPE_NAME}static fromAlarmArn(scope,id,arn){class Import extends cdk().Resource{alarmRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:cloudwatch:${Region}:${Account}:alarm:${AlarmName}").parse(arn2);this.alarmRef={alarmName:variables.AlarmName,alarmArn:arn2}}}return new Import(scope,id,arn)}static fromAlarmName(scope,id,alarmName){class Import extends cdk().Resource{alarmRef;constructor(scope2,id2,alarmName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:cloudwatch:${Region}:${Account}:alarm:${AlarmName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,AlarmName:alarmName2});super(scope2,id2,{environmentFromArn:arn}),this.alarmRef={alarmName:alarmName2,alarmArn:arn}}}return new Import(scope,id,alarmName)}static arnForAlarm(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudwatch_IAlarmRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForAlarm),error}return resource.alarmRef.alarmArn}_actionsEnabled;_alarmActions;_alarmDescription;_alarmName;cdkTagManager;_comparisonOperator;_datapointsToAlarm;_dimensions;_evaluateLowSampleCountPercentile;_evaluationCriteria;_evaluationInterval;_evaluationPeriods;_extendedStatistic;_insufficientDataActions;_metricName;_metrics;_namespace;_okActions;_period;_statistic;_tags;_threshold;_thresholdMetricId;_treatMissingData;_unit;constructor(scope,id,props={}){super(scope,id,{type:CfnAlarm.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudwatch_CfnAlarmProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnAlarm),error}this._actionsEnabled=props.actionsEnabled,this._alarmActions=cdk().mapArrayInPlace(props.alarmActions,item=>cdk().getRefProperty(item?.topicRef,"topicArn")??cdk().getRefProperty(item?.scalingPolicyRef,"scalingPolicyArn")??cdk().ensureStringOrUndefined(item,"alarmActions","sns.ITopicRef | autoscaling.IScalingPolicyRef | string")),this._alarmDescription=props.alarmDescription,this._alarmName=props.alarmName,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::CloudWatch::Alarm",void 0,{tagPropertyName:"tags"}),this._comparisonOperator=props.comparisonOperator,this._datapointsToAlarm=props.datapointsToAlarm,this._dimensions=props.dimensions,this._evaluateLowSampleCountPercentile=props.evaluateLowSampleCountPercentile,this._evaluationCriteria=props.evaluationCriteria,this._evaluationInterval=props.evaluationInterval,this._evaluationPeriods=props.evaluationPeriods,this._extendedStatistic=props.extendedStatistic,this._insufficientDataActions=cdk().mapArrayInPlace(props.insufficientDataActions,item=>cdk().getRefProperty(item?.topicRef,"topicArn")??cdk().ensureStringOrUndefined(item,"insufficientDataActions","sns.ITopicRef | string")),this._metricName=props.metricName,this._metrics=props.metrics,this._namespace=props.namespace,this._okActions=cdk().mapArrayInPlace(props.okActions,item=>cdk().getRefProperty(item?.topicRef,"topicArn")??cdk().ensureStringOrUndefined(item,"okActions","sns.ITopicRef | string")),this._period=props.period,this._statistic=props.statistic,this._tags=props.tags,this._threshold=props.threshold,this._thresholdMetricId=props.thresholdMetricId,this._treatMissingData=props.treatMissingData,this._unit=props.unit}get alarmRef(){return{alarmName:this.ref,alarmArn:this.attrArn}}get actionsEnabled(){return this._actionsEnabled}set actionsEnabled(value){cdk().traceProperty(this.node,"ActionsEnabled"),this._actionsEnabled=value}get alarmActions(){return this._alarmActions}set alarmActions(value){cdk().traceProperty(this.node,"AlarmActions"),this._alarmActions=value}get alarmDescription(){return this._alarmDescription}set alarmDescription(value){cdk().traceProperty(this.node,"AlarmDescription"),this._alarmDescription=value}get alarmName(){return this._alarmName}set alarmName(value){cdk().traceProperty(this.node,"AlarmName"),this._alarmName=value}get comparisonOperator(){return this._comparisonOperator}set comparisonOperator(value){cdk().traceProperty(this.node,"ComparisonOperator"),this._comparisonOperator=value}get datapointsToAlarm(){return this._datapointsToAlarm}set datapointsToAlarm(value){cdk().traceProperty(this.node,"DatapointsToAlarm"),this._datapointsToAlarm=value}get dimensions(){return this._dimensions}set dimensions(value){cdk().traceProperty(this.node,"Dimensions"),this._dimensions=value}get evaluateLowSampleCountPercentile(){return this._evaluateLowSampleCountPercentile}set evaluateLowSampleCountPercentile(value){cdk().traceProperty(this.node,"EvaluateLowSampleCountPercentile"),this._evaluateLowSampleCountPercentile=value}get evaluationCriteria(){return this._evaluationCriteria}set evaluationCriteria(value){cdk().traceProperty(this.node,"EvaluationCriteria"),this._evaluationCriteria=value}get evaluationInterval(){return this._evaluationInterval}set evaluationInterval(value){cdk().traceProperty(this.node,"EvaluationInterval"),this._evaluationInterval=value}get evaluationPeriods(){return this._evaluationPeriods}set evaluationPeriods(value){cdk().traceProperty(this.node,"EvaluationPeriods"),this._evaluationPeriods=value}get extendedStatistic(){return this._extendedStatistic}set extendedStatistic(value){cdk().traceProperty(this.node,"ExtendedStatistic"),this._extendedStatistic=value}get insufficientDataActions(){return this._insufficientDataActions}set insufficientDataActions(value){cdk().traceProperty(this.node,"InsufficientDataActions"),this._insufficientDataActions=value}get metricName(){return this._metricName}set metricName(value){cdk().traceProperty(this.node,"MetricName"),this._metricName=value}get metrics(){return this._metrics}set metrics(value){cdk().traceProperty(this.node,"Metrics"),this._metrics=value}get namespace(){return this._namespace}set namespace(value){cdk().traceProperty(this.node,"Namespace"),this._namespace=value}get okActions(){return this._okActions}set okActions(value){cdk().traceProperty(this.node,"OKActions"),this._okActions=value}get period(){return this._period}set period(value){cdk().traceProperty(this.node,"Period"),this._period=value}get statistic(){return this._statistic}set statistic(value){cdk().traceProperty(this.node,"Statistic"),this._statistic=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get threshold(){return this._threshold}set threshold(value){cdk().traceProperty(this.node,"Threshold"),this._threshold=value}get thresholdMetricId(){return this._thresholdMetricId}set thresholdMetricId(value){cdk().traceProperty(this.node,"ThresholdMetricId"),this._thresholdMetricId=value}get treatMissingData(){return this._treatMissingData}set treatMissingData(value){cdk().traceProperty(this.node,"TreatMissingData"),this._treatMissingData=value}get unit(){return this._unit}set unit(value){cdk().traceProperty(this.node,"Unit"),this._unit=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{actionsEnabled:this._actionsEnabled,alarmActions:this._alarmActions,alarmDescription:this._alarmDescription,alarmName:this._alarmName,tags:this.cdkTagManager.renderTags(this._tags),comparisonOperator:this._comparisonOperator,datapointsToAlarm:this._datapointsToAlarm,dimensions:this._dimensions,evaluateLowSampleCountPercentile:this._evaluateLowSampleCountPercentile,evaluationCriteria:this._evaluationCriteria,evaluationInterval:this._evaluationInterval,evaluationPeriods:this._evaluationPeriods,extendedStatistic:this._extendedStatistic,insufficientDataActions:this._insufficientDataActions,metricName:this._metricName,metrics:this._metrics,namespace:this._namespace,okActions:this._okActions,period:this._period,statistic:this._statistic,threshold:this._threshold,thresholdMetricId:this._thresholdMetricId,treatMissingData:this._treatMissingData,unit:this._unit}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnAlarm.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnAlarmPropsToCloudFormation(props)}}exports.CfnAlarm=CfnAlarm;function CfnAlarmDimensionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "DimensionProperty"')}function convertCfnAlarmDimensionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAlarmDimensionPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnAlarmDimensionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAlarmMetricPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("dimensions",cdk().listValidator(CfnAlarmDimensionPropertyValidator))(properties.dimensions)),errors.collect(cdk().propertyValidator("metricName",cdk().validateString)(properties.metricName)),errors.collect(cdk().propertyValidator("namespace",cdk().validateString)(properties.namespace)),errors.wrap('supplied properties not correct for "MetricProperty"')}function convertCfnAlarmMetricPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAlarmMetricPropertyValidator(properties).assertSuccess(),{Dimensions:cdk().listMapper(convertCfnAlarmDimensionPropertyToCloudFormation)(properties.dimensions),MetricName:cdk().stringToCloudFormation(properties.metricName),Namespace:cdk().stringToCloudFormation(properties.namespace)}):properties}function CfnAlarmMetricPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("dimensions","Dimensions",properties.Dimensions!=null?cfn_parse().FromCloudFormation.getArray(CfnAlarmDimensionPropertyFromCloudFormation)(properties.Dimensions):void 0),ret.addPropertyResult("metricName","MetricName",properties.MetricName!=null?cfn_parse().FromCloudFormation.getString(properties.MetricName):void 0),ret.addPropertyResult("namespace","Namespace",properties.Namespace!=null?cfn_parse().FromCloudFormation.getString(properties.Namespace):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAlarmMetricStatPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("metric",cdk().requiredValidator)(properties.metric)),errors.collect(cdk().propertyValidator("metric",CfnAlarmMetricPropertyValidator)(properties.metric)),errors.collect(cdk().propertyValidator("period",cdk().requiredValidator)(properties.period)),errors.collect(cdk().propertyValidator("period",cdk().validateNumber)(properties.period)),errors.collect(cdk().propertyValidator("stat",cdk().requiredValidator)(properties.stat)),errors.collect(cdk().propertyValidator("stat",cdk().validateString)(properties.stat)),errors.collect(cdk().propertyValidator("unit",cdk().validateString)(properties.unit)),errors.wrap('supplied properties not correct for "MetricStatProperty"')}function convertCfnAlarmMetricStatPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAlarmMetricStatPropertyValidator(properties).assertSuccess(),{Metric:convertCfnAlarmMetricPropertyToCloudFormation(properties.metric),Period:cdk().numberToCloudFormation(properties.period),Stat:cdk().stringToCloudFormation(properties.stat),Unit:cdk().stringToCloudFormation(properties.unit)}):properties}function CfnAlarmMetricStatPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("metric","Metric",properties.Metric!=null?CfnAlarmMetricPropertyFromCloudFormation(properties.Metric):void 0),ret.addPropertyResult("period","Period",properties.Period!=null?cfn_parse().FromCloudFormation.getNumber(properties.Period):void 0),ret.addPropertyResult("stat","Stat",properties.Stat!=null?cfn_parse().FromCloudFormation.getString(properties.Stat):void 0),ret.addPropertyResult("unit","Unit",properties.Unit!=null?cfn_parse().FromCloudFormation.getString(properties.Unit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAlarmMetricDataQueryPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("accountId",cdk().validateString)(properties.accountId)),errors.collect(cdk().propertyValidator("expression",cdk().validateString)(properties.expression)),errors.collect(cdk().propertyValidator("id",cdk().requiredValidator)(properties.id)),errors.collect(cdk().propertyValidator("id",cdk().validateString)(properties.id)),errors.collect(cdk().propertyValidator("label",cdk().validateString)(properties.label)),errors.collect(cdk().propertyValidator("metricStat",CfnAlarmMetricStatPropertyValidator)(properties.metricStat)),errors.collect(cdk().propertyValidator("period",cdk().validateNumber)(properties.period)),errors.collect(cdk().propertyValidator("returnData",cdk().validateBoolean)(properties.returnData)),errors.wrap('supplied properties not correct for "MetricDataQueryProperty"')}function convertCfnAlarmMetricDataQueryPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAlarmMetricDataQueryPropertyValidator(properties).assertSuccess(),{AccountId:cdk().stringToCloudFormation(properties.accountId),Expression:cdk().stringToCloudFormation(properties.expression),Id:cdk().stringToCloudFormation(properties.id),Label:cdk().stringToCloudFormation(properties.label),MetricStat:convertCfnAlarmMetricStatPropertyToCloudFormation(properties.metricStat),Period:cdk().numberToCloudFormation(properties.period),ReturnData:cdk().booleanToCloudFormation(properties.returnData)}):properties}function CfnAlarmMetricDataQueryPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("accountId","AccountId",properties.AccountId!=null?cfn_parse().FromCloudFormation.getString(properties.AccountId):void 0),ret.addPropertyResult("expression","Expression",properties.Expression!=null?cfn_parse().FromCloudFormation.getString(properties.Expression):void 0),ret.addPropertyResult("id","Id",properties.Id!=null?cfn_parse().FromCloudFormation.getString(properties.Id):void 0),ret.addPropertyResult("label","Label",properties.Label!=null?cfn_parse().FromCloudFormation.getString(properties.Label):void 0),ret.addPropertyResult("metricStat","MetricStat",properties.MetricStat!=null?CfnAlarmMetricStatPropertyFromCloudFormation(properties.MetricStat):void 0),ret.addPropertyResult("period","Period",properties.Period!=null?cfn_parse().FromCloudFormation.getNumber(properties.Period):void 0),ret.addPropertyResult("returnData","ReturnData",properties.ReturnData!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ReturnData):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAlarmAlarmPromQLCriteriaPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("pendingPeriod",cdk().validateNumber)(properties.pendingPeriod)),errors.collect(cdk().propertyValidator("query",cdk().validateString)(properties.query)),errors.collect(cdk().propertyValidator("recoveryPeriod",cdk().validateNumber)(properties.recoveryPeriod)),errors.wrap('supplied properties not correct for "AlarmPromQLCriteriaProperty"')}function convertCfnAlarmAlarmPromQLCriteriaPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAlarmAlarmPromQLCriteriaPropertyValidator(properties).assertSuccess(),{PendingPeriod:cdk().numberToCloudFormation(properties.pendingPeriod),Query:cdk().stringToCloudFormation(properties.query),RecoveryPeriod:cdk().numberToCloudFormation(properties.recoveryPeriod)}):properties}function CfnAlarmAlarmPromQLCriteriaPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("pendingPeriod","PendingPeriod",properties.PendingPeriod!=null?cfn_parse().FromCloudFormation.getNumber(properties.PendingPeriod):void 0),ret.addPropertyResult("query","Query",properties.Query!=null?cfn_parse().FromCloudFormation.getString(properties.Query):void 0),ret.addPropertyResult("recoveryPeriod","RecoveryPeriod",properties.RecoveryPeriod!=null?cfn_parse().FromCloudFormation.getNumber(properties.RecoveryPeriod):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAlarmEvaluationCriteriaPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("promQlCriteria",CfnAlarmAlarmPromQLCriteriaPropertyValidator)(properties.promQlCriteria)),errors.wrap('supplied properties not correct for "EvaluationCriteriaProperty"')}function convertCfnAlarmEvaluationCriteriaPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAlarmEvaluationCriteriaPropertyValidator(properties).assertSuccess(),{PromQLCriteria:convertCfnAlarmAlarmPromQLCriteriaPropertyToCloudFormation(properties.promQlCriteria)}):properties}function CfnAlarmEvaluationCriteriaPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("promQlCriteria","PromQLCriteria",properties.PromQLCriteria!=null?CfnAlarmAlarmPromQLCriteriaPropertyFromCloudFormation(properties.PromQLCriteria):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAlarmPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("actionsEnabled",cdk().validateBoolean)(properties.actionsEnabled)),errors.collect(cdk().propertyValidator("alarmActions",cdk().listValidator(cdk().validateString))(properties.alarmActions)),errors.collect(cdk().propertyValidator("alarmDescription",cdk().validateString)(properties.alarmDescription)),errors.collect(cdk().propertyValidator("alarmName",cdk().validateString)(properties.alarmName)),errors.collect(cdk().propertyValidator("comparisonOperator",cdk().validateString)(properties.comparisonOperator)),errors.collect(cdk().propertyValidator("datapointsToAlarm",cdk().validateNumber)(properties.datapointsToAlarm)),errors.collect(cdk().propertyValidator("dimensions",cdk().listValidator(CfnAlarmDimensionPropertyValidator))(properties.dimensions)),errors.collect(cdk().propertyValidator("evaluateLowSampleCountPercentile",cdk().validateString)(properties.evaluateLowSampleCountPercentile)),errors.collect(cdk().propertyValidator("evaluationCriteria",CfnAlarmEvaluationCriteriaPropertyValidator)(properties.evaluationCriteria)),errors.collect(cdk().propertyValidator("evaluationInterval",cdk().validateNumber)(properties.evaluationInterval)),errors.collect(cdk().propertyValidator("evaluationPeriods",cdk().validateNumber)(properties.evaluationPeriods)),errors.collect(cdk().propertyValidator("extendedStatistic",cdk().validateString)(properties.extendedStatistic)),errors.collect(cdk().propertyValidator("insufficientDataActions",cdk().listValidator(cdk().validateString))(properties.insufficientDataActions)),errors.collect(cdk().propertyValidator("metricName",cdk().validateString)(properties.metricName)),errors.collect(cdk().propertyValidator("metrics",cdk().listValidator(CfnAlarmMetricDataQueryPropertyValidator))(properties.metrics)),errors.collect(cdk().propertyValidator("namespace",cdk().validateString)(properties.namespace)),errors.collect(cdk().propertyValidator("okActions",cdk().listValidator(cdk().validateString))(properties.okActions)),errors.collect(cdk().propertyValidator("period",cdk().validateNumber)(properties.period)),errors.collect(cdk().propertyValidator("statistic",cdk().validateString)(properties.statistic)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("threshold",cdk().validateNumber)(properties.threshold)),errors.collect(cdk().propertyValidator("thresholdMetricId",cdk().validateString)(properties.thresholdMetricId)),errors.collect(cdk().propertyValidator("treatMissingData",cdk().validateString)(properties.treatMissingData)),errors.collect(cdk().propertyValidator("unit",cdk().validateString)(properties.unit)),errors.wrap('supplied properties not correct for "CfnAlarmProps"')}function convertCfnAlarmPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAlarmPropsValidator(properties).assertSuccess(),{ActionsEnabled:cdk().booleanToCloudFormation(properties.actionsEnabled),AlarmActions:cdk().listMapper(cdk().stringToCloudFormation)(properties.alarmActions),AlarmDescription:cdk().stringToCloudFormation(properties.alarmDescription),AlarmName:cdk().stringToCloudFormation(properties.alarmName),ComparisonOperator:cdk().stringToCloudFormation(properties.comparisonOperator),DatapointsToAlarm:cdk().numberToCloudFormation(properties.datapointsToAlarm),Dimensions:cdk().listMapper(convertCfnAlarmDimensionPropertyToCloudFormation)(properties.dimensions),EvaluateLowSampleCountPercentile:cdk().stringToCloudFormation(properties.evaluateLowSampleCountPercentile),EvaluationCriteria:convertCfnAlarmEvaluationCriteriaPropertyToCloudFormation(properties.evaluationCriteria),EvaluationInterval:cdk().numberToCloudFormation(properties.evaluationInterval),EvaluationPeriods:cdk().numberToCloudFormation(properties.evaluationPeriods),ExtendedStatistic:cdk().stringToCloudFormation(properties.extendedStatistic),InsufficientDataActions:cdk().listMapper(cdk().stringToCloudFormation)(properties.insufficientDataActions),MetricName:cdk().stringToCloudFormation(properties.metricName),Metrics:cdk().listMapper(convertCfnAlarmMetricDataQueryPropertyToCloudFormation)(properties.metrics),Namespace:cdk().stringToCloudFormation(properties.namespace),OKActions:cdk().listMapper(cdk().stringToCloudFormation)(properties.okActions),Period:cdk().numberToCloudFormation(properties.period),Statistic:cdk().stringToCloudFormation(properties.statistic),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),Threshold:cdk().numberToCloudFormation(properties.threshold),ThresholdMetricId:cdk().stringToCloudFormation(properties.thresholdMetricId),TreatMissingData:cdk().stringToCloudFormation(properties.treatMissingData),Unit:cdk().stringToCloudFormation(properties.unit)}):properties}function CfnAlarmPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("actionsEnabled","ActionsEnabled",properties.ActionsEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ActionsEnabled):void 0),ret.addPropertyResult("alarmActions","AlarmActions",properties.AlarmActions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AlarmActions):void 0),ret.addPropertyResult("alarmDescription","AlarmDescription",properties.AlarmDescription!=null?cfn_parse().FromCloudFormation.getString(properties.AlarmDescription):void 0),ret.addPropertyResult("alarmName","AlarmName",properties.AlarmName!=null?cfn_parse().FromCloudFormation.getString(properties.AlarmName):void 0),ret.addPropertyResult("comparisonOperator","ComparisonOperator",properties.ComparisonOperator!=null?cfn_parse().FromCloudFormation.getString(properties.ComparisonOperator):void 0),ret.addPropertyResult("datapointsToAlarm","DatapointsToAlarm",properties.DatapointsToAlarm!=null?cfn_parse().FromCloudFormation.getNumber(properties.DatapointsToAlarm):void 0),ret.addPropertyResult("dimensions","Dimensions",properties.Dimensions!=null?cfn_parse().FromCloudFormation.getArray(CfnAlarmDimensionPropertyFromCloudFormation)(properties.Dimensions):void 0),ret.addPropertyResult("evaluateLowSampleCountPercentile","EvaluateLowSampleCountPercentile",properties.EvaluateLowSampleCountPercentile!=null?cfn_parse().FromCloudFormation.getString(properties.EvaluateLowSampleCountPercentile):void 0),ret.addPropertyResult("evaluationCriteria","EvaluationCriteria",properties.EvaluationCriteria!=null?CfnAlarmEvaluationCriteriaPropertyFromCloudFormation(properties.EvaluationCriteria):void 0),ret.addPropertyResult("evaluationInterval","EvaluationInterval",properties.EvaluationInterval!=null?cfn_parse().FromCloudFormation.getNumber(properties.EvaluationInterval):void 0),ret.addPropertyResult("evaluationPeriods","EvaluationPeriods",properties.EvaluationPeriods!=null?cfn_parse().FromCloudFormation.getNumber(properties.EvaluationPeriods):void 0),ret.addPropertyResult("extendedStatistic","ExtendedStatistic",properties.ExtendedStatistic!=null?cfn_parse().FromCloudFormation.getString(properties.ExtendedStatistic):void 0),ret.addPropertyResult("insufficientDataActions","InsufficientDataActions",properties.InsufficientDataActions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.InsufficientDataActions):void 0),ret.addPropertyResult("metricName","MetricName",properties.MetricName!=null?cfn_parse().FromCloudFormation.getString(properties.MetricName):void 0),ret.addPropertyResult("metrics","Metrics",properties.Metrics!=null?cfn_parse().FromCloudFormation.getArray(CfnAlarmMetricDataQueryPropertyFromCloudFormation)(properties.Metrics):void 0),ret.addPropertyResult("namespace","Namespace",properties.Namespace!=null?cfn_parse().FromCloudFormation.getString(properties.Namespace):void 0),ret.addPropertyResult("okActions","OKActions",properties.OKActions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.OKActions):void 0),ret.addPropertyResult("period","Period",properties.Period!=null?cfn_parse().FromCloudFormation.getNumber(properties.Period):void 0),ret.addPropertyResult("statistic","Statistic",properties.Statistic!=null?cfn_parse().FromCloudFormation.getString(properties.Statistic):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("threshold","Threshold",properties.Threshold!=null?cfn_parse().FromCloudFormation.getNumber(properties.Threshold):void 0),ret.addPropertyResult("thresholdMetricId","ThresholdMetricId",properties.ThresholdMetricId!=null?cfn_parse().FromCloudFormation.getString(properties.ThresholdMetricId):void 0),ret.addPropertyResult("treatMissingData","TreatMissingData",properties.TreatMissingData!=null?cfn_parse().FromCloudFormation.getString(properties.TreatMissingData):void 0),ret.addPropertyResult("unit","Unit",properties.Unit!=null?cfn_parse().FromCloudFormation.getString(properties.Unit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnAnomalyDetector extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudwatch.CfnAnomalyDetector",version:"2.251.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudWatch::AnomalyDetector";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnAnomalyDetectorPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnAnomalyDetector(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnAnomalyDetector(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnAnomalyDetector.CFN_RESOURCE_TYPE_NAME}_configuration;_dimensions;_metricCharacteristics;_metricMathAnomalyDetector;_metricName;_namespace;_singleMetricAnomalyDetector;_stat;constructor(scope,id,props={}){super(scope,id,{type:CfnAnomalyDetector.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudwatch_CfnAnomalyDetectorProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnAnomalyDetector),error}this._configuration=props.configuration,this._dimensions=props.dimensions,this._metricCharacteristics=props.metricCharacteristics,this._metricMathAnomalyDetector=props.metricMathAnomalyDetector,this._metricName=props.metricName,this._namespace=props.namespace,this._singleMetricAnomalyDetector=props.singleMetricAnomalyDetector,this._stat=props.stat}get anomalyDetectorRef(){return{anomalyDetectorId:this.ref}}get configuration(){return this._configuration}set configuration(value){cdk().traceProperty(this.node,"Configuration"),this._configuration=value}get dimensions(){return this._dimensions}set dimensions(value){cdk().traceProperty(this.node,"Dimensions"),this._dimensions=value}get metricCharacteristics(){return this._metricCharacteristics}set metricCharacteristics(value){cdk().traceProperty(this.node,"MetricCharacteristics"),this._metricCharacteristics=value}get metricMathAnomalyDetector(){return this._metricMathAnomalyDetector}set metricMathAnomalyDetector(value){cdk().traceProperty(this.node,"MetricMathAnomalyDetector"),this._metricMathAnomalyDetector=value}get metricName(){return this._metricName}set metricName(value){cdk().traceProperty(this.node,"MetricName"),this._metricName=value}get namespace(){return this._namespace}set namespace(value){cdk().traceProperty(this.node,"Namespace"),this._namespace=value}get singleMetricAnomalyDetector(){return this._singleMetricAnomalyDetector}set singleMetricAnomalyDetector(value){cdk().traceProperty(this.node,"SingleMetricAnomalyDetector"),this._singleMetricAnomalyDetector=value}get stat(){return this._stat}set stat(value){cdk().traceProperty(this.node,"Stat"),this._stat=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{configuration:this._configuration,dimensions:this._dimensions,metricCharacteristics:this._metricCharacteristics,metricMathAnomalyDetector:this._metricMathAnomalyDetector,metricName:this._metricName,namespace:this._namespace,singleMetricAnomalyDetector:this._singleMetricAnomalyDetector,stat:this._stat}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnAnomalyDetector.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnAnomalyDetectorPropsToCloudFormation(props)}}exports.CfnAnomalyDetector=CfnAnomalyDetector;function CfnAnomalyDetectorRangePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("endTime",cdk().requiredValidator)(properties.endTime)),errors.collect(cdk().propertyValidator("endTime",cdk().validateString)(properties.endTime)),errors.collect(cdk().propertyValidator("startTime",cdk().requiredValidator)(properties.startTime)),errors.collect(cdk().propertyValidator("startTime",cdk().validateString)(properties.startTime)),errors.wrap('supplied properties not correct for "RangeProperty"')}function convertCfnAnomalyDetectorRangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAnomalyDetectorRangePropertyValidator(properties).assertSuccess(),{EndTime:cdk().stringToCloudFormation(properties.endTime),StartTime:cdk().stringToCloudFormation(properties.startTime)}):properties}function CfnAnomalyDetectorRangePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("endTime","EndTime",properties.EndTime!=null?cfn_parse().FromCloudFormation.getString(properties.EndTime):void 0),ret.addPropertyResult("startTime","StartTime",properties.StartTime!=null?cfn_parse().FromCloudFormation.getString(properties.StartTime):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAnomalyDetectorConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("excludedTimeRanges",cdk().listValidator(CfnAnomalyDetectorRangePropertyValidator))(properties.excludedTimeRanges)),errors.collect(cdk().propertyValidator("metricTimeZone",cdk().validateString)(properties.metricTimeZone)),errors.wrap('supplied properties not correct for "ConfigurationProperty"')}function convertCfnAnomalyDetectorConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAnomalyDetectorConfigurationPropertyValidator(properties).assertSuccess(),{ExcludedTimeRanges:cdk().listMapper(convertCfnAnomalyDetectorRangePropertyToCloudFormation)(properties.excludedTimeRanges),MetricTimeZone:cdk().stringToCloudFormation(properties.metricTimeZone)}):properties}function CfnAnomalyDetectorConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("excludedTimeRanges","ExcludedTimeRanges",properties.ExcludedTimeRanges!=null?cfn_parse().FromCloudFormation.getArray(CfnAnomalyDetectorRangePropertyFromCloudFormation)(properties.ExcludedTimeRanges):void 0),ret.addPropertyResult("metricTimeZone","MetricTimeZone",properties.MetricTimeZone!=null?cfn_parse().FromCloudFormation.getString(properties.MetricTimeZone):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAnomalyDetectorDimensionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "DimensionProperty"')}function convertCfnAnomalyDetectorDimensionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAnomalyDetectorDimensionPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnAnomalyDetectorDimensionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAnomalyDetectorMetricPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("dimensions",cdk().listValidator(CfnAnomalyDetectorDimensionPropertyValidator))(properties.dimensions)),errors.collect(cdk().propertyValidator("metricName",cdk().requiredValidator)(properties.metricName)),errors.collect(cdk().propertyValidator("metricName",cdk().validateString)(properties.metricName)),errors.collect(cdk().propertyValidator("namespace",cdk().requiredValidator)(properties.namespace)),errors.collect(cdk().propertyValidator("namespace",cdk().validateString)(properties.namespace)),errors.wrap('supplied properties not correct for "MetricProperty"')}function convertCfnAnomalyDetectorMetricPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAnomalyDetectorMetricPropertyValidator(properties).assertSuccess(),{Dimensions:cdk().listMapper(convertCfnAnomalyDetectorDimensionPropertyToCloudFormation)(properties.dimensions),MetricName:cdk().stringToCloudFormation(properties.metricName),Namespace:cdk().stringToCloudFormation(properties.namespace)}):properties}function CfnAnomalyDetectorMetricPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("dimensions","Dimensions",properties.Dimensions!=null?cfn_parse().FromCloudFormation.getArray(CfnAnomalyDetectorDimensionPropertyFromCloudFormation)(properties.Dimensions):void 0),ret.addPropertyResult("metricName","MetricName",properties.MetricName!=null?cfn_parse().FromCloudFormation.getString(properties.MetricName):void 0),ret.addPropertyResult("namespace","Namespace",properties.Namespace!=null?cfn_parse().FromCloudFormation.getString(properties.Namespace):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAnomalyDetectorMetricStatPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("metric",cdk().requiredValidator)(properties.metric)),errors.collect(cdk().propertyValidator("metric",CfnAnomalyDetectorMetricPropertyValidator)(properties.metric)),errors.collect(cdk().propertyValidator("period",cdk().requiredValidator)(properties.period)),errors.collect(cdk().propertyValidator("period",cdk().validateNumber)(properties.period)),errors.collect(cdk().propertyValidator("stat",cdk().requiredValidator)(properties.stat)),errors.collect(cdk().propertyValidator("stat",cdk().validateString)(properties.stat)),errors.collect(cdk().propertyValidator("unit",cdk().validateString)(properties.unit)),errors.wrap('supplied properties not correct for "MetricStatProperty"')}function convertCfnAnomalyDetectorMetricStatPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAnomalyDetectorMetricStatPropertyValidator(properties).assertSuccess(),{Metric:convertCfnAnomalyDetectorMetricPropertyToCloudFormation(properties.metric),Period:cdk().numberToCloudFormation(properties.period),Stat:cdk().stringToCloudFormation(properties.stat),Unit:cdk().stringToCloudFormation(properties.unit)}):properties}function CfnAnomalyDetectorMetricStatPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("metric","Metric",properties.Metric!=null?CfnAnomalyDetectorMetricPropertyFromCloudFormation(properties.Metric):void 0),ret.addPropertyResult("period","Period",properties.Period!=null?cfn_parse().FromCloudFormation.getNumber(properties.Period):void 0),ret.addPropertyResult("stat","Stat",properties.Stat!=null?cfn_parse().FromCloudFormation.getString(properties.Stat):void 0),ret.addPropertyResult("unit","Unit",properties.Unit!=null?cfn_parse().FromCloudFormation.getString(properties.Unit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAnomalyDetectorMetricDataQueryPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("accountId",cdk().validateString)(properties.accountId)),errors.collect(cdk().propertyValidator("expression",cdk().validateString)(properties.expression)),errors.collect(cdk().propertyValidator("id",cdk().requiredValidator)(properties.id)),errors.collect(cdk().propertyValidator("id",cdk().validateString)(properties.id)),errors.collect(cdk().propertyValidator("label",cdk().validateString)(properties.label)),errors.collect(cdk().propertyValidator("metricStat",CfnAnomalyDetectorMetricStatPropertyValidator)(properties.metricStat)),errors.collect(cdk().propertyValidator("period",cdk().validateNumber)(properties.period)),errors.collect(cdk().propertyValidator("returnData",cdk().validateBoolean)(properties.returnData)),errors.wrap('supplied properties not correct for "MetricDataQueryProperty"')}function convertCfnAnomalyDetectorMetricDataQueryPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAnomalyDetectorMetricDataQueryPropertyValidator(properties).assertSuccess(),{AccountId:cdk().stringToCloudFormation(properties.accountId),Expression:cdk().stringToCloudFormation(properties.expression),Id:cdk().stringToCloudFormation(properties.id),Label:cdk().stringToCloudFormation(properties.label),MetricStat:convertCfnAnomalyDetectorMetricStatPropertyToCloudFormation(properties.metricStat),Period:cdk().numberToCloudFormation(properties.period),ReturnData:cdk().booleanToCloudFormation(properties.returnData)}):properties}function CfnAnomalyDetectorMetricDataQueryPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("accountId","AccountId",properties.AccountId!=null?cfn_parse()