/*
 * 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/dataflow/v1beta3/environment.proto

package com.google.dataflow.v1beta3;

public interface TaskRunnerSettingsOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:google.dataflow.v1beta3.TaskRunnerSettings)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * The UNIX user ID on the worker VM to use for tasks launched by
   * taskrunner; e.g. "root".
   * </pre>
   *
   * <code>string task_user = 1;</code>
   *
   * @return The taskUser.
   */
  java.lang.String getTaskUser();
  /**
   *
   *
   * <pre>
   * The UNIX user ID on the worker VM to use for tasks launched by
   * taskrunner; e.g. "root".
   * </pre>
   *
   * <code>string task_user = 1;</code>
   *
   * @return The bytes for taskUser.
   */
  com.google.protobuf.ByteString getTaskUserBytes();

  /**
   *
   *
   * <pre>
   * The UNIX group ID on the worker VM to use for tasks launched by
   * taskrunner; e.g. "wheel".
   * </pre>
   *
   * <code>string task_group = 2;</code>
   *
   * @return The taskGroup.
   */
  java.lang.String getTaskGroup();
  /**
   *
   *
   * <pre>
   * The UNIX group ID on the worker VM to use for tasks launched by
   * taskrunner; e.g. "wheel".
   * </pre>
   *
   * <code>string task_group = 2;</code>
   *
   * @return The bytes for taskGroup.
   */
  com.google.protobuf.ByteString getTaskGroupBytes();

  /**
   *
   *
   * <pre>
   * The OAuth2 scopes to be requested by the taskrunner in order to
   * access the Cloud Dataflow API.
   * </pre>
   *
   * <code>repeated string oauth_scopes = 3;</code>
   *
   * @return A list containing the oauthScopes.
   */
  java.util.List<java.lang.String> getOauthScopesList();
  /**
   *
   *
   * <pre>
   * The OAuth2 scopes to be requested by the taskrunner in order to
   * access the Cloud Dataflow API.
   * </pre>
   *
   * <code>repeated string oauth_scopes = 3;</code>
   *
   * @return The count of oauthScopes.
   */
  int getOauthScopesCount();
  /**
   *
   *
   * <pre>
   * The OAuth2 scopes to be requested by the taskrunner in order to
   * access the Cloud Dataflow API.
   * </pre>
   *
   * <code>repeated string oauth_scopes = 3;</code>
   *
   * @param index The index of the element to return.
   * @return The oauthScopes at the given index.
   */
  java.lang.String getOauthScopes(int index);
  /**
   *
   *
   * <pre>
   * The OAuth2 scopes to be requested by the taskrunner in order to
   * access the Cloud Dataflow API.
   * </pre>
   *
   * <code>repeated string oauth_scopes = 3;</code>
   *
   * @param index The index of the value to return.
   * @return The bytes of the oauthScopes at the given index.
   */
  com.google.protobuf.ByteString getOauthScopesBytes(int index);

  /**
   *
   *
   * <pre>
   * The base URL for the taskrunner to use when accessing Google Cloud APIs.
   * When workers access Google Cloud APIs, they logically do so via
   * relative URLs.  If this field is specified, it supplies the base
   * URL to use for resolving these relative URLs.  The normative
   * algorithm used is defined by RFC 1808, "Relative Uniform Resource
   * Locators".
   * If not specified, the default value is "http://www.googleapis.com/"
   * </pre>
   *
   * <code>string base_url = 4;</code>
   *
   * @return The baseUrl.
   */
  java.lang.String getBaseUrl();
  /**
   *
   *
   * <pre>
   * The base URL for the taskrunner to use when accessing Google Cloud APIs.
   * When workers access Google Cloud APIs, they logically do so via
   * relative URLs.  If this field is specified, it supplies the base
   * URL to use for resolving these relative URLs.  The normative
   * algorithm used is defined by RFC 1808, "Relative Uniform Resource
   * Locators".
   * If not specified, the default value is "http://www.googleapis.com/"
   * </pre>
   *
   * <code>string base_url = 4;</code>
   *
   * @return The bytes for baseUrl.
   */
  com.google.protobuf.ByteString getBaseUrlBytes();

  /**
   *
   *
   * <pre>
   * The API version of endpoint, e.g. "v1b3"
   * </pre>
   *
   * <code>string dataflow_api_version = 5;</code>
   *
   * @return The dataflowApiVersion.
   */
  java.lang.String getDataflowApiVersion();
  /**
   *
   *
   * <pre>
   * The API version of endpoint, e.g. "v1b3"
   * </pre>
   *
   * <code>string dataflow_api_version = 5;</code>
   *
   * @return The bytes for dataflowApiVersion.
   */
  com.google.protobuf.ByteString getDataflowApiVersionBytes();

  /**
   *
   *
   * <pre>
   * The settings to pass to the parallel worker harness.
   * </pre>
   *
   * <code>.google.dataflow.v1beta3.WorkerSettings parallel_worker_settings = 6;</code>
   *
   * @return Whether the parallelWorkerSettings field is set.
   */
  boolean hasParallelWorkerSettings();
  /**
   *
   *
   * <pre>
   * The settings to pass to the parallel worker harness.
   * </pre>
   *
   * <code>.google.dataflow.v1beta3.WorkerSettings parallel_worker_settings = 6;</code>
   *
   * @return The parallelWorkerSettings.
   */
  com.google.dataflow.v1beta3.WorkerSettings getParallelWorkerSettings();
  /**
   *
   *
   * <pre>
   * The settings to pass to the parallel worker harness.
   * </pre>
   *
   * <code>.google.dataflow.v1beta3.WorkerSettings parallel_worker_settings = 6;</code>
   */
  com.google.dataflow.v1beta3.WorkerSettingsOrBuilder getParallelWorkerSettingsOrBuilder();

  /**
   *
   *
   * <pre>
   * The location on the worker for task-specific subdirectories.
   * </pre>
   *
   * <code>string base_task_dir = 7;</code>
   *
   * @return The baseTaskDir.
   */
  java.lang.String getBaseTaskDir();
  /**
   *
   *
   * <pre>
   * The location on the worker for task-specific subdirectories.
   * </pre>
   *
   * <code>string base_task_dir = 7;</code>
   *
   * @return The bytes for baseTaskDir.
   */
  com.google.protobuf.ByteString getBaseTaskDirBytes();

  /**
   *
   *
   * <pre>
   * Whether to continue taskrunner if an exception is hit.
   * </pre>
   *
   * <code>bool continue_on_exception = 8;</code>
   *
   * @return The continueOnException.
   */
  boolean getContinueOnException();

  /**
   *
   *
   * <pre>
   * Whether to send taskrunner log info to Google Compute Engine VM serial
   * console.
   * </pre>
   *
   * <code>bool log_to_serialconsole = 9;</code>
   *
   * @return The logToSerialconsole.
   */
  boolean getLogToSerialconsole();

  /**
   *
   *
   * <pre>
   * Whether to also send taskrunner log info to stderr.
   * </pre>
   *
   * <code>bool alsologtostderr = 10;</code>
   *
   * @return The alsologtostderr.
   */
  boolean getAlsologtostderr();

  /**
   *
   *
   * <pre>
   * Indicates where to put logs.  If this is not specified, the logs
   * will not be uploaded.
   * The supported resource type is:
   * Google Cloud Storage:
   *   storage.googleapis.com/{bucket}/{object}
   *   bucket.storage.googleapis.com/{object}
   * </pre>
   *
   * <code>string log_upload_location = 11;</code>
   *
   * @return The logUploadLocation.
   */
  java.lang.String getLogUploadLocation();
  /**
   *
   *
   * <pre>
   * Indicates where to put logs.  If this is not specified, the logs
   * will not be uploaded.
   * The supported resource type is:
   * Google Cloud Storage:
   *   storage.googleapis.com/{bucket}/{object}
   *   bucket.storage.googleapis.com/{object}
   * </pre>
   *
   * <code>string log_upload_location = 11;</code>
   *
   * @return The bytes for logUploadLocation.
   */
  com.google.protobuf.ByteString getLogUploadLocationBytes();

  /**
   *
   *
   * <pre>
   * The directory on the VM to store logs.
   * </pre>
   *
   * <code>string log_dir = 12;</code>
   *
   * @return The logDir.
   */
  java.lang.String getLogDir();
  /**
   *
   *
   * <pre>
   * The directory on the VM to store logs.
   * </pre>
   *
   * <code>string log_dir = 12;</code>
   *
   * @return The bytes for logDir.
   */
  com.google.protobuf.ByteString getLogDirBytes();

  /**
   *
   *
   * <pre>
   * The prefix of the resources the taskrunner should use for
   * temporary storage.
   * The supported resource type is:
   * Google Cloud Storage:
   *   storage.googleapis.com/{bucket}/{object}
   *   bucket.storage.googleapis.com/{object}
   * </pre>
   *
   * <code>string temp_storage_prefix = 13;</code>
   *
   * @return The tempStoragePrefix.
   */
  java.lang.String getTempStoragePrefix();
  /**
   *
   *
   * <pre>
   * The prefix of the resources the taskrunner should use for
   * temporary storage.
   * The supported resource type is:
   * Google Cloud Storage:
   *   storage.googleapis.com/{bucket}/{object}
   *   bucket.storage.googleapis.com/{object}
   * </pre>
   *
   * <code>string temp_storage_prefix = 13;</code>
   *
   * @return The bytes for tempStoragePrefix.
   */
  com.google.protobuf.ByteString getTempStoragePrefixBytes();

  /**
   *
   *
   * <pre>
   * The command to launch the worker harness.
   * </pre>
   *
   * <code>string harness_command = 14;</code>
   *
   * @return The harnessCommand.
   */
  java.lang.String getHarnessCommand();
  /**
   *
   *
   * <pre>
   * The command to launch the worker harness.
   * </pre>
   *
   * <code>string harness_command = 14;</code>
   *
   * @return The bytes for harnessCommand.
   */
  com.google.protobuf.ByteString getHarnessCommandBytes();

  /**
   *
   *
   * <pre>
   * The file to store the workflow in.
   * </pre>
   *
   * <code>string workflow_file_name = 15;</code>
   *
   * @return The workflowFileName.
   */
  java.lang.String getWorkflowFileName();
  /**
   *
   *
   * <pre>
   * The file to store the workflow in.
   * </pre>
   *
   * <code>string workflow_file_name = 15;</code>
   *
   * @return The bytes for workflowFileName.
   */
  com.google.protobuf.ByteString getWorkflowFileNameBytes();

  /**
   *
   *
   * <pre>
   * The file to store preprocessing commands in.
   * </pre>
   *
   * <code>string commandlines_file_name = 16;</code>
   *
   * @return The commandlinesFileName.
   */
  java.lang.String getCommandlinesFileName();
  /**
   *
   *
   * <pre>
   * The file to store preprocessing commands in.
   * </pre>
   *
   * <code>string commandlines_file_name = 16;</code>
   *
   * @return The bytes for commandlinesFileName.
   */
  com.google.protobuf.ByteString getCommandlinesFileNameBytes();

  /**
   *
   *
   * <pre>
   * The ID string of the VM.
   * </pre>
   *
   * <code>string vm_id = 17;</code>
   *
   * @return The vmId.
   */
  java.lang.String getVmId();
  /**
   *
   *
   * <pre>
   * The ID string of the VM.
   * </pre>
   *
   * <code>string vm_id = 17;</code>
   *
   * @return The bytes for vmId.
   */
  com.google.protobuf.ByteString getVmIdBytes();

  /**
   *
   *
   * <pre>
   * The suggested backend language.
   * </pre>
   *
   * <code>string language_hint = 18;</code>
   *
   * @return The languageHint.
   */
  java.lang.String getLanguageHint();
  /**
   *
   *
   * <pre>
   * The suggested backend language.
   * </pre>
   *
   * <code>string language_hint = 18;</code>
   *
   * @return The bytes for languageHint.
   */
  com.google.protobuf.ByteString getLanguageHintBytes();

  /**
   *
   *
   * <pre>
   * The streaming worker main class name.
   * </pre>
   *
   * <code>string streaming_worker_main_class = 19;</code>
   *
   * @return The streamingWorkerMainClass.
   */
  java.lang.String getStreamingWorkerMainClass();
  /**
   *
   *
   * <pre>
   * The streaming worker main class name.
   * </pre>
   *
   * <code>string streaming_worker_main_class = 19;</code>
   *
   * @return The bytes for streamingWorkerMainClass.
   */
  com.google.protobuf.ByteString getStreamingWorkerMainClassBytes();
}
