UNPKG

@cdktf/provider-aws

Version:

Prebuilt aws Provider for Terraform CDK (cdktf)

1,034 lines 140 kB
"use strict"; var _a, _b, _c, _d; Object.defineProperty(exports, "__esModule", { value: true }); exports.CloudwatchMetricAlarm = exports.CloudwatchMetricAlarmMetricQueryList = exports.CloudwatchMetricAlarmMetricQueryOutputReference = exports.cloudwatchMetricAlarmMetricQueryToHclTerraform = exports.cloudwatchMetricAlarmMetricQueryToTerraform = exports.CloudwatchMetricAlarmMetricQueryMetricOutputReference = exports.cloudwatchMetricAlarmMetricQueryMetricToHclTerraform = exports.cloudwatchMetricAlarmMetricQueryMetricToTerraform = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function cloudwatchMetricAlarmMetricQueryMetricToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { dimensions: cdktf.hashMapper(cdktf.stringToTerraform)(struct.dimensions), metric_name: cdktf.stringToTerraform(struct.metricName), namespace: cdktf.stringToTerraform(struct.namespace), period: cdktf.numberToTerraform(struct.period), stat: cdktf.stringToTerraform(struct.stat), unit: cdktf.stringToTerraform(struct.unit), }; } exports.cloudwatchMetricAlarmMetricQueryMetricToTerraform = cloudwatchMetricAlarmMetricQueryMetricToTerraform; function cloudwatchMetricAlarmMetricQueryMetricToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { dimensions: { value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(struct.dimensions), isBlock: false, type: "map", storageClassType: "stringMap", }, metric_name: { value: cdktf.stringToHclTerraform(struct.metricName), isBlock: false, type: "simple", storageClassType: "string", }, namespace: { value: cdktf.stringToHclTerraform(struct.namespace), isBlock: false, type: "simple", storageClassType: "string", }, period: { value: cdktf.numberToHclTerraform(struct.period), isBlock: false, type: "simple", storageClassType: "number", }, stat: { value: cdktf.stringToHclTerraform(struct.stat), isBlock: false, type: "simple", storageClassType: "string", }, unit: { value: cdktf.stringToHclTerraform(struct.unit), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.cloudwatchMetricAlarmMetricQueryMetricToHclTerraform = cloudwatchMetricAlarmMetricQueryMetricToHclTerraform; class CloudwatchMetricAlarmMetricQueryMetricOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource, terraformAttribute) { super(terraformResource, terraformAttribute, false, 0); this.isEmptyObject = false; } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._dimensions !== undefined) { hasAnyValues = true; internalValueResult.dimensions = this._dimensions; } if (this._metricName !== undefined) { hasAnyValues = true; internalValueResult.metricName = this._metricName; } if (this._namespace !== undefined) { hasAnyValues = true; internalValueResult.namespace = this._namespace; } if (this._period !== undefined) { hasAnyValues = true; internalValueResult.period = this._period; } if (this._stat !== undefined) { hasAnyValues = true; internalValueResult.stat = this._stat; } if (this._unit !== undefined) { hasAnyValues = true; internalValueResult.unit = this._unit; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._dimensions = undefined; this._metricName = undefined; this._namespace = undefined; this._period = undefined; this._stat = undefined; this._unit = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._dimensions = value.dimensions; this._metricName = value.metricName; this._namespace = value.namespace; this._period = value.period; this._stat = value.stat; this._unit = value.unit; } } get dimensions() { return this.getStringMapAttribute('dimensions'); } set dimensions(value) { this._dimensions = value; } resetDimensions() { this._dimensions = undefined; } // Temporarily expose input value. Use with caution. get dimensionsInput() { return this._dimensions; } get metricName() { return this.getStringAttribute('metric_name'); } set metricName(value) { this._metricName = value; } // Temporarily expose input value. Use with caution. get metricNameInput() { return this._metricName; } get namespace() { return this.getStringAttribute('namespace'); } set namespace(value) { this._namespace = value; } resetNamespace() { this._namespace = undefined; } // Temporarily expose input value. Use with caution. get namespaceInput() { return this._namespace; } get period() { return this.getNumberAttribute('period'); } set period(value) { this._period = value; } // Temporarily expose input value. Use with caution. get periodInput() { return this._period; } get stat() { return this.getStringAttribute('stat'); } set stat(value) { this._stat = value; } // Temporarily expose input value. Use with caution. get statInput() { return this._stat; } get unit() { return this.getStringAttribute('unit'); } set unit(value) { this._unit = value; } resetUnit() { this._unit = undefined; } // Temporarily expose input value. Use with caution. get unitInput() { return this._unit; } } exports.CloudwatchMetricAlarmMetricQueryMetricOutputReference = CloudwatchMetricAlarmMetricQueryMetricOutputReference; _a = JSII_RTTI_SYMBOL_1; CloudwatchMetricAlarmMetricQueryMetricOutputReference[_a] = { fqn: "@cdktf/provider-aws.cloudwatchMetricAlarm.CloudwatchMetricAlarmMetricQueryMetricOutputReference", version: "19.50.0" }; function cloudwatchMetricAlarmMetricQueryToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { account_id: cdktf.stringToTerraform(struct.accountId), expression: cdktf.stringToTerraform(struct.expression), id: cdktf.stringToTerraform(struct.id), label: cdktf.stringToTerraform(struct.label), period: cdktf.numberToTerraform(struct.period), return_data: cdktf.booleanToTerraform(struct.returnData), metric: cloudwatchMetricAlarmMetricQueryMetricToTerraform(struct.metric), }; } exports.cloudwatchMetricAlarmMetricQueryToTerraform = cloudwatchMetricAlarmMetricQueryToTerraform; function cloudwatchMetricAlarmMetricQueryToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { account_id: { value: cdktf.stringToHclTerraform(struct.accountId), isBlock: false, type: "simple", storageClassType: "string", }, expression: { value: cdktf.stringToHclTerraform(struct.expression), isBlock: false, type: "simple", storageClassType: "string", }, id: { value: cdktf.stringToHclTerraform(struct.id), isBlock: false, type: "simple", storageClassType: "string", }, label: { value: cdktf.stringToHclTerraform(struct.label), isBlock: false, type: "simple", storageClassType: "string", }, period: { value: cdktf.numberToHclTerraform(struct.period), isBlock: false, type: "simple", storageClassType: "number", }, return_data: { value: cdktf.booleanToHclTerraform(struct.returnData), isBlock: false, type: "simple", storageClassType: "boolean", }, metric: { value: cloudwatchMetricAlarmMetricQueryMetricToHclTerraform(struct.metric), isBlock: true, type: "list", storageClassType: "CloudwatchMetricAlarmMetricQueryMetricList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.cloudwatchMetricAlarmMetricQueryToHclTerraform = cloudwatchMetricAlarmMetricQueryToHclTerraform; class CloudwatchMetricAlarmMetricQueryOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param complexObjectIndex the index of this item in the list * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) { super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex); this.isEmptyObject = false; // metric - computed: false, optional: true, required: false this._metric = new CloudwatchMetricAlarmMetricQueryMetricOutputReference(this, "metric"); } get internalValue() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._accountId !== undefined) { hasAnyValues = true; internalValueResult.accountId = this._accountId; } if (this._expression !== undefined) { hasAnyValues = true; internalValueResult.expression = this._expression; } if (this._id !== undefined) { hasAnyValues = true; internalValueResult.id = this._id; } if (this._label !== undefined) { hasAnyValues = true; internalValueResult.label = this._label; } if (this._period !== undefined) { hasAnyValues = true; internalValueResult.period = this._period; } if (this._returnData !== undefined) { hasAnyValues = true; internalValueResult.returnData = this._returnData; } if (this._metric?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.metric = this._metric?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._accountId = undefined; this._expression = undefined; this._id = undefined; this._label = undefined; this._period = undefined; this._returnData = undefined; this._metric.internalValue = undefined; } else if (cdktf.Tokenization.isResolvable(value)) { this.isEmptyObject = false; this.resolvableValue = value; } else { this.isEmptyObject = Object.keys(value).length === 0; this.resolvableValue = undefined; this._accountId = value.accountId; this._expression = value.expression; this._id = value.id; this._label = value.label; this._period = value.period; this._returnData = value.returnData; this._metric.internalValue = value.metric; } } get accountId() { return this.getStringAttribute('account_id'); } set accountId(value) { this._accountId = value; } resetAccountId() { this._accountId = undefined; } // Temporarily expose input value. Use with caution. get accountIdInput() { return this._accountId; } get expression() { return this.getStringAttribute('expression'); } set expression(value) { this._expression = value; } resetExpression() { this._expression = undefined; } // Temporarily expose input value. Use with caution. get expressionInput() { return this._expression; } get id() { return this.getStringAttribute('id'); } set id(value) { this._id = value; } // Temporarily expose input value. Use with caution. get idInput() { return this._id; } get label() { return this.getStringAttribute('label'); } set label(value) { this._label = value; } resetLabel() { this._label = undefined; } // Temporarily expose input value. Use with caution. get labelInput() { return this._label; } get period() { return this.getNumberAttribute('period'); } set period(value) { this._period = value; } resetPeriod() { this._period = undefined; } // Temporarily expose input value. Use with caution. get periodInput() { return this._period; } get returnData() { return this.getBooleanAttribute('return_data'); } set returnData(value) { this._returnData = value; } resetReturnData() { this._returnData = undefined; } // Temporarily expose input value. Use with caution. get returnDataInput() { return this._returnData; } get metric() { return this._metric; } putMetric(value) { this._metric.internalValue = value; } resetMetric() { this._metric.internalValue = undefined; } // Temporarily expose input value. Use with caution. get metricInput() { return this._metric.internalValue; } } exports.CloudwatchMetricAlarmMetricQueryOutputReference = CloudwatchMetricAlarmMetricQueryOutputReference; _b = JSII_RTTI_SYMBOL_1; CloudwatchMetricAlarmMetricQueryOutputReference[_b] = { fqn: "@cdktf/provider-aws.cloudwatchMetricAlarm.CloudwatchMetricAlarmMetricQueryOutputReference", version: "19.50.0" }; class CloudwatchMetricAlarmMetricQueryList extends cdktf.ComplexList { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource, terraformAttribute, wrapsSet) { super(terraformResource, terraformAttribute, wrapsSet); this.terraformResource = terraformResource; this.terraformAttribute = terraformAttribute; this.wrapsSet = wrapsSet; } /** * @param index the index of the item to return */ get(index) { return new CloudwatchMetricAlarmMetricQueryOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.CloudwatchMetricAlarmMetricQueryList = CloudwatchMetricAlarmMetricQueryList; _c = JSII_RTTI_SYMBOL_1; CloudwatchMetricAlarmMetricQueryList[_c] = { fqn: "@cdktf/provider-aws.cloudwatchMetricAlarm.CloudwatchMetricAlarmMetricQueryList", version: "19.50.0" }; /** * Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/cloudwatch_metric_alarm aws_cloudwatch_metric_alarm} */ class CloudwatchMetricAlarm extends cdktf.TerraformResource { // ============== // STATIC Methods // ============== /** * Generates CDKTF code for importing a CloudwatchMetricAlarm resource upon running "cdktf plan <stack-name>" * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the CloudwatchMetricAlarm to import * @param importFromId The id of the existing CloudwatchMetricAlarm that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/cloudwatch_metric_alarm#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the CloudwatchMetricAlarm to import is found */ static generateConfigForImport(scope, importToId, importFromId, provider) { return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "aws_cloudwatch_metric_alarm", importId: importFromId, provider }); } // =========== // INITIALIZER // =========== /** * Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/cloudwatch_metric_alarm aws_cloudwatch_metric_alarm} Resource * * @param scope The scope in which to define this construct * @param id The scoped construct ID. Must be unique amongst siblings in the same scope * @param options CloudwatchMetricAlarmConfig */ constructor(scope, id, config) { super(scope, id, { terraformResourceType: 'aws_cloudwatch_metric_alarm', terraformGeneratorMetadata: { providerName: 'aws', providerVersion: '5.84.0', providerVersionConstraint: '~> 5.0' }, provider: config.provider, dependsOn: config.dependsOn, count: config.count, lifecycle: config.lifecycle, provisioners: config.provisioners, connection: config.connection, forEach: config.forEach }); // metric_query - computed: false, optional: true, required: false this._metricQuery = new CloudwatchMetricAlarmMetricQueryList(this, "metric_query", true); this._actionsEnabled = config.actionsEnabled; this._alarmActions = config.alarmActions; this._alarmDescription = config.alarmDescription; this._alarmName = config.alarmName; this._comparisonOperator = config.comparisonOperator; this._datapointsToAlarm = config.datapointsToAlarm; this._dimensions = config.dimensions; this._evaluateLowSampleCountPercentiles = config.evaluateLowSampleCountPercentiles; this._evaluationPeriods = config.evaluationPeriods; this._extendedStatistic = config.extendedStatistic; this._id = config.id; this._insufficientDataActions = config.insufficientDataActions; this._metricName = config.metricName; this._namespace = config.namespace; this._okActions = config.okActions; this._period = config.period; this._statistic = config.statistic; this._tags = config.tags; this._tagsAll = config.tagsAll; this._threshold = config.threshold; this._thresholdMetricId = config.thresholdMetricId; this._treatMissingData = config.treatMissingData; this._unit = config.unit; this._metricQuery.internalValue = config.metricQuery; } get actionsEnabled() { return this.getBooleanAttribute('actions_enabled'); } set actionsEnabled(value) { this._actionsEnabled = value; } resetActionsEnabled() { this._actionsEnabled = undefined; } // Temporarily expose input value. Use with caution. get actionsEnabledInput() { return this._actionsEnabled; } get alarmActions() { return cdktf.Fn.tolist(this.getListAttribute('alarm_actions')); } set alarmActions(value) { this._alarmActions = value; } resetAlarmActions() { this._alarmActions = undefined; } // Temporarily expose input value. Use with caution. get alarmActionsInput() { return this._alarmActions; } get alarmDescription() { return this.getStringAttribute('alarm_description'); } set alarmDescription(value) { this._alarmDescription = value; } resetAlarmDescription() { this._alarmDescription = undefined; } // Temporarily expose input value. Use with caution. get alarmDescriptionInput() { return this._alarmDescription; } get alarmName() { return this.getStringAttribute('alarm_name'); } set alarmName(value) { this._alarmName = value; } // Temporarily expose input value. Use with caution. get alarmNameInput() { return this._alarmName; } // arn - computed: true, optional: false, required: false get arn() { return this.getStringAttribute('arn'); } get comparisonOperator() { return this.getStringAttribute('comparison_operator'); } set comparisonOperator(value) { this._comparisonOperator = value; } // Temporarily expose input value. Use with caution. get comparisonOperatorInput() { return this._comparisonOperator; } get datapointsToAlarm() { return this.getNumberAttribute('datapoints_to_alarm'); } set datapointsToAlarm(value) { this._datapointsToAlarm = value; } resetDatapointsToAlarm() { this._datapointsToAlarm = undefined; } // Temporarily expose input value. Use with caution. get datapointsToAlarmInput() { return this._datapointsToAlarm; } get dimensions() { return this.getStringMapAttribute('dimensions'); } set dimensions(value) { this._dimensions = value; } resetDimensions() { this._dimensions = undefined; } // Temporarily expose input value. Use with caution. get dimensionsInput() { return this._dimensions; } get evaluateLowSampleCountPercentiles() { return this.getStringAttribute('evaluate_low_sample_count_percentiles'); } set evaluateLowSampleCountPercentiles(value) { this._evaluateLowSampleCountPercentiles = value; } resetEvaluateLowSampleCountPercentiles() { this._evaluateLowSampleCountPercentiles = undefined; } // Temporarily expose input value. Use with caution. get evaluateLowSampleCountPercentilesInput() { return this._evaluateLowSampleCountPercentiles; } get evaluationPeriods() { return this.getNumberAttribute('evaluation_periods'); } set evaluationPeriods(value) { this._evaluationPeriods = value; } // Temporarily expose input value. Use with caution. get evaluationPeriodsInput() { return this._evaluationPeriods; } get extendedStatistic() { return this.getStringAttribute('extended_statistic'); } set extendedStatistic(value) { this._extendedStatistic = value; } resetExtendedStatistic() { this._extendedStatistic = undefined; } // Temporarily expose input value. Use with caution. get extendedStatisticInput() { return this._extendedStatistic; } get id() { return this.getStringAttribute('id'); } set id(value) { this._id = value; } resetId() { this._id = undefined; } // Temporarily expose input value. Use with caution. get idInput() { return this._id; } get insufficientDataActions() { return cdktf.Fn.tolist(this.getListAttribute('insufficient_data_actions')); } set insufficientDataActions(value) { this._insufficientDataActions = value; } resetInsufficientDataActions() { this._insufficientDataActions = undefined; } // Temporarily expose input value. Use with caution. get insufficientDataActionsInput() { return this._insufficientDataActions; } get metricName() { return this.getStringAttribute('metric_name'); } set metricName(value) { this._metricName = value; } resetMetricName() { this._metricName = undefined; } // Temporarily expose input value. Use with caution. get metricNameInput() { return this._metricName; } get namespace() { return this.getStringAttribute('namespace'); } set namespace(value) { this._namespace = value; } resetNamespace() { this._namespace = undefined; } // Temporarily expose input value. Use with caution. get namespaceInput() { return this._namespace; } get okActions() { return cdktf.Fn.tolist(this.getListAttribute('ok_actions')); } set okActions(value) { this._okActions = value; } resetOkActions() { this._okActions = undefined; } // Temporarily expose input value. Use with caution. get okActionsInput() { return this._okActions; } get period() { return this.getNumberAttribute('period'); } set period(value) { this._period = value; } resetPeriod() { this._period = undefined; } // Temporarily expose input value. Use with caution. get periodInput() { return this._period; } get statistic() { return this.getStringAttribute('statistic'); } set statistic(value) { this._statistic = value; } resetStatistic() { this._statistic = undefined; } // Temporarily expose input value. Use with caution. get statisticInput() { return this._statistic; } get tags() { return this.getStringMapAttribute('tags'); } set tags(value) { this._tags = value; } resetTags() { this._tags = undefined; } // Temporarily expose input value. Use with caution. get tagsInput() { return this._tags; } get tagsAll() { return this.getStringMapAttribute('tags_all'); } set tagsAll(value) { this._tagsAll = value; } resetTagsAll() { this._tagsAll = undefined; } // Temporarily expose input value. Use with caution. get tagsAllInput() { return this._tagsAll; } get threshold() { return this.getNumberAttribute('threshold'); } set threshold(value) { this._threshold = value; } resetThreshold() { this._threshold = undefined; } // Temporarily expose input value. Use with caution. get thresholdInput() { return this._threshold; } get thresholdMetricId() { return this.getStringAttribute('threshold_metric_id'); } set thresholdMetricId(value) { this._thresholdMetricId = value; } resetThresholdMetricId() { this._thresholdMetricId = undefined; } // Temporarily expose input value. Use with caution. get thresholdMetricIdInput() { return this._thresholdMetricId; } get treatMissingData() { return this.getStringAttribute('treat_missing_data'); } set treatMissingData(value) { this._treatMissingData = value; } resetTreatMissingData() { this._treatMissingData = undefined; } // Temporarily expose input value. Use with caution. get treatMissingDataInput() { return this._treatMissingData; } get unit() { return this.getStringAttribute('unit'); } set unit(value) { this._unit = value; } resetUnit() { this._unit = undefined; } // Temporarily expose input value. Use with caution. get unitInput() { return this._unit; } get metricQuery() { return this._metricQuery; } putMetricQuery(value) { this._metricQuery.internalValue = value; } resetMetricQuery() { this._metricQuery.internalValue = undefined; } // Temporarily expose input value. Use with caution. get metricQueryInput() { return this._metricQuery.internalValue; } // ========= // SYNTHESIS // ========= synthesizeAttributes() { return { actions_enabled: cdktf.booleanToTerraform(this._actionsEnabled), alarm_actions: cdktf.listMapper(cdktf.stringToTerraform, false)(this._alarmActions), alarm_description: cdktf.stringToTerraform(this._alarmDescription), alarm_name: cdktf.stringToTerraform(this._alarmName), comparison_operator: cdktf.stringToTerraform(this._comparisonOperator), datapoints_to_alarm: cdktf.numberToTerraform(this._datapointsToAlarm), dimensions: cdktf.hashMapper(cdktf.stringToTerraform)(this._dimensions), evaluate_low_sample_count_percentiles: cdktf.stringToTerraform(this._evaluateLowSampleCountPercentiles), evaluation_periods: cdktf.numberToTerraform(this._evaluationPeriods), extended_statistic: cdktf.stringToTerraform(this._extendedStatistic), id: cdktf.stringToTerraform(this._id), insufficient_data_actions: cdktf.listMapper(cdktf.stringToTerraform, false)(this._insufficientDataActions), metric_name: cdktf.stringToTerraform(this._metricName), namespace: cdktf.stringToTerraform(this._namespace), ok_actions: cdktf.listMapper(cdktf.stringToTerraform, false)(this._okActions), period: cdktf.numberToTerraform(this._period), statistic: cdktf.stringToTerraform(this._statistic), tags: cdktf.hashMapper(cdktf.stringToTerraform)(this._tags), tags_all: cdktf.hashMapper(cdktf.stringToTerraform)(this._tagsAll), threshold: cdktf.numberToTerraform(this._threshold), threshold_metric_id: cdktf.stringToTerraform(this._thresholdMetricId), treat_missing_data: cdktf.stringToTerraform(this._treatMissingData), unit: cdktf.stringToTerraform(this._unit), metric_query: cdktf.listMapper(cloudwatchMetricAlarmMetricQueryToTerraform, true)(this._metricQuery.internalValue), }; } synthesizeHclAttributes() { const attrs = { actions_enabled: { value: cdktf.booleanToHclTerraform(this._actionsEnabled), isBlock: false, type: "simple", storageClassType: "boolean", }, alarm_actions: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._alarmActions), isBlock: false, type: "set", storageClassType: "stringList", }, alarm_description: { value: cdktf.stringToHclTerraform(this._alarmDescription), isBlock: false, type: "simple", storageClassType: "string", }, alarm_name: { value: cdktf.stringToHclTerraform(this._alarmName), isBlock: false, type: "simple", storageClassType: "string", }, comparison_operator: { value: cdktf.stringToHclTerraform(this._comparisonOperator), isBlock: false, type: "simple", storageClassType: "string", }, datapoints_to_alarm: { value: cdktf.numberToHclTerraform(this._datapointsToAlarm), isBlock: false, type: "simple", storageClassType: "number", }, dimensions: { value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(this._dimensions), isBlock: false, type: "map", storageClassType: "stringMap", }, evaluate_low_sample_count_percentiles: { value: cdktf.stringToHclTerraform(this._evaluateLowSampleCountPercentiles), isBlock: false, type: "simple", storageClassType: "string", }, evaluation_periods: { value: cdktf.numberToHclTerraform(this._evaluationPeriods), isBlock: false, type: "simple", storageClassType: "number", }, extended_statistic: { value: cdktf.stringToHclTerraform(this._extendedStatistic), isBlock: false, type: "simple", storageClassType: "string", }, id: { value: cdktf.stringToHclTerraform(this._id), isBlock: false, type: "simple", storageClassType: "string", }, insufficient_data_actions: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._insufficientDataActions), isBlock: false, type: "set", storageClassType: "stringList", }, metric_name: { value: cdktf.stringToHclTerraform(this._metricName), isBlock: false, type: "simple", storageClassType: "string", }, namespace: { value: cdktf.stringToHclTerraform(this._namespace), isBlock: false, type: "simple", storageClassType: "string", }, ok_actions: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._okActions), isBlock: false, type: "set", storageClassType: "stringList", }, period: { value: cdktf.numberToHclTerraform(this._period), isBlock: false, type: "simple", storageClassType: "number", }, statistic: { value: cdktf.stringToHclTerraform(this._statistic), isBlock: false, type: "simple", storageClassType: "string", }, tags: { value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(this._tags), isBlock: false, type: "map", storageClassType: "stringMap", }, tags_all: { value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(this._tagsAll), isBlock: false, type: "map", storageClassType: "stringMap", }, threshold: { value: cdktf.numberToHclTerraform(this._threshold), isBlock: false, type: "simple", storageClassType: "number", }, threshold_metric_id: { value: cdktf.stringToHclTerraform(this._thresholdMetricId), isBlock: false, type: "simple", storageClassType: "string", }, treat_missing_data: { value: cdktf.stringToHclTerraform(this._treatMissingData), isBlock: false, type: "simple", storageClassType: "string", }, unit: { value: cdktf.stringToHclTerraform(this._unit), isBlock: false, type: "simple", storageClassType: "string", }, metric_query: { value: cdktf.listMapperHcl(cloudwatchMetricAlarmMetricQueryToHclTerraform, true)(this._metricQuery.internalValue), isBlock: true, type: "set", storageClassType: "CloudwatchMetricAlarmMetricQueryList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } } exports.CloudwatchMetricAlarm = CloudwatchMetricAlarm; _d = JSII_RTTI_SYMBOL_1; CloudwatchMetricAlarm[_d] = { fqn: "@cdktf/provider-aws.cloudwatchMetricAlarm.CloudwatchMetricAlarm", version: "19.50.0" }; // ================= // STATIC PROPERTIES // ================= CloudwatchMetricAlarm.tfResourceType = "aws_cloudwatch_metric_alarm"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xvdWR3YXRjaC1tZXRyaWMtYWxhcm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFTQSwrQkFBK0I7QUFzSS9CLFNBQWdCLGlEQUFpRCxDQUFDLE1BQXVHO0lBQ3ZLLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9IQUFvSCxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUNELE9BQU87UUFDTCxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3pFLFdBQVcsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLFVBQVUsQ0FBQztRQUN4RCxTQUFTLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxTQUFTLENBQUM7UUFDckQsTUFBTSxFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsTUFBTSxDQUFDO1FBQy9DLElBQUksRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLElBQUksQ0FBQztRQUMzQyxJQUFJLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxJQUFJLENBQUM7S0FDNUMsQ0FBQTtBQUNILENBQUM7QUFiRCw4R0FhQztBQUdELFNBQWdCLG9EQUFvRCxDQUFDLE1BQXVHO0lBQzFLLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FB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