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

package com.google.monitoring.v3;

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

  /**
   * <pre>
   * A unique resource name for this UptimeCheckConfig. The format is:
   *   `projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID]`.
   * This field should be omitted when creating the uptime check configuration;
   * on create, the resource name is assigned by the server and included in the
   * response.
   * </pre>
   *
   * <code>string name = 1;</code>
   */
  java.lang.String getName();
  /**
   * <pre>
   * A unique resource name for this UptimeCheckConfig. The format is:
   *   `projects/[PROJECT_ID]/uptimeCheckConfigs/[UPTIME_CHECK_ID]`.
   * This field should be omitted when creating the uptime check configuration;
   * on create, the resource name is assigned by the server and included in the
   * response.
   * </pre>
   *
   * <code>string name = 1;</code>
   */
  com.google.protobuf.ByteString
      getNameBytes();

  /**
   * <pre>
   * A human-friendly name for the uptime check configuration. The display name
   * should be unique within a Stackdriver Account in order to make it easier
   * to identify; however, uniqueness is not enforced. Required.
   * </pre>
   *
   * <code>string display_name = 2;</code>
   */
  java.lang.String getDisplayName();
  /**
   * <pre>
   * A human-friendly name for the uptime check configuration. The display name
   * should be unique within a Stackdriver Account in order to make it easier
   * to identify; however, uniqueness is not enforced. Required.
   * </pre>
   *
   * <code>string display_name = 2;</code>
   */
  com.google.protobuf.ByteString
      getDisplayNameBytes();

  /**
   * <pre>
   * The [monitored
   * resource](https://cloud.google.com/monitoring/api/resources) associated
   * with the configuration.
   * The following monitored resource types are supported for uptime checks:
   *   uptime_url
   *   gce_instance
   *   gae_app
   *   aws_ec2_instance
   *   aws_elb_load_balancer
   * </pre>
   *
   * <code>.google.api.MonitoredResource monitored_resource = 3;</code>
   */
  boolean hasMonitoredResource();
  /**
   * <pre>
   * The [monitored
   * resource](https://cloud.google.com/monitoring/api/resources) associated
   * with the configuration.
   * The following monitored resource types are supported for uptime checks:
   *   uptime_url
   *   gce_instance
   *   gae_app
   *   aws_ec2_instance
   *   aws_elb_load_balancer
   * </pre>
   *
   * <code>.google.api.MonitoredResource monitored_resource = 3;</code>
   */
  com.google.api.MonitoredResource getMonitoredResource();
  /**
   * <pre>
   * The [monitored
   * resource](https://cloud.google.com/monitoring/api/resources) associated
   * with the configuration.
   * The following monitored resource types are supported for uptime checks:
   *   uptime_url
   *   gce_instance
   *   gae_app
   *   aws_ec2_instance
   *   aws_elb_load_balancer
   * </pre>
   *
   * <code>.google.api.MonitoredResource monitored_resource = 3;</code>
   */
  com.google.api.MonitoredResourceOrBuilder getMonitoredResourceOrBuilder();

  /**
   * <pre>
   * The group resource associated with the configuration.
   * </pre>
   *
   * <code>.google.monitoring.v3.UptimeCheckConfig.ResourceGroup resource_group = 4;</code>
   */
  boolean hasResourceGroup();
  /**
   * <pre>
   * The group resource associated with the configuration.
   * </pre>
   *
   * <code>.google.monitoring.v3.UptimeCheckConfig.ResourceGroup resource_group = 4;</code>
   */
  com.google.monitoring.v3.UptimeCheckConfig.ResourceGroup getResourceGroup();
  /**
   * <pre>
   * The group resource associated with the configuration.
   * </pre>
   *
   * <code>.google.monitoring.v3.UptimeCheckConfig.ResourceGroup resource_group = 4;</code>
   */
  com.google.monitoring.v3.UptimeCheckConfig.ResourceGroupOrBuilder getResourceGroupOrBuilder();

  /**
   * <pre>
   * Contains information needed to make an HTTP or HTTPS check.
   * </pre>
   *
   * <code>.google.monitoring.v3.UptimeCheckConfig.HttpCheck http_check = 5;</code>
   */
  boolean hasHttpCheck();
  /**
   * <pre>
   * Contains information needed to make an HTTP or HTTPS check.
   * </pre>
   *
   * <code>.google.monitoring.v3.UptimeCheckConfig.HttpCheck http_check = 5;</code>
   */
  com.google.monitoring.v3.UptimeCheckConfig.HttpCheck getHttpCheck();
  /**
   * <pre>
   * Contains information needed to make an HTTP or HTTPS check.
   * </pre>
   *
   * <code>.google.monitoring.v3.UptimeCheckConfig.HttpCheck http_check = 5;</code>
   */
  com.google.monitoring.v3.UptimeCheckConfig.HttpCheckOrBuilder getHttpCheckOrBuilder();

  /**
   * <pre>
   * Contains information needed to make a TCP check.
   * </pre>
   *
   * <code>.google.monitoring.v3.UptimeCheckConfig.TcpCheck tcp_check = 6;</code>
   */
  boolean hasTcpCheck();
  /**
   * <pre>
   * Contains information needed to make a TCP check.
   * </pre>
   *
   * <code>.google.monitoring.v3.UptimeCheckConfig.TcpCheck tcp_check = 6;</code>
   */
  com.google.monitoring.v3.UptimeCheckConfig.TcpCheck getTcpCheck();
  /**
   * <pre>
   * Contains information needed to make a TCP check.
   * </pre>
   *
   * <code>.google.monitoring.v3.UptimeCheckConfig.TcpCheck tcp_check = 6;</code>
   */
  com.google.monitoring.v3.UptimeCheckConfig.TcpCheckOrBuilder getTcpCheckOrBuilder();

  /**
   * <pre>
   * How often, in seconds, the uptime check is performed.
   * Currently, the only supported values are `60s` (1 minute), `300s`
   * (5 minutes), `600s` (10 minutes), and `900s` (15 minutes). Optional,
   * defaults to `300s`.
   * </pre>
   *
   * <code>.google.protobuf.Duration period = 7;</code>
   */
  boolean hasPeriod();
  /**
   * <pre>
   * How often, in seconds, the uptime check is performed.
   * Currently, the only supported values are `60s` (1 minute), `300s`
   * (5 minutes), `600s` (10 minutes), and `900s` (15 minutes). Optional,
   * defaults to `300s`.
   * </pre>
   *
   * <code>.google.protobuf.Duration period = 7;</code>
   */
  com.google.protobuf.Duration getPeriod();
  /**
   * <pre>
   * How often, in seconds, the uptime check is performed.
   * Currently, the only supported values are `60s` (1 minute), `300s`
   * (5 minutes), `600s` (10 minutes), and `900s` (15 minutes). Optional,
   * defaults to `300s`.
   * </pre>
   *
   * <code>.google.protobuf.Duration period = 7;</code>
   */
  com.google.protobuf.DurationOrBuilder getPeriodOrBuilder();

  /**
   * <pre>
   * The maximum amount of time to wait for the request to complete (must be
   * between 1 and 60 seconds). Required.
   * </pre>
   *
   * <code>.google.protobuf.Duration timeout = 8;</code>
   */
  boolean hasTimeout();
  /**
   * <pre>
   * The maximum amount of time to wait for the request to complete (must be
   * between 1 and 60 seconds). Required.
   * </pre>
   *
   * <code>.google.protobuf.Duration timeout = 8;</code>
   */
  com.google.protobuf.Duration getTimeout();
  /**
   * <pre>
   * The maximum amount of time to wait for the request to complete (must be
   * between 1 and 60 seconds). Required.
   * </pre>
   *
   * <code>.google.protobuf.Duration timeout = 8;</code>
   */
  com.google.protobuf.DurationOrBuilder getTimeoutOrBuilder();

  /**
   * <pre>
   * The expected content on the page the check is run against.
   * Currently, only the first entry in the list is supported, and other entries
   * will be ignored. The server will look for an exact match of the string in
   * the page response's content. This field is optional and should only be
   * specified if a content match is required.
   * </pre>
   *
   * <code>repeated .google.monitoring.v3.UptimeCheckConfig.ContentMatcher content_matchers = 9;</code>
   */
  java.util.List<com.google.monitoring.v3.UptimeCheckConfig.ContentMatcher> 
      getContentMatchersList();
  /**
   * <pre>
   * The expected content on the page the check is run against.
   * Currently, only the first entry in the list is supported, and other entries
   * will be ignored. The server will look for an exact match of the string in
   * the page response's content. This field is optional and should only be
   * specified if a content match is required.
   * </pre>
   *
   * <code>repeated .google.monitoring.v3.UptimeCheckConfig.ContentMatcher content_matchers = 9;</code>
   */
  com.google.monitoring.v3.UptimeCheckConfig.ContentMatcher getContentMatchers(int index);
  /**
   * <pre>
   * The expected content on the page the check is run against.
   * Currently, only the first entry in the list is supported, and other entries
   * will be ignored. The server will look for an exact match of the string in
   * the page response's content. This field is optional and should only be
   * specified if a content match is required.
   * </pre>
   *
   * <code>repeated .google.monitoring.v3.UptimeCheckConfig.ContentMatcher content_matchers = 9;</code>
   */
  int getContentMatchersCount();
  /**
   * <pre>
   * The expected content on the page the check is run against.
   * Currently, only the first entry in the list is supported, and other entries
   * will be ignored. The server will look for an exact match of the string in
   * the page response's content. This field is optional and should only be
   * specified if a content match is required.
   * </pre>
   *
   * <code>repeated .google.monitoring.v3.UptimeCheckConfig.ContentMatcher content_matchers = 9;</code>
   */
  java.util.List<? extends com.google.monitoring.v3.UptimeCheckConfig.ContentMatcherOrBuilder> 
      getContentMatchersOrBuilderList();
  /**
   * <pre>
   * The expected content on the page the check is run against.
   * Currently, only the first entry in the list is supported, and other entries
   * will be ignored. The server will look for an exact match of the string in
   * the page response's content. This field is optional and should only be
   * specified if a content match is required.
   * </pre>
   *
   * <code>repeated .google.monitoring.v3.UptimeCheckConfig.ContentMatcher content_matchers = 9;</code>
   */
  com.google.monitoring.v3.UptimeCheckConfig.ContentMatcherOrBuilder getContentMatchersOrBuilder(
      int index);

  /**
   * <pre>
   * The list of regions from which the check will be run.
   * If this field is specified, enough regions to include a minimum of
   * 3 locations must be provided, or an error message is returned.
   * Not specifying this field will result in uptime checks running from all
   * regions.
   * </pre>
   *
   * <code>repeated .google.monitoring.v3.UptimeCheckRegion selected_regions = 10;</code>
   */
  java.util.List<com.google.monitoring.v3.UptimeCheckRegion> getSelectedRegionsList();
  /**
   * <pre>
   * The list of regions from which the check will be run.
   * If this field is specified, enough regions to include a minimum of
   * 3 locations must be provided, or an error message is returned.
   * Not specifying this field will result in uptime checks running from all
   * regions.
   * </pre>
   *
   * <code>repeated .google.monitoring.v3.UptimeCheckRegion selected_regions = 10;</code>
   */
  int getSelectedRegionsCount();
  /**
   * <pre>
   * The list of regions from which the check will be run.
   * If this field is specified, enough regions to include a minimum of
   * 3 locations must be provided, or an error message is returned.
   * Not specifying this field will result in uptime checks running from all
   * regions.
   * </pre>
   *
   * <code>repeated .google.monitoring.v3.UptimeCheckRegion selected_regions = 10;</code>
   */
  com.google.monitoring.v3.UptimeCheckRegion getSelectedRegions(int index);
  /**
   * <pre>
   * The list of regions from which the check will be run.
   * If this field is specified, enough regions to include a minimum of
   * 3 locations must be provided, or an error message is returned.
   * Not specifying this field will result in uptime checks running from all
   * regions.
   * </pre>
   *
   * <code>repeated .google.monitoring.v3.UptimeCheckRegion selected_regions = 10;</code>
   */
  java.util.List<java.lang.Integer>
  getSelectedRegionsValueList();
  /**
   * <pre>
   * The list of regions from which the check will be run.
   * If this field is specified, enough regions to include a minimum of
   * 3 locations must be provided, or an error message is returned.
   * Not specifying this field will result in uptime checks running from all
   * regions.
   * </pre>
   *
   * <code>repeated .google.monitoring.v3.UptimeCheckRegion selected_regions = 10;</code>
   */
  int getSelectedRegionsValue(int index);

  /**
   * <pre>
   * Denotes whether this is a check that egresses from InternalCheckers.
   * </pre>
   *
   * <code>bool is_internal = 15;</code>
   */
  boolean getIsInternal();

  /**
   * <pre>
   * The internal checkers that this check will egress from. If `is_internal` is
   * true and this list is empty, the check will egress from all
   * InternalCheckers configured for the project that owns this CheckConfig.
   * </pre>
   *
   * <code>repeated .google.monitoring.v3.InternalChecker internal_checkers = 14;</code>
   */
  java.util.List<com.google.monitoring.v3.InternalChecker> 
      getInternalCheckersList();
  /**
   * <pre>
   * The internal checkers that this check will egress from. If `is_internal` is
   * true and this list is empty, the check will egress from all
   * InternalCheckers configured for the project that owns this CheckConfig.
   * </pre>
   *
   * <code>repeated .google.monitoring.v3.InternalChecker internal_checkers = 14;</code>
   */
  com.google.monitoring.v3.InternalChecker getInternalCheckers(int index);
  /**
   * <pre>
   * The internal checkers that this check will egress from. If `is_internal` is
   * true and this list is empty, the check will egress from all
   * InternalCheckers configured for the project that owns this CheckConfig.
   * </pre>
   *
   * <code>repeated .google.monitoring.v3.InternalChecker internal_checkers = 14;</code>
   */
  int getInternalCheckersCount();
  /**
   * <pre>
   * The internal checkers that this check will egress from. If `is_internal` is
   * true and this list is empty, the check will egress from all
   * InternalCheckers configured for the project that owns this CheckConfig.
   * </pre>
   *
   * <code>repeated .google.monitoring.v3.InternalChecker internal_checkers = 14;</code>
   */
  java.util.List<? extends com.google.monitoring.v3.InternalCheckerOrBuilder> 
      getInternalCheckersOrBuilderList();
  /**
   * <pre>
   * The internal checkers that this check will egress from. If `is_internal` is
   * true and this list is empty, the check will egress from all
   * InternalCheckers configured for the project that owns this CheckConfig.
   * </pre>
   *
   * <code>repeated .google.monitoring.v3.InternalChecker internal_checkers = 14;</code>
   */
  com.google.monitoring.v3.InternalCheckerOrBuilder getInternalCheckersOrBuilder(
      int index);

  public com.google.monitoring.v3.UptimeCheckConfig.ResourceCase getResourceCase();

  public com.google.monitoring.v3.UptimeCheckConfig.CheckRequestTypeCase getCheckRequestTypeCase();
}
