@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
918 lines • 94 kB
TypeScript
/**
* 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