Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.alicloud.cms.AlarmArgs Maven / Gradle / Ivy
Go to download
A Pulumi package for creating and managing AliCloud resources.
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.alicloud.cms;
import com.pulumi.alicloud.cms.inputs.AlarmEscalationsCriticalArgs;
import com.pulumi.alicloud.cms.inputs.AlarmEscalationsInfoArgs;
import com.pulumi.alicloud.cms.inputs.AlarmEscalationsWarnArgs;
import com.pulumi.alicloud.cms.inputs.AlarmPrometheusArgs;
import com.pulumi.alicloud.cms.inputs.AlarmTargetArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.Object;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class AlarmArgs extends com.pulumi.resources.ResourceArgs {
public static final AlarmArgs Empty = new AlarmArgs();
/**
* List contact groups of the alarm rule, which must have been created on the console.
*
*/
@Import(name="contactGroups", required=true)
private Output> contactGroups;
/**
* @return List contact groups of the alarm rule, which must have been created on the console.
*
*/
public Output> contactGroups() {
return this.contactGroups;
}
/**
* Field `dimensions` has been deprecated from provider version 1.173.0. New field `metric_dimensions` instead.
*
* @deprecated
* Field `dimensions` has been deprecated from provider version 1.173.0. New field `metric_dimensions` instead.
*
*/
@Deprecated /* Field `dimensions` has been deprecated from provider version 1.173.0. New field `metric_dimensions` instead. */
@Import(name="dimensions")
private @Nullable Output> dimensions;
/**
* @return Field `dimensions` has been deprecated from provider version 1.173.0. New field `metric_dimensions` instead.
*
* @deprecated
* Field `dimensions` has been deprecated from provider version 1.173.0. New field `metric_dimensions` instead.
*
*/
@Deprecated /* Field `dimensions` has been deprecated from provider version 1.173.0. New field `metric_dimensions` instead. */
public Optional>> dimensions() {
return Optional.ofNullable(this.dimensions);
}
/**
* The interval of effecting alarm rule. It format as "hh:mm-hh:mm", like "0:00-4:00". Default to "00:00-23:59".
*
*/
@Import(name="effectiveInterval")
private @Nullable Output effectiveInterval;
/**
* @return The interval of effecting alarm rule. It format as "hh:mm-hh:mm", like "0:00-4:00". Default to "00:00-23:59".
*
*/
public Optional> effectiveInterval() {
return Optional.ofNullable(this.effectiveInterval);
}
/**
* Whether to enable alarm rule. Default value: `true`.
*
*/
@Import(name="enabled")
private @Nullable Output enabled;
/**
* @return Whether to enable alarm rule. Default value: `true`.
*
*/
public Optional> enabled() {
return Optional.ofNullable(this.enabled);
}
/**
* Field `end_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead.
*
* @deprecated
* Field `end_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead.
*
*/
@Deprecated /* Field `end_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead. */
@Import(name="endTime")
private @Nullable Output endTime;
/**
* @return Field `end_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead.
*
* @deprecated
* Field `end_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead.
*
*/
@Deprecated /* Field `end_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead. */
public Optional> endTime() {
return Optional.ofNullable(this.endTime);
}
/**
* A configuration of critical alarm. See `escalations_critical` below.
*
*/
@Import(name="escalationsCritical")
private @Nullable Output escalationsCritical;
/**
* @return A configuration of critical alarm. See `escalations_critical` below.
*
*/
public Optional> escalationsCritical() {
return Optional.ofNullable(this.escalationsCritical);
}
/**
* A configuration of critical info. See `escalations_info` below.
*
*/
@Import(name="escalationsInfo")
private @Nullable Output escalationsInfo;
/**
* @return A configuration of critical info. See `escalations_info` below.
*
*/
public Optional> escalationsInfo() {
return Optional.ofNullable(this.escalationsInfo);
}
/**
* A configuration of critical warn. See `escalations_warn` below.
*
*/
@Import(name="escalationsWarn")
private @Nullable Output escalationsWarn;
/**
* @return A configuration of critical warn. See `escalations_warn` below.
*
*/
public Optional> escalationsWarn() {
return Optional.ofNullable(this.escalationsWarn);
}
/**
* The name of the metric, such as `CPUUtilization` and `networkin_rate`. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).
*
*/
@Import(name="metric", required=true)
private Output metric;
/**
* @return The name of the metric, such as `CPUUtilization` and `networkin_rate`. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).
*
*/
public Output metric() {
return this.metric;
}
/**
* Map of the resources associated with the alarm rule, such as "instanceId", "device" and "port". Each key's value is a string, and it uses comma to split multiple items. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).
*
*/
@Import(name="metricDimensions")
private @Nullable Output metricDimensions;
/**
* @return Map of the resources associated with the alarm rule, such as "instanceId", "device" and "port". Each key's value is a string, and it uses comma to split multiple items. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).
*
*/
public Optional> metricDimensions() {
return Optional.ofNullable(this.metricDimensions);
}
/**
* The name of the alert rule.
*
*/
@Import(name="name")
private @Nullable Output name;
/**
* @return The name of the alert rule.
*
*/
public Optional> name() {
return Optional.ofNullable(this.name);
}
/**
* Index query cycle, which must be consistent with that defined for metrics. Default to 300, in seconds.
*
*/
@Import(name="period")
private @Nullable Output period;
/**
* @return Index query cycle, which must be consistent with that defined for metrics. Default to 300, in seconds.
*
*/
public Optional> period() {
return Optional.ofNullable(this.period);
}
/**
* The namespace of the cloud service, such as `acs_ecs_dashboard` and `acs_rds_dashboard`. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).
* **NOTE:** The `dimensions` and `metric_dimensions` must be empty when `project` is `acs_prometheus`, otherwise, one of them must be set.
*
*/
@Import(name="project", required=true)
private Output project;
/**
* @return The namespace of the cloud service, such as `acs_ecs_dashboard` and `acs_rds_dashboard`. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).
* **NOTE:** The `dimensions` and `metric_dimensions` must be empty when `project` is `acs_prometheus`, otherwise, one of them must be set.
*
*/
public Output project() {
return this.project;
}
/**
* The Prometheus alert rule. See `prometheus` below. **Note:** This parameter is required only when you create a Prometheus alert rule for Hybrid Cloud Monitoring.
*
*/
@Import(name="prometheuses")
private @Nullable Output> prometheuses;
/**
* @return The Prometheus alert rule. See `prometheus` below. **Note:** This parameter is required only when you create a Prometheus alert rule for Hybrid Cloud Monitoring.
*
*/
public Optional>> prometheuses() {
return Optional.ofNullable(this.prometheuses);
}
/**
* Notification silence period in the alarm state, in seconds. Default value: `86400`. Valid value range: [300, 86400].
*
*/
@Import(name="silenceTime")
private @Nullable Output silenceTime;
/**
* @return Notification silence period in the alarm state, in seconds. Default value: `86400`. Valid value range: [300, 86400].
*
*/
public Optional> silenceTime() {
return Optional.ofNullable(this.silenceTime);
}
/**
* Field `start_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead.
*
* @deprecated
* Field `start_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead.
*
*/
@Deprecated /* Field `start_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead. */
@Import(name="startTime")
private @Nullable Output startTime;
/**
* @return Field `start_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead.
*
* @deprecated
* Field `start_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead.
*
*/
@Deprecated /* Field `start_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead. */
public Optional> startTime() {
return Optional.ofNullable(this.startTime);
}
/**
* A mapping of tags to assign to the resource.
*
*/
@Import(name="tags")
private @Nullable Output> tags;
/**
* @return A mapping of tags to assign to the resource.
*
*/
public Optional>> tags() {
return Optional.ofNullable(this.tags);
}
/**
* The information about the resource for which alerts are triggered. See `targets` below.
*
*/
@Import(name="targets")
private @Nullable Output> targets;
/**
* @return The information about the resource for which alerts are triggered. See `targets` below.
*
*/
public Optional>> targets() {
return Optional.ofNullable(this.targets);
}
/**
* The webhook that should be called when the alarm is triggered. Currently, only http protocol is supported. Default is empty string.
*
*/
@Import(name="webhook")
private @Nullable Output webhook;
/**
* @return The webhook that should be called when the alarm is triggered. Currently, only http protocol is supported. Default is empty string.
*
*/
public Optional> webhook() {
return Optional.ofNullable(this.webhook);
}
private AlarmArgs() {}
private AlarmArgs(AlarmArgs $) {
this.contactGroups = $.contactGroups;
this.dimensions = $.dimensions;
this.effectiveInterval = $.effectiveInterval;
this.enabled = $.enabled;
this.endTime = $.endTime;
this.escalationsCritical = $.escalationsCritical;
this.escalationsInfo = $.escalationsInfo;
this.escalationsWarn = $.escalationsWarn;
this.metric = $.metric;
this.metricDimensions = $.metricDimensions;
this.name = $.name;
this.period = $.period;
this.project = $.project;
this.prometheuses = $.prometheuses;
this.silenceTime = $.silenceTime;
this.startTime = $.startTime;
this.tags = $.tags;
this.targets = $.targets;
this.webhook = $.webhook;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(AlarmArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private AlarmArgs $;
public Builder() {
$ = new AlarmArgs();
}
public Builder(AlarmArgs defaults) {
$ = new AlarmArgs(Objects.requireNonNull(defaults));
}
/**
* @param contactGroups List contact groups of the alarm rule, which must have been created on the console.
*
* @return builder
*
*/
public Builder contactGroups(Output> contactGroups) {
$.contactGroups = contactGroups;
return this;
}
/**
* @param contactGroups List contact groups of the alarm rule, which must have been created on the console.
*
* @return builder
*
*/
public Builder contactGroups(List contactGroups) {
return contactGroups(Output.of(contactGroups));
}
/**
* @param contactGroups List contact groups of the alarm rule, which must have been created on the console.
*
* @return builder
*
*/
public Builder contactGroups(String... contactGroups) {
return contactGroups(List.of(contactGroups));
}
/**
* @param dimensions Field `dimensions` has been deprecated from provider version 1.173.0. New field `metric_dimensions` instead.
*
* @return builder
*
* @deprecated
* Field `dimensions` has been deprecated from provider version 1.173.0. New field `metric_dimensions` instead.
*
*/
@Deprecated /* Field `dimensions` has been deprecated from provider version 1.173.0. New field `metric_dimensions` instead. */
public Builder dimensions(@Nullable Output> dimensions) {
$.dimensions = dimensions;
return this;
}
/**
* @param dimensions Field `dimensions` has been deprecated from provider version 1.173.0. New field `metric_dimensions` instead.
*
* @return builder
*
* @deprecated
* Field `dimensions` has been deprecated from provider version 1.173.0. New field `metric_dimensions` instead.
*
*/
@Deprecated /* Field `dimensions` has been deprecated from provider version 1.173.0. New field `metric_dimensions` instead. */
public Builder dimensions(Map dimensions) {
return dimensions(Output.of(dimensions));
}
/**
* @param effectiveInterval The interval of effecting alarm rule. It format as "hh:mm-hh:mm", like "0:00-4:00". Default to "00:00-23:59".
*
* @return builder
*
*/
public Builder effectiveInterval(@Nullable Output effectiveInterval) {
$.effectiveInterval = effectiveInterval;
return this;
}
/**
* @param effectiveInterval The interval of effecting alarm rule. It format as "hh:mm-hh:mm", like "0:00-4:00". Default to "00:00-23:59".
*
* @return builder
*
*/
public Builder effectiveInterval(String effectiveInterval) {
return effectiveInterval(Output.of(effectiveInterval));
}
/**
* @param enabled Whether to enable alarm rule. Default value: `true`.
*
* @return builder
*
*/
public Builder enabled(@Nullable Output enabled) {
$.enabled = enabled;
return this;
}
/**
* @param enabled Whether to enable alarm rule. Default value: `true`.
*
* @return builder
*
*/
public Builder enabled(Boolean enabled) {
return enabled(Output.of(enabled));
}
/**
* @param endTime Field `end_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead.
*
* @return builder
*
* @deprecated
* Field `end_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead.
*
*/
@Deprecated /* Field `end_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead. */
public Builder endTime(@Nullable Output endTime) {
$.endTime = endTime;
return this;
}
/**
* @param endTime Field `end_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead.
*
* @return builder
*
* @deprecated
* Field `end_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead.
*
*/
@Deprecated /* Field `end_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead. */
public Builder endTime(Integer endTime) {
return endTime(Output.of(endTime));
}
/**
* @param escalationsCritical A configuration of critical alarm. See `escalations_critical` below.
*
* @return builder
*
*/
public Builder escalationsCritical(@Nullable Output escalationsCritical) {
$.escalationsCritical = escalationsCritical;
return this;
}
/**
* @param escalationsCritical A configuration of critical alarm. See `escalations_critical` below.
*
* @return builder
*
*/
public Builder escalationsCritical(AlarmEscalationsCriticalArgs escalationsCritical) {
return escalationsCritical(Output.of(escalationsCritical));
}
/**
* @param escalationsInfo A configuration of critical info. See `escalations_info` below.
*
* @return builder
*
*/
public Builder escalationsInfo(@Nullable Output escalationsInfo) {
$.escalationsInfo = escalationsInfo;
return this;
}
/**
* @param escalationsInfo A configuration of critical info. See `escalations_info` below.
*
* @return builder
*
*/
public Builder escalationsInfo(AlarmEscalationsInfoArgs escalationsInfo) {
return escalationsInfo(Output.of(escalationsInfo));
}
/**
* @param escalationsWarn A configuration of critical warn. See `escalations_warn` below.
*
* @return builder
*
*/
public Builder escalationsWarn(@Nullable Output escalationsWarn) {
$.escalationsWarn = escalationsWarn;
return this;
}
/**
* @param escalationsWarn A configuration of critical warn. See `escalations_warn` below.
*
* @return builder
*
*/
public Builder escalationsWarn(AlarmEscalationsWarnArgs escalationsWarn) {
return escalationsWarn(Output.of(escalationsWarn));
}
/**
* @param metric The name of the metric, such as `CPUUtilization` and `networkin_rate`. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).
*
* @return builder
*
*/
public Builder metric(Output metric) {
$.metric = metric;
return this;
}
/**
* @param metric The name of the metric, such as `CPUUtilization` and `networkin_rate`. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).
*
* @return builder
*
*/
public Builder metric(String metric) {
return metric(Output.of(metric));
}
/**
* @param metricDimensions Map of the resources associated with the alarm rule, such as "instanceId", "device" and "port". Each key's value is a string, and it uses comma to split multiple items. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).
*
* @return builder
*
*/
public Builder metricDimensions(@Nullable Output metricDimensions) {
$.metricDimensions = metricDimensions;
return this;
}
/**
* @param metricDimensions Map of the resources associated with the alarm rule, such as "instanceId", "device" and "port". Each key's value is a string, and it uses comma to split multiple items. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).
*
* @return builder
*
*/
public Builder metricDimensions(String metricDimensions) {
return metricDimensions(Output.of(metricDimensions));
}
/**
* @param name The name of the alert rule.
*
* @return builder
*
*/
public Builder name(@Nullable Output name) {
$.name = name;
return this;
}
/**
* @param name The name of the alert rule.
*
* @return builder
*
*/
public Builder name(String name) {
return name(Output.of(name));
}
/**
* @param period Index query cycle, which must be consistent with that defined for metrics. Default to 300, in seconds.
*
* @return builder
*
*/
public Builder period(@Nullable Output period) {
$.period = period;
return this;
}
/**
* @param period Index query cycle, which must be consistent with that defined for metrics. Default to 300, in seconds.
*
* @return builder
*
*/
public Builder period(Integer period) {
return period(Output.of(period));
}
/**
* @param project The namespace of the cloud service, such as `acs_ecs_dashboard` and `acs_rds_dashboard`. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).
* **NOTE:** The `dimensions` and `metric_dimensions` must be empty when `project` is `acs_prometheus`, otherwise, one of them must be set.
*
* @return builder
*
*/
public Builder project(Output project) {
$.project = project;
return this;
}
/**
* @param project The namespace of the cloud service, such as `acs_ecs_dashboard` and `acs_rds_dashboard`. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).
* **NOTE:** The `dimensions` and `metric_dimensions` must be empty when `project` is `acs_prometheus`, otherwise, one of them must be set.
*
* @return builder
*
*/
public Builder project(String project) {
return project(Output.of(project));
}
/**
* @param prometheuses The Prometheus alert rule. See `prometheus` below. **Note:** This parameter is required only when you create a Prometheus alert rule for Hybrid Cloud Monitoring.
*
* @return builder
*
*/
public Builder prometheuses(@Nullable Output> prometheuses) {
$.prometheuses = prometheuses;
return this;
}
/**
* @param prometheuses The Prometheus alert rule. See `prometheus` below. **Note:** This parameter is required only when you create a Prometheus alert rule for Hybrid Cloud Monitoring.
*
* @return builder
*
*/
public Builder prometheuses(List prometheuses) {
return prometheuses(Output.of(prometheuses));
}
/**
* @param prometheuses The Prometheus alert rule. See `prometheus` below. **Note:** This parameter is required only when you create a Prometheus alert rule for Hybrid Cloud Monitoring.
*
* @return builder
*
*/
public Builder prometheuses(AlarmPrometheusArgs... prometheuses) {
return prometheuses(List.of(prometheuses));
}
/**
* @param silenceTime Notification silence period in the alarm state, in seconds. Default value: `86400`. Valid value range: [300, 86400].
*
* @return builder
*
*/
public Builder silenceTime(@Nullable Output silenceTime) {
$.silenceTime = silenceTime;
return this;
}
/**
* @param silenceTime Notification silence period in the alarm state, in seconds. Default value: `86400`. Valid value range: [300, 86400].
*
* @return builder
*
*/
public Builder silenceTime(Integer silenceTime) {
return silenceTime(Output.of(silenceTime));
}
/**
* @param startTime Field `start_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead.
*
* @return builder
*
* @deprecated
* Field `start_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead.
*
*/
@Deprecated /* Field `start_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead. */
public Builder startTime(@Nullable Output startTime) {
$.startTime = startTime;
return this;
}
/**
* @param startTime Field `start_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead.
*
* @return builder
*
* @deprecated
* Field `start_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead.
*
*/
@Deprecated /* Field `start_time` has been deprecated from provider version 1.50.0. New field `effective_interval` instead. */
public Builder startTime(Integer startTime) {
return startTime(Output.of(startTime));
}
/**
* @param tags A mapping of tags to assign to the resource.
*
* @return builder
*
*/
public Builder tags(@Nullable Output> tags) {
$.tags = tags;
return this;
}
/**
* @param tags A mapping of tags to assign to the resource.
*
* @return builder
*
*/
public Builder tags(Map tags) {
return tags(Output.of(tags));
}
/**
* @param targets The information about the resource for which alerts are triggered. See `targets` below.
*
* @return builder
*
*/
public Builder targets(@Nullable Output> targets) {
$.targets = targets;
return this;
}
/**
* @param targets The information about the resource for which alerts are triggered. See `targets` below.
*
* @return builder
*
*/
public Builder targets(List targets) {
return targets(Output.of(targets));
}
/**
* @param targets The information about the resource for which alerts are triggered. See `targets` below.
*
* @return builder
*
*/
public Builder targets(AlarmTargetArgs... targets) {
return targets(List.of(targets));
}
/**
* @param webhook The webhook that should be called when the alarm is triggered. Currently, only http protocol is supported. Default is empty string.
*
* @return builder
*
*/
public Builder webhook(@Nullable Output webhook) {
$.webhook = webhook;
return this;
}
/**
* @param webhook The webhook that should be called when the alarm is triggered. Currently, only http protocol is supported. Default is empty string.
*
* @return builder
*
*/
public Builder webhook(String webhook) {
return webhook(Output.of(webhook));
}
public AlarmArgs build() {
if ($.contactGroups == null) {
throw new MissingRequiredPropertyException("AlarmArgs", "contactGroups");
}
if ($.metric == null) {
throw new MissingRequiredPropertyException("AlarmArgs", "metric");
}
if ($.project == null) {
throw new MissingRequiredPropertyException("AlarmArgs", "project");
}
return $;
}
}
}