/*
 * 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/privacy/dlp/v2/storage.proto

package com.google.privacy.dlp.v2;

public interface BigQueryOptionsOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:google.privacy.dlp.v2.BigQueryOptions)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * Complete BigQuery table reference.
   * </pre>
   *
   * <code>.google.privacy.dlp.v2.BigQueryTable table_reference = 1;</code>
   *
   * @return Whether the tableReference field is set.
   */
  boolean hasTableReference();
  /**
   *
   *
   * <pre>
   * Complete BigQuery table reference.
   * </pre>
   *
   * <code>.google.privacy.dlp.v2.BigQueryTable table_reference = 1;</code>
   *
   * @return The tableReference.
   */
  com.google.privacy.dlp.v2.BigQueryTable getTableReference();
  /**
   *
   *
   * <pre>
   * Complete BigQuery table reference.
   * </pre>
   *
   * <code>.google.privacy.dlp.v2.BigQueryTable table_reference = 1;</code>
   */
  com.google.privacy.dlp.v2.BigQueryTableOrBuilder getTableReferenceOrBuilder();

  /**
   *
   *
   * <pre>
   * Table fields that may uniquely identify a row within the table. When
   * `actions.saveFindings.outputConfig.table` is specified, the values of
   * columns specified here are available in the output table under
   * `location.content_locations.record_location.record_key.id_values`. Nested
   * fields such as `person.birthdate.year` are allowed.
   * </pre>
   *
   * <code>repeated .google.privacy.dlp.v2.FieldId identifying_fields = 2;</code>
   */
  java.util.List<com.google.privacy.dlp.v2.FieldId> getIdentifyingFieldsList();
  /**
   *
   *
   * <pre>
   * Table fields that may uniquely identify a row within the table. When
   * `actions.saveFindings.outputConfig.table` is specified, the values of
   * columns specified here are available in the output table under
   * `location.content_locations.record_location.record_key.id_values`. Nested
   * fields such as `person.birthdate.year` are allowed.
   * </pre>
   *
   * <code>repeated .google.privacy.dlp.v2.FieldId identifying_fields = 2;</code>
   */
  com.google.privacy.dlp.v2.FieldId getIdentifyingFields(int index);
  /**
   *
   *
   * <pre>
   * Table fields that may uniquely identify a row within the table. When
   * `actions.saveFindings.outputConfig.table` is specified, the values of
   * columns specified here are available in the output table under
   * `location.content_locations.record_location.record_key.id_values`. Nested
   * fields such as `person.birthdate.year` are allowed.
   * </pre>
   *
   * <code>repeated .google.privacy.dlp.v2.FieldId identifying_fields = 2;</code>
   */
  int getIdentifyingFieldsCount();
  /**
   *
   *
   * <pre>
   * Table fields that may uniquely identify a row within the table. When
   * `actions.saveFindings.outputConfig.table` is specified, the values of
   * columns specified here are available in the output table under
   * `location.content_locations.record_location.record_key.id_values`. Nested
   * fields such as `person.birthdate.year` are allowed.
   * </pre>
   *
   * <code>repeated .google.privacy.dlp.v2.FieldId identifying_fields = 2;</code>
   */
  java.util.List<? extends com.google.privacy.dlp.v2.FieldIdOrBuilder>
      getIdentifyingFieldsOrBuilderList();
  /**
   *
   *
   * <pre>
   * Table fields that may uniquely identify a row within the table. When
   * `actions.saveFindings.outputConfig.table` is specified, the values of
   * columns specified here are available in the output table under
   * `location.content_locations.record_location.record_key.id_values`. Nested
   * fields such as `person.birthdate.year` are allowed.
   * </pre>
   *
   * <code>repeated .google.privacy.dlp.v2.FieldId identifying_fields = 2;</code>
   */
  com.google.privacy.dlp.v2.FieldIdOrBuilder getIdentifyingFieldsOrBuilder(int index);

  /**
   *
   *
   * <pre>
   * Max number of rows to scan. If the table has more rows than this value, the
   * rest of the rows are omitted. If not set, or if set to 0, all rows will be
   * scanned. Only one of rows_limit and rows_limit_percent can be specified.
   * Cannot be used in conjunction with TimespanConfig.
   * </pre>
   *
   * <code>int64 rows_limit = 3;</code>
   *
   * @return The rowsLimit.
   */
  long getRowsLimit();

  /**
   *
   *
   * <pre>
   * Max percentage of rows to scan. The rest are omitted. The number of rows
   * scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and
   * 100 means no limit. Defaults to 0. Only one of rows_limit and
   * rows_limit_percent can be specified. Cannot be used in conjunction with
   * TimespanConfig.
   * </pre>
   *
   * <code>int32 rows_limit_percent = 6;</code>
   *
   * @return The rowsLimitPercent.
   */
  int getRowsLimitPercent();

  /**
   * <code>.google.privacy.dlp.v2.BigQueryOptions.SampleMethod sample_method = 4;</code>
   *
   * @return The enum numeric value on the wire for sampleMethod.
   */
  int getSampleMethodValue();
  /**
   * <code>.google.privacy.dlp.v2.BigQueryOptions.SampleMethod sample_method = 4;</code>
   *
   * @return The sampleMethod.
   */
  com.google.privacy.dlp.v2.BigQueryOptions.SampleMethod getSampleMethod();

  /**
   *
   *
   * <pre>
   * References to fields excluded from scanning. This allows you to skip
   * inspection of entire columns which you know have no findings.
   * </pre>
   *
   * <code>repeated .google.privacy.dlp.v2.FieldId excluded_fields = 5;</code>
   */
  java.util.List<com.google.privacy.dlp.v2.FieldId> getExcludedFieldsList();
  /**
   *
   *
   * <pre>
   * References to fields excluded from scanning. This allows you to skip
   * inspection of entire columns which you know have no findings.
   * </pre>
   *
   * <code>repeated .google.privacy.dlp.v2.FieldId excluded_fields = 5;</code>
   */
  com.google.privacy.dlp.v2.FieldId getExcludedFields(int index);
  /**
   *
   *
   * <pre>
   * References to fields excluded from scanning. This allows you to skip
   * inspection of entire columns which you know have no findings.
   * </pre>
   *
   * <code>repeated .google.privacy.dlp.v2.FieldId excluded_fields = 5;</code>
   */
  int getExcludedFieldsCount();
  /**
   *
   *
   * <pre>
   * References to fields excluded from scanning. This allows you to skip
   * inspection of entire columns which you know have no findings.
   * </pre>
   *
   * <code>repeated .google.privacy.dlp.v2.FieldId excluded_fields = 5;</code>
   */
  java.util.List<? extends com.google.privacy.dlp.v2.FieldIdOrBuilder>
      getExcludedFieldsOrBuilderList();
  /**
   *
   *
   * <pre>
   * References to fields excluded from scanning. This allows you to skip
   * inspection of entire columns which you know have no findings.
   * </pre>
   *
   * <code>repeated .google.privacy.dlp.v2.FieldId excluded_fields = 5;</code>
   */
  com.google.privacy.dlp.v2.FieldIdOrBuilder getExcludedFieldsOrBuilder(int index);

  /**
   *
   *
   * <pre>
   * Limit scanning only to these fields.
   * </pre>
   *
   * <code>repeated .google.privacy.dlp.v2.FieldId included_fields = 7;</code>
   */
  java.util.List<com.google.privacy.dlp.v2.FieldId> getIncludedFieldsList();
  /**
   *
   *
   * <pre>
   * Limit scanning only to these fields.
   * </pre>
   *
   * <code>repeated .google.privacy.dlp.v2.FieldId included_fields = 7;</code>
   */
  com.google.privacy.dlp.v2.FieldId getIncludedFields(int index);
  /**
   *
   *
   * <pre>
   * Limit scanning only to these fields.
   * </pre>
   *
   * <code>repeated .google.privacy.dlp.v2.FieldId included_fields = 7;</code>
   */
  int getIncludedFieldsCount();
  /**
   *
   *
   * <pre>
   * Limit scanning only to these fields.
   * </pre>
   *
   * <code>repeated .google.privacy.dlp.v2.FieldId included_fields = 7;</code>
   */
  java.util.List<? extends com.google.privacy.dlp.v2.FieldIdOrBuilder>
      getIncludedFieldsOrBuilderList();
  /**
   *
   *
   * <pre>
   * Limit scanning only to these fields.
   * </pre>
   *
   * <code>repeated .google.privacy.dlp.v2.FieldId included_fields = 7;</code>
   */
  com.google.privacy.dlp.v2.FieldIdOrBuilder getIncludedFieldsOrBuilder(int index);
}
