/*
 * 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/cloud/asset/v1/asset_service.proto

package com.google.cloud.asset.v1;

public interface QueryAssetsRequestOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:google.cloud.asset.v1.QueryAssetsRequest)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * Required. The relative name of the root asset. This can only be an
   * organization number (such as "organizations/123"), a project ID (such as
   * "projects/my-project-id"), or a project number (such as "projects/12345"),
   * or a folder number (such as "folders/123").
   * Only assets belonging to the `parent` will be returned.
   * </pre>
   *
   * <code>
   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
   * </code>
   *
   * @return The parent.
   */
  java.lang.String getParent();
  /**
   *
   *
   * <pre>
   * Required. The relative name of the root asset. This can only be an
   * organization number (such as "organizations/123"), a project ID (such as
   * "projects/my-project-id"), or a project number (such as "projects/12345"),
   * or a folder number (such as "folders/123").
   * Only assets belonging to the `parent` will be returned.
   * </pre>
   *
   * <code>
   * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
   * </code>
   *
   * @return The bytes for parent.
   */
  com.google.protobuf.ByteString getParentBytes();

  /**
   *
   *
   * <pre>
   * Optional. A SQL statement that's compatible with [BigQuery Standard
   * SQL](http://cloud/bigquery/docs/reference/standard-sql/enabling-standard-sql).
   * </pre>
   *
   * <code>string statement = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
   *
   * @return Whether the statement field is set.
   */
  boolean hasStatement();
  /**
   *
   *
   * <pre>
   * Optional. A SQL statement that's compatible with [BigQuery Standard
   * SQL](http://cloud/bigquery/docs/reference/standard-sql/enabling-standard-sql).
   * </pre>
   *
   * <code>string statement = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
   *
   * @return The statement.
   */
  java.lang.String getStatement();
  /**
   *
   *
   * <pre>
   * Optional. A SQL statement that's compatible with [BigQuery Standard
   * SQL](http://cloud/bigquery/docs/reference/standard-sql/enabling-standard-sql).
   * </pre>
   *
   * <code>string statement = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
   *
   * @return The bytes for statement.
   */
  com.google.protobuf.ByteString getStatementBytes();

  /**
   *
   *
   * <pre>
   * Optional. Reference to the query job, which is from the
   * `QueryAssetsResponse` of previous `QueryAssets` call.
   * </pre>
   *
   * <code>string job_reference = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
   *
   * @return Whether the jobReference field is set.
   */
  boolean hasJobReference();
  /**
   *
   *
   * <pre>
   * Optional. Reference to the query job, which is from the
   * `QueryAssetsResponse` of previous `QueryAssets` call.
   * </pre>
   *
   * <code>string job_reference = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
   *
   * @return The jobReference.
   */
  java.lang.String getJobReference();
  /**
   *
   *
   * <pre>
   * Optional. Reference to the query job, which is from the
   * `QueryAssetsResponse` of previous `QueryAssets` call.
   * </pre>
   *
   * <code>string job_reference = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
   *
   * @return The bytes for jobReference.
   */
  com.google.protobuf.ByteString getJobReferenceBytes();

  /**
   *
   *
   * <pre>
   * Optional. The maximum number of rows to return in the results. Responses
   * are limited to 10 MB and 1000 rows.
   * By default, the maximum row count is 1000. When the byte or row count limit
   * is reached, the rest of the query results will be paginated.
   * The field will be ignored when [output_config] is specified.
   * </pre>
   *
   * <code>int32 page_size = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
   *
   * @return The pageSize.
   */
  int getPageSize();

  /**
   *
   *
   * <pre>
   * Optional. A page token received from previous `QueryAssets`.
   * The field will be ignored when [output_config] is specified.
   * </pre>
   *
   * <code>string page_token = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
   *
   * @return The pageToken.
   */
  java.lang.String getPageToken();
  /**
   *
   *
   * <pre>
   * Optional. A page token received from previous `QueryAssets`.
   * The field will be ignored when [output_config] is specified.
   * </pre>
   *
   * <code>string page_token = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
   *
   * @return The bytes for pageToken.
   */
  com.google.protobuf.ByteString getPageTokenBytes();

  /**
   *
   *
   * <pre>
   * Optional. Specifies the maximum amount of time that the client is willing
   * to wait for the query to complete. By default, this limit is 5 min for the
   * first query, and 1 minute for the following queries. If the query is
   * complete, the `done` field in the `QueryAssetsResponse` is true, otherwise
   * false.
   * Like BigQuery [jobs.query
   * API](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/query#queryrequest)
   * The call is not guaranteed to wait for the specified timeout; it typically
   * returns after around 200 seconds (200,000 milliseconds), even if the query
   * is not complete.
   * The field will be ignored when [output_config] is specified.
   * </pre>
   *
   * <code>.google.protobuf.Duration timeout = 6 [(.google.api.field_behavior) = OPTIONAL];</code>
   *
   * @return Whether the timeout field is set.
   */
  boolean hasTimeout();
  /**
   *
   *
   * <pre>
   * Optional. Specifies the maximum amount of time that the client is willing
   * to wait for the query to complete. By default, this limit is 5 min for the
   * first query, and 1 minute for the following queries. If the query is
   * complete, the `done` field in the `QueryAssetsResponse` is true, otherwise
   * false.
   * Like BigQuery [jobs.query
   * API](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/query#queryrequest)
   * The call is not guaranteed to wait for the specified timeout; it typically
   * returns after around 200 seconds (200,000 milliseconds), even if the query
   * is not complete.
   * The field will be ignored when [output_config] is specified.
   * </pre>
   *
   * <code>.google.protobuf.Duration timeout = 6 [(.google.api.field_behavior) = OPTIONAL];</code>
   *
   * @return The timeout.
   */
  com.google.protobuf.Duration getTimeout();
  /**
   *
   *
   * <pre>
   * Optional. Specifies the maximum amount of time that the client is willing
   * to wait for the query to complete. By default, this limit is 5 min for the
   * first query, and 1 minute for the following queries. If the query is
   * complete, the `done` field in the `QueryAssetsResponse` is true, otherwise
   * false.
   * Like BigQuery [jobs.query
   * API](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/query#queryrequest)
   * The call is not guaranteed to wait for the specified timeout; it typically
   * returns after around 200 seconds (200,000 milliseconds), even if the query
   * is not complete.
   * The field will be ignored when [output_config] is specified.
   * </pre>
   *
   * <code>.google.protobuf.Duration timeout = 6 [(.google.api.field_behavior) = OPTIONAL];</code>
   */
  com.google.protobuf.DurationOrBuilder getTimeoutOrBuilder();

  /**
   *
   *
   * <pre>
   * Optional. [start_time] is required. [start_time] must be less than
   * [end_time] Defaults [end_time] to now if [start_time] is set and
   * [end_time] isn't. Maximum permitted time range is 7 days.
   * </pre>
   *
   * <code>
   * .google.cloud.asset.v1.TimeWindow read_time_window = 7 [(.google.api.field_behavior) = OPTIONAL];
   * </code>
   *
   * @return Whether the readTimeWindow field is set.
   */
  boolean hasReadTimeWindow();
  /**
   *
   *
   * <pre>
   * Optional. [start_time] is required. [start_time] must be less than
   * [end_time] Defaults [end_time] to now if [start_time] is set and
   * [end_time] isn't. Maximum permitted time range is 7 days.
   * </pre>
   *
   * <code>
   * .google.cloud.asset.v1.TimeWindow read_time_window = 7 [(.google.api.field_behavior) = OPTIONAL];
   * </code>
   *
   * @return The readTimeWindow.
   */
  com.google.cloud.asset.v1.TimeWindow getReadTimeWindow();
  /**
   *
   *
   * <pre>
   * Optional. [start_time] is required. [start_time] must be less than
   * [end_time] Defaults [end_time] to now if [start_time] is set and
   * [end_time] isn't. Maximum permitted time range is 7 days.
   * </pre>
   *
   * <code>
   * .google.cloud.asset.v1.TimeWindow read_time_window = 7 [(.google.api.field_behavior) = OPTIONAL];
   * </code>
   */
  com.google.cloud.asset.v1.TimeWindowOrBuilder getReadTimeWindowOrBuilder();

  /**
   *
   *
   * <pre>
   * Optional. Queries cloud assets as they appeared at the specified point in
   * time.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp read_time = 8 [(.google.api.field_behavior) = OPTIONAL];
   * </code>
   *
   * @return Whether the readTime field is set.
   */
  boolean hasReadTime();
  /**
   *
   *
   * <pre>
   * Optional. Queries cloud assets as they appeared at the specified point in
   * time.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp read_time = 8 [(.google.api.field_behavior) = OPTIONAL];
   * </code>
   *
   * @return The readTime.
   */
  com.google.protobuf.Timestamp getReadTime();
  /**
   *
   *
   * <pre>
   * Optional. Queries cloud assets as they appeared at the specified point in
   * time.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp read_time = 8 [(.google.api.field_behavior) = OPTIONAL];
   * </code>
   */
  com.google.protobuf.TimestampOrBuilder getReadTimeOrBuilder();

  /**
   *
   *
   * <pre>
   * Optional. Destination where the query results will be saved.
   * When this field is specified, the query results won't be saved in the
   * [QueryAssetsResponse.query_result]. Instead
   * [QueryAssetsResponse.output_config] will be set.
   * Meanwhile, [QueryAssetsResponse.job_reference] will be set and can be used
   * to check the status of the query job when passed to a following
   * [QueryAssets] API call.
   * </pre>
   *
   * <code>
   * .google.cloud.asset.v1.QueryAssetsOutputConfig output_config = 9 [(.google.api.field_behavior) = OPTIONAL];
   * </code>
   *
   * @return Whether the outputConfig field is set.
   */
  boolean hasOutputConfig();
  /**
   *
   *
   * <pre>
   * Optional. Destination where the query results will be saved.
   * When this field is specified, the query results won't be saved in the
   * [QueryAssetsResponse.query_result]. Instead
   * [QueryAssetsResponse.output_config] will be set.
   * Meanwhile, [QueryAssetsResponse.job_reference] will be set and can be used
   * to check the status of the query job when passed to a following
   * [QueryAssets] API call.
   * </pre>
   *
   * <code>
   * .google.cloud.asset.v1.QueryAssetsOutputConfig output_config = 9 [(.google.api.field_behavior) = OPTIONAL];
   * </code>
   *
   * @return The outputConfig.
   */
  com.google.cloud.asset.v1.QueryAssetsOutputConfig getOutputConfig();
  /**
   *
   *
   * <pre>
   * Optional. Destination where the query results will be saved.
   * When this field is specified, the query results won't be saved in the
   * [QueryAssetsResponse.query_result]. Instead
   * [QueryAssetsResponse.output_config] will be set.
   * Meanwhile, [QueryAssetsResponse.job_reference] will be set and can be used
   * to check the status of the query job when passed to a following
   * [QueryAssets] API call.
   * </pre>
   *
   * <code>
   * .google.cloud.asset.v1.QueryAssetsOutputConfig output_config = 9 [(.google.api.field_behavior) = OPTIONAL];
   * </code>
   */
  com.google.cloud.asset.v1.QueryAssetsOutputConfigOrBuilder getOutputConfigOrBuilder();

  public com.google.cloud.asset.v1.QueryAssetsRequest.QueryCase getQueryCase();

  public com.google.cloud.asset.v1.QueryAssetsRequest.TimeCase getTimeCase();
}
