@aws-cdk/aws-cloudwatch
Version:
The CDK Construct Library for AWS::CloudWatch
889 lines • 451 kB
JavaScript
"use strict";
var _a, _b, _c, _d, _e, _f;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CfnMetricStream = exports.CfnInsightRule = exports.CfnDashboard = exports.CfnCompositeAlarm = exports.CfnAnomalyDetector = exports.CfnAlarm = void 0;
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
// Copyright 2012-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
// Generated from the AWS CloudFormation Resource Specification
// See: docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html
// @cfn2ts:meta@ {"generated":"2022-05-20T21:34:05.389Z","fingerprint":"P4HnLNWHyoNst1+SBX0BlcDxiXR+/chB1KM4y2yQhZI="}
/* eslint-disable max-len */ // This is generated code - line lengths are difficult to control
const cdk = require("@aws-cdk/core");
const cfn_parse = require("@aws-cdk/core/lib/helpers-internal");
/**
* Determine whether the given properties match those of a `CfnAlarmProps`
*
* @param properties - the TypeScript properties of a `CfnAlarmProps`
*
* @returns the result of the validation.
*/
function CfnAlarmPropsValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
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.requiredValidator)(properties.comparisonOperator));
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(CfnAlarm_DimensionPropertyValidator))(properties.dimensions));
errors.collect(cdk.propertyValidator('evaluateLowSampleCountPercentile', cdk.validateString)(properties.evaluateLowSampleCountPercentile));
errors.collect(cdk.propertyValidator('evaluationPeriods', cdk.requiredValidator)(properties.evaluationPeriods));
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(CfnAlarm_MetricDataQueryPropertyValidator))(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('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));
return errors.wrap('supplied properties not correct for "CfnAlarmProps"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudWatch::Alarm` resource
*
* @param properties - the TypeScript properties of a `CfnAlarmProps`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudWatch::Alarm` resource.
*/
// @ts-ignore TS6133
function cfnAlarmPropsToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnAlarmPropsValidator(properties).assertSuccess();
return {
ComparisonOperator: cdk.stringToCloudFormation(properties.comparisonOperator),
EvaluationPeriods: cdk.numberToCloudFormation(properties.evaluationPeriods),
ActionsEnabled: cdk.booleanToCloudFormation(properties.actionsEnabled),
AlarmActions: cdk.listMapper(cdk.stringToCloudFormation)(properties.alarmActions),
AlarmDescription: cdk.stringToCloudFormation(properties.alarmDescription),
AlarmName: cdk.stringToCloudFormation(properties.alarmName),
DatapointsToAlarm: cdk.numberToCloudFormation(properties.datapointsToAlarm),
Dimensions: cdk.listMapper(cfnAlarmDimensionPropertyToCloudFormation)(properties.dimensions),
EvaluateLowSampleCountPercentile: cdk.stringToCloudFormation(properties.evaluateLowSampleCountPercentile),
ExtendedStatistic: cdk.stringToCloudFormation(properties.extendedStatistic),
InsufficientDataActions: cdk.listMapper(cdk.stringToCloudFormation)(properties.insufficientDataActions),
MetricName: cdk.stringToCloudFormation(properties.metricName),
Metrics: cdk.listMapper(cfnAlarmMetricDataQueryPropertyToCloudFormation)(properties.metrics),
Namespace: cdk.stringToCloudFormation(properties.namespace),
OKActions: cdk.listMapper(cdk.stringToCloudFormation)(properties.okActions),
Period: cdk.numberToCloudFormation(properties.period),
Statistic: cdk.stringToCloudFormation(properties.statistic),
Threshold: cdk.numberToCloudFormation(properties.threshold),
ThresholdMetricId: cdk.stringToCloudFormation(properties.thresholdMetricId),
TreatMissingData: cdk.stringToCloudFormation(properties.treatMissingData),
Unit: cdk.stringToCloudFormation(properties.unit),
};
}
// @ts-ignore TS6133
function CfnAlarmPropsFromCloudFormation(properties) {
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('comparisonOperator', 'ComparisonOperator', cfn_parse.FromCloudFormation.getString(properties.ComparisonOperator));
ret.addPropertyResult('evaluationPeriods', 'EvaluationPeriods', cfn_parse.FromCloudFormation.getNumber(properties.EvaluationPeriods));
ret.addPropertyResult('actionsEnabled', 'ActionsEnabled', properties.ActionsEnabled != null ? cfn_parse.FromCloudFormation.getBoolean(properties.ActionsEnabled) : undefined);
ret.addPropertyResult('alarmActions', 'AlarmActions', properties.AlarmActions != null ? cfn_parse.FromCloudFormation.getStringArray(properties.AlarmActions) : undefined);
ret.addPropertyResult('alarmDescription', 'AlarmDescription', properties.AlarmDescription != null ? cfn_parse.FromCloudFormation.getString(properties.AlarmDescription) : undefined);
ret.addPropertyResult('alarmName', 'AlarmName', properties.AlarmName != null ? cfn_parse.FromCloudFormation.getString(properties.AlarmName) : undefined);
ret.addPropertyResult('datapointsToAlarm', 'DatapointsToAlarm', properties.DatapointsToAlarm != null ? cfn_parse.FromCloudFormation.getNumber(properties.DatapointsToAlarm) : undefined);
ret.addPropertyResult('dimensions', 'Dimensions', properties.Dimensions != null ? cfn_parse.FromCloudFormation.getArray(CfnAlarmDimensionPropertyFromCloudFormation)(properties.Dimensions) : undefined);
ret.addPropertyResult('evaluateLowSampleCountPercentile', 'EvaluateLowSampleCountPercentile', properties.EvaluateLowSampleCountPercentile != null ? cfn_parse.FromCloudFormation.getString(properties.EvaluateLowSampleCountPercentile) : undefined);
ret.addPropertyResult('extendedStatistic', 'ExtendedStatistic', properties.ExtendedStatistic != null ? cfn_parse.FromCloudFormation.getString(properties.ExtendedStatistic) : undefined);
ret.addPropertyResult('insufficientDataActions', 'InsufficientDataActions', properties.InsufficientDataActions != null ? cfn_parse.FromCloudFormation.getStringArray(properties.InsufficientDataActions) : undefined);
ret.addPropertyResult('metricName', 'MetricName', properties.MetricName != null ? cfn_parse.FromCloudFormation.getString(properties.MetricName) : undefined);
ret.addPropertyResult('metrics', 'Metrics', properties.Metrics != null ? cfn_parse.FromCloudFormation.getArray(CfnAlarmMetricDataQueryPropertyFromCloudFormation)(properties.Metrics) : undefined);
ret.addPropertyResult('namespace', 'Namespace', properties.Namespace != null ? cfn_parse.FromCloudFormation.getString(properties.Namespace) : undefined);
ret.addPropertyResult('okActions', 'OKActions', properties.OKActions != null ? cfn_parse.FromCloudFormation.getStringArray(properties.OKActions) : undefined);
ret.addPropertyResult('period', 'Period', properties.Period != null ? cfn_parse.FromCloudFormation.getNumber(properties.Period) : undefined);
ret.addPropertyResult('statistic', 'Statistic', properties.Statistic != null ? cfn_parse.FromCloudFormation.getString(properties.Statistic) : undefined);
ret.addPropertyResult('threshold', 'Threshold', properties.Threshold != null ? cfn_parse.FromCloudFormation.getNumber(properties.Threshold) : undefined);
ret.addPropertyResult('thresholdMetricId', 'ThresholdMetricId', properties.ThresholdMetricId != null ? cfn_parse.FromCloudFormation.getString(properties.ThresholdMetricId) : undefined);
ret.addPropertyResult('treatMissingData', 'TreatMissingData', properties.TreatMissingData != null ? cfn_parse.FromCloudFormation.getString(properties.TreatMissingData) : undefined);
ret.addPropertyResult('unit', 'Unit', properties.Unit != null ? cfn_parse.FromCloudFormation.getString(properties.Unit) : undefined);
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* A CloudFormation `AWS::CloudWatch::Alarm`
*
* The `AWS::CloudWatch::Alarm` type specifies an alarm and associates it with the specified metric or metric math expression.
*
* When this operation creates an alarm, the alarm state is immediately set to `INSUFFICIENT_DATA` . The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed.
*
* When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.
*
* @cloudformationResource AWS::CloudWatch::Alarm
* @stability external
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html
*/
class CfnAlarm extends cdk.CfnResource {
/**
* Create a new `AWS::CloudWatch::Alarm`.
*
* @param scope - scope in which this resource is defined
* @param id - scoped id of the resource
* @param props - resource properties
*/
constructor(scope, id, props) {
super(scope, id, { type: CfnAlarm.CFN_RESOURCE_TYPE_NAME, properties: props });
try {
jsiiDeprecationWarnings._aws_cdk_aws_cloudwatch_CfnAlarmProps(props);
}
catch (error) {
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
Error.captureStackTrace(error, this.constructor);
}
throw error;
}
cdk.requireProperty(props, 'comparisonOperator', this);
cdk.requireProperty(props, 'evaluationPeriods', this);
this.attrArn = cdk.Token.asString(this.getAtt('Arn'));
this.comparisonOperator = props.comparisonOperator;
this.evaluationPeriods = props.evaluationPeriods;
this.actionsEnabled = props.actionsEnabled;
this.alarmActions = props.alarmActions;
this.alarmDescription = props.alarmDescription;
this.alarmName = props.alarmName;
this.datapointsToAlarm = props.datapointsToAlarm;
this.dimensions = props.dimensions;
this.evaluateLowSampleCountPercentile = props.evaluateLowSampleCountPercentile;
this.extendedStatistic = props.extendedStatistic;
this.insufficientDataActions = props.insufficientDataActions;
this.metricName = props.metricName;
this.metrics = props.metrics;
this.namespace = props.namespace;
this.okActions = props.okActions;
this.period = props.period;
this.statistic = props.statistic;
this.threshold = props.threshold;
this.thresholdMetricId = props.thresholdMetricId;
this.treatMissingData = props.treatMissingData;
this.unit = props.unit;
}
/**
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope, id, resourceAttributes, options) {
resourceAttributes = resourceAttributes || {};
const resourceProperties = options.parser.parseValue(resourceAttributes.Properties);
const propsResult = CfnAlarmPropsFromCloudFormation(resourceProperties);
const ret = new CfnAlarm(scope, id, propsResult.value);
for (const [propKey, propVal] of Object.entries(propsResult.extraProperties)) {
ret.addPropertyOverride(propKey, propVal);
}
options.parser.handleAttributes(ret, resourceAttributes, id);
return ret;
}
/**
* Examines the CloudFormation resource and discloses attributes.
*
* @param inspector - tree inspector to collect and process attributes
*
*/
inspect(inspector) {
inspector.addAttribute("aws:cdk:cloudformation:type", CfnAlarm.CFN_RESOURCE_TYPE_NAME);
inspector.addAttribute("aws:cdk:cloudformation:props", this.cfnProperties);
}
get cfnProperties() {
return {
comparisonOperator: this.comparisonOperator,
evaluationPeriods: this.evaluationPeriods,
actionsEnabled: this.actionsEnabled,
alarmActions: this.alarmActions,
alarmDescription: this.alarmDescription,
alarmName: this.alarmName,
datapointsToAlarm: this.datapointsToAlarm,
dimensions: this.dimensions,
evaluateLowSampleCountPercentile: this.evaluateLowSampleCountPercentile,
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,
};
}
renderProperties(props) {
return cfnAlarmPropsToCloudFormation(props);
}
}
exports.CfnAlarm = CfnAlarm;
_a = JSII_RTTI_SYMBOL_1;
CfnAlarm[_a] = { fqn: "@aws-cdk/aws-cloudwatch.CfnAlarm", version: "1.157.0" };
/**
* The CloudFormation resource type name for this resource class.
*/
CfnAlarm.CFN_RESOURCE_TYPE_NAME = "AWS::CloudWatch::Alarm";
/**
* Determine whether the given properties match those of a `DimensionProperty`
*
* @param properties - the TypeScript properties of a `DimensionProperty`
*
* @returns the result of the validation.
*/
function CfnAlarm_DimensionPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
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));
return errors.wrap('supplied properties not correct for "DimensionProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudWatch::Alarm.Dimension` resource
*
* @param properties - the TypeScript properties of a `DimensionProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudWatch::Alarm.Dimension` resource.
*/
// @ts-ignore TS6133
function cfnAlarmDimensionPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnAlarm_DimensionPropertyValidator(properties).assertSuccess();
return {
Name: cdk.stringToCloudFormation(properties.name),
Value: cdk.stringToCloudFormation(properties.value),
};
}
// @ts-ignore TS6133
function CfnAlarmDimensionPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return new cfn_parse.FromCloudFormationResult(properties);
}
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('name', 'Name', cfn_parse.FromCloudFormation.getString(properties.Name));
ret.addPropertyResult('value', 'Value', cfn_parse.FromCloudFormation.getString(properties.Value));
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* Determine whether the given properties match those of a `MetricProperty`
*
* @param properties - the TypeScript properties of a `MetricProperty`
*
* @returns the result of the validation.
*/
function CfnAlarm_MetricPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
errors.collect(new cdk.ValidationResult('Expected an object, but received: ' + JSON.stringify(properties)));
}
errors.collect(cdk.propertyValidator('dimensions', cdk.listValidator(CfnAlarm_DimensionPropertyValidator))(properties.dimensions));
errors.collect(cdk.propertyValidator('metricName', cdk.validateString)(properties.metricName));
errors.collect(cdk.propertyValidator('namespace', cdk.validateString)(properties.namespace));
return errors.wrap('supplied properties not correct for "MetricProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudWatch::Alarm.Metric` resource
*
* @param properties - the TypeScript properties of a `MetricProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudWatch::Alarm.Metric` resource.
*/
// @ts-ignore TS6133
function cfnAlarmMetricPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnAlarm_MetricPropertyValidator(properties).assertSuccess();
return {
Dimensions: cdk.listMapper(cfnAlarmDimensionPropertyToCloudFormation)(properties.dimensions),
MetricName: cdk.stringToCloudFormation(properties.metricName),
Namespace: cdk.stringToCloudFormation(properties.namespace),
};
}
// @ts-ignore TS6133
function CfnAlarmMetricPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return new cfn_parse.FromCloudFormationResult(properties);
}
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('dimensions', 'Dimensions', properties.Dimensions != null ? cfn_parse.FromCloudFormation.getArray(CfnAlarmDimensionPropertyFromCloudFormation)(properties.Dimensions) : undefined);
ret.addPropertyResult('metricName', 'MetricName', properties.MetricName != null ? cfn_parse.FromCloudFormation.getString(properties.MetricName) : undefined);
ret.addPropertyResult('namespace', 'Namespace', properties.Namespace != null ? cfn_parse.FromCloudFormation.getString(properties.Namespace) : undefined);
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* Determine whether the given properties match those of a `MetricDataQueryProperty`
*
* @param properties - the TypeScript properties of a `MetricDataQueryProperty`
*
* @returns the result of the validation.
*/
function CfnAlarm_MetricDataQueryPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
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', CfnAlarm_MetricStatPropertyValidator)(properties.metricStat));
errors.collect(cdk.propertyValidator('period', cdk.validateNumber)(properties.period));
errors.collect(cdk.propertyValidator('returnData', cdk.validateBoolean)(properties.returnData));
return errors.wrap('supplied properties not correct for "MetricDataQueryProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudWatch::Alarm.MetricDataQuery` resource
*
* @param properties - the TypeScript properties of a `MetricDataQueryProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudWatch::Alarm.MetricDataQuery` resource.
*/
// @ts-ignore TS6133
function cfnAlarmMetricDataQueryPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnAlarm_MetricDataQueryPropertyValidator(properties).assertSuccess();
return {
AccountId: cdk.stringToCloudFormation(properties.accountId),
Expression: cdk.stringToCloudFormation(properties.expression),
Id: cdk.stringToCloudFormation(properties.id),
Label: cdk.stringToCloudFormation(properties.label),
MetricStat: cfnAlarmMetricStatPropertyToCloudFormation(properties.metricStat),
Period: cdk.numberToCloudFormation(properties.period),
ReturnData: cdk.booleanToCloudFormation(properties.returnData),
};
}
// @ts-ignore TS6133
function CfnAlarmMetricDataQueryPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return new cfn_parse.FromCloudFormationResult(properties);
}
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('accountId', 'AccountId', properties.AccountId != null ? cfn_parse.FromCloudFormation.getString(properties.AccountId) : undefined);
ret.addPropertyResult('expression', 'Expression', properties.Expression != null ? cfn_parse.FromCloudFormation.getString(properties.Expression) : undefined);
ret.addPropertyResult('id', 'Id', cfn_parse.FromCloudFormation.getString(properties.Id));
ret.addPropertyResult('label', 'Label', properties.Label != null ? cfn_parse.FromCloudFormation.getString(properties.Label) : undefined);
ret.addPropertyResult('metricStat', 'MetricStat', properties.MetricStat != null ? CfnAlarmMetricStatPropertyFromCloudFormation(properties.MetricStat) : undefined);
ret.addPropertyResult('period', 'Period', properties.Period != null ? cfn_parse.FromCloudFormation.getNumber(properties.Period) : undefined);
ret.addPropertyResult('returnData', 'ReturnData', properties.ReturnData != null ? cfn_parse.FromCloudFormation.getBoolean(properties.ReturnData) : undefined);
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* Determine whether the given properties match those of a `MetricStatProperty`
*
* @param properties - the TypeScript properties of a `MetricStatProperty`
*
* @returns the result of the validation.
*/
function CfnAlarm_MetricStatPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
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', CfnAlarm_MetricPropertyValidator)(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));
return errors.wrap('supplied properties not correct for "MetricStatProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudWatch::Alarm.MetricStat` resource
*
* @param properties - the TypeScript properties of a `MetricStatProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudWatch::Alarm.MetricStat` resource.
*/
// @ts-ignore TS6133
function cfnAlarmMetricStatPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnAlarm_MetricStatPropertyValidator(properties).assertSuccess();
return {
Metric: cfnAlarmMetricPropertyToCloudFormation(properties.metric),
Period: cdk.numberToCloudFormation(properties.period),
Stat: cdk.stringToCloudFormation(properties.stat),
Unit: cdk.stringToCloudFormation(properties.unit),
};
}
// @ts-ignore TS6133
function CfnAlarmMetricStatPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return new cfn_parse.FromCloudFormationResult(properties);
}
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('metric', 'Metric', CfnAlarmMetricPropertyFromCloudFormation(properties.Metric));
ret.addPropertyResult('period', 'Period', cfn_parse.FromCloudFormation.getNumber(properties.Period));
ret.addPropertyResult('stat', 'Stat', cfn_parse.FromCloudFormation.getString(properties.Stat));
ret.addPropertyResult('unit', 'Unit', properties.Unit != null ? cfn_parse.FromCloudFormation.getString(properties.Unit) : undefined);
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* Determine whether the given properties match those of a `CfnAnomalyDetectorProps`
*
* @param properties - the TypeScript properties of a `CfnAnomalyDetectorProps`
*
* @returns the result of the validation.
*/
function CfnAnomalyDetectorPropsValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
errors.collect(new cdk.ValidationResult('Expected an object, but received: ' + JSON.stringify(properties)));
}
errors.collect(cdk.propertyValidator('configuration', CfnAnomalyDetector_ConfigurationPropertyValidator)(properties.configuration));
errors.collect(cdk.propertyValidator('dimensions', cdk.listValidator(CfnAnomalyDetector_DimensionPropertyValidator))(properties.dimensions));
errors.collect(cdk.propertyValidator('metricMathAnomalyDetector', CfnAnomalyDetector_MetricMathAnomalyDetectorPropertyValidator)(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', CfnAnomalyDetector_SingleMetricAnomalyDetectorPropertyValidator)(properties.singleMetricAnomalyDetector));
errors.collect(cdk.propertyValidator('stat', cdk.validateString)(properties.stat));
return errors.wrap('supplied properties not correct for "CfnAnomalyDetectorProps"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudWatch::AnomalyDetector` resource
*
* @param properties - the TypeScript properties of a `CfnAnomalyDetectorProps`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudWatch::AnomalyDetector` resource.
*/
// @ts-ignore TS6133
function cfnAnomalyDetectorPropsToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnAnomalyDetectorPropsValidator(properties).assertSuccess();
return {
Configuration: cfnAnomalyDetectorConfigurationPropertyToCloudFormation(properties.configuration),
Dimensions: cdk.listMapper(cfnAnomalyDetectorDimensionPropertyToCloudFormation)(properties.dimensions),
MetricMathAnomalyDetector: cfnAnomalyDetectorMetricMathAnomalyDetectorPropertyToCloudFormation(properties.metricMathAnomalyDetector),
MetricName: cdk.stringToCloudFormation(properties.metricName),
Namespace: cdk.stringToCloudFormation(properties.namespace),
SingleMetricAnomalyDetector: cfnAnomalyDetectorSingleMetricAnomalyDetectorPropertyToCloudFormation(properties.singleMetricAnomalyDetector),
Stat: cdk.stringToCloudFormation(properties.stat),
};
}
// @ts-ignore TS6133
function CfnAnomalyDetectorPropsFromCloudFormation(properties) {
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('configuration', 'Configuration', properties.Configuration != null ? CfnAnomalyDetectorConfigurationPropertyFromCloudFormation(properties.Configuration) : undefined);
ret.addPropertyResult('dimensions', 'Dimensions', properties.Dimensions != null ? cfn_parse.FromCloudFormation.getArray(CfnAnomalyDetectorDimensionPropertyFromCloudFormation)(properties.Dimensions) : undefined);
ret.addPropertyResult('metricMathAnomalyDetector', 'MetricMathAnomalyDetector', properties.MetricMathAnomalyDetector != null ? CfnAnomalyDetectorMetricMathAnomalyDetectorPropertyFromCloudFormation(properties.MetricMathAnomalyDetector) : undefined);
ret.addPropertyResult('metricName', 'MetricName', properties.MetricName != null ? cfn_parse.FromCloudFormation.getString(properties.MetricName) : undefined);
ret.addPropertyResult('namespace', 'Namespace', properties.Namespace != null ? cfn_parse.FromCloudFormation.getString(properties.Namespace) : undefined);
ret.addPropertyResult('singleMetricAnomalyDetector', 'SingleMetricAnomalyDetector', properties.SingleMetricAnomalyDetector != null ? CfnAnomalyDetectorSingleMetricAnomalyDetectorPropertyFromCloudFormation(properties.SingleMetricAnomalyDetector) : undefined);
ret.addPropertyResult('stat', 'Stat', properties.Stat != null ? cfn_parse.FromCloudFormation.getString(properties.Stat) : undefined);
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* A CloudFormation `AWS::CloudWatch::AnomalyDetector`
*
* The `AWS::CloudWatch::AnomalyDetector` type specifies an anomaly detection band for a certain metric and statistic. The band represents the expected "normal" range for the metric values. Anomaly detection bands can be used for visualization of a metric's expected values, and for alarms.
*
* @cloudformationResource AWS::CloudWatch::AnomalyDetector
* @stability external
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html
*/
class CfnAnomalyDetector extends cdk.CfnResource {
/**
* Create a new `AWS::CloudWatch::AnomalyDetector`.
*
* @param scope - scope in which this resource is defined
* @param id - scoped id of the resource
* @param props - resource properties
*/
constructor(scope, id, props = {}) {
super(scope, id, { type: CfnAnomalyDetector.CFN_RESOURCE_TYPE_NAME, properties: props });
try {
jsiiDeprecationWarnings._aws_cdk_aws_cloudwatch_CfnAnomalyDetectorProps(props);
}
catch (error) {
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
Error.captureStackTrace(error, this.constructor);
}
throw error;
}
this.configuration = props.configuration;
this.dimensions = props.dimensions;
this.metricMathAnomalyDetector = props.metricMathAnomalyDetector;
this.metricName = props.metricName;
this.namespace = props.namespace;
this.singleMetricAnomalyDetector = props.singleMetricAnomalyDetector;
this.stat = props.stat;
}
/**
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope, id, resourceAttributes, options) {
resourceAttributes = resourceAttributes || {};
const resourceProperties = options.parser.parseValue(resourceAttributes.Properties);
const propsResult = CfnAnomalyDetectorPropsFromCloudFormation(resourceProperties);
const ret = new CfnAnomalyDetector(scope, id, propsResult.value);
for (const [propKey, propVal] of Object.entries(propsResult.extraProperties)) {
ret.addPropertyOverride(propKey, propVal);
}
options.parser.handleAttributes(ret, resourceAttributes, id);
return ret;
}
/**
* Examines the CloudFormation resource and discloses attributes.
*
* @param inspector - tree inspector to collect and process attributes
*
*/
inspect(inspector) {
inspector.addAttribute("aws:cdk:cloudformation:type", CfnAnomalyDetector.CFN_RESOURCE_TYPE_NAME);
inspector.addAttribute("aws:cdk:cloudformation:props", this.cfnProperties);
}
get cfnProperties() {
return {
configuration: this.configuration,
dimensions: this.dimensions,
metricMathAnomalyDetector: this.metricMathAnomalyDetector,
metricName: this.metricName,
namespace: this.namespace,
singleMetricAnomalyDetector: this.singleMetricAnomalyDetector,
stat: this.stat,
};
}
renderProperties(props) {
return cfnAnomalyDetectorPropsToCloudFormation(props);
}
}
exports.CfnAnomalyDetector = CfnAnomalyDetector;
_b = JSII_RTTI_SYMBOL_1;
CfnAnomalyDetector[_b] = { fqn: "@aws-cdk/aws-cloudwatch.CfnAnomalyDetector", version: "1.157.0" };
/**
* The CloudFormation resource type name for this resource class.
*/
CfnAnomalyDetector.CFN_RESOURCE_TYPE_NAME = "AWS::CloudWatch::AnomalyDetector";
/**
* Determine whether the given properties match those of a `ConfigurationProperty`
*
* @param properties - the TypeScript properties of a `ConfigurationProperty`
*
* @returns the result of the validation.
*/
function CfnAnomalyDetector_ConfigurationPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
errors.collect(new cdk.ValidationResult('Expected an object, but received: ' + JSON.stringify(properties)));
}
errors.collect(cdk.propertyValidator('excludedTimeRanges', cdk.listValidator(CfnAnomalyDetector_RangePropertyValidator))(properties.excludedTimeRanges));
errors.collect(cdk.propertyValidator('metricTimeZone', cdk.validateString)(properties.metricTimeZone));
return errors.wrap('supplied properties not correct for "ConfigurationProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudWatch::AnomalyDetector.Configuration` resource
*
* @param properties - the TypeScript properties of a `ConfigurationProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudWatch::AnomalyDetector.Configuration` resource.
*/
// @ts-ignore TS6133
function cfnAnomalyDetectorConfigurationPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnAnomalyDetector_ConfigurationPropertyValidator(properties).assertSuccess();
return {
ExcludedTimeRanges: cdk.listMapper(cfnAnomalyDetectorRangePropertyToCloudFormation)(properties.excludedTimeRanges),
MetricTimeZone: cdk.stringToCloudFormation(properties.metricTimeZone),
};
}
// @ts-ignore TS6133
function CfnAnomalyDetectorConfigurationPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return new cfn_parse.FromCloudFormationResult(properties);
}
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('excludedTimeRanges', 'ExcludedTimeRanges', properties.ExcludedTimeRanges != null ? cfn_parse.FromCloudFormation.getArray(CfnAnomalyDetectorRangePropertyFromCloudFormation)(properties.ExcludedTimeRanges) : undefined);
ret.addPropertyResult('metricTimeZone', 'MetricTimeZone', properties.MetricTimeZone != null ? cfn_parse.FromCloudFormation.getString(properties.MetricTimeZone) : undefined);
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* Determine whether the given properties match those of a `DimensionProperty`
*
* @param properties - the TypeScript properties of a `DimensionProperty`
*
* @returns the result of the validation.
*/
function CfnAnomalyDetector_DimensionPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
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));
return errors.wrap('supplied properties not correct for "DimensionProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudWatch::AnomalyDetector.Dimension` resource
*
* @param properties - the TypeScript properties of a `DimensionProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudWatch::AnomalyDetector.Dimension` resource.
*/
// @ts-ignore TS6133
function cfnAnomalyDetectorDimensionPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnAnomalyDetector_DimensionPropertyValidator(properties).assertSuccess();
return {
Name: cdk.stringToCloudFormation(properties.name),
Value: cdk.stringToCloudFormation(properties.value),
};
}
// @ts-ignore TS6133
function CfnAnomalyDetectorDimensionPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return new cfn_parse.FromCloudFormationResult(properties);
}
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('name', 'Name', cfn_parse.FromCloudFormation.getString(properties.Name));
ret.addPropertyResult('value', 'Value', cfn_parse.FromCloudFormation.getString(properties.Value));
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* Determine whether the given properties match those of a `MetricProperty`
*
* @param properties - the TypeScript properties of a `MetricProperty`
*
* @returns the result of the validation.
*/
function CfnAnomalyDetector_MetricPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
errors.collect(new cdk.ValidationResult('Expected an object, but received: ' + JSON.stringify(properties)));
}
errors.collect(cdk.propertyValidator('dimensions', cdk.listValidator(CfnAnomalyDetector_DimensionPropertyValidator))(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));
return errors.wrap('supplied properties not correct for "MetricProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudWatch::AnomalyDetector.Metric` resource
*
* @param properties - the TypeScript properties of a `MetricProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudWatch::AnomalyDetector.Metric` resource.
*/
// @ts-ignore TS6133
function cfnAnomalyDetectorMetricPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnAnomalyDetector_MetricPropertyValidator(properties).assertSuccess();
return {
Dimensions: cdk.listMapper(cfnAnomalyDetectorDimensionPropertyToCloudFormation)(properties.dimensions),
MetricName: cdk.stringToCloudFormation(properties.metricName),
Namespace: cdk.stringToCloudFormation(properties.namespace),
};
}
// @ts-ignore TS6133
function CfnAnomalyDetectorMetricPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return new cfn_parse.FromCloudFormationResult(properties);
}
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('dimensions', 'Dimensions', properties.Dimensions != null ? cfn_parse.FromCloudFormation.getArray(CfnAnomalyDetectorDimensionPropertyFromCloudFormation)(properties.Dimensions) : undefined);
ret.addPropertyResult('metricName', 'MetricName', cfn_parse.FromCloudFormation.getString(properties.MetricName));
ret.addPropertyResult('namespace', 'Namespace', cfn_parse.FromCloudFormation.getString(properties.Namespace));
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* Determine whether the given properties match those of a `MetricDataQueryProperty`
*
* @param properties - the TypeScript properties of a `MetricDataQueryProperty`
*
* @returns the result of the validation.
*/
function CfnAnomalyDetector_MetricDataQueryPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
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', CfnAnomalyDetector_MetricStatPropertyValidator)(properties.metricStat));
errors.collect(cdk.propertyValidator('period', cdk.validateNumber)(properties.period));
errors.collect(cdk.propertyValidator('returnData', cdk.validateBoolean)(properties.returnData));
return errors.wrap('supplied properties not correct for "MetricDataQueryProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudWatch::AnomalyDetector.MetricDataQuery` resource
*
* @param properties - the TypeScript properties of a `MetricDataQueryProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudWatch::AnomalyDetector.MetricDataQuery` resource.
*/
// @ts-ignore TS6133
function cfnAnomalyDetectorMetricDataQueryPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnAnomalyDetector_MetricDataQueryPropertyValidator(properties).assertSuccess();
return {
AccountId: cdk.stringToCloudFormation(properties.accountId),
Expression: cdk.stringToCloudFormation(properties.expression),
Id: cdk.stringToCloudFormation(properties.id),
Label: cdk.stringToCloudFormation(properties.label),
MetricStat: cfnAnomalyDetectorMetricStatPropertyToCloudFormation(properties.metricStat),
Period: cdk.numberToCloudFormation(properties.period),
ReturnData: cdk.booleanToCloudFormation(properties.returnData),
};
}
// @ts-ignore TS6133
function CfnAnomalyDetectorMetricDataQueryPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return new cfn_parse.FromCloudFormationResult(properties);
}
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('accountId', 'AccountId', properties.AccountId != null ? cfn_parse.FromCloudFormation.getString(properties.AccountId) : undefined);
ret.addPropertyResult('expression', 'Expression', properties.Expression != null ? cfn_parse.FromCloudFormation.getString(properties.Expression) : undefined);
ret.addPropertyResult('id', 'Id', cfn_parse.FromCloudFormation.getString(properties.Id));
ret.addPropertyResult('label', 'Label', properties.Label != null ? cfn_parse.FromCloudFormation.getString(properties.Label) : undefined);
ret.addPropertyResult('metricStat', 'MetricStat', properties.MetricStat != null ? CfnAnomalyDetectorMetricStatPropertyFromCloudFormation(properties.MetricStat) : undefined);
ret.addPropertyResult('period', 'Period', properties.Period != null ? cfn_parse.FromCloudFormation.getNumber(properties.Period) : undefined);
ret.addPropertyResult('returnData', 'ReturnData', properties.ReturnData != null ? cfn_parse.FromCloudFormation.getBoolean(properties.ReturnData) : undefined);
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* Determine whether the given properties match those of a `MetricMathAnomalyDetectorProperty`
*
* @param properties - the TypeScript properties of a `MetricMathAnomalyDetectorProperty`
*
* @returns the result of the validation.
*/
function CfnAnomalyDetector_MetricMathAnomalyDetectorPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
errors.collect(new cdk.ValidationResult('Expected an object, but received: ' + JSON.stringify(properties)));
}
errors.collect(cdk.propertyValidator('metricDataQueries', cdk.listValidator(CfnAnomalyDetector_MetricDataQueryPropertyValidator))(properties.metricDataQueries));
return errors.wrap('supplied properties not correct for "MetricMathAnomalyDetectorProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudWatch::AnomalyDetector.MetricMathAnomalyDetector` resource
*
* @param properties - the TypeScript properties of a `MetricMathAnomalyDetectorProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudWatch::AnomalyDetector.MetricMathAnomalyDetector` resource.
*/
// @ts-ignore TS613