UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

918 lines 94 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface MonitoringAlertPolicyConfig extends cdktf.TerraformMetaArguments { /** * How to combine the results of multiple conditions to * determine if an incident should be opened. Possible values: ["AND", "OR", "AND_WITH_MATCHING_RESOURCE"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#combiner MonitoringAlertPolicy#combiner} */ readonly combiner: string; /** * A short name or phrase used to identify the policy in * dashboards, notifications, and incidents. To avoid confusion, don't use * the same display name for multiple policies in the same project. The * name is limited to 512 Unicode characters. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#display_name MonitoringAlertPolicy#display_name} */ readonly displayName: string; /** * Whether or not the policy is enabled. The default is true. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#enabled MonitoringAlertPolicy#enabled} */ readonly enabled?: boolean | cdktf.IResolvable; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#id MonitoringAlertPolicy#id} * * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable. */ readonly id?: string; /** * Identifies the notification channels to which notifications should be * sent when incidents are opened or closed or when new violations occur * on an already opened incident. Each element of this array corresponds * to the name field in each of the NotificationChannel objects that are * returned from the notificationChannels.list method. The syntax of the * entries in this field is * 'projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]' * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#notification_channels MonitoringAlertPolicy#notification_channels} */ readonly notificationChannels?: string[]; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#project MonitoringAlertPolicy#project} */ readonly project?: string; /** * The severity of an alert policy indicates how important incidents generated * by that policy are. The severity level will be displayed on the Incident * detail page and in notifications. Possible values: ["CRITICAL", "ERROR", "WARNING"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#severity MonitoringAlertPolicy#severity} */ readonly severity?: string; /** * This field is intended to be used for organizing and identifying the AlertPolicy * objects.The field can contain up to 64 entries. Each key and value is limited * to 63 Unicode characters or 128 bytes, whichever is smaller. Labels and values * can contain only lowercase letters, numerals, underscores, and dashes. Keys * must begin with a letter. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#user_labels MonitoringAlertPolicy#user_labels} */ readonly userLabels?: { [key: string]: string; }; /** * alert_strategy block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#alert_strategy MonitoringAlertPolicy#alert_strategy} */ readonly alertStrategy?: MonitoringAlertPolicyAlertStrategy; /** * conditions block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#conditions MonitoringAlertPolicy#conditions} */ readonly conditions: MonitoringAlertPolicyConditions[] | cdktf.IResolvable; /** * documentation block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#documentation MonitoringAlertPolicy#documentation} */ readonly documentation?: MonitoringAlertPolicyDocumentation; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#timeouts MonitoringAlertPolicy#timeouts} */ readonly timeouts?: MonitoringAlertPolicyTimeouts; } export interface MonitoringAlertPolicyCreationRecord { } export declare function monitoringAlertPolicyCreationRecordToTerraform(struct?: MonitoringAlertPolicyCreationRecord): any; export declare function monitoringAlertPolicyCreationRecordToHclTerraform(struct?: MonitoringAlertPolicyCreationRecord): any; export declare class MonitoringAlertPolicyCreationRecordOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @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: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean); get internalValue(): MonitoringAlertPolicyCreationRecord | undefined; set internalValue(value: MonitoringAlertPolicyCreationRecord | undefined); get mutateTime(): string; get mutatedBy(): string; } export declare class MonitoringAlertPolicyCreationRecordList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; /** * @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: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean); /** * @param index the index of the item to return */ get(index: number): MonitoringAlertPolicyCreationRecordOutputReference; } export interface MonitoringAlertPolicyAlertStrategyNotificationChannelStrategy { /** * The notification channels that these settings apply to. Each of these * correspond to the name field in one of the NotificationChannel objects * referenced in the notification_channels field of this AlertPolicy. The format is * 'projects/[PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID]' * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#notification_channel_names MonitoringAlertPolicy#notification_channel_names} */ readonly notificationChannelNames?: string[]; /** * The frequency at which to send reminder notifications for open incidents. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#renotify_interval MonitoringAlertPolicy#renotify_interval} */ readonly renotifyInterval?: string; } export declare function monitoringAlertPolicyAlertStrategyNotificationChannelStrategyToTerraform(struct?: MonitoringAlertPolicyAlertStrategyNotificationChannelStrategy | cdktf.IResolvable): any; export declare function monitoringAlertPolicyAlertStrategyNotificationChannelStrategyToHclTerraform(struct?: MonitoringAlertPolicyAlertStrategyNotificationChannelStrategy | cdktf.IResolvable): any; export declare class MonitoringAlertPolicyAlertStrategyNotificationChannelStrategyOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @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: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean); get internalValue(): MonitoringAlertPolicyAlertStrategyNotificationChannelStrategy | cdktf.IResolvable | undefined; set internalValue(value: MonitoringAlertPolicyAlertStrategyNotificationChannelStrategy | cdktf.IResolvable | undefined); private _notificationChannelNames?; get notificationChannelNames(): string[]; set notificationChannelNames(value: string[]); resetNotificationChannelNames(): void; get notificationChannelNamesInput(): string[] | undefined; private _renotifyInterval?; get renotifyInterval(): string; set renotifyInterval(value: string); resetRenotifyInterval(): void; get renotifyIntervalInput(): string | undefined; } export declare class MonitoringAlertPolicyAlertStrategyNotificationChannelStrategyList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: MonitoringAlertPolicyAlertStrategyNotificationChannelStrategy[] | cdktf.IResolvable; /** * @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: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean); /** * @param index the index of the item to return */ get(index: number): MonitoringAlertPolicyAlertStrategyNotificationChannelStrategyOutputReference; } export interface MonitoringAlertPolicyAlertStrategyNotificationRateLimit { /** * Not more than one notification per period. * A duration in seconds with up to nine fractional digits, terminated by 's'. Example "60.5s". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#period MonitoringAlertPolicy#period} */ readonly period?: string; } export declare function monitoringAlertPolicyAlertStrategyNotificationRateLimitToTerraform(struct?: MonitoringAlertPolicyAlertStrategyNotificationRateLimitOutputReference | MonitoringAlertPolicyAlertStrategyNotificationRateLimit): any; export declare function monitoringAlertPolicyAlertStrategyNotificationRateLimitToHclTerraform(struct?: MonitoringAlertPolicyAlertStrategyNotificationRateLimitOutputReference | MonitoringAlertPolicyAlertStrategyNotificationRateLimit): any; export declare class MonitoringAlertPolicyAlertStrategyNotificationRateLimitOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): MonitoringAlertPolicyAlertStrategyNotificationRateLimit | undefined; set internalValue(value: MonitoringAlertPolicyAlertStrategyNotificationRateLimit | undefined); private _period?; get period(): string; set period(value: string); resetPeriod(): void; get periodInput(): string | undefined; } export interface MonitoringAlertPolicyAlertStrategy { /** * If an alert policy that was active has no data for this long, any open incidents will close. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#auto_close MonitoringAlertPolicy#auto_close} */ readonly autoClose?: string; /** * Control when notifications will be sent out. Possible values: ["NOTIFICATION_PROMPT_UNSPECIFIED", "OPENED", "CLOSED"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#notification_prompts MonitoringAlertPolicy#notification_prompts} */ readonly notificationPrompts?: string[]; /** * notification_channel_strategy block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#notification_channel_strategy MonitoringAlertPolicy#notification_channel_strategy} */ readonly notificationChannelStrategy?: MonitoringAlertPolicyAlertStrategyNotificationChannelStrategy[] | cdktf.IResolvable; /** * notification_rate_limit block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#notification_rate_limit MonitoringAlertPolicy#notification_rate_limit} */ readonly notificationRateLimit?: MonitoringAlertPolicyAlertStrategyNotificationRateLimit; } export declare function monitoringAlertPolicyAlertStrategyToTerraform(struct?: MonitoringAlertPolicyAlertStrategyOutputReference | MonitoringAlertPolicyAlertStrategy): any; export declare function monitoringAlertPolicyAlertStrategyToHclTerraform(struct?: MonitoringAlertPolicyAlertStrategyOutputReference | MonitoringAlertPolicyAlertStrategy): any; export declare class MonitoringAlertPolicyAlertStrategyOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): MonitoringAlertPolicyAlertStrategy | undefined; set internalValue(value: MonitoringAlertPolicyAlertStrategy | undefined); private _autoClose?; get autoClose(): string; set autoClose(value: string); resetAutoClose(): void; get autoCloseInput(): string | undefined; private _notificationPrompts?; get notificationPrompts(): string[]; set notificationPrompts(value: string[]); resetNotificationPrompts(): void; get notificationPromptsInput(): string[] | undefined; private _notificationChannelStrategy; get notificationChannelStrategy(): MonitoringAlertPolicyAlertStrategyNotificationChannelStrategyList; putNotificationChannelStrategy(value: MonitoringAlertPolicyAlertStrategyNotificationChannelStrategy[] | cdktf.IResolvable): void; resetNotificationChannelStrategy(): void; get notificationChannelStrategyInput(): cdktf.IResolvable | MonitoringAlertPolicyAlertStrategyNotificationChannelStrategy[] | undefined; private _notificationRateLimit; get notificationRateLimit(): MonitoringAlertPolicyAlertStrategyNotificationRateLimitOutputReference; putNotificationRateLimit(value: MonitoringAlertPolicyAlertStrategyNotificationRateLimit): void; resetNotificationRateLimit(): void; get notificationRateLimitInput(): MonitoringAlertPolicyAlertStrategyNotificationRateLimit | undefined; } export interface MonitoringAlertPolicyConditionsConditionAbsentAggregations { /** * The alignment period for per-time * series alignment. If present, * alignmentPeriod must be at least * 60 seconds. After per-time series * alignment, each time series will * contain data points only on the * period boundaries. If * perSeriesAligner is not specified * or equals ALIGN_NONE, then this * field is ignored. If * perSeriesAligner is specified and * does not equal ALIGN_NONE, then * this field must be defined; * otherwise an error is returned. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#alignment_period MonitoringAlertPolicy#alignment_period} */ readonly alignmentPeriod?: string; /** * The approach to be used to combine * time series. Not all reducer * functions may be applied to all * time series, depending on the * metric type and the value type of * the original time series. * Reduction may change the metric * type of value type of the time * series.Time series data must be * aligned in order to perform cross- * time series reduction. If * crossSeriesReducer is specified, * then perSeriesAligner must be * specified and not equal ALIGN_NONE * and alignmentPeriod must be * specified; otherwise, an error is * returned. Possible values: ["REDUCE_NONE", "REDUCE_MEAN", "REDUCE_MIN", "REDUCE_MAX", "REDUCE_SUM", "REDUCE_STDDEV", "REDUCE_COUNT", "REDUCE_COUNT_TRUE", "REDUCE_COUNT_FALSE", "REDUCE_FRACTION_TRUE", "REDUCE_PERCENTILE_99", "REDUCE_PERCENTILE_95", "REDUCE_PERCENTILE_50", "REDUCE_PERCENTILE_05"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#cross_series_reducer MonitoringAlertPolicy#cross_series_reducer} */ readonly crossSeriesReducer?: string; /** * The set of fields to preserve when * crossSeriesReducer is specified. * The groupByFields determine how * the time series are partitioned * into subsets prior to applying the * aggregation function. Each subset * contains time series that have the * same value for each of the * grouping fields. Each individual * time series is a member of exactly * one subset. The crossSeriesReducer * is applied to each subset of time * series. It is not possible to * reduce across different resource * types, so this field implicitly * contains resource.type. Fields not * specified in groupByFields are * aggregated away. If groupByFields * is not specified and all the time * series have the same resource * type, then the time series are * aggregated into a single output * time series. If crossSeriesReducer * is not defined, this field is * ignored. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#group_by_fields MonitoringAlertPolicy#group_by_fields} */ readonly groupByFields?: string[]; /** * The approach to be used to align * individual time series. Not all * alignment functions may be applied * to all time series, depending on * the metric type and value type of * the original time series. * Alignment may change the metric * type or the value type of the time * series.Time series data must be * aligned in order to perform cross- * time series reduction. If * crossSeriesReducer is specified, * then perSeriesAligner must be * specified and not equal ALIGN_NONE * and alignmentPeriod must be * specified; otherwise, an error is * returned. Possible values: ["ALIGN_NONE", "ALIGN_DELTA", "ALIGN_RATE", "ALIGN_INTERPOLATE", "ALIGN_NEXT_OLDER", "ALIGN_MIN", "ALIGN_MAX", "ALIGN_MEAN", "ALIGN_COUNT", "ALIGN_SUM", "ALIGN_STDDEV", "ALIGN_COUNT_TRUE", "ALIGN_COUNT_FALSE", "ALIGN_FRACTION_TRUE", "ALIGN_PERCENTILE_99", "ALIGN_PERCENTILE_95", "ALIGN_PERCENTILE_50", "ALIGN_PERCENTILE_05", "ALIGN_PERCENT_CHANGE"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#per_series_aligner MonitoringAlertPolicy#per_series_aligner} */ readonly perSeriesAligner?: string; } export declare function monitoringAlertPolicyConditionsConditionAbsentAggregationsToTerraform(struct?: MonitoringAlertPolicyConditionsConditionAbsentAggregations | cdktf.IResolvable): any; export declare function monitoringAlertPolicyConditionsConditionAbsentAggregationsToHclTerraform(struct?: MonitoringAlertPolicyConditionsConditionAbsentAggregations | cdktf.IResolvable): any; export declare class MonitoringAlertPolicyConditionsConditionAbsentAggregationsOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @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: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean); get internalValue(): MonitoringAlertPolicyConditionsConditionAbsentAggregations | cdktf.IResolvable | undefined; set internalValue(value: MonitoringAlertPolicyConditionsConditionAbsentAggregations | cdktf.IResolvable | undefined); private _alignmentPeriod?; get alignmentPeriod(): string; set alignmentPeriod(value: string); resetAlignmentPeriod(): void; get alignmentPeriodInput(): string | undefined; private _crossSeriesReducer?; get crossSeriesReducer(): string; set crossSeriesReducer(value: string); resetCrossSeriesReducer(): void; get crossSeriesReducerInput(): string | undefined; private _groupByFields?; get groupByFields(): string[]; set groupByFields(value: string[]); resetGroupByFields(): void; get groupByFieldsInput(): string[] | undefined; private _perSeriesAligner?; get perSeriesAligner(): string; set perSeriesAligner(value: string); resetPerSeriesAligner(): void; get perSeriesAlignerInput(): string | undefined; } export declare class MonitoringAlertPolicyConditionsConditionAbsentAggregationsList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: MonitoringAlertPolicyConditionsConditionAbsentAggregations[] | cdktf.IResolvable; /** * @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: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean); /** * @param index the index of the item to return */ get(index: number): MonitoringAlertPolicyConditionsConditionAbsentAggregationsOutputReference; } export interface MonitoringAlertPolicyConditionsConditionAbsentTrigger { /** * The absolute number of time series * that must fail the predicate for the * condition to be triggered. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#count MonitoringAlertPolicy#count} */ readonly count?: number; /** * The percentage of time series that * must fail the predicate for the * condition to be triggered. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#percent MonitoringAlertPolicy#percent} */ readonly percent?: number; } export declare function monitoringAlertPolicyConditionsConditionAbsentTriggerToTerraform(struct?: MonitoringAlertPolicyConditionsConditionAbsentTriggerOutputReference | MonitoringAlertPolicyConditionsConditionAbsentTrigger): any; export declare function monitoringAlertPolicyConditionsConditionAbsentTriggerToHclTerraform(struct?: MonitoringAlertPolicyConditionsConditionAbsentTriggerOutputReference | MonitoringAlertPolicyConditionsConditionAbsentTrigger): any; export declare class MonitoringAlertPolicyConditionsConditionAbsentTriggerOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): MonitoringAlertPolicyConditionsConditionAbsentTrigger | undefined; set internalValue(value: MonitoringAlertPolicyConditionsConditionAbsentTrigger | undefined); private _count?; get count(): number; set count(value: number); resetCount(): void; get countInput(): number | undefined; private _percent?; get percent(): number; set percent(value: number); resetPercent(): void; get percentInput(): number | undefined; } export interface MonitoringAlertPolicyConditionsConditionAbsent { /** * The amount of time that a time series must * fail to report new data to be considered * failing. Currently, only values that are a * multiple of a minute--e.g. 60s, 120s, or 300s * --are supported. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#duration MonitoringAlertPolicy#duration} */ readonly duration: string; /** * 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. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#filter MonitoringAlertPolicy#filter} */ readonly filter?: string; /** * aggregations block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#aggregations MonitoringAlertPolicy#aggregations} */ readonly aggregations?: MonitoringAlertPolicyConditionsConditionAbsentAggregations[] | cdktf.IResolvable; /** * trigger block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#trigger MonitoringAlertPolicy#trigger} */ readonly trigger?: MonitoringAlertPolicyConditionsConditionAbsentTrigger; } export declare function monitoringAlertPolicyConditionsConditionAbsentToTerraform(struct?: MonitoringAlertPolicyConditionsConditionAbsentOutputReference | MonitoringAlertPolicyConditionsConditionAbsent): any; export declare function monitoringAlertPolicyConditionsConditionAbsentToHclTerraform(struct?: MonitoringAlertPolicyConditionsConditionAbsentOutputReference | MonitoringAlertPolicyConditionsConditionAbsent): any; export declare class MonitoringAlertPolicyConditionsConditionAbsentOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): MonitoringAlertPolicyConditionsConditionAbsent | undefined; set internalValue(value: MonitoringAlertPolicyConditionsConditionAbsent | undefined); private _duration?; get duration(): string; set duration(value: string); get durationInput(): string | undefined; private _filter?; get filter(): string; set filter(value: string); resetFilter(): void; get filterInput(): string | undefined; private _aggregations; get aggregations(): MonitoringAlertPolicyConditionsConditionAbsentAggregationsList; putAggregations(value: MonitoringAlertPolicyConditionsConditionAbsentAggregations[] | cdktf.IResolvable): void; resetAggregations(): void; get aggregationsInput(): cdktf.IResolvable | MonitoringAlertPolicyConditionsConditionAbsentAggregations[] | undefined; private _trigger; get trigger(): MonitoringAlertPolicyConditionsConditionAbsentTriggerOutputReference; putTrigger(value: MonitoringAlertPolicyConditionsConditionAbsentTrigger): void; resetTrigger(): void; get triggerInput(): MonitoringAlertPolicyConditionsConditionAbsentTrigger | undefined; } export interface MonitoringAlertPolicyConditionsConditionMatchedLog { /** * A logs-based filter. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#filter MonitoringAlertPolicy#filter} */ readonly filter: string; /** * A map from a label key to an extractor expression, which is used to * extract the value for this label key. Each entry in this map is * a specification for how data should be extracted from log entries that * match filter. Each combination of extracted values is treated as * a separate rule for the purposes of triggering notifications. * Label keys and corresponding values can be used in notifications * generated by this condition. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#label_extractors MonitoringAlertPolicy#label_extractors} */ readonly labelExtractors?: { [key: string]: string; }; } export declare function monitoringAlertPolicyConditionsConditionMatchedLogToTerraform(struct?: MonitoringAlertPolicyConditionsConditionMatchedLogOutputReference | MonitoringAlertPolicyConditionsConditionMatchedLog): any; export declare function monitoringAlertPolicyConditionsConditionMatchedLogToHclTerraform(struct?: MonitoringAlertPolicyConditionsConditionMatchedLogOutputReference | MonitoringAlertPolicyConditionsConditionMatchedLog): any; export declare class MonitoringAlertPolicyConditionsConditionMatchedLogOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): MonitoringAlertPolicyConditionsConditionMatchedLog | undefined; set internalValue(value: MonitoringAlertPolicyConditionsConditionMatchedLog | undefined); private _filter?; get filter(): string; set filter(value: string); get filterInput(): string | undefined; private _labelExtractors?; get labelExtractors(): { [key: string]: string; }; set labelExtractors(value: { [key: string]: string; }); resetLabelExtractors(): void; get labelExtractorsInput(): { [key: string]: string; } | undefined; } export interface MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguageTrigger { /** * The absolute number of time series * that must fail the predicate for the * condition to be triggered. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#count MonitoringAlertPolicy#count} */ readonly count?: number; /** * The percentage of time series that * must fail the predicate for the * condition to be triggered. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#percent MonitoringAlertPolicy#percent} */ readonly percent?: number; } export declare function monitoringAlertPolicyConditionsConditionMonitoringQueryLanguageTriggerToTerraform(struct?: MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguageTriggerOutputReference | MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguageTrigger): any; export declare function monitoringAlertPolicyConditionsConditionMonitoringQueryLanguageTriggerToHclTerraform(struct?: MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguageTriggerOutputReference | MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguageTrigger): any; export declare class MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguageTriggerOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguageTrigger | undefined; set internalValue(value: MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguageTrigger | undefined); private _count?; get count(): number; set count(value: number); resetCount(): void; get countInput(): number | undefined; private _percent?; get percent(): number; set percent(value: number); resetPercent(): void; get percentInput(): number | undefined; } export interface MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguage { /** * 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. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#duration MonitoringAlertPolicy#duration} */ readonly duration: string; /** * A condition control that determines how * metric-threshold conditions are evaluated when * data stops arriving. Possible values: ["EVALUATION_MISSING_DATA_INACTIVE", "EVALUATION_MISSING_DATA_ACTIVE", "EVALUATION_MISSING_DATA_NO_OP"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#evaluation_missing_data MonitoringAlertPolicy#evaluation_missing_data} */ readonly evaluationMissingData?: string; /** * Monitoring Query Language query that outputs a boolean stream. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#query MonitoringAlertPolicy#query} */ readonly query: string; /** * trigger block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#trigger MonitoringAlertPolicy#trigger} */ readonly trigger?: MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguageTrigger; } export declare function monitoringAlertPolicyConditionsConditionMonitoringQueryLanguageToTerraform(struct?: MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguageOutputReference | MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguage): any; export declare function monitoringAlertPolicyConditionsConditionMonitoringQueryLanguageToHclTerraform(struct?: MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguageOutputReference | MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguage): any; export declare class MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguageOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguage | undefined; set internalValue(value: MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguage | undefined); private _duration?; get duration(): string; set duration(value: string); get durationInput(): string | undefined; private _evaluationMissingData?; get evaluationMissingData(): string; set evaluationMissingData(value: string); resetEvaluationMissingData(): void; get evaluationMissingDataInput(): string | undefined; private _query?; get query(): string; set query(value: string); get queryInput(): string | undefined; private _trigger; get trigger(): MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguageTriggerOutputReference; putTrigger(value: MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguageTrigger): void; resetTrigger(): void; get triggerInput(): MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguageTrigger | undefined; } export interface MonitoringAlertPolicyConditionsConditionPrometheusQueryLanguage { /** * The alerting rule name of this alert in the corresponding Prometheus * configuration file. * * Some external tools may require this field to be populated correctly * in order to refer to the original Prometheus configuration file. * The rule group name and the alert name are necessary to update the * relevant AlertPolicies in case the definition of the rule group changes * in the future. * * This field is optional. If this field is not empty, then it must be a * valid Prometheus label name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#alert_rule MonitoringAlertPolicy#alert_rule} */ readonly alertRule?: string; /** * Whether to disable metric existence validation for this condition. * * This allows alerting policies to be defined on metrics that do not yet * exist, improving advanced customer workflows such as configuring * alerting policies using Terraform. * * Users with the 'monitoring.alertPolicyViewer' role are able to see the * name of the non-existent metric in the alerting policy condition. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#disable_metric_validation MonitoringAlertPolicy#disable_metric_validation} */ readonly disableMetricValidation?: boolean | cdktf.IResolvable; /** * Alerts are considered firing once their PromQL expression evaluated * to be "true" for this long. Alerts whose PromQL expression was not * evaluated to be "true" for long enough are considered pending. The * default value is zero. Must be zero or positive. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#duration MonitoringAlertPolicy#duration} */ readonly duration?: string; /** * How often this rule should be evaluated. Must be a positive multiple * of 30 seconds or missing. The default value is 30 seconds. If this * PrometheusQueryLanguageCondition was generated from a Prometheus * alerting rule, then this value should be taken from the enclosing * rule group. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#evaluation_interval MonitoringAlertPolicy#evaluation_interval} */ readonly evaluationInterval?: string; /** * Labels to add to or overwrite in the PromQL query result. Label names * must be valid. * * Label values can be templatized by using variables. The only available * variable names are the names of the labels in the PromQL result, including * "__name__" and "value". "labels" may be empty. This field is intended to be * used for organizing and identifying the AlertPolicy * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#labels MonitoringAlertPolicy#labels} */ readonly labels?: { [key: string]: string; }; /** * The PromQL expression to evaluate. Every evaluation cycle this * expression is evaluated at the current time, and all resultant time * series become pending/firing alerts. This field must not be empty. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#query MonitoringAlertPolicy#query} */ readonly query: string; /** * The rule group name of this alert in the corresponding Prometheus * configuration file. * * Some external tools may require this field to be populated correctly * in order to refer to the original Prometheus configuration file. * The rule group name and the alert name are necessary to update the * relevant AlertPolicies in case the definition of the rule group changes * in the future. This field is optional. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#rule_group MonitoringAlertPolicy#rule_group} */ readonly ruleGroup?: string; } export declare function monitoringAlertPolicyConditionsConditionPrometheusQueryLanguageToTerraform(struct?: MonitoringAlertPolicyConditionsConditionPrometheusQueryLanguageOutputReference | MonitoringAlertPolicyConditionsConditionPrometheusQueryLanguage): any; export declare function monitoringAlertPolicyConditionsConditionPrometheusQueryLanguageToHclTerraform(struct?: MonitoringAlertPolicyConditionsConditionPrometheusQueryLanguageOutputReference | MonitoringAlertPolicyConditionsConditionPrometheusQueryLanguage): any; export declare class MonitoringAlertPolicyConditionsConditionPrometheusQueryLanguageOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): MonitoringAlertPolicyConditionsConditionPrometheusQueryLanguage | undefined; set internalValue(value: MonitoringAlertPolicyConditionsConditionPrometheusQueryLanguage | undefined); private _alertRule?; get alertRule(): string; set alertRule(value: string); resetAlertRule(): void; get alertRuleInput(): string | undefined; private _disableMetricValidation?; get disableMetricValidation(): boolean | cdktf.IResolvable; set disableMetricValidation(value: boolean | cdktf.IResolvable); resetDisableMetricValidation(): void; get disableMetricValidationInput(): boolean | cdktf.IResolvable | undefined; private _duration?; get duration(): string; set duration(value: string); resetDuration(): void; get durationInput(): string | undefined; private _evaluationInterval?; get evaluationInterval(): string; set evaluationInterval(value: string); resetEvaluationInterval(): void; get evaluationIntervalInput(): string | undefined; private _labels?; get labels(): { [key: string]: string; }; set labels(value: { [key: string]: string; }); resetLabels(): void; get labelsInput(): { [key: string]: string; } | undefined; private _query?; get query(): string; set query(value: string); get queryInput(): string | undefined; private _ruleGroup?; get ruleGroup(): string; set ruleGroup(value: string); resetRuleGroup(): void; get ruleGroupInput(): string | undefined; } export interface MonitoringAlertPolicyConditionsConditionThresholdAggregations { /** * The alignment period for per-time * series alignment. If present, * alignmentPeriod must be at least * 60 seconds. After per-time series * alignment, each time series will * contain data points only on the * period boundaries. If * perSeriesAligner is not specified * or equals ALIGN_NONE, then this * field is ignored. If * perSeriesAligner is specified and * does not equal ALIGN_NONE, then * this field must be defined; * otherwise an error is returned. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#alignment_period MonitoringAlertPolicy#alignment_period} */ readonly alignmentPeriod?: string; /** * The approach to be used to combine * time series. Not all reducer * functions may be applied to all * time series, depending on the * metric type and the value type of * the original time series. * Reduction may change the metric * type of value type of the time * series.Time series data must be * aligned in order to perform cross- * time series reduction. If * crossSeriesReducer is specified, * then perSeriesAligner must be * specified and not equal ALIGN_NONE * and alignmentPeriod must be * specified; otherwise, an error is * returned. Possible values: ["REDUCE_NONE", "REDUCE_MEAN", "REDUCE_MIN", "REDUCE_MAX", "REDUCE_SUM", "REDUCE_STDDEV", "REDUCE_COUNT", "REDUCE_COUNT_TRUE", "REDUCE_COUNT_FALSE", "REDUCE_FRACTION_TRUE", "REDUCE_PERCENTILE_99", "REDUCE_PERCENTILE_95", "REDUCE_PERCENTILE_50", "REDUCE_PERCENTILE_05"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#cross_series_reducer MonitoringAlertPolicy#cross_series_reducer} */ readonly crossSeriesReducer?: string; /** * The set of fields to preserve when * crossSeriesReducer is specified. * The groupByFields determine how * the time series are partitioned * into subsets prior to applying the * aggregation function. Each subset * contains time series that have the * same value for each of the * grouping fields. Each individual * time series is a member of exactly * one subset. The crossSeriesReducer * is applied to each subset of time * series. It is not possible to * reduce across different resource * types, so this field implicitly * contains resource.type. Fields not * specified in groupByFields are * aggregated away. If groupByFields * is not specified and all the time * series have the same resource * type, then the time series are * aggregated into a single output * time series. If crossSeriesReducer * is not defined, this field is * ignored. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#group_by_fields MonitoringAlertPolicy#group_by_fields} */ readonly groupByFields?: string[]; /** * The approach to be used to align * individual time series. Not all * alignment functions may be applied * to all time series, depending on * the metric type and value type of * the original time series. * Alignment may change the metric * type or the value type of the time * series.Time series data must be * aligned in order to perform cross- * time series reduction. If * crossSeriesReducer is specified, * then perSeriesAligner must be * specified and not equal ALIGN_NONE * and alignmentPeriod must be * specified; otherwise, an error is * returned. Possible values: ["ALIGN_NONE", "ALIGN_DELTA", "ALIGN_RATE", "ALIGN_INTERPOLATE", "ALIGN_NEXT_OLDER", "ALIGN_MIN", "ALIGN_MAX", "ALIGN_MEAN", "ALIGN_COUNT", "ALIGN_SUM", "ALIGN_STDDEV", "ALIGN_COUNT_TRUE", "ALIGN_COUNT_FALSE", "ALIGN_FRACTION_TRUE", "ALIGN_PERCENTILE_99", "ALIGN_PERCENTILE_95", "ALIGN_PERCENTILE_50", "ALIGN_PERC