/*
 * Copyright 2020 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/analytics/data/v1beta/analytics_data_api.proto

package com.google.analytics.data.v1beta;

public interface CheckCompatibilityRequestOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:google.analytics.data.v1beta.CheckCompatibilityRequest)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * A Google Analytics GA4 property identifier whose events are tracked. To
   * learn more, see [where to find your Property
   * ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id).
   * `property` should be the same value as in your `runReport` request.
   * Example: properties/1234
   * Set the Property ID to 0 for compatibility checking on dimensions and
   * metrics common to all properties. In this special mode, this method will
   * not return custom dimensions and metrics.
   * </pre>
   *
   * <code>string property = 1;</code>
   *
   * @return The property.
   */
  java.lang.String getProperty();
  /**
   *
   *
   * <pre>
   * A Google Analytics GA4 property identifier whose events are tracked. To
   * learn more, see [where to find your Property
   * ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id).
   * `property` should be the same value as in your `runReport` request.
   * Example: properties/1234
   * Set the Property ID to 0 for compatibility checking on dimensions and
   * metrics common to all properties. In this special mode, this method will
   * not return custom dimensions and metrics.
   * </pre>
   *
   * <code>string property = 1;</code>
   *
   * @return The bytes for property.
   */
  com.google.protobuf.ByteString getPropertyBytes();

  /**
   *
   *
   * <pre>
   * The dimensions in this report. `dimensions` should be the same value as in
   * your `runReport` request.
   * </pre>
   *
   * <code>repeated .google.analytics.data.v1beta.Dimension dimensions = 2;</code>
   */
  java.util.List<com.google.analytics.data.v1beta.Dimension> getDimensionsList();
  /**
   *
   *
   * <pre>
   * The dimensions in this report. `dimensions` should be the same value as in
   * your `runReport` request.
   * </pre>
   *
   * <code>repeated .google.analytics.data.v1beta.Dimension dimensions = 2;</code>
   */
  com.google.analytics.data.v1beta.Dimension getDimensions(int index);
  /**
   *
   *
   * <pre>
   * The dimensions in this report. `dimensions` should be the same value as in
   * your `runReport` request.
   * </pre>
   *
   * <code>repeated .google.analytics.data.v1beta.Dimension dimensions = 2;</code>
   */
  int getDimensionsCount();
  /**
   *
   *
   * <pre>
   * The dimensions in this report. `dimensions` should be the same value as in
   * your `runReport` request.
   * </pre>
   *
   * <code>repeated .google.analytics.data.v1beta.Dimension dimensions = 2;</code>
   */
  java.util.List<? extends com.google.analytics.data.v1beta.DimensionOrBuilder>
      getDimensionsOrBuilderList();
  /**
   *
   *
   * <pre>
   * The dimensions in this report. `dimensions` should be the same value as in
   * your `runReport` request.
   * </pre>
   *
   * <code>repeated .google.analytics.data.v1beta.Dimension dimensions = 2;</code>
   */
  com.google.analytics.data.v1beta.DimensionOrBuilder getDimensionsOrBuilder(int index);

  /**
   *
   *
   * <pre>
   * The metrics in this report. `metrics` should be the same value as in your
   * `runReport` request.
   * </pre>
   *
   * <code>repeated .google.analytics.data.v1beta.Metric metrics = 3;</code>
   */
  java.util.List<com.google.analytics.data.v1beta.Metric> getMetricsList();
  /**
   *
   *
   * <pre>
   * The metrics in this report. `metrics` should be the same value as in your
   * `runReport` request.
   * </pre>
   *
   * <code>repeated .google.analytics.data.v1beta.Metric metrics = 3;</code>
   */
  com.google.analytics.data.v1beta.Metric getMetrics(int index);
  /**
   *
   *
   * <pre>
   * The metrics in this report. `metrics` should be the same value as in your
   * `runReport` request.
   * </pre>
   *
   * <code>repeated .google.analytics.data.v1beta.Metric metrics = 3;</code>
   */
  int getMetricsCount();
  /**
   *
   *
   * <pre>
   * The metrics in this report. `metrics` should be the same value as in your
   * `runReport` request.
   * </pre>
   *
   * <code>repeated .google.analytics.data.v1beta.Metric metrics = 3;</code>
   */
  java.util.List<? extends com.google.analytics.data.v1beta.MetricOrBuilder>
      getMetricsOrBuilderList();
  /**
   *
   *
   * <pre>
   * The metrics in this report. `metrics` should be the same value as in your
   * `runReport` request.
   * </pre>
   *
   * <code>repeated .google.analytics.data.v1beta.Metric metrics = 3;</code>
   */
  com.google.analytics.data.v1beta.MetricOrBuilder getMetricsOrBuilder(int index);

  /**
   *
   *
   * <pre>
   * The filter clause of dimensions. `dimensionFilter` should be the same value
   * as in your `runReport` request.
   * </pre>
   *
   * <code>.google.analytics.data.v1beta.FilterExpression dimension_filter = 4;</code>
   *
   * @return Whether the dimensionFilter field is set.
   */
  boolean hasDimensionFilter();
  /**
   *
   *
   * <pre>
   * The filter clause of dimensions. `dimensionFilter` should be the same value
   * as in your `runReport` request.
   * </pre>
   *
   * <code>.google.analytics.data.v1beta.FilterExpression dimension_filter = 4;</code>
   *
   * @return The dimensionFilter.
   */
  com.google.analytics.data.v1beta.FilterExpression getDimensionFilter();
  /**
   *
   *
   * <pre>
   * The filter clause of dimensions. `dimensionFilter` should be the same value
   * as in your `runReport` request.
   * </pre>
   *
   * <code>.google.analytics.data.v1beta.FilterExpression dimension_filter = 4;</code>
   */
  com.google.analytics.data.v1beta.FilterExpressionOrBuilder getDimensionFilterOrBuilder();

  /**
   *
   *
   * <pre>
   * The filter clause of metrics. `metricFilter` should be the same value as in
   * your `runReport` request
   * </pre>
   *
   * <code>.google.analytics.data.v1beta.FilterExpression metric_filter = 5;</code>
   *
   * @return Whether the metricFilter field is set.
   */
  boolean hasMetricFilter();
  /**
   *
   *
   * <pre>
   * The filter clause of metrics. `metricFilter` should be the same value as in
   * your `runReport` request
   * </pre>
   *
   * <code>.google.analytics.data.v1beta.FilterExpression metric_filter = 5;</code>
   *
   * @return The metricFilter.
   */
  com.google.analytics.data.v1beta.FilterExpression getMetricFilter();
  /**
   *
   *
   * <pre>
   * The filter clause of metrics. `metricFilter` should be the same value as in
   * your `runReport` request
   * </pre>
   *
   * <code>.google.analytics.data.v1beta.FilterExpression metric_filter = 5;</code>
   */
  com.google.analytics.data.v1beta.FilterExpressionOrBuilder getMetricFilterOrBuilder();

  /**
   *
   *
   * <pre>
   * Filters the dimensions and metrics in the response to just this
   * compatibility. Commonly used as `”compatibilityFilter”: “COMPATIBLE”`
   * to only return compatible dimensions &amp; metrics.
   * </pre>
   *
   * <code>.google.analytics.data.v1beta.Compatibility compatibility_filter = 6;</code>
   *
   * @return The enum numeric value on the wire for compatibilityFilter.
   */
  int getCompatibilityFilterValue();
  /**
   *
   *
   * <pre>
   * Filters the dimensions and metrics in the response to just this
   * compatibility. Commonly used as `”compatibilityFilter”: “COMPATIBLE”`
   * to only return compatible dimensions &amp; metrics.
   * </pre>
   *
   * <code>.google.analytics.data.v1beta.Compatibility compatibility_filter = 6;</code>
   *
   * @return The compatibilityFilter.
   */
  com.google.analytics.data.v1beta.Compatibility getCompatibilityFilter();
}
