@cdktf/provider-aws
Version:
Prebuilt aws Provider for Terraform CDK (cdktf)
1,034 lines • 140 kB
JavaScript
"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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