// 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 // // http://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. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 // protoc v3.12.2 // source: google/cloud/dataproc/v1beta2/jobs.proto package dataproc import ( context "context" reflect "reflect" sync "sync" _ "google.golang.org/genproto/googleapis/api/annotations" longrunning "google.golang.org/genproto/googleapis/longrunning" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" emptypb "google.golang.org/protobuf/types/known/emptypb" fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // The Log4j level for job execution. When running an // [Apache Hive](http://hive.apache.org/) job, Cloud // Dataproc configures the Hive client to an equivalent verbosity level. type LoggingConfig_Level int32 const ( // Level is unspecified. Use default level for log4j. LoggingConfig_LEVEL_UNSPECIFIED LoggingConfig_Level = 0 // Use ALL level for log4j. LoggingConfig_ALL LoggingConfig_Level = 1 // Use TRACE level for log4j. LoggingConfig_TRACE LoggingConfig_Level = 2 // Use DEBUG level for log4j. LoggingConfig_DEBUG LoggingConfig_Level = 3 // Use INFO level for log4j. LoggingConfig_INFO LoggingConfig_Level = 4 // Use WARN level for log4j. LoggingConfig_WARN LoggingConfig_Level = 5 // Use ERROR level for log4j. LoggingConfig_ERROR LoggingConfig_Level = 6 // Use FATAL level for log4j. LoggingConfig_FATAL LoggingConfig_Level = 7 // Turn off log4j. LoggingConfig_OFF LoggingConfig_Level = 8 ) // Enum value maps for LoggingConfig_Level. var ( LoggingConfig_Level_name = map[int32]string{ 0: "LEVEL_UNSPECIFIED", 1: "ALL", 2: "TRACE", 3: "DEBUG", 4: "INFO", 5: "WARN", 6: "ERROR", 7: "FATAL", 8: "OFF", } LoggingConfig_Level_value = map[string]int32{ "LEVEL_UNSPECIFIED": 0, "ALL": 1, "TRACE": 2, "DEBUG": 3, "INFO": 4, "WARN": 5, "ERROR": 6, "FATAL": 7, "OFF": 8, } ) func (x LoggingConfig_Level) Enum() *LoggingConfig_Level { p := new(LoggingConfig_Level) *p = x return p } func (x LoggingConfig_Level) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (LoggingConfig_Level) Descriptor() protoreflect.EnumDescriptor { return file_google_cloud_dataproc_v1beta2_jobs_proto_enumTypes[0].Descriptor() } func (LoggingConfig_Level) Type() protoreflect.EnumType { return &file_google_cloud_dataproc_v1beta2_jobs_proto_enumTypes[0] } func (x LoggingConfig_Level) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use LoggingConfig_Level.Descriptor instead. func (LoggingConfig_Level) EnumDescriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{0, 0} } // The job state. type JobStatus_State int32 const ( // The job state is unknown. JobStatus_STATE_UNSPECIFIED JobStatus_State = 0 // The job is pending; it has been submitted, but is not yet running. JobStatus_PENDING JobStatus_State = 1 // Job has been received by the service and completed initial setup; // it will soon be submitted to the cluster. JobStatus_SETUP_DONE JobStatus_State = 8 // The job is running on the cluster. JobStatus_RUNNING JobStatus_State = 2 // A CancelJob request has been received, but is pending. JobStatus_CANCEL_PENDING JobStatus_State = 3 // Transient in-flight resources have been canceled, and the request to // cancel the running job has been issued to the cluster. JobStatus_CANCEL_STARTED JobStatus_State = 7 // The job cancellation was successful. JobStatus_CANCELLED JobStatus_State = 4 // The job has completed successfully. JobStatus_DONE JobStatus_State = 5 // The job has completed, but encountered an error. JobStatus_ERROR JobStatus_State = 6 // Job attempt has failed. The detail field contains failure details for // this attempt. // // Applies to restartable jobs only. JobStatus_ATTEMPT_FAILURE JobStatus_State = 9 ) // Enum value maps for JobStatus_State. var ( JobStatus_State_name = map[int32]string{ 0: "STATE_UNSPECIFIED", 1: "PENDING", 8: "SETUP_DONE", 2: "RUNNING", 3: "CANCEL_PENDING", 7: "CANCEL_STARTED", 4: "CANCELLED", 5: "DONE", 6: "ERROR", 9: "ATTEMPT_FAILURE", } JobStatus_State_value = map[string]int32{ "STATE_UNSPECIFIED": 0, "PENDING": 1, "SETUP_DONE": 8, "RUNNING": 2, "CANCEL_PENDING": 3, "CANCEL_STARTED": 7, "CANCELLED": 4, "DONE": 5, "ERROR": 6, "ATTEMPT_FAILURE": 9, } ) func (x JobStatus_State) Enum() *JobStatus_State { p := new(JobStatus_State) *p = x return p } func (x JobStatus_State) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (JobStatus_State) Descriptor() protoreflect.EnumDescriptor { return file_google_cloud_dataproc_v1beta2_jobs_proto_enumTypes[1].Descriptor() } func (JobStatus_State) Type() protoreflect.EnumType { return &file_google_cloud_dataproc_v1beta2_jobs_proto_enumTypes[1] } func (x JobStatus_State) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use JobStatus_State.Descriptor instead. func (JobStatus_State) EnumDescriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{11, 0} } // The job substate. type JobStatus_Substate int32 const ( // The job substate is unknown. JobStatus_UNSPECIFIED JobStatus_Substate = 0 // The Job is submitted to the agent. // // Applies to RUNNING state. JobStatus_SUBMITTED JobStatus_Substate = 1 // The Job has been received and is awaiting execution (it may be waiting // for a condition to be met). See the "details" field for the reason for // the delay. // // Applies to RUNNING state. JobStatus_QUEUED JobStatus_Substate = 2 // The agent-reported status is out of date, which may be caused by a // loss of communication between the agent and Dataproc. If the // agent does not send a timely update, the job will fail. // // Applies to RUNNING state. JobStatus_STALE_STATUS JobStatus_Substate = 3 ) // Enum value maps for JobStatus_Substate. var ( JobStatus_Substate_name = map[int32]string{ 0: "UNSPECIFIED", 1: "SUBMITTED", 2: "QUEUED", 3: "STALE_STATUS", } JobStatus_Substate_value = map[string]int32{ "UNSPECIFIED": 0, "SUBMITTED": 1, "QUEUED": 2, "STALE_STATUS": 3, } ) func (x JobStatus_Substate) Enum() *JobStatus_Substate { p := new(JobStatus_Substate) *p = x return p } func (x JobStatus_Substate) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (JobStatus_Substate) Descriptor() protoreflect.EnumDescriptor { return file_google_cloud_dataproc_v1beta2_jobs_proto_enumTypes[2].Descriptor() } func (JobStatus_Substate) Type() protoreflect.EnumType { return &file_google_cloud_dataproc_v1beta2_jobs_proto_enumTypes[2] } func (x JobStatus_Substate) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use JobStatus_Substate.Descriptor instead. func (JobStatus_Substate) EnumDescriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{11, 1} } // The application state, corresponding to // YarnProtos.YarnApplicationStateProto. type YarnApplication_State int32 const ( // Status is unspecified. YarnApplication_STATE_UNSPECIFIED YarnApplication_State = 0 // Status is NEW. YarnApplication_NEW YarnApplication_State = 1 // Status is NEW_SAVING. YarnApplication_NEW_SAVING YarnApplication_State = 2 // Status is SUBMITTED. YarnApplication_SUBMITTED YarnApplication_State = 3 // Status is ACCEPTED. YarnApplication_ACCEPTED YarnApplication_State = 4 // Status is RUNNING. YarnApplication_RUNNING YarnApplication_State = 5 // Status is FINISHED. YarnApplication_FINISHED YarnApplication_State = 6 // Status is FAILED. YarnApplication_FAILED YarnApplication_State = 7 // Status is KILLED. YarnApplication_KILLED YarnApplication_State = 8 ) // Enum value maps for YarnApplication_State. var ( YarnApplication_State_name = map[int32]string{ 0: "STATE_UNSPECIFIED", 1: "NEW", 2: "NEW_SAVING", 3: "SUBMITTED", 4: "ACCEPTED", 5: "RUNNING", 6: "FINISHED", 7: "FAILED", 8: "KILLED", } YarnApplication_State_value = map[string]int32{ "STATE_UNSPECIFIED": 0, "NEW": 1, "NEW_SAVING": 2, "SUBMITTED": 3, "ACCEPTED": 4, "RUNNING": 5, "FINISHED": 6, "FAILED": 7, "KILLED": 8, } ) func (x YarnApplication_State) Enum() *YarnApplication_State { p := new(YarnApplication_State) *p = x return p } func (x YarnApplication_State) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (YarnApplication_State) Descriptor() protoreflect.EnumDescriptor { return file_google_cloud_dataproc_v1beta2_jobs_proto_enumTypes[3].Descriptor() } func (YarnApplication_State) Type() protoreflect.EnumType { return &file_google_cloud_dataproc_v1beta2_jobs_proto_enumTypes[3] } func (x YarnApplication_State) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use YarnApplication_State.Descriptor instead. func (YarnApplication_State) EnumDescriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{13, 0} } // A matcher that specifies categories of job states. type ListJobsRequest_JobStateMatcher int32 const ( // Match all jobs, regardless of state. ListJobsRequest_ALL ListJobsRequest_JobStateMatcher = 0 // Only match jobs in non-terminal states: PENDING, RUNNING, or // CANCEL_PENDING. ListJobsRequest_ACTIVE ListJobsRequest_JobStateMatcher = 1 // Only match jobs in terminal states: CANCELLED, DONE, or ERROR. ListJobsRequest_NON_ACTIVE ListJobsRequest_JobStateMatcher = 2 ) // Enum value maps for ListJobsRequest_JobStateMatcher. var ( ListJobsRequest_JobStateMatcher_name = map[int32]string{ 0: "ALL", 1: "ACTIVE", 2: "NON_ACTIVE", } ListJobsRequest_JobStateMatcher_value = map[string]int32{ "ALL": 0, "ACTIVE": 1, "NON_ACTIVE": 2, } ) func (x ListJobsRequest_JobStateMatcher) Enum() *ListJobsRequest_JobStateMatcher { p := new(ListJobsRequest_JobStateMatcher) *p = x return p } func (x ListJobsRequest_JobStateMatcher) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ListJobsRequest_JobStateMatcher) Descriptor() protoreflect.EnumDescriptor { return file_google_cloud_dataproc_v1beta2_jobs_proto_enumTypes[4].Descriptor() } func (ListJobsRequest_JobStateMatcher) Type() protoreflect.EnumType { return &file_google_cloud_dataproc_v1beta2_jobs_proto_enumTypes[4] } func (x ListJobsRequest_JobStateMatcher) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ListJobsRequest_JobStateMatcher.Descriptor instead. func (ListJobsRequest_JobStateMatcher) EnumDescriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{19, 0} } // The runtime logging config of the job. type LoggingConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The per-package log levels for the driver. This may include // "root" package name to configure rootLogger. // Examples: // 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG' DriverLogLevels map[string]LoggingConfig_Level `protobuf:"bytes,2,rep,name=driver_log_levels,json=driverLogLevels,proto3" json:"driver_log_levels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=google.cloud.dataproc.v1beta2.LoggingConfig_Level"` } func (x *LoggingConfig) Reset() { *x = LoggingConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LoggingConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*LoggingConfig) ProtoMessage() {} func (x *LoggingConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LoggingConfig.ProtoReflect.Descriptor instead. func (*LoggingConfig) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{0} } func (x *LoggingConfig) GetDriverLogLevels() map[string]LoggingConfig_Level { if x != nil { return x.DriverLogLevels } return nil } // A Dataproc job for running // [Apache Hadoop // MapReduce](https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) // jobs on [Apache Hadoop // YARN](https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). type HadoopJob struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. Indicates the location of the driver's main class. Specify // either the jar file that contains the main class or the main class name. // To specify both, add the jar file to `jar_file_uris`, and then specify // the main class name in this property. // // Types that are assignable to Driver: // *HadoopJob_MainJarFileUri // *HadoopJob_MainClass Driver isHadoopJob_Driver `protobuf_oneof:"driver"` // Optional. The arguments to pass to the driver. Do not // include arguments, such as `-libjars` or `-Dfoo=bar`, that can be set as // job properties, since a collision may occur that causes an incorrect job // submission. Args []string `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"` // Optional. Jar file URIs to add to the CLASSPATHs of the // Hadoop driver and tasks. JarFileUris []string `protobuf:"bytes,4,rep,name=jar_file_uris,json=jarFileUris,proto3" json:"jar_file_uris,omitempty"` // Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied // to the working directory of Hadoop drivers and distributed tasks. Useful // for naively parallel tasks. FileUris []string `protobuf:"bytes,5,rep,name=file_uris,json=fileUris,proto3" json:"file_uris,omitempty"` // Optional. HCFS URIs of archives to be extracted in the working directory of // Hadoop drivers and tasks. Supported file types: // .jar, .tar, .tar.gz, .tgz, or .zip. ArchiveUris []string `protobuf:"bytes,6,rep,name=archive_uris,json=archiveUris,proto3" json:"archive_uris,omitempty"` // Optional. A mapping of property names to values, used to configure Hadoop. // Properties that conflict with values set by the Dataproc API may be // overwritten. Can include properties set in /etc/hadoop/conf/*-site and // classes in user code. Properties map[string]string `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Optional. The runtime log config for job execution. LoggingConfig *LoggingConfig `protobuf:"bytes,8,opt,name=logging_config,json=loggingConfig,proto3" json:"logging_config,omitempty"` } func (x *HadoopJob) Reset() { *x = HadoopJob{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HadoopJob) String() string { return protoimpl.X.MessageStringOf(x) } func (*HadoopJob) ProtoMessage() {} func (x *HadoopJob) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HadoopJob.ProtoReflect.Descriptor instead. func (*HadoopJob) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{1} } func (m *HadoopJob) GetDriver() isHadoopJob_Driver { if m != nil { return m.Driver } return nil } func (x *HadoopJob) GetMainJarFileUri() string { if x, ok := x.GetDriver().(*HadoopJob_MainJarFileUri); ok { return x.MainJarFileUri } return "" } func (x *HadoopJob) GetMainClass() string { if x, ok := x.GetDriver().(*HadoopJob_MainClass); ok { return x.MainClass } return "" } func (x *HadoopJob) GetArgs() []string { if x != nil { return x.Args } return nil } func (x *HadoopJob) GetJarFileUris() []string { if x != nil { return x.JarFileUris } return nil } func (x *HadoopJob) GetFileUris() []string { if x != nil { return x.FileUris } return nil } func (x *HadoopJob) GetArchiveUris() []string { if x != nil { return x.ArchiveUris } return nil } func (x *HadoopJob) GetProperties() map[string]string { if x != nil { return x.Properties } return nil } func (x *HadoopJob) GetLoggingConfig() *LoggingConfig { if x != nil { return x.LoggingConfig } return nil } type isHadoopJob_Driver interface { isHadoopJob_Driver() } type HadoopJob_MainJarFileUri struct { // The HCFS URI of the jar file containing the main class. // Examples: // 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' // 'hdfs:/tmp/test-samples/custom-wordcount.jar' // 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar' MainJarFileUri string `protobuf:"bytes,1,opt,name=main_jar_file_uri,json=mainJarFileUri,proto3,oneof"` } type HadoopJob_MainClass struct { // The name of the driver's main class. The jar file containing the class // must be in the default CLASSPATH or specified in `jar_file_uris`. MainClass string `protobuf:"bytes,2,opt,name=main_class,json=mainClass,proto3,oneof"` } func (*HadoopJob_MainJarFileUri) isHadoopJob_Driver() {} func (*HadoopJob_MainClass) isHadoopJob_Driver() {} // A Dataproc job for running [Apache Spark](http://spark.apache.org/) // applications on YARN. // The specification of the main method to call to drive the job. // Specify either the jar file that contains the main class or the main class // name. To pass both a main jar and a main class in that jar, add the jar to // `CommonJob.jar_file_uris`, and then specify the main class name in // `main_class`. type SparkJob struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Driver: // *SparkJob_MainJarFileUri // *SparkJob_MainClass Driver isSparkJob_Driver `protobuf_oneof:"driver"` // Optional. The arguments to pass to the driver. Do not include arguments, // such as `--conf`, that can be set as job properties, since a collision may // occur that causes an incorrect job submission. Args []string `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"` // Optional. HCFS URIs of jar files to add to the CLASSPATHs of the // Spark driver and tasks. JarFileUris []string `protobuf:"bytes,4,rep,name=jar_file_uris,json=jarFileUris,proto3" json:"jar_file_uris,omitempty"` // Optional. HCFS URIs of files to be placed in the working directory of // each executor. Useful for naively parallel tasks. FileUris []string `protobuf:"bytes,5,rep,name=file_uris,json=fileUris,proto3" json:"file_uris,omitempty"` // Optional. HCFS URIs of archives to be extracted into the working directory // of each executor. Supported file types: // .jar, .tar, .tar.gz, .tgz, and .zip. ArchiveUris []string `protobuf:"bytes,6,rep,name=archive_uris,json=archiveUris,proto3" json:"archive_uris,omitempty"` // Optional. A mapping of property names to values, used to configure Spark. // Properties that conflict with values set by the Dataproc API may be // overwritten. Can include properties set in // /etc/spark/conf/spark-defaults.conf and classes in user code. Properties map[string]string `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Optional. The runtime log config for job execution. LoggingConfig *LoggingConfig `protobuf:"bytes,8,opt,name=logging_config,json=loggingConfig,proto3" json:"logging_config,omitempty"` } func (x *SparkJob) Reset() { *x = SparkJob{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SparkJob) String() string { return protoimpl.X.MessageStringOf(x) } func (*SparkJob) ProtoMessage() {} func (x *SparkJob) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SparkJob.ProtoReflect.Descriptor instead. func (*SparkJob) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{2} } func (m *SparkJob) GetDriver() isSparkJob_Driver { if m != nil { return m.Driver } return nil } func (x *SparkJob) GetMainJarFileUri() string { if x, ok := x.GetDriver().(*SparkJob_MainJarFileUri); ok { return x.MainJarFileUri } return "" } func (x *SparkJob) GetMainClass() string { if x, ok := x.GetDriver().(*SparkJob_MainClass); ok { return x.MainClass } return "" } func (x *SparkJob) GetArgs() []string { if x != nil { return x.Args } return nil } func (x *SparkJob) GetJarFileUris() []string { if x != nil { return x.JarFileUris } return nil } func (x *SparkJob) GetFileUris() []string { if x != nil { return x.FileUris } return nil } func (x *SparkJob) GetArchiveUris() []string { if x != nil { return x.ArchiveUris } return nil } func (x *SparkJob) GetProperties() map[string]string { if x != nil { return x.Properties } return nil } func (x *SparkJob) GetLoggingConfig() *LoggingConfig { if x != nil { return x.LoggingConfig } return nil } type isSparkJob_Driver interface { isSparkJob_Driver() } type SparkJob_MainJarFileUri struct { // The HCFS URI of the jar file that contains the main class. MainJarFileUri string `protobuf:"bytes,1,opt,name=main_jar_file_uri,json=mainJarFileUri,proto3,oneof"` } type SparkJob_MainClass struct { // The name of the driver's main class. The jar file that contains the class // must be in the default CLASSPATH or specified in `jar_file_uris`. MainClass string `protobuf:"bytes,2,opt,name=main_class,json=mainClass,proto3,oneof"` } func (*SparkJob_MainJarFileUri) isSparkJob_Driver() {} func (*SparkJob_MainClass) isSparkJob_Driver() {} // A Dataproc job for running // [Apache // PySpark](https://spark.apache.org/docs/0.9.0/python-programming-guide.html) // applications on YARN. type PySparkJob struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The HCFS URI of the main Python file to use as the driver. Must // be a .py file. MainPythonFileUri string `protobuf:"bytes,1,opt,name=main_python_file_uri,json=mainPythonFileUri,proto3" json:"main_python_file_uri,omitempty"` // Optional. The arguments to pass to the driver. Do not include arguments, // such as `--conf`, that can be set as job properties, since a collision may // occur that causes an incorrect job submission. Args []string `protobuf:"bytes,2,rep,name=args,proto3" json:"args,omitempty"` // Optional. HCFS file URIs of Python files to pass to the PySpark // framework. Supported file types: .py, .egg, and .zip. PythonFileUris []string `protobuf:"bytes,3,rep,name=python_file_uris,json=pythonFileUris,proto3" json:"python_file_uris,omitempty"` // Optional. HCFS URIs of jar files to add to the CLASSPATHs of the // Python driver and tasks. JarFileUris []string `protobuf:"bytes,4,rep,name=jar_file_uris,json=jarFileUris,proto3" json:"jar_file_uris,omitempty"` // Optional. HCFS URIs of files to be placed in the working directory of // each executor. Useful for naively parallel tasks. FileUris []string `protobuf:"bytes,5,rep,name=file_uris,json=fileUris,proto3" json:"file_uris,omitempty"` // Optional. HCFS URIs of archives to be extracted into the working directory // of each executor. Supported file types: // .jar, .tar, .tar.gz, .tgz, and .zip. ArchiveUris []string `protobuf:"bytes,6,rep,name=archive_uris,json=archiveUris,proto3" json:"archive_uris,omitempty"` // Optional. A mapping of property names to values, used to configure PySpark. // Properties that conflict with values set by the Dataproc API may be // overwritten. Can include properties set in // /etc/spark/conf/spark-defaults.conf and classes in user code. Properties map[string]string `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Optional. The runtime log config for job execution. LoggingConfig *LoggingConfig `protobuf:"bytes,8,opt,name=logging_config,json=loggingConfig,proto3" json:"logging_config,omitempty"` } func (x *PySparkJob) Reset() { *x = PySparkJob{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PySparkJob) String() string { return protoimpl.X.MessageStringOf(x) } func (*PySparkJob) ProtoMessage() {} func (x *PySparkJob) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PySparkJob.ProtoReflect.Descriptor instead. func (*PySparkJob) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{3} } func (x *PySparkJob) GetMainPythonFileUri() string { if x != nil { return x.MainPythonFileUri } return "" } func (x *PySparkJob) GetArgs() []string { if x != nil { return x.Args } return nil } func (x *PySparkJob) GetPythonFileUris() []string { if x != nil { return x.PythonFileUris } return nil } func (x *PySparkJob) GetJarFileUris() []string { if x != nil { return x.JarFileUris } return nil } func (x *PySparkJob) GetFileUris() []string { if x != nil { return x.FileUris } return nil } func (x *PySparkJob) GetArchiveUris() []string { if x != nil { return x.ArchiveUris } return nil } func (x *PySparkJob) GetProperties() map[string]string { if x != nil { return x.Properties } return nil } func (x *PySparkJob) GetLoggingConfig() *LoggingConfig { if x != nil { return x.LoggingConfig } return nil } // A list of queries to run on a cluster. type QueryList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The queries to execute. You do not need to terminate a query // with a semicolon. Multiple queries can be specified in one string // by separating each with a semicolon. Here is an example of an Cloud // Dataproc API snippet that uses a QueryList to specify a HiveJob: // // "hiveJob": { // "queryList": { // "queries": [ // "query1", // "query2", // "query3;query4", // ] // } // } Queries []string `protobuf:"bytes,1,rep,name=queries,proto3" json:"queries,omitempty"` } func (x *QueryList) Reset() { *x = QueryList{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueryList) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueryList) ProtoMessage() {} func (x *QueryList) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use QueryList.ProtoReflect.Descriptor instead. func (*QueryList) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{4} } func (x *QueryList) GetQueries() []string { if x != nil { return x.Queries } return nil } // A Dataproc job for running [Apache Hive](https://hive.apache.org/) // queries on YARN. type HiveJob struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The sequence of Hive queries to execute, specified as either // an HCFS file URI or a list of queries. // // Types that are assignable to Queries: // *HiveJob_QueryFileUri // *HiveJob_QueryList Queries isHiveJob_Queries `protobuf_oneof:"queries"` // Optional. Whether to continue executing queries if a query fails. // The default value is `false`. Setting to `true` can be useful when // executing independent parallel queries. ContinueOnFailure bool `protobuf:"varint,3,opt,name=continue_on_failure,json=continueOnFailure,proto3" json:"continue_on_failure,omitempty"` // Optional. Mapping of query variable names to values (equivalent to the // Hive command: `SET name="value";`). ScriptVariables map[string]string `protobuf:"bytes,4,rep,name=script_variables,json=scriptVariables,proto3" json:"script_variables,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Optional. A mapping of property names and values, used to configure Hive. // Properties that conflict with values set by the Dataproc API may be // overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, // /etc/hive/conf/hive-site.xml, and classes in user code. Properties map[string]string `protobuf:"bytes,5,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Optional. HCFS URIs of jar files to add to the CLASSPATH of the // Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes // and UDFs. JarFileUris []string `protobuf:"bytes,6,rep,name=jar_file_uris,json=jarFileUris,proto3" json:"jar_file_uris,omitempty"` } func (x *HiveJob) Reset() { *x = HiveJob{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HiveJob) String() string { return protoimpl.X.MessageStringOf(x) } func (*HiveJob) ProtoMessage() {} func (x *HiveJob) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HiveJob.ProtoReflect.Descriptor instead. func (*HiveJob) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{5} } func (m *HiveJob) GetQueries() isHiveJob_Queries { if m != nil { return m.Queries } return nil } func (x *HiveJob) GetQueryFileUri() string { if x, ok := x.GetQueries().(*HiveJob_QueryFileUri); ok { return x.QueryFileUri } return "" } func (x *HiveJob) GetQueryList() *QueryList { if x, ok := x.GetQueries().(*HiveJob_QueryList); ok { return x.QueryList } return nil } func (x *HiveJob) GetContinueOnFailure() bool { if x != nil { return x.ContinueOnFailure } return false } func (x *HiveJob) GetScriptVariables() map[string]string { if x != nil { return x.ScriptVariables } return nil } func (x *HiveJob) GetProperties() map[string]string { if x != nil { return x.Properties } return nil } func (x *HiveJob) GetJarFileUris() []string { if x != nil { return x.JarFileUris } return nil } type isHiveJob_Queries interface { isHiveJob_Queries() } type HiveJob_QueryFileUri struct { // The HCFS URI of the script that contains Hive queries. QueryFileUri string `protobuf:"bytes,1,opt,name=query_file_uri,json=queryFileUri,proto3,oneof"` } type HiveJob_QueryList struct { // A list of queries. QueryList *QueryList `protobuf:"bytes,2,opt,name=query_list,json=queryList,proto3,oneof"` } func (*HiveJob_QueryFileUri) isHiveJob_Queries() {} func (*HiveJob_QueryList) isHiveJob_Queries() {} // A Dataproc job for running [Apache Spark // SQL](http://spark.apache.org/sql/) queries. type SparkSqlJob struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The sequence of Spark SQL queries to execute, specified as // either an HCFS file URI or as a list of queries. // // Types that are assignable to Queries: // *SparkSqlJob_QueryFileUri // *SparkSqlJob_QueryList Queries isSparkSqlJob_Queries `protobuf_oneof:"queries"` // Optional. Mapping of query variable names to values (equivalent to the // Spark SQL command: SET `name="value";`). ScriptVariables map[string]string `protobuf:"bytes,3,rep,name=script_variables,json=scriptVariables,proto3" json:"script_variables,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Optional. A mapping of property names to values, used to configure // Spark SQL's SparkConf. Properties that conflict with values set by the // Dataproc API may be overwritten. Properties map[string]string `protobuf:"bytes,4,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH. JarFileUris []string `protobuf:"bytes,56,rep,name=jar_file_uris,json=jarFileUris,proto3" json:"jar_file_uris,omitempty"` // Optional. The runtime log config for job execution. LoggingConfig *LoggingConfig `protobuf:"bytes,6,opt,name=logging_config,json=loggingConfig,proto3" json:"logging_config,omitempty"` } func (x *SparkSqlJob) Reset() { *x = SparkSqlJob{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SparkSqlJob) String() string { return protoimpl.X.MessageStringOf(x) } func (*SparkSqlJob) ProtoMessage() {} func (x *SparkSqlJob) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SparkSqlJob.ProtoReflect.Descriptor instead. func (*SparkSqlJob) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{6} } func (m *SparkSqlJob) GetQueries() isSparkSqlJob_Queries { if m != nil { return m.Queries } return nil } func (x *SparkSqlJob) GetQueryFileUri() string { if x, ok := x.GetQueries().(*SparkSqlJob_QueryFileUri); ok { return x.QueryFileUri } return "" } func (x *SparkSqlJob) GetQueryList() *QueryList { if x, ok := x.GetQueries().(*SparkSqlJob_QueryList); ok { return x.QueryList } return nil } func (x *SparkSqlJob) GetScriptVariables() map[string]string { if x != nil { return x.ScriptVariables } return nil } func (x *SparkSqlJob) GetProperties() map[string]string { if x != nil { return x.Properties } return nil } func (x *SparkSqlJob) GetJarFileUris() []string { if x != nil { return x.JarFileUris } return nil } func (x *SparkSqlJob) GetLoggingConfig() *LoggingConfig { if x != nil { return x.LoggingConfig } return nil } type isSparkSqlJob_Queries interface { isSparkSqlJob_Queries() } type SparkSqlJob_QueryFileUri struct { // The HCFS URI of the script that contains SQL queries. QueryFileUri string `protobuf:"bytes,1,opt,name=query_file_uri,json=queryFileUri,proto3,oneof"` } type SparkSqlJob_QueryList struct { // A list of queries. QueryList *QueryList `protobuf:"bytes,2,opt,name=query_list,json=queryList,proto3,oneof"` } func (*SparkSqlJob_QueryFileUri) isSparkSqlJob_Queries() {} func (*SparkSqlJob_QueryList) isSparkSqlJob_Queries() {} // A Dataproc job for running [Apache Pig](https://pig.apache.org/) // queries on YARN. type PigJob struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The sequence of Pig queries to execute, specified as an HCFS // file URI or a list of queries. // // Types that are assignable to Queries: // *PigJob_QueryFileUri // *PigJob_QueryList Queries isPigJob_Queries `protobuf_oneof:"queries"` // Optional. Whether to continue executing queries if a query fails. // The default value is `false`. Setting to `true` can be useful when // executing independent parallel queries. ContinueOnFailure bool `protobuf:"varint,3,opt,name=continue_on_failure,json=continueOnFailure,proto3" json:"continue_on_failure,omitempty"` // Optional. Mapping of query variable names to values (equivalent to the Pig // command: `name=[value]`). ScriptVariables map[string]string `protobuf:"bytes,4,rep,name=script_variables,json=scriptVariables,proto3" json:"script_variables,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Optional. A mapping of property names to values, used to configure Pig. // Properties that conflict with values set by the Dataproc API may be // overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, // /etc/pig/conf/pig.properties, and classes in user code. Properties map[string]string `protobuf:"bytes,5,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Optional. HCFS URIs of jar files to add to the CLASSPATH of // the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs. JarFileUris []string `protobuf:"bytes,6,rep,name=jar_file_uris,json=jarFileUris,proto3" json:"jar_file_uris,omitempty"` // Optional. The runtime log config for job execution. LoggingConfig *LoggingConfig `protobuf:"bytes,7,opt,name=logging_config,json=loggingConfig,proto3" json:"logging_config,omitempty"` } func (x *PigJob) Reset() { *x = PigJob{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PigJob) String() string { return protoimpl.X.MessageStringOf(x) } func (*PigJob) ProtoMessage() {} func (x *PigJob) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PigJob.ProtoReflect.Descriptor instead. func (*PigJob) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{7} } func (m *PigJob) GetQueries() isPigJob_Queries { if m != nil { return m.Queries } return nil } func (x *PigJob) GetQueryFileUri() string { if x, ok := x.GetQueries().(*PigJob_QueryFileUri); ok { return x.QueryFileUri } return "" } func (x *PigJob) GetQueryList() *QueryList { if x, ok := x.GetQueries().(*PigJob_QueryList); ok { return x.QueryList } return nil } func (x *PigJob) GetContinueOnFailure() bool { if x != nil { return x.ContinueOnFailure } return false } func (x *PigJob) GetScriptVariables() map[string]string { if x != nil { return x.ScriptVariables } return nil } func (x *PigJob) GetProperties() map[string]string { if x != nil { return x.Properties } return nil } func (x *PigJob) GetJarFileUris() []string { if x != nil { return x.JarFileUris } return nil } func (x *PigJob) GetLoggingConfig() *LoggingConfig { if x != nil { return x.LoggingConfig } return nil } type isPigJob_Queries interface { isPigJob_Queries() } type PigJob_QueryFileUri struct { // The HCFS URI of the script that contains the Pig queries. QueryFileUri string `protobuf:"bytes,1,opt,name=query_file_uri,json=queryFileUri,proto3,oneof"` } type PigJob_QueryList struct { // A list of queries. QueryList *QueryList `protobuf:"bytes,2,opt,name=query_list,json=queryList,proto3,oneof"` } func (*PigJob_QueryFileUri) isPigJob_Queries() {} func (*PigJob_QueryList) isPigJob_Queries() {} // A Dataproc job for running // [Apache SparkR](https://spark.apache.org/docs/latest/sparkr.html) // applications on YARN. type SparkRJob struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The HCFS URI of the main R file to use as the driver. // Must be a .R file. MainRFileUri string `protobuf:"bytes,1,opt,name=main_r_file_uri,json=mainRFileUri,proto3" json:"main_r_file_uri,omitempty"` // Optional. The arguments to pass to the driver. Do not include arguments, // such as `--conf`, that can be set as job properties, since a collision may // occur that causes an incorrect job submission. Args []string `protobuf:"bytes,2,rep,name=args,proto3" json:"args,omitempty"` // Optional. HCFS URIs of files to be placed in the working directory of // each executor. Useful for naively parallel tasks. FileUris []string `protobuf:"bytes,3,rep,name=file_uris,json=fileUris,proto3" json:"file_uris,omitempty"` // Optional. HCFS URIs of archives to be extracted into the working directory // of each executor. Supported file types: // .jar, .tar, .tar.gz, .tgz, and .zip. ArchiveUris []string `protobuf:"bytes,4,rep,name=archive_uris,json=archiveUris,proto3" json:"archive_uris,omitempty"` // Optional. A mapping of property names to values, used to configure SparkR. // Properties that conflict with values set by the Dataproc API may be // overwritten. Can include properties set in // /etc/spark/conf/spark-defaults.conf and classes in user code. Properties map[string]string `protobuf:"bytes,5,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Optional. The runtime log config for job execution. LoggingConfig *LoggingConfig `protobuf:"bytes,6,opt,name=logging_config,json=loggingConfig,proto3" json:"logging_config,omitempty"` } func (x *SparkRJob) Reset() { *x = SparkRJob{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SparkRJob) String() string { return protoimpl.X.MessageStringOf(x) } func (*SparkRJob) ProtoMessage() {} func (x *SparkRJob) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SparkRJob.ProtoReflect.Descriptor instead. func (*SparkRJob) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{8} } func (x *SparkRJob) GetMainRFileUri() string { if x != nil { return x.MainRFileUri } return "" } func (x *SparkRJob) GetArgs() []string { if x != nil { return x.Args } return nil } func (x *SparkRJob) GetFileUris() []string { if x != nil { return x.FileUris } return nil } func (x *SparkRJob) GetArchiveUris() []string { if x != nil { return x.ArchiveUris } return nil } func (x *SparkRJob) GetProperties() map[string]string { if x != nil { return x.Properties } return nil } func (x *SparkRJob) GetLoggingConfig() *LoggingConfig { if x != nil { return x.LoggingConfig } return nil } // A Dataproc job for running [Presto](https://prestosql.io/) queries. // **IMPORTANT**: The [Dataproc Presto Optional // Component](https://cloud.google.com/dataproc/docs/concepts/components/presto) // must be enabled when the cluster is created to submit a Presto job to the // cluster. type PrestoJob struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The sequence of Presto queries to execute, specified as // either an HCFS file URI or as a list of queries. // // Types that are assignable to Queries: // *PrestoJob_QueryFileUri // *PrestoJob_QueryList Queries isPrestoJob_Queries `protobuf_oneof:"queries"` // Optional. Whether to continue executing queries if a query fails. // The default value is `false`. Setting to `true` can be useful when // executing independent parallel queries. ContinueOnFailure bool `protobuf:"varint,3,opt,name=continue_on_failure,json=continueOnFailure,proto3" json:"continue_on_failure,omitempty"` // Optional. The format in which query output will be displayed. See the // Presto documentation for supported output formats OutputFormat string `protobuf:"bytes,4,opt,name=output_format,json=outputFormat,proto3" json:"output_format,omitempty"` // Optional. Presto client tags to attach to this query ClientTags []string `protobuf:"bytes,5,rep,name=client_tags,json=clientTags,proto3" json:"client_tags,omitempty"` // Optional. A mapping of property names to values. Used to set Presto // [session properties](https://prestodb.io/docs/current/sql/set-session.html) // Equivalent to using the --session flag in the Presto CLI Properties map[string]string `protobuf:"bytes,6,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Optional. The runtime log config for job execution. LoggingConfig *LoggingConfig `protobuf:"bytes,7,opt,name=logging_config,json=loggingConfig,proto3" json:"logging_config,omitempty"` } func (x *PrestoJob) Reset() { *x = PrestoJob{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PrestoJob) String() string { return protoimpl.X.MessageStringOf(x) } func (*PrestoJob) ProtoMessage() {} func (x *PrestoJob) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PrestoJob.ProtoReflect.Descriptor instead. func (*PrestoJob) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{9} } func (m *PrestoJob) GetQueries() isPrestoJob_Queries { if m != nil { return m.Queries } return nil } func (x *PrestoJob) GetQueryFileUri() string { if x, ok := x.GetQueries().(*PrestoJob_QueryFileUri); ok { return x.QueryFileUri } return "" } func (x *PrestoJob) GetQueryList() *QueryList { if x, ok := x.GetQueries().(*PrestoJob_QueryList); ok { return x.QueryList } return nil } func (x *PrestoJob) GetContinueOnFailure() bool { if x != nil { return x.ContinueOnFailure } return false } func (x *PrestoJob) GetOutputFormat() string { if x != nil { return x.OutputFormat } return "" } func (x *PrestoJob) GetClientTags() []string { if x != nil { return x.ClientTags } return nil } func (x *PrestoJob) GetProperties() map[string]string { if x != nil { return x.Properties } return nil } func (x *PrestoJob) GetLoggingConfig() *LoggingConfig { if x != nil { return x.LoggingConfig } return nil } type isPrestoJob_Queries interface { isPrestoJob_Queries() } type PrestoJob_QueryFileUri struct { // The HCFS URI of the script that contains SQL queries. QueryFileUri string `protobuf:"bytes,1,opt,name=query_file_uri,json=queryFileUri,proto3,oneof"` } type PrestoJob_QueryList struct { // A list of queries. QueryList *QueryList `protobuf:"bytes,2,opt,name=query_list,json=queryList,proto3,oneof"` } func (*PrestoJob_QueryFileUri) isPrestoJob_Queries() {} func (*PrestoJob_QueryList) isPrestoJob_Queries() {} // Dataproc job config. type JobPlacement struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The name of the cluster where the job will be submitted. ClusterName string `protobuf:"bytes,1,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"` // Output only. A cluster UUID generated by the Dataproc service when // the job is submitted. ClusterUuid string `protobuf:"bytes,2,opt,name=cluster_uuid,json=clusterUuid,proto3" json:"cluster_uuid,omitempty"` } func (x *JobPlacement) Reset() { *x = JobPlacement{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *JobPlacement) String() string { return protoimpl.X.MessageStringOf(x) } func (*JobPlacement) ProtoMessage() {} func (x *JobPlacement) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use JobPlacement.ProtoReflect.Descriptor instead. func (*JobPlacement) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{10} } func (x *JobPlacement) GetClusterName() string { if x != nil { return x.ClusterName } return "" } func (x *JobPlacement) GetClusterUuid() string { if x != nil { return x.ClusterUuid } return "" } // Dataproc job status. type JobStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. A state message specifying the overall job state. State JobStatus_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.dataproc.v1beta2.JobStatus_State" json:"state,omitempty"` // Output only. Optional Job state details, such as an error // description if the state is ERROR. Details string `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"` // Output only. The time when this state was entered. StateStartTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=state_start_time,json=stateStartTime,proto3" json:"state_start_time,omitempty"` // Output only. Additional state information, which includes // status reported by the agent. Substate JobStatus_Substate `protobuf:"varint,7,opt,name=substate,proto3,enum=google.cloud.dataproc.v1beta2.JobStatus_Substate" json:"substate,omitempty"` } func (x *JobStatus) Reset() { *x = JobStatus{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *JobStatus) String() string { return protoimpl.X.MessageStringOf(x) } func (*JobStatus) ProtoMessage() {} func (x *JobStatus) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use JobStatus.ProtoReflect.Descriptor instead. func (*JobStatus) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{11} } func (x *JobStatus) GetState() JobStatus_State { if x != nil { return x.State } return JobStatus_STATE_UNSPECIFIED } func (x *JobStatus) GetDetails() string { if x != nil { return x.Details } return "" } func (x *JobStatus) GetStateStartTime() *timestamppb.Timestamp { if x != nil { return x.StateStartTime } return nil } func (x *JobStatus) GetSubstate() JobStatus_Substate { if x != nil { return x.Substate } return JobStatus_UNSPECIFIED } // Encapsulates the full scoping used to reference a job. type JobReference struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. The ID of the Google Cloud Platform project that the job belongs to. If // specified, must match the request project ID. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Optional. The job ID, which must be unique within the project. // The ID must contain only letters (a-z, A-Z), numbers (0-9), // underscores (_), or hyphens (-). The maximum length is 100 characters. // // If not specified by the caller, the job ID will be provided by the server. JobId string `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` } func (x *JobReference) Reset() { *x = JobReference{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *JobReference) String() string { return protoimpl.X.MessageStringOf(x) } func (*JobReference) ProtoMessage() {} func (x *JobReference) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use JobReference.ProtoReflect.Descriptor instead. func (*JobReference) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{12} } func (x *JobReference) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *JobReference) GetJobId() string { if x != nil { return x.JobId } return "" } // A YARN application created by a job. Application information is a subset of // org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto. // // **Beta Feature**: This report is available for testing purposes only. It may // be changed before final release. type YarnApplication struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. The application name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Output only. The application state. State YarnApplication_State `protobuf:"varint,2,opt,name=state,proto3,enum=google.cloud.dataproc.v1beta2.YarnApplication_State" json:"state,omitempty"` // Output only. The numerical progress of the application, from 1 to 100. Progress float32 `protobuf:"fixed32,3,opt,name=progress,proto3" json:"progress,omitempty"` // Output only. The HTTP URL of the ApplicationMaster, HistoryServer, or // TimelineServer that provides application-specific information. The URL uses // the internal hostname, and requires a proxy server for resolution and, // possibly, access. TrackingUrl string `protobuf:"bytes,4,opt,name=tracking_url,json=trackingUrl,proto3" json:"tracking_url,omitempty"` } func (x *YarnApplication) Reset() { *x = YarnApplication{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *YarnApplication) String() string { return protoimpl.X.MessageStringOf(x) } func (*YarnApplication) ProtoMessage() {} func (x *YarnApplication) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use YarnApplication.ProtoReflect.Descriptor instead. func (*YarnApplication) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{13} } func (x *YarnApplication) GetName() string { if x != nil { return x.Name } return "" } func (x *YarnApplication) GetState() YarnApplication_State { if x != nil { return x.State } return YarnApplication_STATE_UNSPECIFIED } func (x *YarnApplication) GetProgress() float32 { if x != nil { return x.Progress } return 0 } func (x *YarnApplication) GetTrackingUrl() string { if x != nil { return x.TrackingUrl } return "" } // A Dataproc job resource. type Job struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. The fully qualified reference to the job, which can be used to // obtain the equivalent REST path of the job resource. If this property // is not specified when a job is created, the server generates a // job_id. Reference *JobReference `protobuf:"bytes,1,opt,name=reference,proto3" json:"reference,omitempty"` // Required. Job information, including how, when, and where to // run the job. Placement *JobPlacement `protobuf:"bytes,2,opt,name=placement,proto3" json:"placement,omitempty"` // Required. The application/framework-specific portion of the job. // // Types that are assignable to TypeJob: // *Job_HadoopJob // *Job_SparkJob // *Job_PysparkJob // *Job_HiveJob // *Job_PigJob // *Job_SparkRJob // *Job_SparkSqlJob // *Job_PrestoJob TypeJob isJob_TypeJob `protobuf_oneof:"type_job"` // Output only. The job status. Additional application-specific // status information may be contained in the type_job // and yarn_applications fields. Status *JobStatus `protobuf:"bytes,8,opt,name=status,proto3" json:"status,omitempty"` // Output only. The previous job status. StatusHistory []*JobStatus `protobuf:"bytes,13,rep,name=status_history,json=statusHistory,proto3" json:"status_history,omitempty"` // Output only. The collection of YARN applications spun up by this job. // // **Beta** Feature: This report is available for testing purposes only. It // may be changed before final release. YarnApplications []*YarnApplication `protobuf:"bytes,9,rep,name=yarn_applications,json=yarnApplications,proto3" json:"yarn_applications,omitempty"` // Output only. The email address of the user submitting the job. For jobs // submitted on the cluster, the address is username@hostname. SubmittedBy string `protobuf:"bytes,10,opt,name=submitted_by,json=submittedBy,proto3" json:"submitted_by,omitempty"` // Output only. A URI pointing to the location of the stdout of the job's // driver program. DriverOutputResourceUri string `protobuf:"bytes,17,opt,name=driver_output_resource_uri,json=driverOutputResourceUri,proto3" json:"driver_output_resource_uri,omitempty"` // Output only. If present, the location of miscellaneous control files // which may be used as part of job setup and handling. If not present, // control files may be placed in the same location as `driver_output_uri`. DriverControlFilesUri string `protobuf:"bytes,15,opt,name=driver_control_files_uri,json=driverControlFilesUri,proto3" json:"driver_control_files_uri,omitempty"` // Optional. The labels to associate with this job. // Label **keys** must contain 1 to 63 characters, and must conform to // [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). // Label **values** may be empty, but, if present, must contain 1 to 63 // characters, and must conform to [RFC // 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be // associated with a job. Labels map[string]string `protobuf:"bytes,18,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Optional. Job scheduling configuration. Scheduling *JobScheduling `protobuf:"bytes,20,opt,name=scheduling,proto3" json:"scheduling,omitempty"` // Output only. A UUID that uniquely identifies a job within the project // over time. This is in contrast to a user-settable reference.job_id that // may be reused over time. JobUuid string `protobuf:"bytes,22,opt,name=job_uuid,json=jobUuid,proto3" json:"job_uuid,omitempty"` // Output only. Indicates whether the job is completed. If the value is `false`, // the job is still in progress. If `true`, the job is completed, and // `status.state` field will indicate if it was successful, failed, // or cancelled. Done bool `protobuf:"varint,24,opt,name=done,proto3" json:"done,omitempty"` } func (x *Job) Reset() { *x = Job{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Job) String() string { return protoimpl.X.MessageStringOf(x) } func (*Job) ProtoMessage() {} func (x *Job) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Job.ProtoReflect.Descriptor instead. func (*Job) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{14} } func (x *Job) GetReference() *JobReference { if x != nil { return x.Reference } return nil } func (x *Job) GetPlacement() *JobPlacement { if x != nil { return x.Placement } return nil } func (m *Job) GetTypeJob() isJob_TypeJob { if m != nil { return m.TypeJob } return nil } func (x *Job) GetHadoopJob() *HadoopJob { if x, ok := x.GetTypeJob().(*Job_HadoopJob); ok { return x.HadoopJob } return nil } func (x *Job) GetSparkJob() *SparkJob { if x, ok := x.GetTypeJob().(*Job_SparkJob); ok { return x.SparkJob } return nil } func (x *Job) GetPysparkJob() *PySparkJob { if x, ok := x.GetTypeJob().(*Job_PysparkJob); ok { return x.PysparkJob } return nil } func (x *Job) GetHiveJob() *HiveJob { if x, ok := x.GetTypeJob().(*Job_HiveJob); ok { return x.HiveJob } return nil } func (x *Job) GetPigJob() *PigJob { if x, ok := x.GetTypeJob().(*Job_PigJob); ok { return x.PigJob } return nil } func (x *Job) GetSparkRJob() *SparkRJob { if x, ok := x.GetTypeJob().(*Job_SparkRJob); ok { return x.SparkRJob } return nil } func (x *Job) GetSparkSqlJob() *SparkSqlJob { if x, ok := x.GetTypeJob().(*Job_SparkSqlJob); ok { return x.SparkSqlJob } return nil } func (x *Job) GetPrestoJob() *PrestoJob { if x, ok := x.GetTypeJob().(*Job_PrestoJob); ok { return x.PrestoJob } return nil } func (x *Job) GetStatus() *JobStatus { if x != nil { return x.Status } return nil } func (x *Job) GetStatusHistory() []*JobStatus { if x != nil { return x.StatusHistory } return nil } func (x *Job) GetYarnApplications() []*YarnApplication { if x != nil { return x.YarnApplications } return nil } func (x *Job) GetSubmittedBy() string { if x != nil { return x.SubmittedBy } return "" } func (x *Job) GetDriverOutputResourceUri() string { if x != nil { return x.DriverOutputResourceUri } return "" } func (x *Job) GetDriverControlFilesUri() string { if x != nil { return x.DriverControlFilesUri } return "" } func (x *Job) GetLabels() map[string]string { if x != nil { return x.Labels } return nil } func (x *Job) GetScheduling() *JobScheduling { if x != nil { return x.Scheduling } return nil } func (x *Job) GetJobUuid() string { if x != nil { return x.JobUuid } return "" } func (x *Job) GetDone() bool { if x != nil { return x.Done } return false } type isJob_TypeJob interface { isJob_TypeJob() } type Job_HadoopJob struct { // Optional. Job is a Hadoop job. HadoopJob *HadoopJob `protobuf:"bytes,3,opt,name=hadoop_job,json=hadoopJob,proto3,oneof"` } type Job_SparkJob struct { // Optional. Job is a Spark job. SparkJob *SparkJob `protobuf:"bytes,4,opt,name=spark_job,json=sparkJob,proto3,oneof"` } type Job_PysparkJob struct { // Optional. Job is a PySpark job. PysparkJob *PySparkJob `protobuf:"bytes,5,opt,name=pyspark_job,json=pysparkJob,proto3,oneof"` } type Job_HiveJob struct { // Optional. Job is a Hive job. HiveJob *HiveJob `protobuf:"bytes,6,opt,name=hive_job,json=hiveJob,proto3,oneof"` } type Job_PigJob struct { // Optional. Job is a Pig job. PigJob *PigJob `protobuf:"bytes,7,opt,name=pig_job,json=pigJob,proto3,oneof"` } type Job_SparkRJob struct { // Optional. Job is a SparkR job. SparkRJob *SparkRJob `protobuf:"bytes,21,opt,name=spark_r_job,json=sparkRJob,proto3,oneof"` } type Job_SparkSqlJob struct { // Optional. Job is a SparkSql job. SparkSqlJob *SparkSqlJob `protobuf:"bytes,12,opt,name=spark_sql_job,json=sparkSqlJob,proto3,oneof"` } type Job_PrestoJob struct { // Optional. Job is a Presto job. PrestoJob *PrestoJob `protobuf:"bytes,23,opt,name=presto_job,json=prestoJob,proto3,oneof"` } func (*Job_HadoopJob) isJob_TypeJob() {} func (*Job_SparkJob) isJob_TypeJob() {} func (*Job_PysparkJob) isJob_TypeJob() {} func (*Job_HiveJob) isJob_TypeJob() {} func (*Job_PigJob) isJob_TypeJob() {} func (*Job_SparkRJob) isJob_TypeJob() {} func (*Job_SparkSqlJob) isJob_TypeJob() {} func (*Job_PrestoJob) isJob_TypeJob() {} // Job scheduling options. type JobScheduling struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. Maximum number of times per hour a driver may be restarted as // a result of driver terminating with non-zero code before job is // reported failed. // // A job may be reported as thrashing if driver exits with non-zero code // 4 times within 10 minute window. // // Maximum value is 10. MaxFailuresPerHour int32 `protobuf:"varint,1,opt,name=max_failures_per_hour,json=maxFailuresPerHour,proto3" json:"max_failures_per_hour,omitempty"` } func (x *JobScheduling) Reset() { *x = JobScheduling{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *JobScheduling) String() string { return protoimpl.X.MessageStringOf(x) } func (*JobScheduling) ProtoMessage() {} func (x *JobScheduling) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use JobScheduling.ProtoReflect.Descriptor instead. func (*JobScheduling) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{15} } func (x *JobScheduling) GetMaxFailuresPerHour() int32 { if x != nil { return x.MaxFailuresPerHour } return 0 } // Job Operation metadata. type JobMetadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. The job id. JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // Output only. Most recent job status. Status *JobStatus `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` // Output only. Operation type. OperationType string `protobuf:"bytes,3,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"` // Output only. Job submission time. StartTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` } func (x *JobMetadata) Reset() { *x = JobMetadata{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *JobMetadata) String() string { return protoimpl.X.MessageStringOf(x) } func (*JobMetadata) ProtoMessage() {} func (x *JobMetadata) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use JobMetadata.ProtoReflect.Descriptor instead. func (*JobMetadata) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{16} } func (x *JobMetadata) GetJobId() string { if x != nil { return x.JobId } return "" } func (x *JobMetadata) GetStatus() *JobStatus { if x != nil { return x.Status } return nil } func (x *JobMetadata) GetOperationType() string { if x != nil { return x.OperationType } return "" } func (x *JobMetadata) GetStartTime() *timestamppb.Timestamp { if x != nil { return x.StartTime } return nil } // A request to submit a job. type SubmitJobRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The ID of the Google Cloud Platform project that the job // belongs to. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Required. The Dataproc region in which to handle the request. Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"` // Required. The job resource. Job *Job `protobuf:"bytes,2,opt,name=job,proto3" json:"job,omitempty"` // Optional. A unique id used to identify the request. If the server // receives two [SubmitJobRequest][google.cloud.dataproc.v1beta2.SubmitJobRequest] requests with the same // id, then the second request will be ignored and the // first [Job][google.cloud.dataproc.v1beta2.Job] created and stored in the backend // is returned. // // It is recommended to always set this value to a // [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier). // // The id must contain only letters (a-z, A-Z), numbers (0-9), // underscores (_), and hyphens (-). The maximum length is 40 characters. RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` } func (x *SubmitJobRequest) Reset() { *x = SubmitJobRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SubmitJobRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SubmitJobRequest) ProtoMessage() {} func (x *SubmitJobRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SubmitJobRequest.ProtoReflect.Descriptor instead. func (*SubmitJobRequest) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{17} } func (x *SubmitJobRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *SubmitJobRequest) GetRegion() string { if x != nil { return x.Region } return "" } func (x *SubmitJobRequest) GetJob() *Job { if x != nil { return x.Job } return nil } func (x *SubmitJobRequest) GetRequestId() string { if x != nil { return x.RequestId } return "" } // A request to get the resource representation for a job in a project. type GetJobRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The ID of the Google Cloud Platform project that the job // belongs to. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Required. The Dataproc region in which to handle the request. Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"` // Required. The job ID. JobId string `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` } func (x *GetJobRequest) Reset() { *x = GetJobRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetJobRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetJobRequest) ProtoMessage() {} func (x *GetJobRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetJobRequest.ProtoReflect.Descriptor instead. func (*GetJobRequest) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{18} } func (x *GetJobRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *GetJobRequest) GetRegion() string { if x != nil { return x.Region } return "" } func (x *GetJobRequest) GetJobId() string { if x != nil { return x.JobId } return "" } // A request to list jobs in a project. type ListJobsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The ID of the Google Cloud Platform project that the job // belongs to. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Required. The Dataproc region in which to handle the request. Region string `protobuf:"bytes,6,opt,name=region,proto3" json:"region,omitempty"` // Optional. The number of results to return in each response. PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // Optional. The page token, returned by a previous call, to request the // next page of results. PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // Optional. If set, the returned jobs list includes only jobs that were // submitted to the named cluster. ClusterName string `protobuf:"bytes,4,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"` // Optional. Specifies enumerated categories of jobs to list. // (default = match ALL jobs). // // If `filter` is provided, `jobStateMatcher` will be ignored. JobStateMatcher ListJobsRequest_JobStateMatcher `protobuf:"varint,5,opt,name=job_state_matcher,json=jobStateMatcher,proto3,enum=google.cloud.dataproc.v1beta2.ListJobsRequest_JobStateMatcher" json:"job_state_matcher,omitempty"` // Optional. A filter constraining the jobs to list. Filters are // case-sensitive and have the following syntax: // // [field = value] AND [field [= value]] ... // // where **field** is `status.state` or `labels.[KEY]`, and `[KEY]` is a label // key. **value** can be `*` to match all values. // `status.state` can be either `ACTIVE` or `NON_ACTIVE`. // Only the logical `AND` operator is supported; space-separated items are // treated as having an implicit `AND` operator. // // Example filter: // // status.state = ACTIVE AND labels.env = staging AND labels.starred = * Filter string `protobuf:"bytes,7,opt,name=filter,proto3" json:"filter,omitempty"` } func (x *ListJobsRequest) Reset() { *x = ListJobsRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListJobsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListJobsRequest) ProtoMessage() {} func (x *ListJobsRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListJobsRequest.ProtoReflect.Descriptor instead. func (*ListJobsRequest) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{19} } func (x *ListJobsRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *ListJobsRequest) GetRegion() string { if x != nil { return x.Region } return "" } func (x *ListJobsRequest) GetPageSize() int32 { if x != nil { return x.PageSize } return 0 } func (x *ListJobsRequest) GetPageToken() string { if x != nil { return x.PageToken } return "" } func (x *ListJobsRequest) GetClusterName() string { if x != nil { return x.ClusterName } return "" } func (x *ListJobsRequest) GetJobStateMatcher() ListJobsRequest_JobStateMatcher { if x != nil { return x.JobStateMatcher } return ListJobsRequest_ALL } func (x *ListJobsRequest) GetFilter() string { if x != nil { return x.Filter } return "" } // A request to update a job. type UpdateJobRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The ID of the Google Cloud Platform project that the job // belongs to. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Required. The Dataproc region in which to handle the request. Region string `protobuf:"bytes,2,opt,name=region,proto3" json:"region,omitempty"` // Required. The job ID. JobId string `protobuf:"bytes,3,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // Required. The changes to the job. Job *Job `protobuf:"bytes,4,opt,name=job,proto3" json:"job,omitempty"` // Required. Specifies the path, relative to Job, of // the field to update. For example, to update the labels of a Job the // update_mask parameter would be specified as // labels, and the `PATCH` request body would specify the new // value. Note: Currently, labels is the only // field that can be updated. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,5,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` } func (x *UpdateJobRequest) Reset() { *x = UpdateJobRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateJobRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateJobRequest) ProtoMessage() {} func (x *UpdateJobRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateJobRequest.ProtoReflect.Descriptor instead. func (*UpdateJobRequest) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{20} } func (x *UpdateJobRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *UpdateJobRequest) GetRegion() string { if x != nil { return x.Region } return "" } func (x *UpdateJobRequest) GetJobId() string { if x != nil { return x.JobId } return "" } func (x *UpdateJobRequest) GetJob() *Job { if x != nil { return x.Job } return nil } func (x *UpdateJobRequest) GetUpdateMask() *fieldmaskpb.FieldMask { if x != nil { return x.UpdateMask } return nil } // A list of jobs in a project. type ListJobsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Jobs list. Jobs []*Job `protobuf:"bytes,1,rep,name=jobs,proto3" json:"jobs,omitempty"` // Optional. This token is included in the response if there are more results // to fetch. To fetch additional results, provide this value as the // `page_token` in a subsequent ListJobsRequest. NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` } func (x *ListJobsResponse) Reset() { *x = ListJobsResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListJobsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListJobsResponse) ProtoMessage() {} func (x *ListJobsResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListJobsResponse.ProtoReflect.Descriptor instead. func (*ListJobsResponse) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{21} } func (x *ListJobsResponse) GetJobs() []*Job { if x != nil { return x.Jobs } return nil } func (x *ListJobsResponse) GetNextPageToken() string { if x != nil { return x.NextPageToken } return "" } // A request to cancel a job. type CancelJobRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The ID of the Google Cloud Platform project that the job // belongs to. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Required. The Dataproc region in which to handle the request. Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"` // Required. The job ID. JobId string `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` } func (x *CancelJobRequest) Reset() { *x = CancelJobRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CancelJobRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CancelJobRequest) ProtoMessage() {} func (x *CancelJobRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CancelJobRequest.ProtoReflect.Descriptor instead. func (*CancelJobRequest) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{22} } func (x *CancelJobRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *CancelJobRequest) GetRegion() string { if x != nil { return x.Region } return "" } func (x *CancelJobRequest) GetJobId() string { if x != nil { return x.JobId } return "" } // A request to delete a job. type DeleteJobRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The ID of the Google Cloud Platform project that the job // belongs to. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Required. The Dataproc region in which to handle the request. Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"` // Required. The job ID. JobId string `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` } func (x *DeleteJobRequest) Reset() { *x = DeleteJobRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteJobRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteJobRequest) ProtoMessage() {} func (x *DeleteJobRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeleteJobRequest.ProtoReflect.Descriptor instead. func (*DeleteJobRequest) Descriptor() ([]byte, []int) { return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP(), []int{23} } func (x *DeleteJobRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *DeleteJobRequest) GetRegion() string { if x != nil { return x.Region } return "" } func (x *DeleteJobRequest) GetJobId() string { if x != nil { return x.JobId } return "" } var File_google_cloud_dataproc_v1beta2_jobs_proto protoreflect.FileDescriptor var file_google_cloud_dataproc_v1beta2_jobs_proto_rawDesc = []byte{ 0x0a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe8, 0x02, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x6d, 0x0a, 0x11, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x1a, 0x76, 0x0a, 0x14, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x48, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x70, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x57, 0x41, 0x52, 0x4e, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x07, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x46, 0x46, 0x10, 0x08, 0x22, 0xe7, 0x03, 0x0a, 0x09, 0x48, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x4a, 0x6f, 0x62, 0x12, 0x2b, 0x0a, 0x11, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6a, 0x61, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x61, 0x69, 0x6e, 0x4a, 0x61, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x12, 0x1f, 0x0a, 0x0a, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x27, 0x0a, 0x0d, 0x6a, 0x61, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x6a, 0x61, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x55, 0x72, 0x69, 0x73, 0x12, 0x5d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x48, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x4a, 0x6f, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x22, 0xe5, 0x03, 0x0a, 0x08, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x4a, 0x6f, 0x62, 0x12, 0x2b, 0x0a, 0x11, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6a, 0x61, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x61, 0x69, 0x6e, 0x4a, 0x61, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x12, 0x1f, 0x0a, 0x0a, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x27, 0x0a, 0x0d, 0x6a, 0x61, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x6a, 0x61, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x55, 0x72, 0x69, 0x73, 0x12, 0x5c, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x4a, 0x6f, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x22, 0xf6, 0x03, 0x0a, 0x0a, 0x50, 0x79, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x4a, 0x6f, 0x62, 0x12, 0x34, 0x0a, 0x14, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x69, 0x6e, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x73, 0x12, 0x27, 0x0a, 0x0d, 0x6a, 0x61, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x6a, 0x61, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x55, 0x72, 0x69, 0x73, 0x12, 0x5e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x50, 0x79, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x4a, 0x6f, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2a, 0x0a, 0x09, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xb2, 0x04, 0x0a, 0x07, 0x48, 0x69, 0x76, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x26, 0x0a, 0x0e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x12, 0x49, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x4f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x6b, 0x0a, 0x10, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x48, 0x69, 0x76, 0x65, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x5b, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x48, 0x69, 0x76, 0x65, 0x4a, 0x6f, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0d, 0x6a, 0x61, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x6a, 0x61, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x73, 0x1a, 0x42, 0x0a, 0x14, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xe3, 0x04, 0x0a, 0x0b, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x53, 0x71, 0x6c, 0x4a, 0x6f, 0x62, 0x12, 0x26, 0x0a, 0x0e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x12, 0x49, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x6f, 0x0a, 0x10, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x53, 0x71, 0x6c, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x53, 0x71, 0x6c, 0x4a, 0x6f, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0d, 0x6a, 0x61, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x38, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x6a, 0x61, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x73, 0x12, 0x58, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x42, 0x0a, 0x14, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0x89, 0x05, 0x0a, 0x06, 0x50, 0x69, 0x67, 0x4a, 0x6f, 0x62, 0x12, 0x26, 0x0a, 0x0e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x12, 0x49, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x4f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x6a, 0x0a, 0x10, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x50, 0x69, 0x67, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x50, 0x69, 0x67, 0x4a, 0x6f, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0d, 0x6a, 0x61, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x6a, 0x61, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x73, 0x12, 0x58, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x42, 0x0a, 0x14, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0x92, 0x03, 0x0a, 0x09, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x52, 0x4a, 0x6f, 0x62, 0x12, 0x2a, 0x0a, 0x0f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x55, 0x72, 0x69, 0x73, 0x12, 0x5d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x52, 0x4a, 0x6f, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x86, 0x04, 0x0a, 0x09, 0x50, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x4a, 0x6f, 0x62, 0x12, 0x26, 0x0a, 0x0e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x12, 0x49, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x4f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x67, 0x73, 0x12, 0x5d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x4a, 0x6f, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0x5e, 0x0a, 0x0c, 0x4a, 0x6f, 0x62, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x22, 0x8a, 0x04, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x49, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x49, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x73, 0x75, 0x62, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x45, 0x54, 0x55, 0x50, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x08, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x54, 0x54, 0x45, 0x4d, 0x50, 0x54, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x09, 0x22, 0x48, 0x0a, 0x08, 0x53, 0x75, 0x62, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x51, 0x55, 0x45, 0x55, 0x45, 0x44, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x03, 0x22, 0x4e, 0x0a, 0x0c, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0xce, 0x02, 0x0a, 0x0f, 0x59, 0x61, 0x72, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x59, 0x61, 0x72, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x55, 0x72, 0x6c, 0x22, 0x87, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x45, 0x57, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x45, 0x57, 0x5f, 0x53, 0x41, 0x56, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x4b, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x08, 0x22, 0xe5, 0x0b, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x4e, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x4e, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x0a, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x48, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x4a, 0x6f, 0x62, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x09, 0x68, 0x61, 0x64, 0x6f, 0x6f, 0x70, 0x4a, 0x6f, 0x62, 0x12, 0x4b, 0x0a, 0x09, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x4a, 0x6f, 0x62, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x08, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x4a, 0x6f, 0x62, 0x12, 0x51, 0x0a, 0x0b, 0x70, 0x79, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x50, 0x79, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x4a, 0x6f, 0x62, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x79, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x4a, 0x6f, 0x62, 0x12, 0x48, 0x0a, 0x08, 0x68, 0x69, 0x76, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x48, 0x69, 0x76, 0x65, 0x4a, 0x6f, 0x62, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x07, 0x68, 0x69, 0x76, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x45, 0x0a, 0x07, 0x70, 0x69, 0x67, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x50, 0x69, 0x67, 0x4a, 0x6f, 0x62, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x06, 0x70, 0x69, 0x67, 0x4a, 0x6f, 0x62, 0x12, 0x4f, 0x0a, 0x0b, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x5f, 0x72, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x52, 0x4a, 0x6f, 0x62, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x09, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x52, 0x4a, 0x6f, 0x62, 0x12, 0x55, 0x0a, 0x0d, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x5f, 0x73, 0x71, 0x6c, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x53, 0x71, 0x6c, 0x4a, 0x6f, 0x62, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x53, 0x71, 0x6c, 0x4a, 0x6f, 0x62, 0x12, 0x4e, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x4a, 0x6f, 0x62, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x09, 0x70, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x4a, 0x6f, 0x62, 0x12, 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x60, 0x0a, 0x11, 0x79, 0x61, 0x72, 0x6e, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x59, 0x61, 0x72, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x79, 0x61, 0x72, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x40, 0x0a, 0x1a, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x17, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x72, 0x69, 0x12, 0x3c, 0x0a, 0x18, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x55, 0x72, 0x69, 0x12, 0x4b, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x51, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x55, 0x75, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x22, 0x47, 0x0a, 0x0d, 0x4a, 0x6f, 0x62, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x36, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x50, 0x65, 0x72, 0x48, 0x6f, 0x75, 0x72, 0x22, 0xdc, 0x01, 0x0a, 0x0b, 0x4a, 0x6f, 0x62, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x86, 0x03, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x6f, 0x0a, 0x11, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x36, 0x0a, 0x0f, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x22, 0xec, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x7c, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x6f, 0x0a, 0x10, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x6f, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x32, 0xe7, 0x0b, 0x0a, 0x0d, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0xc2, 0x01, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x22, 0x60, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x22, 0x3b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x3a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x17, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x6a, 0x6f, 0x62, 0x12, 0xe9, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x41, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x22, 0x46, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x3a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x41, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x17, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x6a, 0x6f, 0x62, 0xca, 0x41, 0x12, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x0b, 0x4a, 0x6f, 0x62, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xbe, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x22, 0x62, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x7d, 0xda, 0x41, 0x1a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x12, 0xdb, 0x01, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0xda, 0x41, 0x12, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0xda, 0x41, 0x1a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0xac, 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x22, 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x32, 0x3d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0xce, 0x01, 0x0a, 0x09, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x4a, 0x6f, 0x62, 0x22, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x22, 0x44, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x1a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x12, 0xb8, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x62, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x2a, 0x3d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x7d, 0xda, 0x41, 0x1a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x1a, 0x4b, 0xca, 0x41, 0x17, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x77, 0x0a, 0x21, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x42, 0x09, 0x4a, 0x6f, 0x62, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x32, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescOnce sync.Once file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescData = file_google_cloud_dataproc_v1beta2_jobs_proto_rawDesc ) func file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescGZIP() []byte { file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescOnce.Do(func() { file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescData) }) return file_google_cloud_dataproc_v1beta2_jobs_proto_rawDescData } var file_google_cloud_dataproc_v1beta2_jobs_proto_enumTypes = make([]protoimpl.EnumInfo, 5) var file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes = make([]protoimpl.MessageInfo, 37) var file_google_cloud_dataproc_v1beta2_jobs_proto_goTypes = []interface{}{ (LoggingConfig_Level)(0), // 0: google.cloud.dataproc.v1beta2.LoggingConfig.Level (JobStatus_State)(0), // 1: google.cloud.dataproc.v1beta2.JobStatus.State (JobStatus_Substate)(0), // 2: google.cloud.dataproc.v1beta2.JobStatus.Substate (YarnApplication_State)(0), // 3: google.cloud.dataproc.v1beta2.YarnApplication.State (ListJobsRequest_JobStateMatcher)(0), // 4: google.cloud.dataproc.v1beta2.ListJobsRequest.JobStateMatcher (*LoggingConfig)(nil), // 5: google.cloud.dataproc.v1beta2.LoggingConfig (*HadoopJob)(nil), // 6: google.cloud.dataproc.v1beta2.HadoopJob (*SparkJob)(nil), // 7: google.cloud.dataproc.v1beta2.SparkJob (*PySparkJob)(nil), // 8: google.cloud.dataproc.v1beta2.PySparkJob (*QueryList)(nil), // 9: google.cloud.dataproc.v1beta2.QueryList (*HiveJob)(nil), // 10: google.cloud.dataproc.v1beta2.HiveJob (*SparkSqlJob)(nil), // 11: google.cloud.dataproc.v1beta2.SparkSqlJob (*PigJob)(nil), // 12: google.cloud.dataproc.v1beta2.PigJob (*SparkRJob)(nil), // 13: google.cloud.dataproc.v1beta2.SparkRJob (*PrestoJob)(nil), // 14: google.cloud.dataproc.v1beta2.PrestoJob (*JobPlacement)(nil), // 15: google.cloud.dataproc.v1beta2.JobPlacement (*JobStatus)(nil), // 16: google.cloud.dataproc.v1beta2.JobStatus (*JobReference)(nil), // 17: google.cloud.dataproc.v1beta2.JobReference (*YarnApplication)(nil), // 18: google.cloud.dataproc.v1beta2.YarnApplication (*Job)(nil), // 19: google.cloud.dataproc.v1beta2.Job (*JobScheduling)(nil), // 20: google.cloud.dataproc.v1beta2.JobScheduling (*JobMetadata)(nil), // 21: google.cloud.dataproc.v1beta2.JobMetadata (*SubmitJobRequest)(nil), // 22: google.cloud.dataproc.v1beta2.SubmitJobRequest (*GetJobRequest)(nil), // 23: google.cloud.dataproc.v1beta2.GetJobRequest (*ListJobsRequest)(nil), // 24: google.cloud.dataproc.v1beta2.ListJobsRequest (*UpdateJobRequest)(nil), // 25: google.cloud.dataproc.v1beta2.UpdateJobRequest (*ListJobsResponse)(nil), // 26: google.cloud.dataproc.v1beta2.ListJobsResponse (*CancelJobRequest)(nil), // 27: google.cloud.dataproc.v1beta2.CancelJobRequest (*DeleteJobRequest)(nil), // 28: google.cloud.dataproc.v1beta2.DeleteJobRequest nil, // 29: google.cloud.dataproc.v1beta2.LoggingConfig.DriverLogLevelsEntry nil, // 30: google.cloud.dataproc.v1beta2.HadoopJob.PropertiesEntry nil, // 31: google.cloud.dataproc.v1beta2.SparkJob.PropertiesEntry nil, // 32: google.cloud.dataproc.v1beta2.PySparkJob.PropertiesEntry nil, // 33: google.cloud.dataproc.v1beta2.HiveJob.ScriptVariablesEntry nil, // 34: google.cloud.dataproc.v1beta2.HiveJob.PropertiesEntry nil, // 35: google.cloud.dataproc.v1beta2.SparkSqlJob.ScriptVariablesEntry nil, // 36: google.cloud.dataproc.v1beta2.SparkSqlJob.PropertiesEntry nil, // 37: google.cloud.dataproc.v1beta2.PigJob.ScriptVariablesEntry nil, // 38: google.cloud.dataproc.v1beta2.PigJob.PropertiesEntry nil, // 39: google.cloud.dataproc.v1beta2.SparkRJob.PropertiesEntry nil, // 40: google.cloud.dataproc.v1beta2.PrestoJob.PropertiesEntry nil, // 41: google.cloud.dataproc.v1beta2.Job.LabelsEntry (*timestamppb.Timestamp)(nil), // 42: google.protobuf.Timestamp (*fieldmaskpb.FieldMask)(nil), // 43: google.protobuf.FieldMask (*longrunning.Operation)(nil), // 44: google.longrunning.Operation (*emptypb.Empty)(nil), // 45: google.protobuf.Empty } var file_google_cloud_dataproc_v1beta2_jobs_proto_depIdxs = []int32{ 29, // 0: google.cloud.dataproc.v1beta2.LoggingConfig.driver_log_levels:type_name -> google.cloud.dataproc.v1beta2.LoggingConfig.DriverLogLevelsEntry 30, // 1: google.cloud.dataproc.v1beta2.HadoopJob.properties:type_name -> google.cloud.dataproc.v1beta2.HadoopJob.PropertiesEntry 5, // 2: google.cloud.dataproc.v1beta2.HadoopJob.logging_config:type_name -> google.cloud.dataproc.v1beta2.LoggingConfig 31, // 3: google.cloud.dataproc.v1beta2.SparkJob.properties:type_name -> google.cloud.dataproc.v1beta2.SparkJob.PropertiesEntry 5, // 4: google.cloud.dataproc.v1beta2.SparkJob.logging_config:type_name -> google.cloud.dataproc.v1beta2.LoggingConfig 32, // 5: google.cloud.dataproc.v1beta2.PySparkJob.properties:type_name -> google.cloud.dataproc.v1beta2.PySparkJob.PropertiesEntry 5, // 6: google.cloud.dataproc.v1beta2.PySparkJob.logging_config:type_name -> google.cloud.dataproc.v1beta2.LoggingConfig 9, // 7: google.cloud.dataproc.v1beta2.HiveJob.query_list:type_name -> google.cloud.dataproc.v1beta2.QueryList 33, // 8: google.cloud.dataproc.v1beta2.HiveJob.script_variables:type_name -> google.cloud.dataproc.v1beta2.HiveJob.ScriptVariablesEntry 34, // 9: google.cloud.dataproc.v1beta2.HiveJob.properties:type_name -> google.cloud.dataproc.v1beta2.HiveJob.PropertiesEntry 9, // 10: google.cloud.dataproc.v1beta2.SparkSqlJob.query_list:type_name -> google.cloud.dataproc.v1beta2.QueryList 35, // 11: google.cloud.dataproc.v1beta2.SparkSqlJob.script_variables:type_name -> google.cloud.dataproc.v1beta2.SparkSqlJob.ScriptVariablesEntry 36, // 12: google.cloud.dataproc.v1beta2.SparkSqlJob.properties:type_name -> google.cloud.dataproc.v1beta2.SparkSqlJob.PropertiesEntry 5, // 13: google.cloud.dataproc.v1beta2.SparkSqlJob.logging_config:type_name -> google.cloud.dataproc.v1beta2.LoggingConfig 9, // 14: google.cloud.dataproc.v1beta2.PigJob.query_list:type_name -> google.cloud.dataproc.v1beta2.QueryList 37, // 15: google.cloud.dataproc.v1beta2.PigJob.script_variables:type_name -> google.cloud.dataproc.v1beta2.PigJob.ScriptVariablesEntry 38, // 16: google.cloud.dataproc.v1beta2.PigJob.properties:type_name -> google.cloud.dataproc.v1beta2.PigJob.PropertiesEntry 5, // 17: google.cloud.dataproc.v1beta2.PigJob.logging_config:type_name -> google.cloud.dataproc.v1beta2.LoggingConfig 39, // 18: google.cloud.dataproc.v1beta2.SparkRJob.properties:type_name -> google.cloud.dataproc.v1beta2.SparkRJob.PropertiesEntry 5, // 19: google.cloud.dataproc.v1beta2.SparkRJob.logging_config:type_name -> google.cloud.dataproc.v1beta2.LoggingConfig 9, // 20: google.cloud.dataproc.v1beta2.PrestoJob.query_list:type_name -> google.cloud.dataproc.v1beta2.QueryList 40, // 21: google.cloud.dataproc.v1beta2.PrestoJob.properties:type_name -> google.cloud.dataproc.v1beta2.PrestoJob.PropertiesEntry 5, // 22: google.cloud.dataproc.v1beta2.PrestoJob.logging_config:type_name -> google.cloud.dataproc.v1beta2.LoggingConfig 1, // 23: google.cloud.dataproc.v1beta2.JobStatus.state:type_name -> google.cloud.dataproc.v1beta2.JobStatus.State 42, // 24: google.cloud.dataproc.v1beta2.JobStatus.state_start_time:type_name -> google.protobuf.Timestamp 2, // 25: google.cloud.dataproc.v1beta2.JobStatus.substate:type_name -> google.cloud.dataproc.v1beta2.JobStatus.Substate 3, // 26: google.cloud.dataproc.v1beta2.YarnApplication.state:type_name -> google.cloud.dataproc.v1beta2.YarnApplication.State 17, // 27: google.cloud.dataproc.v1beta2.Job.reference:type_name -> google.cloud.dataproc.v1beta2.JobReference 15, // 28: google.cloud.dataproc.v1beta2.Job.placement:type_name -> google.cloud.dataproc.v1beta2.JobPlacement 6, // 29: google.cloud.dataproc.v1beta2.Job.hadoop_job:type_name -> google.cloud.dataproc.v1beta2.HadoopJob 7, // 30: google.cloud.dataproc.v1beta2.Job.spark_job:type_name -> google.cloud.dataproc.v1beta2.SparkJob 8, // 31: google.cloud.dataproc.v1beta2.Job.pyspark_job:type_name -> google.cloud.dataproc.v1beta2.PySparkJob 10, // 32: google.cloud.dataproc.v1beta2.Job.hive_job:type_name -> google.cloud.dataproc.v1beta2.HiveJob 12, // 33: google.cloud.dataproc.v1beta2.Job.pig_job:type_name -> google.cloud.dataproc.v1beta2.PigJob 13, // 34: google.cloud.dataproc.v1beta2.Job.spark_r_job:type_name -> google.cloud.dataproc.v1beta2.SparkRJob 11, // 35: google.cloud.dataproc.v1beta2.Job.spark_sql_job:type_name -> google.cloud.dataproc.v1beta2.SparkSqlJob 14, // 36: google.cloud.dataproc.v1beta2.Job.presto_job:type_name -> google.cloud.dataproc.v1beta2.PrestoJob 16, // 37: google.cloud.dataproc.v1beta2.Job.status:type_name -> google.cloud.dataproc.v1beta2.JobStatus 16, // 38: google.cloud.dataproc.v1beta2.Job.status_history:type_name -> google.cloud.dataproc.v1beta2.JobStatus 18, // 39: google.cloud.dataproc.v1beta2.Job.yarn_applications:type_name -> google.cloud.dataproc.v1beta2.YarnApplication 41, // 40: google.cloud.dataproc.v1beta2.Job.labels:type_name -> google.cloud.dataproc.v1beta2.Job.LabelsEntry 20, // 41: google.cloud.dataproc.v1beta2.Job.scheduling:type_name -> google.cloud.dataproc.v1beta2.JobScheduling 16, // 42: google.cloud.dataproc.v1beta2.JobMetadata.status:type_name -> google.cloud.dataproc.v1beta2.JobStatus 42, // 43: google.cloud.dataproc.v1beta2.JobMetadata.start_time:type_name -> google.protobuf.Timestamp 19, // 44: google.cloud.dataproc.v1beta2.SubmitJobRequest.job:type_name -> google.cloud.dataproc.v1beta2.Job 4, // 45: google.cloud.dataproc.v1beta2.ListJobsRequest.job_state_matcher:type_name -> google.cloud.dataproc.v1beta2.ListJobsRequest.JobStateMatcher 19, // 46: google.cloud.dataproc.v1beta2.UpdateJobRequest.job:type_name -> google.cloud.dataproc.v1beta2.Job 43, // 47: google.cloud.dataproc.v1beta2.UpdateJobRequest.update_mask:type_name -> google.protobuf.FieldMask 19, // 48: google.cloud.dataproc.v1beta2.ListJobsResponse.jobs:type_name -> google.cloud.dataproc.v1beta2.Job 0, // 49: google.cloud.dataproc.v1beta2.LoggingConfig.DriverLogLevelsEntry.value:type_name -> google.cloud.dataproc.v1beta2.LoggingConfig.Level 22, // 50: google.cloud.dataproc.v1beta2.JobController.SubmitJob:input_type -> google.cloud.dataproc.v1beta2.SubmitJobRequest 22, // 51: google.cloud.dataproc.v1beta2.JobController.SubmitJobAsOperation:input_type -> google.cloud.dataproc.v1beta2.SubmitJobRequest 23, // 52: google.cloud.dataproc.v1beta2.JobController.GetJob:input_type -> google.cloud.dataproc.v1beta2.GetJobRequest 24, // 53: google.cloud.dataproc.v1beta2.JobController.ListJobs:input_type -> google.cloud.dataproc.v1beta2.ListJobsRequest 25, // 54: google.cloud.dataproc.v1beta2.JobController.UpdateJob:input_type -> google.cloud.dataproc.v1beta2.UpdateJobRequest 27, // 55: google.cloud.dataproc.v1beta2.JobController.CancelJob:input_type -> google.cloud.dataproc.v1beta2.CancelJobRequest 28, // 56: google.cloud.dataproc.v1beta2.JobController.DeleteJob:input_type -> google.cloud.dataproc.v1beta2.DeleteJobRequest 19, // 57: google.cloud.dataproc.v1beta2.JobController.SubmitJob:output_type -> google.cloud.dataproc.v1beta2.Job 44, // 58: google.cloud.dataproc.v1beta2.JobController.SubmitJobAsOperation:output_type -> google.longrunning.Operation 19, // 59: google.cloud.dataproc.v1beta2.JobController.GetJob:output_type -> google.cloud.dataproc.v1beta2.Job 26, // 60: google.cloud.dataproc.v1beta2.JobController.ListJobs:output_type -> google.cloud.dataproc.v1beta2.ListJobsResponse 19, // 61: google.cloud.dataproc.v1beta2.JobController.UpdateJob:output_type -> google.cloud.dataproc.v1beta2.Job 19, // 62: google.cloud.dataproc.v1beta2.JobController.CancelJob:output_type -> google.cloud.dataproc.v1beta2.Job 45, // 63: google.cloud.dataproc.v1beta2.JobController.DeleteJob:output_type -> google.protobuf.Empty 57, // [57:64] is the sub-list for method output_type 50, // [50:57] is the sub-list for method input_type 50, // [50:50] is the sub-list for extension type_name 50, // [50:50] is the sub-list for extension extendee 0, // [0:50] is the sub-list for field type_name } func init() { file_google_cloud_dataproc_v1beta2_jobs_proto_init() } func file_google_cloud_dataproc_v1beta2_jobs_proto_init() { if File_google_cloud_dataproc_v1beta2_jobs_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoggingConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HadoopJob); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SparkJob); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PySparkJob); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueryList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HiveJob); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SparkSqlJob); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PigJob); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SparkRJob); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrestoJob); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobPlacement); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobStatus); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobReference); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*YarnApplication); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Job); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobScheduling); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobMetadata); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubmitJobRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetJobRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListJobsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateJobRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListJobsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CancelJobRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteJobRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[1].OneofWrappers = []interface{}{ (*HadoopJob_MainJarFileUri)(nil), (*HadoopJob_MainClass)(nil), } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[2].OneofWrappers = []interface{}{ (*SparkJob_MainJarFileUri)(nil), (*SparkJob_MainClass)(nil), } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[5].OneofWrappers = []interface{}{ (*HiveJob_QueryFileUri)(nil), (*HiveJob_QueryList)(nil), } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[6].OneofWrappers = []interface{}{ (*SparkSqlJob_QueryFileUri)(nil), (*SparkSqlJob_QueryList)(nil), } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[7].OneofWrappers = []interface{}{ (*PigJob_QueryFileUri)(nil), (*PigJob_QueryList)(nil), } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[9].OneofWrappers = []interface{}{ (*PrestoJob_QueryFileUri)(nil), (*PrestoJob_QueryList)(nil), } file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes[14].OneofWrappers = []interface{}{ (*Job_HadoopJob)(nil), (*Job_SparkJob)(nil), (*Job_PysparkJob)(nil), (*Job_HiveJob)(nil), (*Job_PigJob)(nil), (*Job_SparkRJob)(nil), (*Job_SparkSqlJob)(nil), (*Job_PrestoJob)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_dataproc_v1beta2_jobs_proto_rawDesc, NumEnums: 5, NumMessages: 37, NumExtensions: 0, NumServices: 1, }, GoTypes: file_google_cloud_dataproc_v1beta2_jobs_proto_goTypes, DependencyIndexes: file_google_cloud_dataproc_v1beta2_jobs_proto_depIdxs, EnumInfos: file_google_cloud_dataproc_v1beta2_jobs_proto_enumTypes, MessageInfos: file_google_cloud_dataproc_v1beta2_jobs_proto_msgTypes, }.Build() File_google_cloud_dataproc_v1beta2_jobs_proto = out.File file_google_cloud_dataproc_v1beta2_jobs_proto_rawDesc = nil file_google_cloud_dataproc_v1beta2_jobs_proto_goTypes = nil file_google_cloud_dataproc_v1beta2_jobs_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. const _ = grpc.SupportPackageIsVersion6 // JobControllerClient is the client API for JobController service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type JobControllerClient interface { // Submits a job to a cluster. SubmitJob(ctx context.Context, in *SubmitJobRequest, opts ...grpc.CallOption) (*Job, error) // Submits job to a cluster. SubmitJobAsOperation(ctx context.Context, in *SubmitJobRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Gets the resource representation for a job in a project. GetJob(ctx context.Context, in *GetJobRequest, opts ...grpc.CallOption) (*Job, error) // Lists regions/{region}/jobs in a project. ListJobs(ctx context.Context, in *ListJobsRequest, opts ...grpc.CallOption) (*ListJobsResponse, error) // Updates a job in a project. UpdateJob(ctx context.Context, in *UpdateJobRequest, opts ...grpc.CallOption) (*Job, error) // Starts a job cancellation request. To access the job resource // after cancellation, call // regions/{region}/jobs.list // or // regions/{region}/jobs.get. CancelJob(ctx context.Context, in *CancelJobRequest, opts ...grpc.CallOption) (*Job, error) // Deletes the job from the project. If the job is active, the delete fails, // and the response returns `FAILED_PRECONDITION`. DeleteJob(ctx context.Context, in *DeleteJobRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) } type jobControllerClient struct { cc grpc.ClientConnInterface } func NewJobControllerClient(cc grpc.ClientConnInterface) JobControllerClient { return &jobControllerClient{cc} } func (c *jobControllerClient) SubmitJob(ctx context.Context, in *SubmitJobRequest, opts ...grpc.CallOption) (*Job, error) { out := new(Job) err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1beta2.JobController/SubmitJob", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *jobControllerClient) SubmitJobAsOperation(ctx context.Context, in *SubmitJobRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1beta2.JobController/SubmitJobAsOperation", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *jobControllerClient) GetJob(ctx context.Context, in *GetJobRequest, opts ...grpc.CallOption) (*Job, error) { out := new(Job) err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1beta2.JobController/GetJob", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *jobControllerClient) ListJobs(ctx context.Context, in *ListJobsRequest, opts ...grpc.CallOption) (*ListJobsResponse, error) { out := new(ListJobsResponse) err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1beta2.JobController/ListJobs", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *jobControllerClient) UpdateJob(ctx context.Context, in *UpdateJobRequest, opts ...grpc.CallOption) (*Job, error) { out := new(Job) err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1beta2.JobController/UpdateJob", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *jobControllerClient) CancelJob(ctx context.Context, in *CancelJobRequest, opts ...grpc.CallOption) (*Job, error) { out := new(Job) err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1beta2.JobController/CancelJob", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *jobControllerClient) DeleteJob(ctx context.Context, in *DeleteJobRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1beta2.JobController/DeleteJob", in, out, opts...) if err != nil { return nil, err } return out, nil } // JobControllerServer is the server API for JobController service. type JobControllerServer interface { // Submits a job to a cluster. SubmitJob(context.Context, *SubmitJobRequest) (*Job, error) // Submits job to a cluster. SubmitJobAsOperation(context.Context, *SubmitJobRequest) (*longrunning.Operation, error) // Gets the resource representation for a job in a project. GetJob(context.Context, *GetJobRequest) (*Job, error) // Lists regions/{region}/jobs in a project. ListJobs(context.Context, *ListJobsRequest) (*ListJobsResponse, error) // Updates a job in a project. UpdateJob(context.Context, *UpdateJobRequest) (*Job, error) // Starts a job cancellation request. To access the job resource // after cancellation, call // regions/{region}/jobs.list // or // regions/{region}/jobs.get. CancelJob(context.Context, *CancelJobRequest) (*Job, error) // Deletes the job from the project. If the job is active, the delete fails, // and the response returns `FAILED_PRECONDITION`. DeleteJob(context.Context, *DeleteJobRequest) (*emptypb.Empty, error) } // UnimplementedJobControllerServer can be embedded to have forward compatible implementations. type UnimplementedJobControllerServer struct { } func (*UnimplementedJobControllerServer) SubmitJob(context.Context, *SubmitJobRequest) (*Job, error) { return nil, status.Errorf(codes.Unimplemented, "method SubmitJob not implemented") } func (*UnimplementedJobControllerServer) SubmitJobAsOperation(context.Context, *SubmitJobRequest) (*longrunning.Operation, error) { return nil, status.Errorf(codes.Unimplemented, "method SubmitJobAsOperation not implemented") } func (*UnimplementedJobControllerServer) GetJob(context.Context, *GetJobRequest) (*Job, error) { return nil, status.Errorf(codes.Unimplemented, "method GetJob not implemented") } func (*UnimplementedJobControllerServer) ListJobs(context.Context, *ListJobsRequest) (*ListJobsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListJobs not implemented") } func (*UnimplementedJobControllerServer) UpdateJob(context.Context, *UpdateJobRequest) (*Job, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateJob not implemented") } func (*UnimplementedJobControllerServer) CancelJob(context.Context, *CancelJobRequest) (*Job, error) { return nil, status.Errorf(codes.Unimplemented, "method CancelJob not implemented") } func (*UnimplementedJobControllerServer) DeleteJob(context.Context, *DeleteJobRequest) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteJob not implemented") } func RegisterJobControllerServer(s *grpc.Server, srv JobControllerServer) { s.RegisterService(&_JobController_serviceDesc, srv) } func _JobController_SubmitJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SubmitJobRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(JobControllerServer).SubmitJob(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.dataproc.v1beta2.JobController/SubmitJob", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(JobControllerServer).SubmitJob(ctx, req.(*SubmitJobRequest)) } return interceptor(ctx, in, info, handler) } func _JobController_SubmitJobAsOperation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SubmitJobRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(JobControllerServer).SubmitJobAsOperation(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.dataproc.v1beta2.JobController/SubmitJobAsOperation", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(JobControllerServer).SubmitJobAsOperation(ctx, req.(*SubmitJobRequest)) } return interceptor(ctx, in, info, handler) } func _JobController_GetJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetJobRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(JobControllerServer).GetJob(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.dataproc.v1beta2.JobController/GetJob", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(JobControllerServer).GetJob(ctx, req.(*GetJobRequest)) } return interceptor(ctx, in, info, handler) } func _JobController_ListJobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListJobsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(JobControllerServer).ListJobs(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.dataproc.v1beta2.JobController/ListJobs", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(JobControllerServer).ListJobs(ctx, req.(*ListJobsRequest)) } return interceptor(ctx, in, info, handler) } func _JobController_UpdateJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UpdateJobRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(JobControllerServer).UpdateJob(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.dataproc.v1beta2.JobController/UpdateJob", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(JobControllerServer).UpdateJob(ctx, req.(*UpdateJobRequest)) } return interceptor(ctx, in, info, handler) } func _JobController_CancelJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CancelJobRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(JobControllerServer).CancelJob(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.dataproc.v1beta2.JobController/CancelJob", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(JobControllerServer).CancelJob(ctx, req.(*CancelJobRequest)) } return interceptor(ctx, in, info, handler) } func _JobController_DeleteJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DeleteJobRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(JobControllerServer).DeleteJob(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.dataproc.v1beta2.JobController/DeleteJob", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(JobControllerServer).DeleteJob(ctx, req.(*DeleteJobRequest)) } return interceptor(ctx, in, info, handler) } var _JobController_serviceDesc = grpc.ServiceDesc{ ServiceName: "google.cloud.dataproc.v1beta2.JobController", HandlerType: (*JobControllerServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "SubmitJob", Handler: _JobController_SubmitJob_Handler, }, { MethodName: "SubmitJobAsOperation", Handler: _JobController_SubmitJobAsOperation_Handler, }, { MethodName: "GetJob", Handler: _JobController_GetJob_Handler, }, { MethodName: "ListJobs", Handler: _JobController_ListJobs_Handler, }, { MethodName: "UpdateJob", Handler: _JobController_UpdateJob_Handler, }, { MethodName: "CancelJob", Handler: _JobController_CancelJob_Handler, }, { MethodName: "DeleteJob", Handler: _JobController_DeleteJob_Handler, }, }, Streams: []grpc.StreamDesc{}, Metadata: "google/cloud/dataproc/v1beta2/jobs.proto", }