"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.252.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;cfnPropertyNames={actionsEnabled:"ActionsEnabled",alarmActions:"AlarmActions",alarmDescription:"AlarmDescription",alarmName:"AlarmName",tags:"Tags",comparisonOperator:"ComparisonOperator",datapointsToAlarm:"DatapointsToAlarm",dimensions:"Dimensions",evaluateLowSampleCountPercentile:"EvaluateLowSampleCountPercentile",evaluationCriteria:"EvaluationCriteria",evaluationInterval:"EvaluationInterval",evaluationPeriods:"EvaluationPeriods",extendedStatistic:"ExtendedStatistic",insufficientDataActions:"InsufficientDataActions",metricName:"MetricName",metrics:"Metrics",namespace:"Namespace",okActions:"OKActions",period:"Period",statistic:"Statistic",threshold:"Threshold",thresholdMetricId:"ThresholdMetricId",treatMissingData:"TreatMissingData",unit:"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.252.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;cfnPropertyNames={configuration:"Configuration",dimensions:"Dimensions",metricCharacteristics:"MetricCharacteristics",metricMathAnomalyDetector:"MetricMathAnomalyDetector",metricName:"MetricName",namespace:"Namespace",singleMetricAnomalyDetector:"SingleMetricAnomalyDetector",stat:"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().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?CfnAnomalyDetectorMetricStatPropertyFromCloudFormation(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 CfnAnomalyDetectorMetricMathAnomalyDetectorPropertyValidator(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("metricDataQueries",cdk().listValidator(CfnAnomalyDetectorMetricDataQueryPropertyValidator))(properties.metricDataQueries)),errors.wrap('supplied properties not correct for "MetricMathAnomalyDetectorProperty"')}function convertCfnAnomalyDetectorMetricMathAnomalyDetectorPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAnomalyDetectorMetricMathAnomalyDetectorPropertyValidator(properties).assertSuccess(),{MetricDataQueries:cdk().listMapper(convertCfnAnomalyDetectorMetricDataQueryPropertyToCloudFormation)(properties.metricDataQueries)}):properties}function CfnAnomalyDetectorMetricMathAnomalyDetectorPropertyFromCloudFormation(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("metricDataQueries","MetricDataQueries",properties.MetricDataQueries!=null?cfn_parse().FromCloudFormation.getArray(CfnAnomalyDetectorMetricDataQueryPropertyFromCloudFormation)(properties.MetricDataQueries):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAnomalyDetectorSingleMetricAnomalyDetectorPropertyValidator(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("dimensions",cdk().listValidator(CfnAnomalyDetectorDimensionPropertyValidator))(properties.dimensions)),errors.collect(cdk().propertyValidator("metricName",cdk().validateString)(properties.metricName)),errors.collect(cdk().propertyValidator("namespace",cdk().validateString)(properties.namespace)),errors.collect(cdk().propertyValidator("stat",cdk().validateString)(properties.stat)),errors.wrap('supplied properties not correct for "SingleMetricAnomalyDetectorProperty"')}function convertCfnAnomalyDetectorSingleMetricAnomalyDetectorPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAnomalyDetectorSingleMetricAnomalyDetectorPropertyValidator(properties).assertSuccess(),{AccountId:cdk().stringToCloudFormation(properties.accountId),Dimensions:cdk().listMapper(convertCfnAnomalyDetectorDimensionPropertyToCloudFormation)(properties.dimensions),MetricName:cdk().stringToCloudFormation(properties.metricName),Namespace:cdk().stringToCloudFormation(properties.namespace),Stat:cdk().stringToCloudFormation(properties.stat)}):properties}function CfnAnomalyDetectorSingleMetricAnomalyDetectorPropertyFromCloudFormation(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("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.addPropertyResult("stat","Stat",properties.Stat!=null?cfn_parse().FromCloudFormation.getString(properties.Stat):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAnomalyDetectorMetricCharacteristicsPropertyValidator(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("periodicSpikes",cdk().validateBoolean)(properties.periodicSpikes)),errors.wrap('supplied properties not correct for "MetricCharacteristicsProperty"')}function convertCfnAnomalyDetectorMetricCharacteristicsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAnomalyDetectorMetricCharacteristicsPropertyValidator(properties).assertSuccess(),{PeriodicSpikes:cdk().booleanToCloudFormation(properties.periodicSpikes)}):properties}function CfnAnomalyDetectorMetricCharacteristicsPropertyFromCloudFormation(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("periodicSpikes","PeriodicSpikes",properties.PeriodicSpikes!=null?cfn_parse().FromCloudFormation.getBoolean(properties.PeriodicSpikes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAnomalyDetectorPropsValidator(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("configuration",CfnAnomalyDetectorConfigurationPropertyValidator)(properties.configuration)),errors.collect(cdk().propertyValidator("dimensions",cdk().listValidator(CfnAnomalyDetectorDimensionPropertyValidator))(properties.dimensions)),errors.collect(cdk().propertyValidator("metricCharacteristics",CfnAnomalyDetectorMetricCharacteristicsPropertyValidator)(properties.metricCharacteristics)),errors.collect(cdk().propertyValidator("metricMathAnomalyDetector",CfnAnomalyDetectorMetricMathAnomalyDetectorPropertyValidator)(properties.metricMathAnomalyDetector)),errors.collect(cdk().propertyValidator("metricName",cdk().validateString)(properties.metricName)),errors.collect(cdk().propertyValidator("namespace",cdk().validateString)(properties.namespace)),errors.collect(cdk().propertyValidator("singleMetricAnomalyDetector",CfnAnomalyDetectorSingleMetricAnomalyDetectorPropertyValidator)(properties.singleMetricAnomalyDetector)),errors.collect(cdk().propertyValidator("stat",cdk().validateString)(properties.stat)),errors.wrap('supplied properties not correct for "CfnAnomalyDetectorProps"')}function convertCfnAnomalyDetectorPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAnomalyDetectorPropsValidator(properties).assertSuccess(),{Configuration:convertCfnAnomalyDetectorConfigurationPropertyToCloudFormation(properties.configuration),Dimensions:cdk().listMapper(convertCfnAnomalyDetectorDimensionPropertyToCloudFormation)(properties.dimensions),MetricCharacteristics:convertCfnAnomalyDetectorMetricCharacteristicsPropertyToCloudFormation(properties.metricCharacteristics),MetricMathAnomalyDetector:convertCfnAnomalyDetectorMetricMathAnomalyDetectorPropertyToCloudFormation(properties.metricMathAnomalyDetector),MetricName:cdk().stringToCloudFormation(properties.metricName),Namespace:cdk().stringToCloudFormation(properties.namespace),SingleMetricAnomalyDetector:convertCfnAnomalyDetectorSingleMetricAnomalyDetectorPropertyToCloudFormation(properties.singleMetricAnomalyDetector),Stat:cdk().stringToCloudFormation(properties.stat)}):properties}function CfnAnomalyDetectorPropsFromCloudFormation(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("configuration","Configuration",properties.Configuration!=null?CfnAnomalyDetectorConfigurationPropertyFromCloudFormation(properties.Configuration):void 0),ret.addPropertyResult("dimensions","Dimensions",properties.Dimensions!=null?cfn_parse().FromCloudFormation.getArray(CfnAnomalyDetectorDimensionPropertyFromCloudFormation)(properties.Dimensions):void 0),ret.addPropertyResult("metricCharacteristics","MetricCharacteristics",properties.MetricCharacteristics!=null?CfnAnomalyDetectorMetricCharacteristicsPropertyFromCloudFormation(properties.MetricCharacteristics):void 0),ret.addPropertyResult("metricMathAnomalyDetector","MetricMathAnomalyDetector",properties.MetricMathAnomalyDetector!=null?CfnAnomalyDetectorMetricMathAnomalyDetectorPropertyFromCloudFormation(properties.MetricMathAnomalyDetector):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.addPropertyResult("singleMetricAnomalyDetector","SingleMetricAnomalyDetector",properties.SingleMetricAnomalyDetector!=null?CfnAnomalyDetectorSingleMetricAnomalyDetectorPropertyFromCloudFormation(properties.SingleMetricAnomalyDetector):void 0),ret.addPropertyResult("stat","Stat",properties.Stat!=null?cfn_parse().FromCloudFormation.getString(properties.Stat):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCompositeAlarm extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudwatch.CfnCompositeAlarm",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudWatch::CompositeAlarm";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCompositeAlarmPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCompositeAlarm(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 isCfnCompositeAlarm(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCompositeAlarm.CFN_RESOURCE_TYPE_NAME}static arnForCompositeAlarm(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudwatch_ICompositeAlarmRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCompositeAlarm),error}return resource.compositeAlarmRef.compositeAlarmArn}_actionsEnabled;_actionsSuppressor;_actionsSuppressorExtensionPeriod;_actionsSuppressorWaitPeriod;_alarmActions;_alarmDescription;_alarmName;_alarmRule;cdkTagManager;_insufficientDataActions;_okActions;_tags;cfnPropertyNames={actionsEnabled:"ActionsEnabled",actionsSuppressor:"ActionsSuppressor",actionsSuppressorExtensionPeriod:"ActionsSuppressorExtensionPeriod",actionsSuppressorWaitPeriod:"ActionsSuppressorWaitPeriod",alarmActions:"AlarmActions",alarmDescription:"AlarmDescription",alarmName:"AlarmName",alarmRule:"AlarmRule",tags:"Tags",insufficientDataActions:"InsufficientDataActions",okActions:"OKActions"};constructor(scope,id,props){super(scope,id,{type:CfnCompositeAlarm.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudwatch_CfnCompositeAlarmProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCompositeAlarm),error}cdk().requireProperty(props,"alarmRule",this),this._actionsEnabled=props.actionsEnabled,this._actionsSuppressor=cdk().getRefProperty(props.actionsSuppressor?.alarmRef,"alarmArn")??cdk().getRefProperty(props.actionsSuppressor?.compositeAlarmRef,"compositeAlarmArn")??cdk().ensureStringOrUndefined(props.actionsSuppressor,"actionsSuppressor","cloudwatch.IAlarmRef | cloudwatch.ICompositeAlarmRef | string"),this._actionsSuppressorExtensionPeriod=props.actionsSuppressorExtensionPeriod,this._actionsSuppressorWaitPeriod=props.actionsSuppressorWaitPeriod,this._alarmActions=cdk().mapArrayInPlace(props.alarmActions,item=>cdk().getRefProperty(item?.topicRef,"topicArn")??cdk().ensureStringOrUndefined(item,"alarmActions","sns.ITopicRef | string")),this._alarmDescription=props.alarmDescription,this._alarmName=props.alarmName,this._alarmRule=props.alarmRule,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::CloudWatch::CompositeAlarm",void 0,{tagPropertyName:"tags"}),this._insufficientDataActions=props.insufficientDataActions,this._okActions=cdk().mapArrayInPlace(props.okActions,item=>cdk().getRefProperty(item?.topicRef,"topicArn")??cdk().ensureStringOrUndefined(item,"okActions","sns.ITopicRef | string")),this._tags=props.tags}get compositeAlarmRef(){return{alarmName:this.ref,compositeAlarmArn:this.attrArn}}get actionsEnabled(){return this._actionsEnabled}set actionsEnabled(value){cdk().traceProperty(this.node,"ActionsEnabled"),this._actionsEnabled=value}get actionsSuppressor(){return this._actionsSuppressor}set actionsSuppressor(value){cdk().traceProperty(this.node,"ActionsSuppressor"),this._actionsSuppressor=value}get actionsSuppressorExtensionPeriod(){return this._actionsSuppressorExtensionPeriod}set actionsSuppressorExtensionPeriod(value){cdk().traceProperty(this.node,"ActionsSuppressorExtensionPeriod"),this._actionsSuppressorExtensionPeriod=value}get actionsSuppressorWaitPeriod(){return this._actionsSuppressorWaitPeriod}set actionsSuppressorWaitPeriod(value){cdk().traceProperty(this.node,"ActionsSuppressorWaitPeriod"),this._actionsSuppressorWaitPeriod=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 alarmRule(){return this._alarmRule}set alarmRule(value){cdk().traceProperty(this.node,"AlarmRule"),this._alarmRule=value}get insufficientDataActions(){return this._insufficientDataActions}set insufficientDataActions(value){cdk().traceProperty(this.node,"InsufficientDataActions"),this._insufficientDataActions=value}get okActions(){return this._okActions}set okActions(value){cdk().traceProperty(this.node,"OKActions"),this._okActions=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{actionsEnabled:this._actionsEnabled,actionsSuppressor:this._actionsSuppressor,actionsSuppressorExtensionPeriod:this._actionsSuppressorExtensionPeriod,actionsSuppressorWaitPeriod:this._actionsSuppressorWaitPeriod,alarmActions:this._alarmActions,alarmDescription:this._alarmDescription,alarmName:this._alarmName,alarmRule:this._alarmRule,tags:this.cdkTagManager.renderTags(this._tags),insufficientDataActions:this._insufficientDataActions,okActions:this._okActions}}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",CfnCompositeAlarm.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCompositeAlarmPropsToCloudFormation(props)}}exports.CfnCompositeAlarm=CfnCompositeAlarm;function CfnCompositeAlarmPropsValidator(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("actionsSuppressor",cdk().validateString)(properties.actionsSuppressor)),errors.collect(cdk().propertyValidator("actionsSuppressorExtensionPeriod",cdk().validateNumber)(properties.actionsSuppressorExtensionPeriod)),errors.collect(cdk().propertyValidator("actionsSuppressorWaitPeriod",cdk().validateNumber)(properties.actionsSuppressorWaitPeriod)),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("alarmRule",cdk().requiredValidator)(properties.alarmRule)),errors.collect(cdk().propertyValidator("alarmRule",cdk().validateString)(properties.alarmRule)),errors.collect(cdk().propertyValidator("insufficientDataActions",cdk().listValidator(cdk().validateString))(properties.insufficientDataActions)),errors.collect(cdk().propertyValidator("okActions",cdk().listValidator(cdk().validateString))(properties.okActions)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnCompositeAlarmProps"')}function convertCfnCompositeAlarmPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCompositeAlarmPropsValidator(properties).assertSuccess(),{ActionsEnabled:cdk().booleanToCloudFormation(properties.actionsEnabled),ActionsSuppressor:cdk().stringToCloudFormation(properties.actionsSuppressor),ActionsSuppressorExtensionPeriod:cdk().numberToCloudFormation(properties.actionsSuppressorExtensionPeriod),ActionsSuppressorWaitPeriod:cdk().numberToCloudFormation(properties.actionsSuppressorWaitPeriod),AlarmActions:cdk().listMapper(cdk().stringToCloudFormation)(properties.alarmActions),AlarmDescription:cdk().stringToCloudFormation(properties.alarmDescription),AlarmName:cdk().stringToCloudFormation(properties.alarmName),AlarmRule:cdk().stringToCloudFormation(properties.alarmRule),InsufficientDataActions:cdk().listMapper(cdk().stringToCloudFormation)(properties.insufficientDataActions),OKActions:cdk().listMapper(cdk().stringToCloudFormation)(properties.okActions),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnCompositeAlarmPropsFromCloudFormation(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("actionsSuppressor","ActionsSuppressor",properties.ActionsSuppressor!=null?cfn_parse().FromCloudFormation.getString(properties.ActionsSuppressor):void 0),ret.addPropertyResult("actionsSuppressorExtensionPeriod","ActionsSuppressorExtensionPeriod",properties.ActionsSuppressorExtensionPeriod!=null?cfn_parse().FromCloudFormation.getNumber(properties.ActionsSuppressorExtensionPeriod):void 0),ret.addPropertyResult("actionsSuppressorWaitPeriod","ActionsSuppressorWaitPeriod",properties.ActionsSuppressorWaitPeriod!=null?cfn_parse().FromCloudFormation.getNumber(properties.ActionsSuppressorWaitPeriod):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("alarmRule","AlarmRule",properties.AlarmRule!=null?cfn_parse().FromCloudFormation.getString(properties.AlarmRule):void 0),ret.addPropertyResult("insufficientDataActions","InsufficientDataActions",properties.InsufficientDataActions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.InsufficientDataActions):void 0),ret.addPropertyResult("okActions","OKActions",properties.OKActions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.OKActions):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnDashboard extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudwatch.CfnDashboard",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudWatch::Dashboard";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDashboardPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDashboard(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 isCfnDashboard(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDashboard.CFN_RESOURCE_TYPE_NAME}static fromDashboardName(scope,id,dashboardName){class Import extends cdk().Resource{dashboardRef;constructor(scope2,id2,dashboardName2){super(scope2,id2),this.dashboardRef={dashboardName:dashboardName2}}}return new Import(scope,id,dashboardName)}static arnForDashboard(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudwatch_IDashboardRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForDashboard),error}return new(cfn_parse()).TemplateString("arn:${Partition}:cloudwatch::${Account}:dashboard/${DashboardName}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,DashboardName:resource.dashboardRef.dashboardName})}_dashboardBody;_dashboardName;cfnPropertyNames={dashboardBody:"DashboardBody",dashboardName:"DashboardName"};constructor(scope,id,props){super(scope,id,{type:CfnDashboard.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudwatch_CfnDashboardProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDashboard),error}cdk().requireProperty(props,"dashboardBody",this),this._dashboardBody=props.dashboardBody,this._dashboardName=props.dashboardName}get dashboardRef(){return{dashboardName:this.ref}}get dashboardBody(){return this._dashboardBody}set dashboardBody(value){cdk().traceProperty(this.node,"DashboardBody"),this._dashboardBody=value}get dashboardName(){return this._dashboardName}set dashboardName(value){cdk().traceProperty(this.node,"DashboardName"),this._dashboardName=value}get cfnProperties(){return{dashboardBody:this._dashboardBody,dashboardName:this._dashboardName}}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",CfnDashboard.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDashboardPropsToCloudFormation(props)}}exports.CfnDashboard=CfnDashboard;function CfnDashboardPropsValidator(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("dashboardBody",cdk().requiredValidator)(properties.dashboardBody)),errors.collect(cdk().propertyValidator("dashboardBody",cdk().validateString)(properties.dashboardBody)),errors.collect(cdk().propertyValidator("dashboardName",cdk().validateString)(properties.dashboardName)),errors.wrap('supplied properties not correct for "CfnDashboardProps"')}function convertCfnDashboardPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDashboardPropsValidator(properties).assertSuccess(),{DashboardBody:cdk().stringToCloudFormation(properties.dashboardBody),DashboardName:cdk().stringToCloudFormation(properties.dashboardName)}):properties}function CfnDashboardPropsFromCloudFormation(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("dashboardBody","DashboardBody",properties.DashboardBody!=null?cfn_parse().FromCloudFormation.getString(properties.DashboardBody):void 0),ret.addPropertyResult("dashboardName","DashboardName",properties.DashboardName!=null?cfn_parse().FromCloudFormation.getString(properties.DashboardName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnInsightRule extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudwatch.CfnInsightRule",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudWatch::InsightRule";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnInsightRulePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnInsightRule(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 isCfnInsightRule(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnInsightRule.CFN_RESOURCE_TYPE_NAME}static arnForInsightRule(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudwatch_IInsightRuleRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForInsightRule),error}return resource.insightRuleRef.insightRuleArn}_applyOnTransformedLogs;_ruleBody;_ruleName;_ruleState;tags;_tagsRaw;cfnPropertyNames={applyOnTransformedLogs:"ApplyOnTransformedLogs",ruleBody:"RuleBody",ruleName:"RuleName",ruleState:"RuleState",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnInsightRule.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudwatch_CfnInsightRuleProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnInsightRule),error}cdk().requireProperty(props,"ruleBody",this),cdk().requireProperty(props,"ruleName",this),cdk().requireProperty(props,"ruleState",this),this._applyOnTransformedLogs=props.applyOnTransformedLogs,this._ruleBody=props.ruleBody,this._ruleName=props.ruleName,this._ruleState=props.ruleState,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::CloudWatch::InsightRule",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get insightRuleRef(){return{insightRuleArn:this.ref}}get applyOnTransformedLogs(){return this._applyOnTransformedLogs}set applyOnTransformedLogs(value){cdk().traceProperty(this.node,"ApplyOnTransformedLogs"),this._applyOnTransformedLogs=value}get ruleBody(){return this._ruleBody}set ruleBody(value){cdk().traceProperty(this.node,"RuleBody"),this._ruleBody=value}get ruleName(){return this._ruleName}set ruleName(value){cdk().traceProperty(this.node,"RuleName"),this._ruleName=value}get ruleState(){return this._ruleState}set ruleState(value){cdk().traceProperty(this.node,"RuleState"),this._ruleState=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrRuleName(){return cdk().Token.asString(this.getAtt("RuleName",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{applyOnTransformedLogs:this._applyOnTransformedLogs,ruleBody:this._ruleBody,ruleName:this._ruleName,ruleState:this._ruleState,tags:this.tags.renderTags()}}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",CfnInsightRule.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnInsightRulePropsToCloudFormation(props)}}exports.CfnInsightRule=CfnInsightRule;function CfnInsightRulePropsValidator(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("applyOnTransformedLogs",cdk().validateBoolean)(properties.applyOnTransformedLogs)),errors.collect(cdk().propertyValidator("ruleBody",cdk().requiredValidator)(properties.ruleBody)),errors.collect(cdk().propertyValidator("ruleBody",cdk().validateString)(properties.ruleBody)),errors.collect(cdk().propertyValidator("ruleName",cdk().requiredValidator)(properties.ruleName)),errors.collect(cdk().propertyValidator("ruleName",cdk().validateString)(properties.ruleName)),errors.collect(cdk().propertyValidator("ruleState",cdk().requiredValidator)(properties.ruleState)),errors.collect(cdk().propertyValidator("ruleState",cdk().validateString)(properties.ruleState)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnInsightRuleProps"')}function convertCfnInsightRulePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInsightRulePropsValidator(properties).assertSuccess(),{ApplyOnTransformedLogs:cdk().booleanToCloudFormation(properties.applyOnTransformedLogs),RuleBody:cdk().stringToCloudFormation(properties.ruleBody),RuleName:cdk().stringToCloudFormation(properties.ruleName),RuleState:cdk().stringToCloudFormation(properties.ruleState),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnInsightRulePropsFromCloudFormation(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("applyOnTransformedLogs","ApplyOnTransformedLogs",properties.ApplyOnTransformedLogs!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ApplyOnTransformedLogs):void 0),ret.addPropertyResult("ruleBody","RuleBody",properties.RuleBody!=null?cfn_parse().FromCloudFormation.getString(properties.RuleBody):void 0),ret.addPropertyResult("ruleName","RuleName",properties.RuleName!=null?cfn_parse().FromCloudFormation.getString(properties.RuleName):void 0),ret.addPropertyResult("ruleState","RuleState",properties.RuleState!=null?cfn_parse().FromCloudFormation.getString(properties.RuleState):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnMetricStream extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudwatch.CfnMetricStream",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudWatch::MetricStream";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnMetricStreamPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnMetricStream(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 isCfnMetricStream(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnMetricStream.CFN_RESOURCE_TYPE_NAME}static fromMetricStreamArn(scope,id,arn){class Import extends cdk().Resource{metricStreamRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:cloudwatch:${Region}:${Account}:metric-stream/${MetricStreamName}").parse(arn2);this.metricStreamRef={metricStreamName:variables.MetricStreamName,metricStreamArn:arn2}}}return new Import(scope,id,arn)}static fromMetricStreamName(scope,id,metricStreamName){class Import extends cdk().Resource{metricStreamRef;constructor(scope2,id2,metricStreamName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:cloudwatch:${Region}:${Account}:metric-stream/${MetricStreamName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,MetricStreamName:metricStreamName2});super(scope2,id2,{environmentFromArn:arn}),this.metricStreamRef={metricStreamName:metricStreamName2,metricStreamArn:arn}}}return new Import(scope,id,metricStreamName)}static arnForMetricStream(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudwatch_IMetricStreamRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForMetricStream),error}return resource.metricStreamRef.metricStreamArn}_excludeFilters;_firehoseArn;_includeFilters;_includeLinkedAccountsMetrics;_name;_outputFormat;_roleArn;_statisticsConfigurations;tags;_tagsRaw;cfnPropertyNames={excludeFilters:"ExcludeFilters",firehoseArn:"FirehoseArn",includeFilters:"IncludeFilters",includeLinkedAccountsMetrics:"IncludeLinkedAccountsMetrics",name:"Name",outputFormat:"OutputFormat",roleArn:"RoleArn",statisticsConfigurations:"StatisticsConfigurations",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnMetricStream.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudwatch_CfnMetricStreamProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnMetricStream),error}cdk().requireProperty(props,"firehoseArn",this),cdk().requireProperty(props,"outputFormat",this),cdk().requireProperty(props,"roleArn",this),this._excludeFilters=props.excludeFilters,this._firehoseArn=cdk().getRefProperty(props.firehoseArn?.deliveryStreamRef,"deliveryStreamArn")??cdk().ensureStringOrUndefined(props.firehoseArn,"firehoseArn","kinesisfirehose.IDeliveryStreamRef | string"),this._includeFilters=props.includeFilters,this._includeLinkedAccountsMetrics=props.includeLinkedAccountsMetrics,this._name=props.name,this._outputFormat=props.outputFormat,this._roleArn=cdk().getRefProperty(props.roleArn?.roleRef,"roleArn")??cdk().ensureStringOrUndefined(props.roleArn,"roleArn","iam.IRoleRef | string"),this._statisticsConfigurations=props.statisticsConfigurations,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::CloudWatch::MetricStream",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get metricStreamRef(){return{metricStreamName:this.ref,metricStreamArn:this.attrArn}}get excludeFilters(){return this._excludeFilters}set excludeFilters(value){cdk().traceProperty(this.node,"ExcludeFilters"),this._excludeFilters=value}get firehoseArn(){return this._firehoseArn}set firehoseArn(value){cdk().traceProperty(this.node,"FirehoseArn"),this._firehoseArn=value}get includeFilters(){return this._includeFilters}set includeFilters(value){cdk().traceProperty(this.node,"IncludeFilters"),this._includeFilters=value}get includeLinkedAccountsMetrics(){return this._includeLinkedAccountsMetrics}set includeLinkedAccountsMetrics(value){cdk().traceProperty(this.node,"IncludeLinkedAccountsMetrics"),this._includeLinkedAccountsMetrics=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get outputFormat(){return this._outputFormat}set outputFormat(value){cdk().traceProperty(this.node,"OutputFormat"),this._outputFormat=value}get roleArn(){return this._roleArn}set roleArn(value){cdk().traceProperty(this.node,"RoleArn"),this._roleArn=value}get statisticsConfigurations(){return this._statisticsConfigurations}set statisticsConfigurations(value){cdk().traceProperty(this.node,"StatisticsConfigurations"),this._statisticsConfigurations=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrCreationDate(){return cdk().Token.asString(this.getAtt("CreationDate",cdk().ResolutionTypeHint.STRING))}get attrLastUpdateDate(){return cdk().Token.asString(this.getAtt("LastUpdateDate",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{excludeFilters:this._excludeFilters,firehoseArn:this._firehoseArn,includeFilters:this._includeFilters,includeLinkedAccountsMetrics:this._includeLinkedAccountsMetrics,name:this._name,outputFormat:this._outputFormat,roleArn:this._roleArn,statisticsConfigurations:this._statisticsConfigurations,tags:this.tags.renderTags()}}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",CfnMetricStream.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnMetricStreamPropsToCloudFormation(props)}}exports.CfnMetricStream=CfnMetricStream;function CfnMetricStreamMetricStreamStatisticsMetricPropertyValidator(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("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 "MetricStreamStatisticsMetricProperty"')}function convertCfnMetricStreamMetricStreamStatisticsMetricPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnMetricStreamMetricStreamStatisticsMetricPropertyValidator(properties).assertSuccess(),{MetricName:cdk().stringToCloudFormation(properties.metricName),Namespace:cdk().stringToCloudFormation(properties.namespace)}):properties}function CfnMetricStreamMetricStreamStatisticsMetricPropertyFromCloudFormation(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("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 CfnMetricStreamMetricStreamStatisticsConfigurationPropertyValidator(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("additionalStatistics",cdk().requiredValidator)(properties.additionalStatistics)),errors.collect(cdk().propertyValidator("additionalStatistics",cdk().listValidator(cdk().validateString))(properties.additionalStatistics)),errors.collect(cdk().propertyValidator("includeMetrics",cdk().requiredValidator)(properties.includeMetrics)),errors.collect(cdk().propertyValidator("includeMetrics",cdk().listValidator(CfnMetricStreamMetricStreamStatisticsMetricPropertyValidator))(properties.includeMetrics)),errors.wrap('supplied properties not correct for "MetricStreamStatisticsConfigurationProperty"')}function convertCfnMetricStreamMetricStreamStatisticsConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnMetricStreamMetricStreamStatisticsConfigurationPropertyValidator(properties).assertSuccess(),{AdditionalStatistics:cdk().listMapper(cdk().stringToCloudFormation)(properties.additionalStatistics),IncludeMetrics:cdk().listMapper(convertCfnMetricStreamMetricStreamStatisticsMetricPropertyToCloudFormation)(properties.includeMetrics)}):properties}function CfnMetricStreamMetricStreamStatisticsConfigurationPropertyFromCloudFormation(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("additionalStatistics","AdditionalStatistics",properties.AdditionalStatistics!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AdditionalStatistics):void 0),ret.addPropertyResult("includeMetrics","IncludeMetrics",properties.IncludeMetrics!=null?cfn_parse().FromCloudFormation.getArray(CfnMetricStreamMetricStreamStatisticsMetricPropertyFromCloudFormation)(properties.IncludeMetrics):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnMetricStreamMetricStreamFilterPropertyValidator(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("metricNames",cdk().listValidator(cdk().validateString))(properties.metricNames)),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 "MetricStreamFilterProperty"')}function convertCfnMetricStreamMetricStreamFilterPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnMetricStreamMetricStreamFilterPropertyValidator(properties).assertSuccess(),{MetricNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.metricNames),Namespace:cdk().stringToCloudFormation(properties.namespace)}):properties}function CfnMetricStreamMetricStreamFilterPropertyFromCloudFormation(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("metricNames","MetricNames",properties.MetricNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.MetricNames):void 0),ret.addPropertyResult("namespace","Namespace",properties.Namespace!=null?cfn_parse().FromCloudFormation.getString(properties.Namespace):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnMetricStreamPropsValidator(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("excludeFilters",cdk().listValidator(CfnMetricStreamMetricStreamFilterPropertyValidator))(properties.excludeFilters)),errors.collect(cdk().propertyValidator("firehoseArn",cdk().requiredValidator)(properties.firehoseArn)),errors.collect(cdk().propertyValidator("firehoseArn",cdk().validateString)(properties.firehoseArn)),errors.collect(cdk().propertyValidator("includeFilters",cdk().listValidator(CfnMetricStreamMetricStreamFilterPropertyValidator))(properties.includeFilters)),errors.collect(cdk().propertyValidator("includeLinkedAccountsMetrics",cdk().validateBoolean)(properties.includeLinkedAccountsMetrics)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("outputFormat",cdk().requiredValidator)(properties.outputFormat)),errors.collect(cdk().propertyValidator("outputFormat",cdk().validateString)(properties.outputFormat)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("statisticsConfigurations",cdk().listValidator(CfnMetricStreamMetricStreamStatisticsConfigurationPropertyValidator))(properties.statisticsConfigurations)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnMetricStreamProps"')}function convertCfnMetricStreamPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnMetricStreamPropsValidator(properties).assertSuccess(),{ExcludeFilters:cdk().listMapper(convertCfnMetricStreamMetricStreamFilterPropertyToCloudFormation)(properties.excludeFilters),FirehoseArn:cdk().stringToCloudFormation(properties.firehoseArn),IncludeFilters:cdk().listMapper(convertCfnMetricStreamMetricStreamFilterPropertyToCloudFormation)(properties.includeFilters),IncludeLinkedAccountsMetrics:cdk().booleanToCloudFormation(properties.includeLinkedAccountsMetrics),Name:cdk().stringToCloudFormation(properties.name),OutputFormat:cdk().stringToCloudFormation(properties.outputFormat),RoleArn:cdk().stringToCloudFormation(properties.roleArn),StatisticsConfigurations:cdk().listMapper(convertCfnMetricStreamMetricStreamStatisticsConfigurationPropertyToCloudFormation)(properties.statisticsConfigurations),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnMetricStreamPropsFromCloudFormation(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("excludeFilters","ExcludeFilters",properties.ExcludeFilters!=null?cfn_parse().FromCloudFormation.getArray(CfnMetricStreamMetricStreamFilterPropertyFromCloudFormation)(properties.ExcludeFilters):void 0),ret.addPropertyResult("firehoseArn","FirehoseArn",properties.FirehoseArn!=null?cfn_parse().FromCloudFormation.getString(properties.FirehoseArn):void 0),ret.addPropertyResult("includeFilters","IncludeFilters",properties.IncludeFilters!=null?cfn_parse().FromCloudFormation.getArray(CfnMetricStreamMetricStreamFilterPropertyFromCloudFormation)(properties.IncludeFilters):void 0),ret.addPropertyResult("includeLinkedAccountsMetrics","IncludeLinkedAccountsMetrics",properties.IncludeLinkedAccountsMetrics!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IncludeLinkedAccountsMetrics):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("outputFormat","OutputFormat",properties.OutputFormat!=null?cfn_parse().FromCloudFormation.getString(properties.OutputFormat):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("statisticsConfigurations","StatisticsConfigurations",properties.StatisticsConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnMetricStreamMetricStreamStatisticsConfigurationPropertyFromCloudFormation)(properties.StatisticsConfigurations):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnAlarmMuteRule extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_cloudwatch.CfnAlarmMuteRule",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::CloudWatch::AlarmMuteRule";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnAlarmMuteRulePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnAlarmMuteRule(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 isCfnAlarmMuteRule(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnAlarmMuteRule.CFN_RESOURCE_TYPE_NAME}static arnForAlarmMuteRule(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_cloudwatch_IAlarmMuteRuleRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForAlarmMuteRule),error}return resource.alarmMuteRuleRef.alarmMuteRuleArn}cdkTagManager;_description;_expireDate;_muteTargets;_name;_rule;_startDate;_tags;cfnPropertyNames={tags:"Tags",description:"Description",expireDate:"ExpireDate",muteTargets:"MuteTargets",name:"Name",rule:"Rule",startDate:"StartDate"};constructor(scope,id,props){super(scope,id,{type:CfnAlarmMuteRule.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_cloudwatch_CfnAlarmMuteRuleProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnAlarmMuteRule),error}cdk().requireProperty(props,"rule",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::CloudWatch::AlarmMuteRule",void 0,{tagPropertyName:"tags"}),this._description=props.description,this._expireDate=props.expireDate,this._muteTargets=props.muteTargets,this._name=props.name,this._rule=props.rule,this._startDate=props.startDate,this._tags=props.tags}get alarmMuteRuleRef(){return{alarmMuteRuleArn:this.ref}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get expireDate(){return this._expireDate}set expireDate(value){cdk().traceProperty(this.node,"ExpireDate"),this._expireDate=value}get muteTargets(){return this._muteTargets}set muteTargets(value){cdk().traceProperty(this.node,"MuteTargets"),this._muteTargets=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get rule(){return this._rule}set rule(value){cdk().traceProperty(this.node,"Rule"),this._rule=value}get startDate(){return this._startDate}set startDate(value){cdk().traceProperty(this.node,"StartDate"),this._startDate=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrLastUpdatedTimestamp(){return cdk().Token.asString(this.getAtt("LastUpdatedTimestamp",cdk().ResolutionTypeHint.STRING))}get attrMuteType(){return cdk().Token.asString(this.getAtt("MuteType",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return cdk().Token.asString(this.getAtt("Status",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),description:this._description,expireDate:this._expireDate,muteTargets:this._muteTargets,name:this._name,rule:this._rule,startDate:this._startDate}}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",CfnAlarmMuteRule.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnAlarmMuteRulePropsToCloudFormation(props)}}exports.CfnAlarmMuteRule=CfnAlarmMuteRule;function CfnAlarmMuteRuleSchedulePropertyValidator(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("duration",cdk().requiredValidator)(properties.duration)),errors.collect(cdk().propertyValidator("duration",cdk().validateString)(properties.duration)),errors.collect(cdk().propertyValidator("expression",cdk().requiredValidator)(properties.expression)),errors.collect(cdk().propertyValidator("expression",cdk().validateString)(properties.expression)),errors.collect(cdk().propertyValidator("timezone",cdk().validateString)(properties.timezone)),errors.wrap('supplied properties not correct for "ScheduleProperty"')}function convertCfnAlarmMuteRuleSchedulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAlarmMuteRuleSchedulePropertyValidator(properties).assertSuccess(),{Duration:cdk().stringToCloudFormation(properties.duration),Expression:cdk().stringToCloudFormation(properties.expression),Timezone:cdk().stringToCloudFormation(properties.timezone)}):properties}function CfnAlarmMuteRuleSchedulePropertyFromCloudFormation(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("duration","Duration",properties.Duration!=null?cfn_parse().FromCloudFormation.getString(properties.Duration):void 0),ret.addPropertyResult("expression","Expression",properties.Expression!=null?cfn_parse().FromCloudFormation.getString(properties.Expression):void 0),ret.addPropertyResult("timezone","Timezone",properties.Timezone!=null?cfn_parse().FromCloudFormation.getString(properties.Timezone):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAlarmMuteRuleRulePropertyValidator(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("schedule",cdk().requiredValidator)(properties.schedule)),errors.collect(cdk().propertyValidator("schedule",CfnAlarmMuteRuleSchedulePropertyValidator)(properties.schedule)),errors.wrap('supplied properties not correct for "RuleProperty"')}function convertCfnAlarmMuteRuleRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAlarmMuteRuleRulePropertyValidator(properties).assertSuccess(),{Schedule:convertCfnAlarmMuteRuleSchedulePropertyToCloudFormation(properties.schedule)}):properties}function CfnAlarmMuteRuleRulePropertyFromCloudFormation(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("schedule","Schedule",properties.Schedule!=null?CfnAlarmMuteRuleSchedulePropertyFromCloudFormation(properties.Schedule):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAlarmMuteRuleMuteTargetsPropertyValidator(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("alarmNames",cdk().requiredValidator)(properties.alarmNames)),errors.collect(cdk().propertyValidator("alarmNames",cdk().listValidator(cdk().validateString))(properties.alarmNames)),errors.wrap('supplied properties not correct for "MuteTargetsProperty"')}function convertCfnAlarmMuteRuleMuteTargetsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAlarmMuteRuleMuteTargetsPropertyValidator(properties).assertSuccess(),{AlarmNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.alarmNames)}):properties}function CfnAlarmMuteRuleMuteTargetsPropertyFromCloudFormation(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("alarmNames","AlarmNames",properties.AlarmNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AlarmNames):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAlarmMuteRulePropsValidator(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("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("expireDate",cdk().validateString)(properties.expireDate)),errors.collect(cdk().propertyValidator("muteTargets",CfnAlarmMuteRuleMuteTargetsPropertyValidator)(properties.muteTargets)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("rule",cdk().requiredValidator)(properties.rule)),errors.collect(cdk().propertyValidator("rule",CfnAlarmMuteRuleRulePropertyValidator)(properties.rule)),errors.collect(cdk().propertyValidator("startDate",cdk().validateString)(properties.startDate)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnAlarmMuteRuleProps"')}function convertCfnAlarmMuteRulePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAlarmMuteRulePropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),ExpireDate:cdk().stringToCloudFormation(properties.expireDate),MuteTargets:convertCfnAlarmMuteRuleMuteTargetsPropertyToCloudFormation(properties.muteTargets),Name:cdk().stringToCloudFormation(properties.name),Rule:convertCfnAlarmMuteRuleRulePropertyToCloudFormation(properties.rule),StartDate:cdk().stringToCloudFormation(properties.startDate),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnAlarmMuteRulePropsFromCloudFormation(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("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("expireDate","ExpireDate",properties.ExpireDate!=null?cfn_parse().FromCloudFormation.getString(properties.ExpireDate):void 0),ret.addPropertyResult("muteTargets","MuteTargets",properties.MuteTargets!=null?CfnAlarmMuteRuleMuteTargetsPropertyFromCloudFormation(properties.MuteTargets):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("rule","Rule",properties.Rule!=null?CfnAlarmMuteRuleRulePropertyFromCloudFormation(properties.Rule):void 0),ret.addPropertyResult("startDate","StartDate",properties.StartDate!=null?cfn_parse().FromCloudFormation.getString(properties.StartDate):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}