cloud.google.com/go/aiplatform@v1.106.0/apiv1/aiplatformpb/custom_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/v1/custom_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 durationpb "google.golang.org/protobuf/types/known/durationpb" 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 // Optional. This determines which type of scheduling strategy to use. Right 42 // now users have two options such as STANDARD which will use regular on 43 // demand resources to schedule the job, the other is SPOT which would 44 // leverage spot resources alongwith regular resources to schedule 45 // the job. 46 type Scheduling_Strategy int32 47 48 const ( 49 // Strategy will default to STANDARD. 50 Scheduling_STRATEGY_UNSPECIFIED Scheduling_Strategy = 0 51 // Deprecated. Regular on-demand provisioning strategy. 52 // 53 // Deprecated: Marked as deprecated in google/cloud/aiplatform/v1/custom_job.proto. 54 Scheduling_ON_DEMAND Scheduling_Strategy = 1 55 // Deprecated. Low cost by making potential use of spot resources. 56 // 57 // Deprecated: Marked as deprecated in google/cloud/aiplatform/v1/custom_job.proto. 58 Scheduling_LOW_COST Scheduling_Strategy = 2 59 // Standard provisioning strategy uses regular on-demand resources. 60 Scheduling_STANDARD Scheduling_Strategy = 3 61 // Spot provisioning strategy uses spot resources. 62 Scheduling_SPOT Scheduling_Strategy = 4 63 // Flex Start strategy uses DWS to queue for resources. 64 Scheduling_FLEX_START Scheduling_Strategy = 6 65 ) 66 67 // Enum value maps for Scheduling_Strategy. 68 var ( 69 Scheduling_Strategy_name = map[int32]string{ 70 0: "STRATEGY_UNSPECIFIED", 71 1: "ON_DEMAND", 72 2: "LOW_COST", 73 3: "STANDARD", 74 4: "SPOT", 75 6: "FLEX_START", 76 } 77 Scheduling_Strategy_value = map[string]int32{ 78 "STRATEGY_UNSPECIFIED": 0, 79 "ON_DEMAND": 1, 80 "LOW_COST": 2, 81 "STANDARD": 3, 82 "SPOT": 4, 83 "FLEX_START": 6, 84 } 85 ) 86 87 func (x Scheduling_Strategy) Enum() *Scheduling_Strategy { 88 p := new(Scheduling_Strategy) 89 *p = x 90 return p 91 } 92 93 func (x Scheduling_Strategy) String() string { 94 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 95 } 96 97 func (Scheduling_Strategy) Descriptor() protoreflect.EnumDescriptor { 98 return file_google_cloud_aiplatform_v1_custom_job_proto_enumTypes[0].Descriptor() 99 } 100 101 func (Scheduling_Strategy) Type() protoreflect.EnumType { 102 return &file_google_cloud_aiplatform_v1_custom_job_proto_enumTypes[0] 103 } 104 105 func (x Scheduling_Strategy) Number() protoreflect.EnumNumber { 106 return protoreflect.EnumNumber(x) 107 } 108 109 // Deprecated: Use Scheduling_Strategy.Descriptor instead. 110 func (Scheduling_Strategy) EnumDescriptor() ([]byte, []int) { 111 return file_google_cloud_aiplatform_v1_custom_job_proto_rawDescGZIP(), []int{5, 0} 112 } 113 114 // Represents a job that runs custom workloads such as a Docker container or a 115 // Python package. A CustomJob can have multiple worker pools and each worker 116 // pool can have its own machine and input spec. A CustomJob will be cleaned up 117 // once the job enters terminal state (failed or succeeded). 118 type CustomJob struct { 119 state protoimpl.MessageState 120 sizeCache protoimpl.SizeCache 121 unknownFields protoimpl.UnknownFields 122 123 // Output only. Resource name of a CustomJob. 124 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 125 // Required. The display name of the CustomJob. 126 // The name can be up to 128 characters long and can consist of any UTF-8 127 // characters. 128 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 129 // Required. Job spec. 130 JobSpec *CustomJobSpec `protobuf:"bytes,4,opt,name=job_spec,json=jobSpec,proto3" json:"job_spec,omitempty"` 131 // Output only. The detailed state of the job. 132 State JobState `protobuf:"varint,5,opt,name=state,proto3,enum=google.cloud.aiplatform.v1.JobState" json:"state,omitempty"` 133 // Output only. Time when the CustomJob was created. 134 CreateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 135 // Output only. Time when the CustomJob for the first time entered the 136 // `JOB_STATE_RUNNING` state. 137 StartTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 138 // Output only. Time when the CustomJob entered any of the following states: 139 // `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED`, `JOB_STATE_CANCELLED`. 140 EndTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` 141 // Output only. Time when the CustomJob was most recently updated. 142 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 143 // Output only. Only populated when job's state is `JOB_STATE_FAILED` or 144 // `JOB_STATE_CANCELLED`. 145 Error *status.Status `protobuf:"bytes,10,opt,name=error,proto3" json:"error,omitempty"` 146 // The labels with user-defined metadata to organize CustomJobs. 147 // 148 // Label keys and values can be no longer than 64 characters 149 // (Unicode codepoints), can only contain lowercase letters, numeric 150 // characters, underscores and dashes. International characters are allowed. 151 // 152 // See https://goo.gl/xmQnxf for more information and examples of labels. 153 Labels map[string]string `protobuf:"bytes,11,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 154 // Customer-managed encryption key options for a CustomJob. If this is set, 155 // then all resources created by the CustomJob will be encrypted with the 156 // provided encryption key. 157 EncryptionSpec *EncryptionSpec `protobuf:"bytes,12,opt,name=encryption_spec,json=encryptionSpec,proto3" json:"encryption_spec,omitempty"` 158 // Output only. URIs for accessing [interactive 159 // shells](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell) 160 // (one URI for each training node). Only available if 161 // [job_spec.enable_web_access][google.cloud.aiplatform.v1.CustomJobSpec.enable_web_access] 162 // is `true`. 163 // 164 // The keys are names of each node in the training job; for example, 165 // `workerpool0-0` for the primary node, `workerpool1-0` for the first node in 166 // the second worker pool, and `workerpool1-1` for the second node in the 167 // second worker pool. 168 // 169 // The values are the URIs for each node's interactive shell. 170 WebAccessUris map[string]string `protobuf:"bytes,16,rep,name=web_access_uris,json=webAccessUris,proto3" json:"web_access_uris,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 171 // Output only. Reserved for future use. 172 SatisfiesPzs bool `protobuf:"varint,18,opt,name=satisfies_pzs,json=satisfiesPzs,proto3" json:"satisfies_pzs,omitempty"` 173 // Output only. Reserved for future use. 174 SatisfiesPzi bool `protobuf:"varint,19,opt,name=satisfies_pzi,json=satisfiesPzi,proto3" json:"satisfies_pzi,omitempty"` 175 } 176 177 func (x *CustomJob) Reset() { 178 *x = CustomJob{} 179 mi := &file_google_cloud_aiplatform_v1_custom_job_proto_msgTypes[0] 180 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 181 ms.StoreMessageInfo(mi) 182 } 183 184 func (x *CustomJob) String() string { 185 return protoimpl.X.MessageStringOf(x) 186 } 187 188 func (*CustomJob) ProtoMessage() {} 189 190 func (x *CustomJob) ProtoReflect() protoreflect.Message { 191 mi := &file_google_cloud_aiplatform_v1_custom_job_proto_msgTypes[0] 192 if x != nil { 193 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 194 if ms.LoadMessageInfo() == nil { 195 ms.StoreMessageInfo(mi) 196 } 197 return ms 198 } 199 return mi.MessageOf(x) 200 } 201 202 // Deprecated: Use CustomJob.ProtoReflect.Descriptor instead. 203 func (*CustomJob) Descriptor() ([]byte, []int) { 204 return file_google_cloud_aiplatform_v1_custom_job_proto_rawDescGZIP(), []int{0} 205 } 206 207 func (x *CustomJob) GetName() string { 208 if x != nil { 209 return x.Name 210 } 211 return "" 212 } 213 214 func (x *CustomJob) GetDisplayName() string { 215 if x != nil { 216 return x.DisplayName 217 } 218 return "" 219 } 220 221 func (x *CustomJob) GetJobSpec() *CustomJobSpec { 222 if x != nil { 223 return x.JobSpec 224 } 225 return nil 226 } 227 228 func (x *CustomJob) GetState() JobState { 229 if x != nil { 230 return x.State 231 } 232 return JobState_JOB_STATE_UNSPECIFIED 233 } 234 235 func (x *CustomJob) GetCreateTime() *timestamppb.Timestamp { 236 if x != nil { 237 return x.CreateTime 238 } 239 return nil 240 } 241 242 func (x *CustomJob) GetStartTime() *timestamppb.Timestamp { 243 if x != nil { 244 return x.StartTime 245 } 246 return nil 247 } 248 249 func (x *CustomJob) GetEndTime() *timestamppb.Timestamp { 250 if x != nil { 251 return x.EndTime 252 } 253 return nil 254 } 255 256 func (x *CustomJob) GetUpdateTime() *timestamppb.Timestamp { 257 if x != nil { 258 return x.UpdateTime 259 } 260 return nil 261 } 262 263 func (x *CustomJob) GetError() *status.Status { 264 if x != nil { 265 return x.Error 266 } 267 return nil 268 } 269 270 func (x *CustomJob) GetLabels() map[string]string { 271 if x != nil { 272 return x.Labels 273 } 274 return nil 275 } 276 277 func (x *CustomJob) GetEncryptionSpec() *EncryptionSpec { 278 if x != nil { 279 return x.EncryptionSpec 280 } 281 return nil 282 } 283 284 func (x *CustomJob) GetWebAccessUris() map[string]string { 285 if x != nil { 286 return x.WebAccessUris 287 } 288 return nil 289 } 290 291 func (x *CustomJob) GetSatisfiesPzs() bool { 292 if x != nil { 293 return x.SatisfiesPzs 294 } 295 return false 296 } 297 298 func (x *CustomJob) GetSatisfiesPzi() bool { 299 if x != nil { 300 return x.SatisfiesPzi 301 } 302 return false 303 } 304 305 // Represents the spec of a CustomJob. 306 type CustomJobSpec struct { 307 state protoimpl.MessageState 308 sizeCache protoimpl.SizeCache 309 unknownFields protoimpl.UnknownFields 310 311 // Optional. The ID of the PersistentResource in the same Project and Location 312 // which to run 313 // 314 // If this is specified, the job will be run on existing machines held by the 315 // PersistentResource instead of on-demand short-live machines. 316 // The network and CMEK configs on the job should be consistent with those on 317 // the PersistentResource, otherwise, the job will be rejected. 318 PersistentResourceId string `protobuf:"bytes,14,opt,name=persistent_resource_id,json=persistentResourceId,proto3" json:"persistent_resource_id,omitempty"` 319 // Required. The spec of the worker pools including machine type and Docker 320 // image. All worker pools except the first one are optional and can be 321 // skipped by providing an empty value. 322 WorkerPoolSpecs []*WorkerPoolSpec `protobuf:"bytes,1,rep,name=worker_pool_specs,json=workerPoolSpecs,proto3" json:"worker_pool_specs,omitempty"` 323 // Scheduling options for a CustomJob. 324 Scheduling *Scheduling `protobuf:"bytes,3,opt,name=scheduling,proto3" json:"scheduling,omitempty"` 325 // Specifies the service account for workload run-as account. 326 // Users submitting jobs must have act-as permission on this run-as account. 327 // If unspecified, the [Vertex AI Custom Code Service 328 // Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) 329 // for the CustomJob's project is used. 330 ServiceAccount string `protobuf:"bytes,4,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"` 331 // Optional. The full name of the Compute Engine 332 // [network](/compute/docs/networks-and-firewalls#networks) to which the Job 333 // should be peered. For example, `projects/12345/global/networks/myVPC`. 334 // [Format](/compute/docs/reference/rest/v1/networks/insert) 335 // is of the form `projects/{project}/global/networks/{network}`. 336 // Where {project} is a project number, as in `12345`, and {network} is a 337 // network name. 338 // 339 // To specify this field, you must have already [configured VPC Network 340 // Peering for Vertex 341 // AI](https://cloud.google.com/vertex-ai/docs/general/vpc-peering). 342 // 343 // If this field is left unspecified, the job is not peered with any network. 344 Network string `protobuf:"bytes,5,opt,name=network,proto3" json:"network,omitempty"` 345 // Optional. A list of names for the reserved ip ranges under the VPC network 346 // that can be used for this job. 347 // 348 // If set, we will deploy the job within the provided ip ranges. Otherwise, 349 // the job will be deployed to any ip ranges under the provided VPC 350 // network. 351 // 352 // Example: ['vertex-ai-ip-range']. 353 ReservedIpRanges []string `protobuf:"bytes,13,rep,name=reserved_ip_ranges,json=reservedIpRanges,proto3" json:"reserved_ip_ranges,omitempty"` 354 // Optional. Configuration for PSC-I for CustomJob. 355 PscInterfaceConfig *PscInterfaceConfig `protobuf:"bytes,21,opt,name=psc_interface_config,json=pscInterfaceConfig,proto3" json:"psc_interface_config,omitempty"` 356 // The Cloud Storage location to store the output of this CustomJob or 357 // HyperparameterTuningJob. For HyperparameterTuningJob, 358 // the baseOutputDirectory of 359 // each child CustomJob backing a Trial is set to a subdirectory of name 360 // [id][google.cloud.aiplatform.v1.Trial.id] under its parent 361 // HyperparameterTuningJob's baseOutputDirectory. 362 // 363 // The following Vertex AI environment variables will be passed to 364 // containers or python modules when this field is set: 365 // 366 // For CustomJob: 367 // 368 // * AIP_MODEL_DIR = `<base_output_directory>/model/` 369 // * AIP_CHECKPOINT_DIR = `<base_output_directory>/checkpoints/` 370 // * AIP_TENSORBOARD_LOG_DIR = `<base_output_directory>/logs/` 371 // 372 // For CustomJob backing a Trial of HyperparameterTuningJob: 373 // 374 // * AIP_MODEL_DIR = `<base_output_directory>/<trial_id>/model/` 375 // * AIP_CHECKPOINT_DIR = `<base_output_directory>/<trial_id>/checkpoints/` 376 // * AIP_TENSORBOARD_LOG_DIR = `<base_output_directory>/<trial_id>/logs/` 377 BaseOutputDirectory *GcsDestination `protobuf:"bytes,6,opt,name=base_output_directory,json=baseOutputDirectory,proto3" json:"base_output_directory,omitempty"` 378 // The ID of the location to store protected artifacts. e.g. us-central1. 379 // Populate only when the location is different than CustomJob location. 380 // List of supported locations: 381 // https://cloud.google.com/vertex-ai/docs/general/locations 382 ProtectedArtifactLocationId string `protobuf:"bytes,19,opt,name=protected_artifact_location_id,json=protectedArtifactLocationId,proto3" json:"protected_artifact_location_id,omitempty"` 383 // Optional. The name of a Vertex AI 384 // [Tensorboard][google.cloud.aiplatform.v1.Tensorboard] resource to which 385 // this CustomJob will upload Tensorboard logs. Format: 386 // `projects/{project}/locations/{location}/tensorboards/{tensorboard}` 387 Tensorboard string `protobuf:"bytes,7,opt,name=tensorboard,proto3" json:"tensorboard,omitempty"` 388 // Optional. Whether you want Vertex AI to enable [interactive shell 389 // access](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell) 390 // to training containers. 391 // 392 // If set to `true`, you can access interactive shells at the URIs given 393 // by 394 // [CustomJob.web_access_uris][google.cloud.aiplatform.v1.CustomJob.web_access_uris] 395 // or 396 // [Trial.web_access_uris][google.cloud.aiplatform.v1.Trial.web_access_uris] 397 // (within 398 // [HyperparameterTuningJob.trials][google.cloud.aiplatform.v1.HyperparameterTuningJob.trials]). 399 EnableWebAccess bool `protobuf:"varint,10,opt,name=enable_web_access,json=enableWebAccess,proto3" json:"enable_web_access,omitempty"` 400 // Optional. Whether you want Vertex AI to enable access to the customized 401 // dashboard in training chief container. 402 // 403 // If set to `true`, you can access the dashboard at the URIs given 404 // by 405 // [CustomJob.web_access_uris][google.cloud.aiplatform.v1.CustomJob.web_access_uris] 406 // or 407 // [Trial.web_access_uris][google.cloud.aiplatform.v1.Trial.web_access_uris] 408 // (within 409 // [HyperparameterTuningJob.trials][google.cloud.aiplatform.v1.HyperparameterTuningJob.trials]). 410 EnableDashboardAccess bool `protobuf:"varint,16,opt,name=enable_dashboard_access,json=enableDashboardAccess,proto3" json:"enable_dashboard_access,omitempty"` 411 // Optional. The Experiment associated with this job. 412 // Format: 413 // `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}` 414 Experiment string `protobuf:"bytes,17,opt,name=experiment,proto3" json:"experiment,omitempty"` 415 // Optional. The Experiment Run associated with this job. 416 // Format: 417 // `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}-{experiment-run-name}` 418 ExperimentRun string `protobuf:"bytes,18,opt,name=experiment_run,json=experimentRun,proto3" json:"experiment_run,omitempty"` 419 // Optional. The name of the Model resources for which to generate a mapping 420 // to artifact URIs. Applicable only to some of the Google-provided custom 421 // jobs. Format: `projects/{project}/locations/{location}/models/{model}` 422 // 423 // In order to retrieve a specific version of the model, also provide 424 // the version ID or version alias. 425 // 426 // Example: `projects/{project}/locations/{location}/models/{model}@2` 427 // or 428 // `projects/{project}/locations/{location}/models/{model}@golden` 429 // 430 // If no version ID or alias is specified, the "default" version will be 431 // returned. The "default" version alias is created for the first version of 432 // the model, and can be moved to other versions later on. There will be 433 // exactly one default version. 434 Models []string `protobuf:"bytes,20,rep,name=models,proto3" json:"models,omitempty"` 435 } 436 437 func (x *CustomJobSpec) Reset() { 438 *x = CustomJobSpec{} 439 mi := &file_google_cloud_aiplatform_v1_custom_job_proto_msgTypes[1] 440 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 441 ms.StoreMessageInfo(mi) 442 } 443 444 func (x *CustomJobSpec) String() string { 445 return protoimpl.X.MessageStringOf(x) 446 } 447 448 func (*CustomJobSpec) ProtoMessage() {} 449 450 func (x *CustomJobSpec) ProtoReflect() protoreflect.Message { 451 mi := &file_google_cloud_aiplatform_v1_custom_job_proto_msgTypes[1] 452 if x != nil { 453 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 454 if ms.LoadMessageInfo() == nil { 455 ms.StoreMessageInfo(mi) 456 } 457 return ms 458 } 459 return mi.MessageOf(x) 460 } 461 462 // Deprecated: Use CustomJobSpec.ProtoReflect.Descriptor instead. 463 func (*CustomJobSpec) Descriptor() ([]byte, []int) { 464 return file_google_cloud_aiplatform_v1_custom_job_proto_rawDescGZIP(), []int{1} 465 } 466 467 func (x *CustomJobSpec) GetPersistentResourceId() string { 468 if x != nil { 469 return x.PersistentResourceId 470 } 471 return "" 472 } 473 474 func (x *CustomJobSpec) GetWorkerPoolSpecs() []*WorkerPoolSpec { 475 if x != nil { 476 return x.WorkerPoolSpecs 477 } 478 return nil 479 } 480 481 func (x *CustomJobSpec) GetScheduling() *Scheduling { 482 if x != nil { 483 return x.Scheduling 484 } 485 return nil 486 } 487 488 func (x *CustomJobSpec) GetServiceAccount() string { 489 if x != nil { 490 return x.ServiceAccount 491 } 492 return "" 493 } 494 495 func (x *CustomJobSpec) GetNetwork() string { 496 if x != nil { 497 return x.Network 498 } 499 return "" 500 } 501 502 func (x *CustomJobSpec) GetReservedIpRanges() []string { 503 if x != nil { 504 return x.ReservedIpRanges 505 } 506 return nil 507 } 508 509 func (x *CustomJobSpec) GetPscInterfaceConfig() *PscInterfaceConfig { 510 if x != nil { 511 return x.PscInterfaceConfig 512 } 513 return nil 514 } 515 516 func (x *CustomJobSpec) GetBaseOutputDirectory() *GcsDestination { 517 if x != nil { 518 return x.BaseOutputDirectory 519 } 520 return nil 521 } 522 523 func (x *CustomJobSpec) GetProtectedArtifactLocationId() string { 524 if x != nil { 525 return x.ProtectedArtifactLocationId 526 } 527 return "" 528 } 529 530 func (x *CustomJobSpec) GetTensorboard() string { 531 if x != nil { 532 return x.Tensorboard 533 } 534 return "" 535 } 536 537 func (x *CustomJobSpec) GetEnableWebAccess() bool { 538 if x != nil { 539 return x.EnableWebAccess 540 } 541 return false 542 } 543 544 func (x *CustomJobSpec) GetEnableDashboardAccess() bool { 545 if x != nil { 546 return x.EnableDashboardAccess 547 } 548 return false 549 } 550 551 func (x *CustomJobSpec) GetExperiment() string { 552 if x != nil { 553 return x.Experiment 554 } 555 return "" 556 } 557 558 func (x *CustomJobSpec) GetExperimentRun() string { 559 if x != nil { 560 return x.ExperimentRun 561 } 562 return "" 563 } 564 565 func (x *CustomJobSpec) GetModels() []string { 566 if x != nil { 567 return x.Models 568 } 569 return nil 570 } 571 572 // Represents the spec of a worker pool in a job. 573 type WorkerPoolSpec struct { 574 state protoimpl.MessageState 575 sizeCache protoimpl.SizeCache 576 unknownFields protoimpl.UnknownFields 577 578 // The custom task to be executed in this worker pool. 579 // 580 // Types that are assignable to Task: 581 // 582 // *WorkerPoolSpec_ContainerSpec 583 // *WorkerPoolSpec_PythonPackageSpec 584 Task isWorkerPoolSpec_Task `protobuf_oneof:"task"` 585 // Optional. Immutable. The specification of a single machine. 586 MachineSpec *MachineSpec `protobuf:"bytes,1,opt,name=machine_spec,json=machineSpec,proto3" json:"machine_spec,omitempty"` 587 // Optional. The number of worker replicas to use for this worker pool. 588 ReplicaCount int64 `protobuf:"varint,2,opt,name=replica_count,json=replicaCount,proto3" json:"replica_count,omitempty"` 589 // Optional. List of NFS mount spec. 590 NfsMounts []*NfsMount `protobuf:"bytes,4,rep,name=nfs_mounts,json=nfsMounts,proto3" json:"nfs_mounts,omitempty"` 591 // Disk spec. 592 DiskSpec *DiskSpec `protobuf:"bytes,5,opt,name=disk_spec,json=diskSpec,proto3" json:"disk_spec,omitempty"` 593 } 594 595 func (x *WorkerPoolSpec) Reset() { 596 *x = WorkerPoolSpec{} 597 mi := &file_google_cloud_aiplatform_v1_custom_job_proto_msgTypes[2] 598 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 599 ms.StoreMessageInfo(mi) 600 } 601 602 func (x *WorkerPoolSpec) String() string { 603 return protoimpl.X.MessageStringOf(x) 604 } 605 606 func (*WorkerPoolSpec) ProtoMessage() {} 607 608 func (x *WorkerPoolSpec) ProtoReflect() protoreflect.Message { 609 mi := &file_google_cloud_aiplatform_v1_custom_job_proto_msgTypes[2] 610 if x != nil { 611 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 612 if ms.LoadMessageInfo() == nil { 613 ms.StoreMessageInfo(mi) 614 } 615 return ms 616 } 617 return mi.MessageOf(x) 618 } 619 620 // Deprecated: Use WorkerPoolSpec.ProtoReflect.Descriptor instead. 621 func (*WorkerPoolSpec) Descriptor() ([]byte, []int) { 622 return file_google_cloud_aiplatform_v1_custom_job_proto_rawDescGZIP(), []int{2} 623 } 624 625 func (m *WorkerPoolSpec) GetTask() isWorkerPoolSpec_Task { 626 if m != nil { 627 return m.Task 628 } 629 return nil 630 } 631 632 func (x *WorkerPoolSpec) GetContainerSpec() *ContainerSpec { 633 if x, ok := x.GetTask().(*WorkerPoolSpec_ContainerSpec); ok { 634 return x.ContainerSpec 635 } 636 return nil 637 } 638 639 func (x *WorkerPoolSpec) GetPythonPackageSpec() *PythonPackageSpec { 640 if x, ok := x.GetTask().(*WorkerPoolSpec_PythonPackageSpec); ok { 641 return x.PythonPackageSpec 642 } 643 return nil 644 } 645 646 func (x *WorkerPoolSpec) GetMachineSpec() *MachineSpec { 647 if x != nil { 648 return x.MachineSpec 649 } 650 return nil 651 } 652 653 func (x *WorkerPoolSpec) GetReplicaCount() int64 { 654 if x != nil { 655 return x.ReplicaCount 656 } 657 return 0 658 } 659 660 func (x *WorkerPoolSpec) GetNfsMounts() []*NfsMount { 661 if x != nil { 662 return x.NfsMounts 663 } 664 return nil 665 } 666 667 func (x *WorkerPoolSpec) GetDiskSpec() *DiskSpec { 668 if x != nil { 669 return x.DiskSpec 670 } 671 return nil 672 } 673 674 type isWorkerPoolSpec_Task interface { 675 isWorkerPoolSpec_Task() 676 } 677 678 type WorkerPoolSpec_ContainerSpec struct { 679 // The custom container task. 680 ContainerSpec *ContainerSpec `protobuf:"bytes,6,opt,name=container_spec,json=containerSpec,proto3,oneof"` 681 } 682 683 type WorkerPoolSpec_PythonPackageSpec struct { 684 // The Python packaged task. 685 PythonPackageSpec *PythonPackageSpec `protobuf:"bytes,7,opt,name=python_package_spec,json=pythonPackageSpec,proto3,oneof"` 686 } 687 688 func (*WorkerPoolSpec_ContainerSpec) isWorkerPoolSpec_Task() {} 689 690 func (*WorkerPoolSpec_PythonPackageSpec) isWorkerPoolSpec_Task() {} 691 692 // The spec of a Container. 693 type ContainerSpec struct { 694 state protoimpl.MessageState 695 sizeCache protoimpl.SizeCache 696 unknownFields protoimpl.UnknownFields 697 698 // Required. The URI of a container image in the Container Registry that is to 699 // be run on each worker replica. 700 ImageUri string `protobuf:"bytes,1,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"` 701 // The command to be invoked when the container is started. 702 // It overrides the entrypoint instruction in Dockerfile when provided. 703 Command []string `protobuf:"bytes,2,rep,name=command,proto3" json:"command,omitempty"` 704 // The arguments to be passed when starting the container. 705 Args []string `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"` 706 // Environment variables to be passed to the container. 707 // Maximum limit is 100. 708 Env []*EnvVar `protobuf:"bytes,4,rep,name=env,proto3" json:"env,omitempty"` 709 } 710 711 func (x *ContainerSpec) Reset() { 712 *x = ContainerSpec{} 713 mi := &file_google_cloud_aiplatform_v1_custom_job_proto_msgTypes[3] 714 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 715 ms.StoreMessageInfo(mi) 716 } 717 718 func (x *ContainerSpec) String() string { 719 return protoimpl.X.MessageStringOf(x) 720 } 721 722 func (*ContainerSpec) ProtoMessage() {} 723 724 func (x *ContainerSpec) ProtoReflect() protoreflect.Message { 725 mi := &file_google_cloud_aiplatform_v1_custom_job_proto_msgTypes[3] 726 if x != nil { 727 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 728 if ms.LoadMessageInfo() == nil { 729 ms.StoreMessageInfo(mi) 730 } 731 return ms 732 } 733 return mi.MessageOf(x) 734 } 735 736 // Deprecated: Use ContainerSpec.ProtoReflect.Descriptor instead. 737 func (*ContainerSpec) Descriptor() ([]byte, []int) { 738 return file_google_cloud_aiplatform_v1_custom_job_proto_rawDescGZIP(), []int{3} 739 } 740 741 func (x *ContainerSpec) GetImageUri() string { 742 if x != nil { 743 return x.ImageUri 744 } 745 return "" 746 } 747 748 func (x *ContainerSpec) GetCommand() []string { 749 if x != nil { 750 return x.Command 751 } 752 return nil 753 } 754 755 func (x *ContainerSpec) GetArgs() []string { 756 if x != nil { 757 return x.Args 758 } 759 return nil 760 } 761 762 func (x *ContainerSpec) GetEnv() []*EnvVar { 763 if x != nil { 764 return x.Env 765 } 766 return nil 767 } 768 769 // The spec of a Python packaged code. 770 type PythonPackageSpec struct { 771 state protoimpl.MessageState 772 sizeCache protoimpl.SizeCache 773 unknownFields protoimpl.UnknownFields 774 775 // Required. The URI of a container image in Artifact Registry that will run 776 // the provided Python package. Vertex AI provides a wide range of executor 777 // images with pre-installed packages to meet users' various use cases. See 778 // the list of [pre-built containers for 779 // training](https://cloud.google.com/vertex-ai/docs/training/pre-built-containers). 780 // You must use an image from this list. 781 ExecutorImageUri string `protobuf:"bytes,1,opt,name=executor_image_uri,json=executorImageUri,proto3" json:"executor_image_uri,omitempty"` 782 // Required. The Google Cloud Storage location of the Python package files 783 // which are the training program and its dependent packages. The maximum 784 // number of package URIs is 100. 785 PackageUris []string `protobuf:"bytes,2,rep,name=package_uris,json=packageUris,proto3" json:"package_uris,omitempty"` 786 // Required. The Python module name to run after installing the packages. 787 PythonModule string `protobuf:"bytes,3,opt,name=python_module,json=pythonModule,proto3" json:"python_module,omitempty"` 788 // Command line arguments to be passed to the Python task. 789 Args []string `protobuf:"bytes,4,rep,name=args,proto3" json:"args,omitempty"` 790 // Environment variables to be passed to the python module. 791 // Maximum limit is 100. 792 Env []*EnvVar `protobuf:"bytes,5,rep,name=env,proto3" json:"env,omitempty"` 793 } 794 795 func (x *PythonPackageSpec) Reset() { 796 *x = PythonPackageSpec{} 797 mi := &file_google_cloud_aiplatform_v1_custom_job_proto_msgTypes[4] 798 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 799 ms.StoreMessageInfo(mi) 800 } 801 802 func (x *PythonPackageSpec) String() string { 803 return protoimpl.X.MessageStringOf(x) 804 } 805 806 func (*PythonPackageSpec) ProtoMessage() {} 807 808 func (x *PythonPackageSpec) ProtoReflect() protoreflect.Message { 809 mi := &file_google_cloud_aiplatform_v1_custom_job_proto_msgTypes[4] 810 if x != nil { 811 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 812 if ms.LoadMessageInfo() == nil { 813 ms.StoreMessageInfo(mi) 814 } 815 return ms 816 } 817 return mi.MessageOf(x) 818 } 819 820 // Deprecated: Use PythonPackageSpec.ProtoReflect.Descriptor instead. 821 func (*PythonPackageSpec) Descriptor() ([]byte, []int) { 822 return file_google_cloud_aiplatform_v1_custom_job_proto_rawDescGZIP(), []int{4} 823 } 824 825 func (x *PythonPackageSpec) GetExecutorImageUri() string { 826 if x != nil { 827 return x.ExecutorImageUri 828 } 829 return "" 830 } 831 832 func (x *PythonPackageSpec) GetPackageUris() []string { 833 if x != nil { 834 return x.PackageUris 835 } 836 return nil 837 } 838 839 func (x *PythonPackageSpec) GetPythonModule() string { 840 if x != nil { 841 return x.PythonModule 842 } 843 return "" 844 } 845 846 func (x *PythonPackageSpec) GetArgs() []string { 847 if x != nil { 848 return x.Args 849 } 850 return nil 851 } 852 853 func (x *PythonPackageSpec) GetEnv() []*EnvVar { 854 if x != nil { 855 return x.Env 856 } 857 return nil 858 } 859 860 // All parameters related to queuing and scheduling of custom jobs. 861 type Scheduling struct { 862 state protoimpl.MessageState 863 sizeCache protoimpl.SizeCache 864 unknownFields protoimpl.UnknownFields 865 866 // Optional. The maximum job running time. The default is 7 days. 867 Timeout *durationpb.Duration `protobuf:"bytes,1,opt,name=timeout,proto3" json:"timeout,omitempty"` 868 // Optional. Restarts the entire CustomJob if a worker gets restarted. 869 // This feature can be used by distributed training jobs that are not 870 // resilient to workers leaving and joining a job. 871 RestartJobOnWorkerRestart bool `protobuf:"varint,3,opt,name=restart_job_on_worker_restart,json=restartJobOnWorkerRestart,proto3" json:"restart_job_on_worker_restart,omitempty"` 872 // Optional. This determines which type of scheduling strategy to use. 873 Strategy Scheduling_Strategy `protobuf:"varint,4,opt,name=strategy,proto3,enum=google.cloud.aiplatform.v1.Scheduling_Strategy" json:"strategy,omitempty"` 874 // Optional. Indicates if the job should retry for internal errors after the 875 // job starts running. If true, overrides 876 // `Scheduling.restart_job_on_worker_restart` to false. 877 DisableRetries bool `protobuf:"varint,5,opt,name=disable_retries,json=disableRetries,proto3" json:"disable_retries,omitempty"` 878 // Optional. This is the maximum duration that a job will wait for the 879 // requested resources to be provisioned if the scheduling strategy is set to 880 // [Strategy.DWS_FLEX_START]. 881 // If set to 0, the job will wait indefinitely. The default is 24 hours. 882 MaxWaitDuration *durationpb.Duration `protobuf:"bytes,6,opt,name=max_wait_duration,json=maxWaitDuration,proto3" json:"max_wait_duration,omitempty"` 883 } 884 885 func (x *Scheduling) Reset() { 886 *x = Scheduling{} 887 mi := &file_google_cloud_aiplatform_v1_custom_job_proto_msgTypes[5] 888 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 889 ms.StoreMessageInfo(mi) 890 } 891 892 func (x *Scheduling) String() string { 893 return protoimpl.X.MessageStringOf(x) 894 } 895 896 func (*Scheduling) ProtoMessage() {} 897 898 func (x *Scheduling) ProtoReflect() protoreflect.Message { 899 mi := &file_google_cloud_aiplatform_v1_custom_job_proto_msgTypes[5] 900 if x != nil { 901 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 902 if ms.LoadMessageInfo() == nil { 903 ms.StoreMessageInfo(mi) 904 } 905 return ms 906 } 907 return mi.MessageOf(x) 908 } 909 910 // Deprecated: Use Scheduling.ProtoReflect.Descriptor instead. 911 func (*Scheduling) Descriptor() ([]byte, []int) { 912 return file_google_cloud_aiplatform_v1_custom_job_proto_rawDescGZIP(), []int{5} 913 } 914 915 func (x *Scheduling) GetTimeout() *durationpb.Duration { 916 if x != nil { 917 return x.Timeout 918 } 919 return nil 920 } 921 922 func (x *Scheduling) GetRestartJobOnWorkerRestart() bool { 923 if x != nil { 924 return x.RestartJobOnWorkerRestart 925 } 926 return false 927 } 928 929 func (x *Scheduling) GetStrategy() Scheduling_Strategy { 930 if x != nil { 931 return x.Strategy 932 } 933 return Scheduling_STRATEGY_UNSPECIFIED 934 } 935 936 func (x *Scheduling) GetDisableRetries() bool { 937 if x != nil { 938 return x.DisableRetries 939 } 940 return false 941 } 942 943 func (x *Scheduling) GetMaxWaitDuration() *durationpb.Duration { 944 if x != nil { 945 return x.MaxWaitDuration 946 } 947 return nil 948 } 949 950 var File_google_cloud_aiplatform_v1_custom_job_proto protoreflect.FileDescriptor 951 952 var file_google_cloud_aiplatform_v1_custom_job_proto_rawDesc = []byte{ 953 0x0a, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 954 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x75, 0x73, 955 0x74, 0x6f, 0x6d, 0x5f, 0x6a, 0x6f, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 956 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 957 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 958 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 959 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 960 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 961 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 962 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 963 0x31, 0x2f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 964 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 965 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 966 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x6e, 0x76, 0x5f, 0x76, 0x61, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 967 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 968 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6f, 969 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 970 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 971 0x76, 0x31, 0x2f, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 972 0x74, 0x6f, 0x1a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 973 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 974 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 975 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 976 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 977 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 978 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 979 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 980 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 981 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 982 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 983 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 984 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xca, 0x08, 0x0a, 0x09, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 985 0x4a, 0x6f, 0x62, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 986 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 987 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 988 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 989 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x70, 0x65, 0x63, 990 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 991 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 992 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 993 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x12, 994 0x3f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 995 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 996 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 997 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 998 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 999 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 1000 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 1001 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 1002 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 1003 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1004 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 1005 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 1006 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 1007 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 1008 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 1009 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 1010 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 1011 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 1012 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 1013 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 1014 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 1015 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 1016 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 1017 0x49, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 1018 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 1019 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x75, 0x73, 1020 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 1021 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x53, 0x0a, 0x0f, 0x65, 0x6e, 1022 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0c, 0x20, 1023 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 1024 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 1025 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 1026 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 1027 0x65, 0x0a, 0x0f, 0x77, 0x65, 0x62, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x75, 0x72, 1028 0x69, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1029 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 1030 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x2e, 1031 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 0x69, 0x73, 0x45, 0x6e, 0x74, 1032 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x77, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 1033 0x73, 0x73, 0x55, 0x72, 0x69, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 1034 0x69, 0x65, 0x73, 0x5f, 0x70, 0x7a, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 1035 0x41, 0x03, 0x52, 0x0c, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x50, 0x7a, 0x73, 1036 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x5f, 0x70, 0x7a, 1037 0x69, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x61, 1038 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x50, 0x7a, 0x69, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 1039 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 1040 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 1041 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 1042 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 1043 0x73, 0x73, 0x55, 0x72, 0x69, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 1044 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 1045 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 1046 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x69, 0xea, 0x41, 0x66, 0x0a, 0x23, 0x61, 0x69, 1047 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 1048 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 1049 0x62, 0x12, 0x3f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 1050 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 1051 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 1052 0x6d, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6a, 0x6f, 1053 0x62, 0x7d, 0x22, 0xe7, 0x08, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 1054 0x53, 0x70, 0x65, 0x63, 0x12, 0x6a, 0x0a, 0x16, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 1055 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0e, 1056 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x2e, 0x0a, 0x2c, 0x61, 0x69, 1057 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 1058 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 1059 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x14, 0x70, 0x65, 0x72, 0x73, 1060 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 1061 0x12, 0x5b, 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 1062 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 1063 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 1064 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 1065 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x77, 0x6f, 1066 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x46, 0x0a, 1067 0x0a, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 1068 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1069 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 1070 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x64, 1071 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 1072 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 1073 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 1074 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 1075 0x26, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 1076 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 1077 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 1078 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x5f, 1079 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 1080 0x01, 0x52, 0x10, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x49, 0x70, 0x52, 0x61, 0x6e, 1081 0x67, 0x65, 0x73, 0x12, 0x65, 0x0a, 0x14, 0x70, 0x73, 0x63, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 1082 0x66, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 1083 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1084 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 1085 0x73, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 1086 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x70, 0x73, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 1087 0x66, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5e, 0x0a, 0x15, 0x62, 0x61, 1088 0x73, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 1089 0x6f, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1090 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 1091 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x63, 0x73, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 1092 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x62, 0x61, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 1093 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x43, 0x0a, 0x1e, 0x70, 0x72, 1094 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 1095 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 1096 0x28, 0x09, 0x52, 0x1b, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 1097 0x69, 0x66, 0x61, 0x63, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 1098 0x4f, 0x0a, 0x0b, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x07, 1099 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x61, 0x69, 1100 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 1101 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x62, 0x6f, 1102 0x61, 0x72, 0x64, 0x52, 0x0b, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 1103 0x12, 0x2f, 0x0a, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x65, 0x62, 0x5f, 0x61, 1104 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 1105 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 1106 0x73, 0x12, 0x3b, 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x73, 0x68, 1107 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 1108 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 1109 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 1110 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 1111 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x61, 0x69, 0x70, 0x6c, 1112 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 1113 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0a, 0x65, 1114 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x50, 0x0a, 0x0e, 0x65, 0x78, 0x70, 1115 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 1116 0x09, 0x42, 0x29, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x61, 0x69, 0x70, 0x6c, 0x61, 1117 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 1118 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0d, 0x65, 0x78, 1119 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x12, 0x3f, 0x0a, 0x06, 0x6d, 1120 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x01, 1121 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 1122 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 1123 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x22, 0xd8, 0x03, 0x0a, 1124 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x12, 1125 0x52, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 1126 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1127 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 1128 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 1129 0x65, 0x63, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 1130 0x70, 0x65, 0x63, 0x12, 0x5f, 0x0a, 0x13, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 1131 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 1132 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 1133 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x79, 1134 0x74, 0x68, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 1135 0x00, 0x52, 0x11, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 1136 0x53, 0x70, 0x65, 0x63, 0x12, 0x52, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 1137 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 1138 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 1139 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 1140 0x70, 0x65, 0x63, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x63, 1141 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6c, 1142 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 1143 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 1144 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0a, 0x6e, 0x66, 0x73, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 1145 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1146 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1147 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x66, 0x73, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 1148 0x01, 0x52, 0x09, 0x6e, 0x66, 0x73, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x09, 1149 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 1150 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 1151 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 1152 0x6b, 0x53, 0x70, 0x65, 0x63, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x42, 1153 0x06, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x95, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 1154 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x6d, 0x61, 1155 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 1156 0x02, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x63, 1157 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 1158 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x03, 0x20, 1159 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x34, 0x0a, 0x03, 0x65, 0x6e, 0x76, 1160 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1161 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1162 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x22, 1163 0xe2, 0x01, 0x0a, 0x11, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 1164 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x31, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 1165 0x72, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 1166 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 1167 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 1168 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 1169 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x73, 1170 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 1171 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x70, 0x79, 1172 0x74, 0x68, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 1173 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x34, 1174 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 1175 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 1176 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 1177 0x03, 0x65, 0x6e, 0x76, 0x22, 0xc2, 0x03, 0x0a, 0x0a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 1178 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x01, 1179 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 1180 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 1181 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x40, 0x0a, 0x1d, 0x72, 0x65, 0x73, 0x74, 1182 0x61, 0x72, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x6f, 0x6e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 1183 0x72, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 1184 0x19, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x4f, 0x6e, 0x57, 0x6f, 0x72, 1185 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x50, 0x0a, 0x08, 0x73, 0x74, 1186 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 1187 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 1188 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 1189 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x42, 0x03, 0xe0, 1190 0x41, 0x01, 0x52, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x2c, 0x0a, 0x0f, 1191 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 1192 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x61, 1193 0x62, 0x6c, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x11, 0x6d, 0x61, 1194 0x78, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 1195 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 1196 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 1197 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x57, 0x61, 0x69, 0x74, 0x44, 0x75, 1198 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x71, 0x0a, 0x08, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 1199 0x67, 0x79, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x55, 1200 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x09, 1201 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x4d, 0x41, 0x4e, 0x44, 0x10, 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, 1202 0x10, 0x0a, 0x08, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x53, 0x54, 0x10, 0x02, 0x1a, 0x02, 0x08, 1203 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x03, 0x12, 1204 0x08, 0x0a, 0x04, 0x53, 0x50, 0x4f, 0x54, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x4c, 0x45, 1205 0x58, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x06, 0x42, 0xcc, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 1206 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 1207 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x43, 0x75, 1208 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 1209 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 1210 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 1211 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 1212 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 1213 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 1214 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 1215 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 1216 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 1217 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 1218 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 1219 } 1220 1221 var ( 1222 file_google_cloud_aiplatform_v1_custom_job_proto_rawDescOnce sync.Once 1223 file_google_cloud_aiplatform_v1_custom_job_proto_rawDescData = file_google_cloud_aiplatform_v1_custom_job_proto_rawDesc 1224 ) 1225 1226 func file_google_cloud_aiplatform_v1_custom_job_proto_rawDescGZIP() []byte { 1227 file_google_cloud_aiplatform_v1_custom_job_proto_rawDescOnce.Do(func() { 1228 file_google_cloud_aiplatform_v1_custom_job_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_custom_job_proto_rawDescData) 1229 }) 1230 return file_google_cloud_aiplatform_v1_custom_job_proto_rawDescData 1231 } 1232 1233 var file_google_cloud_aiplatform_v1_custom_job_proto_enumTypes = make([]protoimpl.EnumInfo, 1) 1234 var file_google_cloud_aiplatform_v1_custom_job_proto_msgTypes = make([]protoimpl.MessageInfo, 8) 1235 var file_google_cloud_aiplatform_v1_custom_job_proto_goTypes = []any{ 1236 (Scheduling_Strategy)(0), // 0: google.cloud.aiplatform.v1.Scheduling.Strategy 1237 (*CustomJob)(nil), // 1: google.cloud.aiplatform.v1.CustomJob 1238 (*CustomJobSpec)(nil), // 2: google.cloud.aiplatform.v1.CustomJobSpec 1239 (*WorkerPoolSpec)(nil), // 3: google.cloud.aiplatform.v1.WorkerPoolSpec 1240 (*ContainerSpec)(nil), // 4: google.cloud.aiplatform.v1.ContainerSpec 1241 (*PythonPackageSpec)(nil), // 5: google.cloud.aiplatform.v1.PythonPackageSpec 1242 (*Scheduling)(nil), // 6: google.cloud.aiplatform.v1.Scheduling 1243 nil, // 7: google.cloud.aiplatform.v1.CustomJob.LabelsEntry 1244 nil, // 8: google.cloud.aiplatform.v1.CustomJob.WebAccessUrisEntry 1245 (JobState)(0), // 9: google.cloud.aiplatform.v1.JobState 1246 (*timestamppb.Timestamp)(nil), // 10: google.protobuf.Timestamp 1247 (*status.Status)(nil), // 11: google.rpc.Status 1248 (*EncryptionSpec)(nil), // 12: google.cloud.aiplatform.v1.EncryptionSpec 1249 (*PscInterfaceConfig)(nil), // 13: google.cloud.aiplatform.v1.PscInterfaceConfig 1250 (*GcsDestination)(nil), // 14: google.cloud.aiplatform.v1.GcsDestination 1251 (*MachineSpec)(nil), // 15: google.cloud.aiplatform.v1.MachineSpec 1252 (*NfsMount)(nil), // 16: google.cloud.aiplatform.v1.NfsMount 1253 (*DiskSpec)(nil), // 17: google.cloud.aiplatform.v1.DiskSpec 1254 (*EnvVar)(nil), // 18: google.cloud.aiplatform.v1.EnvVar 1255 (*durationpb.Duration)(nil), // 19: google.protobuf.Duration 1256 } 1257 var file_google_cloud_aiplatform_v1_custom_job_proto_depIdxs = []int32{ 1258 2, // 0: google.cloud.aiplatform.v1.CustomJob.job_spec:type_name -> google.cloud.aiplatform.v1.CustomJobSpec 1259 9, // 1: google.cloud.aiplatform.v1.CustomJob.state:type_name -> google.cloud.aiplatform.v1.JobState 1260 10, // 2: google.cloud.aiplatform.v1.CustomJob.create_time:type_name -> google.protobuf.Timestamp 1261 10, // 3: google.cloud.aiplatform.v1.CustomJob.start_time:type_name -> google.protobuf.Timestamp 1262 10, // 4: google.cloud.aiplatform.v1.CustomJob.end_time:type_name -> google.protobuf.Timestamp 1263 10, // 5: google.cloud.aiplatform.v1.CustomJob.update_time:type_name -> google.protobuf.Timestamp 1264 11, // 6: google.cloud.aiplatform.v1.CustomJob.error:type_name -> google.rpc.Status 1265 7, // 7: google.cloud.aiplatform.v1.CustomJob.labels:type_name -> google.cloud.aiplatform.v1.CustomJob.LabelsEntry 1266 12, // 8: google.cloud.aiplatform.v1.CustomJob.encryption_spec:type_name -> google.cloud.aiplatform.v1.EncryptionSpec 1267 8, // 9: google.cloud.aiplatform.v1.CustomJob.web_access_uris:type_name -> google.cloud.aiplatform.v1.CustomJob.WebAccessUrisEntry 1268 3, // 10: google.cloud.aiplatform.v1.CustomJobSpec.worker_pool_specs:type_name -> google.cloud.aiplatform.v1.WorkerPoolSpec 1269 6, // 11: google.cloud.aiplatform.v1.CustomJobSpec.scheduling:type_name -> google.cloud.aiplatform.v1.Scheduling 1270 13, // 12: google.cloud.aiplatform.v1.CustomJobSpec.psc_interface_config:type_name -> google.cloud.aiplatform.v1.PscInterfaceConfig 1271 14, // 13: google.cloud.aiplatform.v1.CustomJobSpec.base_output_directory:type_name -> google.cloud.aiplatform.v1.GcsDestination 1272 4, // 14: google.cloud.aiplatform.v1.WorkerPoolSpec.container_spec:type_name -> google.cloud.aiplatform.v1.ContainerSpec 1273 5, // 15: google.cloud.aiplatform.v1.WorkerPoolSpec.python_package_spec:type_name -> google.cloud.aiplatform.v1.PythonPackageSpec 1274 15, // 16: google.cloud.aiplatform.v1.WorkerPoolSpec.machine_spec:type_name -> google.cloud.aiplatform.v1.MachineSpec 1275 16, // 17: google.cloud.aiplatform.v1.WorkerPoolSpec.nfs_mounts:type_name -> google.cloud.aiplatform.v1.NfsMount 1276 17, // 18: google.cloud.aiplatform.v1.WorkerPoolSpec.disk_spec:type_name -> google.cloud.aiplatform.v1.DiskSpec 1277 18, // 19: google.cloud.aiplatform.v1.ContainerSpec.env:type_name -> google.cloud.aiplatform.v1.EnvVar 1278 18, // 20: google.cloud.aiplatform.v1.PythonPackageSpec.env:type_name -> google.cloud.aiplatform.v1.EnvVar 1279 19, // 21: google.cloud.aiplatform.v1.Scheduling.timeout:type_name -> google.protobuf.Duration 1280 0, // 22: google.cloud.aiplatform.v1.Scheduling.strategy:type_name -> google.cloud.aiplatform.v1.Scheduling.Strategy 1281 19, // 23: google.cloud.aiplatform.v1.Scheduling.max_wait_duration:type_name -> google.protobuf.Duration 1282 24, // [24:24] is the sub-list for method output_type 1283 24, // [24:24] is the sub-list for method input_type 1284 24, // [24:24] is the sub-list for extension type_name 1285 24, // [24:24] is the sub-list for extension extendee 1286 0, // [0:24] is the sub-list for field type_name 1287 } 1288 1289 func init() { file_google_cloud_aiplatform_v1_custom_job_proto_init() } 1290 func file_google_cloud_aiplatform_v1_custom_job_proto_init() { 1291 if File_google_cloud_aiplatform_v1_custom_job_proto != nil { 1292 return 1293 } 1294 file_google_cloud_aiplatform_v1_encryption_spec_proto_init() 1295 file_google_cloud_aiplatform_v1_env_var_proto_init() 1296 file_google_cloud_aiplatform_v1_io_proto_init() 1297 file_google_cloud_aiplatform_v1_job_state_proto_init() 1298 file_google_cloud_aiplatform_v1_machine_resources_proto_init() 1299 file_google_cloud_aiplatform_v1_service_networking_proto_init() 1300 file_google_cloud_aiplatform_v1_custom_job_proto_msgTypes[2].OneofWrappers = []any{ 1301 (*WorkerPoolSpec_ContainerSpec)(nil), 1302 (*WorkerPoolSpec_PythonPackageSpec)(nil), 1303 } 1304 type x struct{} 1305 out := protoimpl.TypeBuilder{ 1306 File: protoimpl.DescBuilder{ 1307 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1308 RawDescriptor: file_google_cloud_aiplatform_v1_custom_job_proto_rawDesc, 1309 NumEnums: 1, 1310 NumMessages: 8, 1311 NumExtensions: 0, 1312 NumServices: 0, 1313 }, 1314 GoTypes: file_google_cloud_aiplatform_v1_custom_job_proto_goTypes, 1315 DependencyIndexes: file_google_cloud_aiplatform_v1_custom_job_proto_depIdxs, 1316 EnumInfos: file_google_cloud_aiplatform_v1_custom_job_proto_enumTypes, 1317 MessageInfos: file_google_cloud_aiplatform_v1_custom_job_proto_msgTypes, 1318 }.Build() 1319 File_google_cloud_aiplatform_v1_custom_job_proto = out.File 1320 file_google_cloud_aiplatform_v1_custom_job_proto_rawDesc = nil 1321 file_google_cloud_aiplatform_v1_custom_job_proto_goTypes = nil 1322 file_google_cloud_aiplatform_v1_custom_job_proto_depIdxs = nil 1323 }