com.pulumi.gcp.monitoring.kotlin.outputs.AlertPolicyConditionConditionThreshold.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-gcp-kotlin Show documentation
Show all versions of pulumi-gcp-kotlin Show documentation
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@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