cloud.google.com/go/aiplatform@v1.106.0/apiv1beta1/aiplatformpb/batch_prediction_job.pb.go (about) 1 // Copyright 2025 Google LLC 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // Code generated by protoc-gen-go. DO NOT EDIT. 16 // versions: 17 // protoc-gen-go v1.35.2 18 // protoc v4.25.7 19 // source: google/cloud/aiplatform/v1beta1/batch_prediction_job.proto 20 21 package aiplatformpb 22 23 import ( 24 _ "google.golang.org/genproto/googleapis/api/annotations" 25 status "google.golang.org/genproto/googleapis/rpc/status" 26 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 27 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 28 structpb "google.golang.org/protobuf/types/known/structpb" 29 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 30 reflect "reflect" 31 sync "sync" 32 ) 33 34 const ( 35 // Verify that this generated code is sufficiently up-to-date. 36 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 37 // Verify that runtime/protoimpl is sufficiently up-to-date. 38 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 39 ) 40 41 // A job that uses a 42 // [Model][google.cloud.aiplatform.v1beta1.BatchPredictionJob.model] to produce 43 // predictions on multiple [input 44 // instances][google.cloud.aiplatform.v1beta1.BatchPredictionJob.input_config]. 45 // If predictions for significant portion of the instances fail, the job may 46 // finish without attempting predictions for all remaining instances. 47 type BatchPredictionJob struct { 48 state protoimpl.MessageState 49 sizeCache protoimpl.SizeCache 50 unknownFields protoimpl.UnknownFields 51 52 // Output only. Resource name of the BatchPredictionJob. 53 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 54 // Required. The user-defined name of this BatchPredictionJob. 55 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 56 // The name of the Model resource that produces the predictions via this job, 57 // must share the same ancestor Location. 58 // Starting this job has no impact on any existing deployments of the Model 59 // and their resources. 60 // Exactly one of model and unmanaged_container_model must be set. 61 // 62 // The model resource name may contain version id or version alias to specify 63 // the version. 64 // 65 // Example: `projects/{project}/locations/{location}/models/{model}@2` 66 // or 67 // `projects/{project}/locations/{location}/models/{model}@golden` 68 // 69 // if no version is specified, the default version will be deployed. 70 // 71 // The model resource could also be a publisher model. 72 // 73 // Example: `publishers/{publisher}/models/{model}` 74 // or 75 // `projects/{project}/locations/{location}/publishers/{publisher}/models/{model}` 76 Model string `protobuf:"bytes,3,opt,name=model,proto3" json:"model,omitempty"` 77 // Output only. The version ID of the Model that produces the predictions via 78 // this job. 79 ModelVersionId string `protobuf:"bytes,30,opt,name=model_version_id,json=modelVersionId,proto3" json:"model_version_id,omitempty"` 80 // Contains model information necessary to perform batch prediction without 81 // requiring uploading to model registry. 82 // Exactly one of model and unmanaged_container_model must be set. 83 UnmanagedContainerModel *UnmanagedContainerModel `protobuf:"bytes,28,opt,name=unmanaged_container_model,json=unmanagedContainerModel,proto3" json:"unmanaged_container_model,omitempty"` 84 // Required. Input configuration of the instances on which predictions are 85 // performed. The schema of any single instance may be specified via the 86 // [Model's][google.cloud.aiplatform.v1beta1.BatchPredictionJob.model] 87 // [PredictSchemata's][google.cloud.aiplatform.v1beta1.Model.predict_schemata] 88 // [instance_schema_uri][google.cloud.aiplatform.v1beta1.PredictSchemata.instance_schema_uri]. 89 InputConfig *BatchPredictionJob_InputConfig `protobuf:"bytes,4,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"` 90 // Configuration for how to convert batch prediction input instances to the 91 // prediction instances that are sent to the Model. 92 InstanceConfig *BatchPredictionJob_InstanceConfig `protobuf:"bytes,27,opt,name=instance_config,json=instanceConfig,proto3" json:"instance_config,omitempty"` 93 // The parameters that govern the predictions. The schema of the parameters 94 // may be specified via the 95 // [Model's][google.cloud.aiplatform.v1beta1.BatchPredictionJob.model] 96 // [PredictSchemata's][google.cloud.aiplatform.v1beta1.Model.predict_schemata] 97 // [parameters_schema_uri][google.cloud.aiplatform.v1beta1.PredictSchemata.parameters_schema_uri]. 98 ModelParameters *structpb.Value `protobuf:"bytes,5,opt,name=model_parameters,json=modelParameters,proto3" json:"model_parameters,omitempty"` 99 // Required. The Configuration specifying where output predictions should 100 // be written. 101 // The schema of any single prediction may be specified as a concatenation 102 // of [Model's][google.cloud.aiplatform.v1beta1.BatchPredictionJob.model] 103 // [PredictSchemata's][google.cloud.aiplatform.v1beta1.Model.predict_schemata] 104 // [instance_schema_uri][google.cloud.aiplatform.v1beta1.PredictSchemata.instance_schema_uri] 105 // and 106 // [prediction_schema_uri][google.cloud.aiplatform.v1beta1.PredictSchemata.prediction_schema_uri]. 107 OutputConfig *BatchPredictionJob_OutputConfig `protobuf:"bytes,6,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"` 108 // The config of resources used by the Model during the batch prediction. If 109 // the Model 110 // [supports][google.cloud.aiplatform.v1beta1.Model.supported_deployment_resources_types] 111 // DEDICATED_RESOURCES this config may be provided (and the job will use these 112 // resources), if the Model doesn't support AUTOMATIC_RESOURCES, this config 113 // must be provided. 114 DedicatedResources *BatchDedicatedResources `protobuf:"bytes,7,opt,name=dedicated_resources,json=dedicatedResources,proto3" json:"dedicated_resources,omitempty"` 115 // The service account that the DeployedModel's container runs as. If not 116 // specified, a system generated one will be used, which 117 // has minimal permissions and the custom container, if used, may not have 118 // enough permission to access other Google Cloud resources. 119 // 120 // Users deploying the Model must have the `iam.serviceAccounts.actAs` 121 // permission on this service account. 122 ServiceAccount string `protobuf:"bytes,29,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"` 123 // Immutable. Parameters configuring the batch behavior. Currently only 124 // applicable when 125 // [dedicated_resources][google.cloud.aiplatform.v1beta1.BatchPredictionJob.dedicated_resources] 126 // are used (in other cases Vertex AI does the tuning itself). 127 ManualBatchTuningParameters *ManualBatchTuningParameters `protobuf:"bytes,8,opt,name=manual_batch_tuning_parameters,json=manualBatchTuningParameters,proto3" json:"manual_batch_tuning_parameters,omitempty"` 128 // Generate explanation with the batch prediction results. 129 // 130 // When set to `true`, the batch prediction output changes based on the 131 // `predictions_format` field of the 132 // [BatchPredictionJob.output_config][google.cloud.aiplatform.v1beta1.BatchPredictionJob.output_config] 133 // object: 134 // 135 // - `bigquery`: output includes a column named `explanation`. The value 136 // is a struct that conforms to the 137 // [Explanation][google.cloud.aiplatform.v1beta1.Explanation] object. 138 // - `jsonl`: The JSON objects on each line include an additional entry 139 // keyed `explanation`. The value of the entry is a JSON object that 140 // conforms to the 141 // [Explanation][google.cloud.aiplatform.v1beta1.Explanation] object. 142 // - `csv`: Generating explanations for CSV format is not supported. 143 // 144 // If this field is set to true, either the 145 // [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec] 146 // or 147 // [explanation_spec][google.cloud.aiplatform.v1beta1.BatchPredictionJob.explanation_spec] 148 // must be populated. 149 GenerateExplanation bool `protobuf:"varint,23,opt,name=generate_explanation,json=generateExplanation,proto3" json:"generate_explanation,omitempty"` 150 // Explanation configuration for this BatchPredictionJob. Can be 151 // specified only if 152 // [generate_explanation][google.cloud.aiplatform.v1beta1.BatchPredictionJob.generate_explanation] 153 // is set to `true`. 154 // 155 // This value overrides the value of 156 // [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec]. 157 // All fields of 158 // [explanation_spec][google.cloud.aiplatform.v1beta1.BatchPredictionJob.explanation_spec] 159 // are optional in the request. If a field of the 160 // [explanation_spec][google.cloud.aiplatform.v1beta1.BatchPredictionJob.explanation_spec] 161 // object is not populated, the corresponding field of the 162 // [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec] 163 // object is inherited. 164 ExplanationSpec *ExplanationSpec `protobuf:"bytes,25,opt,name=explanation_spec,json=explanationSpec,proto3" json:"explanation_spec,omitempty"` 165 // Output only. Information further describing the output of this job. 166 OutputInfo *BatchPredictionJob_OutputInfo `protobuf:"bytes,9,opt,name=output_info,json=outputInfo,proto3" json:"output_info,omitempty"` 167 // Output only. The detailed state of the job. 168 State JobState `protobuf:"varint,10,opt,name=state,proto3,enum=google.cloud.aiplatform.v1beta1.JobState" json:"state,omitempty"` 169 // Output only. Only populated when the job's state is JOB_STATE_FAILED or 170 // JOB_STATE_CANCELLED. 171 Error *status.Status `protobuf:"bytes,11,opt,name=error,proto3" json:"error,omitempty"` 172 // Output only. Partial failures encountered. 173 // For example, single files that can't be read. 174 // This field never exceeds 20 entries. 175 // Status details fields contain standard Google Cloud error details. 176 PartialFailures []*status.Status `protobuf:"bytes,12,rep,name=partial_failures,json=partialFailures,proto3" json:"partial_failures,omitempty"` 177 // Output only. Information about resources that had been consumed by this 178 // job. Provided in real time at best effort basis, as well as a final value 179 // once the job completes. 180 // 181 // Note: This field currently may be not populated for batch predictions that 182 // use AutoML Models. 183 ResourcesConsumed *ResourcesConsumed `protobuf:"bytes,13,opt,name=resources_consumed,json=resourcesConsumed,proto3" json:"resources_consumed,omitempty"` 184 // Output only. Statistics on completed and failed prediction instances. 185 CompletionStats *CompletionStats `protobuf:"bytes,14,opt,name=completion_stats,json=completionStats,proto3" json:"completion_stats,omitempty"` 186 // Output only. Time when the BatchPredictionJob was created. 187 CreateTime *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 188 // Output only. Time when the BatchPredictionJob for the first time entered 189 // the `JOB_STATE_RUNNING` state. 190 StartTime *timestamppb.Timestamp `protobuf:"bytes,16,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 191 // Output only. Time when the BatchPredictionJob entered any of the following 192 // states: `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED`, `JOB_STATE_CANCELLED`. 193 EndTime *timestamppb.Timestamp `protobuf:"bytes,17,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` 194 // Output only. Time when the BatchPredictionJob was most recently updated. 195 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,18,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 196 // The labels with user-defined metadata to organize BatchPredictionJobs. 197 // 198 // Label keys and values can be no longer than 64 characters 199 // (Unicode codepoints), can only contain lowercase letters, numeric 200 // characters, underscores and dashes. International characters are allowed. 201 // 202 // See https://goo.gl/xmQnxf for more information and examples of labels. 203 Labels map[string]string `protobuf:"bytes,19,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 204 // Customer-managed encryption key options for a BatchPredictionJob. If this 205 // is set, then all resources created by the BatchPredictionJob will be 206 // encrypted with the provided encryption key. 207 EncryptionSpec *EncryptionSpec `protobuf:"bytes,24,opt,name=encryption_spec,json=encryptionSpec,proto3" json:"encryption_spec,omitempty"` 208 // Model monitoring config will be used for analysis model behaviors, based on 209 // the input and output to the batch prediction job, as well as the provided 210 // training dataset. 211 ModelMonitoringConfig *ModelMonitoringConfig `protobuf:"bytes,26,opt,name=model_monitoring_config,json=modelMonitoringConfig,proto3" json:"model_monitoring_config,omitempty"` 212 // Get batch prediction job monitoring statistics. 213 ModelMonitoringStatsAnomalies []*ModelMonitoringStatsAnomalies `protobuf:"bytes,31,rep,name=model_monitoring_stats_anomalies,json=modelMonitoringStatsAnomalies,proto3" json:"model_monitoring_stats_anomalies,omitempty"` 214 // Output only. The running status of the model monitoring pipeline. 215 ModelMonitoringStatus *status.Status `protobuf:"bytes,32,opt,name=model_monitoring_status,json=modelMonitoringStatus,proto3" json:"model_monitoring_status,omitempty"` 216 // For custom-trained Models and AutoML Tabular Models, the container of the 217 // DeployedModel instances will send `stderr` and `stdout` streams to 218 // Cloud Logging by default. Please note that the logs incur cost, 219 // which are subject to [Cloud Logging 220 // pricing](https://cloud.google.com/logging/pricing). 221 // 222 // User can disable container logging by setting this flag to true. 223 DisableContainerLogging bool `protobuf:"varint,34,opt,name=disable_container_logging,json=disableContainerLogging,proto3" json:"disable_container_logging,omitempty"` 224 // Output only. Reserved for future use. 225 SatisfiesPzs bool `protobuf:"varint,36,opt,name=satisfies_pzs,json=satisfiesPzs,proto3" json:"satisfies_pzs,omitempty"` 226 // Output only. Reserved for future use. 227 SatisfiesPzi bool `protobuf:"varint,37,opt,name=satisfies_pzi,json=satisfiesPzi,proto3" json:"satisfies_pzi,omitempty"` 228 } 229 230 func (x *BatchPredictionJob) Reset() { 231 *x = BatchPredictionJob{} 232 mi := &file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_msgTypes[0] 233 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 234 ms.StoreMessageInfo(mi) 235 } 236 237 func (x *BatchPredictionJob) String() string { 238 return protoimpl.X.MessageStringOf(x) 239 } 240 241 func (*BatchPredictionJob) ProtoMessage() {} 242 243 func (x *BatchPredictionJob) ProtoReflect() protoreflect.Message { 244 mi := &file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_msgTypes[0] 245 if x != nil { 246 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 247 if ms.LoadMessageInfo() == nil { 248 ms.StoreMessageInfo(mi) 249 } 250 return ms 251 } 252 return mi.MessageOf(x) 253 } 254 255 // Deprecated: Use BatchPredictionJob.ProtoReflect.Descriptor instead. 256 func (*BatchPredictionJob) Descriptor() ([]byte, []int) { 257 return file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_rawDescGZIP(), []int{0} 258 } 259 260 func (x *BatchPredictionJob) GetName() string { 261 if x != nil { 262 return x.Name 263 } 264 return "" 265 } 266 267 func (x *BatchPredictionJob) GetDisplayName() string { 268 if x != nil { 269 return x.DisplayName 270 } 271 return "" 272 } 273 274 func (x *BatchPredictionJob) GetModel() string { 275 if x != nil { 276 return x.Model 277 } 278 return "" 279 } 280 281 func (x *BatchPredictionJob) GetModelVersionId() string { 282 if x != nil { 283 return x.ModelVersionId 284 } 285 return "" 286 } 287 288 func (x *BatchPredictionJob) GetUnmanagedContainerModel() *UnmanagedContainerModel { 289 if x != nil { 290 return x.UnmanagedContainerModel 291 } 292 return nil 293 } 294 295 func (x *BatchPredictionJob) GetInputConfig() *BatchPredictionJob_InputConfig { 296 if x != nil { 297 return x.InputConfig 298 } 299 return nil 300 } 301 302 func (x *BatchPredictionJob) GetInstanceConfig() *BatchPredictionJob_InstanceConfig { 303 if x != nil { 304 return x.InstanceConfig 305 } 306 return nil 307 } 308 309 func (x *BatchPredictionJob) GetModelParameters() *structpb.Value { 310 if x != nil { 311 return x.ModelParameters 312 } 313 return nil 314 } 315 316 func (x *BatchPredictionJob) GetOutputConfig() *BatchPredictionJob_OutputConfig { 317 if x != nil { 318 return x.OutputConfig 319 } 320 return nil 321 } 322 323 func (x *BatchPredictionJob) GetDedicatedResources() *BatchDedicatedResources { 324 if x != nil { 325 return x.DedicatedResources 326 } 327 return nil 328 } 329 330 func (x *BatchPredictionJob) GetServiceAccount() string { 331 if x != nil { 332 return x.ServiceAccount 333 } 334 return "" 335 } 336 337 func (x *BatchPredictionJob) GetManualBatchTuningParameters() *ManualBatchTuningParameters { 338 if x != nil { 339 return x.ManualBatchTuningParameters 340 } 341 return nil 342 } 343 344 func (x *BatchPredictionJob) GetGenerateExplanation() bool { 345 if x != nil { 346 return x.GenerateExplanation 347 } 348 return false 349 } 350 351 func (x *BatchPredictionJob) GetExplanationSpec() *ExplanationSpec { 352 if x != nil { 353 return x.ExplanationSpec 354 } 355 return nil 356 } 357 358 func (x *BatchPredictionJob) GetOutputInfo() *BatchPredictionJob_OutputInfo { 359 if x != nil { 360 return x.OutputInfo 361 } 362 return nil 363 } 364 365 func (x *BatchPredictionJob) GetState() JobState { 366 if x != nil { 367 return x.State 368 } 369 return JobState_JOB_STATE_UNSPECIFIED 370 } 371 372 func (x *BatchPredictionJob) GetError() *status.Status { 373 if x != nil { 374 return x.Error 375 } 376 return nil 377 } 378 379 func (x *BatchPredictionJob) GetPartialFailures() []*status.Status { 380 if x != nil { 381 return x.PartialFailures 382 } 383 return nil 384 } 385 386 func (x *BatchPredictionJob) GetResourcesConsumed() *ResourcesConsumed { 387 if x != nil { 388 return x.ResourcesConsumed 389 } 390 return nil 391 } 392 393 func (x *BatchPredictionJob) GetCompletionStats() *CompletionStats { 394 if x != nil { 395 return x.CompletionStats 396 } 397 return nil 398 } 399 400 func (x *BatchPredictionJob) GetCreateTime() *timestamppb.Timestamp { 401 if x != nil { 402 return x.CreateTime 403 } 404 return nil 405 } 406 407 func (x *BatchPredictionJob) GetStartTime() *timestamppb.Timestamp { 408 if x != nil { 409 return x.StartTime 410 } 411 return nil 412 } 413 414 func (x *BatchPredictionJob) GetEndTime() *timestamppb.Timestamp { 415 if x != nil { 416 return x.EndTime 417 } 418 return nil 419 } 420 421 func (x *BatchPredictionJob) GetUpdateTime() *timestamppb.Timestamp { 422 if x != nil { 423 return x.UpdateTime 424 } 425 return nil 426 } 427 428 func (x *BatchPredictionJob) GetLabels() map[string]string { 429 if x != nil { 430 return x.Labels 431 } 432 return nil 433 } 434 435 func (x *BatchPredictionJob) GetEncryptionSpec() *EncryptionSpec { 436 if x != nil { 437 return x.EncryptionSpec 438 } 439 return nil 440 } 441 442 func (x *BatchPredictionJob) GetModelMonitoringConfig() *ModelMonitoringConfig { 443 if x != nil { 444 return x.ModelMonitoringConfig 445 } 446 return nil 447 } 448 449 func (x *BatchPredictionJob) GetModelMonitoringStatsAnomalies() []*ModelMonitoringStatsAnomalies { 450 if x != nil { 451 return x.ModelMonitoringStatsAnomalies 452 } 453 return nil 454 } 455 456 func (x *BatchPredictionJob) GetModelMonitoringStatus() *status.Status { 457 if x != nil { 458 return x.ModelMonitoringStatus 459 } 460 return nil 461 } 462 463 func (x *BatchPredictionJob) GetDisableContainerLogging() bool { 464 if x != nil { 465 return x.DisableContainerLogging 466 } 467 return false 468 } 469 470 func (x *BatchPredictionJob) GetSatisfiesPzs() bool { 471 if x != nil { 472 return x.SatisfiesPzs 473 } 474 return false 475 } 476 477 func (x *BatchPredictionJob) GetSatisfiesPzi() bool { 478 if x != nil { 479 return x.SatisfiesPzi 480 } 481 return false 482 } 483 484 // Configures the input to 485 // [BatchPredictionJob][google.cloud.aiplatform.v1beta1.BatchPredictionJob]. 486 // See 487 // [Model.supported_input_storage_formats][google.cloud.aiplatform.v1beta1.Model.supported_input_storage_formats] 488 // for Model's supported input formats, and how instances should be expressed 489 // via any of them. 490 type BatchPredictionJob_InputConfig struct { 491 state protoimpl.MessageState 492 sizeCache protoimpl.SizeCache 493 unknownFields protoimpl.UnknownFields 494 495 // Required. The source of the input. 496 // 497 // Types that are assignable to Source: 498 // 499 // *BatchPredictionJob_InputConfig_GcsSource 500 // *BatchPredictionJob_InputConfig_BigquerySource 501 Source isBatchPredictionJob_InputConfig_Source `protobuf_oneof:"source"` 502 // Required. The format in which instances are given, must be one of the 503 // [Model's][google.cloud.aiplatform.v1beta1.BatchPredictionJob.model] 504 // [supported_input_storage_formats][google.cloud.aiplatform.v1beta1.Model.supported_input_storage_formats]. 505 InstancesFormat string `protobuf:"bytes,1,opt,name=instances_format,json=instancesFormat,proto3" json:"instances_format,omitempty"` 506 } 507 508 func (x *BatchPredictionJob_InputConfig) Reset() { 509 *x = BatchPredictionJob_InputConfig{} 510 mi := &file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_msgTypes[1] 511 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 512 ms.StoreMessageInfo(mi) 513 } 514 515 func (x *BatchPredictionJob_InputConfig) String() string { 516 return protoimpl.X.MessageStringOf(x) 517 } 518 519 func (*BatchPredictionJob_InputConfig) ProtoMessage() {} 520 521 func (x *BatchPredictionJob_InputConfig) ProtoReflect() protoreflect.Message { 522 mi := &file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_msgTypes[1] 523 if x != nil { 524 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 525 if ms.LoadMessageInfo() == nil { 526 ms.StoreMessageInfo(mi) 527 } 528 return ms 529 } 530 return mi.MessageOf(x) 531 } 532 533 // Deprecated: Use BatchPredictionJob_InputConfig.ProtoReflect.Descriptor instead. 534 func (*BatchPredictionJob_InputConfig) Descriptor() ([]byte, []int) { 535 return file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_rawDescGZIP(), []int{0, 0} 536 } 537 538 func (m *BatchPredictionJob_InputConfig) GetSource() isBatchPredictionJob_InputConfig_Source { 539 if m != nil { 540 return m.Source 541 } 542 return nil 543 } 544 545 func (x *BatchPredictionJob_InputConfig) GetGcsSource() *GcsSource { 546 if x, ok := x.GetSource().(*BatchPredictionJob_InputConfig_GcsSource); ok { 547 return x.GcsSource 548 } 549 return nil 550 } 551 552 func (x *BatchPredictionJob_InputConfig) GetBigquerySource() *BigQuerySource { 553 if x, ok := x.GetSource().(*BatchPredictionJob_InputConfig_BigquerySource); ok { 554 return x.BigquerySource 555 } 556 return nil 557 } 558 559 func (x *BatchPredictionJob_InputConfig) GetInstancesFormat() string { 560 if x != nil { 561 return x.InstancesFormat 562 } 563 return "" 564 } 565 566 type isBatchPredictionJob_InputConfig_Source interface { 567 isBatchPredictionJob_InputConfig_Source() 568 } 569 570 type BatchPredictionJob_InputConfig_GcsSource struct { 571 // The Cloud Storage location for the input instances. 572 GcsSource *GcsSource `protobuf:"bytes,2,opt,name=gcs_source,json=gcsSource,proto3,oneof"` 573 } 574 575 type BatchPredictionJob_InputConfig_BigquerySource struct { 576 // The BigQuery location of the input table. 577 // The schema of the table should be in the format described by the given 578 // context OpenAPI Schema, if one is provided. The table may contain 579 // additional columns that are not described by the schema, and they will 580 // be ignored. 581 BigquerySource *BigQuerySource `protobuf:"bytes,3,opt,name=bigquery_source,json=bigquerySource,proto3,oneof"` 582 } 583 584 func (*BatchPredictionJob_InputConfig_GcsSource) isBatchPredictionJob_InputConfig_Source() {} 585 586 func (*BatchPredictionJob_InputConfig_BigquerySource) isBatchPredictionJob_InputConfig_Source() {} 587 588 // Configuration defining how to transform batch prediction input instances to 589 // the instances that the Model accepts. 590 type BatchPredictionJob_InstanceConfig struct { 591 state protoimpl.MessageState 592 sizeCache protoimpl.SizeCache 593 unknownFields protoimpl.UnknownFields 594 595 // The format of the instance that the Model accepts. Vertex AI will 596 // convert compatible 597 // [batch prediction input instance 598 // formats][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InputConfig.instances_format] 599 // to the specified format. 600 // 601 // Supported values are: 602 // 603 // * `object`: Each input is converted to JSON object format. 604 // - For `bigquery`, each row is converted to an object. 605 // - For `jsonl`, each line of the JSONL input must be an object. 606 // - Does not apply to `csv`, `file-list`, `tf-record`, or 607 // `tf-record-gzip`. 608 // 609 // * `array`: Each input is converted to JSON array format. 610 // - For `bigquery`, each row is converted to an array. The order 611 // of columns is determined by the BigQuery column order, unless 612 // [included_fields][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InstanceConfig.included_fields] 613 // is populated. 614 // [included_fields][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InstanceConfig.included_fields] 615 // must be populated for specifying field orders. 616 // - For `jsonl`, if each line of the JSONL input is an object, 617 // [included_fields][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InstanceConfig.included_fields] 618 // must be populated for specifying field orders. 619 // - Does not apply to `csv`, `file-list`, `tf-record`, or 620 // `tf-record-gzip`. 621 // 622 // If not specified, Vertex AI converts the batch prediction input as 623 // follows: 624 // 625 // - For `bigquery` and `csv`, the behavior is the same as `array`. The 626 // order of columns is the same as defined in the file or table, unless 627 // [included_fields][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InstanceConfig.included_fields] 628 // is populated. 629 // - For `jsonl`, the prediction instance format is determined by 630 // each line of the input. 631 // - For `tf-record`/`tf-record-gzip`, each record will be converted to 632 // an object in the format of `{"b64": <value>}`, where `<value>` is 633 // the Base64-encoded string of the content of the record. 634 // - For `file-list`, each file in the list will be converted to an 635 // object in the format of `{"b64": <value>}`, where `<value>` is 636 // the Base64-encoded string of the content of the file. 637 InstanceType string `protobuf:"bytes,1,opt,name=instance_type,json=instanceType,proto3" json:"instance_type,omitempty"` 638 // The name of the field that is considered as a key. 639 // 640 // The values identified by the key field is not included in the transformed 641 // instances that is sent to the Model. This is similar to 642 // specifying this name of the field in 643 // [excluded_fields][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InstanceConfig.excluded_fields]. 644 // In addition, the batch prediction output will not include the instances. 645 // Instead the output will only include the value of the key field, in a 646 // field named `key` in the output: 647 // 648 // - For `jsonl` output format, the output will have a `key` field 649 // instead of the `instance` field. 650 // - For `csv`/`bigquery` output format, the output will have have a `key` 651 // column instead of the instance feature columns. 652 // 653 // The input must be JSONL with objects at each line, CSV, BigQuery 654 // or TfRecord. 655 KeyField string `protobuf:"bytes,2,opt,name=key_field,json=keyField,proto3" json:"key_field,omitempty"` 656 // Fields that will be included in the prediction instance that is 657 // sent to the Model. 658 // 659 // If 660 // [instance_type][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InstanceConfig.instance_type] 661 // is `array`, the order of field names in included_fields also determines 662 // the order of the values in the array. 663 // 664 // When included_fields is populated, 665 // [excluded_fields][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InstanceConfig.excluded_fields] 666 // must be empty. 667 // 668 // The input must be JSONL with objects at each line, BigQuery 669 // or TfRecord. 670 IncludedFields []string `protobuf:"bytes,3,rep,name=included_fields,json=includedFields,proto3" json:"included_fields,omitempty"` 671 // Fields that will be excluded in the prediction instance that is 672 // sent to the Model. 673 // 674 // Excluded will be attached to the batch prediction output if 675 // [key_field][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InstanceConfig.key_field] 676 // is not specified. 677 // 678 // When excluded_fields is populated, 679 // [included_fields][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InstanceConfig.included_fields] 680 // must be empty. 681 // 682 // The input must be JSONL with objects at each line, BigQuery 683 // or TfRecord. 684 ExcludedFields []string `protobuf:"bytes,4,rep,name=excluded_fields,json=excludedFields,proto3" json:"excluded_fields,omitempty"` 685 } 686 687 func (x *BatchPredictionJob_InstanceConfig) Reset() { 688 *x = BatchPredictionJob_InstanceConfig{} 689 mi := &file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_msgTypes[2] 690 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 691 ms.StoreMessageInfo(mi) 692 } 693 694 func (x *BatchPredictionJob_InstanceConfig) String() string { 695 return protoimpl.X.MessageStringOf(x) 696 } 697 698 func (*BatchPredictionJob_InstanceConfig) ProtoMessage() {} 699 700 func (x *BatchPredictionJob_InstanceConfig) ProtoReflect() protoreflect.Message { 701 mi := &file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_msgTypes[2] 702 if x != nil { 703 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 704 if ms.LoadMessageInfo() == nil { 705 ms.StoreMessageInfo(mi) 706 } 707 return ms 708 } 709 return mi.MessageOf(x) 710 } 711 712 // Deprecated: Use BatchPredictionJob_InstanceConfig.ProtoReflect.Descriptor instead. 713 func (*BatchPredictionJob_InstanceConfig) Descriptor() ([]byte, []int) { 714 return file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_rawDescGZIP(), []int{0, 1} 715 } 716 717 func (x *BatchPredictionJob_InstanceConfig) GetInstanceType() string { 718 if x != nil { 719 return x.InstanceType 720 } 721 return "" 722 } 723 724 func (x *BatchPredictionJob_InstanceConfig) GetKeyField() string { 725 if x != nil { 726 return x.KeyField 727 } 728 return "" 729 } 730 731 func (x *BatchPredictionJob_InstanceConfig) GetIncludedFields() []string { 732 if x != nil { 733 return x.IncludedFields 734 } 735 return nil 736 } 737 738 func (x *BatchPredictionJob_InstanceConfig) GetExcludedFields() []string { 739 if x != nil { 740 return x.ExcludedFields 741 } 742 return nil 743 } 744 745 // Configures the output of 746 // [BatchPredictionJob][google.cloud.aiplatform.v1beta1.BatchPredictionJob]. 747 // See 748 // [Model.supported_output_storage_formats][google.cloud.aiplatform.v1beta1.Model.supported_output_storage_formats] 749 // for supported output formats, and how predictions are expressed via any of 750 // them. 751 type BatchPredictionJob_OutputConfig struct { 752 state protoimpl.MessageState 753 sizeCache protoimpl.SizeCache 754 unknownFields protoimpl.UnknownFields 755 756 // Required. The destination of the output. 757 // 758 // Types that are assignable to Destination: 759 // 760 // *BatchPredictionJob_OutputConfig_GcsDestination 761 // *BatchPredictionJob_OutputConfig_BigqueryDestination 762 Destination isBatchPredictionJob_OutputConfig_Destination `protobuf_oneof:"destination"` 763 // Required. The format in which Vertex AI gives the predictions, must be 764 // one of the 765 // [Model's][google.cloud.aiplatform.v1beta1.BatchPredictionJob.model] 766 // [supported_output_storage_formats][google.cloud.aiplatform.v1beta1.Model.supported_output_storage_formats]. 767 PredictionsFormat string `protobuf:"bytes,1,opt,name=predictions_format,json=predictionsFormat,proto3" json:"predictions_format,omitempty"` 768 } 769 770 func (x *BatchPredictionJob_OutputConfig) Reset() { 771 *x = BatchPredictionJob_OutputConfig{} 772 mi := &file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_msgTypes[3] 773 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 774 ms.StoreMessageInfo(mi) 775 } 776 777 func (x *BatchPredictionJob_OutputConfig) String() string { 778 return protoimpl.X.MessageStringOf(x) 779 } 780 781 func (*BatchPredictionJob_OutputConfig) ProtoMessage() {} 782 783 func (x *BatchPredictionJob_OutputConfig) ProtoReflect() protoreflect.Message { 784 mi := &file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_msgTypes[3] 785 if x != nil { 786 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 787 if ms.LoadMessageInfo() == nil { 788 ms.StoreMessageInfo(mi) 789 } 790 return ms 791 } 792 return mi.MessageOf(x) 793 } 794 795 // Deprecated: Use BatchPredictionJob_OutputConfig.ProtoReflect.Descriptor instead. 796 func (*BatchPredictionJob_OutputConfig) Descriptor() ([]byte, []int) { 797 return file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_rawDescGZIP(), []int{0, 2} 798 } 799 800 func (m *BatchPredictionJob_OutputConfig) GetDestination() isBatchPredictionJob_OutputConfig_Destination { 801 if m != nil { 802 return m.Destination 803 } 804 return nil 805 } 806 807 func (x *BatchPredictionJob_OutputConfig) GetGcsDestination() *GcsDestination { 808 if x, ok := x.GetDestination().(*BatchPredictionJob_OutputConfig_GcsDestination); ok { 809 return x.GcsDestination 810 } 811 return nil 812 } 813 814 func (x *BatchPredictionJob_OutputConfig) GetBigqueryDestination() *BigQueryDestination { 815 if x, ok := x.GetDestination().(*BatchPredictionJob_OutputConfig_BigqueryDestination); ok { 816 return x.BigqueryDestination 817 } 818 return nil 819 } 820 821 func (x *BatchPredictionJob_OutputConfig) GetPredictionsFormat() string { 822 if x != nil { 823 return x.PredictionsFormat 824 } 825 return "" 826 } 827 828 type isBatchPredictionJob_OutputConfig_Destination interface { 829 isBatchPredictionJob_OutputConfig_Destination() 830 } 831 832 type BatchPredictionJob_OutputConfig_GcsDestination struct { 833 // The Cloud Storage location of the directory where the output is 834 // to be written to. In the given directory a new directory is created. 835 // Its name is `prediction-<model-display-name>-<job-create-time>`, 836 // where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. 837 // Inside of it files `predictions_0001.<extension>`, 838 // `predictions_0002.<extension>`, ..., `predictions_N.<extension>` 839 // are created where `<extension>` depends on chosen 840 // [predictions_format][google.cloud.aiplatform.v1beta1.BatchPredictionJob.OutputConfig.predictions_format], 841 // and N may equal 0001 and depends on the total number of successfully 842 // predicted instances. If the Model has both 843 // [instance][google.cloud.aiplatform.v1beta1.PredictSchemata.instance_schema_uri] 844 // and 845 // [prediction][google.cloud.aiplatform.v1beta1.PredictSchemata.parameters_schema_uri] 846 // schemata defined then each such file contains predictions as per the 847 // [predictions_format][google.cloud.aiplatform.v1beta1.BatchPredictionJob.OutputConfig.predictions_format]. 848 // If prediction for any instance failed (partially or completely), then 849 // an additional `errors_0001.<extension>`, `errors_0002.<extension>`,..., 850 // `errors_N.<extension>` files are created (N depends on total number 851 // of failed predictions). These files contain the failed instances, 852 // as per their schema, followed by an additional `error` field which as 853 // value has [google.rpc.Status][google.rpc.Status] 854 // containing only `code` and `message` fields. 855 GcsDestination *GcsDestination `protobuf:"bytes,2,opt,name=gcs_destination,json=gcsDestination,proto3,oneof"` 856 } 857 858 type BatchPredictionJob_OutputConfig_BigqueryDestination struct { 859 // The BigQuery project or dataset location where the output is to be 860 // written to. If project is provided, a new dataset is created with name 861 // `prediction_<model-display-name>_<job-create-time>` 862 // where <model-display-name> is made 863 // BigQuery-dataset-name compatible (for example, most special characters 864 // become underscores), and timestamp is in 865 // YYYY_MM_DDThh_mm_ss_sssZ "based on ISO-8601" format. In the dataset 866 // two tables will be created, `predictions`, and `errors`. 867 // If the Model has both 868 // [instance][google.cloud.aiplatform.v1beta1.PredictSchemata.instance_schema_uri] 869 // and 870 // [prediction][google.cloud.aiplatform.v1beta1.PredictSchemata.parameters_schema_uri] 871 // schemata defined then the tables have columns as follows: The 872 // `predictions` table contains instances for which the prediction 873 // succeeded, it has columns as per a concatenation of the Model's 874 // instance and prediction schemata. The `errors` table contains rows for 875 // which the prediction has failed, it has instance columns, as per the 876 // instance schema, followed by a single "errors" column, which as values 877 // has [google.rpc.Status][google.rpc.Status] 878 // represented as a STRUCT, and containing only `code` and `message`. 879 BigqueryDestination *BigQueryDestination `protobuf:"bytes,3,opt,name=bigquery_destination,json=bigqueryDestination,proto3,oneof"` 880 } 881 882 func (*BatchPredictionJob_OutputConfig_GcsDestination) isBatchPredictionJob_OutputConfig_Destination() { 883 } 884 885 func (*BatchPredictionJob_OutputConfig_BigqueryDestination) isBatchPredictionJob_OutputConfig_Destination() { 886 } 887 888 // Further describes this job's output. 889 // Supplements 890 // [output_config][google.cloud.aiplatform.v1beta1.BatchPredictionJob.output_config]. 891 type BatchPredictionJob_OutputInfo struct { 892 state protoimpl.MessageState 893 sizeCache protoimpl.SizeCache 894 unknownFields protoimpl.UnknownFields 895 896 // The output location into which prediction output is written. 897 // 898 // Types that are assignable to OutputLocation: 899 // 900 // *BatchPredictionJob_OutputInfo_GcsOutputDirectory 901 // *BatchPredictionJob_OutputInfo_BigqueryOutputDataset 902 OutputLocation isBatchPredictionJob_OutputInfo_OutputLocation `protobuf_oneof:"output_location"` 903 // Output only. The name of the BigQuery table created, in 904 // `predictions_<timestamp>` 905 // format, into which the prediction output is written. 906 // Can be used by UI to generate the BigQuery output path, for example. 907 BigqueryOutputTable string `protobuf:"bytes,4,opt,name=bigquery_output_table,json=bigqueryOutputTable,proto3" json:"bigquery_output_table,omitempty"` 908 } 909 910 func (x *BatchPredictionJob_OutputInfo) Reset() { 911 *x = BatchPredictionJob_OutputInfo{} 912 mi := &file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_msgTypes[4] 913 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 914 ms.StoreMessageInfo(mi) 915 } 916 917 func (x *BatchPredictionJob_OutputInfo) String() string { 918 return protoimpl.X.MessageStringOf(x) 919 } 920 921 func (*BatchPredictionJob_OutputInfo) ProtoMessage() {} 922 923 func (x *BatchPredictionJob_OutputInfo) ProtoReflect() protoreflect.Message { 924 mi := &file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_msgTypes[4] 925 if x != nil { 926 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 927 if ms.LoadMessageInfo() == nil { 928 ms.StoreMessageInfo(mi) 929 } 930 return ms 931 } 932 return mi.MessageOf(x) 933 } 934 935 // Deprecated: Use BatchPredictionJob_OutputInfo.ProtoReflect.Descriptor instead. 936 func (*BatchPredictionJob_OutputInfo) Descriptor() ([]byte, []int) { 937 return file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_rawDescGZIP(), []int{0, 3} 938 } 939 940 func (m *BatchPredictionJob_OutputInfo) GetOutputLocation() isBatchPredictionJob_OutputInfo_OutputLocation { 941 if m != nil { 942 return m.OutputLocation 943 } 944 return nil 945 } 946 947 func (x *BatchPredictionJob_OutputInfo) GetGcsOutputDirectory() string { 948 if x, ok := x.GetOutputLocation().(*BatchPredictionJob_OutputInfo_GcsOutputDirectory); ok { 949 return x.GcsOutputDirectory 950 } 951 return "" 952 } 953 954 func (x *BatchPredictionJob_OutputInfo) GetBigqueryOutputDataset() string { 955 if x, ok := x.GetOutputLocation().(*BatchPredictionJob_OutputInfo_BigqueryOutputDataset); ok { 956 return x.BigqueryOutputDataset 957 } 958 return "" 959 } 960 961 func (x *BatchPredictionJob_OutputInfo) GetBigqueryOutputTable() string { 962 if x != nil { 963 return x.BigqueryOutputTable 964 } 965 return "" 966 } 967 968 type isBatchPredictionJob_OutputInfo_OutputLocation interface { 969 isBatchPredictionJob_OutputInfo_OutputLocation() 970 } 971 972 type BatchPredictionJob_OutputInfo_GcsOutputDirectory struct { 973 // Output only. The full path of the Cloud Storage directory created, into 974 // which the prediction output is written. 975 GcsOutputDirectory string `protobuf:"bytes,1,opt,name=gcs_output_directory,json=gcsOutputDirectory,proto3,oneof"` 976 } 977 978 type BatchPredictionJob_OutputInfo_BigqueryOutputDataset struct { 979 // Output only. The path of the BigQuery dataset created, in 980 // `bq://projectId.bqDatasetId` 981 // format, into which the prediction output is written. 982 BigqueryOutputDataset string `protobuf:"bytes,2,opt,name=bigquery_output_dataset,json=bigqueryOutputDataset,proto3,oneof"` 983 } 984 985 func (*BatchPredictionJob_OutputInfo_GcsOutputDirectory) isBatchPredictionJob_OutputInfo_OutputLocation() { 986 } 987 988 func (*BatchPredictionJob_OutputInfo_BigqueryOutputDataset) isBatchPredictionJob_OutputInfo_OutputLocation() { 989 } 990 991 var File_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto protoreflect.FileDescriptor 992 993 var file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_rawDesc = []byte{ 994 0x0a, 0x3a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 995 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 996 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 997 0x6f, 0x6e, 0x5f, 0x6a, 0x6f, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67, 0x6f, 998 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 999 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1f, 0x67, 1000 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 1001 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 1002 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 1003 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x36, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1004 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 1005 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 1006 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1007 0x6f, 0x1a, 0x35, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 1008 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 1009 0x61, 0x31, 0x2f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 1010 0x65, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1011 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 1012 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 1013 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x67, 0x6f, 0x6f, 1014 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 1015 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x69, 0x6f, 0x2e, 1016 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 1017 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 1018 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 1019 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x37, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 1020 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 1021 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 1022 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 1023 0x44, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 1024 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 1025 0x2f, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x75, 1026 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2e, 1027 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x45, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 1028 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 1029 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x64, 0x65, 0x70, 1030 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 1031 0x6e, 0x67, 0x5f, 0x6a, 0x6f, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x36, 0x67, 0x6f, 1032 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 1033 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6d, 0x6f, 1034 0x64, 0x65, 0x6c, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x70, 1035 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 1036 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 1037 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x75, 0x6e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 1038 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 1039 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 1040 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 1041 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 1042 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 1043 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 1044 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xab, 0x1c, 1045 0x0a, 0x12, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 1046 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 1047 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 1048 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 1049 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 1050 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 1051 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x61, 0x69, 0x70, 0x6c, 0x61, 1052 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 1053 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 1054 0x6c, 0x12, 0x2d, 0x0a, 0x10, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 1055 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 1056 0x52, 0x0e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 1057 0x12, 0x74, 0x0a, 0x19, 0x75, 0x6e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x63, 0x6f, 1058 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x1c, 0x20, 1059 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 1060 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 1061 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x43, 1062 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x17, 0x75, 1063 0x6e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 1064 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x67, 0x0a, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 1065 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 1066 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 1067 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 1068 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 1069 0x62, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 1070 0x41, 0x02, 0x52, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 1071 0x6b, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 1072 0x69, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1073 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 1074 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 1075 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x2e, 0x49, 0x6e, 1076 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x69, 0x6e, 1077 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x41, 0x0a, 0x10, 1078 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 1079 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1080 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 1081 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 1082 0x6a, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 1083 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1084 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1085 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 1086 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x2e, 0x4f, 0x75, 0x74, 0x70, 1087 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6f, 1088 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x69, 0x0a, 0x13, 0x64, 1089 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 1090 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1091 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 1092 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 1093 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 1094 0x65, 0x73, 0x52, 0x12, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 1095 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 1096 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 1097 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 1098 0x86, 0x01, 0x0a, 0x1e, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 1099 0x5f, 0x74, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 1100 0x72, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1101 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 1102 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x6e, 0x75, 0x61, 1103 0x6c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 1104 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x1b, 0x6d, 0x61, 0x6e, 1105 0x75, 0x61, 0x6c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x54, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x61, 1106 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x67, 0x65, 0x6e, 0x65, 1107 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 1108 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 1109 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x10, 0x65, 1110 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 1111 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1112 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 1113 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 1114 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 1115 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x64, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 1116 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 1117 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 1118 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 1119 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 1120 0x6f, 0x62, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x03, 0xe0, 1121 0x41, 0x03, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 1122 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 1123 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 1124 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 1125 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 1126 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0b, 0x20, 1127 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 1128 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x65, 0x72, 1129 0x72, 0x6f, 0x72, 0x12, 0x42, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x66, 1130 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 1131 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 1132 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x46, 1133 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x12, 0x66, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 1134 0x72, 0x63, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x18, 0x0d, 0x20, 1135 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 1136 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 1137 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x43, 1138 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x72, 0x65, 1139 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x12, 1140 0x60, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 1141 0x61, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1142 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 1143 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 1144 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 1145 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 1146 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 1147 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1148 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 1149 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 1150 0x69, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 1151 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1152 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 1153 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 1154 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 1155 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 1156 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 1157 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 1158 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 1159 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 1160 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 1161 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 1162 0x65, 0x12, 0x57, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 1163 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1164 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 1165 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 1166 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 1167 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x6e, 1168 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x18, 0x20, 1169 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 1170 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 1171 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 1172 0x53, 0x70, 0x65, 0x63, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 1173 0x53, 0x70, 0x65, 0x63, 0x12, 0x6e, 0x0a, 0x17, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6d, 0x6f, 1174 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 1175 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1176 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 1177 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 1178 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x15, 0x6d, 1179 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 1180 0x6e, 0x66, 0x69, 0x67, 0x12, 0x87, 0x01, 0x0a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6d, 1181 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 1182 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 1183 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 1184 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 1185 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 1186 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x69, 0x65, 0x73, 0x52, 1187 0x1d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 1188 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x4f, 1189 0x0a, 0x17, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 1190 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 1191 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 1192 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 1193 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 1194 0x3a, 0x0a, 0x19, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 1195 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x22, 0x20, 0x01, 1196 0x28, 0x08, 0x52, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 1197 0x69, 0x6e, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x0d, 0x73, 1198 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x5f, 0x70, 0x7a, 0x73, 0x18, 0x24, 0x20, 0x01, 1199 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 1200 0x65, 0x73, 0x50, 0x7a, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 1201 0x65, 0x73, 0x5f, 0x70, 0x7a, 0x69, 0x18, 0x25, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 1202 0x03, 0x52, 0x0c, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x50, 0x7a, 0x69, 0x1a, 1203 0xf0, 0x01, 0x0a, 0x0b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 1204 0x4b, 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 1205 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 1206 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 1207 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 1208 0x00, 0x52, 0x09, 0x67, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x5a, 0x0a, 0x0f, 1209 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 1210 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1211 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 1212 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 1213 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 1214 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 1215 0x61, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 1216 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 1217 0x65, 0x73, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 1218 0x63, 0x65, 0x1a, 0xa4, 0x01, 0x0a, 0x0e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 1219 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 1220 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 1221 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6b, 0x65, 1222 0x79, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 1223 0x65, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 1224 0x64, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 1225 0x52, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 1226 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 1227 0x6c, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 1228 0x64, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x98, 0x02, 0x0a, 0x0c, 0x4f, 0x75, 1229 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5a, 0x0a, 0x0f, 0x67, 0x63, 1230 0x73, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 1231 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 1232 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 1233 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x63, 0x73, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 1234 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x63, 0x73, 0x44, 0x65, 0x73, 0x74, 0x69, 1235 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x69, 0x0a, 0x14, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 1236 0x72, 0x79, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 1237 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 1238 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 1239 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 1240 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x13, 0x62, 0x69, 1241 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 1242 0x6e, 0x12, 0x32, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 1243 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 1244 0x41, 0x02, 0x52, 0x11, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 1245 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 1246 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xd0, 0x01, 0x0a, 0x0a, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 1247 0x6e, 0x66, 0x6f, 0x12, 0x37, 0x0a, 0x14, 0x67, 0x63, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 1248 0x74, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 1249 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x12, 0x67, 0x63, 0x73, 0x4f, 0x75, 0x74, 1250 0x70, 0x75, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x3d, 0x0a, 0x17, 1251 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 1252 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 1253 0x41, 0x03, 0x48, 0x00, 0x52, 0x15, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 1254 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x37, 0x0a, 0x15, 0x62, 1255 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 1256 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 1257 0x13, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 1258 0x61, 0x62, 0x6c, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x6c, 1259 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 1260 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 1261 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 1262 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 1263 0x38, 0x01, 0x3a, 0x86, 0x01, 0xea, 0x41, 0x82, 0x01, 0x0a, 0x2c, 0x61, 0x69, 0x70, 0x6c, 0x61, 1264 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 1265 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 1266 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x52, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 1267 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 1268 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 1269 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 1270 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x64, 1271 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6a, 0x6f, 0x62, 0x7d, 0x42, 0xee, 0x01, 0x0a, 0x23, 1272 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1273 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 1274 0x74, 0x61, 0x31, 0x42, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 1275 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 1276 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 1277 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 1278 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 1279 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 1280 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 1281 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 1282 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 1283 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 1284 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1285 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 1286 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 1287 0x6f, 0x74, 0x6f, 0x33, 1288 } 1289 1290 var ( 1291 file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_rawDescOnce sync.Once 1292 file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_rawDescData = file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_rawDesc 1293 ) 1294 1295 func file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_rawDescGZIP() []byte { 1296 file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_rawDescOnce.Do(func() { 1297 file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_rawDescData) 1298 }) 1299 return file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_rawDescData 1300 } 1301 1302 var file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_msgTypes = make([]protoimpl.MessageInfo, 6) 1303 var file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_goTypes = []any{ 1304 (*BatchPredictionJob)(nil), // 0: google.cloud.aiplatform.v1beta1.BatchPredictionJob 1305 (*BatchPredictionJob_InputConfig)(nil), // 1: google.cloud.aiplatform.v1beta1.BatchPredictionJob.InputConfig 1306 (*BatchPredictionJob_InstanceConfig)(nil), // 2: google.cloud.aiplatform.v1beta1.BatchPredictionJob.InstanceConfig 1307 (*BatchPredictionJob_OutputConfig)(nil), // 3: google.cloud.aiplatform.v1beta1.BatchPredictionJob.OutputConfig 1308 (*BatchPredictionJob_OutputInfo)(nil), // 4: google.cloud.aiplatform.v1beta1.BatchPredictionJob.OutputInfo 1309 nil, // 5: google.cloud.aiplatform.v1beta1.BatchPredictionJob.LabelsEntry 1310 (*UnmanagedContainerModel)(nil), // 6: google.cloud.aiplatform.v1beta1.UnmanagedContainerModel 1311 (*structpb.Value)(nil), // 7: google.protobuf.Value 1312 (*BatchDedicatedResources)(nil), // 8: google.cloud.aiplatform.v1beta1.BatchDedicatedResources 1313 (*ManualBatchTuningParameters)(nil), // 9: google.cloud.aiplatform.v1beta1.ManualBatchTuningParameters 1314 (*ExplanationSpec)(nil), // 10: google.cloud.aiplatform.v1beta1.ExplanationSpec 1315 (JobState)(0), // 11: google.cloud.aiplatform.v1beta1.JobState 1316 (*status.Status)(nil), // 12: google.rpc.Status 1317 (*ResourcesConsumed)(nil), // 13: google.cloud.aiplatform.v1beta1.ResourcesConsumed 1318 (*CompletionStats)(nil), // 14: google.cloud.aiplatform.v1beta1.CompletionStats 1319 (*timestamppb.Timestamp)(nil), // 15: google.protobuf.Timestamp 1320 (*EncryptionSpec)(nil), // 16: google.cloud.aiplatform.v1beta1.EncryptionSpec 1321 (*ModelMonitoringConfig)(nil), // 17: google.cloud.aiplatform.v1beta1.ModelMonitoringConfig 1322 (*ModelMonitoringStatsAnomalies)(nil), // 18: google.cloud.aiplatform.v1beta1.ModelMonitoringStatsAnomalies 1323 (*GcsSource)(nil), // 19: google.cloud.aiplatform.v1beta1.GcsSource 1324 (*BigQuerySource)(nil), // 20: google.cloud.aiplatform.v1beta1.BigQuerySource 1325 (*GcsDestination)(nil), // 21: google.cloud.aiplatform.v1beta1.GcsDestination 1326 (*BigQueryDestination)(nil), // 22: google.cloud.aiplatform.v1beta1.BigQueryDestination 1327 } 1328 var file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_depIdxs = []int32{ 1329 6, // 0: google.cloud.aiplatform.v1beta1.BatchPredictionJob.unmanaged_container_model:type_name -> google.cloud.aiplatform.v1beta1.UnmanagedContainerModel 1330 1, // 1: google.cloud.aiplatform.v1beta1.BatchPredictionJob.input_config:type_name -> google.cloud.aiplatform.v1beta1.BatchPredictionJob.InputConfig 1331 2, // 2: google.cloud.aiplatform.v1beta1.BatchPredictionJob.instance_config:type_name -> google.cloud.aiplatform.v1beta1.BatchPredictionJob.InstanceConfig 1332 7, // 3: google.cloud.aiplatform.v1beta1.BatchPredictionJob.model_parameters:type_name -> google.protobuf.Value 1333 3, // 4: google.cloud.aiplatform.v1beta1.BatchPredictionJob.output_config:type_name -> google.cloud.aiplatform.v1beta1.BatchPredictionJob.OutputConfig 1334 8, // 5: google.cloud.aiplatform.v1beta1.BatchPredictionJob.dedicated_resources:type_name -> google.cloud.aiplatform.v1beta1.BatchDedicatedResources 1335 9, // 6: google.cloud.aiplatform.v1beta1.BatchPredictionJob.manual_batch_tuning_parameters:type_name -> google.cloud.aiplatform.v1beta1.ManualBatchTuningParameters 1336 10, // 7: google.cloud.aiplatform.v1beta1.BatchPredictionJob.explanation_spec:type_name -> google.cloud.aiplatform.v1beta1.ExplanationSpec 1337 4, // 8: google.cloud.aiplatform.v1beta1.BatchPredictionJob.output_info:type_name -> google.cloud.aiplatform.v1beta1.BatchPredictionJob.OutputInfo 1338 11, // 9: google.cloud.aiplatform.v1beta1.BatchPredictionJob.state:type_name -> google.cloud.aiplatform.v1beta1.JobState 1339 12, // 10: google.cloud.aiplatform.v1beta1.BatchPredictionJob.error:type_name -> google.rpc.Status 1340 12, // 11: google.cloud.aiplatform.v1beta1.BatchPredictionJob.partial_failures:type_name -> google.rpc.Status 1341 13, // 12: google.cloud.aiplatform.v1beta1.BatchPredictionJob.resources_consumed:type_name -> google.cloud.aiplatform.v1beta1.ResourcesConsumed 1342 14, // 13: google.cloud.aiplatform.v1beta1.BatchPredictionJob.completion_stats:type_name -> google.cloud.aiplatform.v1beta1.CompletionStats 1343 15, // 14: google.cloud.aiplatform.v1beta1.BatchPredictionJob.create_time:type_name -> google.protobuf.Timestamp 1344 15, // 15: google.cloud.aiplatform.v1beta1.BatchPredictionJob.start_time:type_name -> google.protobuf.Timestamp 1345 15, // 16: google.cloud.aiplatform.v1beta1.BatchPredictionJob.end_time:type_name -> google.protobuf.Timestamp 1346 15, // 17: google.cloud.aiplatform.v1beta1.BatchPredictionJob.update_time:type_name -> google.protobuf.Timestamp 1347 5, // 18: google.cloud.aiplatform.v1beta1.BatchPredictionJob.labels:type_name -> google.cloud.aiplatform.v1beta1.BatchPredictionJob.LabelsEntry 1348 16, // 19: google.cloud.aiplatform.v1beta1.BatchPredictionJob.encryption_spec:type_name -> google.cloud.aiplatform.v1beta1.EncryptionSpec 1349 17, // 20: google.cloud.aiplatform.v1beta1.BatchPredictionJob.model_monitoring_config:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringConfig 1350 18, // 21: google.cloud.aiplatform.v1beta1.BatchPredictionJob.model_monitoring_stats_anomalies:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringStatsAnomalies 1351 12, // 22: google.cloud.aiplatform.v1beta1.BatchPredictionJob.model_monitoring_status:type_name -> google.rpc.Status 1352 19, // 23: google.cloud.aiplatform.v1beta1.BatchPredictionJob.InputConfig.gcs_source:type_name -> google.cloud.aiplatform.v1beta1.GcsSource 1353 20, // 24: google.cloud.aiplatform.v1beta1.BatchPredictionJob.InputConfig.bigquery_source:type_name -> google.cloud.aiplatform.v1beta1.BigQuerySource 1354 21, // 25: google.cloud.aiplatform.v1beta1.BatchPredictionJob.OutputConfig.gcs_destination:type_name -> google.cloud.aiplatform.v1beta1.GcsDestination 1355 22, // 26: google.cloud.aiplatform.v1beta1.BatchPredictionJob.OutputConfig.bigquery_destination:type_name -> google.cloud.aiplatform.v1beta1.BigQueryDestination 1356 27, // [27:27] is the sub-list for method output_type 1357 27, // [27:27] is the sub-list for method input_type 1358 27, // [27:27] is the sub-list for extension type_name 1359 27, // [27:27] is the sub-list for extension extendee 1360 0, // [0:27] is the sub-list for field type_name 1361 } 1362 1363 func init() { file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_init() } 1364 func file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_init() { 1365 if File_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto != nil { 1366 return 1367 } 1368 file_google_cloud_aiplatform_v1beta1_completion_stats_proto_init() 1369 file_google_cloud_aiplatform_v1beta1_encryption_spec_proto_init() 1370 file_google_cloud_aiplatform_v1beta1_explanation_proto_init() 1371 file_google_cloud_aiplatform_v1beta1_io_proto_init() 1372 file_google_cloud_aiplatform_v1beta1_job_state_proto_init() 1373 file_google_cloud_aiplatform_v1beta1_machine_resources_proto_init() 1374 file_google_cloud_aiplatform_v1beta1_manual_batch_tuning_parameters_proto_init() 1375 file_google_cloud_aiplatform_v1beta1_model_deployment_monitoring_job_proto_init() 1376 file_google_cloud_aiplatform_v1beta1_model_monitoring_proto_init() 1377 file_google_cloud_aiplatform_v1beta1_unmanaged_container_model_proto_init() 1378 file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_msgTypes[1].OneofWrappers = []any{ 1379 (*BatchPredictionJob_InputConfig_GcsSource)(nil), 1380 (*BatchPredictionJob_InputConfig_BigquerySource)(nil), 1381 } 1382 file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_msgTypes[3].OneofWrappers = []any{ 1383 (*BatchPredictionJob_OutputConfig_GcsDestination)(nil), 1384 (*BatchPredictionJob_OutputConfig_BigqueryDestination)(nil), 1385 } 1386 file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_msgTypes[4].OneofWrappers = []any{ 1387 (*BatchPredictionJob_OutputInfo_GcsOutputDirectory)(nil), 1388 (*BatchPredictionJob_OutputInfo_BigqueryOutputDataset)(nil), 1389 } 1390 type x struct{} 1391 out := protoimpl.TypeBuilder{ 1392 File: protoimpl.DescBuilder{ 1393 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1394 RawDescriptor: file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_rawDesc, 1395 NumEnums: 0, 1396 NumMessages: 6, 1397 NumExtensions: 0, 1398 NumServices: 0, 1399 }, 1400 GoTypes: file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_goTypes, 1401 DependencyIndexes: file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_depIdxs, 1402 MessageInfos: file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_msgTypes, 1403 }.Build() 1404 File_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto = out.File 1405 file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_rawDesc = nil 1406 file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_goTypes = nil 1407 file_google_cloud_aiplatform_v1beta1_batch_prediction_job_proto_depIdxs = nil 1408 }