Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
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.inputs
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.monitoring.inputs.AlertPolicyConditionConditionThresholdArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Double
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
*
* @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 AlertPolicyConditionConditionThresholdArgs(
public val aggregations: Output>? =
null,
public val comparison: Output,
public val denominatorAggregations: Output>? = null,
public val denominatorFilter: Output? = null,
public val duration: Output,
public val evaluationMissingData: Output? = null,
public val filter: Output? = null,
public val forecastOptions: Output? =
null,
public val thresholdValue: Output? = null,
public val trigger: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.gcp.monitoring.inputs.AlertPolicyConditionConditionThresholdArgs = com.pulumi.gcp.monitoring.inputs.AlertPolicyConditionConditionThresholdArgs.builder()
.aggregations(
aggregations?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.comparison(comparison.applyValue({ args0 -> args0 }))
.denominatorAggregations(
denominatorAggregations?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> args0.toJava() })
})
}),
)
.denominatorFilter(denominatorFilter?.applyValue({ args0 -> args0 }))
.duration(duration.applyValue({ args0 -> args0 }))
.evaluationMissingData(evaluationMissingData?.applyValue({ args0 -> args0 }))
.filter(filter?.applyValue({ args0 -> args0 }))
.forecastOptions(forecastOptions?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.thresholdValue(thresholdValue?.applyValue({ args0 -> args0 }))
.trigger(trigger?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}
/**
* Builder for [AlertPolicyConditionConditionThresholdArgs].
*/
@PulumiTagMarker
public class AlertPolicyConditionConditionThresholdArgsBuilder internal constructor() {
private var aggregations: Output>? =
null
private var comparison: Output? = null
private var denominatorAggregations:
Output>? = null
private var denominatorFilter: Output? = null
private var duration: Output? = null
private var evaluationMissingData: Output? = null
private var filter: Output? = null
private var forecastOptions: Output? =
null
private var thresholdValue: Output? = null
private var trigger: Output? = null
/**
* @param value 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.
*/
@JvmName("tcdctpmagqbmplbg")
public suspend fun aggregations(`value`: Output>) {
this.aggregations = value
}
@JvmName("vchvqkvpapgixpgb")
public suspend fun aggregations(vararg values: Output) {
this.aggregations = Output.all(values.asList())
}
/**
* @param values 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.
*/
@JvmName("jsiyboqgpfpwnoji")
public suspend fun aggregations(values: List