// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/monitoring/v3/alert_service.proto

package com.google.monitoring.v3;

public interface UpdateAlertPolicyRequestOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:google.monitoring.v3.UpdateAlertPolicyRequest)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * Optional. A list of alerting policy field names. If this field is not
   * empty, each listed field in the existing alerting policy is set to the
   * value of the corresponding field in the supplied policy (`alert_policy`),
   * or to the field's default value if the field is not in the supplied
   * alerting policy.  Fields not listed retain their previous value.
   * Examples of valid field masks include `display_name`, `documentation`,
   * `documentation.content`, `documentation.mime_type`, `user_labels`,
   * `user_label.nameofkey`, `enabled`, `conditions`, `combiner`, etc.
   * If this field is empty, then the supplied alerting policy replaces the
   * existing policy. It is the same as deleting the existing policy and
   * adding the supplied policy, except for the following:
   * +   The new policy will have the same `[ALERT_POLICY_ID]` as the former
   *     policy. This gives you continuity with the former policy in your
   *     notifications and incidents.
   * +   Conditions in the new policy will keep their former `[CONDITION_ID]` if
   *     the supplied condition includes the `name` field with that
   *     `[CONDITION_ID]`. If the supplied condition omits the `name` field,
   *     then a new `[CONDITION_ID]` is created.
   * </pre>
   *
   * <code>.google.protobuf.FieldMask update_mask = 2;</code>
   */
  boolean hasUpdateMask();
  /**
   *
   *
   * <pre>
   * Optional. A list of alerting policy field names. If this field is not
   * empty, each listed field in the existing alerting policy is set to the
   * value of the corresponding field in the supplied policy (`alert_policy`),
   * or to the field's default value if the field is not in the supplied
   * alerting policy.  Fields not listed retain their previous value.
   * Examples of valid field masks include `display_name`, `documentation`,
   * `documentation.content`, `documentation.mime_type`, `user_labels`,
   * `user_label.nameofkey`, `enabled`, `conditions`, `combiner`, etc.
   * If this field is empty, then the supplied alerting policy replaces the
   * existing policy. It is the same as deleting the existing policy and
   * adding the supplied policy, except for the following:
   * +   The new policy will have the same `[ALERT_POLICY_ID]` as the former
   *     policy. This gives you continuity with the former policy in your
   *     notifications and incidents.
   * +   Conditions in the new policy will keep their former `[CONDITION_ID]` if
   *     the supplied condition includes the `name` field with that
   *     `[CONDITION_ID]`. If the supplied condition omits the `name` field,
   *     then a new `[CONDITION_ID]` is created.
   * </pre>
   *
   * <code>.google.protobuf.FieldMask update_mask = 2;</code>
   */
  com.google.protobuf.FieldMask getUpdateMask();
  /**
   *
   *
   * <pre>
   * Optional. A list of alerting policy field names. If this field is not
   * empty, each listed field in the existing alerting policy is set to the
   * value of the corresponding field in the supplied policy (`alert_policy`),
   * or to the field's default value if the field is not in the supplied
   * alerting policy.  Fields not listed retain their previous value.
   * Examples of valid field masks include `display_name`, `documentation`,
   * `documentation.content`, `documentation.mime_type`, `user_labels`,
   * `user_label.nameofkey`, `enabled`, `conditions`, `combiner`, etc.
   * If this field is empty, then the supplied alerting policy replaces the
   * existing policy. It is the same as deleting the existing policy and
   * adding the supplied policy, except for the following:
   * +   The new policy will have the same `[ALERT_POLICY_ID]` as the former
   *     policy. This gives you continuity with the former policy in your
   *     notifications and incidents.
   * +   Conditions in the new policy will keep their former `[CONDITION_ID]` if
   *     the supplied condition includes the `name` field with that
   *     `[CONDITION_ID]`. If the supplied condition omits the `name` field,
   *     then a new `[CONDITION_ID]` is created.
   * </pre>
   *
   * <code>.google.protobuf.FieldMask update_mask = 2;</code>
   */
  com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder();

  /**
   *
   *
   * <pre>
   * Required. The updated alerting policy or the updated values for the
   * fields listed in `update_mask`.
   * If `update_mask` is not empty, any fields in this policy that are
   * not in `update_mask` are ignored.
   * </pre>
   *
   * <code>.google.monitoring.v3.AlertPolicy alert_policy = 3;</code>
   */
  boolean hasAlertPolicy();
  /**
   *
   *
   * <pre>
   * Required. The updated alerting policy or the updated values for the
   * fields listed in `update_mask`.
   * If `update_mask` is not empty, any fields in this policy that are
   * not in `update_mask` are ignored.
   * </pre>
   *
   * <code>.google.monitoring.v3.AlertPolicy alert_policy = 3;</code>
   */
  com.google.monitoring.v3.AlertPolicy getAlertPolicy();
  /**
   *
   *
   * <pre>
   * Required. The updated alerting policy or the updated values for the
   * fields listed in `update_mask`.
   * If `update_mask` is not empty, any fields in this policy that are
   * not in `update_mask` are ignored.
   * </pre>
   *
   * <code>.google.monitoring.v3.AlertPolicy alert_policy = 3;</code>
   */
  com.google.monitoring.v3.AlertPolicyOrBuilder getAlertPolicyOrBuilder();
}
