/*
 * Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/monitoring/dashboard/v1/scorecard.proto

package com.google.monitoring.dashboard.v1;

public interface ScorecardOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:google.monitoring.dashboard.v1.Scorecard)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * Required. Fields for querying time series data from the
   * Stackdriver metrics API.
   * </pre>
   *
   * <code>
   * .google.monitoring.dashboard.v1.TimeSeriesQuery time_series_query = 1 [(.google.api.field_behavior) = REQUIRED];
   * </code>
   *
   * @return Whether the timeSeriesQuery field is set.
   */
  boolean hasTimeSeriesQuery();
  /**
   *
   *
   * <pre>
   * Required. Fields for querying time series data from the
   * Stackdriver metrics API.
   * </pre>
   *
   * <code>
   * .google.monitoring.dashboard.v1.TimeSeriesQuery time_series_query = 1 [(.google.api.field_behavior) = REQUIRED];
   * </code>
   *
   * @return The timeSeriesQuery.
   */
  com.google.monitoring.dashboard.v1.TimeSeriesQuery getTimeSeriesQuery();
  /**
   *
   *
   * <pre>
   * Required. Fields for querying time series data from the
   * Stackdriver metrics API.
   * </pre>
   *
   * <code>
   * .google.monitoring.dashboard.v1.TimeSeriesQuery time_series_query = 1 [(.google.api.field_behavior) = REQUIRED];
   * </code>
   */
  com.google.monitoring.dashboard.v1.TimeSeriesQueryOrBuilder getTimeSeriesQueryOrBuilder();

  /**
   *
   *
   * <pre>
   * Will cause the scorecard to show a gauge chart.
   * </pre>
   *
   * <code>.google.monitoring.dashboard.v1.Scorecard.GaugeView gauge_view = 4;</code>
   *
   * @return Whether the gaugeView field is set.
   */
  boolean hasGaugeView();
  /**
   *
   *
   * <pre>
   * Will cause the scorecard to show a gauge chart.
   * </pre>
   *
   * <code>.google.monitoring.dashboard.v1.Scorecard.GaugeView gauge_view = 4;</code>
   *
   * @return The gaugeView.
   */
  com.google.monitoring.dashboard.v1.Scorecard.GaugeView getGaugeView();
  /**
   *
   *
   * <pre>
   * Will cause the scorecard to show a gauge chart.
   * </pre>
   *
   * <code>.google.monitoring.dashboard.v1.Scorecard.GaugeView gauge_view = 4;</code>
   */
  com.google.monitoring.dashboard.v1.Scorecard.GaugeViewOrBuilder getGaugeViewOrBuilder();

  /**
   *
   *
   * <pre>
   * Will cause the scorecard to show a spark chart.
   * </pre>
   *
   * <code>.google.monitoring.dashboard.v1.Scorecard.SparkChartView spark_chart_view = 5;</code>
   *
   * @return Whether the sparkChartView field is set.
   */
  boolean hasSparkChartView();
  /**
   *
   *
   * <pre>
   * Will cause the scorecard to show a spark chart.
   * </pre>
   *
   * <code>.google.monitoring.dashboard.v1.Scorecard.SparkChartView spark_chart_view = 5;</code>
   *
   * @return The sparkChartView.
   */
  com.google.monitoring.dashboard.v1.Scorecard.SparkChartView getSparkChartView();
  /**
   *
   *
   * <pre>
   * Will cause the scorecard to show a spark chart.
   * </pre>
   *
   * <code>.google.monitoring.dashboard.v1.Scorecard.SparkChartView spark_chart_view = 5;</code>
   */
  com.google.monitoring.dashboard.v1.Scorecard.SparkChartViewOrBuilder getSparkChartViewOrBuilder();

  /**
   *
   *
   * <pre>
   * The thresholds used to determine the state of the scorecard given the
   * time series' current value. For an actual value x, the scorecard is in a
   * danger state if x is less than or equal to a danger threshold that triggers
   * below, or greater than or equal to a danger threshold that triggers above.
   * Similarly, if x is above/below a warning threshold that triggers
   * above/below, then the scorecard is in a warning state - unless x also puts
   * it in a danger state. (Danger trumps warning.)
   *
   * As an example, consider a scorecard with the following four thresholds:
   *
   * ```
   * {
   *   value: 90,
   *   category: 'DANGER',
   *   trigger: 'ABOVE',
   * },
   * {
   *   value: 70,
   *   category: 'WARNING',
   *   trigger: 'ABOVE',
   * },
   * {
   *   value: 10,
   *   category: 'DANGER',
   *   trigger: 'BELOW',
   * },
   * {
   *   value: 20,
   *   category: 'WARNING',
   *   trigger: 'BELOW',
   * }
   * ```
   *
   * Then: values less than or equal to 10 would put the scorecard in a DANGER
   * state, values greater than 10 but less than or equal to 20 a WARNING state,
   * values strictly between 20 and 70 an OK state, values greater than or equal
   * to 70 but less than 90 a WARNING state, and values greater than or equal to
   * 90 a DANGER state.
   * </pre>
   *
   * <code>repeated .google.monitoring.dashboard.v1.Threshold thresholds = 6;</code>
   */
  java.util.List<com.google.monitoring.dashboard.v1.Threshold> getThresholdsList();
  /**
   *
   *
   * <pre>
   * The thresholds used to determine the state of the scorecard given the
   * time series' current value. For an actual value x, the scorecard is in a
   * danger state if x is less than or equal to a danger threshold that triggers
   * below, or greater than or equal to a danger threshold that triggers above.
   * Similarly, if x is above/below a warning threshold that triggers
   * above/below, then the scorecard is in a warning state - unless x also puts
   * it in a danger state. (Danger trumps warning.)
   *
   * As an example, consider a scorecard with the following four thresholds:
   *
   * ```
   * {
   *   value: 90,
   *   category: 'DANGER',
   *   trigger: 'ABOVE',
   * },
   * {
   *   value: 70,
   *   category: 'WARNING',
   *   trigger: 'ABOVE',
   * },
   * {
   *   value: 10,
   *   category: 'DANGER',
   *   trigger: 'BELOW',
   * },
   * {
   *   value: 20,
   *   category: 'WARNING',
   *   trigger: 'BELOW',
   * }
   * ```
   *
   * Then: values less than or equal to 10 would put the scorecard in a DANGER
   * state, values greater than 10 but less than or equal to 20 a WARNING state,
   * values strictly between 20 and 70 an OK state, values greater than or equal
   * to 70 but less than 90 a WARNING state, and values greater than or equal to
   * 90 a DANGER state.
   * </pre>
   *
   * <code>repeated .google.monitoring.dashboard.v1.Threshold thresholds = 6;</code>
   */
  com.google.monitoring.dashboard.v1.Threshold getThresholds(int index);
  /**
   *
   *
   * <pre>
   * The thresholds used to determine the state of the scorecard given the
   * time series' current value. For an actual value x, the scorecard is in a
   * danger state if x is less than or equal to a danger threshold that triggers
   * below, or greater than or equal to a danger threshold that triggers above.
   * Similarly, if x is above/below a warning threshold that triggers
   * above/below, then the scorecard is in a warning state - unless x also puts
   * it in a danger state. (Danger trumps warning.)
   *
   * As an example, consider a scorecard with the following four thresholds:
   *
   * ```
   * {
   *   value: 90,
   *   category: 'DANGER',
   *   trigger: 'ABOVE',
   * },
   * {
   *   value: 70,
   *   category: 'WARNING',
   *   trigger: 'ABOVE',
   * },
   * {
   *   value: 10,
   *   category: 'DANGER',
   *   trigger: 'BELOW',
   * },
   * {
   *   value: 20,
   *   category: 'WARNING',
   *   trigger: 'BELOW',
   * }
   * ```
   *
   * Then: values less than or equal to 10 would put the scorecard in a DANGER
   * state, values greater than 10 but less than or equal to 20 a WARNING state,
   * values strictly between 20 and 70 an OK state, values greater than or equal
   * to 70 but less than 90 a WARNING state, and values greater than or equal to
   * 90 a DANGER state.
   * </pre>
   *
   * <code>repeated .google.monitoring.dashboard.v1.Threshold thresholds = 6;</code>
   */
  int getThresholdsCount();
  /**
   *
   *
   * <pre>
   * The thresholds used to determine the state of the scorecard given the
   * time series' current value. For an actual value x, the scorecard is in a
   * danger state if x is less than or equal to a danger threshold that triggers
   * below, or greater than or equal to a danger threshold that triggers above.
   * Similarly, if x is above/below a warning threshold that triggers
   * above/below, then the scorecard is in a warning state - unless x also puts
   * it in a danger state. (Danger trumps warning.)
   *
   * As an example, consider a scorecard with the following four thresholds:
   *
   * ```
   * {
   *   value: 90,
   *   category: 'DANGER',
   *   trigger: 'ABOVE',
   * },
   * {
   *   value: 70,
   *   category: 'WARNING',
   *   trigger: 'ABOVE',
   * },
   * {
   *   value: 10,
   *   category: 'DANGER',
   *   trigger: 'BELOW',
   * },
   * {
   *   value: 20,
   *   category: 'WARNING',
   *   trigger: 'BELOW',
   * }
   * ```
   *
   * Then: values less than or equal to 10 would put the scorecard in a DANGER
   * state, values greater than 10 but less than or equal to 20 a WARNING state,
   * values strictly between 20 and 70 an OK state, values greater than or equal
   * to 70 but less than 90 a WARNING state, and values greater than or equal to
   * 90 a DANGER state.
   * </pre>
   *
   * <code>repeated .google.monitoring.dashboard.v1.Threshold thresholds = 6;</code>
   */
  java.util.List<? extends com.google.monitoring.dashboard.v1.ThresholdOrBuilder>
      getThresholdsOrBuilderList();
  /**
   *
   *
   * <pre>
   * The thresholds used to determine the state of the scorecard given the
   * time series' current value. For an actual value x, the scorecard is in a
   * danger state if x is less than or equal to a danger threshold that triggers
   * below, or greater than or equal to a danger threshold that triggers above.
   * Similarly, if x is above/below a warning threshold that triggers
   * above/below, then the scorecard is in a warning state - unless x also puts
   * it in a danger state. (Danger trumps warning.)
   *
   * As an example, consider a scorecard with the following four thresholds:
   *
   * ```
   * {
   *   value: 90,
   *   category: 'DANGER',
   *   trigger: 'ABOVE',
   * },
   * {
   *   value: 70,
   *   category: 'WARNING',
   *   trigger: 'ABOVE',
   * },
   * {
   *   value: 10,
   *   category: 'DANGER',
   *   trigger: 'BELOW',
   * },
   * {
   *   value: 20,
   *   category: 'WARNING',
   *   trigger: 'BELOW',
   * }
   * ```
   *
   * Then: values less than or equal to 10 would put the scorecard in a DANGER
   * state, values greater than 10 but less than or equal to 20 a WARNING state,
   * values strictly between 20 and 70 an OK state, values greater than or equal
   * to 70 but less than 90 a WARNING state, and values greater than or equal to
   * 90 a DANGER state.
   * </pre>
   *
   * <code>repeated .google.monitoring.dashboard.v1.Threshold thresholds = 6;</code>
   */
  com.google.monitoring.dashboard.v1.ThresholdOrBuilder getThresholdsOrBuilder(int index);

  com.google.monitoring.dashboard.v1.Scorecard.DataViewCase getDataViewCase();
}
