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

com.pulumi.gcp.monitoring.kotlin.outputs.AlertPolicyConditionConditionThreshold.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 8.12.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.monitoring.kotlin.outputs

import kotlin.Double
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List

/**
 *
 * @property aggregations Specifies the alignment of data points in
 * individual time series as well as how to
 * combine the retrieved time series together
 * (such as when aggregating multiple streams
 * on each resource to a single stream for each
 * resource or when aggregating streams across
 * all members of a group of resources).
 * Multiple aggregations are applied in the
 * order specified.This field is similar to the
 * one in the MetricService.ListTimeSeries
 * request. It is advisable to use the
 * ListTimeSeries method when debugging this
 * field.
 * Structure is documented below.
 * @property comparison The comparison to apply between the time
 * series (indicated by filter and aggregation)
 * and the threshold (indicated by
 * threshold_value). The comparison is applied
 * on each time series, with the time series on
 * the left-hand side and the threshold on the
 * right-hand side. Only COMPARISON_LT and
 * COMPARISON_GT are supported currently.
 * Possible values are: `COMPARISON_GT`, `COMPARISON_GE`, `COMPARISON_LT`, `COMPARISON_LE`, `COMPARISON_EQ`, `COMPARISON_NE`.
 * @property denominatorAggregations Specifies the alignment of data points in
 * individual time series selected by
 * denominatorFilter as well as how to combine
 * the retrieved time series together (such as
 * when aggregating multiple streams on each
 * resource to a single stream for each
 * resource or when aggregating streams across
 * all members of a group of resources).When
 * computing ratios, the aggregations and
 * denominator_aggregations fields must use the
 * same alignment period and produce time
 * series that have the same periodicity and
 * labels.This field is similar to the one in
 * the MetricService.ListTimeSeries request. It
 * is advisable to use the ListTimeSeries
 * method when debugging this field.
 * Structure is documented below.
 * @property denominatorFilter A filter that identifies a time series that
 * should be used as the denominator of a ratio
 * that will be compared with the threshold. If
 * a denominator_filter is specified, the time
 * series specified by the filter field will be
 * used as the numerator.The filter is similar
 * to the one that is specified in the
 * MetricService.ListTimeSeries request (that
 * call is useful to verify the time series
 * that will be retrieved / processed) and must
 * specify the metric type and optionally may
 * contain restrictions on resource type,
 * resource labels, and metric labels. This
 * field may not exceed 2048 Unicode characters
 * in length.
 * @property duration The amount of time that a time series must
 * violate the threshold to be considered
 * failing. Currently, only values that are a
 * multiple of a minute--e.g., 0, 60, 120, or
 * 300 seconds--are supported. If an invalid
 * value is given, an error will be returned.
 * When choosing a duration, it is useful to
 * keep in mind the frequency of the underlying
 * time series data (which may also be affected
 * by any alignments specified in the
 * aggregations field); a good duration is long
 * enough so that a single outlier does not
 * generate spurious alerts, but short enough
 * that unhealthy states are detected and
 * alerted on quickly.
 * @property evaluationMissingData A condition control that determines how
 * metric-threshold conditions are evaluated when
 * data stops arriving.
 * Possible values are: `EVALUATION_MISSING_DATA_INACTIVE`, `EVALUATION_MISSING_DATA_ACTIVE`, `EVALUATION_MISSING_DATA_NO_OP`.
 * @property filter A filter that identifies which time series
 * should be compared with the threshold.The
 * filter is similar to the one that is
 * specified in the
 * MetricService.ListTimeSeries request (that
 * call is useful to verify the time series
 * that will be retrieved / processed) and must
 * specify the metric type and optionally may
 * contain restrictions on resource type,
 * resource labels, and metric labels. This
 * field may not exceed 2048 Unicode characters
 * in length.
 * @property forecastOptions When this field is present, the `MetricThreshold`
 * condition forecasts whether the time series is
 * predicted to violate the threshold within the
 * `forecastHorizon`. When this field is not set, the
 * `MetricThreshold` tests the current value of the
 * timeseries against the threshold.
 * Structure is documented below.
 * @property thresholdValue A value against which to compare the time
 * series.
 * @property trigger The number/percent of time series for which
 * the comparison must hold in order for the
 * condition to trigger. If unspecified, then
 * the condition will trigger if the comparison
 * is true for any of the time series that have
 * been identified by filter and aggregations,
 * or by the ratio, if denominator_filter and
 * denominator_aggregations are specified.
 * Structure is documented below.
 */
public data class AlertPolicyConditionConditionThreshold(
    public val aggregations: List? = null,
    public val comparison: String,
    public val denominatorAggregations: List? = null,
    public val denominatorFilter: String? = null,
    public val duration: String,
    public val evaluationMissingData: String? = null,
    public val filter: String? = null,
    public val forecastOptions: AlertPolicyConditionConditionThresholdForecastOptions? = null,
    public val thresholdValue: Double? = null,
    public val trigger: AlertPolicyConditionConditionThresholdTrigger? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.gcp.monitoring.outputs.AlertPolicyConditionConditionThreshold): AlertPolicyConditionConditionThreshold = AlertPolicyConditionConditionThreshold(
            aggregations = javaType.aggregations().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.monitoring.kotlin.outputs.AlertPolicyConditionConditionThresholdAggregation.Companion.toKotlin(args0)
                })
            }),
            comparison = javaType.comparison(),
            denominatorAggregations = javaType.denominatorAggregations().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.monitoring.kotlin.outputs.AlertPolicyConditionConditionThresholdDenominatorAggregation.Companion.toKotlin(args0)
                })
            }),
            denominatorFilter = javaType.denominatorFilter().map({ args0 -> args0 }).orElse(null),
            duration = javaType.duration(),
            evaluationMissingData = javaType.evaluationMissingData().map({ args0 -> args0 }).orElse(null),
            filter = javaType.filter().map({ args0 -> args0 }).orElse(null),
            forecastOptions = javaType.forecastOptions().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.monitoring.kotlin.outputs.AlertPolicyConditionConditionThresholdForecastOptions.Companion.toKotlin(args0)
                })
            }).orElse(null),
            thresholdValue = javaType.thresholdValue().map({ args0 -> args0 }).orElse(null),
            trigger = javaType.trigger().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.monitoring.kotlin.outputs.AlertPolicyConditionConditionThresholdTrigger.Companion.toKotlin(args0)
                })
            }).orElse(null),
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy