cloud.google.com/go/aiplatform@v1.106.0/apiv1beta1/aiplatformpb/endpoint.pb.go (about) 1 // Copyright 2025 Google LLC 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // Code generated by protoc-gen-go. DO NOT EDIT. 16 // versions: 17 // protoc-gen-go v1.35.2 18 // protoc v4.25.7 19 // source: google/cloud/aiplatform/v1beta1/endpoint.proto 20 21 package aiplatformpb 22 23 import ( 24 _ "google.golang.org/genproto/googleapis/api/annotations" 25 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 26 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 27 durationpb "google.golang.org/protobuf/types/known/durationpb" 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 // Models are deployed into it, and afterwards Endpoint is called to obtain 41 // predictions and explanations. 42 type Endpoint struct { 43 state protoimpl.MessageState 44 sizeCache protoimpl.SizeCache 45 unknownFields protoimpl.UnknownFields 46 47 // Output only. The resource name of the Endpoint. 48 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 49 // Required. The display name of the Endpoint. 50 // The name can be up to 128 characters long and can consist of any UTF-8 51 // characters. 52 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 53 // The description of the Endpoint. 54 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 55 // Output only. The models deployed in this Endpoint. 56 // To add or remove DeployedModels use 57 // [EndpointService.DeployModel][google.cloud.aiplatform.v1beta1.EndpointService.DeployModel] 58 // and 59 // [EndpointService.UndeployModel][google.cloud.aiplatform.v1beta1.EndpointService.UndeployModel] 60 // respectively. 61 DeployedModels []*DeployedModel `protobuf:"bytes,4,rep,name=deployed_models,json=deployedModels,proto3" json:"deployed_models,omitempty"` 62 // A map from a DeployedModel's ID to the percentage of this Endpoint's 63 // traffic that should be forwarded to that DeployedModel. 64 // 65 // If a DeployedModel's ID is not listed in this map, then it receives no 66 // traffic. 67 // 68 // The traffic percentage values must add up to 100, or map must be empty if 69 // the Endpoint is to not accept any traffic at a moment. 70 TrafficSplit map[string]int32 `protobuf:"bytes,5,rep,name=traffic_split,json=trafficSplit,proto3" json:"traffic_split,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` 71 // Used to perform consistent read-modify-write updates. If not set, a blind 72 // "overwrite" update happens. 73 Etag string `protobuf:"bytes,6,opt,name=etag,proto3" json:"etag,omitempty"` 74 // The labels with user-defined metadata to organize your Endpoints. 75 // 76 // Label keys and values can be no longer than 64 characters 77 // (Unicode codepoints), can only contain lowercase letters, numeric 78 // characters, underscores and dashes. International characters are allowed. 79 // 80 // See https://goo.gl/xmQnxf for more information and examples of labels. 81 Labels map[string]string `protobuf:"bytes,7,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 82 // Output only. Timestamp when this Endpoint was created. 83 CreateTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 84 // Output only. Timestamp when this Endpoint was last updated. 85 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 86 // Customer-managed encryption key spec for an Endpoint. If set, this 87 // Endpoint and all sub-resources of this Endpoint will be secured by 88 // this key. 89 EncryptionSpec *EncryptionSpec `protobuf:"bytes,10,opt,name=encryption_spec,json=encryptionSpec,proto3" json:"encryption_spec,omitempty"` 90 // Optional. The full name of the Google Compute Engine 91 // [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) 92 // to which the Endpoint should be peered. 93 // 94 // Private services access must already be configured for the network. If left 95 // unspecified, the Endpoint is not peered with any network. 96 // 97 // Only one of the fields, 98 // [network][google.cloud.aiplatform.v1beta1.Endpoint.network] or 99 // [enable_private_service_connect][google.cloud.aiplatform.v1beta1.Endpoint.enable_private_service_connect], 100 // can be set. 101 // 102 // [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): 103 // `projects/{project}/global/networks/{network}`. 104 // Where `{project}` is a project number, as in `12345`, and `{network}` is 105 // network name. 106 Network string `protobuf:"bytes,13,opt,name=network,proto3" json:"network,omitempty"` 107 // Deprecated: If true, expose the Endpoint via private service connect. 108 // 109 // Only one of the fields, 110 // [network][google.cloud.aiplatform.v1beta1.Endpoint.network] or 111 // [enable_private_service_connect][google.cloud.aiplatform.v1beta1.Endpoint.enable_private_service_connect], 112 // can be set. 113 // 114 // Deprecated: Marked as deprecated in google/cloud/aiplatform/v1beta1/endpoint.proto. 115 EnablePrivateServiceConnect bool `protobuf:"varint,17,opt,name=enable_private_service_connect,json=enablePrivateServiceConnect,proto3" json:"enable_private_service_connect,omitempty"` 116 // Optional. Configuration for private service connect. 117 // 118 // [network][google.cloud.aiplatform.v1beta1.Endpoint.network] and 119 // [private_service_connect_config][google.cloud.aiplatform.v1beta1.Endpoint.private_service_connect_config] 120 // are mutually exclusive. 121 PrivateServiceConnectConfig *PrivateServiceConnectConfig `protobuf:"bytes,21,opt,name=private_service_connect_config,json=privateServiceConnectConfig,proto3" json:"private_service_connect_config,omitempty"` 122 // Output only. Resource name of the Model Monitoring job associated with this 123 // Endpoint if monitoring is enabled by 124 // [JobService.CreateModelDeploymentMonitoringJob][google.cloud.aiplatform.v1beta1.JobService.CreateModelDeploymentMonitoringJob]. 125 // Format: 126 // `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}` 127 ModelDeploymentMonitoringJob string `protobuf:"bytes,14,opt,name=model_deployment_monitoring_job,json=modelDeploymentMonitoringJob,proto3" json:"model_deployment_monitoring_job,omitempty"` 128 // Configures the request-response logging for online prediction. 129 PredictRequestResponseLoggingConfig *PredictRequestResponseLoggingConfig `protobuf:"bytes,18,opt,name=predict_request_response_logging_config,json=predictRequestResponseLoggingConfig,proto3" json:"predict_request_response_logging_config,omitempty"` 130 // If true, the endpoint will be exposed through a dedicated 131 // DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS 132 // will be isolated from other users' traffic and will have better performance 133 // and reliability. 134 // Note: Once you enabled dedicated endpoint, you won't be able to send 135 // request to the shared DNS {region}-aiplatform.googleapis.com. The 136 // limitation will be removed soon. 137 DedicatedEndpointEnabled bool `protobuf:"varint,24,opt,name=dedicated_endpoint_enabled,json=dedicatedEndpointEnabled,proto3" json:"dedicated_endpoint_enabled,omitempty"` 138 // Output only. DNS of the dedicated endpoint. Will only be populated if 139 // dedicated_endpoint_enabled is true. Depending on the features enabled, uid 140 // might be a random number or a string. For example, if fast_tryout is 141 // enabled, uid will be fasttryout. Format: 142 // `https://{endpoint_id}.{region}-{uid}.prediction.vertexai.goog`. 143 DedicatedEndpointDns string `protobuf:"bytes,25,opt,name=dedicated_endpoint_dns,json=dedicatedEndpointDns,proto3" json:"dedicated_endpoint_dns,omitempty"` 144 // Configurations that are applied to the endpoint for online prediction. 145 ClientConnectionConfig *ClientConnectionConfig `protobuf:"bytes,23,opt,name=client_connection_config,json=clientConnectionConfig,proto3" json:"client_connection_config,omitempty"` 146 // Output only. Reserved for future use. 147 SatisfiesPzs bool `protobuf:"varint,27,opt,name=satisfies_pzs,json=satisfiesPzs,proto3" json:"satisfies_pzs,omitempty"` 148 // Output only. Reserved for future use. 149 SatisfiesPzi bool `protobuf:"varint,28,opt,name=satisfies_pzi,json=satisfiesPzi,proto3" json:"satisfies_pzi,omitempty"` 150 // Optional. Configuration for GenAiAdvancedFeatures. If the endpoint is 151 // serving GenAI models, advanced features like native RAG integration can be 152 // configured. Currently, only Model Garden models are supported. 153 GenAiAdvancedFeaturesConfig *GenAiAdvancedFeaturesConfig `protobuf:"bytes,29,opt,name=gen_ai_advanced_features_config,json=genAiAdvancedFeaturesConfig,proto3" json:"gen_ai_advanced_features_config,omitempty"` 154 // If true, the model server will be isolated from the external internet. 155 PrivateModelServerEnabled bool `protobuf:"varint,30,opt,name=private_model_server_enabled,json=privateModelServerEnabled,proto3" json:"private_model_server_enabled,omitempty"` 156 } 157 158 func (x *Endpoint) Reset() { 159 *x = Endpoint{} 160 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[0] 161 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 162 ms.StoreMessageInfo(mi) 163 } 164 165 func (x *Endpoint) String() string { 166 return protoimpl.X.MessageStringOf(x) 167 } 168 169 func (*Endpoint) ProtoMessage() {} 170 171 func (x *Endpoint) ProtoReflect() protoreflect.Message { 172 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[0] 173 if x != nil { 174 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 175 if ms.LoadMessageInfo() == nil { 176 ms.StoreMessageInfo(mi) 177 } 178 return ms 179 } 180 return mi.MessageOf(x) 181 } 182 183 // Deprecated: Use Endpoint.ProtoReflect.Descriptor instead. 184 func (*Endpoint) Descriptor() ([]byte, []int) { 185 return file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescGZIP(), []int{0} 186 } 187 188 func (x *Endpoint) GetName() string { 189 if x != nil { 190 return x.Name 191 } 192 return "" 193 } 194 195 func (x *Endpoint) GetDisplayName() string { 196 if x != nil { 197 return x.DisplayName 198 } 199 return "" 200 } 201 202 func (x *Endpoint) GetDescription() string { 203 if x != nil { 204 return x.Description 205 } 206 return "" 207 } 208 209 func (x *Endpoint) GetDeployedModels() []*DeployedModel { 210 if x != nil { 211 return x.DeployedModels 212 } 213 return nil 214 } 215 216 func (x *Endpoint) GetTrafficSplit() map[string]int32 { 217 if x != nil { 218 return x.TrafficSplit 219 } 220 return nil 221 } 222 223 func (x *Endpoint) GetEtag() string { 224 if x != nil { 225 return x.Etag 226 } 227 return "" 228 } 229 230 func (x *Endpoint) GetLabels() map[string]string { 231 if x != nil { 232 return x.Labels 233 } 234 return nil 235 } 236 237 func (x *Endpoint) GetCreateTime() *timestamppb.Timestamp { 238 if x != nil { 239 return x.CreateTime 240 } 241 return nil 242 } 243 244 func (x *Endpoint) GetUpdateTime() *timestamppb.Timestamp { 245 if x != nil { 246 return x.UpdateTime 247 } 248 return nil 249 } 250 251 func (x *Endpoint) GetEncryptionSpec() *EncryptionSpec { 252 if x != nil { 253 return x.EncryptionSpec 254 } 255 return nil 256 } 257 258 func (x *Endpoint) GetNetwork() string { 259 if x != nil { 260 return x.Network 261 } 262 return "" 263 } 264 265 // Deprecated: Marked as deprecated in google/cloud/aiplatform/v1beta1/endpoint.proto. 266 func (x *Endpoint) GetEnablePrivateServiceConnect() bool { 267 if x != nil { 268 return x.EnablePrivateServiceConnect 269 } 270 return false 271 } 272 273 func (x *Endpoint) GetPrivateServiceConnectConfig() *PrivateServiceConnectConfig { 274 if x != nil { 275 return x.PrivateServiceConnectConfig 276 } 277 return nil 278 } 279 280 func (x *Endpoint) GetModelDeploymentMonitoringJob() string { 281 if x != nil { 282 return x.ModelDeploymentMonitoringJob 283 } 284 return "" 285 } 286 287 func (x *Endpoint) GetPredictRequestResponseLoggingConfig() *PredictRequestResponseLoggingConfig { 288 if x != nil { 289 return x.PredictRequestResponseLoggingConfig 290 } 291 return nil 292 } 293 294 func (x *Endpoint) GetDedicatedEndpointEnabled() bool { 295 if x != nil { 296 return x.DedicatedEndpointEnabled 297 } 298 return false 299 } 300 301 func (x *Endpoint) GetDedicatedEndpointDns() string { 302 if x != nil { 303 return x.DedicatedEndpointDns 304 } 305 return "" 306 } 307 308 func (x *Endpoint) GetClientConnectionConfig() *ClientConnectionConfig { 309 if x != nil { 310 return x.ClientConnectionConfig 311 } 312 return nil 313 } 314 315 func (x *Endpoint) GetSatisfiesPzs() bool { 316 if x != nil { 317 return x.SatisfiesPzs 318 } 319 return false 320 } 321 322 func (x *Endpoint) GetSatisfiesPzi() bool { 323 if x != nil { 324 return x.SatisfiesPzi 325 } 326 return false 327 } 328 329 func (x *Endpoint) GetGenAiAdvancedFeaturesConfig() *GenAiAdvancedFeaturesConfig { 330 if x != nil { 331 return x.GenAiAdvancedFeaturesConfig 332 } 333 return nil 334 } 335 336 func (x *Endpoint) GetPrivateModelServerEnabled() bool { 337 if x != nil { 338 return x.PrivateModelServerEnabled 339 } 340 return false 341 } 342 343 // A deployment of a Model. Endpoints contain one or more DeployedModels. 344 type DeployedModel struct { 345 state protoimpl.MessageState 346 sizeCache protoimpl.SizeCache 347 unknownFields protoimpl.UnknownFields 348 349 // The prediction (for example, the machine) resources that the DeployedModel 350 // uses. The user is billed for the resources (at least their minimal amount) 351 // even if the DeployedModel receives no traffic. 352 // Not all Models support all resources types. See 353 // [Model.supported_deployment_resources_types][google.cloud.aiplatform.v1beta1.Model.supported_deployment_resources_types]. 354 // Required except for Large Model Deploy use cases. 355 // 356 // Types that are assignable to PredictionResources: 357 // 358 // *DeployedModel_DedicatedResources 359 // *DeployedModel_AutomaticResources 360 // *DeployedModel_SharedResources 361 PredictionResources isDeployedModel_PredictionResources `protobuf_oneof:"prediction_resources"` 362 // Immutable. The ID of the DeployedModel. If not provided upon deployment, 363 // Vertex AI will generate a value for this ID. 364 // 365 // This value should be 1-10 characters, and valid characters are `/[0-9]/`. 366 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` 367 // The resource name of the Model that this is the deployment of. Note that 368 // the Model may be in a different location than the DeployedModel's Endpoint. 369 // 370 // The resource name may contain version id or version alias to specify the 371 // version. 372 // 373 // Example: `projects/{project}/locations/{location}/models/{model}@2` 374 // or 375 // `projects/{project}/locations/{location}/models/{model}@golden` 376 // 377 // if no version is specified, the default version will be deployed. 378 Model string `protobuf:"bytes,2,opt,name=model,proto3" json:"model,omitempty"` 379 // Output only. The version ID of the model that is deployed. 380 ModelVersionId string `protobuf:"bytes,18,opt,name=model_version_id,json=modelVersionId,proto3" json:"model_version_id,omitempty"` 381 // The display name of the DeployedModel. If not provided upon creation, 382 // the Model's display_name is used. 383 DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 384 // Output only. Timestamp when the DeployedModel was created. 385 CreateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 386 // Explanation configuration for this DeployedModel. 387 // 388 // When deploying a Model using 389 // [EndpointService.DeployModel][google.cloud.aiplatform.v1beta1.EndpointService.DeployModel], 390 // this value overrides the value of 391 // [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec]. 392 // All fields of 393 // [explanation_spec][google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec] 394 // are optional in the request. If a field of 395 // [explanation_spec][google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec] 396 // is not populated, the value of the same field of 397 // [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec] 398 // is inherited. If the corresponding 399 // [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec] 400 // is not populated, all fields of the 401 // [explanation_spec][google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec] 402 // will be used for the explanation configuration. 403 ExplanationSpec *ExplanationSpec `protobuf:"bytes,9,opt,name=explanation_spec,json=explanationSpec,proto3" json:"explanation_spec,omitempty"` 404 // If true, deploy the model without explainable feature, regardless the 405 // existence of 406 // [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec] 407 // or 408 // [explanation_spec][google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec]. 409 DisableExplanations bool `protobuf:"varint,19,opt,name=disable_explanations,json=disableExplanations,proto3" json:"disable_explanations,omitempty"` 410 // The service account that the DeployedModel's container runs as. Specify the 411 // email address of the service account. If this service account is not 412 // specified, the container runs as a service account that doesn't have access 413 // to the resource project. 414 // 415 // Users deploying the Model must have the `iam.serviceAccounts.actAs` 416 // permission on this service account. 417 ServiceAccount string `protobuf:"bytes,11,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"` 418 // If true, the container of the DeployedModel instances will send `stderr` 419 // and `stdout` streams to Cloud Logging. 420 // 421 // Only supported for custom-trained Models and AutoML Tabular Models. 422 EnableContainerLogging bool `protobuf:"varint,12,opt,name=enable_container_logging,json=enableContainerLogging,proto3" json:"enable_container_logging,omitempty"` 423 // For custom-trained Models and AutoML Tabular Models, the container of the 424 // DeployedModel instances will send `stderr` and `stdout` streams to 425 // Cloud Logging by default. Please note that the logs incur cost, 426 // which are subject to [Cloud Logging 427 // pricing](https://cloud.google.com/logging/pricing). 428 // 429 // User can disable container logging by setting this flag to true. 430 DisableContainerLogging bool `protobuf:"varint,15,opt,name=disable_container_logging,json=disableContainerLogging,proto3" json:"disable_container_logging,omitempty"` 431 // If true, online prediction access logs are sent to Cloud 432 // Logging. 433 // These logs are like standard server access logs, containing 434 // information like timestamp and latency for each prediction request. 435 // 436 // Note that logs may incur a cost, especially if your project 437 // receives prediction requests at a high queries per second rate (QPS). 438 // Estimate your costs before enabling this option. 439 EnableAccessLogging bool `protobuf:"varint,13,opt,name=enable_access_logging,json=enableAccessLogging,proto3" json:"enable_access_logging,omitempty"` 440 // Output only. Provide paths for users to send predict/explain/health 441 // requests directly to the deployed model services running on Cloud via 442 // private services access. This field is populated if 443 // [network][google.cloud.aiplatform.v1beta1.Endpoint.network] is configured. 444 PrivateEndpoints *PrivateEndpoints `protobuf:"bytes,14,opt,name=private_endpoints,json=privateEndpoints,proto3" json:"private_endpoints,omitempty"` 445 // Configuration for faster model deployment. 446 FasterDeploymentConfig *FasterDeploymentConfig `protobuf:"bytes,23,opt,name=faster_deployment_config,json=fasterDeploymentConfig,proto3" json:"faster_deployment_config,omitempty"` 447 // Options for configuring rolling deployments. 448 RolloutOptions *RolloutOptions `protobuf:"bytes,25,opt,name=rollout_options,json=rolloutOptions,proto3" json:"rollout_options,omitempty"` 449 // Output only. Runtime status of the deployed model. 450 Status *DeployedModel_Status `protobuf:"bytes,26,opt,name=status,proto3" json:"status,omitempty"` 451 // System labels to apply to Model Garden deployments. 452 // System labels are managed by Google for internal use only. 453 SystemLabels map[string]string `protobuf:"bytes,28,rep,name=system_labels,json=systemLabels,proto3" json:"system_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 454 // The checkpoint id of the model. 455 CheckpointId string `protobuf:"bytes,29,opt,name=checkpoint_id,json=checkpointId,proto3" json:"checkpoint_id,omitempty"` 456 // Optional. Spec for configuring speculative decoding. 457 SpeculativeDecodingSpec *SpeculativeDecodingSpec `protobuf:"bytes,30,opt,name=speculative_decoding_spec,json=speculativeDecodingSpec,proto3" json:"speculative_decoding_spec,omitempty"` 458 } 459 460 func (x *DeployedModel) Reset() { 461 *x = DeployedModel{} 462 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[1] 463 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 464 ms.StoreMessageInfo(mi) 465 } 466 467 func (x *DeployedModel) String() string { 468 return protoimpl.X.MessageStringOf(x) 469 } 470 471 func (*DeployedModel) ProtoMessage() {} 472 473 func (x *DeployedModel) ProtoReflect() protoreflect.Message { 474 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[1] 475 if x != nil { 476 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 477 if ms.LoadMessageInfo() == nil { 478 ms.StoreMessageInfo(mi) 479 } 480 return ms 481 } 482 return mi.MessageOf(x) 483 } 484 485 // Deprecated: Use DeployedModel.ProtoReflect.Descriptor instead. 486 func (*DeployedModel) Descriptor() ([]byte, []int) { 487 return file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescGZIP(), []int{1} 488 } 489 490 func (m *DeployedModel) GetPredictionResources() isDeployedModel_PredictionResources { 491 if m != nil { 492 return m.PredictionResources 493 } 494 return nil 495 } 496 497 func (x *DeployedModel) GetDedicatedResources() *DedicatedResources { 498 if x, ok := x.GetPredictionResources().(*DeployedModel_DedicatedResources); ok { 499 return x.DedicatedResources 500 } 501 return nil 502 } 503 504 func (x *DeployedModel) GetAutomaticResources() *AutomaticResources { 505 if x, ok := x.GetPredictionResources().(*DeployedModel_AutomaticResources); ok { 506 return x.AutomaticResources 507 } 508 return nil 509 } 510 511 func (x *DeployedModel) GetSharedResources() string { 512 if x, ok := x.GetPredictionResources().(*DeployedModel_SharedResources); ok { 513 return x.SharedResources 514 } 515 return "" 516 } 517 518 func (x *DeployedModel) GetId() string { 519 if x != nil { 520 return x.Id 521 } 522 return "" 523 } 524 525 func (x *DeployedModel) GetModel() string { 526 if x != nil { 527 return x.Model 528 } 529 return "" 530 } 531 532 func (x *DeployedModel) GetModelVersionId() string { 533 if x != nil { 534 return x.ModelVersionId 535 } 536 return "" 537 } 538 539 func (x *DeployedModel) GetDisplayName() string { 540 if x != nil { 541 return x.DisplayName 542 } 543 return "" 544 } 545 546 func (x *DeployedModel) GetCreateTime() *timestamppb.Timestamp { 547 if x != nil { 548 return x.CreateTime 549 } 550 return nil 551 } 552 553 func (x *DeployedModel) GetExplanationSpec() *ExplanationSpec { 554 if x != nil { 555 return x.ExplanationSpec 556 } 557 return nil 558 } 559 560 func (x *DeployedModel) GetDisableExplanations() bool { 561 if x != nil { 562 return x.DisableExplanations 563 } 564 return false 565 } 566 567 func (x *DeployedModel) GetServiceAccount() string { 568 if x != nil { 569 return x.ServiceAccount 570 } 571 return "" 572 } 573 574 func (x *DeployedModel) GetEnableContainerLogging() bool { 575 if x != nil { 576 return x.EnableContainerLogging 577 } 578 return false 579 } 580 581 func (x *DeployedModel) GetDisableContainerLogging() bool { 582 if x != nil { 583 return x.DisableContainerLogging 584 } 585 return false 586 } 587 588 func (x *DeployedModel) GetEnableAccessLogging() bool { 589 if x != nil { 590 return x.EnableAccessLogging 591 } 592 return false 593 } 594 595 func (x *DeployedModel) GetPrivateEndpoints() *PrivateEndpoints { 596 if x != nil { 597 return x.PrivateEndpoints 598 } 599 return nil 600 } 601 602 func (x *DeployedModel) GetFasterDeploymentConfig() *FasterDeploymentConfig { 603 if x != nil { 604 return x.FasterDeploymentConfig 605 } 606 return nil 607 } 608 609 func (x *DeployedModel) GetRolloutOptions() *RolloutOptions { 610 if x != nil { 611 return x.RolloutOptions 612 } 613 return nil 614 } 615 616 func (x *DeployedModel) GetStatus() *DeployedModel_Status { 617 if x != nil { 618 return x.Status 619 } 620 return nil 621 } 622 623 func (x *DeployedModel) GetSystemLabels() map[string]string { 624 if x != nil { 625 return x.SystemLabels 626 } 627 return nil 628 } 629 630 func (x *DeployedModel) GetCheckpointId() string { 631 if x != nil { 632 return x.CheckpointId 633 } 634 return "" 635 } 636 637 func (x *DeployedModel) GetSpeculativeDecodingSpec() *SpeculativeDecodingSpec { 638 if x != nil { 639 return x.SpeculativeDecodingSpec 640 } 641 return nil 642 } 643 644 type isDeployedModel_PredictionResources interface { 645 isDeployedModel_PredictionResources() 646 } 647 648 type DeployedModel_DedicatedResources struct { 649 // A description of resources that are dedicated to the DeployedModel, and 650 // that need a higher degree of manual configuration. 651 DedicatedResources *DedicatedResources `protobuf:"bytes,7,opt,name=dedicated_resources,json=dedicatedResources,proto3,oneof"` 652 } 653 654 type DeployedModel_AutomaticResources struct { 655 // A description of resources that to large degree are decided by Vertex 656 // AI, and require only a modest additional configuration. 657 AutomaticResources *AutomaticResources `protobuf:"bytes,8,opt,name=automatic_resources,json=automaticResources,proto3,oneof"` 658 } 659 660 type DeployedModel_SharedResources struct { 661 // The resource name of the shared DeploymentResourcePool to deploy on. 662 // Format: 663 // `projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool}` 664 SharedResources string `protobuf:"bytes,17,opt,name=shared_resources,json=sharedResources,proto3,oneof"` 665 } 666 667 func (*DeployedModel_DedicatedResources) isDeployedModel_PredictionResources() {} 668 669 func (*DeployedModel_AutomaticResources) isDeployedModel_PredictionResources() {} 670 671 func (*DeployedModel_SharedResources) isDeployedModel_PredictionResources() {} 672 673 // PrivateEndpoints proto is used to provide paths for users to send 674 // requests privately. 675 // To send request via private service access, use predict_http_uri, 676 // explain_http_uri or health_http_uri. To send request via private service 677 // connect, use service_attachment. 678 type PrivateEndpoints struct { 679 state protoimpl.MessageState 680 sizeCache protoimpl.SizeCache 681 unknownFields protoimpl.UnknownFields 682 683 // Output only. Http(s) path to send prediction requests. 684 PredictHttpUri string `protobuf:"bytes,1,opt,name=predict_http_uri,json=predictHttpUri,proto3" json:"predict_http_uri,omitempty"` 685 // Output only. Http(s) path to send explain requests. 686 ExplainHttpUri string `protobuf:"bytes,2,opt,name=explain_http_uri,json=explainHttpUri,proto3" json:"explain_http_uri,omitempty"` 687 // Output only. Http(s) path to send health check requests. 688 HealthHttpUri string `protobuf:"bytes,3,opt,name=health_http_uri,json=healthHttpUri,proto3" json:"health_http_uri,omitempty"` 689 // Output only. The name of the service attachment resource. Populated if 690 // private service connect is enabled. 691 ServiceAttachment string `protobuf:"bytes,4,opt,name=service_attachment,json=serviceAttachment,proto3" json:"service_attachment,omitempty"` 692 } 693 694 func (x *PrivateEndpoints) Reset() { 695 *x = PrivateEndpoints{} 696 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[2] 697 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 698 ms.StoreMessageInfo(mi) 699 } 700 701 func (x *PrivateEndpoints) String() string { 702 return protoimpl.X.MessageStringOf(x) 703 } 704 705 func (*PrivateEndpoints) ProtoMessage() {} 706 707 func (x *PrivateEndpoints) ProtoReflect() protoreflect.Message { 708 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[2] 709 if x != nil { 710 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 711 if ms.LoadMessageInfo() == nil { 712 ms.StoreMessageInfo(mi) 713 } 714 return ms 715 } 716 return mi.MessageOf(x) 717 } 718 719 // Deprecated: Use PrivateEndpoints.ProtoReflect.Descriptor instead. 720 func (*PrivateEndpoints) Descriptor() ([]byte, []int) { 721 return file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescGZIP(), []int{2} 722 } 723 724 func (x *PrivateEndpoints) GetPredictHttpUri() string { 725 if x != nil { 726 return x.PredictHttpUri 727 } 728 return "" 729 } 730 731 func (x *PrivateEndpoints) GetExplainHttpUri() string { 732 if x != nil { 733 return x.ExplainHttpUri 734 } 735 return "" 736 } 737 738 func (x *PrivateEndpoints) GetHealthHttpUri() string { 739 if x != nil { 740 return x.HealthHttpUri 741 } 742 return "" 743 } 744 745 func (x *PrivateEndpoints) GetServiceAttachment() string { 746 if x != nil { 747 return x.ServiceAttachment 748 } 749 return "" 750 } 751 752 // Configuration for logging request-response to a BigQuery table. 753 type PredictRequestResponseLoggingConfig struct { 754 state protoimpl.MessageState 755 sizeCache protoimpl.SizeCache 756 unknownFields protoimpl.UnknownFields 757 758 // If logging is enabled or not. 759 Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` 760 // Percentage of requests to be logged, expressed as a fraction in 761 // range(0,1]. 762 SamplingRate float64 `protobuf:"fixed64,2,opt,name=sampling_rate,json=samplingRate,proto3" json:"sampling_rate,omitempty"` 763 // BigQuery table for logging. 764 // If only given a project, a new dataset will be created with name 765 // `logging_<endpoint-display-name>_<endpoint-id>` where 766 // <endpoint-display-name> will be made BigQuery-dataset-name compatible (e.g. 767 // most special characters will become underscores). If no table name is 768 // given, a new table will be created with name `request_response_logging` 769 BigqueryDestination *BigQueryDestination `protobuf:"bytes,3,opt,name=bigquery_destination,json=bigqueryDestination,proto3" json:"bigquery_destination,omitempty"` 770 // Output only. The schema version used in creating the BigQuery table for the 771 // request response logging. The versions are "v1" and "v2". The current 772 // default version is "v1". 773 RequestResponseLoggingSchemaVersion string `protobuf:"bytes,4,opt,name=request_response_logging_schema_version,json=requestResponseLoggingSchemaVersion,proto3" json:"request_response_logging_schema_version,omitempty"` 774 // This field is used for large models. If true, in addition to the 775 // original large model logs, logs will be converted in OTel schema format, 776 // and saved in otel_log column. Default value is false. 777 EnableOtelLogging bool `protobuf:"varint,6,opt,name=enable_otel_logging,json=enableOtelLogging,proto3" json:"enable_otel_logging,omitempty"` 778 } 779 780 func (x *PredictRequestResponseLoggingConfig) Reset() { 781 *x = PredictRequestResponseLoggingConfig{} 782 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[3] 783 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 784 ms.StoreMessageInfo(mi) 785 } 786 787 func (x *PredictRequestResponseLoggingConfig) String() string { 788 return protoimpl.X.MessageStringOf(x) 789 } 790 791 func (*PredictRequestResponseLoggingConfig) ProtoMessage() {} 792 793 func (x *PredictRequestResponseLoggingConfig) ProtoReflect() protoreflect.Message { 794 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[3] 795 if x != nil { 796 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 797 if ms.LoadMessageInfo() == nil { 798 ms.StoreMessageInfo(mi) 799 } 800 return ms 801 } 802 return mi.MessageOf(x) 803 } 804 805 // Deprecated: Use PredictRequestResponseLoggingConfig.ProtoReflect.Descriptor instead. 806 func (*PredictRequestResponseLoggingConfig) Descriptor() ([]byte, []int) { 807 return file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescGZIP(), []int{3} 808 } 809 810 func (x *PredictRequestResponseLoggingConfig) GetEnabled() bool { 811 if x != nil { 812 return x.Enabled 813 } 814 return false 815 } 816 817 func (x *PredictRequestResponseLoggingConfig) GetSamplingRate() float64 { 818 if x != nil { 819 return x.SamplingRate 820 } 821 return 0 822 } 823 824 func (x *PredictRequestResponseLoggingConfig) GetBigqueryDestination() *BigQueryDestination { 825 if x != nil { 826 return x.BigqueryDestination 827 } 828 return nil 829 } 830 831 func (x *PredictRequestResponseLoggingConfig) GetRequestResponseLoggingSchemaVersion() string { 832 if x != nil { 833 return x.RequestResponseLoggingSchemaVersion 834 } 835 return "" 836 } 837 838 func (x *PredictRequestResponseLoggingConfig) GetEnableOtelLogging() bool { 839 if x != nil { 840 return x.EnableOtelLogging 841 } 842 return false 843 } 844 845 // This message contains configs of a publisher model. 846 type PublisherModelConfig struct { 847 state protoimpl.MessageState 848 sizeCache protoimpl.SizeCache 849 unknownFields protoimpl.UnknownFields 850 851 // The prediction request/response logging config. 852 LoggingConfig *PredictRequestResponseLoggingConfig `protobuf:"bytes,3,opt,name=logging_config,json=loggingConfig,proto3" json:"logging_config,omitempty"` 853 } 854 855 func (x *PublisherModelConfig) Reset() { 856 *x = PublisherModelConfig{} 857 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[4] 858 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 859 ms.StoreMessageInfo(mi) 860 } 861 862 func (x *PublisherModelConfig) String() string { 863 return protoimpl.X.MessageStringOf(x) 864 } 865 866 func (*PublisherModelConfig) ProtoMessage() {} 867 868 func (x *PublisherModelConfig) ProtoReflect() protoreflect.Message { 869 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[4] 870 if x != nil { 871 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 872 if ms.LoadMessageInfo() == nil { 873 ms.StoreMessageInfo(mi) 874 } 875 return ms 876 } 877 return mi.MessageOf(x) 878 } 879 880 // Deprecated: Use PublisherModelConfig.ProtoReflect.Descriptor instead. 881 func (*PublisherModelConfig) Descriptor() ([]byte, []int) { 882 return file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescGZIP(), []int{4} 883 } 884 885 func (x *PublisherModelConfig) GetLoggingConfig() *PredictRequestResponseLoggingConfig { 886 if x != nil { 887 return x.LoggingConfig 888 } 889 return nil 890 } 891 892 // Configurations (e.g. inference timeout) that are applied on your endpoints. 893 type ClientConnectionConfig struct { 894 state protoimpl.MessageState 895 sizeCache protoimpl.SizeCache 896 unknownFields protoimpl.UnknownFields 897 898 // Customizable online prediction request timeout. 899 InferenceTimeout *durationpb.Duration `protobuf:"bytes,1,opt,name=inference_timeout,json=inferenceTimeout,proto3" json:"inference_timeout,omitempty"` 900 } 901 902 func (x *ClientConnectionConfig) Reset() { 903 *x = ClientConnectionConfig{} 904 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[5] 905 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 906 ms.StoreMessageInfo(mi) 907 } 908 909 func (x *ClientConnectionConfig) String() string { 910 return protoimpl.X.MessageStringOf(x) 911 } 912 913 func (*ClientConnectionConfig) ProtoMessage() {} 914 915 func (x *ClientConnectionConfig) ProtoReflect() protoreflect.Message { 916 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[5] 917 if x != nil { 918 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 919 if ms.LoadMessageInfo() == nil { 920 ms.StoreMessageInfo(mi) 921 } 922 return ms 923 } 924 return mi.MessageOf(x) 925 } 926 927 // Deprecated: Use ClientConnectionConfig.ProtoReflect.Descriptor instead. 928 func (*ClientConnectionConfig) Descriptor() ([]byte, []int) { 929 return file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescGZIP(), []int{5} 930 } 931 932 func (x *ClientConnectionConfig) GetInferenceTimeout() *durationpb.Duration { 933 if x != nil { 934 return x.InferenceTimeout 935 } 936 return nil 937 } 938 939 // Configuration for faster model deployment. 940 type FasterDeploymentConfig struct { 941 state protoimpl.MessageState 942 sizeCache protoimpl.SizeCache 943 unknownFields protoimpl.UnknownFields 944 945 // If true, enable fast tryout feature for this deployed model. 946 FastTryoutEnabled bool `protobuf:"varint,2,opt,name=fast_tryout_enabled,json=fastTryoutEnabled,proto3" json:"fast_tryout_enabled,omitempty"` 947 } 948 949 func (x *FasterDeploymentConfig) Reset() { 950 *x = FasterDeploymentConfig{} 951 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[6] 952 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 953 ms.StoreMessageInfo(mi) 954 } 955 956 func (x *FasterDeploymentConfig) String() string { 957 return protoimpl.X.MessageStringOf(x) 958 } 959 960 func (*FasterDeploymentConfig) ProtoMessage() {} 961 962 func (x *FasterDeploymentConfig) ProtoReflect() protoreflect.Message { 963 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[6] 964 if x != nil { 965 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 966 if ms.LoadMessageInfo() == nil { 967 ms.StoreMessageInfo(mi) 968 } 969 return ms 970 } 971 return mi.MessageOf(x) 972 } 973 974 // Deprecated: Use FasterDeploymentConfig.ProtoReflect.Descriptor instead. 975 func (*FasterDeploymentConfig) Descriptor() ([]byte, []int) { 976 return file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescGZIP(), []int{6} 977 } 978 979 func (x *FasterDeploymentConfig) GetFastTryoutEnabled() bool { 980 if x != nil { 981 return x.FastTryoutEnabled 982 } 983 return false 984 } 985 986 // Configuration for rolling deployments. 987 type RolloutOptions struct { 988 state protoimpl.MessageState 989 sizeCache protoimpl.SizeCache 990 unknownFields protoimpl.UnknownFields 991 992 // Configures how many replicas are allowed to be unavailable during a rolling 993 // deployment. 994 // 995 // Types that are assignable to MaxUnavailable: 996 // 997 // *RolloutOptions_MaxUnavailableReplicas 998 // *RolloutOptions_MaxUnavailablePercentage 999 MaxUnavailable isRolloutOptions_MaxUnavailable `protobuf_oneof:"max_unavailable"` 1000 // Configures how many additional replicas can be provisioned during a rolling 1001 // deployment. 1002 // 1003 // Types that are assignable to MaxSurge: 1004 // 1005 // *RolloutOptions_MaxSurgeReplicas 1006 // *RolloutOptions_MaxSurgePercentage 1007 MaxSurge isRolloutOptions_MaxSurge `protobuf_oneof:"max_surge"` 1008 // ID of the DeployedModel that this deployment should replace. 1009 PreviousDeployedModel string `protobuf:"bytes,1,opt,name=previous_deployed_model,json=previousDeployedModel,proto3" json:"previous_deployed_model,omitempty"` 1010 // Output only. Read-only. Revision number determines the relative priority of 1011 // DeployedModels in the same rollout. The DeployedModel with the largest 1012 // revision number specifies the intended state of the deployment. 1013 RevisionNumber int32 `protobuf:"varint,2,opt,name=revision_number,json=revisionNumber,proto3" json:"revision_number,omitempty"` 1014 } 1015 1016 func (x *RolloutOptions) Reset() { 1017 *x = RolloutOptions{} 1018 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[7] 1019 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1020 ms.StoreMessageInfo(mi) 1021 } 1022 1023 func (x *RolloutOptions) String() string { 1024 return protoimpl.X.MessageStringOf(x) 1025 } 1026 1027 func (*RolloutOptions) ProtoMessage() {} 1028 1029 func (x *RolloutOptions) ProtoReflect() protoreflect.Message { 1030 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[7] 1031 if x != nil { 1032 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1033 if ms.LoadMessageInfo() == nil { 1034 ms.StoreMessageInfo(mi) 1035 } 1036 return ms 1037 } 1038 return mi.MessageOf(x) 1039 } 1040 1041 // Deprecated: Use RolloutOptions.ProtoReflect.Descriptor instead. 1042 func (*RolloutOptions) Descriptor() ([]byte, []int) { 1043 return file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescGZIP(), []int{7} 1044 } 1045 1046 func (m *RolloutOptions) GetMaxUnavailable() isRolloutOptions_MaxUnavailable { 1047 if m != nil { 1048 return m.MaxUnavailable 1049 } 1050 return nil 1051 } 1052 1053 func (x *RolloutOptions) GetMaxUnavailableReplicas() int32 { 1054 if x, ok := x.GetMaxUnavailable().(*RolloutOptions_MaxUnavailableReplicas); ok { 1055 return x.MaxUnavailableReplicas 1056 } 1057 return 0 1058 } 1059 1060 func (x *RolloutOptions) GetMaxUnavailablePercentage() int32 { 1061 if x, ok := x.GetMaxUnavailable().(*RolloutOptions_MaxUnavailablePercentage); ok { 1062 return x.MaxUnavailablePercentage 1063 } 1064 return 0 1065 } 1066 1067 func (m *RolloutOptions) GetMaxSurge() isRolloutOptions_MaxSurge { 1068 if m != nil { 1069 return m.MaxSurge 1070 } 1071 return nil 1072 } 1073 1074 func (x *RolloutOptions) GetMaxSurgeReplicas() int32 { 1075 if x, ok := x.GetMaxSurge().(*RolloutOptions_MaxSurgeReplicas); ok { 1076 return x.MaxSurgeReplicas 1077 } 1078 return 0 1079 } 1080 1081 func (x *RolloutOptions) GetMaxSurgePercentage() int32 { 1082 if x, ok := x.GetMaxSurge().(*RolloutOptions_MaxSurgePercentage); ok { 1083 return x.MaxSurgePercentage 1084 } 1085 return 0 1086 } 1087 1088 func (x *RolloutOptions) GetPreviousDeployedModel() string { 1089 if x != nil { 1090 return x.PreviousDeployedModel 1091 } 1092 return "" 1093 } 1094 1095 func (x *RolloutOptions) GetRevisionNumber() int32 { 1096 if x != nil { 1097 return x.RevisionNumber 1098 } 1099 return 0 1100 } 1101 1102 type isRolloutOptions_MaxUnavailable interface { 1103 isRolloutOptions_MaxUnavailable() 1104 } 1105 1106 type RolloutOptions_MaxUnavailableReplicas struct { 1107 // Absolute count of replicas allowed to be unavailable. 1108 MaxUnavailableReplicas int32 `protobuf:"varint,3,opt,name=max_unavailable_replicas,json=maxUnavailableReplicas,proto3,oneof"` 1109 } 1110 1111 type RolloutOptions_MaxUnavailablePercentage struct { 1112 // Percentage of replicas allowed to be unavailable. 1113 // For autoscaling deployments, this refers to the target replica count. 1114 MaxUnavailablePercentage int32 `protobuf:"varint,4,opt,name=max_unavailable_percentage,json=maxUnavailablePercentage,proto3,oneof"` 1115 } 1116 1117 func (*RolloutOptions_MaxUnavailableReplicas) isRolloutOptions_MaxUnavailable() {} 1118 1119 func (*RolloutOptions_MaxUnavailablePercentage) isRolloutOptions_MaxUnavailable() {} 1120 1121 type isRolloutOptions_MaxSurge interface { 1122 isRolloutOptions_MaxSurge() 1123 } 1124 1125 type RolloutOptions_MaxSurgeReplicas struct { 1126 // Absolute count of allowed additional replicas. 1127 MaxSurgeReplicas int32 `protobuf:"varint,5,opt,name=max_surge_replicas,json=maxSurgeReplicas,proto3,oneof"` 1128 } 1129 1130 type RolloutOptions_MaxSurgePercentage struct { 1131 // Percentage of allowed additional replicas. 1132 // For autoscaling deployments, this refers to the target replica count. 1133 MaxSurgePercentage int32 `protobuf:"varint,6,opt,name=max_surge_percentage,json=maxSurgePercentage,proto3,oneof"` 1134 } 1135 1136 func (*RolloutOptions_MaxSurgeReplicas) isRolloutOptions_MaxSurge() {} 1137 1138 func (*RolloutOptions_MaxSurgePercentage) isRolloutOptions_MaxSurge() {} 1139 1140 // Configuration for GenAiAdvancedFeatures. 1141 type GenAiAdvancedFeaturesConfig struct { 1142 state protoimpl.MessageState 1143 sizeCache protoimpl.SizeCache 1144 unknownFields protoimpl.UnknownFields 1145 1146 // Configuration for Retrieval Augmented Generation feature. 1147 RagConfig *GenAiAdvancedFeaturesConfig_RagConfig `protobuf:"bytes,1,opt,name=rag_config,json=ragConfig,proto3" json:"rag_config,omitempty"` 1148 } 1149 1150 func (x *GenAiAdvancedFeaturesConfig) Reset() { 1151 *x = GenAiAdvancedFeaturesConfig{} 1152 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[8] 1153 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1154 ms.StoreMessageInfo(mi) 1155 } 1156 1157 func (x *GenAiAdvancedFeaturesConfig) String() string { 1158 return protoimpl.X.MessageStringOf(x) 1159 } 1160 1161 func (*GenAiAdvancedFeaturesConfig) ProtoMessage() {} 1162 1163 func (x *GenAiAdvancedFeaturesConfig) ProtoReflect() protoreflect.Message { 1164 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[8] 1165 if x != nil { 1166 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1167 if ms.LoadMessageInfo() == nil { 1168 ms.StoreMessageInfo(mi) 1169 } 1170 return ms 1171 } 1172 return mi.MessageOf(x) 1173 } 1174 1175 // Deprecated: Use GenAiAdvancedFeaturesConfig.ProtoReflect.Descriptor instead. 1176 func (*GenAiAdvancedFeaturesConfig) Descriptor() ([]byte, []int) { 1177 return file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescGZIP(), []int{8} 1178 } 1179 1180 func (x *GenAiAdvancedFeaturesConfig) GetRagConfig() *GenAiAdvancedFeaturesConfig_RagConfig { 1181 if x != nil { 1182 return x.RagConfig 1183 } 1184 return nil 1185 } 1186 1187 // Configuration for Speculative Decoding. 1188 type SpeculativeDecodingSpec struct { 1189 state protoimpl.MessageState 1190 sizeCache protoimpl.SizeCache 1191 unknownFields protoimpl.UnknownFields 1192 1193 // The type of speculation method to use. 1194 // 1195 // Types that are assignable to Speculation: 1196 // 1197 // *SpeculativeDecodingSpec_DraftModelSpeculation_ 1198 // *SpeculativeDecodingSpec_NgramSpeculation_ 1199 Speculation isSpeculativeDecodingSpec_Speculation `protobuf_oneof:"speculation"` 1200 // The number of speculative tokens to generate at each step. 1201 SpeculativeTokenCount int32 `protobuf:"varint,1,opt,name=speculative_token_count,json=speculativeTokenCount,proto3" json:"speculative_token_count,omitempty"` 1202 } 1203 1204 func (x *SpeculativeDecodingSpec) Reset() { 1205 *x = SpeculativeDecodingSpec{} 1206 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[9] 1207 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1208 ms.StoreMessageInfo(mi) 1209 } 1210 1211 func (x *SpeculativeDecodingSpec) String() string { 1212 return protoimpl.X.MessageStringOf(x) 1213 } 1214 1215 func (*SpeculativeDecodingSpec) ProtoMessage() {} 1216 1217 func (x *SpeculativeDecodingSpec) ProtoReflect() protoreflect.Message { 1218 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[9] 1219 if x != nil { 1220 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1221 if ms.LoadMessageInfo() == nil { 1222 ms.StoreMessageInfo(mi) 1223 } 1224 return ms 1225 } 1226 return mi.MessageOf(x) 1227 } 1228 1229 // Deprecated: Use SpeculativeDecodingSpec.ProtoReflect.Descriptor instead. 1230 func (*SpeculativeDecodingSpec) Descriptor() ([]byte, []int) { 1231 return file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescGZIP(), []int{9} 1232 } 1233 1234 func (m *SpeculativeDecodingSpec) GetSpeculation() isSpeculativeDecodingSpec_Speculation { 1235 if m != nil { 1236 return m.Speculation 1237 } 1238 return nil 1239 } 1240 1241 func (x *SpeculativeDecodingSpec) GetDraftModelSpeculation() *SpeculativeDecodingSpec_DraftModelSpeculation { 1242 if x, ok := x.GetSpeculation().(*SpeculativeDecodingSpec_DraftModelSpeculation_); ok { 1243 return x.DraftModelSpeculation 1244 } 1245 return nil 1246 } 1247 1248 func (x *SpeculativeDecodingSpec) GetNgramSpeculation() *SpeculativeDecodingSpec_NgramSpeculation { 1249 if x, ok := x.GetSpeculation().(*SpeculativeDecodingSpec_NgramSpeculation_); ok { 1250 return x.NgramSpeculation 1251 } 1252 return nil 1253 } 1254 1255 func (x *SpeculativeDecodingSpec) GetSpeculativeTokenCount() int32 { 1256 if x != nil { 1257 return x.SpeculativeTokenCount 1258 } 1259 return 0 1260 } 1261 1262 type isSpeculativeDecodingSpec_Speculation interface { 1263 isSpeculativeDecodingSpec_Speculation() 1264 } 1265 1266 type SpeculativeDecodingSpec_DraftModelSpeculation_ struct { 1267 // draft model speculation. 1268 DraftModelSpeculation *SpeculativeDecodingSpec_DraftModelSpeculation `protobuf:"bytes,2,opt,name=draft_model_speculation,json=draftModelSpeculation,proto3,oneof"` 1269 } 1270 1271 type SpeculativeDecodingSpec_NgramSpeculation_ struct { 1272 // N-Gram speculation. 1273 NgramSpeculation *SpeculativeDecodingSpec_NgramSpeculation `protobuf:"bytes,3,opt,name=ngram_speculation,json=ngramSpeculation,proto3,oneof"` 1274 } 1275 1276 func (*SpeculativeDecodingSpec_DraftModelSpeculation_) isSpeculativeDecodingSpec_Speculation() {} 1277 1278 func (*SpeculativeDecodingSpec_NgramSpeculation_) isSpeculativeDecodingSpec_Speculation() {} 1279 1280 // Runtime status of the deployed model. 1281 type DeployedModel_Status struct { 1282 state protoimpl.MessageState 1283 sizeCache protoimpl.SizeCache 1284 unknownFields protoimpl.UnknownFields 1285 1286 // Output only. The latest deployed model's status message (if any). 1287 Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` 1288 // Output only. The time at which the status was last updated. 1289 LastUpdateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=last_update_time,json=lastUpdateTime,proto3" json:"last_update_time,omitempty"` 1290 // Output only. The number of available replicas of the deployed model. 1291 AvailableReplicaCount int32 `protobuf:"varint,3,opt,name=available_replica_count,json=availableReplicaCount,proto3" json:"available_replica_count,omitempty"` 1292 } 1293 1294 func (x *DeployedModel_Status) Reset() { 1295 *x = DeployedModel_Status{} 1296 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[12] 1297 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1298 ms.StoreMessageInfo(mi) 1299 } 1300 1301 func (x *DeployedModel_Status) String() string { 1302 return protoimpl.X.MessageStringOf(x) 1303 } 1304 1305 func (*DeployedModel_Status) ProtoMessage() {} 1306 1307 func (x *DeployedModel_Status) ProtoReflect() protoreflect.Message { 1308 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[12] 1309 if x != nil { 1310 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1311 if ms.LoadMessageInfo() == nil { 1312 ms.StoreMessageInfo(mi) 1313 } 1314 return ms 1315 } 1316 return mi.MessageOf(x) 1317 } 1318 1319 // Deprecated: Use DeployedModel_Status.ProtoReflect.Descriptor instead. 1320 func (*DeployedModel_Status) Descriptor() ([]byte, []int) { 1321 return file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescGZIP(), []int{1, 0} 1322 } 1323 1324 func (x *DeployedModel_Status) GetMessage() string { 1325 if x != nil { 1326 return x.Message 1327 } 1328 return "" 1329 } 1330 1331 func (x *DeployedModel_Status) GetLastUpdateTime() *timestamppb.Timestamp { 1332 if x != nil { 1333 return x.LastUpdateTime 1334 } 1335 return nil 1336 } 1337 1338 func (x *DeployedModel_Status) GetAvailableReplicaCount() int32 { 1339 if x != nil { 1340 return x.AvailableReplicaCount 1341 } 1342 return 0 1343 } 1344 1345 // Configuration for Retrieval Augmented Generation feature. 1346 type GenAiAdvancedFeaturesConfig_RagConfig struct { 1347 state protoimpl.MessageState 1348 sizeCache protoimpl.SizeCache 1349 unknownFields protoimpl.UnknownFields 1350 1351 // If true, enable Retrieval Augmented Generation in ChatCompletion request. 1352 // Once enabled, the endpoint will be identified as GenAI endpoint and 1353 // Arthedain router will be used. 1354 EnableRag bool `protobuf:"varint,1,opt,name=enable_rag,json=enableRag,proto3" json:"enable_rag,omitempty"` 1355 } 1356 1357 func (x *GenAiAdvancedFeaturesConfig_RagConfig) Reset() { 1358 *x = GenAiAdvancedFeaturesConfig_RagConfig{} 1359 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[14] 1360 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1361 ms.StoreMessageInfo(mi) 1362 } 1363 1364 func (x *GenAiAdvancedFeaturesConfig_RagConfig) String() string { 1365 return protoimpl.X.MessageStringOf(x) 1366 } 1367 1368 func (*GenAiAdvancedFeaturesConfig_RagConfig) ProtoMessage() {} 1369 1370 func (x *GenAiAdvancedFeaturesConfig_RagConfig) ProtoReflect() protoreflect.Message { 1371 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[14] 1372 if x != nil { 1373 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1374 if ms.LoadMessageInfo() == nil { 1375 ms.StoreMessageInfo(mi) 1376 } 1377 return ms 1378 } 1379 return mi.MessageOf(x) 1380 } 1381 1382 // Deprecated: Use GenAiAdvancedFeaturesConfig_RagConfig.ProtoReflect.Descriptor instead. 1383 func (*GenAiAdvancedFeaturesConfig_RagConfig) Descriptor() ([]byte, []int) { 1384 return file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescGZIP(), []int{8, 0} 1385 } 1386 1387 func (x *GenAiAdvancedFeaturesConfig_RagConfig) GetEnableRag() bool { 1388 if x != nil { 1389 return x.EnableRag 1390 } 1391 return false 1392 } 1393 1394 // Draft model speculation works by using the smaller model to generate 1395 // candidate tokens for speculative decoding. 1396 type SpeculativeDecodingSpec_DraftModelSpeculation struct { 1397 state protoimpl.MessageState 1398 sizeCache protoimpl.SizeCache 1399 unknownFields protoimpl.UnknownFields 1400 1401 // Required. The resource name of the draft model. 1402 DraftModel string `protobuf:"bytes,1,opt,name=draft_model,json=draftModel,proto3" json:"draft_model,omitempty"` 1403 } 1404 1405 func (x *SpeculativeDecodingSpec_DraftModelSpeculation) Reset() { 1406 *x = SpeculativeDecodingSpec_DraftModelSpeculation{} 1407 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[15] 1408 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1409 ms.StoreMessageInfo(mi) 1410 } 1411 1412 func (x *SpeculativeDecodingSpec_DraftModelSpeculation) String() string { 1413 return protoimpl.X.MessageStringOf(x) 1414 } 1415 1416 func (*SpeculativeDecodingSpec_DraftModelSpeculation) ProtoMessage() {} 1417 1418 func (x *SpeculativeDecodingSpec_DraftModelSpeculation) ProtoReflect() protoreflect.Message { 1419 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[15] 1420 if x != nil { 1421 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1422 if ms.LoadMessageInfo() == nil { 1423 ms.StoreMessageInfo(mi) 1424 } 1425 return ms 1426 } 1427 return mi.MessageOf(x) 1428 } 1429 1430 // Deprecated: Use SpeculativeDecodingSpec_DraftModelSpeculation.ProtoReflect.Descriptor instead. 1431 func (*SpeculativeDecodingSpec_DraftModelSpeculation) Descriptor() ([]byte, []int) { 1432 return file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescGZIP(), []int{9, 0} 1433 } 1434 1435 func (x *SpeculativeDecodingSpec_DraftModelSpeculation) GetDraftModel() string { 1436 if x != nil { 1437 return x.DraftModel 1438 } 1439 return "" 1440 } 1441 1442 // N-Gram speculation works by trying to find matching tokens in the 1443 // previous prompt sequence and use those as speculation for generating 1444 // new tokens. 1445 type SpeculativeDecodingSpec_NgramSpeculation struct { 1446 state protoimpl.MessageState 1447 sizeCache protoimpl.SizeCache 1448 unknownFields protoimpl.UnknownFields 1449 1450 // The number of last N input tokens used as ngram to search/match 1451 // against the previous prompt sequence. 1452 // This is equal to the N in N-Gram. 1453 // The default value is 3 if not specified. 1454 NgramSize int32 `protobuf:"varint,1,opt,name=ngram_size,json=ngramSize,proto3" json:"ngram_size,omitempty"` 1455 } 1456 1457 func (x *SpeculativeDecodingSpec_NgramSpeculation) Reset() { 1458 *x = SpeculativeDecodingSpec_NgramSpeculation{} 1459 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[16] 1460 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1461 ms.StoreMessageInfo(mi) 1462 } 1463 1464 func (x *SpeculativeDecodingSpec_NgramSpeculation) String() string { 1465 return protoimpl.X.MessageStringOf(x) 1466 } 1467 1468 func (*SpeculativeDecodingSpec_NgramSpeculation) ProtoMessage() {} 1469 1470 func (x *SpeculativeDecodingSpec_NgramSpeculation) ProtoReflect() protoreflect.Message { 1471 mi := &file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[16] 1472 if x != nil { 1473 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1474 if ms.LoadMessageInfo() == nil { 1475 ms.StoreMessageInfo(mi) 1476 } 1477 return ms 1478 } 1479 return mi.MessageOf(x) 1480 } 1481 1482 // Deprecated: Use SpeculativeDecodingSpec_NgramSpeculation.ProtoReflect.Descriptor instead. 1483 func (*SpeculativeDecodingSpec_NgramSpeculation) Descriptor() ([]byte, []int) { 1484 return file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescGZIP(), []int{9, 1} 1485 } 1486 1487 func (x *SpeculativeDecodingSpec_NgramSpeculation) GetNgramSize() int32 { 1488 if x != nil { 1489 return x.NgramSize 1490 } 1491 return 0 1492 } 1493 1494 var File_google_cloud_aiplatform_v1beta1_endpoint_proto protoreflect.FileDescriptor 1495 1496 var file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDesc = []byte{ 1497 0x0a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 1498 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 1499 0x31, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1500 0x12, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 1501 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 1502 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 1503 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 1504 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 1505 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x67, 1506 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 1507 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x65, 1508 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 1509 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 1510 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 1511 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 1512 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 1513 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1514 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1515 0x6f, 0x1a, 0x37, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 1516 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 1517 0x61, 0x31, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 1518 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x38, 0x67, 0x6f, 0x6f, 0x67, 1519 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 1520 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 1521 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x70, 1522 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 1523 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 1524 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 1525 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 1526 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe6, 0x0f, 0x0a, 0x08, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 1527 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 1528 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 1529 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 1530 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 1531 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 1532 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 1533 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5c, 0x0a, 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 1534 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 1535 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 1536 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 1537 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x42, 0x03, 1538 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 1539 0x65, 0x6c, 0x73, 0x12, 0x60, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x73, 1540 0x70, 0x6c, 0x69, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 1541 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 1542 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x64, 1543 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x70, 0x6c, 1544 0x69, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 1545 0x53, 0x70, 0x6c, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x06, 0x20, 1546 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x4d, 0x0a, 0x06, 0x6c, 0x61, 0x62, 1547 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1548 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 1549 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x64, 0x70, 1550 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 1551 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 1552 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 1553 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 1554 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 1555 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 1556 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 1557 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 1558 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 1559 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x58, 0x0a, 0x0f, 1560 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 1561 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1562 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 1563 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 1564 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 1565 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x40, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 1566 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x20, 0x0a, 1567 0x1e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 1568 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 1569 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x47, 0x0a, 0x1e, 0x65, 0x6e, 0x61, 0x62, 1570 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 1571 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 1572 0x42, 0x02, 0x18, 0x01, 0x52, 0x1b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x69, 0x76, 1573 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 1574 0x74, 0x12, 0x86, 0x01, 0x0a, 0x1e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 1575 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 1576 0x6e, 0x66, 0x69, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 1577 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 1578 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x69, 1579 0x76, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 1580 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1b, 0x70, 1581 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 1582 0x6e, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x85, 0x01, 0x0a, 0x1f, 0x6d, 1583 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 1584 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x0e, 1585 0x20, 0x01, 0x28, 0x09, 0x42, 0x3e, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x38, 0x0a, 0x36, 0x61, 0x69, 1586 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 1587 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x44, 0x65, 0x70, 1588 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 1589 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x1c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x44, 0x65, 0x70, 0x6c, 0x6f, 1590 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4a, 1591 0x6f, 0x62, 0x12, 0x9a, 0x01, 0x0a, 0x27, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x5f, 0x72, 1592 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 1593 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x12, 1594 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 1595 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 1596 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 1597 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4c, 0x6f, 0x67, 1598 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x23, 0x70, 0x72, 0x65, 0x64, 1599 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 1600 0x73, 0x65, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 1601 0x3c, 0x0a, 0x1a, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x64, 1602 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x18, 0x20, 1603 0x01, 0x28, 0x08, 0x52, 0x18, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6e, 1604 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x39, 0x0a, 1605 0x16, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 1606 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x6e, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 1607 0x41, 0x03, 0x52, 0x14, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x64, 1608 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x44, 0x6e, 0x73, 0x12, 0x71, 0x0a, 0x18, 0x63, 0x6c, 0x69, 0x65, 1609 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 1610 0x6e, 0x66, 0x69, 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 1611 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 1612 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x69, 1613 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 1614 0x66, 0x69, 0x67, 0x52, 0x16, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 1615 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x28, 0x0a, 0x0d, 0x73, 1616 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x5f, 0x70, 0x7a, 0x73, 0x18, 0x1b, 0x20, 0x01, 1617 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 1618 0x65, 0x73, 0x50, 0x7a, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 1619 0x65, 0x73, 0x5f, 0x70, 0x7a, 0x69, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 1620 0x03, 0x52, 0x0c, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x50, 0x7a, 0x69, 0x12, 1621 0x87, 0x01, 0x0a, 0x1f, 0x67, 0x65, 0x6e, 0x5f, 0x61, 0x69, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 1622 0x63, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 1623 0x66, 0x69, 0x67, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1624 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 1625 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x41, 1626 0x69, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 1627 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1b, 0x67, 0x65, 1628 0x6e, 0x41, 0x69, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 1629 0x72, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3f, 0x0a, 0x1c, 0x70, 0x72, 0x69, 1630 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 1631 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x52, 1632 0x19, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x65, 0x72, 1633 0x76, 0x65, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x3f, 0x0a, 0x11, 0x54, 0x72, 1634 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 1635 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 1636 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 1637 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 1638 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 1639 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 1640 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 1641 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0xb5, 0x01, 0xea, 0x41, 0xb1, 0x01, 0x0a, 0x22, 0x61, 1642 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1643 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 1644 0x74, 0x12, 0x3c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 1645 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 1646 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 1647 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x7d, 0x12, 1648 0x4d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 1649 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 1650 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 1651 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x7d, 0x2f, 1652 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x7d, 0x22, 0xa3, 1653 0x0e, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 1654 0x12, 0x66, 0x0a, 0x13, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 1655 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 1656 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 1657 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 1658 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 1659 0x65, 0x73, 0x48, 0x00, 0x52, 0x12, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 1660 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x66, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x6f, 1661 0x6d, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 1662 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1663 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 1664 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 1665 0x63, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x48, 0x00, 0x52, 0x12, 0x61, 0x75, 1666 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 1667 0x12, 0x62, 0x0a, 0x10, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 1668 0x72, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x42, 0x35, 0xfa, 0x41, 0x32, 0x0a, 1669 0x30, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1670 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x70, 0x6c, 0x6f, 1671 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, 1672 0x6c, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 1673 0x72, 0x63, 0x65, 0x73, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 1674 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 1675 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x61, 1676 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1677 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 1678 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x2d, 0x0a, 0x10, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x76, 1679 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x42, 1680 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 1681 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 1682 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 1683 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 1684 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 1685 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 1686 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 1687 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x5b, 0x0a, 0x10, 0x65, 0x78, 0x70, 1688 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x09, 0x20, 1689 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 1690 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 1691 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 1692 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 1693 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x31, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 1694 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x13, 1695 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x70, 1696 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 1697 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 1698 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 1699 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 1700 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x0c, 1701 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 1702 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x3a, 0x0a, 0x19, 1703 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 1704 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 1705 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 1706 0x72, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x6e, 0x61, 0x62, 1707 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 1708 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 1709 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x63, 0x0a, 0x11, 1710 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 1711 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1712 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 1713 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 1714 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 1715 0x10, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 1716 0x73, 0x12, 0x71, 0x0a, 0x18, 0x66, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, 0x6c, 1717 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x17, 0x20, 1718 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 1719 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 1720 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x61, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, 1721 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x16, 0x66, 0x61, 1722 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 1723 0x6e, 0x66, 0x69, 0x67, 0x12, 0x58, 0x0a, 0x0f, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, 1724 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 1725 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 1726 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 1727 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0e, 1728 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x52, 1729 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 1730 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 1731 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 1732 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x53, 1733 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 1734 0x75, 0x73, 0x12, 0x65, 0x0a, 0x0d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 1735 0x65, 0x6c, 0x73, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1736 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 1737 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 1738 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 1739 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x73, 0x79, 0x73, 1740 0x74, 0x65, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, 0x65, 1741 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 1742 0x52, 0x0c, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x79, 1743 0x0a, 0x19, 0x73, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 1744 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x1e, 0x20, 0x01, 0x28, 1745 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1746 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 1747 0x74, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x44, 1748 0x65, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 1749 0x52, 0x17, 0x73, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x63, 1750 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x1a, 0xaf, 0x01, 0x0a, 0x06, 0x53, 0x74, 1751 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 1752 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 1753 0x61, 0x67, 0x65, 0x12, 0x49, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 1754 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 1755 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 1756 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 1757 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 1758 0x0a, 0x17, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6c, 1759 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 1760 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 1761 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x3f, 0x0a, 0x11, 0x53, 1762 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 1763 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 1764 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 1765 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x16, 0x0a, 0x14, 1766 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 1767 0x72, 0x63, 0x65, 0x73, 0x22, 0xd1, 0x01, 0x0a, 0x10, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 1768 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x70, 0x72, 0x65, 1769 0x64, 0x69, 0x63, 0x74, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 1770 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 1771 0x74, 0x48, 0x74, 0x74, 0x70, 0x55, 0x72, 0x69, 0x12, 0x2d, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x6c, 1772 0x61, 0x69, 0x6e, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 1773 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 1774 0x48, 0x74, 0x74, 0x70, 0x55, 0x72, 0x69, 0x12, 0x2b, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x6c, 0x74, 1775 0x68, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 1776 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x48, 0x74, 0x74, 1777 0x70, 0x55, 0x72, 0x69, 0x12, 0x32, 0x0a, 0x12, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 1778 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 1779 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x74, 1780 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xd8, 0x02, 0x0a, 0x23, 0x50, 0x72, 0x65, 1781 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 1782 0x6e, 0x73, 0x65, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 1783 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 1784 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x61, 1785 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 1786 0x01, 0x52, 0x0c, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x12, 1787 0x67, 0x0a, 0x14, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x64, 0x65, 0x73, 0x74, 1788 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 1789 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 1790 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 1791 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 1792 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 1793 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x27, 0x72, 0x65, 0x71, 0x75, 1794 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 1795 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x76, 0x65, 0x72, 0x73, 1796 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x23, 1797 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4c, 1798 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x56, 0x65, 0x72, 0x73, 1799 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x74, 1800 0x65, 0x6c, 0x5f, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 1801 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x74, 0x65, 0x6c, 0x4c, 0x6f, 0x67, 0x67, 1802 0x69, 0x6e, 0x67, 0x22, 0x83, 0x01, 0x0a, 0x14, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 1803 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x6b, 0x0a, 0x0e, 1804 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 1805 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 1806 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 1807 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 1808 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4c, 0x6f, 0x67, 1809 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x67, 1810 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x60, 0x0a, 0x16, 0x43, 0x6c, 0x69, 1811 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 1812 0x66, 0x69, 0x67, 0x12, 0x46, 0x0a, 0x11, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 1813 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 1814 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 1815 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x69, 0x6e, 0x66, 0x65, 0x72, 1816 0x65, 0x6e, 0x63, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x48, 0x0a, 0x16, 0x46, 1817 0x61, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 1818 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 1819 0x79, 0x6f, 0x75, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 1820 0x28, 0x08, 0x52, 0x11, 0x66, 0x61, 0x73, 0x74, 0x54, 0x72, 0x79, 0x6f, 0x75, 0x74, 0x45, 0x6e, 1821 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xf6, 0x02, 0x0a, 0x0e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 1822 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 1823 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6c, 1824 0x69, 0x63, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x16, 0x6d, 0x61, 1825 0x78, 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 1826 0x69, 0x63, 0x61, 0x73, 0x12, 0x3e, 0x0a, 0x1a, 0x6d, 0x61, 0x78, 0x5f, 0x75, 0x6e, 0x61, 0x76, 1827 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 1828 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x18, 0x6d, 0x61, 0x78, 0x55, 1829 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 1830 0x74, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, 0x72, 0x67, 1831 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 1832 0x48, 0x01, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x53, 0x75, 0x72, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6c, 1833 0x69, 0x63, 0x61, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, 0x72, 0x67, 1834 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 1835 0x28, 0x05, 0x48, 0x01, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x53, 0x75, 0x72, 0x67, 0x65, 0x50, 0x65, 1836 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x70, 0x72, 0x65, 0x76, 1837 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 1838 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x70, 0x72, 0x65, 0x76, 0x69, 1839 0x6f, 0x75, 0x73, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 1840 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 1841 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 1842 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x11, 1843 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 1844 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, 0x72, 0x67, 0x65, 0x22, 0xb0, 1845 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x6e, 0x41, 0x69, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 1846 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x65, 1847 0x0a, 0x0a, 0x72, 0x61, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 1848 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1849 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 1850 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x41, 0x69, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 1851 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 1852 0x2e, 0x52, 0x61, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x72, 0x61, 0x67, 0x43, 1853 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x2a, 0x0a, 0x09, 0x52, 0x61, 0x67, 0x43, 0x6f, 0x6e, 0x66, 1854 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x67, 1855 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x61, 1856 0x67, 0x22, 0xfb, 0x03, 0x0a, 0x17, 0x53, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 1857 0x65, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x88, 0x01, 1858 0x0a, 0x17, 0x64, 0x72, 0x61, 0x66, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x70, 1859 0x65, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 1860 0x4e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 1861 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 1862 0x31, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x63, 1863 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x72, 0x61, 0x66, 0x74, 0x4d, 1864 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 1865 0x00, 0x52, 0x15, 0x64, 0x72, 0x61, 0x66, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x70, 0x65, 1866 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x78, 0x0a, 0x11, 0x6e, 0x67, 0x72, 0x61, 1867 0x6d, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 1868 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 1869 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 1870 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 1871 0x65, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4e, 0x67, 1872 0x72, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 1873 0x52, 0x10, 0x6e, 0x67, 0x72, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 1874 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 1875 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 1876 0x01, 0x28, 0x05, 0x52, 0x15, 0x73, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 1877 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x61, 0x0a, 0x15, 0x44, 0x72, 1878 0x61, 0x66, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x74, 1879 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x0b, 0x64, 0x72, 0x61, 0x66, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 1880 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 1881 0x0a, 0x1f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 1882 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 1883 0x6c, 0x52, 0x0a, 0x64, 0x72, 0x61, 0x66, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x1a, 0x31, 0x0a, 1884 0x10, 0x4e, 0x67, 0x72, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 1885 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 1886 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6e, 0x67, 0x72, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 1887 0x42, 0x0d, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 1888 0xe4, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1889 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 1890 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0d, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 1891 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 1892 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 1893 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 1894 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 1895 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 1896 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 1897 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 1898 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 1899 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 1900 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 1901 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 1902 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 1903 } 1904 1905 var ( 1906 file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescOnce sync.Once 1907 file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescData = file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDesc 1908 ) 1909 1910 func file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescGZIP() []byte { 1911 file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescOnce.Do(func() { 1912 file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescData) 1913 }) 1914 return file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDescData 1915 } 1916 1917 var file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes = make([]protoimpl.MessageInfo, 17) 1918 var file_google_cloud_aiplatform_v1beta1_endpoint_proto_goTypes = []any{ 1919 (*Endpoint)(nil), // 0: google.cloud.aiplatform.v1beta1.Endpoint 1920 (*DeployedModel)(nil), // 1: google.cloud.aiplatform.v1beta1.DeployedModel 1921 (*PrivateEndpoints)(nil), // 2: google.cloud.aiplatform.v1beta1.PrivateEndpoints 1922 (*PredictRequestResponseLoggingConfig)(nil), // 3: google.cloud.aiplatform.v1beta1.PredictRequestResponseLoggingConfig 1923 (*PublisherModelConfig)(nil), // 4: google.cloud.aiplatform.v1beta1.PublisherModelConfig 1924 (*ClientConnectionConfig)(nil), // 5: google.cloud.aiplatform.v1beta1.ClientConnectionConfig 1925 (*FasterDeploymentConfig)(nil), // 6: google.cloud.aiplatform.v1beta1.FasterDeploymentConfig 1926 (*RolloutOptions)(nil), // 7: google.cloud.aiplatform.v1beta1.RolloutOptions 1927 (*GenAiAdvancedFeaturesConfig)(nil), // 8: google.cloud.aiplatform.v1beta1.GenAiAdvancedFeaturesConfig 1928 (*SpeculativeDecodingSpec)(nil), // 9: google.cloud.aiplatform.v1beta1.SpeculativeDecodingSpec 1929 nil, // 10: google.cloud.aiplatform.v1beta1.Endpoint.TrafficSplitEntry 1930 nil, // 11: google.cloud.aiplatform.v1beta1.Endpoint.LabelsEntry 1931 (*DeployedModel_Status)(nil), // 12: google.cloud.aiplatform.v1beta1.DeployedModel.Status 1932 nil, // 13: google.cloud.aiplatform.v1beta1.DeployedModel.SystemLabelsEntry 1933 (*GenAiAdvancedFeaturesConfig_RagConfig)(nil), // 14: google.cloud.aiplatform.v1beta1.GenAiAdvancedFeaturesConfig.RagConfig 1934 (*SpeculativeDecodingSpec_DraftModelSpeculation)(nil), // 15: google.cloud.aiplatform.v1beta1.SpeculativeDecodingSpec.DraftModelSpeculation 1935 (*SpeculativeDecodingSpec_NgramSpeculation)(nil), // 16: google.cloud.aiplatform.v1beta1.SpeculativeDecodingSpec.NgramSpeculation 1936 (*timestamppb.Timestamp)(nil), // 17: google.protobuf.Timestamp 1937 (*EncryptionSpec)(nil), // 18: google.cloud.aiplatform.v1beta1.EncryptionSpec 1938 (*PrivateServiceConnectConfig)(nil), // 19: google.cloud.aiplatform.v1beta1.PrivateServiceConnectConfig 1939 (*DedicatedResources)(nil), // 20: google.cloud.aiplatform.v1beta1.DedicatedResources 1940 (*AutomaticResources)(nil), // 21: google.cloud.aiplatform.v1beta1.AutomaticResources 1941 (*ExplanationSpec)(nil), // 22: google.cloud.aiplatform.v1beta1.ExplanationSpec 1942 (*BigQueryDestination)(nil), // 23: google.cloud.aiplatform.v1beta1.BigQueryDestination 1943 (*durationpb.Duration)(nil), // 24: google.protobuf.Duration 1944 } 1945 var file_google_cloud_aiplatform_v1beta1_endpoint_proto_depIdxs = []int32{ 1946 1, // 0: google.cloud.aiplatform.v1beta1.Endpoint.deployed_models:type_name -> google.cloud.aiplatform.v1beta1.DeployedModel 1947 10, // 1: google.cloud.aiplatform.v1beta1.Endpoint.traffic_split:type_name -> google.cloud.aiplatform.v1beta1.Endpoint.TrafficSplitEntry 1948 11, // 2: google.cloud.aiplatform.v1beta1.Endpoint.labels:type_name -> google.cloud.aiplatform.v1beta1.Endpoint.LabelsEntry 1949 17, // 3: google.cloud.aiplatform.v1beta1.Endpoint.create_time:type_name -> google.protobuf.Timestamp 1950 17, // 4: google.cloud.aiplatform.v1beta1.Endpoint.update_time:type_name -> google.protobuf.Timestamp 1951 18, // 5: google.cloud.aiplatform.v1beta1.Endpoint.encryption_spec:type_name -> google.cloud.aiplatform.v1beta1.EncryptionSpec 1952 19, // 6: google.cloud.aiplatform.v1beta1.Endpoint.private_service_connect_config:type_name -> google.cloud.aiplatform.v1beta1.PrivateServiceConnectConfig 1953 3, // 7: google.cloud.aiplatform.v1beta1.Endpoint.predict_request_response_logging_config:type_name -> google.cloud.aiplatform.v1beta1.PredictRequestResponseLoggingConfig 1954 5, // 8: google.cloud.aiplatform.v1beta1.Endpoint.client_connection_config:type_name -> google.cloud.aiplatform.v1beta1.ClientConnectionConfig 1955 8, // 9: google.cloud.aiplatform.v1beta1.Endpoint.gen_ai_advanced_features_config:type_name -> google.cloud.aiplatform.v1beta1.GenAiAdvancedFeaturesConfig 1956 20, // 10: google.cloud.aiplatform.v1beta1.DeployedModel.dedicated_resources:type_name -> google.cloud.aiplatform.v1beta1.DedicatedResources 1957 21, // 11: google.cloud.aiplatform.v1beta1.DeployedModel.automatic_resources:type_name -> google.cloud.aiplatform.v1beta1.AutomaticResources 1958 17, // 12: google.cloud.aiplatform.v1beta1.DeployedModel.create_time:type_name -> google.protobuf.Timestamp 1959 22, // 13: google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec:type_name -> google.cloud.aiplatform.v1beta1.ExplanationSpec 1960 2, // 14: google.cloud.aiplatform.v1beta1.DeployedModel.private_endpoints:type_name -> google.cloud.aiplatform.v1beta1.PrivateEndpoints 1961 6, // 15: google.cloud.aiplatform.v1beta1.DeployedModel.faster_deployment_config:type_name -> google.cloud.aiplatform.v1beta1.FasterDeploymentConfig 1962 7, // 16: google.cloud.aiplatform.v1beta1.DeployedModel.rollout_options:type_name -> google.cloud.aiplatform.v1beta1.RolloutOptions 1963 12, // 17: google.cloud.aiplatform.v1beta1.DeployedModel.status:type_name -> google.cloud.aiplatform.v1beta1.DeployedModel.Status 1964 13, // 18: google.cloud.aiplatform.v1beta1.DeployedModel.system_labels:type_name -> google.cloud.aiplatform.v1beta1.DeployedModel.SystemLabelsEntry 1965 9, // 19: google.cloud.aiplatform.v1beta1.DeployedModel.speculative_decoding_spec:type_name -> google.cloud.aiplatform.v1beta1.SpeculativeDecodingSpec 1966 23, // 20: google.cloud.aiplatform.v1beta1.PredictRequestResponseLoggingConfig.bigquery_destination:type_name -> google.cloud.aiplatform.v1beta1.BigQueryDestination 1967 3, // 21: google.cloud.aiplatform.v1beta1.PublisherModelConfig.logging_config:type_name -> google.cloud.aiplatform.v1beta1.PredictRequestResponseLoggingConfig 1968 24, // 22: google.cloud.aiplatform.v1beta1.ClientConnectionConfig.inference_timeout:type_name -> google.protobuf.Duration 1969 14, // 23: google.cloud.aiplatform.v1beta1.GenAiAdvancedFeaturesConfig.rag_config:type_name -> google.cloud.aiplatform.v1beta1.GenAiAdvancedFeaturesConfig.RagConfig 1970 15, // 24: google.cloud.aiplatform.v1beta1.SpeculativeDecodingSpec.draft_model_speculation:type_name -> google.cloud.aiplatform.v1beta1.SpeculativeDecodingSpec.DraftModelSpeculation 1971 16, // 25: google.cloud.aiplatform.v1beta1.SpeculativeDecodingSpec.ngram_speculation:type_name -> google.cloud.aiplatform.v1beta1.SpeculativeDecodingSpec.NgramSpeculation 1972 17, // 26: google.cloud.aiplatform.v1beta1.DeployedModel.Status.last_update_time:type_name -> google.protobuf.Timestamp 1973 27, // [27:27] is the sub-list for method output_type 1974 27, // [27:27] is the sub-list for method input_type 1975 27, // [27:27] is the sub-list for extension type_name 1976 27, // [27:27] is the sub-list for extension extendee 1977 0, // [0:27] is the sub-list for field type_name 1978 } 1979 1980 func init() { file_google_cloud_aiplatform_v1beta1_endpoint_proto_init() } 1981 func file_google_cloud_aiplatform_v1beta1_endpoint_proto_init() { 1982 if File_google_cloud_aiplatform_v1beta1_endpoint_proto != nil { 1983 return 1984 } 1985 file_google_cloud_aiplatform_v1beta1_encryption_spec_proto_init() 1986 file_google_cloud_aiplatform_v1beta1_explanation_proto_init() 1987 file_google_cloud_aiplatform_v1beta1_io_proto_init() 1988 file_google_cloud_aiplatform_v1beta1_machine_resources_proto_init() 1989 file_google_cloud_aiplatform_v1beta1_service_networking_proto_init() 1990 file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[1].OneofWrappers = []any{ 1991 (*DeployedModel_DedicatedResources)(nil), 1992 (*DeployedModel_AutomaticResources)(nil), 1993 (*DeployedModel_SharedResources)(nil), 1994 } 1995 file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[7].OneofWrappers = []any{ 1996 (*RolloutOptions_MaxUnavailableReplicas)(nil), 1997 (*RolloutOptions_MaxUnavailablePercentage)(nil), 1998 (*RolloutOptions_MaxSurgeReplicas)(nil), 1999 (*RolloutOptions_MaxSurgePercentage)(nil), 2000 } 2001 file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes[9].OneofWrappers = []any{ 2002 (*SpeculativeDecodingSpec_DraftModelSpeculation_)(nil), 2003 (*SpeculativeDecodingSpec_NgramSpeculation_)(nil), 2004 } 2005 type x struct{} 2006 out := protoimpl.TypeBuilder{ 2007 File: protoimpl.DescBuilder{ 2008 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 2009 RawDescriptor: file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDesc, 2010 NumEnums: 0, 2011 NumMessages: 17, 2012 NumExtensions: 0, 2013 NumServices: 0, 2014 }, 2015 GoTypes: file_google_cloud_aiplatform_v1beta1_endpoint_proto_goTypes, 2016 DependencyIndexes: file_google_cloud_aiplatform_v1beta1_endpoint_proto_depIdxs, 2017 MessageInfos: file_google_cloud_aiplatform_v1beta1_endpoint_proto_msgTypes, 2018 }.Build() 2019 File_google_cloud_aiplatform_v1beta1_endpoint_proto = out.File 2020 file_google_cloud_aiplatform_v1beta1_endpoint_proto_rawDesc = nil 2021 file_google_cloud_aiplatform_v1beta1_endpoint_proto_goTypes = nil 2022 file_google_cloud_aiplatform_v1beta1_endpoint_proto_depIdxs = nil 2023 }