cloud.google.com/go/aiplatform@v1.106.0/apiv1/aiplatformpb/persistent_resource.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/persistent_resource.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 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 29 reflect "reflect" 30 sync "sync" 31 ) 32 33 const ( 34 // Verify that this generated code is sufficiently up-to-date. 35 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 36 // Verify that runtime/protoimpl is sufficiently up-to-date. 37 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 38 ) 39 40 // Describes the PersistentResource state. 41 type PersistentResource_State int32 42 43 const ( 44 // Not set. 45 PersistentResource_STATE_UNSPECIFIED PersistentResource_State = 0 46 // The PROVISIONING state indicates the persistent resources is being 47 // created. 48 PersistentResource_PROVISIONING PersistentResource_State = 1 49 // The RUNNING state indicates the persistent resource is healthy and fully 50 // usable. 51 PersistentResource_RUNNING PersistentResource_State = 3 52 // The STOPPING state indicates the persistent resource is being deleted. 53 PersistentResource_STOPPING PersistentResource_State = 4 54 // The ERROR state indicates the persistent resource may be unusable. 55 // Details can be found in the `error` field. 56 PersistentResource_ERROR PersistentResource_State = 5 57 // The REBOOTING state indicates the persistent resource is being rebooted 58 // (PR is not available right now but is expected to be ready again later). 59 PersistentResource_REBOOTING PersistentResource_State = 6 60 // The UPDATING state indicates the persistent resource is being updated. 61 PersistentResource_UPDATING PersistentResource_State = 7 62 ) 63 64 // Enum value maps for PersistentResource_State. 65 var ( 66 PersistentResource_State_name = map[int32]string{ 67 0: "STATE_UNSPECIFIED", 68 1: "PROVISIONING", 69 3: "RUNNING", 70 4: "STOPPING", 71 5: "ERROR", 72 6: "REBOOTING", 73 7: "UPDATING", 74 } 75 PersistentResource_State_value = map[string]int32{ 76 "STATE_UNSPECIFIED": 0, 77 "PROVISIONING": 1, 78 "RUNNING": 3, 79 "STOPPING": 4, 80 "ERROR": 5, 81 "REBOOTING": 6, 82 "UPDATING": 7, 83 } 84 ) 85 86 func (x PersistentResource_State) Enum() *PersistentResource_State { 87 p := new(PersistentResource_State) 88 *p = x 89 return p 90 } 91 92 func (x PersistentResource_State) String() string { 93 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 94 } 95 96 func (PersistentResource_State) Descriptor() protoreflect.EnumDescriptor { 97 return file_google_cloud_aiplatform_v1_persistent_resource_proto_enumTypes[0].Descriptor() 98 } 99 100 func (PersistentResource_State) Type() protoreflect.EnumType { 101 return &file_google_cloud_aiplatform_v1_persistent_resource_proto_enumTypes[0] 102 } 103 104 func (x PersistentResource_State) Number() protoreflect.EnumNumber { 105 return protoreflect.EnumNumber(x) 106 } 107 108 // Deprecated: Use PersistentResource_State.Descriptor instead. 109 func (PersistentResource_State) EnumDescriptor() ([]byte, []int) { 110 return file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDescGZIP(), []int{0, 0} 111 } 112 113 // Represents long-lasting resources that are dedicated to users to runs custom 114 // workloads. 115 // A PersistentResource can have multiple node pools and each node 116 // pool can have its own machine spec. 117 type PersistentResource struct { 118 state protoimpl.MessageState 119 sizeCache protoimpl.SizeCache 120 unknownFields protoimpl.UnknownFields 121 122 // Immutable. Resource name of a PersistentResource. 123 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 124 // Optional. The display name of the PersistentResource. 125 // The name can be up to 128 characters long and can consist of any UTF-8 126 // characters. 127 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 128 // Required. The spec of the pools of different resources. 129 ResourcePools []*ResourcePool `protobuf:"bytes,4,rep,name=resource_pools,json=resourcePools,proto3" json:"resource_pools,omitempty"` 130 // Output only. The detailed state of a Study. 131 State PersistentResource_State `protobuf:"varint,5,opt,name=state,proto3,enum=google.cloud.aiplatform.v1.PersistentResource_State" json:"state,omitempty"` 132 // Output only. Only populated when persistent resource's state is `STOPPING` 133 // or `ERROR`. 134 Error *status.Status `protobuf:"bytes,6,opt,name=error,proto3" json:"error,omitempty"` 135 // Output only. Time when the PersistentResource was created. 136 CreateTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 137 // Output only. Time when the PersistentResource for the first time entered 138 // the `RUNNING` state. 139 StartTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 140 // Output only. Time when the PersistentResource was most recently updated. 141 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 142 // Optional. The labels with user-defined metadata to organize 143 // PersistentResource. 144 // 145 // Label keys and values can be no longer than 64 characters 146 // (Unicode codepoints), can only contain lowercase letters, numeric 147 // characters, underscores and dashes. International characters are allowed. 148 // 149 // See https://goo.gl/xmQnxf for more information and examples of labels. 150 Labels map[string]string `protobuf:"bytes,10,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 151 // Optional. The full name of the Compute Engine 152 // [network](/compute/docs/networks-and-firewalls#networks) to peered with 153 // Vertex AI to host the persistent resources. 154 // For example, `projects/12345/global/networks/myVPC`. 155 // [Format](/compute/docs/reference/rest/v1/networks/insert) 156 // is of the form `projects/{project}/global/networks/{network}`. 157 // Where {project} is a project number, as in `12345`, and {network} is a 158 // network name. 159 // 160 // To specify this field, you must have already [configured VPC Network 161 // Peering for Vertex 162 // AI](https://cloud.google.com/vertex-ai/docs/general/vpc-peering). 163 // 164 // If this field is left unspecified, the resources aren't peered with any 165 // network. 166 Network string `protobuf:"bytes,11,opt,name=network,proto3" json:"network,omitempty"` 167 // Optional. Configuration for PSC-I for PersistentResource. 168 PscInterfaceConfig *PscInterfaceConfig `protobuf:"bytes,17,opt,name=psc_interface_config,json=pscInterfaceConfig,proto3" json:"psc_interface_config,omitempty"` 169 // Optional. Customer-managed encryption key spec for a PersistentResource. 170 // If set, this PersistentResource and all sub-resources of this 171 // PersistentResource will be secured by this key. 172 EncryptionSpec *EncryptionSpec `protobuf:"bytes,12,opt,name=encryption_spec,json=encryptionSpec,proto3" json:"encryption_spec,omitempty"` 173 // Optional. Persistent Resource runtime spec. 174 // For example, used for Ray cluster configuration. 175 ResourceRuntimeSpec *ResourceRuntimeSpec `protobuf:"bytes,13,opt,name=resource_runtime_spec,json=resourceRuntimeSpec,proto3" json:"resource_runtime_spec,omitempty"` 176 // Output only. Runtime information of the Persistent Resource. 177 ResourceRuntime *ResourceRuntime `protobuf:"bytes,14,opt,name=resource_runtime,json=resourceRuntime,proto3" json:"resource_runtime,omitempty"` 178 // Optional. A list of names for the reserved IP ranges under the VPC network 179 // that can be used for this persistent resource. 180 // 181 // If set, we will deploy the persistent resource within the provided IP 182 // ranges. Otherwise, the persistent resource is deployed to any IP 183 // ranges under the provided VPC network. 184 // 185 // Example: ['vertex-ai-ip-range']. 186 ReservedIpRanges []string `protobuf:"bytes,15,rep,name=reserved_ip_ranges,json=reservedIpRanges,proto3" json:"reserved_ip_ranges,omitempty"` 187 } 188 189 func (x *PersistentResource) Reset() { 190 *x = PersistentResource{} 191 mi := &file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[0] 192 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 193 ms.StoreMessageInfo(mi) 194 } 195 196 func (x *PersistentResource) String() string { 197 return protoimpl.X.MessageStringOf(x) 198 } 199 200 func (*PersistentResource) ProtoMessage() {} 201 202 func (x *PersistentResource) ProtoReflect() protoreflect.Message { 203 mi := &file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[0] 204 if x != nil { 205 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 206 if ms.LoadMessageInfo() == nil { 207 ms.StoreMessageInfo(mi) 208 } 209 return ms 210 } 211 return mi.MessageOf(x) 212 } 213 214 // Deprecated: Use PersistentResource.ProtoReflect.Descriptor instead. 215 func (*PersistentResource) Descriptor() ([]byte, []int) { 216 return file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDescGZIP(), []int{0} 217 } 218 219 func (x *PersistentResource) GetName() string { 220 if x != nil { 221 return x.Name 222 } 223 return "" 224 } 225 226 func (x *PersistentResource) GetDisplayName() string { 227 if x != nil { 228 return x.DisplayName 229 } 230 return "" 231 } 232 233 func (x *PersistentResource) GetResourcePools() []*ResourcePool { 234 if x != nil { 235 return x.ResourcePools 236 } 237 return nil 238 } 239 240 func (x *PersistentResource) GetState() PersistentResource_State { 241 if x != nil { 242 return x.State 243 } 244 return PersistentResource_STATE_UNSPECIFIED 245 } 246 247 func (x *PersistentResource) GetError() *status.Status { 248 if x != nil { 249 return x.Error 250 } 251 return nil 252 } 253 254 func (x *PersistentResource) GetCreateTime() *timestamppb.Timestamp { 255 if x != nil { 256 return x.CreateTime 257 } 258 return nil 259 } 260 261 func (x *PersistentResource) GetStartTime() *timestamppb.Timestamp { 262 if x != nil { 263 return x.StartTime 264 } 265 return nil 266 } 267 268 func (x *PersistentResource) GetUpdateTime() *timestamppb.Timestamp { 269 if x != nil { 270 return x.UpdateTime 271 } 272 return nil 273 } 274 275 func (x *PersistentResource) GetLabels() map[string]string { 276 if x != nil { 277 return x.Labels 278 } 279 return nil 280 } 281 282 func (x *PersistentResource) GetNetwork() string { 283 if x != nil { 284 return x.Network 285 } 286 return "" 287 } 288 289 func (x *PersistentResource) GetPscInterfaceConfig() *PscInterfaceConfig { 290 if x != nil { 291 return x.PscInterfaceConfig 292 } 293 return nil 294 } 295 296 func (x *PersistentResource) GetEncryptionSpec() *EncryptionSpec { 297 if x != nil { 298 return x.EncryptionSpec 299 } 300 return nil 301 } 302 303 func (x *PersistentResource) GetResourceRuntimeSpec() *ResourceRuntimeSpec { 304 if x != nil { 305 return x.ResourceRuntimeSpec 306 } 307 return nil 308 } 309 310 func (x *PersistentResource) GetResourceRuntime() *ResourceRuntime { 311 if x != nil { 312 return x.ResourceRuntime 313 } 314 return nil 315 } 316 317 func (x *PersistentResource) GetReservedIpRanges() []string { 318 if x != nil { 319 return x.ReservedIpRanges 320 } 321 return nil 322 } 323 324 // Represents the spec of a group of resources of the same type, 325 // for example machine type, disk, and accelerators, in a PersistentResource. 326 type ResourcePool struct { 327 state protoimpl.MessageState 328 sizeCache protoimpl.SizeCache 329 unknownFields protoimpl.UnknownFields 330 331 // Immutable. The unique ID in a PersistentResource for referring to this 332 // resource pool. User can specify it if necessary. Otherwise, it's generated 333 // automatically. 334 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` 335 // Required. Immutable. The specification of a single machine. 336 MachineSpec *MachineSpec `protobuf:"bytes,2,opt,name=machine_spec,json=machineSpec,proto3" json:"machine_spec,omitempty"` 337 // Optional. The total number of machines to use for this resource pool. 338 ReplicaCount *int64 `protobuf:"varint,3,opt,name=replica_count,json=replicaCount,proto3,oneof" json:"replica_count,omitempty"` 339 // Optional. Disk spec for the machine in this node pool. 340 DiskSpec *DiskSpec `protobuf:"bytes,4,opt,name=disk_spec,json=diskSpec,proto3" json:"disk_spec,omitempty"` 341 // Output only. The number of machines currently in use by training jobs for 342 // this resource pool. Will replace idle_replica_count. 343 UsedReplicaCount int64 `protobuf:"varint,6,opt,name=used_replica_count,json=usedReplicaCount,proto3" json:"used_replica_count,omitempty"` 344 // Optional. Optional spec to configure GKE or Ray-on-Vertex autoscaling 345 AutoscalingSpec *ResourcePool_AutoscalingSpec `protobuf:"bytes,7,opt,name=autoscaling_spec,json=autoscalingSpec,proto3" json:"autoscaling_spec,omitempty"` 346 } 347 348 func (x *ResourcePool) Reset() { 349 *x = ResourcePool{} 350 mi := &file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[1] 351 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 352 ms.StoreMessageInfo(mi) 353 } 354 355 func (x *ResourcePool) String() string { 356 return protoimpl.X.MessageStringOf(x) 357 } 358 359 func (*ResourcePool) ProtoMessage() {} 360 361 func (x *ResourcePool) ProtoReflect() protoreflect.Message { 362 mi := &file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[1] 363 if x != nil { 364 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 365 if ms.LoadMessageInfo() == nil { 366 ms.StoreMessageInfo(mi) 367 } 368 return ms 369 } 370 return mi.MessageOf(x) 371 } 372 373 // Deprecated: Use ResourcePool.ProtoReflect.Descriptor instead. 374 func (*ResourcePool) Descriptor() ([]byte, []int) { 375 return file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDescGZIP(), []int{1} 376 } 377 378 func (x *ResourcePool) GetId() string { 379 if x != nil { 380 return x.Id 381 } 382 return "" 383 } 384 385 func (x *ResourcePool) GetMachineSpec() *MachineSpec { 386 if x != nil { 387 return x.MachineSpec 388 } 389 return nil 390 } 391 392 func (x *ResourcePool) GetReplicaCount() int64 { 393 if x != nil && x.ReplicaCount != nil { 394 return *x.ReplicaCount 395 } 396 return 0 397 } 398 399 func (x *ResourcePool) GetDiskSpec() *DiskSpec { 400 if x != nil { 401 return x.DiskSpec 402 } 403 return nil 404 } 405 406 func (x *ResourcePool) GetUsedReplicaCount() int64 { 407 if x != nil { 408 return x.UsedReplicaCount 409 } 410 return 0 411 } 412 413 func (x *ResourcePool) GetAutoscalingSpec() *ResourcePool_AutoscalingSpec { 414 if x != nil { 415 return x.AutoscalingSpec 416 } 417 return nil 418 } 419 420 // Configuration for the runtime on a PersistentResource instance, including 421 // but not limited to: 422 // 423 // * Service accounts used to run the workloads. 424 // * Whether to make it a dedicated Ray Cluster. 425 type ResourceRuntimeSpec struct { 426 state protoimpl.MessageState 427 sizeCache protoimpl.SizeCache 428 unknownFields protoimpl.UnknownFields 429 430 // Optional. Configure the use of workload identity on the PersistentResource 431 ServiceAccountSpec *ServiceAccountSpec `protobuf:"bytes,2,opt,name=service_account_spec,json=serviceAccountSpec,proto3" json:"service_account_spec,omitempty"` 432 // Optional. Ray cluster configuration. 433 // Required when creating a dedicated RayCluster on the PersistentResource. 434 RaySpec *RaySpec `protobuf:"bytes,1,opt,name=ray_spec,json=raySpec,proto3" json:"ray_spec,omitempty"` 435 } 436 437 func (x *ResourceRuntimeSpec) Reset() { 438 *x = ResourceRuntimeSpec{} 439 mi := &file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[2] 440 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 441 ms.StoreMessageInfo(mi) 442 } 443 444 func (x *ResourceRuntimeSpec) String() string { 445 return protoimpl.X.MessageStringOf(x) 446 } 447 448 func (*ResourceRuntimeSpec) ProtoMessage() {} 449 450 func (x *ResourceRuntimeSpec) ProtoReflect() protoreflect.Message { 451 mi := &file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[2] 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 ResourceRuntimeSpec.ProtoReflect.Descriptor instead. 463 func (*ResourceRuntimeSpec) Descriptor() ([]byte, []int) { 464 return file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDescGZIP(), []int{2} 465 } 466 467 func (x *ResourceRuntimeSpec) GetServiceAccountSpec() *ServiceAccountSpec { 468 if x != nil { 469 return x.ServiceAccountSpec 470 } 471 return nil 472 } 473 474 func (x *ResourceRuntimeSpec) GetRaySpec() *RaySpec { 475 if x != nil { 476 return x.RaySpec 477 } 478 return nil 479 } 480 481 // Configuration information for the Ray cluster. 482 // For experimental launch, Ray cluster creation and Persistent 483 // cluster creation are 1:1 mapping: We will provision all the nodes within the 484 // Persistent cluster as Ray nodes. 485 type RaySpec struct { 486 state protoimpl.MessageState 487 sizeCache protoimpl.SizeCache 488 unknownFields protoimpl.UnknownFields 489 490 // Optional. Default image for user to choose a preferred ML framework 491 // (for example, TensorFlow or Pytorch) by choosing from [Vertex prebuilt 492 // images](https://cloud.google.com/vertex-ai/docs/training/pre-built-containers). 493 // Either this or the resource_pool_images is required. Use this field if 494 // you need all the resource pools to have the same Ray image. Otherwise, use 495 // the {@code resource_pool_images} field. 496 ImageUri string `protobuf:"bytes,1,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"` 497 // Optional. Required if image_uri isn't set. A map of resource_pool_id to 498 // prebuild Ray image if user need to use different images for different 499 // head/worker pools. This map needs to cover all the resource pool ids. 500 // Example: 501 // 502 // { 503 // "ray_head_node_pool": "head image" 504 // "ray_worker_node_pool1": "worker image" 505 // "ray_worker_node_pool2": "another worker image" 506 // } 507 ResourcePoolImages map[string]string `protobuf:"bytes,6,rep,name=resource_pool_images,json=resourcePoolImages,proto3" json:"resource_pool_images,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 508 // Optional. This will be used to indicate which resource pool will serve as 509 // the Ray head node(the first node within that pool). Will use the machine 510 // from the first workerpool as the head node by default if this field isn't 511 // set. 512 HeadNodeResourcePoolId string `protobuf:"bytes,7,opt,name=head_node_resource_pool_id,json=headNodeResourcePoolId,proto3" json:"head_node_resource_pool_id,omitempty"` 513 // Optional. Ray metrics configurations. 514 RayMetricSpec *RayMetricSpec `protobuf:"bytes,8,opt,name=ray_metric_spec,json=rayMetricSpec,proto3" json:"ray_metric_spec,omitempty"` 515 // Optional. OSS Ray logging configurations. 516 RayLogsSpec *RayLogsSpec `protobuf:"bytes,10,opt,name=ray_logs_spec,json=rayLogsSpec,proto3" json:"ray_logs_spec,omitempty"` 517 } 518 519 func (x *RaySpec) Reset() { 520 *x = RaySpec{} 521 mi := &file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[3] 522 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 523 ms.StoreMessageInfo(mi) 524 } 525 526 func (x *RaySpec) String() string { 527 return protoimpl.X.MessageStringOf(x) 528 } 529 530 func (*RaySpec) ProtoMessage() {} 531 532 func (x *RaySpec) ProtoReflect() protoreflect.Message { 533 mi := &file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[3] 534 if x != nil { 535 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 536 if ms.LoadMessageInfo() == nil { 537 ms.StoreMessageInfo(mi) 538 } 539 return ms 540 } 541 return mi.MessageOf(x) 542 } 543 544 // Deprecated: Use RaySpec.ProtoReflect.Descriptor instead. 545 func (*RaySpec) Descriptor() ([]byte, []int) { 546 return file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDescGZIP(), []int{3} 547 } 548 549 func (x *RaySpec) GetImageUri() string { 550 if x != nil { 551 return x.ImageUri 552 } 553 return "" 554 } 555 556 func (x *RaySpec) GetResourcePoolImages() map[string]string { 557 if x != nil { 558 return x.ResourcePoolImages 559 } 560 return nil 561 } 562 563 func (x *RaySpec) GetHeadNodeResourcePoolId() string { 564 if x != nil { 565 return x.HeadNodeResourcePoolId 566 } 567 return "" 568 } 569 570 func (x *RaySpec) GetRayMetricSpec() *RayMetricSpec { 571 if x != nil { 572 return x.RayMetricSpec 573 } 574 return nil 575 } 576 577 func (x *RaySpec) GetRayLogsSpec() *RayLogsSpec { 578 if x != nil { 579 return x.RayLogsSpec 580 } 581 return nil 582 } 583 584 // Persistent Cluster runtime information as output 585 type ResourceRuntime struct { 586 state protoimpl.MessageState 587 sizeCache protoimpl.SizeCache 588 unknownFields protoimpl.UnknownFields 589 590 // Output only. URIs for user to connect to the Cluster. 591 // Example: 592 // 593 // { 594 // "RAY_HEAD_NODE_INTERNAL_IP": "head-node-IP:10001" 595 // "RAY_DASHBOARD_URI": "ray-dashboard-address:8888" 596 // } 597 AccessUris map[string]string `protobuf:"bytes,1,rep,name=access_uris,json=accessUris,proto3" json:"access_uris,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 598 } 599 600 func (x *ResourceRuntime) Reset() { 601 *x = ResourceRuntime{} 602 mi := &file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[4] 603 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 604 ms.StoreMessageInfo(mi) 605 } 606 607 func (x *ResourceRuntime) String() string { 608 return protoimpl.X.MessageStringOf(x) 609 } 610 611 func (*ResourceRuntime) ProtoMessage() {} 612 613 func (x *ResourceRuntime) ProtoReflect() protoreflect.Message { 614 mi := &file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[4] 615 if x != nil { 616 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 617 if ms.LoadMessageInfo() == nil { 618 ms.StoreMessageInfo(mi) 619 } 620 return ms 621 } 622 return mi.MessageOf(x) 623 } 624 625 // Deprecated: Use ResourceRuntime.ProtoReflect.Descriptor instead. 626 func (*ResourceRuntime) Descriptor() ([]byte, []int) { 627 return file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDescGZIP(), []int{4} 628 } 629 630 func (x *ResourceRuntime) GetAccessUris() map[string]string { 631 if x != nil { 632 return x.AccessUris 633 } 634 return nil 635 } 636 637 // Configuration for the use of custom service account to run the workloads. 638 type ServiceAccountSpec struct { 639 state protoimpl.MessageState 640 sizeCache protoimpl.SizeCache 641 unknownFields protoimpl.UnknownFields 642 643 // Required. If true, custom user-managed service account is enforced to run 644 // any workloads (for example, Vertex Jobs) on the resource. Otherwise, uses 645 // the [Vertex AI Custom Code Service 646 // Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents). 647 EnableCustomServiceAccount bool `protobuf:"varint,1,opt,name=enable_custom_service_account,json=enableCustomServiceAccount,proto3" json:"enable_custom_service_account,omitempty"` 648 // Optional. Required when all below conditions are met 649 // - `enable_custom_service_account` is true; 650 // - any runtime is specified via `ResourceRuntimeSpec` on creation time, 651 // for example, Ray 652 // 653 // The users must have `iam.serviceAccounts.actAs` permission on this service 654 // account and then the specified runtime containers will run as it. 655 // 656 // Do not set this field if you want to submit jobs using custom service 657 // account to this PersistentResource after creation, but only specify the 658 // `service_account` inside the job. 659 ServiceAccount string `protobuf:"bytes,2,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"` 660 } 661 662 func (x *ServiceAccountSpec) Reset() { 663 *x = ServiceAccountSpec{} 664 mi := &file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[5] 665 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 666 ms.StoreMessageInfo(mi) 667 } 668 669 func (x *ServiceAccountSpec) String() string { 670 return protoimpl.X.MessageStringOf(x) 671 } 672 673 func (*ServiceAccountSpec) ProtoMessage() {} 674 675 func (x *ServiceAccountSpec) ProtoReflect() protoreflect.Message { 676 mi := &file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[5] 677 if x != nil { 678 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 679 if ms.LoadMessageInfo() == nil { 680 ms.StoreMessageInfo(mi) 681 } 682 return ms 683 } 684 return mi.MessageOf(x) 685 } 686 687 // Deprecated: Use ServiceAccountSpec.ProtoReflect.Descriptor instead. 688 func (*ServiceAccountSpec) Descriptor() ([]byte, []int) { 689 return file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDescGZIP(), []int{5} 690 } 691 692 func (x *ServiceAccountSpec) GetEnableCustomServiceAccount() bool { 693 if x != nil { 694 return x.EnableCustomServiceAccount 695 } 696 return false 697 } 698 699 func (x *ServiceAccountSpec) GetServiceAccount() string { 700 if x != nil { 701 return x.ServiceAccount 702 } 703 return "" 704 } 705 706 // Configuration for the Ray metrics. 707 type RayMetricSpec struct { 708 state protoimpl.MessageState 709 sizeCache protoimpl.SizeCache 710 unknownFields protoimpl.UnknownFields 711 712 // Optional. Flag to disable the Ray metrics collection. 713 Disabled bool `protobuf:"varint,1,opt,name=disabled,proto3" json:"disabled,omitempty"` 714 } 715 716 func (x *RayMetricSpec) Reset() { 717 *x = RayMetricSpec{} 718 mi := &file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[6] 719 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 720 ms.StoreMessageInfo(mi) 721 } 722 723 func (x *RayMetricSpec) String() string { 724 return protoimpl.X.MessageStringOf(x) 725 } 726 727 func (*RayMetricSpec) ProtoMessage() {} 728 729 func (x *RayMetricSpec) ProtoReflect() protoreflect.Message { 730 mi := &file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[6] 731 if x != nil { 732 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 733 if ms.LoadMessageInfo() == nil { 734 ms.StoreMessageInfo(mi) 735 } 736 return ms 737 } 738 return mi.MessageOf(x) 739 } 740 741 // Deprecated: Use RayMetricSpec.ProtoReflect.Descriptor instead. 742 func (*RayMetricSpec) Descriptor() ([]byte, []int) { 743 return file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDescGZIP(), []int{6} 744 } 745 746 func (x *RayMetricSpec) GetDisabled() bool { 747 if x != nil { 748 return x.Disabled 749 } 750 return false 751 } 752 753 // Configuration for the Ray OSS Logs. 754 type RayLogsSpec struct { 755 state protoimpl.MessageState 756 sizeCache protoimpl.SizeCache 757 unknownFields protoimpl.UnknownFields 758 759 // Optional. Flag to disable the export of Ray OSS logs to Cloud Logging. 760 Disabled bool `protobuf:"varint,1,opt,name=disabled,proto3" json:"disabled,omitempty"` 761 } 762 763 func (x *RayLogsSpec) Reset() { 764 *x = RayLogsSpec{} 765 mi := &file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[7] 766 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 767 ms.StoreMessageInfo(mi) 768 } 769 770 func (x *RayLogsSpec) String() string { 771 return protoimpl.X.MessageStringOf(x) 772 } 773 774 func (*RayLogsSpec) ProtoMessage() {} 775 776 func (x *RayLogsSpec) ProtoReflect() protoreflect.Message { 777 mi := &file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[7] 778 if x != nil { 779 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 780 if ms.LoadMessageInfo() == nil { 781 ms.StoreMessageInfo(mi) 782 } 783 return ms 784 } 785 return mi.MessageOf(x) 786 } 787 788 // Deprecated: Use RayLogsSpec.ProtoReflect.Descriptor instead. 789 func (*RayLogsSpec) Descriptor() ([]byte, []int) { 790 return file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDescGZIP(), []int{7} 791 } 792 793 func (x *RayLogsSpec) GetDisabled() bool { 794 if x != nil { 795 return x.Disabled 796 } 797 return false 798 } 799 800 // The min/max number of replicas allowed if enabling autoscaling 801 type ResourcePool_AutoscalingSpec struct { 802 state protoimpl.MessageState 803 sizeCache protoimpl.SizeCache 804 unknownFields protoimpl.UnknownFields 805 806 // Optional. min replicas in the node pool, 807 // must be ≤ replica_count and < max_replica_count or will throw error. 808 // For autoscaling enabled Ray-on-Vertex, we allow min_replica_count of a 809 // resource_pool to be 0 to match the OSS Ray 810 // behavior(https://docs.ray.io/en/latest/cluster/vms/user-guides/configuring-autoscaling.html#cluster-config-parameters). 811 // As for Persistent Resource, the min_replica_count must be > 0, we added 812 // a corresponding validation inside 813 // CreatePersistentResourceRequestValidator.java. 814 MinReplicaCount *int64 `protobuf:"varint,1,opt,name=min_replica_count,json=minReplicaCount,proto3,oneof" json:"min_replica_count,omitempty"` 815 // Optional. max replicas in the node pool, 816 // must be ≥ replica_count and > min_replica_count or will throw error 817 MaxReplicaCount *int64 `protobuf:"varint,2,opt,name=max_replica_count,json=maxReplicaCount,proto3,oneof" json:"max_replica_count,omitempty"` 818 } 819 820 func (x *ResourcePool_AutoscalingSpec) Reset() { 821 *x = ResourcePool_AutoscalingSpec{} 822 mi := &file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[9] 823 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 824 ms.StoreMessageInfo(mi) 825 } 826 827 func (x *ResourcePool_AutoscalingSpec) String() string { 828 return protoimpl.X.MessageStringOf(x) 829 } 830 831 func (*ResourcePool_AutoscalingSpec) ProtoMessage() {} 832 833 func (x *ResourcePool_AutoscalingSpec) ProtoReflect() protoreflect.Message { 834 mi := &file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[9] 835 if x != nil { 836 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 837 if ms.LoadMessageInfo() == nil { 838 ms.StoreMessageInfo(mi) 839 } 840 return ms 841 } 842 return mi.MessageOf(x) 843 } 844 845 // Deprecated: Use ResourcePool_AutoscalingSpec.ProtoReflect.Descriptor instead. 846 func (*ResourcePool_AutoscalingSpec) Descriptor() ([]byte, []int) { 847 return file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDescGZIP(), []int{1, 0} 848 } 849 850 func (x *ResourcePool_AutoscalingSpec) GetMinReplicaCount() int64 { 851 if x != nil && x.MinReplicaCount != nil { 852 return *x.MinReplicaCount 853 } 854 return 0 855 } 856 857 func (x *ResourcePool_AutoscalingSpec) GetMaxReplicaCount() int64 { 858 if x != nil && x.MaxReplicaCount != nil { 859 return *x.MaxReplicaCount 860 } 861 return 0 862 } 863 864 var File_google_cloud_aiplatform_v1_persistent_resource_proto protoreflect.FileDescriptor 865 866 var file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDesc = []byte{ 867 0x0a, 0x34, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 868 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 869 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 870 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 871 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 872 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 873 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 874 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 875 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 876 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 877 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x6e, 0x63, 0x72, 0x79, 878 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 879 0x1a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 880 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x63, 881 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, 882 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 883 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 884 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 885 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 886 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 887 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 888 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 889 0x6f, 0x74, 0x6f, 0x22, 0xfd, 0x0a, 0x0a, 0x12, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 890 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 891 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 892 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 893 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 894 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x0e, 0x72, 895 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x04, 0x20, 896 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 897 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 898 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x42, 0x03, 0xe0, 899 0x41, 0x02, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 900 0x73, 0x12, 0x4f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 901 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 902 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 903 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 904 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 905 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 906 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 907 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 908 0x72, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 909 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 910 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 911 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 912 0x69, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 913 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 914 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 915 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 916 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 917 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 918 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 919 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 920 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x57, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 921 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 922 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 923 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 924 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 925 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x40, 926 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 927 0x26, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 928 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 929 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 930 0x12, 0x65, 0x0a, 0x14, 0x70, 0x73, 0x63, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 931 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 932 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 933 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x73, 0x63, 0x49, 934 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 935 0xe0, 0x41, 0x01, 0x52, 0x12, 0x70, 0x73, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 936 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 937 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 938 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 939 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 940 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 941 0x01, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 942 0x63, 0x12, 0x68, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x75, 943 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 944 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 945 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 946 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x70, 0x65, 947 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 948 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5b, 0x0a, 0x10, 0x72, 949 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 950 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 951 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 952 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 953 0x6d, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 954 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x65, 955 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0f, 956 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x72, 0x65, 0x73, 0x65, 0x72, 957 0x76, 0x65, 0x64, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 958 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 959 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 960 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 961 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x73, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 962 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 963 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x53, 964 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 965 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x49, 0x4e, 966 0x47, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x0d, 967 0x0a, 0x09, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x0c, 0x0a, 968 0x08, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x3a, 0x85, 0x01, 0xea, 0x41, 969 0x81, 0x01, 0x0a, 0x2c, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 970 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x65, 971 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 972 0x12, 0x51, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 973 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 974 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 975 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x70, 976 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 977 0x63, 0x65, 0x7d, 0x22, 0xc9, 0x04, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 978 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 979 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x52, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 980 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 981 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 982 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 983 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 984 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x2d, 0x0a, 985 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 986 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x70, 987 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 988 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 989 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 990 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 991 0x6b, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 992 0x53, 0x70, 0x65, 0x63, 0x12, 0x31, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, 993 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 994 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x75, 0x73, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 995 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x68, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x73, 996 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 997 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 998 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 999 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x41, 0x75, 0x74, 0x6f, 1000 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 1001 0x52, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 1002 0x63, 0x1a, 0xa9, 0x01, 0x0a, 0x0f, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 1003 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x34, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 1004 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 1005 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 1006 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x11, 0x6d, 1007 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 1008 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x0f, 0x6d, 1009 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 1010 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 1011 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 1012 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x10, 0x0a, 1013 0x0e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 1014 0xc1, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x75, 0x6e, 0x74, 1015 0x69, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x65, 0x0a, 0x14, 0x73, 0x65, 0x72, 0x76, 0x69, 1016 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 1017 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1018 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 1019 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 1020 0x74, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x73, 0x65, 0x72, 0x76, 1021 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x43, 1022 0x0a, 0x08, 0x72, 0x61, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 1023 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 1024 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 1025 0x79, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x72, 0x61, 0x79, 0x53, 1026 0x70, 0x65, 0x63, 0x22, 0xd1, 0x03, 0x0a, 0x07, 0x52, 0x61, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 1027 0x20, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 1028 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 1029 0x69, 0x12, 0x72, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 1030 0x6f, 0x6c, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 1031 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 1032 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x79, 1033 0x53, 0x70, 0x65, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, 1034 0x6c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 1035 0x01, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 1036 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x1a, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x6e, 0x6f, 1037 0x64, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 1038 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x16, 1039 0x68, 0x65, 0x61, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 1040 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x12, 0x56, 0x0a, 0x0f, 0x72, 0x61, 0x79, 0x5f, 0x6d, 0x65, 1041 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 1042 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 1043 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x79, 1044 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 1045 0x0d, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x50, 1046 0x0a, 0x0d, 0x72, 0x61, 0x79, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 1047 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1048 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 1049 0x76, 0x31, 0x2e, 0x52, 0x61, 0x79, 0x4c, 0x6f, 0x67, 0x73, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 1050 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x72, 0x61, 0x79, 0x4c, 0x6f, 0x67, 0x73, 0x53, 0x70, 0x65, 0x63, 1051 0x1a, 0x45, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 1052 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 1053 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 1054 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 1055 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb3, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x6f, 1056 0x75, 0x72, 0x63, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x61, 0x0a, 0x0b, 0x61, 1057 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 1058 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 1059 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 1060 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x41, 0x63, 1061 0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 0x69, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 1062 0x41, 0x03, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 0x69, 0x73, 0x1a, 0x3d, 1063 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 0x69, 0x73, 0x45, 0x6e, 0x74, 0x72, 1064 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 1065 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 1066 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8a, 0x01, 1067 0x0a, 0x12, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 1068 0x53, 0x70, 0x65, 0x63, 0x12, 0x46, 0x0a, 0x1d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 1069 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 1070 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 1071 0x52, 0x1a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x65, 1072 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x0f, 1073 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 1074 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 1075 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x30, 0x0a, 0x0d, 0x52, 0x61, 1076 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1f, 0x0a, 0x08, 0x64, 1077 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 1078 0x41, 0x01, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x2e, 0x0a, 0x0b, 1079 0x52, 0x61, 0x79, 0x4c, 0x6f, 0x67, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1f, 0x0a, 0x08, 0x64, 1080 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 1081 0x41, 0x01, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0xd5, 0x01, 0x0a, 1082 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1083 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 1084 0x17, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 1085 0x72, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 1086 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 1087 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 1088 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 1089 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 1090 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 1091 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1092 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 1093 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 1094 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1095 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 1096 } 1097 1098 var ( 1099 file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDescOnce sync.Once 1100 file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDescData = file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDesc 1101 ) 1102 1103 func file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDescGZIP() []byte { 1104 file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDescOnce.Do(func() { 1105 file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDescData) 1106 }) 1107 return file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDescData 1108 } 1109 1110 var file_google_cloud_aiplatform_v1_persistent_resource_proto_enumTypes = make([]protoimpl.EnumInfo, 1) 1111 var file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes = make([]protoimpl.MessageInfo, 12) 1112 var file_google_cloud_aiplatform_v1_persistent_resource_proto_goTypes = []any{ 1113 (PersistentResource_State)(0), // 0: google.cloud.aiplatform.v1.PersistentResource.State 1114 (*PersistentResource)(nil), // 1: google.cloud.aiplatform.v1.PersistentResource 1115 (*ResourcePool)(nil), // 2: google.cloud.aiplatform.v1.ResourcePool 1116 (*ResourceRuntimeSpec)(nil), // 3: google.cloud.aiplatform.v1.ResourceRuntimeSpec 1117 (*RaySpec)(nil), // 4: google.cloud.aiplatform.v1.RaySpec 1118 (*ResourceRuntime)(nil), // 5: google.cloud.aiplatform.v1.ResourceRuntime 1119 (*ServiceAccountSpec)(nil), // 6: google.cloud.aiplatform.v1.ServiceAccountSpec 1120 (*RayMetricSpec)(nil), // 7: google.cloud.aiplatform.v1.RayMetricSpec 1121 (*RayLogsSpec)(nil), // 8: google.cloud.aiplatform.v1.RayLogsSpec 1122 nil, // 9: google.cloud.aiplatform.v1.PersistentResource.LabelsEntry 1123 (*ResourcePool_AutoscalingSpec)(nil), // 10: google.cloud.aiplatform.v1.ResourcePool.AutoscalingSpec 1124 nil, // 11: google.cloud.aiplatform.v1.RaySpec.ResourcePoolImagesEntry 1125 nil, // 12: google.cloud.aiplatform.v1.ResourceRuntime.AccessUrisEntry 1126 (*status.Status)(nil), // 13: google.rpc.Status 1127 (*timestamppb.Timestamp)(nil), // 14: google.protobuf.Timestamp 1128 (*PscInterfaceConfig)(nil), // 15: google.cloud.aiplatform.v1.PscInterfaceConfig 1129 (*EncryptionSpec)(nil), // 16: google.cloud.aiplatform.v1.EncryptionSpec 1130 (*MachineSpec)(nil), // 17: google.cloud.aiplatform.v1.MachineSpec 1131 (*DiskSpec)(nil), // 18: google.cloud.aiplatform.v1.DiskSpec 1132 } 1133 var file_google_cloud_aiplatform_v1_persistent_resource_proto_depIdxs = []int32{ 1134 2, // 0: google.cloud.aiplatform.v1.PersistentResource.resource_pools:type_name -> google.cloud.aiplatform.v1.ResourcePool 1135 0, // 1: google.cloud.aiplatform.v1.PersistentResource.state:type_name -> google.cloud.aiplatform.v1.PersistentResource.State 1136 13, // 2: google.cloud.aiplatform.v1.PersistentResource.error:type_name -> google.rpc.Status 1137 14, // 3: google.cloud.aiplatform.v1.PersistentResource.create_time:type_name -> google.protobuf.Timestamp 1138 14, // 4: google.cloud.aiplatform.v1.PersistentResource.start_time:type_name -> google.protobuf.Timestamp 1139 14, // 5: google.cloud.aiplatform.v1.PersistentResource.update_time:type_name -> google.protobuf.Timestamp 1140 9, // 6: google.cloud.aiplatform.v1.PersistentResource.labels:type_name -> google.cloud.aiplatform.v1.PersistentResource.LabelsEntry 1141 15, // 7: google.cloud.aiplatform.v1.PersistentResource.psc_interface_config:type_name -> google.cloud.aiplatform.v1.PscInterfaceConfig 1142 16, // 8: google.cloud.aiplatform.v1.PersistentResource.encryption_spec:type_name -> google.cloud.aiplatform.v1.EncryptionSpec 1143 3, // 9: google.cloud.aiplatform.v1.PersistentResource.resource_runtime_spec:type_name -> google.cloud.aiplatform.v1.ResourceRuntimeSpec 1144 5, // 10: google.cloud.aiplatform.v1.PersistentResource.resource_runtime:type_name -> google.cloud.aiplatform.v1.ResourceRuntime 1145 17, // 11: google.cloud.aiplatform.v1.ResourcePool.machine_spec:type_name -> google.cloud.aiplatform.v1.MachineSpec 1146 18, // 12: google.cloud.aiplatform.v1.ResourcePool.disk_spec:type_name -> google.cloud.aiplatform.v1.DiskSpec 1147 10, // 13: google.cloud.aiplatform.v1.ResourcePool.autoscaling_spec:type_name -> google.cloud.aiplatform.v1.ResourcePool.AutoscalingSpec 1148 6, // 14: google.cloud.aiplatform.v1.ResourceRuntimeSpec.service_account_spec:type_name -> google.cloud.aiplatform.v1.ServiceAccountSpec 1149 4, // 15: google.cloud.aiplatform.v1.ResourceRuntimeSpec.ray_spec:type_name -> google.cloud.aiplatform.v1.RaySpec 1150 11, // 16: google.cloud.aiplatform.v1.RaySpec.resource_pool_images:type_name -> google.cloud.aiplatform.v1.RaySpec.ResourcePoolImagesEntry 1151 7, // 17: google.cloud.aiplatform.v1.RaySpec.ray_metric_spec:type_name -> google.cloud.aiplatform.v1.RayMetricSpec 1152 8, // 18: google.cloud.aiplatform.v1.RaySpec.ray_logs_spec:type_name -> google.cloud.aiplatform.v1.RayLogsSpec 1153 12, // 19: google.cloud.aiplatform.v1.ResourceRuntime.access_uris:type_name -> google.cloud.aiplatform.v1.ResourceRuntime.AccessUrisEntry 1154 20, // [20:20] is the sub-list for method output_type 1155 20, // [20:20] is the sub-list for method input_type 1156 20, // [20:20] is the sub-list for extension type_name 1157 20, // [20:20] is the sub-list for extension extendee 1158 0, // [0:20] is the sub-list for field type_name 1159 } 1160 1161 func init() { file_google_cloud_aiplatform_v1_persistent_resource_proto_init() } 1162 func file_google_cloud_aiplatform_v1_persistent_resource_proto_init() { 1163 if File_google_cloud_aiplatform_v1_persistent_resource_proto != nil { 1164 return 1165 } 1166 file_google_cloud_aiplatform_v1_encryption_spec_proto_init() 1167 file_google_cloud_aiplatform_v1_machine_resources_proto_init() 1168 file_google_cloud_aiplatform_v1_service_networking_proto_init() 1169 file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[1].OneofWrappers = []any{} 1170 file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes[9].OneofWrappers = []any{} 1171 type x struct{} 1172 out := protoimpl.TypeBuilder{ 1173 File: protoimpl.DescBuilder{ 1174 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1175 RawDescriptor: file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDesc, 1176 NumEnums: 1, 1177 NumMessages: 12, 1178 NumExtensions: 0, 1179 NumServices: 0, 1180 }, 1181 GoTypes: file_google_cloud_aiplatform_v1_persistent_resource_proto_goTypes, 1182 DependencyIndexes: file_google_cloud_aiplatform_v1_persistent_resource_proto_depIdxs, 1183 EnumInfos: file_google_cloud_aiplatform_v1_persistent_resource_proto_enumTypes, 1184 MessageInfos: file_google_cloud_aiplatform_v1_persistent_resource_proto_msgTypes, 1185 }.Build() 1186 File_google_cloud_aiplatform_v1_persistent_resource_proto = out.File 1187 file_google_cloud_aiplatform_v1_persistent_resource_proto_rawDesc = nil 1188 file_google_cloud_aiplatform_v1_persistent_resource_proto_goTypes = nil 1189 file_google_cloud_aiplatform_v1_persistent_resource_proto_depIdxs = nil 1190 }