cloud.google.com/go/aiplatform@v1.106.0/apiv1beta1/aiplatformpb/prediction_service.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/prediction_service.proto 20 21 package aiplatformpb 22 23 import ( 24 _ "google.golang.org/genproto/googleapis/api/annotations" 25 httpbody "google.golang.org/genproto/googleapis/api/httpbody" 26 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 27 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 28 structpb "google.golang.org/protobuf/types/known/structpb" 29 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 30 reflect "reflect" 31 sync "sync" 32 ) 33 34 const ( 35 // Verify that this generated code is sufficiently up-to-date. 36 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 37 // Verify that runtime/protoimpl is sufficiently up-to-date. 38 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 39 ) 40 41 // Blocked reason enumeration. 42 type GenerateContentResponse_PromptFeedback_BlockedReason int32 43 44 const ( 45 // Unspecified blocked reason. 46 GenerateContentResponse_PromptFeedback_BLOCKED_REASON_UNSPECIFIED GenerateContentResponse_PromptFeedback_BlockedReason = 0 47 // Candidates blocked due to safety. 48 GenerateContentResponse_PromptFeedback_SAFETY GenerateContentResponse_PromptFeedback_BlockedReason = 1 49 // Candidates blocked due to other reason. 50 GenerateContentResponse_PromptFeedback_OTHER GenerateContentResponse_PromptFeedback_BlockedReason = 2 51 // Candidates blocked due to the terms which are included from the 52 // terminology blocklist. 53 GenerateContentResponse_PromptFeedback_BLOCKLIST GenerateContentResponse_PromptFeedback_BlockedReason = 3 54 // Candidates blocked due to prohibited content. 55 GenerateContentResponse_PromptFeedback_PROHIBITED_CONTENT GenerateContentResponse_PromptFeedback_BlockedReason = 4 56 // The user prompt was blocked by Model Armor. 57 GenerateContentResponse_PromptFeedback_MODEL_ARMOR GenerateContentResponse_PromptFeedback_BlockedReason = 5 58 ) 59 60 // Enum value maps for GenerateContentResponse_PromptFeedback_BlockedReason. 61 var ( 62 GenerateContentResponse_PromptFeedback_BlockedReason_name = map[int32]string{ 63 0: "BLOCKED_REASON_UNSPECIFIED", 64 1: "SAFETY", 65 2: "OTHER", 66 3: "BLOCKLIST", 67 4: "PROHIBITED_CONTENT", 68 5: "MODEL_ARMOR", 69 } 70 GenerateContentResponse_PromptFeedback_BlockedReason_value = map[string]int32{ 71 "BLOCKED_REASON_UNSPECIFIED": 0, 72 "SAFETY": 1, 73 "OTHER": 2, 74 "BLOCKLIST": 3, 75 "PROHIBITED_CONTENT": 4, 76 "MODEL_ARMOR": 5, 77 } 78 ) 79 80 func (x GenerateContentResponse_PromptFeedback_BlockedReason) Enum() *GenerateContentResponse_PromptFeedback_BlockedReason { 81 p := new(GenerateContentResponse_PromptFeedback_BlockedReason) 82 *p = x 83 return p 84 } 85 86 func (x GenerateContentResponse_PromptFeedback_BlockedReason) String() string { 87 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 88 } 89 90 func (GenerateContentResponse_PromptFeedback_BlockedReason) Descriptor() protoreflect.EnumDescriptor { 91 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_enumTypes[0].Descriptor() 92 } 93 94 func (GenerateContentResponse_PromptFeedback_BlockedReason) Type() protoreflect.EnumType { 95 return &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_enumTypes[0] 96 } 97 98 func (x GenerateContentResponse_PromptFeedback_BlockedReason) Number() protoreflect.EnumNumber { 99 return protoreflect.EnumNumber(x) 100 } 101 102 // Deprecated: Use GenerateContentResponse_PromptFeedback_BlockedReason.Descriptor instead. 103 func (GenerateContentResponse_PromptFeedback_BlockedReason) EnumDescriptor() ([]byte, []int) { 104 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{21, 0, 0} 105 } 106 107 // Request message for 108 // [PredictionService.Predict][google.cloud.aiplatform.v1beta1.PredictionService.Predict]. 109 type PredictRequest struct { 110 state protoimpl.MessageState 111 sizeCache protoimpl.SizeCache 112 unknownFields protoimpl.UnknownFields 113 114 // Required. The name of the Endpoint requested to serve the prediction. 115 // Format: 116 // `projects/{project}/locations/{location}/endpoints/{endpoint}` 117 Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` 118 // Required. The instances that are the input to the prediction call. 119 // A DeployedModel may have an upper limit on the number of instances it 120 // supports per request, and when it is exceeded the prediction call errors 121 // in case of AutoML Models, or, in case of customer created Models, the 122 // behaviour is as documented by that Model. 123 // The schema of any single instance may be specified via Endpoint's 124 // DeployedModels' 125 // [Model's][google.cloud.aiplatform.v1beta1.DeployedModel.model] 126 // [PredictSchemata's][google.cloud.aiplatform.v1beta1.Model.predict_schemata] 127 // [instance_schema_uri][google.cloud.aiplatform.v1beta1.PredictSchemata.instance_schema_uri]. 128 Instances []*structpb.Value `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` 129 // The parameters that govern the prediction. The schema of the parameters may 130 // be specified via Endpoint's DeployedModels' [Model's 131 // ][google.cloud.aiplatform.v1beta1.DeployedModel.model] 132 // [PredictSchemata's][google.cloud.aiplatform.v1beta1.Model.predict_schemata] 133 // [parameters_schema_uri][google.cloud.aiplatform.v1beta1.PredictSchemata.parameters_schema_uri]. 134 Parameters *structpb.Value `protobuf:"bytes,3,opt,name=parameters,proto3" json:"parameters,omitempty"` 135 // Optional. The user labels for Imagen billing usage only. Only Imagen 136 // supports labels. For other use cases, it will be ignored. 137 Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 138 } 139 140 func (x *PredictRequest) Reset() { 141 *x = PredictRequest{} 142 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[0] 143 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 144 ms.StoreMessageInfo(mi) 145 } 146 147 func (x *PredictRequest) String() string { 148 return protoimpl.X.MessageStringOf(x) 149 } 150 151 func (*PredictRequest) ProtoMessage() {} 152 153 func (x *PredictRequest) ProtoReflect() protoreflect.Message { 154 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[0] 155 if x != nil { 156 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 157 if ms.LoadMessageInfo() == nil { 158 ms.StoreMessageInfo(mi) 159 } 160 return ms 161 } 162 return mi.MessageOf(x) 163 } 164 165 // Deprecated: Use PredictRequest.ProtoReflect.Descriptor instead. 166 func (*PredictRequest) Descriptor() ([]byte, []int) { 167 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{0} 168 } 169 170 func (x *PredictRequest) GetEndpoint() string { 171 if x != nil { 172 return x.Endpoint 173 } 174 return "" 175 } 176 177 func (x *PredictRequest) GetInstances() []*structpb.Value { 178 if x != nil { 179 return x.Instances 180 } 181 return nil 182 } 183 184 func (x *PredictRequest) GetParameters() *structpb.Value { 185 if x != nil { 186 return x.Parameters 187 } 188 return nil 189 } 190 191 func (x *PredictRequest) GetLabels() map[string]string { 192 if x != nil { 193 return x.Labels 194 } 195 return nil 196 } 197 198 // Response message for 199 // [PredictionService.Predict][google.cloud.aiplatform.v1beta1.PredictionService.Predict]. 200 type PredictResponse struct { 201 state protoimpl.MessageState 202 sizeCache protoimpl.SizeCache 203 unknownFields protoimpl.UnknownFields 204 205 // The predictions that are the output of the predictions call. 206 // The schema of any single prediction may be specified via Endpoint's 207 // DeployedModels' [Model's 208 // ][google.cloud.aiplatform.v1beta1.DeployedModel.model] 209 // [PredictSchemata's][google.cloud.aiplatform.v1beta1.Model.predict_schemata] 210 // [prediction_schema_uri][google.cloud.aiplatform.v1beta1.PredictSchemata.prediction_schema_uri]. 211 Predictions []*structpb.Value `protobuf:"bytes,1,rep,name=predictions,proto3" json:"predictions,omitempty"` 212 // ID of the Endpoint's DeployedModel that served this prediction. 213 DeployedModelId string `protobuf:"bytes,2,opt,name=deployed_model_id,json=deployedModelId,proto3" json:"deployed_model_id,omitempty"` 214 // Output only. The resource name of the Model which is deployed as the 215 // DeployedModel that this prediction hits. 216 Model string `protobuf:"bytes,3,opt,name=model,proto3" json:"model,omitempty"` 217 // Output only. The version ID of the Model which is deployed as the 218 // DeployedModel that this prediction hits. 219 ModelVersionId string `protobuf:"bytes,5,opt,name=model_version_id,json=modelVersionId,proto3" json:"model_version_id,omitempty"` 220 // Output only. The [display 221 // name][google.cloud.aiplatform.v1beta1.Model.display_name] of the Model 222 // which is deployed as the DeployedModel that this prediction hits. 223 ModelDisplayName string `protobuf:"bytes,4,opt,name=model_display_name,json=modelDisplayName,proto3" json:"model_display_name,omitempty"` 224 // Output only. Request-level metadata returned by the model. The metadata 225 // type will be dependent upon the model implementation. 226 Metadata *structpb.Value `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` 227 } 228 229 func (x *PredictResponse) Reset() { 230 *x = PredictResponse{} 231 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[1] 232 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 233 ms.StoreMessageInfo(mi) 234 } 235 236 func (x *PredictResponse) String() string { 237 return protoimpl.X.MessageStringOf(x) 238 } 239 240 func (*PredictResponse) ProtoMessage() {} 241 242 func (x *PredictResponse) ProtoReflect() protoreflect.Message { 243 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[1] 244 if x != nil { 245 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 246 if ms.LoadMessageInfo() == nil { 247 ms.StoreMessageInfo(mi) 248 } 249 return ms 250 } 251 return mi.MessageOf(x) 252 } 253 254 // Deprecated: Use PredictResponse.ProtoReflect.Descriptor instead. 255 func (*PredictResponse) Descriptor() ([]byte, []int) { 256 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{1} 257 } 258 259 func (x *PredictResponse) GetPredictions() []*structpb.Value { 260 if x != nil { 261 return x.Predictions 262 } 263 return nil 264 } 265 266 func (x *PredictResponse) GetDeployedModelId() string { 267 if x != nil { 268 return x.DeployedModelId 269 } 270 return "" 271 } 272 273 func (x *PredictResponse) GetModel() string { 274 if x != nil { 275 return x.Model 276 } 277 return "" 278 } 279 280 func (x *PredictResponse) GetModelVersionId() string { 281 if x != nil { 282 return x.ModelVersionId 283 } 284 return "" 285 } 286 287 func (x *PredictResponse) GetModelDisplayName() string { 288 if x != nil { 289 return x.ModelDisplayName 290 } 291 return "" 292 } 293 294 func (x *PredictResponse) GetMetadata() *structpb.Value { 295 if x != nil { 296 return x.Metadata 297 } 298 return nil 299 } 300 301 // Request message for 302 // [PredictionService.RawPredict][google.cloud.aiplatform.v1beta1.PredictionService.RawPredict]. 303 type RawPredictRequest struct { 304 state protoimpl.MessageState 305 sizeCache protoimpl.SizeCache 306 unknownFields protoimpl.UnknownFields 307 308 // Required. The name of the Endpoint requested to serve the prediction. 309 // Format: 310 // `projects/{project}/locations/{location}/endpoints/{endpoint}` 311 Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` 312 // The prediction input. Supports HTTP headers and arbitrary data payload. 313 // 314 // A [DeployedModel][google.cloud.aiplatform.v1beta1.DeployedModel] may have 315 // an upper limit on the number of instances it supports per request. When 316 // this limit it is exceeded for an AutoML model, the 317 // [RawPredict][google.cloud.aiplatform.v1beta1.PredictionService.RawPredict] 318 // method returns an error. When this limit is exceeded for a custom-trained 319 // model, the behavior varies depending on the model. 320 // 321 // You can specify the schema for each instance in the 322 // [predict_schemata.instance_schema_uri][google.cloud.aiplatform.v1beta1.PredictSchemata.instance_schema_uri] 323 // field when you create a [Model][google.cloud.aiplatform.v1beta1.Model]. 324 // This schema applies when you deploy the `Model` as a `DeployedModel` to an 325 // [Endpoint][google.cloud.aiplatform.v1beta1.Endpoint] and use the 326 // `RawPredict` method. 327 HttpBody *httpbody.HttpBody `protobuf:"bytes,2,opt,name=http_body,json=httpBody,proto3" json:"http_body,omitempty"` 328 } 329 330 func (x *RawPredictRequest) Reset() { 331 *x = RawPredictRequest{} 332 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[2] 333 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 334 ms.StoreMessageInfo(mi) 335 } 336 337 func (x *RawPredictRequest) String() string { 338 return protoimpl.X.MessageStringOf(x) 339 } 340 341 func (*RawPredictRequest) ProtoMessage() {} 342 343 func (x *RawPredictRequest) ProtoReflect() protoreflect.Message { 344 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[2] 345 if x != nil { 346 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 347 if ms.LoadMessageInfo() == nil { 348 ms.StoreMessageInfo(mi) 349 } 350 return ms 351 } 352 return mi.MessageOf(x) 353 } 354 355 // Deprecated: Use RawPredictRequest.ProtoReflect.Descriptor instead. 356 func (*RawPredictRequest) Descriptor() ([]byte, []int) { 357 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{2} 358 } 359 360 func (x *RawPredictRequest) GetEndpoint() string { 361 if x != nil { 362 return x.Endpoint 363 } 364 return "" 365 } 366 367 func (x *RawPredictRequest) GetHttpBody() *httpbody.HttpBody { 368 if x != nil { 369 return x.HttpBody 370 } 371 return nil 372 } 373 374 // Request message for 375 // [PredictionService.StreamRawPredict][google.cloud.aiplatform.v1beta1.PredictionService.StreamRawPredict]. 376 type StreamRawPredictRequest struct { 377 state protoimpl.MessageState 378 sizeCache protoimpl.SizeCache 379 unknownFields protoimpl.UnknownFields 380 381 // Required. The name of the Endpoint requested to serve the prediction. 382 // Format: 383 // `projects/{project}/locations/{location}/endpoints/{endpoint}` 384 Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` 385 // The prediction input. Supports HTTP headers and arbitrary data payload. 386 HttpBody *httpbody.HttpBody `protobuf:"bytes,2,opt,name=http_body,json=httpBody,proto3" json:"http_body,omitempty"` 387 } 388 389 func (x *StreamRawPredictRequest) Reset() { 390 *x = StreamRawPredictRequest{} 391 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[3] 392 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 393 ms.StoreMessageInfo(mi) 394 } 395 396 func (x *StreamRawPredictRequest) String() string { 397 return protoimpl.X.MessageStringOf(x) 398 } 399 400 func (*StreamRawPredictRequest) ProtoMessage() {} 401 402 func (x *StreamRawPredictRequest) ProtoReflect() protoreflect.Message { 403 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[3] 404 if x != nil { 405 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 406 if ms.LoadMessageInfo() == nil { 407 ms.StoreMessageInfo(mi) 408 } 409 return ms 410 } 411 return mi.MessageOf(x) 412 } 413 414 // Deprecated: Use StreamRawPredictRequest.ProtoReflect.Descriptor instead. 415 func (*StreamRawPredictRequest) Descriptor() ([]byte, []int) { 416 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{3} 417 } 418 419 func (x *StreamRawPredictRequest) GetEndpoint() string { 420 if x != nil { 421 return x.Endpoint 422 } 423 return "" 424 } 425 426 func (x *StreamRawPredictRequest) GetHttpBody() *httpbody.HttpBody { 427 if x != nil { 428 return x.HttpBody 429 } 430 return nil 431 } 432 433 // Request message for 434 // [PredictionService.DirectPredict][google.cloud.aiplatform.v1beta1.PredictionService.DirectPredict]. 435 type DirectPredictRequest struct { 436 state protoimpl.MessageState 437 sizeCache protoimpl.SizeCache 438 unknownFields protoimpl.UnknownFields 439 440 // Required. The name of the Endpoint requested to serve the prediction. 441 // Format: 442 // `projects/{project}/locations/{location}/endpoints/{endpoint}` 443 Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` 444 // The prediction input. 445 Inputs []*Tensor `protobuf:"bytes,2,rep,name=inputs,proto3" json:"inputs,omitempty"` 446 // The parameters that govern the prediction. 447 Parameters *Tensor `protobuf:"bytes,3,opt,name=parameters,proto3" json:"parameters,omitempty"` 448 } 449 450 func (x *DirectPredictRequest) Reset() { 451 *x = DirectPredictRequest{} 452 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[4] 453 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 454 ms.StoreMessageInfo(mi) 455 } 456 457 func (x *DirectPredictRequest) String() string { 458 return protoimpl.X.MessageStringOf(x) 459 } 460 461 func (*DirectPredictRequest) ProtoMessage() {} 462 463 func (x *DirectPredictRequest) ProtoReflect() protoreflect.Message { 464 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[4] 465 if x != nil { 466 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 467 if ms.LoadMessageInfo() == nil { 468 ms.StoreMessageInfo(mi) 469 } 470 return ms 471 } 472 return mi.MessageOf(x) 473 } 474 475 // Deprecated: Use DirectPredictRequest.ProtoReflect.Descriptor instead. 476 func (*DirectPredictRequest) Descriptor() ([]byte, []int) { 477 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{4} 478 } 479 480 func (x *DirectPredictRequest) GetEndpoint() string { 481 if x != nil { 482 return x.Endpoint 483 } 484 return "" 485 } 486 487 func (x *DirectPredictRequest) GetInputs() []*Tensor { 488 if x != nil { 489 return x.Inputs 490 } 491 return nil 492 } 493 494 func (x *DirectPredictRequest) GetParameters() *Tensor { 495 if x != nil { 496 return x.Parameters 497 } 498 return nil 499 } 500 501 // Response message for 502 // [PredictionService.DirectPredict][google.cloud.aiplatform.v1beta1.PredictionService.DirectPredict]. 503 type DirectPredictResponse struct { 504 state protoimpl.MessageState 505 sizeCache protoimpl.SizeCache 506 unknownFields protoimpl.UnknownFields 507 508 // The prediction output. 509 Outputs []*Tensor `protobuf:"bytes,1,rep,name=outputs,proto3" json:"outputs,omitempty"` 510 // The parameters that govern the prediction. 511 Parameters *Tensor `protobuf:"bytes,2,opt,name=parameters,proto3" json:"parameters,omitempty"` 512 } 513 514 func (x *DirectPredictResponse) Reset() { 515 *x = DirectPredictResponse{} 516 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[5] 517 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 518 ms.StoreMessageInfo(mi) 519 } 520 521 func (x *DirectPredictResponse) String() string { 522 return protoimpl.X.MessageStringOf(x) 523 } 524 525 func (*DirectPredictResponse) ProtoMessage() {} 526 527 func (x *DirectPredictResponse) ProtoReflect() protoreflect.Message { 528 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[5] 529 if x != nil { 530 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 531 if ms.LoadMessageInfo() == nil { 532 ms.StoreMessageInfo(mi) 533 } 534 return ms 535 } 536 return mi.MessageOf(x) 537 } 538 539 // Deprecated: Use DirectPredictResponse.ProtoReflect.Descriptor instead. 540 func (*DirectPredictResponse) Descriptor() ([]byte, []int) { 541 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{5} 542 } 543 544 func (x *DirectPredictResponse) GetOutputs() []*Tensor { 545 if x != nil { 546 return x.Outputs 547 } 548 return nil 549 } 550 551 func (x *DirectPredictResponse) GetParameters() *Tensor { 552 if x != nil { 553 return x.Parameters 554 } 555 return nil 556 } 557 558 // Request message for 559 // [PredictionService.DirectRawPredict][google.cloud.aiplatform.v1beta1.PredictionService.DirectRawPredict]. 560 type DirectRawPredictRequest struct { 561 state protoimpl.MessageState 562 sizeCache protoimpl.SizeCache 563 unknownFields protoimpl.UnknownFields 564 565 // Required. The name of the Endpoint requested to serve the prediction. 566 // Format: 567 // `projects/{project}/locations/{location}/endpoints/{endpoint}` 568 Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` 569 // Fully qualified name of the API method being invoked to perform 570 // predictions. 571 // 572 // Format: 573 // `/namespace.Service/Method/` 574 // Example: 575 // `/tensorflow.serving.PredictionService/Predict` 576 MethodName string `protobuf:"bytes,2,opt,name=method_name,json=methodName,proto3" json:"method_name,omitempty"` 577 // The prediction input. 578 Input []byte `protobuf:"bytes,3,opt,name=input,proto3" json:"input,omitempty"` 579 } 580 581 func (x *DirectRawPredictRequest) Reset() { 582 *x = DirectRawPredictRequest{} 583 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[6] 584 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 585 ms.StoreMessageInfo(mi) 586 } 587 588 func (x *DirectRawPredictRequest) String() string { 589 return protoimpl.X.MessageStringOf(x) 590 } 591 592 func (*DirectRawPredictRequest) ProtoMessage() {} 593 594 func (x *DirectRawPredictRequest) ProtoReflect() protoreflect.Message { 595 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[6] 596 if x != nil { 597 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 598 if ms.LoadMessageInfo() == nil { 599 ms.StoreMessageInfo(mi) 600 } 601 return ms 602 } 603 return mi.MessageOf(x) 604 } 605 606 // Deprecated: Use DirectRawPredictRequest.ProtoReflect.Descriptor instead. 607 func (*DirectRawPredictRequest) Descriptor() ([]byte, []int) { 608 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{6} 609 } 610 611 func (x *DirectRawPredictRequest) GetEndpoint() string { 612 if x != nil { 613 return x.Endpoint 614 } 615 return "" 616 } 617 618 func (x *DirectRawPredictRequest) GetMethodName() string { 619 if x != nil { 620 return x.MethodName 621 } 622 return "" 623 } 624 625 func (x *DirectRawPredictRequest) GetInput() []byte { 626 if x != nil { 627 return x.Input 628 } 629 return nil 630 } 631 632 // Response message for 633 // [PredictionService.DirectRawPredict][google.cloud.aiplatform.v1beta1.PredictionService.DirectRawPredict]. 634 type DirectRawPredictResponse struct { 635 state protoimpl.MessageState 636 sizeCache protoimpl.SizeCache 637 unknownFields protoimpl.UnknownFields 638 639 // The prediction output. 640 Output []byte `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` 641 } 642 643 func (x *DirectRawPredictResponse) Reset() { 644 *x = DirectRawPredictResponse{} 645 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[7] 646 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 647 ms.StoreMessageInfo(mi) 648 } 649 650 func (x *DirectRawPredictResponse) String() string { 651 return protoimpl.X.MessageStringOf(x) 652 } 653 654 func (*DirectRawPredictResponse) ProtoMessage() {} 655 656 func (x *DirectRawPredictResponse) ProtoReflect() protoreflect.Message { 657 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[7] 658 if x != nil { 659 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 660 if ms.LoadMessageInfo() == nil { 661 ms.StoreMessageInfo(mi) 662 } 663 return ms 664 } 665 return mi.MessageOf(x) 666 } 667 668 // Deprecated: Use DirectRawPredictResponse.ProtoReflect.Descriptor instead. 669 func (*DirectRawPredictResponse) Descriptor() ([]byte, []int) { 670 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{7} 671 } 672 673 func (x *DirectRawPredictResponse) GetOutput() []byte { 674 if x != nil { 675 return x.Output 676 } 677 return nil 678 } 679 680 // Request message for 681 // [PredictionService.StreamDirectPredict][google.cloud.aiplatform.v1beta1.PredictionService.StreamDirectPredict]. 682 // 683 // The first message must contain 684 // [endpoint][google.cloud.aiplatform.v1beta1.StreamDirectPredictRequest.endpoint] 685 // field and optionally [input][]. The subsequent messages must contain 686 // [input][]. 687 type StreamDirectPredictRequest struct { 688 state protoimpl.MessageState 689 sizeCache protoimpl.SizeCache 690 unknownFields protoimpl.UnknownFields 691 692 // Required. The name of the Endpoint requested to serve the prediction. 693 // Format: 694 // `projects/{project}/locations/{location}/endpoints/{endpoint}` 695 Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` 696 // Optional. The prediction input. 697 Inputs []*Tensor `protobuf:"bytes,2,rep,name=inputs,proto3" json:"inputs,omitempty"` 698 // Optional. The parameters that govern the prediction. 699 Parameters *Tensor `protobuf:"bytes,3,opt,name=parameters,proto3" json:"parameters,omitempty"` 700 } 701 702 func (x *StreamDirectPredictRequest) Reset() { 703 *x = StreamDirectPredictRequest{} 704 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[8] 705 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 706 ms.StoreMessageInfo(mi) 707 } 708 709 func (x *StreamDirectPredictRequest) String() string { 710 return protoimpl.X.MessageStringOf(x) 711 } 712 713 func (*StreamDirectPredictRequest) ProtoMessage() {} 714 715 func (x *StreamDirectPredictRequest) ProtoReflect() protoreflect.Message { 716 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[8] 717 if x != nil { 718 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 719 if ms.LoadMessageInfo() == nil { 720 ms.StoreMessageInfo(mi) 721 } 722 return ms 723 } 724 return mi.MessageOf(x) 725 } 726 727 // Deprecated: Use StreamDirectPredictRequest.ProtoReflect.Descriptor instead. 728 func (*StreamDirectPredictRequest) Descriptor() ([]byte, []int) { 729 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{8} 730 } 731 732 func (x *StreamDirectPredictRequest) GetEndpoint() string { 733 if x != nil { 734 return x.Endpoint 735 } 736 return "" 737 } 738 739 func (x *StreamDirectPredictRequest) GetInputs() []*Tensor { 740 if x != nil { 741 return x.Inputs 742 } 743 return nil 744 } 745 746 func (x *StreamDirectPredictRequest) GetParameters() *Tensor { 747 if x != nil { 748 return x.Parameters 749 } 750 return nil 751 } 752 753 // Response message for 754 // [PredictionService.StreamDirectPredict][google.cloud.aiplatform.v1beta1.PredictionService.StreamDirectPredict]. 755 type StreamDirectPredictResponse struct { 756 state protoimpl.MessageState 757 sizeCache protoimpl.SizeCache 758 unknownFields protoimpl.UnknownFields 759 760 // The prediction output. 761 Outputs []*Tensor `protobuf:"bytes,1,rep,name=outputs,proto3" json:"outputs,omitempty"` 762 // The parameters that govern the prediction. 763 Parameters *Tensor `protobuf:"bytes,2,opt,name=parameters,proto3" json:"parameters,omitempty"` 764 } 765 766 func (x *StreamDirectPredictResponse) Reset() { 767 *x = StreamDirectPredictResponse{} 768 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[9] 769 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 770 ms.StoreMessageInfo(mi) 771 } 772 773 func (x *StreamDirectPredictResponse) String() string { 774 return protoimpl.X.MessageStringOf(x) 775 } 776 777 func (*StreamDirectPredictResponse) ProtoMessage() {} 778 779 func (x *StreamDirectPredictResponse) ProtoReflect() protoreflect.Message { 780 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[9] 781 if x != nil { 782 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 783 if ms.LoadMessageInfo() == nil { 784 ms.StoreMessageInfo(mi) 785 } 786 return ms 787 } 788 return mi.MessageOf(x) 789 } 790 791 // Deprecated: Use StreamDirectPredictResponse.ProtoReflect.Descriptor instead. 792 func (*StreamDirectPredictResponse) Descriptor() ([]byte, []int) { 793 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{9} 794 } 795 796 func (x *StreamDirectPredictResponse) GetOutputs() []*Tensor { 797 if x != nil { 798 return x.Outputs 799 } 800 return nil 801 } 802 803 func (x *StreamDirectPredictResponse) GetParameters() *Tensor { 804 if x != nil { 805 return x.Parameters 806 } 807 return nil 808 } 809 810 // Request message for 811 // [PredictionService.StreamDirectRawPredict][google.cloud.aiplatform.v1beta1.PredictionService.StreamDirectRawPredict]. 812 // 813 // The first message must contain 814 // [endpoint][google.cloud.aiplatform.v1beta1.StreamDirectRawPredictRequest.endpoint] 815 // and 816 // [method_name][google.cloud.aiplatform.v1beta1.StreamDirectRawPredictRequest.method_name] 817 // fields and optionally 818 // [input][google.cloud.aiplatform.v1beta1.StreamDirectRawPredictRequest.input]. 819 // The subsequent messages must contain 820 // [input][google.cloud.aiplatform.v1beta1.StreamDirectRawPredictRequest.input]. 821 // [method_name][google.cloud.aiplatform.v1beta1.StreamDirectRawPredictRequest.method_name] 822 // in the subsequent messages have no effect. 823 type StreamDirectRawPredictRequest struct { 824 state protoimpl.MessageState 825 sizeCache protoimpl.SizeCache 826 unknownFields protoimpl.UnknownFields 827 828 // Required. The name of the Endpoint requested to serve the prediction. 829 // Format: 830 // `projects/{project}/locations/{location}/endpoints/{endpoint}` 831 Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` 832 // Optional. Fully qualified name of the API method being invoked to perform 833 // predictions. 834 // 835 // Format: 836 // `/namespace.Service/Method/` 837 // Example: 838 // `/tensorflow.serving.PredictionService/Predict` 839 MethodName string `protobuf:"bytes,2,opt,name=method_name,json=methodName,proto3" json:"method_name,omitempty"` 840 // Optional. The prediction input. 841 Input []byte `protobuf:"bytes,3,opt,name=input,proto3" json:"input,omitempty"` 842 } 843 844 func (x *StreamDirectRawPredictRequest) Reset() { 845 *x = StreamDirectRawPredictRequest{} 846 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[10] 847 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 848 ms.StoreMessageInfo(mi) 849 } 850 851 func (x *StreamDirectRawPredictRequest) String() string { 852 return protoimpl.X.MessageStringOf(x) 853 } 854 855 func (*StreamDirectRawPredictRequest) ProtoMessage() {} 856 857 func (x *StreamDirectRawPredictRequest) ProtoReflect() protoreflect.Message { 858 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[10] 859 if x != nil { 860 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 861 if ms.LoadMessageInfo() == nil { 862 ms.StoreMessageInfo(mi) 863 } 864 return ms 865 } 866 return mi.MessageOf(x) 867 } 868 869 // Deprecated: Use StreamDirectRawPredictRequest.ProtoReflect.Descriptor instead. 870 func (*StreamDirectRawPredictRequest) Descriptor() ([]byte, []int) { 871 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{10} 872 } 873 874 func (x *StreamDirectRawPredictRequest) GetEndpoint() string { 875 if x != nil { 876 return x.Endpoint 877 } 878 return "" 879 } 880 881 func (x *StreamDirectRawPredictRequest) GetMethodName() string { 882 if x != nil { 883 return x.MethodName 884 } 885 return "" 886 } 887 888 func (x *StreamDirectRawPredictRequest) GetInput() []byte { 889 if x != nil { 890 return x.Input 891 } 892 return nil 893 } 894 895 // Response message for 896 // [PredictionService.StreamDirectRawPredict][google.cloud.aiplatform.v1beta1.PredictionService.StreamDirectRawPredict]. 897 type StreamDirectRawPredictResponse struct { 898 state protoimpl.MessageState 899 sizeCache protoimpl.SizeCache 900 unknownFields protoimpl.UnknownFields 901 902 // The prediction output. 903 Output []byte `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` 904 } 905 906 func (x *StreamDirectRawPredictResponse) Reset() { 907 *x = StreamDirectRawPredictResponse{} 908 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[11] 909 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 910 ms.StoreMessageInfo(mi) 911 } 912 913 func (x *StreamDirectRawPredictResponse) String() string { 914 return protoimpl.X.MessageStringOf(x) 915 } 916 917 func (*StreamDirectRawPredictResponse) ProtoMessage() {} 918 919 func (x *StreamDirectRawPredictResponse) ProtoReflect() protoreflect.Message { 920 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[11] 921 if x != nil { 922 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 923 if ms.LoadMessageInfo() == nil { 924 ms.StoreMessageInfo(mi) 925 } 926 return ms 927 } 928 return mi.MessageOf(x) 929 } 930 931 // Deprecated: Use StreamDirectRawPredictResponse.ProtoReflect.Descriptor instead. 932 func (*StreamDirectRawPredictResponse) Descriptor() ([]byte, []int) { 933 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{11} 934 } 935 936 func (x *StreamDirectRawPredictResponse) GetOutput() []byte { 937 if x != nil { 938 return x.Output 939 } 940 return nil 941 } 942 943 // Request message for 944 // [PredictionService.StreamingPredict][google.cloud.aiplatform.v1beta1.PredictionService.StreamingPredict]. 945 // 946 // The first message must contain 947 // [endpoint][google.cloud.aiplatform.v1beta1.StreamingPredictRequest.endpoint] 948 // field and optionally [input][]. The subsequent messages must contain 949 // [input][]. 950 type StreamingPredictRequest struct { 951 state protoimpl.MessageState 952 sizeCache protoimpl.SizeCache 953 unknownFields protoimpl.UnknownFields 954 955 // Required. The name of the Endpoint requested to serve the prediction. 956 // Format: 957 // `projects/{project}/locations/{location}/endpoints/{endpoint}` 958 Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` 959 // The prediction input. 960 Inputs []*Tensor `protobuf:"bytes,2,rep,name=inputs,proto3" json:"inputs,omitempty"` 961 // The parameters that govern the prediction. 962 Parameters *Tensor `protobuf:"bytes,3,opt,name=parameters,proto3" json:"parameters,omitempty"` 963 } 964 965 func (x *StreamingPredictRequest) Reset() { 966 *x = StreamingPredictRequest{} 967 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[12] 968 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 969 ms.StoreMessageInfo(mi) 970 } 971 972 func (x *StreamingPredictRequest) String() string { 973 return protoimpl.X.MessageStringOf(x) 974 } 975 976 func (*StreamingPredictRequest) ProtoMessage() {} 977 978 func (x *StreamingPredictRequest) ProtoReflect() protoreflect.Message { 979 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[12] 980 if x != nil { 981 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 982 if ms.LoadMessageInfo() == nil { 983 ms.StoreMessageInfo(mi) 984 } 985 return ms 986 } 987 return mi.MessageOf(x) 988 } 989 990 // Deprecated: Use StreamingPredictRequest.ProtoReflect.Descriptor instead. 991 func (*StreamingPredictRequest) Descriptor() ([]byte, []int) { 992 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{12} 993 } 994 995 func (x *StreamingPredictRequest) GetEndpoint() string { 996 if x != nil { 997 return x.Endpoint 998 } 999 return "" 1000 } 1001 1002 func (x *StreamingPredictRequest) GetInputs() []*Tensor { 1003 if x != nil { 1004 return x.Inputs 1005 } 1006 return nil 1007 } 1008 1009 func (x *StreamingPredictRequest) GetParameters() *Tensor { 1010 if x != nil { 1011 return x.Parameters 1012 } 1013 return nil 1014 } 1015 1016 // Response message for 1017 // [PredictionService.StreamingPredict][google.cloud.aiplatform.v1beta1.PredictionService.StreamingPredict]. 1018 type StreamingPredictResponse struct { 1019 state protoimpl.MessageState 1020 sizeCache protoimpl.SizeCache 1021 unknownFields protoimpl.UnknownFields 1022 1023 // The prediction output. 1024 Outputs []*Tensor `protobuf:"bytes,1,rep,name=outputs,proto3" json:"outputs,omitempty"` 1025 // The parameters that govern the prediction. 1026 Parameters *Tensor `protobuf:"bytes,2,opt,name=parameters,proto3" json:"parameters,omitempty"` 1027 } 1028 1029 func (x *StreamingPredictResponse) Reset() { 1030 *x = StreamingPredictResponse{} 1031 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[13] 1032 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1033 ms.StoreMessageInfo(mi) 1034 } 1035 1036 func (x *StreamingPredictResponse) String() string { 1037 return protoimpl.X.MessageStringOf(x) 1038 } 1039 1040 func (*StreamingPredictResponse) ProtoMessage() {} 1041 1042 func (x *StreamingPredictResponse) ProtoReflect() protoreflect.Message { 1043 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[13] 1044 if x != nil { 1045 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1046 if ms.LoadMessageInfo() == nil { 1047 ms.StoreMessageInfo(mi) 1048 } 1049 return ms 1050 } 1051 return mi.MessageOf(x) 1052 } 1053 1054 // Deprecated: Use StreamingPredictResponse.ProtoReflect.Descriptor instead. 1055 func (*StreamingPredictResponse) Descriptor() ([]byte, []int) { 1056 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{13} 1057 } 1058 1059 func (x *StreamingPredictResponse) GetOutputs() []*Tensor { 1060 if x != nil { 1061 return x.Outputs 1062 } 1063 return nil 1064 } 1065 1066 func (x *StreamingPredictResponse) GetParameters() *Tensor { 1067 if x != nil { 1068 return x.Parameters 1069 } 1070 return nil 1071 } 1072 1073 // Request message for 1074 // [PredictionService.StreamingRawPredict][google.cloud.aiplatform.v1beta1.PredictionService.StreamingRawPredict]. 1075 // 1076 // The first message must contain 1077 // [endpoint][google.cloud.aiplatform.v1beta1.StreamingRawPredictRequest.endpoint] 1078 // and 1079 // [method_name][google.cloud.aiplatform.v1beta1.StreamingRawPredictRequest.method_name] 1080 // fields and optionally 1081 // [input][google.cloud.aiplatform.v1beta1.StreamingRawPredictRequest.input]. 1082 // The subsequent messages must contain 1083 // [input][google.cloud.aiplatform.v1beta1.StreamingRawPredictRequest.input]. 1084 // [method_name][google.cloud.aiplatform.v1beta1.StreamingRawPredictRequest.method_name] 1085 // in the subsequent messages have no effect. 1086 type StreamingRawPredictRequest struct { 1087 state protoimpl.MessageState 1088 sizeCache protoimpl.SizeCache 1089 unknownFields protoimpl.UnknownFields 1090 1091 // Required. The name of the Endpoint requested to serve the prediction. 1092 // Format: 1093 // `projects/{project}/locations/{location}/endpoints/{endpoint}` 1094 Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` 1095 // Fully qualified name of the API method being invoked to perform 1096 // predictions. 1097 // 1098 // Format: 1099 // `/namespace.Service/Method/` 1100 // Example: 1101 // `/tensorflow.serving.PredictionService/Predict` 1102 MethodName string `protobuf:"bytes,2,opt,name=method_name,json=methodName,proto3" json:"method_name,omitempty"` 1103 // The prediction input. 1104 Input []byte `protobuf:"bytes,3,opt,name=input,proto3" json:"input,omitempty"` 1105 } 1106 1107 func (x *StreamingRawPredictRequest) Reset() { 1108 *x = StreamingRawPredictRequest{} 1109 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[14] 1110 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1111 ms.StoreMessageInfo(mi) 1112 } 1113 1114 func (x *StreamingRawPredictRequest) String() string { 1115 return protoimpl.X.MessageStringOf(x) 1116 } 1117 1118 func (*StreamingRawPredictRequest) ProtoMessage() {} 1119 1120 func (x *StreamingRawPredictRequest) ProtoReflect() protoreflect.Message { 1121 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[14] 1122 if x != nil { 1123 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1124 if ms.LoadMessageInfo() == nil { 1125 ms.StoreMessageInfo(mi) 1126 } 1127 return ms 1128 } 1129 return mi.MessageOf(x) 1130 } 1131 1132 // Deprecated: Use StreamingRawPredictRequest.ProtoReflect.Descriptor instead. 1133 func (*StreamingRawPredictRequest) Descriptor() ([]byte, []int) { 1134 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{14} 1135 } 1136 1137 func (x *StreamingRawPredictRequest) GetEndpoint() string { 1138 if x != nil { 1139 return x.Endpoint 1140 } 1141 return "" 1142 } 1143 1144 func (x *StreamingRawPredictRequest) GetMethodName() string { 1145 if x != nil { 1146 return x.MethodName 1147 } 1148 return "" 1149 } 1150 1151 func (x *StreamingRawPredictRequest) GetInput() []byte { 1152 if x != nil { 1153 return x.Input 1154 } 1155 return nil 1156 } 1157 1158 // Response message for 1159 // [PredictionService.StreamingRawPredict][google.cloud.aiplatform.v1beta1.PredictionService.StreamingRawPredict]. 1160 type StreamingRawPredictResponse struct { 1161 state protoimpl.MessageState 1162 sizeCache protoimpl.SizeCache 1163 unknownFields protoimpl.UnknownFields 1164 1165 // The prediction output. 1166 Output []byte `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` 1167 } 1168 1169 func (x *StreamingRawPredictResponse) Reset() { 1170 *x = StreamingRawPredictResponse{} 1171 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[15] 1172 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1173 ms.StoreMessageInfo(mi) 1174 } 1175 1176 func (x *StreamingRawPredictResponse) String() string { 1177 return protoimpl.X.MessageStringOf(x) 1178 } 1179 1180 func (*StreamingRawPredictResponse) ProtoMessage() {} 1181 1182 func (x *StreamingRawPredictResponse) ProtoReflect() protoreflect.Message { 1183 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[15] 1184 if x != nil { 1185 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1186 if ms.LoadMessageInfo() == nil { 1187 ms.StoreMessageInfo(mi) 1188 } 1189 return ms 1190 } 1191 return mi.MessageOf(x) 1192 } 1193 1194 // Deprecated: Use StreamingRawPredictResponse.ProtoReflect.Descriptor instead. 1195 func (*StreamingRawPredictResponse) Descriptor() ([]byte, []int) { 1196 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{15} 1197 } 1198 1199 func (x *StreamingRawPredictResponse) GetOutput() []byte { 1200 if x != nil { 1201 return x.Output 1202 } 1203 return nil 1204 } 1205 1206 // Request message for 1207 // [PredictionService.Explain][google.cloud.aiplatform.v1beta1.PredictionService.Explain]. 1208 type ExplainRequest struct { 1209 state protoimpl.MessageState 1210 sizeCache protoimpl.SizeCache 1211 unknownFields protoimpl.UnknownFields 1212 1213 // Required. The name of the Endpoint requested to serve the explanation. 1214 // Format: 1215 // `projects/{project}/locations/{location}/endpoints/{endpoint}` 1216 Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` 1217 // Required. The instances that are the input to the explanation call. 1218 // A DeployedModel may have an upper limit on the number of instances it 1219 // supports per request, and when it is exceeded the explanation call errors 1220 // in case of AutoML Models, or, in case of customer created Models, the 1221 // behaviour is as documented by that Model. 1222 // The schema of any single instance may be specified via Endpoint's 1223 // DeployedModels' 1224 // [Model's][google.cloud.aiplatform.v1beta1.DeployedModel.model] 1225 // [PredictSchemata's][google.cloud.aiplatform.v1beta1.Model.predict_schemata] 1226 // [instance_schema_uri][google.cloud.aiplatform.v1beta1.PredictSchemata.instance_schema_uri]. 1227 Instances []*structpb.Value `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` 1228 // The parameters that govern the prediction. The schema of the parameters may 1229 // be specified via Endpoint's DeployedModels' [Model's 1230 // ][google.cloud.aiplatform.v1beta1.DeployedModel.model] 1231 // [PredictSchemata's][google.cloud.aiplatform.v1beta1.Model.predict_schemata] 1232 // [parameters_schema_uri][google.cloud.aiplatform.v1beta1.PredictSchemata.parameters_schema_uri]. 1233 Parameters *structpb.Value `protobuf:"bytes,4,opt,name=parameters,proto3" json:"parameters,omitempty"` 1234 // If specified, overrides the 1235 // [explanation_spec][google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec] 1236 // of the DeployedModel. Can be used for explaining prediction results with 1237 // different configurations, such as: 1238 // - Explaining top-5 predictions results as opposed to top-1; 1239 // - Increasing path count or step count of the attribution methods to reduce 1240 // approximate errors; 1241 // - Using different baselines for explaining the prediction results. 1242 ExplanationSpecOverride *ExplanationSpecOverride `protobuf:"bytes,5,opt,name=explanation_spec_override,json=explanationSpecOverride,proto3" json:"explanation_spec_override,omitempty"` 1243 // Optional. This field is the same as the one above, but supports multiple 1244 // explanations to occur in parallel. The key can be any string. Each override 1245 // will be run against the model, then its explanations will be grouped 1246 // together. 1247 // 1248 // Note - these explanations are run **In Addition** to the default 1249 // Explanation in the deployed model. 1250 ConcurrentExplanationSpecOverride map[string]*ExplanationSpecOverride `protobuf:"bytes,6,rep,name=concurrent_explanation_spec_override,json=concurrentExplanationSpecOverride,proto3" json:"concurrent_explanation_spec_override,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1251 // If specified, this ExplainRequest will be served by the chosen 1252 // DeployedModel, overriding 1253 // [Endpoint.traffic_split][google.cloud.aiplatform.v1beta1.Endpoint.traffic_split]. 1254 DeployedModelId string `protobuf:"bytes,3,opt,name=deployed_model_id,json=deployedModelId,proto3" json:"deployed_model_id,omitempty"` 1255 } 1256 1257 func (x *ExplainRequest) Reset() { 1258 *x = ExplainRequest{} 1259 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[16] 1260 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1261 ms.StoreMessageInfo(mi) 1262 } 1263 1264 func (x *ExplainRequest) String() string { 1265 return protoimpl.X.MessageStringOf(x) 1266 } 1267 1268 func (*ExplainRequest) ProtoMessage() {} 1269 1270 func (x *ExplainRequest) ProtoReflect() protoreflect.Message { 1271 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[16] 1272 if x != nil { 1273 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1274 if ms.LoadMessageInfo() == nil { 1275 ms.StoreMessageInfo(mi) 1276 } 1277 return ms 1278 } 1279 return mi.MessageOf(x) 1280 } 1281 1282 // Deprecated: Use ExplainRequest.ProtoReflect.Descriptor instead. 1283 func (*ExplainRequest) Descriptor() ([]byte, []int) { 1284 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{16} 1285 } 1286 1287 func (x *ExplainRequest) GetEndpoint() string { 1288 if x != nil { 1289 return x.Endpoint 1290 } 1291 return "" 1292 } 1293 1294 func (x *ExplainRequest) GetInstances() []*structpb.Value { 1295 if x != nil { 1296 return x.Instances 1297 } 1298 return nil 1299 } 1300 1301 func (x *ExplainRequest) GetParameters() *structpb.Value { 1302 if x != nil { 1303 return x.Parameters 1304 } 1305 return nil 1306 } 1307 1308 func (x *ExplainRequest) GetExplanationSpecOverride() *ExplanationSpecOverride { 1309 if x != nil { 1310 return x.ExplanationSpecOverride 1311 } 1312 return nil 1313 } 1314 1315 func (x *ExplainRequest) GetConcurrentExplanationSpecOverride() map[string]*ExplanationSpecOverride { 1316 if x != nil { 1317 return x.ConcurrentExplanationSpecOverride 1318 } 1319 return nil 1320 } 1321 1322 func (x *ExplainRequest) GetDeployedModelId() string { 1323 if x != nil { 1324 return x.DeployedModelId 1325 } 1326 return "" 1327 } 1328 1329 // Response message for 1330 // [PredictionService.Explain][google.cloud.aiplatform.v1beta1.PredictionService.Explain]. 1331 type ExplainResponse struct { 1332 state protoimpl.MessageState 1333 sizeCache protoimpl.SizeCache 1334 unknownFields protoimpl.UnknownFields 1335 1336 // The explanations of the Model's 1337 // [PredictResponse.predictions][google.cloud.aiplatform.v1beta1.PredictResponse.predictions]. 1338 // 1339 // It has the same number of elements as 1340 // [instances][google.cloud.aiplatform.v1beta1.ExplainRequest.instances] to be 1341 // explained. 1342 Explanations []*Explanation `protobuf:"bytes,1,rep,name=explanations,proto3" json:"explanations,omitempty"` 1343 // This field stores the results of the explanations run in parallel with 1344 // The default explanation strategy/method. 1345 ConcurrentExplanations map[string]*ExplainResponse_ConcurrentExplanation `protobuf:"bytes,4,rep,name=concurrent_explanations,json=concurrentExplanations,proto3" json:"concurrent_explanations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1346 // ID of the Endpoint's DeployedModel that served this explanation. 1347 DeployedModelId string `protobuf:"bytes,2,opt,name=deployed_model_id,json=deployedModelId,proto3" json:"deployed_model_id,omitempty"` 1348 // The predictions that are the output of the predictions call. 1349 // Same as 1350 // [PredictResponse.predictions][google.cloud.aiplatform.v1beta1.PredictResponse.predictions]. 1351 Predictions []*structpb.Value `protobuf:"bytes,3,rep,name=predictions,proto3" json:"predictions,omitempty"` 1352 } 1353 1354 func (x *ExplainResponse) Reset() { 1355 *x = ExplainResponse{} 1356 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[17] 1357 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1358 ms.StoreMessageInfo(mi) 1359 } 1360 1361 func (x *ExplainResponse) String() string { 1362 return protoimpl.X.MessageStringOf(x) 1363 } 1364 1365 func (*ExplainResponse) ProtoMessage() {} 1366 1367 func (x *ExplainResponse) ProtoReflect() protoreflect.Message { 1368 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[17] 1369 if x != nil { 1370 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1371 if ms.LoadMessageInfo() == nil { 1372 ms.StoreMessageInfo(mi) 1373 } 1374 return ms 1375 } 1376 return mi.MessageOf(x) 1377 } 1378 1379 // Deprecated: Use ExplainResponse.ProtoReflect.Descriptor instead. 1380 func (*ExplainResponse) Descriptor() ([]byte, []int) { 1381 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{17} 1382 } 1383 1384 func (x *ExplainResponse) GetExplanations() []*Explanation { 1385 if x != nil { 1386 return x.Explanations 1387 } 1388 return nil 1389 } 1390 1391 func (x *ExplainResponse) GetConcurrentExplanations() map[string]*ExplainResponse_ConcurrentExplanation { 1392 if x != nil { 1393 return x.ConcurrentExplanations 1394 } 1395 return nil 1396 } 1397 1398 func (x *ExplainResponse) GetDeployedModelId() string { 1399 if x != nil { 1400 return x.DeployedModelId 1401 } 1402 return "" 1403 } 1404 1405 func (x *ExplainResponse) GetPredictions() []*structpb.Value { 1406 if x != nil { 1407 return x.Predictions 1408 } 1409 return nil 1410 } 1411 1412 // Request message for 1413 // [PredictionService.CountTokens][google.cloud.aiplatform.v1beta1.PredictionService.CountTokens]. 1414 type CountTokensRequest struct { 1415 state protoimpl.MessageState 1416 sizeCache protoimpl.SizeCache 1417 unknownFields protoimpl.UnknownFields 1418 1419 // Required. The name of the Endpoint requested to perform token counting. 1420 // Format: 1421 // `projects/{project}/locations/{location}/endpoints/{endpoint}` 1422 Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` 1423 // Optional. The name of the publisher model requested to serve the 1424 // prediction. Format: 1425 // `projects/{project}/locations/{location}/publishers/*/models/*` 1426 Model string `protobuf:"bytes,3,opt,name=model,proto3" json:"model,omitempty"` 1427 // Optional. The instances that are the input to token counting call. 1428 // Schema is identical to the prediction schema of the underlying model. 1429 Instances []*structpb.Value `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` 1430 // Optional. Input content. 1431 Contents []*Content `protobuf:"bytes,4,rep,name=contents,proto3" json:"contents,omitempty"` 1432 // Optional. The user provided system instructions for the model. 1433 // Note: only text should be used in parts and content in each part will be in 1434 // a separate paragraph. 1435 SystemInstruction *Content `protobuf:"bytes,5,opt,name=system_instruction,json=systemInstruction,proto3,oneof" json:"system_instruction,omitempty"` 1436 // Optional. A list of `Tools` the model may use to generate the next 1437 // response. 1438 // 1439 // A `Tool` is a piece of code that enables the system to interact with 1440 // external systems to perform an action, or set of actions, outside of 1441 // knowledge and scope of the model. 1442 Tools []*Tool `protobuf:"bytes,6,rep,name=tools,proto3" json:"tools,omitempty"` 1443 // Optional. Generation config that the model will use to generate the 1444 // response. 1445 GenerationConfig *GenerationConfig `protobuf:"bytes,7,opt,name=generation_config,json=generationConfig,proto3,oneof" json:"generation_config,omitempty"` 1446 } 1447 1448 func (x *CountTokensRequest) Reset() { 1449 *x = CountTokensRequest{} 1450 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[18] 1451 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1452 ms.StoreMessageInfo(mi) 1453 } 1454 1455 func (x *CountTokensRequest) String() string { 1456 return protoimpl.X.MessageStringOf(x) 1457 } 1458 1459 func (*CountTokensRequest) ProtoMessage() {} 1460 1461 func (x *CountTokensRequest) ProtoReflect() protoreflect.Message { 1462 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[18] 1463 if x != nil { 1464 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1465 if ms.LoadMessageInfo() == nil { 1466 ms.StoreMessageInfo(mi) 1467 } 1468 return ms 1469 } 1470 return mi.MessageOf(x) 1471 } 1472 1473 // Deprecated: Use CountTokensRequest.ProtoReflect.Descriptor instead. 1474 func (*CountTokensRequest) Descriptor() ([]byte, []int) { 1475 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{18} 1476 } 1477 1478 func (x *CountTokensRequest) GetEndpoint() string { 1479 if x != nil { 1480 return x.Endpoint 1481 } 1482 return "" 1483 } 1484 1485 func (x *CountTokensRequest) GetModel() string { 1486 if x != nil { 1487 return x.Model 1488 } 1489 return "" 1490 } 1491 1492 func (x *CountTokensRequest) GetInstances() []*structpb.Value { 1493 if x != nil { 1494 return x.Instances 1495 } 1496 return nil 1497 } 1498 1499 func (x *CountTokensRequest) GetContents() []*Content { 1500 if x != nil { 1501 return x.Contents 1502 } 1503 return nil 1504 } 1505 1506 func (x *CountTokensRequest) GetSystemInstruction() *Content { 1507 if x != nil { 1508 return x.SystemInstruction 1509 } 1510 return nil 1511 } 1512 1513 func (x *CountTokensRequest) GetTools() []*Tool { 1514 if x != nil { 1515 return x.Tools 1516 } 1517 return nil 1518 } 1519 1520 func (x *CountTokensRequest) GetGenerationConfig() *GenerationConfig { 1521 if x != nil { 1522 return x.GenerationConfig 1523 } 1524 return nil 1525 } 1526 1527 // Response message for 1528 // [PredictionService.CountTokens][google.cloud.aiplatform.v1beta1.PredictionService.CountTokens]. 1529 type CountTokensResponse struct { 1530 state protoimpl.MessageState 1531 sizeCache protoimpl.SizeCache 1532 unknownFields protoimpl.UnknownFields 1533 1534 // The total number of tokens counted across all instances from the request. 1535 TotalTokens int32 `protobuf:"varint,1,opt,name=total_tokens,json=totalTokens,proto3" json:"total_tokens,omitempty"` 1536 // The total number of billable characters counted across all instances from 1537 // the request. 1538 TotalBillableCharacters int32 `protobuf:"varint,2,opt,name=total_billable_characters,json=totalBillableCharacters,proto3" json:"total_billable_characters,omitempty"` 1539 // Output only. List of modalities that were processed in the request input. 1540 PromptTokensDetails []*ModalityTokenCount `protobuf:"bytes,3,rep,name=prompt_tokens_details,json=promptTokensDetails,proto3" json:"prompt_tokens_details,omitempty"` 1541 } 1542 1543 func (x *CountTokensResponse) Reset() { 1544 *x = CountTokensResponse{} 1545 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[19] 1546 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1547 ms.StoreMessageInfo(mi) 1548 } 1549 1550 func (x *CountTokensResponse) String() string { 1551 return protoimpl.X.MessageStringOf(x) 1552 } 1553 1554 func (*CountTokensResponse) ProtoMessage() {} 1555 1556 func (x *CountTokensResponse) ProtoReflect() protoreflect.Message { 1557 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[19] 1558 if x != nil { 1559 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1560 if ms.LoadMessageInfo() == nil { 1561 ms.StoreMessageInfo(mi) 1562 } 1563 return ms 1564 } 1565 return mi.MessageOf(x) 1566 } 1567 1568 // Deprecated: Use CountTokensResponse.ProtoReflect.Descriptor instead. 1569 func (*CountTokensResponse) Descriptor() ([]byte, []int) { 1570 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{19} 1571 } 1572 1573 func (x *CountTokensResponse) GetTotalTokens() int32 { 1574 if x != nil { 1575 return x.TotalTokens 1576 } 1577 return 0 1578 } 1579 1580 func (x *CountTokensResponse) GetTotalBillableCharacters() int32 { 1581 if x != nil { 1582 return x.TotalBillableCharacters 1583 } 1584 return 0 1585 } 1586 1587 func (x *CountTokensResponse) GetPromptTokensDetails() []*ModalityTokenCount { 1588 if x != nil { 1589 return x.PromptTokensDetails 1590 } 1591 return nil 1592 } 1593 1594 // Request message for [PredictionService.GenerateContent]. 1595 type GenerateContentRequest struct { 1596 state protoimpl.MessageState 1597 sizeCache protoimpl.SizeCache 1598 unknownFields protoimpl.UnknownFields 1599 1600 // Required. The fully qualified name of the publisher model or tuned model 1601 // endpoint to use. 1602 // 1603 // Publisher model format: 1604 // `projects/{project}/locations/{location}/publishers/*/models/*` 1605 // 1606 // Tuned model endpoint format: 1607 // `projects/{project}/locations/{location}/endpoints/{endpoint}` 1608 Model string `protobuf:"bytes,5,opt,name=model,proto3" json:"model,omitempty"` 1609 // Required. The content of the current conversation with the model. 1610 // 1611 // For single-turn queries, this is a single instance. For multi-turn queries, 1612 // this is a repeated field that contains conversation history + latest 1613 // request. 1614 Contents []*Content `protobuf:"bytes,2,rep,name=contents,proto3" json:"contents,omitempty"` 1615 // Optional. The user provided system instructions for the model. 1616 // Note: only text should be used in parts and content in each part will be in 1617 // a separate paragraph. 1618 SystemInstruction *Content `protobuf:"bytes,8,opt,name=system_instruction,json=systemInstruction,proto3,oneof" json:"system_instruction,omitempty"` 1619 // Optional. The name of the cached content used as context to serve the 1620 // prediction. Note: only used in explicit caching, where users can have 1621 // control over caching (e.g. what content to cache) and enjoy guaranteed cost 1622 // savings. Format: 1623 // `projects/{project}/locations/{location}/cachedContents/{cachedContent}` 1624 CachedContent string `protobuf:"bytes,9,opt,name=cached_content,json=cachedContent,proto3" json:"cached_content,omitempty"` 1625 // Optional. A list of `Tools` the model may use to generate the next 1626 // response. 1627 // 1628 // A `Tool` is a piece of code that enables the system to interact with 1629 // external systems to perform an action, or set of actions, outside of 1630 // knowledge and scope of the model. 1631 Tools []*Tool `protobuf:"bytes,6,rep,name=tools,proto3" json:"tools,omitempty"` 1632 // Optional. Tool config. This config is shared for all tools provided in the 1633 // request. 1634 ToolConfig *ToolConfig `protobuf:"bytes,7,opt,name=tool_config,json=toolConfig,proto3" json:"tool_config,omitempty"` 1635 // Optional. The labels with user-defined metadata for the request. It is used 1636 // for billing and reporting only. 1637 // 1638 // Label keys and values can be no longer than 63 characters 1639 // (Unicode codepoints) and can only contain lowercase letters, numeric 1640 // characters, underscores, and dashes. International characters are allowed. 1641 // Label values are optional. Label keys must start with a letter. 1642 Labels map[string]string `protobuf:"bytes,10,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1643 // Optional. Per request settings for blocking unsafe content. 1644 // Enforced on GenerateContentResponse.candidates. 1645 SafetySettings []*SafetySetting `protobuf:"bytes,3,rep,name=safety_settings,json=safetySettings,proto3" json:"safety_settings,omitempty"` 1646 // Optional. Settings for prompt and response sanitization using the Model 1647 // Armor service. If supplied, safety_settings must not be supplied. 1648 ModelArmorConfig *ModelArmorConfig `protobuf:"bytes,11,opt,name=model_armor_config,json=modelArmorConfig,proto3" json:"model_armor_config,omitempty"` 1649 // Optional. Generation config. 1650 GenerationConfig *GenerationConfig `protobuf:"bytes,4,opt,name=generation_config,json=generationConfig,proto3" json:"generation_config,omitempty"` 1651 } 1652 1653 func (x *GenerateContentRequest) Reset() { 1654 *x = GenerateContentRequest{} 1655 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[20] 1656 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1657 ms.StoreMessageInfo(mi) 1658 } 1659 1660 func (x *GenerateContentRequest) String() string { 1661 return protoimpl.X.MessageStringOf(x) 1662 } 1663 1664 func (*GenerateContentRequest) ProtoMessage() {} 1665 1666 func (x *GenerateContentRequest) ProtoReflect() protoreflect.Message { 1667 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[20] 1668 if x != nil { 1669 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1670 if ms.LoadMessageInfo() == nil { 1671 ms.StoreMessageInfo(mi) 1672 } 1673 return ms 1674 } 1675 return mi.MessageOf(x) 1676 } 1677 1678 // Deprecated: Use GenerateContentRequest.ProtoReflect.Descriptor instead. 1679 func (*GenerateContentRequest) Descriptor() ([]byte, []int) { 1680 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{20} 1681 } 1682 1683 func (x *GenerateContentRequest) GetModel() string { 1684 if x != nil { 1685 return x.Model 1686 } 1687 return "" 1688 } 1689 1690 func (x *GenerateContentRequest) GetContents() []*Content { 1691 if x != nil { 1692 return x.Contents 1693 } 1694 return nil 1695 } 1696 1697 func (x *GenerateContentRequest) GetSystemInstruction() *Content { 1698 if x != nil { 1699 return x.SystemInstruction 1700 } 1701 return nil 1702 } 1703 1704 func (x *GenerateContentRequest) GetCachedContent() string { 1705 if x != nil { 1706 return x.CachedContent 1707 } 1708 return "" 1709 } 1710 1711 func (x *GenerateContentRequest) GetTools() []*Tool { 1712 if x != nil { 1713 return x.Tools 1714 } 1715 return nil 1716 } 1717 1718 func (x *GenerateContentRequest) GetToolConfig() *ToolConfig { 1719 if x != nil { 1720 return x.ToolConfig 1721 } 1722 return nil 1723 } 1724 1725 func (x *GenerateContentRequest) GetLabels() map[string]string { 1726 if x != nil { 1727 return x.Labels 1728 } 1729 return nil 1730 } 1731 1732 func (x *GenerateContentRequest) GetSafetySettings() []*SafetySetting { 1733 if x != nil { 1734 return x.SafetySettings 1735 } 1736 return nil 1737 } 1738 1739 func (x *GenerateContentRequest) GetModelArmorConfig() *ModelArmorConfig { 1740 if x != nil { 1741 return x.ModelArmorConfig 1742 } 1743 return nil 1744 } 1745 1746 func (x *GenerateContentRequest) GetGenerationConfig() *GenerationConfig { 1747 if x != nil { 1748 return x.GenerationConfig 1749 } 1750 return nil 1751 } 1752 1753 // Response message for [PredictionService.GenerateContent]. 1754 type GenerateContentResponse struct { 1755 state protoimpl.MessageState 1756 sizeCache protoimpl.SizeCache 1757 unknownFields protoimpl.UnknownFields 1758 1759 // Output only. Generated candidates. 1760 Candidates []*Candidate `protobuf:"bytes,2,rep,name=candidates,proto3" json:"candidates,omitempty"` 1761 // Output only. The model version used to generate the response. 1762 ModelVersion string `protobuf:"bytes,11,opt,name=model_version,json=modelVersion,proto3" json:"model_version,omitempty"` 1763 // Output only. Timestamp when the request is made to the server. 1764 CreateTime *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 1765 // Output only. response_id is used to identify each response. It is the 1766 // encoding of the event_id. 1767 ResponseId string `protobuf:"bytes,13,opt,name=response_id,json=responseId,proto3" json:"response_id,omitempty"` 1768 // Output only. Content filter results for a prompt sent in the request. 1769 // Note: Sent only in the first stream chunk. 1770 // Only happens when no candidates were generated due to content violations. 1771 PromptFeedback *GenerateContentResponse_PromptFeedback `protobuf:"bytes,3,opt,name=prompt_feedback,json=promptFeedback,proto3" json:"prompt_feedback,omitempty"` 1772 // Usage metadata about the response(s). 1773 UsageMetadata *GenerateContentResponse_UsageMetadata `protobuf:"bytes,4,opt,name=usage_metadata,json=usageMetadata,proto3" json:"usage_metadata,omitempty"` 1774 } 1775 1776 func (x *GenerateContentResponse) Reset() { 1777 *x = GenerateContentResponse{} 1778 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[21] 1779 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1780 ms.StoreMessageInfo(mi) 1781 } 1782 1783 func (x *GenerateContentResponse) String() string { 1784 return protoimpl.X.MessageStringOf(x) 1785 } 1786 1787 func (*GenerateContentResponse) ProtoMessage() {} 1788 1789 func (x *GenerateContentResponse) ProtoReflect() protoreflect.Message { 1790 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[21] 1791 if x != nil { 1792 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1793 if ms.LoadMessageInfo() == nil { 1794 ms.StoreMessageInfo(mi) 1795 } 1796 return ms 1797 } 1798 return mi.MessageOf(x) 1799 } 1800 1801 // Deprecated: Use GenerateContentResponse.ProtoReflect.Descriptor instead. 1802 func (*GenerateContentResponse) Descriptor() ([]byte, []int) { 1803 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{21} 1804 } 1805 1806 func (x *GenerateContentResponse) GetCandidates() []*Candidate { 1807 if x != nil { 1808 return x.Candidates 1809 } 1810 return nil 1811 } 1812 1813 func (x *GenerateContentResponse) GetModelVersion() string { 1814 if x != nil { 1815 return x.ModelVersion 1816 } 1817 return "" 1818 } 1819 1820 func (x *GenerateContentResponse) GetCreateTime() *timestamppb.Timestamp { 1821 if x != nil { 1822 return x.CreateTime 1823 } 1824 return nil 1825 } 1826 1827 func (x *GenerateContentResponse) GetResponseId() string { 1828 if x != nil { 1829 return x.ResponseId 1830 } 1831 return "" 1832 } 1833 1834 func (x *GenerateContentResponse) GetPromptFeedback() *GenerateContentResponse_PromptFeedback { 1835 if x != nil { 1836 return x.PromptFeedback 1837 } 1838 return nil 1839 } 1840 1841 func (x *GenerateContentResponse) GetUsageMetadata() *GenerateContentResponse_UsageMetadata { 1842 if x != nil { 1843 return x.UsageMetadata 1844 } 1845 return nil 1846 } 1847 1848 // Request message for [PredictionService.ChatCompletions] 1849 type ChatCompletionsRequest struct { 1850 state protoimpl.MessageState 1851 sizeCache protoimpl.SizeCache 1852 unknownFields protoimpl.UnknownFields 1853 1854 // Required. The name of the endpoint requested to serve the prediction. 1855 // Format: 1856 // `projects/{project}/locations/{location}/endpoints/{endpoint}` 1857 Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` 1858 // Optional. The prediction input. Supports HTTP headers and arbitrary data 1859 // payload. 1860 HttpBody *httpbody.HttpBody `protobuf:"bytes,2,opt,name=http_body,json=httpBody,proto3" json:"http_body,omitempty"` 1861 } 1862 1863 func (x *ChatCompletionsRequest) Reset() { 1864 *x = ChatCompletionsRequest{} 1865 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[22] 1866 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1867 ms.StoreMessageInfo(mi) 1868 } 1869 1870 func (x *ChatCompletionsRequest) String() string { 1871 return protoimpl.X.MessageStringOf(x) 1872 } 1873 1874 func (*ChatCompletionsRequest) ProtoMessage() {} 1875 1876 func (x *ChatCompletionsRequest) ProtoReflect() protoreflect.Message { 1877 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[22] 1878 if x != nil { 1879 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1880 if ms.LoadMessageInfo() == nil { 1881 ms.StoreMessageInfo(mi) 1882 } 1883 return ms 1884 } 1885 return mi.MessageOf(x) 1886 } 1887 1888 // Deprecated: Use ChatCompletionsRequest.ProtoReflect.Descriptor instead. 1889 func (*ChatCompletionsRequest) Descriptor() ([]byte, []int) { 1890 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{22} 1891 } 1892 1893 func (x *ChatCompletionsRequest) GetEndpoint() string { 1894 if x != nil { 1895 return x.Endpoint 1896 } 1897 return "" 1898 } 1899 1900 func (x *ChatCompletionsRequest) GetHttpBody() *httpbody.HttpBody { 1901 if x != nil { 1902 return x.HttpBody 1903 } 1904 return nil 1905 } 1906 1907 // Response message for [PredictionService.PredictLongRunning] 1908 type PredictLongRunningResponse struct { 1909 state protoimpl.MessageState 1910 sizeCache protoimpl.SizeCache 1911 unknownFields protoimpl.UnknownFields 1912 1913 // The response of the long running operation. 1914 // 1915 // Types that are assignable to Response: 1916 // 1917 // *PredictLongRunningResponse_GenerateVideoResponse 1918 Response isPredictLongRunningResponse_Response `protobuf_oneof:"response"` 1919 } 1920 1921 func (x *PredictLongRunningResponse) Reset() { 1922 *x = PredictLongRunningResponse{} 1923 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[23] 1924 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1925 ms.StoreMessageInfo(mi) 1926 } 1927 1928 func (x *PredictLongRunningResponse) String() string { 1929 return protoimpl.X.MessageStringOf(x) 1930 } 1931 1932 func (*PredictLongRunningResponse) ProtoMessage() {} 1933 1934 func (x *PredictLongRunningResponse) ProtoReflect() protoreflect.Message { 1935 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[23] 1936 if x != nil { 1937 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1938 if ms.LoadMessageInfo() == nil { 1939 ms.StoreMessageInfo(mi) 1940 } 1941 return ms 1942 } 1943 return mi.MessageOf(x) 1944 } 1945 1946 // Deprecated: Use PredictLongRunningResponse.ProtoReflect.Descriptor instead. 1947 func (*PredictLongRunningResponse) Descriptor() ([]byte, []int) { 1948 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{23} 1949 } 1950 1951 func (m *PredictLongRunningResponse) GetResponse() isPredictLongRunningResponse_Response { 1952 if m != nil { 1953 return m.Response 1954 } 1955 return nil 1956 } 1957 1958 func (x *PredictLongRunningResponse) GetGenerateVideoResponse() *GenerateVideoResponse { 1959 if x, ok := x.GetResponse().(*PredictLongRunningResponse_GenerateVideoResponse); ok { 1960 return x.GenerateVideoResponse 1961 } 1962 return nil 1963 } 1964 1965 type isPredictLongRunningResponse_Response interface { 1966 isPredictLongRunningResponse_Response() 1967 } 1968 1969 type PredictLongRunningResponse_GenerateVideoResponse struct { 1970 // The response of the video generation prediction. 1971 GenerateVideoResponse *GenerateVideoResponse `protobuf:"bytes,1,opt,name=generate_video_response,json=generateVideoResponse,proto3,oneof"` 1972 } 1973 1974 func (*PredictLongRunningResponse_GenerateVideoResponse) isPredictLongRunningResponse_Response() {} 1975 1976 // Metadata for PredictLongRunning long running operations. 1977 type PredictLongRunningMetadata struct { 1978 state protoimpl.MessageState 1979 sizeCache protoimpl.SizeCache 1980 unknownFields protoimpl.UnknownFields 1981 } 1982 1983 func (x *PredictLongRunningMetadata) Reset() { 1984 *x = PredictLongRunningMetadata{} 1985 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[24] 1986 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1987 ms.StoreMessageInfo(mi) 1988 } 1989 1990 func (x *PredictLongRunningMetadata) String() string { 1991 return protoimpl.X.MessageStringOf(x) 1992 } 1993 1994 func (*PredictLongRunningMetadata) ProtoMessage() {} 1995 1996 func (x *PredictLongRunningMetadata) ProtoReflect() protoreflect.Message { 1997 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[24] 1998 if x != nil { 1999 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2000 if ms.LoadMessageInfo() == nil { 2001 ms.StoreMessageInfo(mi) 2002 } 2003 return ms 2004 } 2005 return mi.MessageOf(x) 2006 } 2007 2008 // Deprecated: Use PredictLongRunningMetadata.ProtoReflect.Descriptor instead. 2009 func (*PredictLongRunningMetadata) Descriptor() ([]byte, []int) { 2010 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{24} 2011 } 2012 2013 // Generate video response. 2014 type GenerateVideoResponse struct { 2015 state protoimpl.MessageState 2016 sizeCache protoimpl.SizeCache 2017 unknownFields protoimpl.UnknownFields 2018 2019 // The cloud storage uris of the generated videos. 2020 GeneratedSamples []string `protobuf:"bytes,1,rep,name=generated_samples,json=generatedSamples,proto3" json:"generated_samples,omitempty"` 2021 // Returns if any videos were filtered due to RAI policies. 2022 RaiMediaFilteredCount *int32 `protobuf:"varint,2,opt,name=rai_media_filtered_count,json=raiMediaFilteredCount,proto3,oneof" json:"rai_media_filtered_count,omitempty"` 2023 // Returns rai failure reasons if any. 2024 RaiMediaFilteredReasons []string `protobuf:"bytes,3,rep,name=rai_media_filtered_reasons,json=raiMediaFilteredReasons,proto3" json:"rai_media_filtered_reasons,omitempty"` 2025 } 2026 2027 func (x *GenerateVideoResponse) Reset() { 2028 *x = GenerateVideoResponse{} 2029 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[25] 2030 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2031 ms.StoreMessageInfo(mi) 2032 } 2033 2034 func (x *GenerateVideoResponse) String() string { 2035 return protoimpl.X.MessageStringOf(x) 2036 } 2037 2038 func (*GenerateVideoResponse) ProtoMessage() {} 2039 2040 func (x *GenerateVideoResponse) ProtoReflect() protoreflect.Message { 2041 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[25] 2042 if x != nil { 2043 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2044 if ms.LoadMessageInfo() == nil { 2045 ms.StoreMessageInfo(mi) 2046 } 2047 return ms 2048 } 2049 return mi.MessageOf(x) 2050 } 2051 2052 // Deprecated: Use GenerateVideoResponse.ProtoReflect.Descriptor instead. 2053 func (*GenerateVideoResponse) Descriptor() ([]byte, []int) { 2054 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{25} 2055 } 2056 2057 func (x *GenerateVideoResponse) GetGeneratedSamples() []string { 2058 if x != nil { 2059 return x.GeneratedSamples 2060 } 2061 return nil 2062 } 2063 2064 func (x *GenerateVideoResponse) GetRaiMediaFilteredCount() int32 { 2065 if x != nil && x.RaiMediaFilteredCount != nil { 2066 return *x.RaiMediaFilteredCount 2067 } 2068 return 0 2069 } 2070 2071 func (x *GenerateVideoResponse) GetRaiMediaFilteredReasons() []string { 2072 if x != nil { 2073 return x.RaiMediaFilteredReasons 2074 } 2075 return nil 2076 } 2077 2078 // This message is a wrapper grouping Concurrent Explanations. 2079 type ExplainResponse_ConcurrentExplanation struct { 2080 state protoimpl.MessageState 2081 sizeCache protoimpl.SizeCache 2082 unknownFields protoimpl.UnknownFields 2083 2084 // The explanations of the Model's 2085 // [PredictResponse.predictions][google.cloud.aiplatform.v1beta1.PredictResponse.predictions]. 2086 // 2087 // It has the same number of elements as 2088 // [instances][google.cloud.aiplatform.v1beta1.ExplainRequest.instances] to 2089 // be explained. 2090 Explanations []*Explanation `protobuf:"bytes,1,rep,name=explanations,proto3" json:"explanations,omitempty"` 2091 } 2092 2093 func (x *ExplainResponse_ConcurrentExplanation) Reset() { 2094 *x = ExplainResponse_ConcurrentExplanation{} 2095 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[28] 2096 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2097 ms.StoreMessageInfo(mi) 2098 } 2099 2100 func (x *ExplainResponse_ConcurrentExplanation) String() string { 2101 return protoimpl.X.MessageStringOf(x) 2102 } 2103 2104 func (*ExplainResponse_ConcurrentExplanation) ProtoMessage() {} 2105 2106 func (x *ExplainResponse_ConcurrentExplanation) ProtoReflect() protoreflect.Message { 2107 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[28] 2108 if x != nil { 2109 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2110 if ms.LoadMessageInfo() == nil { 2111 ms.StoreMessageInfo(mi) 2112 } 2113 return ms 2114 } 2115 return mi.MessageOf(x) 2116 } 2117 2118 // Deprecated: Use ExplainResponse_ConcurrentExplanation.ProtoReflect.Descriptor instead. 2119 func (*ExplainResponse_ConcurrentExplanation) Descriptor() ([]byte, []int) { 2120 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{17, 0} 2121 } 2122 2123 func (x *ExplainResponse_ConcurrentExplanation) GetExplanations() []*Explanation { 2124 if x != nil { 2125 return x.Explanations 2126 } 2127 return nil 2128 } 2129 2130 // Content filter results for a prompt sent in the request. 2131 type GenerateContentResponse_PromptFeedback struct { 2132 state protoimpl.MessageState 2133 sizeCache protoimpl.SizeCache 2134 unknownFields protoimpl.UnknownFields 2135 2136 // Output only. Blocked reason. 2137 BlockReason GenerateContentResponse_PromptFeedback_BlockedReason `protobuf:"varint,1,opt,name=block_reason,json=blockReason,proto3,enum=google.cloud.aiplatform.v1beta1.GenerateContentResponse_PromptFeedback_BlockedReason" json:"block_reason,omitempty"` 2138 // Output only. Safety ratings. 2139 SafetyRatings []*SafetyRating `protobuf:"bytes,2,rep,name=safety_ratings,json=safetyRatings,proto3" json:"safety_ratings,omitempty"` 2140 // Output only. A readable block reason message. 2141 BlockReasonMessage string `protobuf:"bytes,3,opt,name=block_reason_message,json=blockReasonMessage,proto3" json:"block_reason_message,omitempty"` 2142 } 2143 2144 func (x *GenerateContentResponse_PromptFeedback) Reset() { 2145 *x = GenerateContentResponse_PromptFeedback{} 2146 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[31] 2147 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2148 ms.StoreMessageInfo(mi) 2149 } 2150 2151 func (x *GenerateContentResponse_PromptFeedback) String() string { 2152 return protoimpl.X.MessageStringOf(x) 2153 } 2154 2155 func (*GenerateContentResponse_PromptFeedback) ProtoMessage() {} 2156 2157 func (x *GenerateContentResponse_PromptFeedback) ProtoReflect() protoreflect.Message { 2158 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[31] 2159 if x != nil { 2160 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2161 if ms.LoadMessageInfo() == nil { 2162 ms.StoreMessageInfo(mi) 2163 } 2164 return ms 2165 } 2166 return mi.MessageOf(x) 2167 } 2168 2169 // Deprecated: Use GenerateContentResponse_PromptFeedback.ProtoReflect.Descriptor instead. 2170 func (*GenerateContentResponse_PromptFeedback) Descriptor() ([]byte, []int) { 2171 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{21, 0} 2172 } 2173 2174 func (x *GenerateContentResponse_PromptFeedback) GetBlockReason() GenerateContentResponse_PromptFeedback_BlockedReason { 2175 if x != nil { 2176 return x.BlockReason 2177 } 2178 return GenerateContentResponse_PromptFeedback_BLOCKED_REASON_UNSPECIFIED 2179 } 2180 2181 func (x *GenerateContentResponse_PromptFeedback) GetSafetyRatings() []*SafetyRating { 2182 if x != nil { 2183 return x.SafetyRatings 2184 } 2185 return nil 2186 } 2187 2188 func (x *GenerateContentResponse_PromptFeedback) GetBlockReasonMessage() string { 2189 if x != nil { 2190 return x.BlockReasonMessage 2191 } 2192 return "" 2193 } 2194 2195 // Usage metadata about response(s). 2196 type GenerateContentResponse_UsageMetadata struct { 2197 state protoimpl.MessageState 2198 sizeCache protoimpl.SizeCache 2199 unknownFields protoimpl.UnknownFields 2200 2201 // Number of tokens in the request. When `cached_content` is set, this is 2202 // still the total effective prompt size meaning this includes the number of 2203 // tokens in the cached content. 2204 PromptTokenCount int32 `protobuf:"varint,1,opt,name=prompt_token_count,json=promptTokenCount,proto3" json:"prompt_token_count,omitempty"` 2205 // Number of tokens in the response(s). 2206 CandidatesTokenCount int32 `protobuf:"varint,2,opt,name=candidates_token_count,json=candidatesTokenCount,proto3" json:"candidates_token_count,omitempty"` 2207 // Output only. Number of tokens present in thoughts output. 2208 ThoughtsTokenCount int32 `protobuf:"varint,14,opt,name=thoughts_token_count,json=thoughtsTokenCount,proto3" json:"thoughts_token_count,omitempty"` 2209 // Total token count for prompt and response candidates. 2210 TotalTokenCount int32 `protobuf:"varint,3,opt,name=total_token_count,json=totalTokenCount,proto3" json:"total_token_count,omitempty"` 2211 // Output only. Number of tokens in the cached part in the input (the cached 2212 // content). 2213 CachedContentTokenCount int32 `protobuf:"varint,5,opt,name=cached_content_token_count,json=cachedContentTokenCount,proto3" json:"cached_content_token_count,omitempty"` 2214 // Output only. List of modalities that were processed in the request input. 2215 PromptTokensDetails []*ModalityTokenCount `protobuf:"bytes,9,rep,name=prompt_tokens_details,json=promptTokensDetails,proto3" json:"prompt_tokens_details,omitempty"` 2216 // Output only. List of modalities of the cached content in the request 2217 // input. 2218 CacheTokensDetails []*ModalityTokenCount `protobuf:"bytes,10,rep,name=cache_tokens_details,json=cacheTokensDetails,proto3" json:"cache_tokens_details,omitempty"` 2219 // Output only. List of modalities that were returned in the response. 2220 CandidatesTokensDetails []*ModalityTokenCount `protobuf:"bytes,11,rep,name=candidates_tokens_details,json=candidatesTokensDetails,proto3" json:"candidates_tokens_details,omitempty"` 2221 } 2222 2223 func (x *GenerateContentResponse_UsageMetadata) Reset() { 2224 *x = GenerateContentResponse_UsageMetadata{} 2225 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[32] 2226 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2227 ms.StoreMessageInfo(mi) 2228 } 2229 2230 func (x *GenerateContentResponse_UsageMetadata) String() string { 2231 return protoimpl.X.MessageStringOf(x) 2232 } 2233 2234 func (*GenerateContentResponse_UsageMetadata) ProtoMessage() {} 2235 2236 func (x *GenerateContentResponse_UsageMetadata) ProtoReflect() protoreflect.Message { 2237 mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[32] 2238 if x != nil { 2239 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2240 if ms.LoadMessageInfo() == nil { 2241 ms.StoreMessageInfo(mi) 2242 } 2243 return ms 2244 } 2245 return mi.MessageOf(x) 2246 } 2247 2248 // Deprecated: Use GenerateContentResponse_UsageMetadata.ProtoReflect.Descriptor instead. 2249 func (*GenerateContentResponse_UsageMetadata) Descriptor() ([]byte, []int) { 2250 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{21, 1} 2251 } 2252 2253 func (x *GenerateContentResponse_UsageMetadata) GetPromptTokenCount() int32 { 2254 if x != nil { 2255 return x.PromptTokenCount 2256 } 2257 return 0 2258 } 2259 2260 func (x *GenerateContentResponse_UsageMetadata) GetCandidatesTokenCount() int32 { 2261 if x != nil { 2262 return x.CandidatesTokenCount 2263 } 2264 return 0 2265 } 2266 2267 func (x *GenerateContentResponse_UsageMetadata) GetThoughtsTokenCount() int32 { 2268 if x != nil { 2269 return x.ThoughtsTokenCount 2270 } 2271 return 0 2272 } 2273 2274 func (x *GenerateContentResponse_UsageMetadata) GetTotalTokenCount() int32 { 2275 if x != nil { 2276 return x.TotalTokenCount 2277 } 2278 return 0 2279 } 2280 2281 func (x *GenerateContentResponse_UsageMetadata) GetCachedContentTokenCount() int32 { 2282 if x != nil { 2283 return x.CachedContentTokenCount 2284 } 2285 return 0 2286 } 2287 2288 func (x *GenerateContentResponse_UsageMetadata) GetPromptTokensDetails() []*ModalityTokenCount { 2289 if x != nil { 2290 return x.PromptTokensDetails 2291 } 2292 return nil 2293 } 2294 2295 func (x *GenerateContentResponse_UsageMetadata) GetCacheTokensDetails() []*ModalityTokenCount { 2296 if x != nil { 2297 return x.CacheTokensDetails 2298 } 2299 return nil 2300 } 2301 2302 func (x *GenerateContentResponse_UsageMetadata) GetCandidatesTokensDetails() []*ModalityTokenCount { 2303 if x != nil { 2304 return x.CandidatesTokensDetails 2305 } 2306 return nil 2307 } 2308 2309 var File_google_cloud_aiplatform_v1beta1_prediction_service_proto protoreflect.FileDescriptor 2310 2311 var file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDesc = []byte{ 2312 0x0a, 0x38, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 2313 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 2314 0x31, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 2315 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 2316 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 2317 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 2318 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 2319 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2320 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 2321 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 2322 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 2323 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 2324 0x68, 0x74, 0x74, 0x70, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 2325 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 2326 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2327 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 2328 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 2329 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2330 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 2331 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 2332 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x67, 0x6f, 0x6f, 2333 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 2334 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x74, 0x6f, 0x6f, 2335 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 2336 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 2337 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 2338 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 2339 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 2340 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2341 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 2342 0x6f, 0x74, 0x6f, 0x22, 0xe0, 0x02, 0x0a, 0x0e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 2343 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 2344 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 2345 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 2346 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, 2347 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x39, 2348 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 2349 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2350 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 2351 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x61, 0x72, 2352 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 2353 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2354 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 2355 0x73, 0x12, 0x58, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 2356 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2357 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 2358 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 2359 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 2360 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 2361 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 2362 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 2363 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 2364 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd1, 0x02, 0x0a, 0x0f, 0x50, 0x72, 0x65, 0x64, 0x69, 2365 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x72, 2366 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 2367 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 2368 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 2369 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 2370 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 2371 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 2372 0x12, 0x3d, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 2373 0x27, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 2374 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 2375 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 2376 0x2d, 0x0a, 0x10, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 2377 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 2378 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x31, 2379 0x0a, 0x12, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 2380 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 2381 0x10, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 2382 0x65, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 2383 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 2384 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 2385 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8e, 0x01, 0x0a, 0x11, 0x52, 2386 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 2387 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 2388 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 2389 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 2390 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 2391 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 2392 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 2393 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 2394 0x79, 0x52, 0x08, 0x68, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x94, 0x01, 0x0a, 0x17, 2395 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 2396 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 2397 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 2398 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 2399 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 2400 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 2401 0x31, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 2402 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 2403 0x48, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x08, 0x68, 0x74, 0x74, 0x70, 0x42, 0x6f, 2404 0x64, 0x79, 0x22, 0xe8, 0x01, 0x0a, 0x14, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x72, 0x65, 2405 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 2406 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 2407 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 2408 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 2409 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 2410 0x69, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 2411 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 2412 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 2413 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x06, 0x69, 0x6e, 2414 0x70, 0x75, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 2415 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2416 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 2417 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 2418 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xa3, 0x01, 2419 0x0a, 0x15, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 2420 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 2421 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2422 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 2423 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 2424 0x72, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 2425 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 2426 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 2427 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 2428 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 2429 0x65, 0x72, 0x73, 0x22, 0x98, 0x01, 0x0a, 0x17, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 2430 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 2431 0x46, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 2432 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 2433 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 2434 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 2435 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x68, 0x6f, 2436 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 2437 0x74, 0x68, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 2438 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x22, 0x32, 2439 0x0a, 0x18, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 2440 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 2441 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 2442 0x75, 0x74, 0x22, 0xf8, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x69, 0x72, 2443 0x65, 0x63, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 2444 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 2445 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 2446 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 2447 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 2448 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x69, 0x6e, 0x70, 2449 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2450 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 2451 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 2452 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 2453 0x4c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 2454 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 2455 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 2456 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 2457 0x01, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xa9, 0x01, 2458 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x72, 2459 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 2460 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 2461 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 2462 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 2463 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 2464 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 2465 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2466 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 2467 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x0a, 0x70, 2468 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xa8, 0x01, 0x0a, 0x1d, 0x53, 0x74, 2469 0x72, 0x65, 0x61, 0x6d, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 2470 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 2471 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 2472 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 2473 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 2474 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 2475 0x69, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 2476 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x6d, 2477 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x69, 0x6e, 0x70, 2478 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x69, 2479 0x6e, 0x70, 0x75, 0x74, 0x22, 0x38, 0x0a, 0x1e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x69, 2480 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 2481 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 2482 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0xeb, 2483 0x01, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 2484 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, 2485 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 2486 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 2487 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 2488 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 2489 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 2490 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 2491 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 2492 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x06, 0x69, 0x6e, 0x70, 2493 0x75, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 2494 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2495 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 2496 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 2497 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xa6, 0x01, 0x0a, 2498 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 2499 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x07, 0x6f, 0x75, 0x74, 2500 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 2501 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 2502 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 2503 0x73, 0x6f, 0x72, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x0a, 2504 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 2505 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2506 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 2507 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 2508 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x9b, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 2509 0x69, 0x6e, 0x67, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 2510 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 2511 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 2512 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2513 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 2514 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 2515 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 2516 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 2517 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 2518 0x70, 0x75, 0x74, 0x22, 0x35, 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 2519 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 2520 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 2521 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0xad, 0x05, 0x0a, 0x0e, 0x45, 2522 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 2523 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 2524 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 2525 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 2526 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 2527 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 2528 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2529 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 2530 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 2531 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 2532 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 2533 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x70, 0x61, 2534 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x74, 0x0a, 0x19, 0x65, 0x78, 0x70, 0x6c, 2535 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6f, 0x76, 0x65, 2536 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 2537 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 2538 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 2539 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x4f, 0x76, 0x65, 2540 0x72, 0x72, 0x69, 0x64, 0x65, 0x52, 0x17, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 2541 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0xac, 2542 0x01, 0x0a, 0x24, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x78, 2543 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6f, 2544 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x56, 0x2e, 2545 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 2546 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 2547 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 2548 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 2549 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 2550 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x21, 0x63, 0x6f, 0x6e, 0x63, 2551 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 2552 0x6e, 0x53, 0x70, 0x65, 0x63, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x2a, 0x0a, 2553 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 2554 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 2555 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x1a, 0x8e, 0x01, 0x0a, 0x26, 0x43, 0x6f, 2556 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 2557 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x45, 2558 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 2559 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 2560 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2561 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 2562 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 2563 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x52, 2564 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd0, 0x04, 0x0a, 0x0f, 0x45, 2565 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 2566 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 2567 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2568 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 2569 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 2570 0x6f, 0x6e, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 2571 0x12, 0x85, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 2572 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 2573 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 2574 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 2575 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 2576 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 2577 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 2578 0x52, 0x16, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x6c, 2579 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x6c, 2580 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 2581 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 2582 0x65, 0x6c, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 2583 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2584 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 2585 0x65, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x69, 2586 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x6c, 2587 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x6c, 0x61, 2588 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 2589 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 2590 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 2591 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x65, 0x78, 0x70, 2592 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x91, 0x01, 0x0a, 0x1b, 0x43, 0x6f, 2593 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 2594 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 2595 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x5c, 0x0a, 0x05, 0x76, 2596 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 2597 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 2598 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 2599 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 2600 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 2601 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb9, 0x04, 2602 0x0a, 0x12, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 2603 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 2604 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 2605 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2606 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 2607 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x05, 2608 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 2609 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x39, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 2610 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 2611 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 2612 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 2613 0x65, 0x73, 0x12, 0x49, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 2614 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2615 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 2616 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x03, 2617 0xe0, 0x41, 0x01, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x61, 0x0a, 2618 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 2619 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2620 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 2621 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 2622 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x11, 0x73, 0x79, 0x73, 0x74, 2623 0x65, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 2624 0x12, 0x40, 0x0a, 0x05, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 2625 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 2626 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 2627 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x74, 0x6f, 0x6f, 2628 0x6c, 0x73, 0x12, 0x68, 0x0a, 0x11, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2629 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 2630 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 2631 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 2632 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 2633 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 2634 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 2635 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 2636 0x69, 0x6f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 2637 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xe2, 0x01, 0x0a, 0x13, 0x43, 0x6f, 2638 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 2639 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 2640 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, 2641 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x69, 2642 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 2643 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x69, 2644 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 2645 0x12, 0x6c, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 2646 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 2647 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 2648 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 2649 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 2650 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x70, 0x72, 0x6f, 0x6d, 0x70, 2651 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0xab, 2652 0x07, 0x0a, 0x16, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 2653 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 2654 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6d, 2655 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x49, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 2656 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2657 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 2658 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 2659 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 2660 0x61, 0x0a, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 2661 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 2662 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 2663 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 2664 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x11, 0x73, 0x79, 2665 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 2666 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 2667 0x74, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x01, 0xfa, 2668 0x41, 0x29, 0x0a, 0x27, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 2669 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x61, 2670 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x0d, 0x63, 0x61, 0x63, 2671 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x05, 0x74, 0x6f, 2672 0x6f, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2673 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 2674 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 2675 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x51, 0x0a, 0x0b, 2676 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 2677 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2678 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 2679 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 2680 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x74, 0x6f, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 2681 0x60, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 2682 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 2683 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 2684 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 2685 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 2686 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 2687 0x73, 0x12, 0x5c, 0x0a, 0x0f, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x73, 0x65, 0x74, 0x74, 2688 0x69, 0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 2689 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 2690 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x61, 0x66, 2691 0x65, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 2692 0x0e, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 2693 0x64, 0x0a, 0x12, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x5f, 0x63, 2694 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 2695 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 2696 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 2697 0x64, 0x65, 0x6c, 0x41, 0x72, 0x6d, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 2698 0xe0, 0x41, 0x01, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x41, 0x72, 0x6d, 0x6f, 0x72, 0x43, 2699 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x63, 0x0a, 0x11, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 2700 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 2701 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2702 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 2703 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 2704 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 2705 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 2706 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 2707 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 2708 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 2709 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 2710 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf1, 0x0b, 0x0a, 2711 0x17, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 2712 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0a, 0x63, 0x61, 0x6e, 0x64, 2713 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 2714 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 2715 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 2716 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 2717 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 2718 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 2719 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 2720 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 2721 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2722 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 2723 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 2724 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 2725 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 2726 0x0a, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x64, 0x12, 0x75, 0x0a, 0x0f, 0x70, 2727 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x03, 2728 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2729 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 2730 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 2731 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 2732 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x42, 0x03, 0xe0, 2733 0x41, 0x03, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 2734 0x63, 0x6b, 0x12, 0x6d, 0x0a, 0x0e, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 2735 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 2736 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 2737 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 2738 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 2739 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 2740 0x74, 0x61, 0x52, 0x0d, 0x75, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 2741 0x61, 0x1a, 0xa1, 0x03, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x46, 0x65, 0x65, 0x64, 2742 0x62, 0x61, 0x63, 0x6b, 0x12, 0x7d, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x65, 2743 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 2744 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 2745 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 2746 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 2747 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x46, 0x65, 0x65, 0x64, 0x62, 2748 0x61, 0x63, 0x6b, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 2749 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x61, 2750 0x73, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0e, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x72, 0x61, 2751 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 2752 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 2753 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x61, 2754 0x66, 0x65, 0x74, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 2755 0x0d, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x35, 2756 0x0a, 0x14, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x6d, 2757 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 2758 0x03, 0x52, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x4d, 0x65, 2759 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x7e, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 2760 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 2761 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 2762 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x41, 0x46, 0x45, 0x54, 0x59, 2763 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x02, 0x12, 0x0d, 0x0a, 2764 0x09, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 2765 0x50, 0x52, 0x4f, 0x48, 0x49, 0x42, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 2766 0x4e, 0x54, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x41, 0x52, 2767 0x4d, 0x4f, 0x52, 0x10, 0x05, 0x1a, 0xe8, 0x04, 0x0a, 0x0d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4d, 2768 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x6d, 0x70, 2769 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 2770 0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 2771 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 2772 0x74, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 2773 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 2774 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x14, 0x74, 2775 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, 0x6f, 2776 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 2777 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x6f, 0x75, 2778 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 2779 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x74, 2780 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 2781 0x0a, 0x1a, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 2782 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 2783 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x17, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 2784 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 2785 0x12, 0x6c, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 2786 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 2787 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 2788 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 2789 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 2790 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x70, 0x72, 0x6f, 0x6d, 0x70, 2791 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x6a, 2792 0x0a, 0x14, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x5f, 0x64, 2793 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 2794 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 2795 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 2796 0x6f, 0x64, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 2797 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x63, 0x61, 0x63, 0x68, 0x65, 0x54, 0x6f, 0x6b, 2798 0x65, 0x6e, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x74, 0x0a, 0x19, 0x63, 0x61, 2799 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x5f, 2800 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 2801 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 2802 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 2803 0x4d, 0x6f, 0x64, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x6f, 0x75, 2804 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x17, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 2805 0x74, 0x65, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 2806 0x22, 0x98, 0x01, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 2807 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 2808 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 2809 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 2810 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 2811 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 2812 0x69, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x62, 0x6f, 0x64, 0x79, 2813 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2814 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x03, 0xe0, 0x41, 2815 0x01, 0x52, 0x08, 0x68, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x9a, 0x01, 0x0a, 0x1a, 2816 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 2817 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x17, 0x67, 0x65, 2818 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x72, 0x65, 0x73, 2819 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 2820 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 2821 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 2822 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 2823 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x15, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x56, 2824 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0a, 0x0a, 0x08, 2825 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x0a, 0x1a, 0x50, 0x72, 0x65, 0x64, 2826 0x69, 0x63, 0x74, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x65, 2827 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xdc, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x6e, 0x65, 0x72, 2828 0x61, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 2829 0x12, 0x2b, 0x0a, 0x11, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x61, 2830 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x67, 0x65, 0x6e, 2831 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x3c, 0x0a, 2832 0x18, 0x72, 0x61, 0x69, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 2833 0x72, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 2834 0x00, 0x52, 0x15, 0x72, 0x61, 0x69, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 2835 0x72, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x1a, 0x72, 2836 0x61, 0x69, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 2837 0x64, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 2838 0x17, 0x72, 0x61, 0x69, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 2839 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x61, 0x69, 2840 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x5f, 2841 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0xc1, 0x20, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 2842 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa8, 0x02, 0x0a, 0x07, 2843 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2844 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 2845 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 2846 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2847 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 2848 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 2849 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb9, 0x01, 0xda, 0x41, 0x1d, 2850 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 2851 0x65, 0x73, 0x2c, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x82, 0xd3, 0xe4, 2852 0x93, 0x02, 0x92, 0x01, 0x3a, 0x01, 0x2a, 0x5a, 0x4d, 0x3a, 0x01, 0x2a, 0x22, 0x48, 0x2f, 0x76, 2853 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 2854 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 2855 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 2856 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x70, 2857 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x22, 0x3e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 2858 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 2859 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 2860 0x2a, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x70, 2861 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0x8d, 0x02, 0x0a, 0x0a, 0x52, 0x61, 0x77, 0x50, 0x72, 2862 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2863 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 2864 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 2865 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2866 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x22, 2867 0xb4, 0x01, 0xda, 0x41, 0x12, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x68, 0x74, 2868 0x74, 0x70, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x98, 0x01, 0x3a, 0x01, 2869 0x2a, 0x5a, 0x50, 0x3a, 0x01, 0x2a, 0x22, 0x4b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 2870 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 2871 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 2872 0x2a, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 2873 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 2874 0x69, 0x63, 0x74, 0x22, 0x41, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 2875 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 2876 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 2877 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x61, 0x77, 0x50, 2878 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0xa7, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, 0x61, 2879 0x6d, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0x38, 0x2e, 0x67, 0x6f, 2880 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 2881 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 2882 0x72, 0x65, 0x61, 0x6d, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 2883 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 2884 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xc0, 0x01, 0xda, 0x41, 2885 0x12, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x62, 2886 0x6f, 0x64, 0x79, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xa4, 0x01, 0x3a, 0x01, 0x2a, 0x5a, 0x56, 0x3a, 2887 0x01, 0x2a, 0x22, 0x51, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 2888 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 2889 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x75, 2890 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 2891 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x61, 0x77, 0x50, 0x72, 2892 0x65, 0x64, 0x69, 0x63, 0x74, 0x22, 0x47, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 2893 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 2894 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 2895 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 2896 0x72, 0x65, 0x61, 0x6d, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x30, 0x01, 2897 0x12, 0xcf, 0x01, 0x0a, 0x0d, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 2898 0x63, 0x74, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 2899 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 2900 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 2901 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2902 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 2903 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x69, 0x72, 0x65, 2904 0x63, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 2905 0x65, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x3a, 0x01, 0x2a, 0x22, 0x44, 0x2f, 0x76, 2906 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 2907 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 2908 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 2909 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 2910 0x63, 0x74, 0x12, 0xdb, 0x01, 0x0a, 0x10, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x77, 2911 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2912 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 2913 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 2914 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 2915 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2916 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 2917 0x74, 0x61, 0x31, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 2918 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x82, 0xd3, 2919 0xe4, 0x93, 0x02, 0x4c, 0x3a, 0x01, 0x2a, 0x22, 0x47, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 2920 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 2921 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 2922 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 2923 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 2924 0x12, 0x96, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x69, 0x72, 0x65, 0x63, 2925 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2926 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 2927 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 2928 0x6d, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 2929 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2930 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 2931 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x69, 2932 0x72, 0x65, 0x63, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 2933 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x9f, 0x01, 0x0a, 0x16, 0x53, 0x74, 2934 0x72, 0x65, 0x61, 0x6d, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 2935 0x64, 0x69, 0x63, 0x74, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2936 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 2937 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x69, 0x72, 2938 0x65, 0x63, 0x74, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 2939 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2940 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 2941 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x69, 0x72, 2942 0x65, 0x63, 0x74, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 2943 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x8d, 0x01, 0x0a, 0x10, 2944 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 2945 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2946 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 2947 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 2948 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 2949 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 2950 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 2951 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 2952 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0xc9, 0x02, 0x0a, 0x16, 2953 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 2954 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2955 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 2956 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 2957 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 2958 0x1a, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2959 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 2960 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 2961 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb7, 0x01, 0x82, 0xd3, 2962 0xe4, 0x93, 0x02, 0xb0, 0x01, 0x3a, 0x01, 0x2a, 0x5a, 0x5c, 0x3a, 0x01, 0x2a, 0x22, 0x57, 0x2f, 2963 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 2964 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 2965 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 2966 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 2967 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 2968 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x22, 0x4d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 2969 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 2970 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 2971 0x2a, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 2972 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x72, 2973 0x65, 0x64, 0x69, 0x63, 0x74, 0x30, 0x01, 0x12, 0x96, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 2974 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 2975 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 2976 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 2977 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x77, 0x50, 0x72, 2978 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x67, 2979 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 2980 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 2981 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 2982 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 2983 0x12, 0xe9, 0x01, 0x0a, 0x07, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x12, 0x2f, 0x2e, 0x67, 2984 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 2985 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 2986 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 2987 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 2988 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 2989 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 2990 0x7b, 0xda, 0x41, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x73, 2991 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 2992 0x73, 0x2c, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 2993 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x3a, 0x01, 0x2a, 0x22, 0x3e, 0x2f, 0x76, 2994 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 2995 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 2996 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 2997 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x12, 0x9f, 0x03, 0x0a, 2998 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x33, 0x2e, 0x67, 2999 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 3000 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 3001 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 3002 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3003 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 3004 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 3005 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa4, 0x02, 0xda, 0x41, 0x12, 0x65, 0x6e, 0x64, 3006 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x82, 3007 0xd3, 0xe4, 0x93, 0x02, 0x88, 0x02, 0x3a, 0x01, 0x2a, 0x5a, 0x51, 0x3a, 0x01, 0x2a, 0x22, 0x4c, 3008 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 3009 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 3010 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 3011 0x68, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 3012 0x3a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x5a, 0x30, 0x3a, 0x01, 3013 0x2a, 0x22, 0x2b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 3014 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 3015 0x2a, 0x7d, 0x3a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x5a, 0x3a, 3016 0x3a, 0x01, 0x2a, 0x22, 0x35, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 3017 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 3018 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 3019 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x42, 0x2f, 0x76, 0x31, 0x62, 3020 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 3021 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 3022 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 3023 0x2a, 0x7d, 0x3a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0xab, 3024 0x03, 0x0a, 0x0f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 3025 0x6e, 0x74, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3026 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 3027 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 3028 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x6f, 3029 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 3030 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 3031 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 3032 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa4, 0x02, 0xda, 0x41, 0x0e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 3033 0x2c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8c, 0x02, 3034 0x3a, 0x01, 0x2a, 0x5a, 0x52, 0x3a, 0x01, 0x2a, 0x22, 0x4d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 3035 0x61, 0x31, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 3036 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 3037 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 3038 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 3039 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5a, 0x31, 0x3a, 0x01, 0x2a, 0x22, 0x2c, 0x2f, 0x76, 3040 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x3d, 0x65, 0x6e, 3041 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x6e, 0x65, 0x72, 3042 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5a, 0x3b, 0x3a, 0x01, 0x2a, 0x22, 3043 0x36, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 3044 0x3d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 3045 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 3046 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x43, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 3047 0x31, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 3048 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 3049 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x6e, 3050 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0xcb, 0x03, 0x0a, 3051 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 3052 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3053 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 3054 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 3055 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 3056 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 3057 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 3058 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 3059 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x02, 0xda, 0x41, 0x0e, 0x6d, 3060 0x6f, 0x64, 0x65, 0x6c, 0x2c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, 3061 0x93, 0x02, 0xa4, 0x02, 0x3a, 0x01, 0x2a, 0x5a, 0x58, 0x3a, 0x01, 0x2a, 0x22, 0x53, 0x2f, 0x76, 3062 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x3d, 0x70, 0x72, 3063 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 3064 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x73, 0x2f, 3065 0x2a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x72, 0x65, 3066 0x61, 0x6d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 3067 0x74, 0x5a, 0x37, 0x3a, 0x01, 0x2a, 0x22, 0x32, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 3068 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x3d, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 3069 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x47, 0x65, 0x6e, 0x65, 0x72, 3070 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5a, 0x41, 0x3a, 0x01, 0x2a, 0x22, 3071 0x3c, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 3072 0x3d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 3073 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x47, 0x65, 3074 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x49, 0x2f, 3075 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x3d, 0x70, 3076 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 3077 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 3078 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 3079 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12, 0xd3, 0x01, 0x0a, 0x0f, 0x43, 3080 0x68, 0x61, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, 3081 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 3082 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 3083 0x2e, 0x43, 0x68, 0x61, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 3084 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3085 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x6f, 0xda, 3086 0x41, 0x12, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x5f, 3087 0x62, 0x6f, 0x64, 0x79, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x54, 0x3a, 0x09, 0x68, 0x74, 0x74, 0x70, 3088 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x47, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 3089 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 3090 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 3091 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x68, 3092 0x61, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x30, 0x01, 3093 0x1a, 0x86, 0x01, 0xca, 0x41, 0x19, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 3094 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 3095 0x41, 0x67, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 3096 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 3097 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 3098 0x2c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 3099 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 3100 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 3101 0x72, 0x65, 0x61, 0x64, 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x42, 0xed, 0x01, 0x0a, 0x23, 0x63, 0x6f, 3102 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 3103 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 3104 0x31, 0x42, 0x16, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 3105 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 3106 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 3107 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 3108 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 3109 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 3110 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3111 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 3112 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 3113 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 3114 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 3115 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 3116 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 3117 0x33, 3118 } 3119 3120 var ( 3121 file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescOnce sync.Once 3122 file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescData = file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDesc 3123 ) 3124 3125 func file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP() []byte { 3126 file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescOnce.Do(func() { 3127 file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescData) 3128 }) 3129 return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescData 3130 } 3131 3132 var file_google_cloud_aiplatform_v1beta1_prediction_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1) 3133 var file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes = make([]protoimpl.MessageInfo, 33) 3134 var file_google_cloud_aiplatform_v1beta1_prediction_service_proto_goTypes = []any{ 3135 (GenerateContentResponse_PromptFeedback_BlockedReason)(0), // 0: google.cloud.aiplatform.v1beta1.GenerateContentResponse.PromptFeedback.BlockedReason 3136 (*PredictRequest)(nil), // 1: google.cloud.aiplatform.v1beta1.PredictRequest 3137 (*PredictResponse)(nil), // 2: google.cloud.aiplatform.v1beta1.PredictResponse 3138 (*RawPredictRequest)(nil), // 3: google.cloud.aiplatform.v1beta1.RawPredictRequest 3139 (*StreamRawPredictRequest)(nil), // 4: google.cloud.aiplatform.v1beta1.StreamRawPredictRequest 3140 (*DirectPredictRequest)(nil), // 5: google.cloud.aiplatform.v1beta1.DirectPredictRequest 3141 (*DirectPredictResponse)(nil), // 6: google.cloud.aiplatform.v1beta1.DirectPredictResponse 3142 (*DirectRawPredictRequest)(nil), // 7: google.cloud.aiplatform.v1beta1.DirectRawPredictRequest 3143 (*DirectRawPredictResponse)(nil), // 8: google.cloud.aiplatform.v1beta1.DirectRawPredictResponse 3144 (*StreamDirectPredictRequest)(nil), // 9: google.cloud.aiplatform.v1beta1.StreamDirectPredictRequest 3145 (*StreamDirectPredictResponse)(nil), // 10: google.cloud.aiplatform.v1beta1.StreamDirectPredictResponse 3146 (*StreamDirectRawPredictRequest)(nil), // 11: google.cloud.aiplatform.v1beta1.StreamDirectRawPredictRequest 3147 (*StreamDirectRawPredictResponse)(nil), // 12: google.cloud.aiplatform.v1beta1.StreamDirectRawPredictResponse 3148 (*StreamingPredictRequest)(nil), // 13: google.cloud.aiplatform.v1beta1.StreamingPredictRequest 3149 (*StreamingPredictResponse)(nil), // 14: google.cloud.aiplatform.v1beta1.StreamingPredictResponse 3150 (*StreamingRawPredictRequest)(nil), // 15: google.cloud.aiplatform.v1beta1.StreamingRawPredictRequest 3151 (*StreamingRawPredictResponse)(nil), // 16: google.cloud.aiplatform.v1beta1.StreamingRawPredictResponse 3152 (*ExplainRequest)(nil), // 17: google.cloud.aiplatform.v1beta1.ExplainRequest 3153 (*ExplainResponse)(nil), // 18: google.cloud.aiplatform.v1beta1.ExplainResponse 3154 (*CountTokensRequest)(nil), // 19: google.cloud.aiplatform.v1beta1.CountTokensRequest 3155 (*CountTokensResponse)(nil), // 20: google.cloud.aiplatform.v1beta1.CountTokensResponse 3156 (*GenerateContentRequest)(nil), // 21: google.cloud.aiplatform.v1beta1.GenerateContentRequest 3157 (*GenerateContentResponse)(nil), // 22: google.cloud.aiplatform.v1beta1.GenerateContentResponse 3158 (*ChatCompletionsRequest)(nil), // 23: google.cloud.aiplatform.v1beta1.ChatCompletionsRequest 3159 (*PredictLongRunningResponse)(nil), // 24: google.cloud.aiplatform.v1beta1.PredictLongRunningResponse 3160 (*PredictLongRunningMetadata)(nil), // 25: google.cloud.aiplatform.v1beta1.PredictLongRunningMetadata 3161 (*GenerateVideoResponse)(nil), // 26: google.cloud.aiplatform.v1beta1.GenerateVideoResponse 3162 nil, // 27: google.cloud.aiplatform.v1beta1.PredictRequest.LabelsEntry 3163 nil, // 28: google.cloud.aiplatform.v1beta1.ExplainRequest.ConcurrentExplanationSpecOverrideEntry 3164 (*ExplainResponse_ConcurrentExplanation)(nil), // 29: google.cloud.aiplatform.v1beta1.ExplainResponse.ConcurrentExplanation 3165 nil, // 30: google.cloud.aiplatform.v1beta1.ExplainResponse.ConcurrentExplanationsEntry 3166 nil, // 31: google.cloud.aiplatform.v1beta1.GenerateContentRequest.LabelsEntry 3167 (*GenerateContentResponse_PromptFeedback)(nil), // 32: google.cloud.aiplatform.v1beta1.GenerateContentResponse.PromptFeedback 3168 (*GenerateContentResponse_UsageMetadata)(nil), // 33: google.cloud.aiplatform.v1beta1.GenerateContentResponse.UsageMetadata 3169 (*structpb.Value)(nil), // 34: google.protobuf.Value 3170 (*httpbody.HttpBody)(nil), // 35: google.api.HttpBody 3171 (*Tensor)(nil), // 36: google.cloud.aiplatform.v1beta1.Tensor 3172 (*ExplanationSpecOverride)(nil), // 37: google.cloud.aiplatform.v1beta1.ExplanationSpecOverride 3173 (*Explanation)(nil), // 38: google.cloud.aiplatform.v1beta1.Explanation 3174 (*Content)(nil), // 39: google.cloud.aiplatform.v1beta1.Content 3175 (*Tool)(nil), // 40: google.cloud.aiplatform.v1beta1.Tool 3176 (*GenerationConfig)(nil), // 41: google.cloud.aiplatform.v1beta1.GenerationConfig 3177 (*ModalityTokenCount)(nil), // 42: google.cloud.aiplatform.v1beta1.ModalityTokenCount 3178 (*ToolConfig)(nil), // 43: google.cloud.aiplatform.v1beta1.ToolConfig 3179 (*SafetySetting)(nil), // 44: google.cloud.aiplatform.v1beta1.SafetySetting 3180 (*ModelArmorConfig)(nil), // 45: google.cloud.aiplatform.v1beta1.ModelArmorConfig 3181 (*Candidate)(nil), // 46: google.cloud.aiplatform.v1beta1.Candidate 3182 (*timestamppb.Timestamp)(nil), // 47: google.protobuf.Timestamp 3183 (*SafetyRating)(nil), // 48: google.cloud.aiplatform.v1beta1.SafetyRating 3184 } 3185 var file_google_cloud_aiplatform_v1beta1_prediction_service_proto_depIdxs = []int32{ 3186 34, // 0: google.cloud.aiplatform.v1beta1.PredictRequest.instances:type_name -> google.protobuf.Value 3187 34, // 1: google.cloud.aiplatform.v1beta1.PredictRequest.parameters:type_name -> google.protobuf.Value 3188 27, // 2: google.cloud.aiplatform.v1beta1.PredictRequest.labels:type_name -> google.cloud.aiplatform.v1beta1.PredictRequest.LabelsEntry 3189 34, // 3: google.cloud.aiplatform.v1beta1.PredictResponse.predictions:type_name -> google.protobuf.Value 3190 34, // 4: google.cloud.aiplatform.v1beta1.PredictResponse.metadata:type_name -> google.protobuf.Value 3191 35, // 5: google.cloud.aiplatform.v1beta1.RawPredictRequest.http_body:type_name -> google.api.HttpBody 3192 35, // 6: google.cloud.aiplatform.v1beta1.StreamRawPredictRequest.http_body:type_name -> google.api.HttpBody 3193 36, // 7: google.cloud.aiplatform.v1beta1.DirectPredictRequest.inputs:type_name -> google.cloud.aiplatform.v1beta1.Tensor 3194 36, // 8: google.cloud.aiplatform.v1beta1.DirectPredictRequest.parameters:type_name -> google.cloud.aiplatform.v1beta1.Tensor 3195 36, // 9: google.cloud.aiplatform.v1beta1.DirectPredictResponse.outputs:type_name -> google.cloud.aiplatform.v1beta1.Tensor 3196 36, // 10: google.cloud.aiplatform.v1beta1.DirectPredictResponse.parameters:type_name -> google.cloud.aiplatform.v1beta1.Tensor 3197 36, // 11: google.cloud.aiplatform.v1beta1.StreamDirectPredictRequest.inputs:type_name -> google.cloud.aiplatform.v1beta1.Tensor 3198 36, // 12: google.cloud.aiplatform.v1beta1.StreamDirectPredictRequest.parameters:type_name -> google.cloud.aiplatform.v1beta1.Tensor 3199 36, // 13: google.cloud.aiplatform.v1beta1.StreamDirectPredictResponse.outputs:type_name -> google.cloud.aiplatform.v1beta1.Tensor 3200 36, // 14: google.cloud.aiplatform.v1beta1.StreamDirectPredictResponse.parameters:type_name -> google.cloud.aiplatform.v1beta1.Tensor 3201 36, // 15: google.cloud.aiplatform.v1beta1.StreamingPredictRequest.inputs:type_name -> google.cloud.aiplatform.v1beta1.Tensor 3202 36, // 16: google.cloud.aiplatform.v1beta1.StreamingPredictRequest.parameters:type_name -> google.cloud.aiplatform.v1beta1.Tensor 3203 36, // 17: google.cloud.aiplatform.v1beta1.StreamingPredictResponse.outputs:type_name -> google.cloud.aiplatform.v1beta1.Tensor 3204 36, // 18: google.cloud.aiplatform.v1beta1.StreamingPredictResponse.parameters:type_name -> google.cloud.aiplatform.v1beta1.Tensor 3205 34, // 19: google.cloud.aiplatform.v1beta1.ExplainRequest.instances:type_name -> google.protobuf.Value 3206 34, // 20: google.cloud.aiplatform.v1beta1.ExplainRequest.parameters:type_name -> google.protobuf.Value 3207 37, // 21: google.cloud.aiplatform.v1beta1.ExplainRequest.explanation_spec_override:type_name -> google.cloud.aiplatform.v1beta1.ExplanationSpecOverride 3208 28, // 22: google.cloud.aiplatform.v1beta1.ExplainRequest.concurrent_explanation_spec_override:type_name -> google.cloud.aiplatform.v1beta1.ExplainRequest.ConcurrentExplanationSpecOverrideEntry 3209 38, // 23: google.cloud.aiplatform.v1beta1.ExplainResponse.explanations:type_name -> google.cloud.aiplatform.v1beta1.Explanation 3210 30, // 24: google.cloud.aiplatform.v1beta1.ExplainResponse.concurrent_explanations:type_name -> google.cloud.aiplatform.v1beta1.ExplainResponse.ConcurrentExplanationsEntry 3211 34, // 25: google.cloud.aiplatform.v1beta1.ExplainResponse.predictions:type_name -> google.protobuf.Value 3212 34, // 26: google.cloud.aiplatform.v1beta1.CountTokensRequest.instances:type_name -> google.protobuf.Value 3213 39, // 27: google.cloud.aiplatform.v1beta1.CountTokensRequest.contents:type_name -> google.cloud.aiplatform.v1beta1.Content 3214 39, // 28: google.cloud.aiplatform.v1beta1.CountTokensRequest.system_instruction:type_name -> google.cloud.aiplatform.v1beta1.Content 3215 40, // 29: google.cloud.aiplatform.v1beta1.CountTokensRequest.tools:type_name -> google.cloud.aiplatform.v1beta1.Tool 3216 41, // 30: google.cloud.aiplatform.v1beta1.CountTokensRequest.generation_config:type_name -> google.cloud.aiplatform.v1beta1.GenerationConfig 3217 42, // 31: google.cloud.aiplatform.v1beta1.CountTokensResponse.prompt_tokens_details:type_name -> google.cloud.aiplatform.v1beta1.ModalityTokenCount 3218 39, // 32: google.cloud.aiplatform.v1beta1.GenerateContentRequest.contents:type_name -> google.cloud.aiplatform.v1beta1.Content 3219 39, // 33: google.cloud.aiplatform.v1beta1.GenerateContentRequest.system_instruction:type_name -> google.cloud.aiplatform.v1beta1.Content 3220 40, // 34: google.cloud.aiplatform.v1beta1.GenerateContentRequest.tools:type_name -> google.cloud.aiplatform.v1beta1.Tool 3221 43, // 35: google.cloud.aiplatform.v1beta1.GenerateContentRequest.tool_config:type_name -> google.cloud.aiplatform.v1beta1.ToolConfig 3222 31, // 36: google.cloud.aiplatform.v1beta1.GenerateContentRequest.labels:type_name -> google.cloud.aiplatform.v1beta1.GenerateContentRequest.LabelsEntry 3223 44, // 37: google.cloud.aiplatform.v1beta1.GenerateContentRequest.safety_settings:type_name -> google.cloud.aiplatform.v1beta1.SafetySetting 3224 45, // 38: google.cloud.aiplatform.v1beta1.GenerateContentRequest.model_armor_config:type_name -> google.cloud.aiplatform.v1beta1.ModelArmorConfig 3225 41, // 39: google.cloud.aiplatform.v1beta1.GenerateContentRequest.generation_config:type_name -> google.cloud.aiplatform.v1beta1.GenerationConfig 3226 46, // 40: google.cloud.aiplatform.v1beta1.GenerateContentResponse.candidates:type_name -> google.cloud.aiplatform.v1beta1.Candidate 3227 47, // 41: google.cloud.aiplatform.v1beta1.GenerateContentResponse.create_time:type_name -> google.protobuf.Timestamp 3228 32, // 42: google.cloud.aiplatform.v1beta1.GenerateContentResponse.prompt_feedback:type_name -> google.cloud.aiplatform.v1beta1.GenerateContentResponse.PromptFeedback 3229 33, // 43: google.cloud.aiplatform.v1beta1.GenerateContentResponse.usage_metadata:type_name -> google.cloud.aiplatform.v1beta1.GenerateContentResponse.UsageMetadata 3230 35, // 44: google.cloud.aiplatform.v1beta1.ChatCompletionsRequest.http_body:type_name -> google.api.HttpBody 3231 26, // 45: google.cloud.aiplatform.v1beta1.PredictLongRunningResponse.generate_video_response:type_name -> google.cloud.aiplatform.v1beta1.GenerateVideoResponse 3232 37, // 46: google.cloud.aiplatform.v1beta1.ExplainRequest.ConcurrentExplanationSpecOverrideEntry.value:type_name -> google.cloud.aiplatform.v1beta1.ExplanationSpecOverride 3233 38, // 47: google.cloud.aiplatform.v1beta1.ExplainResponse.ConcurrentExplanation.explanations:type_name -> google.cloud.aiplatform.v1beta1.Explanation 3234 29, // 48: google.cloud.aiplatform.v1beta1.ExplainResponse.ConcurrentExplanationsEntry.value:type_name -> google.cloud.aiplatform.v1beta1.ExplainResponse.ConcurrentExplanation 3235 0, // 49: google.cloud.aiplatform.v1beta1.GenerateContentResponse.PromptFeedback.block_reason:type_name -> google.cloud.aiplatform.v1beta1.GenerateContentResponse.PromptFeedback.BlockedReason 3236 48, // 50: google.cloud.aiplatform.v1beta1.GenerateContentResponse.PromptFeedback.safety_ratings:type_name -> google.cloud.aiplatform.v1beta1.SafetyRating 3237 42, // 51: google.cloud.aiplatform.v1beta1.GenerateContentResponse.UsageMetadata.prompt_tokens_details:type_name -> google.cloud.aiplatform.v1beta1.ModalityTokenCount 3238 42, // 52: google.cloud.aiplatform.v1beta1.GenerateContentResponse.UsageMetadata.cache_tokens_details:type_name -> google.cloud.aiplatform.v1beta1.ModalityTokenCount 3239 42, // 53: google.cloud.aiplatform.v1beta1.GenerateContentResponse.UsageMetadata.candidates_tokens_details:type_name -> google.cloud.aiplatform.v1beta1.ModalityTokenCount 3240 1, // 54: google.cloud.aiplatform.v1beta1.PredictionService.Predict:input_type -> google.cloud.aiplatform.v1beta1.PredictRequest 3241 3, // 55: google.cloud.aiplatform.v1beta1.PredictionService.RawPredict:input_type -> google.cloud.aiplatform.v1beta1.RawPredictRequest 3242 4, // 56: google.cloud.aiplatform.v1beta1.PredictionService.StreamRawPredict:input_type -> google.cloud.aiplatform.v1beta1.StreamRawPredictRequest 3243 5, // 57: google.cloud.aiplatform.v1beta1.PredictionService.DirectPredict:input_type -> google.cloud.aiplatform.v1beta1.DirectPredictRequest 3244 7, // 58: google.cloud.aiplatform.v1beta1.PredictionService.DirectRawPredict:input_type -> google.cloud.aiplatform.v1beta1.DirectRawPredictRequest 3245 9, // 59: google.cloud.aiplatform.v1beta1.PredictionService.StreamDirectPredict:input_type -> google.cloud.aiplatform.v1beta1.StreamDirectPredictRequest 3246 11, // 60: google.cloud.aiplatform.v1beta1.PredictionService.StreamDirectRawPredict:input_type -> google.cloud.aiplatform.v1beta1.StreamDirectRawPredictRequest 3247 13, // 61: google.cloud.aiplatform.v1beta1.PredictionService.StreamingPredict:input_type -> google.cloud.aiplatform.v1beta1.StreamingPredictRequest 3248 13, // 62: google.cloud.aiplatform.v1beta1.PredictionService.ServerStreamingPredict:input_type -> google.cloud.aiplatform.v1beta1.StreamingPredictRequest 3249 15, // 63: google.cloud.aiplatform.v1beta1.PredictionService.StreamingRawPredict:input_type -> google.cloud.aiplatform.v1beta1.StreamingRawPredictRequest 3250 17, // 64: google.cloud.aiplatform.v1beta1.PredictionService.Explain:input_type -> google.cloud.aiplatform.v1beta1.ExplainRequest 3251 19, // 65: google.cloud.aiplatform.v1beta1.PredictionService.CountTokens:input_type -> google.cloud.aiplatform.v1beta1.CountTokensRequest 3252 21, // 66: google.cloud.aiplatform.v1beta1.PredictionService.GenerateContent:input_type -> google.cloud.aiplatform.v1beta1.GenerateContentRequest 3253 21, // 67: google.cloud.aiplatform.v1beta1.PredictionService.StreamGenerateContent:input_type -> google.cloud.aiplatform.v1beta1.GenerateContentRequest 3254 23, // 68: google.cloud.aiplatform.v1beta1.PredictionService.ChatCompletions:input_type -> google.cloud.aiplatform.v1beta1.ChatCompletionsRequest 3255 2, // 69: google.cloud.aiplatform.v1beta1.PredictionService.Predict:output_type -> google.cloud.aiplatform.v1beta1.PredictResponse 3256 35, // 70: google.cloud.aiplatform.v1beta1.PredictionService.RawPredict:output_type -> google.api.HttpBody 3257 35, // 71: google.cloud.aiplatform.v1beta1.PredictionService.StreamRawPredict:output_type -> google.api.HttpBody 3258 6, // 72: google.cloud.aiplatform.v1beta1.PredictionService.DirectPredict:output_type -> google.cloud.aiplatform.v1beta1.DirectPredictResponse 3259 8, // 73: google.cloud.aiplatform.v1beta1.PredictionService.DirectRawPredict:output_type -> google.cloud.aiplatform.v1beta1.DirectRawPredictResponse 3260 10, // 74: google.cloud.aiplatform.v1beta1.PredictionService.StreamDirectPredict:output_type -> google.cloud.aiplatform.v1beta1.StreamDirectPredictResponse 3261 12, // 75: google.cloud.aiplatform.v1beta1.PredictionService.StreamDirectRawPredict:output_type -> google.cloud.aiplatform.v1beta1.StreamDirectRawPredictResponse 3262 14, // 76: google.cloud.aiplatform.v1beta1.PredictionService.StreamingPredict:output_type -> google.cloud.aiplatform.v1beta1.StreamingPredictResponse 3263 14, // 77: google.cloud.aiplatform.v1beta1.PredictionService.ServerStreamingPredict:output_type -> google.cloud.aiplatform.v1beta1.StreamingPredictResponse 3264 16, // 78: google.cloud.aiplatform.v1beta1.PredictionService.StreamingRawPredict:output_type -> google.cloud.aiplatform.v1beta1.StreamingRawPredictResponse 3265 18, // 79: google.cloud.aiplatform.v1beta1.PredictionService.Explain:output_type -> google.cloud.aiplatform.v1beta1.ExplainResponse 3266 20, // 80: google.cloud.aiplatform.v1beta1.PredictionService.CountTokens:output_type -> google.cloud.aiplatform.v1beta1.CountTokensResponse 3267 22, // 81: google.cloud.aiplatform.v1beta1.PredictionService.GenerateContent:output_type -> google.cloud.aiplatform.v1beta1.GenerateContentResponse 3268 22, // 82: google.cloud.aiplatform.v1beta1.PredictionService.StreamGenerateContent:output_type -> google.cloud.aiplatform.v1beta1.GenerateContentResponse 3269 35, // 83: google.cloud.aiplatform.v1beta1.PredictionService.ChatCompletions:output_type -> google.api.HttpBody 3270 69, // [69:84] is the sub-list for method output_type 3271 54, // [54:69] is the sub-list for method input_type 3272 54, // [54:54] is the sub-list for extension type_name 3273 54, // [54:54] is the sub-list for extension extendee 3274 0, // [0:54] is the sub-list for field type_name 3275 } 3276 3277 func init() { file_google_cloud_aiplatform_v1beta1_prediction_service_proto_init() } 3278 func file_google_cloud_aiplatform_v1beta1_prediction_service_proto_init() { 3279 if File_google_cloud_aiplatform_v1beta1_prediction_service_proto != nil { 3280 return 3281 } 3282 file_google_cloud_aiplatform_v1beta1_content_proto_init() 3283 file_google_cloud_aiplatform_v1beta1_explanation_proto_init() 3284 file_google_cloud_aiplatform_v1beta1_tool_proto_init() 3285 file_google_cloud_aiplatform_v1beta1_types_proto_init() 3286 file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[18].OneofWrappers = []any{} 3287 file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[20].OneofWrappers = []any{} 3288 file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[23].OneofWrappers = []any{ 3289 (*PredictLongRunningResponse_GenerateVideoResponse)(nil), 3290 } 3291 file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[25].OneofWrappers = []any{} 3292 type x struct{} 3293 out := protoimpl.TypeBuilder{ 3294 File: protoimpl.DescBuilder{ 3295 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 3296 RawDescriptor: file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDesc, 3297 NumEnums: 1, 3298 NumMessages: 33, 3299 NumExtensions: 0, 3300 NumServices: 1, 3301 }, 3302 GoTypes: file_google_cloud_aiplatform_v1beta1_prediction_service_proto_goTypes, 3303 DependencyIndexes: file_google_cloud_aiplatform_v1beta1_prediction_service_proto_depIdxs, 3304 EnumInfos: file_google_cloud_aiplatform_v1beta1_prediction_service_proto_enumTypes, 3305 MessageInfos: file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes, 3306 }.Build() 3307 File_google_cloud_aiplatform_v1beta1_prediction_service_proto = out.File 3308 file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDesc = nil 3309 file_google_cloud_aiplatform_v1beta1_prediction_service_proto_goTypes = nil 3310 file_google_cloud_aiplatform_v1beta1_prediction_service_proto_depIdxs = nil 3311 }