All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.awsnative.cloudwatch.kotlin.outputs.AlarmMetricDataQuery.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.cloudwatch.kotlin.outputs

import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress

/**
 * The ``MetricDataQuery`` property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data.
 *  Any expression used must return a single time series. For more information, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*.
 * @property accountId The ID of the account where the metrics are located, if this is a cross-account alarm.
 * @property expression The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*.
 *  Within each MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both.
 * @property id A short name used to tie this object to the results in the response. This name must be unique within a single call to ``GetMetricData``. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter.
 * @property label A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CW dashboard widget, the label is shown. If ``Label`` is omitted, CW generates a default.
 * @property metricStat The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data.
 *  Within one MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both.
 * @property period The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` operation that includes a ``StorageResolution of 1 second``.
 * @property returnData This option indicates whether to return the timestamps and raw data values of this metric.
 *  When you create an alarm based on a metric math expression, specify ``True`` for this value for only the one math expression that the alarm is based on. You must specify ``False`` for ``ReturnData`` for all the other metrics and expressions used in the alarm.
 *  This field is required.
 */
public data class AlarmMetricDataQuery(
    public val accountId: String? = null,
    public val expression: String? = null,
    public val id: String,
    public val label: String? = null,
    public val metricStat: AlarmMetricStat? = null,
    public val period: Int? = null,
    public val returnData: Boolean? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.awsnative.cloudwatch.outputs.AlarmMetricDataQuery): AlarmMetricDataQuery = AlarmMetricDataQuery(
            accountId = javaType.accountId().map({ args0 -> args0 }).orElse(null),
            expression = javaType.expression().map({ args0 -> args0 }).orElse(null),
            id = javaType.id(),
            label = javaType.label().map({ args0 -> args0 }).orElse(null),
            metricStat = javaType.metricStat().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.cloudwatch.kotlin.outputs.AlarmMetricStat.Companion.toKotlin(args0)
                })
            }).orElse(null),
            period = javaType.period().map({ args0 -> args0 }).orElse(null),
            returnData = javaType.returnData().map({ args0 -> args0 }).orElse(null),
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy