@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
1,720 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_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 monitoringAlertPolicyConditionsConditionThresholdAggregationsToTerraform(struct?: MonitoringAlertPolicyConditionsConditionThresholdAggregations | cdktf.IResolvable): any;
export declare function monitoringAlertPolicyConditionsConditionThresholdAggregationsToHclTerraform(struct?: MonitoringAlertPolicyConditionsConditionThresholdAggregations | cdktf.IResolvable): any;
export declare class MonitoringAlertPolicyConditionsConditionThresholdAggregationsOutputReference 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(): MonitoringAlertPolicyConditionsConditionThresholdAggregations | cdktf.IResolvable | undefined;
set internalValue(value: MonitoringAlertPolicyConditionsConditionThresholdAggregations | 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 MonitoringAlertPolicyConditionsConditionThresholdAggregationsList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: MonitoringAlertPolicyConditionsConditionThresholdAggregations[] | 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): MonitoringAlertPolicyConditionsConditionThresholdAggregationsOutputReference;
}
export interface MonitoringAlertPolicyConditionsConditionThresholdDenominatorAggregations {
/**
* 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 monitoringAlertPolicyConditionsConditionThresholdDenominatorAggregationsToTerraform(struct?: MonitoringAlertPolicyConditionsConditionThresholdDenominatorAggregations | cdktf.IResolvable): any;
export declare function monitoringAlertPolicyConditionsConditionThresholdDenominatorAggregationsToHclTerraform(struct?: MonitoringAlertPolicyConditionsConditionThresholdDenominatorAggregations | cdktf.IResolvable): any;
export declare class MonitoringAlertPolicyConditionsConditionThresholdDenominatorAggregationsOutputReference 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(): MonitoringAlertPolicyConditionsConditionThresholdDenominatorAggregations | cdktf.IResolvable | undefined;
set internalValue(value: MonitoringAlertPolicyConditionsConditionThresholdDenominatorAggregations | 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 MonitoringAlertPolicyConditionsConditionThresholdDenominatorAggregationsList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: MonitoringAlertPolicyConditionsConditionThresholdDenominatorAggregations[] | 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): MonitoringAlertPolicyConditionsConditionThresholdDenominatorAggregationsOutputReference;
}
export interface MonitoringAlertPolicyConditionsConditionThresholdForecastOptions {
/**
* The length of time into the future to forecast
* whether a timeseries will violate the threshold.
* If the predicted value is found to violate the
* threshold, and the violation is observed in all
* forecasts made for the Configured 'duration',
* then the timeseries is considered to be failing.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#forecast_horizon MonitoringAlertPolicy#forecast_horizon}
*/
readonly forecastHorizon: string;
}
export declare function monitoringAlertPolicyConditionsConditionThresholdForecastOptionsToTerraform(struct?: MonitoringAlertPolicyConditionsConditionThresholdForecastOptionsOutputReference | MonitoringAlertPolicyConditionsConditionThresholdForecastOptions): any;
export declare function monitoringAlertPolicyConditionsConditionThresholdForecastOptionsToHclTerraform(struct?: MonitoringAlertPolicyConditionsConditionThresholdForecastOptionsOutputReference | MonitoringAlertPolicyConditionsConditionThresholdForecastOptions): any;
export declare class MonitoringAlertPolicyConditionsConditionThresholdForecastOptionsOutputReference 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(): MonitoringAlertPolicyConditionsConditionThresholdForecastOptions | undefined;
set internalValue(value: MonitoringAlertPolicyConditionsConditionThresholdForecastOptions | undefined);
private _forecastHorizon?;
get forecastHorizon(): string;
set forecastHorizon(value: string);
get forecastHorizonInput(): string | undefined;
}
export interface MonitoringAlertPolicyConditionsConditionThresholdTrigger {
/**
* 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 monitoringAlertPolicyConditionsConditionThresholdTriggerToTerraform(struct?: MonitoringAlertPolicyConditionsConditionThresholdTriggerOutputReference | MonitoringAlertPolicyConditionsConditionThresholdTrigger): any;
export declare function monitoringAlertPolicyConditionsConditionThresholdTriggerToHclTerraform(struct?: MonitoringAlertPolicyConditionsConditionThresholdTriggerOutputReference | MonitoringAlertPolicyConditionsConditionThresholdTrigger): any;
export declare class MonitoringAlertPolicyConditionsConditionThresholdTriggerOutputReference 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(): MonitoringAlertPolicyConditionsConditionThresholdTrigger | undefined;
set internalValue(value: MonitoringAlertPolicyConditionsConditionThresholdTrigger | 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 MonitoringAlertPolicyConditionsConditionThreshold {
/**
* The comparison to apply between the time
* series (indicated by filter and aggregation)
* and the threshold (indicated by
* threshold_value). The comparison is applied
* on each time series, with the time series on
* the left-hand side and the threshold on the
* right-hand side. Only COMPARISON_LT and
* COMPARISON_GT are supported currently. Possible values: ["COMPARISON_GT", "COMPARISON_GE", "COMPARISON_LT", "COMPARISON_LE", "COMPARISON_EQ", "COMPARISON_NE"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#comparison MonitoringAlertPolicy#comparison}
*/
readonly comparison: string;
/**
* A filter that identifies a time series that
* should be used as the denominator of a ratio
* that will be compared with the threshold. If
* a denominator_filter is specified, the time
* series specified by the filter field will be
* used as the numerator.The filter is similar
* to the one that is specified in the
* MetricService.ListTimeSeries request (that
* call is useful to verify the time series
* that will be retrieved / processed) and must
* specify the metric type and optionally may
* contain restrictions on resource type,
* resource labels, and metric labels. This
* field may not exceed 2048 Unicode characters
* in length.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#denominator_filter MonitoringAlertPolicy#denominator_filter}
*/
readonly denominatorFilter?: string;
/**
* 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;
/**
* 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;
/**
* A value against which to compare the time
* series.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#threshold_value MonitoringAlertPolicy#threshold_value}
*/
readonly thresholdValue?: number;
/**
* 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?: MonitoringAlertPolicyConditionsConditionThresholdAggregations[] | cdktf.IResolvable;
/**
* denominator_aggregations block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#denominator_aggregations MonitoringAlertPolicy#denominator_aggregations}
*/
readonly denominatorAggregations?: MonitoringAlertPolicyConditionsConditionThresholdDenominatorAggregations[] | cdktf.IResolvable;
/**
* forecast_options block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#forecast_options MonitoringAlertPolicy#forecast_options}
*/
readonly forecastOptions?: MonitoringAlertPolicyConditionsConditionThresholdForecastOptions;
/**
* 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?: MonitoringAlertPolicyConditionsConditionThresholdTrigger;
}
export declare function monitoringAlertPolicyConditionsConditionThresholdToTerraform(struct?: MonitoringAlertPolicyConditionsConditionThresholdOutputReference | MonitoringAlertPolicyConditionsConditionThreshold): any;
export declare function monitoringAlertPolicyConditionsConditionThresholdToHclTerraform(struct?: MonitoringAlertPolicyConditionsConditionThresholdOutputReference | MonitoringAlertPolicyConditionsConditionThreshold): any;
export declare class MonitoringAlertPolicyConditionsConditionThresholdOutputReference 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(): MonitoringAlertPolicyConditionsConditionThreshold | undefined;
set internalValue(value: MonitoringAlertPolicyConditionsConditionThreshold | undefined);
private _comparison?;
get comparison(): string;
set comparison(value: string);
get comparisonInput(): string | undefined;
private _denominatorFilter?;
get denominatorFilter(): string;
set denominatorFilter(value: string);
resetDenominatorFilter(): void;
get denominatorFilterInput(): string | 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 _filter?;
get filter(): string;
set filter(value: string);
resetFilter(): void;
get filterInput(): string | undefined;
private _thresholdValue?;
get thresholdValue(): number;
set thresholdValue(value: number);
resetThresholdValue(): void;
get thresholdValueInput(): number | undefined;
private _aggregations;
get aggregations(): MonitoringAlertPolicyConditionsConditionThresholdAggregationsList;
putAggregations(value: MonitoringAlertPolicyConditionsConditionThresholdAggregations[] | cdktf.IResolvable): void;
resetAggregations(): void;
get aggregationsInput(): cdktf.IResolvable | MonitoringAlertPolicyConditionsConditionThresholdAggregations[] | undefined;
private _denominatorAggregations;
get denominatorAggregations(): MonitoringAlertPolicyConditionsConditionThresholdDenominatorAggregationsList;
putDenominatorAggregations(value: MonitoringAlertPolicyConditionsConditionThresholdDenominatorAggregations[] | cdktf.IResolvable): void;
resetDenominatorAggregations(): void;
get denominatorAggregationsInput(): cdktf.IResolvable | MonitoringAlertPolicyConditionsConditionThresholdDenominatorAggregations[] | undefined;
private _forecastOptions;
get forecastOptions(): MonitoringAlertPolicyConditionsConditionThresholdForecastOptionsOutputReference;
putForecastOptions(value: MonitoringAlertPolicyConditionsConditionThresholdForecastOptions): void;
resetForecastOptions(): void;
get forecastOptionsInput(): MonitoringAlertPolicyConditionsConditionThresholdForecastOptions | undefined;
private _trigger;
get trigger(): MonitoringAlertPolicyConditionsConditionThresholdTriggerOutputReference;
putTrigger(value: MonitoringAlertPolicyConditionsConditionThresholdTrigger): void;
resetTrigger(): void;
get triggerInput(): MonitoringAlertPolicyConditionsConditionThresholdTrigger | undefined;
}
export interface MonitoringAlertPolicyConditions {
/**
* A short name or phrase used to identify the
* condition in dashboards, notifications, and
* incidents. To avoid confusion, don't use the same
* display name for multiple conditions in the same
* policy.
*
* 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;
/**
* condition_absent block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#condition_absent MonitoringAlertPolicy#condition_absent}
*/
readonly conditionAbsent?: MonitoringAlertPolicyConditionsConditionAbsent;
/**
* condition_matched_log block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#condition_matched_log MonitoringAlertPolicy#condition_matched_log}
*/
readonly conditionMatchedLog?: MonitoringAlertPolicyConditionsConditionMatchedLog;
/**
* condition_monitoring_query_language block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#condition_monitoring_query_language MonitoringAlertPolicy#condition_monitoring_query_language}
*/
readonly conditionMonitoringQueryLanguage?: MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguage;
/**
* condition_prometheus_query_language block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#condition_prometheus_query_language MonitoringAlertPolicy#condition_prometheus_query_language}
*/
readonly conditionPrometheusQueryLanguage?: MonitoringAlertPolicyConditionsConditionPrometheusQueryLanguage;
/**
* condition_threshold block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#condition_threshold MonitoringAlertPolicy#condition_threshold}
*/
readonly conditionThreshold?: MonitoringAlertPolicyConditionsConditionThreshold;
}
export declare function monitoringAlertPolicyConditionsToTerraform(struct?: MonitoringAlertPolicyConditions | cdktf.IResolvable): any;
export declare function monitoringAlertPolicyConditionsToHclTerraform(struct?: MonitoringAlertPolicyConditions | cdktf.IResolvable): any;
export declare class MonitoringAlertPolicyConditionsOutputReference 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(): MonitoringAlertPolicyConditions | cdktf.IResolvable | undefined;
set internalValue(value: MonitoringAlertPolicyConditions | cdktf.IResolvable | undefined);
private _displayName?;
get displayName(): string;
set displayName(value: string);
get displayNameInput(): string | undefined;
get name(): string;
private _conditionAbsent;
get conditionAbsent(): MonitoringAlertPolicyConditionsConditionAbsentOutputReference;
putConditionAbsent(value: MonitoringAlertPolicyConditionsConditionAbsent): void;
resetConditionAbsent(): void;
get conditionAbsentInput(): MonitoringAlertPolicyConditionsConditionAbsent | undefined;
private _conditionMatchedLog;
get conditionMatchedLog(): MonitoringAlertPolicyConditionsConditionMatchedLogOutputReference;
putConditionMatchedLog(value: MonitoringAlertPolicyConditionsConditionMatchedLog): void;
resetConditionMatchedLog(): void;
get conditionMatchedLogInput(): MonitoringAlertPolicyConditionsConditionMatchedLog | undefined;
private _conditionMonitoringQueryLanguage;
get conditionMonitoringQueryLanguage(): MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguageOutputReference;
putConditionMonitoringQueryLanguage(value: MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguage): void;
resetConditionMonitoringQueryLanguage(): void;
get conditionMonitoringQueryLanguageInput(): MonitoringAlertPolicyConditionsConditionMonitoringQueryLanguage | undefined;
private _conditionPrometheusQueryLanguage;
get conditionPrometheusQueryLanguage(): MonitoringAlertPolicyConditionsConditionPrometheusQueryLanguageOutputReference;
putConditionPrometheusQueryLanguage(value: MonitoringAlertPolicyConditionsConditionPrometheusQueryLanguage): void;
resetConditionPrometheusQueryLanguage(): void;
get conditionPrometheusQueryLanguageInput(): MonitoringAlertPolicyConditionsConditionPrometheusQueryLanguage | undefined;
private _conditionThreshold;
get conditionThreshold(): MonitoringAlertPolicyConditionsConditionThresholdOutputReference;
putConditionThreshold(value: MonitoringAlertPolicyConditionsConditionThreshold): void;
resetConditionThreshold(): void;
get conditionThresholdInput(): MonitoringAlertPolicyConditionsConditionThreshold | undefined;
}
export declare class MonitoringAlertPolicyConditionsList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: MonitoringAlertPolicyConditions[] | 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): MonitoringAlertPolicyConditionsOutputReference;
}
export interface MonitoringAlertPolicyDocumentationLinks {
/**
* A short display name for the link. The display name must not be empty or exceed 63 characters. Example: "playbook".
*
* 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;
/**
* The url of a webpage. A url can be templatized by using variables in the path or the query parameters. The total length of a URL should not exceed 2083 characters before and after variable expansion. Example: "https://my_domain.com/playbook?name=${resource.name}".
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#url MonitoringAlertPolicy#url}
*/
readonly url?: string;
}
export declare function monitoringAlertPolicyDocumentationLinksToTerraform(struct?: MonitoringAlertPolicyDocumentationLinks | cdktf.IResolvable): any;
export declare function monitoringAlertPolicyDocumentationLinksToHclTerraform(struct?: MonitoringAlertPolicyDocumentationLinks | cdktf.IResolvable): any;
export declare class MonitoringAlertPolicyDocumentationLinksOutputReference 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(): MonitoringAlertPolicyDocumentationLinks | cdktf.IResolvable | undefined;
set internalValue(value: MonitoringAlertPolicyDocumentationLinks | cdktf.IResolvable | undefined);
private _displayName?;
get displayName(): string;
set displayName(value: string);
resetDisplayName(): void;
get displayNameInput(): string | undefined;
private _url?;
get url(): string;
set url(value: string);
resetUrl(): void;
get urlInput(): string | undefined;
}
export declare class MonitoringAlertPolicyDocumentationLinksList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: MonitoringAlertPolicyDocumentationLinks[] | 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): MonitoringAlertPolicyDocumentationLinksOutputReference;
}
export interface MonitoringAlertPolicyDocumentation {
/**
* The text of the documentation, interpreted according to mimeType.
* The content may not exceed 8,192 Unicode characters and may not
* exceed more than 10,240 bytes when encoded in UTF-8 format,
* whichever is smaller.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#content MonitoringAlertPolicy#content}
*/
readonly content?: string;
/**
* The format of the content field. Presently, only the value
* "text/markdown" is supported.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#mime_type MonitoringAlertPolicy#mime_type}
*/
readonly mimeType?: string;
/**
* The subject line of the notification. The subject line may not
* exceed 10,240 bytes. In notifications generated by this policy the contents
* of the subject line after variable expansion will be truncated to 255 bytes
* or shorter at the latest UTF-8 character boundary.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#subject MonitoringAlertPolicy#subject}
*/
readonly subject?: string;
/**
* links block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#links MonitoringAlertPolicy#links}
*/
readonly links?: MonitoringAlertPolicyDocumentationLinks[] | cdktf.IResolvable;
}
export declare function monitoringAlertPolicyDocumentationToTerraform(struct?: MonitoringAlertPolicyDocumentationOutputReference | MonitoringAlertPolicyDocumentation): any;
export declare function monitoringAlertPolicyDocumentationToHclTerraform(struct?: MonitoringAlertPolicyDocumentationOutputReference | MonitoringAlertPolicyDocumentation): any;
export declare class MonitoringAlertPolicyDocumentationOutputReference 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(): MonitoringAlertPolicyDocumentation | undefined;
set internalValue(value: MonitoringAlertPolicyDocumentation | undefined);
private _content?;
get content(): string;
set content(value: string);
resetContent(): void;
get contentInput(): string | undefined;
private _mimeType?;
get mimeType(): string;
set mimeType(value: string);
resetMimeType(): void;
get mimeTypeInput(): string | undefined;
private _subject?;
get subject(): string;
set subject(value: string);
resetSubject(): void;
get subjectInput(): string | undefined;
private _links;
get links(): MonitoringAlertPolicyDocumentationLinksList;
putLinks(value: MonitoringAlertPolicyDocumentationLinks[] | cdktf.IResolvable): void;
resetLinks(): void;
get linksInput(): cdktf.IResolvable | MonitoringAlertPolicyDocumentationLinks[] | undefined;
}
export interface MonitoringAlertPolicyTimeouts {
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#create MonitoringAlertPolicy#create}
*/
readonly create?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#delete MonitoringAlertPolicy#delete}
*/
readonly delete?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#update MonitoringAlertPolicy#update}
*/
readonly update?: string;
}
export declare function monitoringAlertPolicyTimeoutsToTerraform(struct?: MonitoringAlertPolicyTimeouts | cdktf.IResolvable): any;
export declare function monitoringAlertPolicyTimeoutsToHclTerraform(struct?: MonitoringAlertPolicyTimeouts | cdktf.IResolvable): any;
export declare class MonitoringAlertPolicyTimeoutsOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
private resolvableValue?;
/**
* @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(): MonitoringAlertPolicyTimeouts | cdktf.IResolvable | undefined;
set internalValue(value: MonitoringAlertPolicyTimeouts | cdktf.IResolvable | undefined);
private _create?;
get create(): string;
set create(value: string);
resetCreate(): void;
get createInput(): string | undefined;
private _delete?;
get delete(): string;
set delete(value: string);
resetDelete(): void;
get deleteInput(): string | undefined;
private _update?;
get update(): string;
set update(value: string);
resetUpdate(): void;
get updateInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy google_monitoring_alert_policy}
*/
export declare class MonitoringAlertPolicy extends cdktf.TerraformResource {
static readonly tfResourceType = "google_monitoring_alert_policy";
/**
* Generates CDKTF code for importing a MonitoringAlertPolicy resource upon running "cdktf plan <stack-name>"
* @param scope The scope in which to define this construct
* @param importToId The construct id used in the generated config for the MonitoringAlertPolicy to import
* @param importFromId The id of the existing MonitoringAlertPolicy that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the MonitoringAlertPolicy to import is found
*/
static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
/**
* Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/monitoring_alert_policy google_monitoring_alert_policy} Resource
*
* @param scope The scope in which to define this construct
* @param id The scoped construct ID. Must be unique amongst siblings in the same scope
* @param options MonitoringAlertPolicyConfig
*/
constructor(scope: Construct, id: string, config: MonitoringAlertPolicyConfig);
private _combiner?;
get combiner(): string;
set combiner(value: string);
get combinerInput(): string | undefined;
private _creationRecord;
get creationRecord(): MonitoringAlertPolicyCreationRecordList;
private _displayName?;
get displayName(): string;
set displayName(value: string);
get displayNameInput(): string | undefined;
private _enabled?;
get enabled(): boolean | cdktf.IResolvable;
set enabled(value: boolean | cdktf.IResolvable);
resetEnabled(): void;
get enabledInput(): boolean | cdktf.IResolvable | undefined;
private _id?;
get id(): string;
set id(value: string);
resetId(): void;
get idInput(): string | undefined;
get name(): string;
private _notificationChannels?;
get notificationChannels(): string[];
set notificationChannels(value: string[]);
resetNotificationChannels(): void;
get notificationChannelsInput(): string[] | undefined;
private _project?;
get project(): string;
set project(value: string);
resetProject(): void;
get projectInput(): string | undefined;
private _severity?;
get severity(): string;
set severity(value: string);
resetSeverity(): void;
get severityInput(): string | undefined;
private _userLabels?;
get userLabels(): {
[key: string]: string;
};
set userLabels(value: {
[key: string]: string;
});
resetUserLabels(): void;
get userLabelsInput(): {
[key: string]: string;
} | undefined;
private _alertStrategy;
get alertStrategy(): MonitoringAlertPolicyAlertStrategyOutputReference;
putAlertStrategy(value: MonitoringAlertPolicyAlertStrategy): void;
resetAlertStrategy(): void;
get alertStrategyInput(): MonitoringAlertPolicyAlertStrategy | undefined;
private _conditions;
get conditions(): MonitoringAlertPolicyConditionsList;
putConditions(value: MonitoringAlertPolicyConditions[] | cdktf.IResolvable): void;
get conditionsInput(): cdktf.IResolvable | MonitoringAlertPolicyConditions[] | undefined;
private _documentation;
get documentation(): MonitoringAlertPolicyDocumentationOutputReference;
putDocumentation(value: MonitoringAlertPolicyDocumentation): void;
resetDocumentation(): void;
get documentationInput(): MonitoringAlertPolicyDocumentation | undefined;
private _timeouts;
get timeouts(): MonitoringAlertPolicyTimeoutsOutputReference;
putTimeouts(value: MonitoringAlertPolicyTimeouts): void;
resetTimeouts(): void;
get timeoutsInput(): cdktf.IResolvable | MonitoringAlertPolicyTimeouts | undefined;
protected synthesizeAttributes(): {
[name: string]: any;
};
protected synthesizeHclAttributes(): {
[name: string]: any;
};
}