cloud.google.com/go/aiplatform@v1.106.0/apiv1/aiplatformpb/content.pb.go (about) 1 // Copyright 2025 Google LLC 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // Code generated by protoc-gen-go. DO NOT EDIT. 16 // versions: 17 // protoc-gen-go v1.35.2 18 // protoc v4.25.7 19 // source: google/cloud/aiplatform/v1/content.proto 20 21 package aiplatformpb 22 23 import ( 24 _ "google.golang.org/genproto/googleapis/api/annotations" 25 date "google.golang.org/genproto/googleapis/type/date" 26 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 27 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 28 durationpb "google.golang.org/protobuf/types/known/durationpb" 29 structpb "google.golang.org/protobuf/types/known/structpb" 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 // Harm categories that will block the content. 42 type HarmCategory int32 43 44 const ( 45 // The harm category is unspecified. 46 HarmCategory_HARM_CATEGORY_UNSPECIFIED HarmCategory = 0 47 // The harm category is hate speech. 48 HarmCategory_HARM_CATEGORY_HATE_SPEECH HarmCategory = 1 49 // The harm category is dangerous content. 50 HarmCategory_HARM_CATEGORY_DANGEROUS_CONTENT HarmCategory = 2 51 // The harm category is harassment. 52 HarmCategory_HARM_CATEGORY_HARASSMENT HarmCategory = 3 53 // The harm category is sexually explicit content. 54 HarmCategory_HARM_CATEGORY_SEXUALLY_EXPLICIT HarmCategory = 4 55 // Deprecated: Election filter is not longer supported. 56 // The harm category is civic integrity. 57 // 58 // Deprecated: Marked as deprecated in google/cloud/aiplatform/v1/content.proto. 59 HarmCategory_HARM_CATEGORY_CIVIC_INTEGRITY HarmCategory = 5 60 // The harm category is for jailbreak prompts. 61 HarmCategory_HARM_CATEGORY_JAILBREAK HarmCategory = 6 62 ) 63 64 // Enum value maps for HarmCategory. 65 var ( 66 HarmCategory_name = map[int32]string{ 67 0: "HARM_CATEGORY_UNSPECIFIED", 68 1: "HARM_CATEGORY_HATE_SPEECH", 69 2: "HARM_CATEGORY_DANGEROUS_CONTENT", 70 3: "HARM_CATEGORY_HARASSMENT", 71 4: "HARM_CATEGORY_SEXUALLY_EXPLICIT", 72 5: "HARM_CATEGORY_CIVIC_INTEGRITY", 73 6: "HARM_CATEGORY_JAILBREAK", 74 } 75 HarmCategory_value = map[string]int32{ 76 "HARM_CATEGORY_UNSPECIFIED": 0, 77 "HARM_CATEGORY_HATE_SPEECH": 1, 78 "HARM_CATEGORY_DANGEROUS_CONTENT": 2, 79 "HARM_CATEGORY_HARASSMENT": 3, 80 "HARM_CATEGORY_SEXUALLY_EXPLICIT": 4, 81 "HARM_CATEGORY_CIVIC_INTEGRITY": 5, 82 "HARM_CATEGORY_JAILBREAK": 6, 83 } 84 ) 85 86 func (x HarmCategory) Enum() *HarmCategory { 87 p := new(HarmCategory) 88 *p = x 89 return p 90 } 91 92 func (x HarmCategory) String() string { 93 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 94 } 95 96 func (HarmCategory) Descriptor() protoreflect.EnumDescriptor { 97 return file_google_cloud_aiplatform_v1_content_proto_enumTypes[0].Descriptor() 98 } 99 100 func (HarmCategory) Type() protoreflect.EnumType { 101 return &file_google_cloud_aiplatform_v1_content_proto_enumTypes[0] 102 } 103 104 func (x HarmCategory) Number() protoreflect.EnumNumber { 105 return protoreflect.EnumNumber(x) 106 } 107 108 // Deprecated: Use HarmCategory.Descriptor instead. 109 func (HarmCategory) EnumDescriptor() ([]byte, []int) { 110 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{0} 111 } 112 113 // Content Part modality 114 type Modality int32 115 116 const ( 117 // Unspecified modality. 118 Modality_MODALITY_UNSPECIFIED Modality = 0 119 // Plain text. 120 Modality_TEXT Modality = 1 121 // Image. 122 Modality_IMAGE Modality = 2 123 // Video. 124 Modality_VIDEO Modality = 3 125 // Audio. 126 Modality_AUDIO Modality = 4 127 // Document, e.g. PDF. 128 Modality_DOCUMENT Modality = 5 129 ) 130 131 // Enum value maps for Modality. 132 var ( 133 Modality_name = map[int32]string{ 134 0: "MODALITY_UNSPECIFIED", 135 1: "TEXT", 136 2: "IMAGE", 137 3: "VIDEO", 138 4: "AUDIO", 139 5: "DOCUMENT", 140 } 141 Modality_value = map[string]int32{ 142 "MODALITY_UNSPECIFIED": 0, 143 "TEXT": 1, 144 "IMAGE": 2, 145 "VIDEO": 3, 146 "AUDIO": 4, 147 "DOCUMENT": 5, 148 } 149 ) 150 151 func (x Modality) Enum() *Modality { 152 p := new(Modality) 153 *p = x 154 return p 155 } 156 157 func (x Modality) String() string { 158 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 159 } 160 161 func (Modality) Descriptor() protoreflect.EnumDescriptor { 162 return file_google_cloud_aiplatform_v1_content_proto_enumTypes[1].Descriptor() 163 } 164 165 func (Modality) Type() protoreflect.EnumType { 166 return &file_google_cloud_aiplatform_v1_content_proto_enumTypes[1] 167 } 168 169 func (x Modality) Number() protoreflect.EnumNumber { 170 return protoreflect.EnumNumber(x) 171 } 172 173 // Deprecated: Use Modality.Descriptor instead. 174 func (Modality) EnumDescriptor() ([]byte, []int) { 175 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{1} 176 } 177 178 // The model routing preference. 179 type GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference int32 180 181 const ( 182 // Unspecified model routing preference. 183 GenerationConfig_RoutingConfig_AutoRoutingMode_UNKNOWN GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference = 0 184 // Prefer higher quality over low cost. 185 GenerationConfig_RoutingConfig_AutoRoutingMode_PRIORITIZE_QUALITY GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference = 1 186 // Balanced model routing preference. 187 GenerationConfig_RoutingConfig_AutoRoutingMode_BALANCED GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference = 2 188 // Prefer lower cost over higher quality. 189 GenerationConfig_RoutingConfig_AutoRoutingMode_PRIORITIZE_COST GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference = 3 190 ) 191 192 // Enum value maps for GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference. 193 var ( 194 GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference_name = map[int32]string{ 195 0: "UNKNOWN", 196 1: "PRIORITIZE_QUALITY", 197 2: "BALANCED", 198 3: "PRIORITIZE_COST", 199 } 200 GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference_value = map[string]int32{ 201 "UNKNOWN": 0, 202 "PRIORITIZE_QUALITY": 1, 203 "BALANCED": 2, 204 "PRIORITIZE_COST": 3, 205 } 206 ) 207 208 func (x GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference) Enum() *GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference { 209 p := new(GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference) 210 *p = x 211 return p 212 } 213 214 func (x GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference) String() string { 215 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 216 } 217 218 func (GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference) Descriptor() protoreflect.EnumDescriptor { 219 return file_google_cloud_aiplatform_v1_content_proto_enumTypes[2].Descriptor() 220 } 221 222 func (GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference) Type() protoreflect.EnumType { 223 return &file_google_cloud_aiplatform_v1_content_proto_enumTypes[2] 224 } 225 226 func (x GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference) Number() protoreflect.EnumNumber { 227 return protoreflect.EnumNumber(x) 228 } 229 230 // Deprecated: Use GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference.Descriptor instead. 231 func (GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference) EnumDescriptor() ([]byte, []int) { 232 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{5, 0, 0, 0} 233 } 234 235 // Probability based thresholds levels for blocking. 236 type SafetySetting_HarmBlockThreshold int32 237 238 const ( 239 // Unspecified harm block threshold. 240 SafetySetting_HARM_BLOCK_THRESHOLD_UNSPECIFIED SafetySetting_HarmBlockThreshold = 0 241 // Block low threshold and above (i.e. block more). 242 SafetySetting_BLOCK_LOW_AND_ABOVE SafetySetting_HarmBlockThreshold = 1 243 // Block medium threshold and above. 244 SafetySetting_BLOCK_MEDIUM_AND_ABOVE SafetySetting_HarmBlockThreshold = 2 245 // Block only high threshold (i.e. block less). 246 SafetySetting_BLOCK_ONLY_HIGH SafetySetting_HarmBlockThreshold = 3 247 // Block none. 248 SafetySetting_BLOCK_NONE SafetySetting_HarmBlockThreshold = 4 249 // Turn off the safety filter. 250 SafetySetting_OFF SafetySetting_HarmBlockThreshold = 5 251 ) 252 253 // Enum value maps for SafetySetting_HarmBlockThreshold. 254 var ( 255 SafetySetting_HarmBlockThreshold_name = map[int32]string{ 256 0: "HARM_BLOCK_THRESHOLD_UNSPECIFIED", 257 1: "BLOCK_LOW_AND_ABOVE", 258 2: "BLOCK_MEDIUM_AND_ABOVE", 259 3: "BLOCK_ONLY_HIGH", 260 4: "BLOCK_NONE", 261 5: "OFF", 262 } 263 SafetySetting_HarmBlockThreshold_value = map[string]int32{ 264 "HARM_BLOCK_THRESHOLD_UNSPECIFIED": 0, 265 "BLOCK_LOW_AND_ABOVE": 1, 266 "BLOCK_MEDIUM_AND_ABOVE": 2, 267 "BLOCK_ONLY_HIGH": 3, 268 "BLOCK_NONE": 4, 269 "OFF": 5, 270 } 271 ) 272 273 func (x SafetySetting_HarmBlockThreshold) Enum() *SafetySetting_HarmBlockThreshold { 274 p := new(SafetySetting_HarmBlockThreshold) 275 *p = x 276 return p 277 } 278 279 func (x SafetySetting_HarmBlockThreshold) String() string { 280 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 281 } 282 283 func (SafetySetting_HarmBlockThreshold) Descriptor() protoreflect.EnumDescriptor { 284 return file_google_cloud_aiplatform_v1_content_proto_enumTypes[3].Descriptor() 285 } 286 287 func (SafetySetting_HarmBlockThreshold) Type() protoreflect.EnumType { 288 return &file_google_cloud_aiplatform_v1_content_proto_enumTypes[3] 289 } 290 291 func (x SafetySetting_HarmBlockThreshold) Number() protoreflect.EnumNumber { 292 return protoreflect.EnumNumber(x) 293 } 294 295 // Deprecated: Use SafetySetting_HarmBlockThreshold.Descriptor instead. 296 func (SafetySetting_HarmBlockThreshold) EnumDescriptor() ([]byte, []int) { 297 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{6, 0} 298 } 299 300 // Probability vs severity. 301 type SafetySetting_HarmBlockMethod int32 302 303 const ( 304 // The harm block method is unspecified. 305 SafetySetting_HARM_BLOCK_METHOD_UNSPECIFIED SafetySetting_HarmBlockMethod = 0 306 // The harm block method uses both probability and severity scores. 307 SafetySetting_SEVERITY SafetySetting_HarmBlockMethod = 1 308 // The harm block method uses the probability score. 309 SafetySetting_PROBABILITY SafetySetting_HarmBlockMethod = 2 310 ) 311 312 // Enum value maps for SafetySetting_HarmBlockMethod. 313 var ( 314 SafetySetting_HarmBlockMethod_name = map[int32]string{ 315 0: "HARM_BLOCK_METHOD_UNSPECIFIED", 316 1: "SEVERITY", 317 2: "PROBABILITY", 318 } 319 SafetySetting_HarmBlockMethod_value = map[string]int32{ 320 "HARM_BLOCK_METHOD_UNSPECIFIED": 0, 321 "SEVERITY": 1, 322 "PROBABILITY": 2, 323 } 324 ) 325 326 func (x SafetySetting_HarmBlockMethod) Enum() *SafetySetting_HarmBlockMethod { 327 p := new(SafetySetting_HarmBlockMethod) 328 *p = x 329 return p 330 } 331 332 func (x SafetySetting_HarmBlockMethod) String() string { 333 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 334 } 335 336 func (SafetySetting_HarmBlockMethod) Descriptor() protoreflect.EnumDescriptor { 337 return file_google_cloud_aiplatform_v1_content_proto_enumTypes[4].Descriptor() 338 } 339 340 func (SafetySetting_HarmBlockMethod) Type() protoreflect.EnumType { 341 return &file_google_cloud_aiplatform_v1_content_proto_enumTypes[4] 342 } 343 344 func (x SafetySetting_HarmBlockMethod) Number() protoreflect.EnumNumber { 345 return protoreflect.EnumNumber(x) 346 } 347 348 // Deprecated: Use SafetySetting_HarmBlockMethod.Descriptor instead. 349 func (SafetySetting_HarmBlockMethod) EnumDescriptor() ([]byte, []int) { 350 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{6, 1} 351 } 352 353 // Harm probability levels in the content. 354 type SafetyRating_HarmProbability int32 355 356 const ( 357 // Harm probability unspecified. 358 SafetyRating_HARM_PROBABILITY_UNSPECIFIED SafetyRating_HarmProbability = 0 359 // Negligible level of harm. 360 SafetyRating_NEGLIGIBLE SafetyRating_HarmProbability = 1 361 // Low level of harm. 362 SafetyRating_LOW SafetyRating_HarmProbability = 2 363 // Medium level of harm. 364 SafetyRating_MEDIUM SafetyRating_HarmProbability = 3 365 // High level of harm. 366 SafetyRating_HIGH SafetyRating_HarmProbability = 4 367 ) 368 369 // Enum value maps for SafetyRating_HarmProbability. 370 var ( 371 SafetyRating_HarmProbability_name = map[int32]string{ 372 0: "HARM_PROBABILITY_UNSPECIFIED", 373 1: "NEGLIGIBLE", 374 2: "LOW", 375 3: "MEDIUM", 376 4: "HIGH", 377 } 378 SafetyRating_HarmProbability_value = map[string]int32{ 379 "HARM_PROBABILITY_UNSPECIFIED": 0, 380 "NEGLIGIBLE": 1, 381 "LOW": 2, 382 "MEDIUM": 3, 383 "HIGH": 4, 384 } 385 ) 386 387 func (x SafetyRating_HarmProbability) Enum() *SafetyRating_HarmProbability { 388 p := new(SafetyRating_HarmProbability) 389 *p = x 390 return p 391 } 392 393 func (x SafetyRating_HarmProbability) String() string { 394 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 395 } 396 397 func (SafetyRating_HarmProbability) Descriptor() protoreflect.EnumDescriptor { 398 return file_google_cloud_aiplatform_v1_content_proto_enumTypes[5].Descriptor() 399 } 400 401 func (SafetyRating_HarmProbability) Type() protoreflect.EnumType { 402 return &file_google_cloud_aiplatform_v1_content_proto_enumTypes[5] 403 } 404 405 func (x SafetyRating_HarmProbability) Number() protoreflect.EnumNumber { 406 return protoreflect.EnumNumber(x) 407 } 408 409 // Deprecated: Use SafetyRating_HarmProbability.Descriptor instead. 410 func (SafetyRating_HarmProbability) EnumDescriptor() ([]byte, []int) { 411 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{7, 0} 412 } 413 414 // Harm severity levels. 415 type SafetyRating_HarmSeverity int32 416 417 const ( 418 // Harm severity unspecified. 419 SafetyRating_HARM_SEVERITY_UNSPECIFIED SafetyRating_HarmSeverity = 0 420 // Negligible level of harm severity. 421 SafetyRating_HARM_SEVERITY_NEGLIGIBLE SafetyRating_HarmSeverity = 1 422 // Low level of harm severity. 423 SafetyRating_HARM_SEVERITY_LOW SafetyRating_HarmSeverity = 2 424 // Medium level of harm severity. 425 SafetyRating_HARM_SEVERITY_MEDIUM SafetyRating_HarmSeverity = 3 426 // High level of harm severity. 427 SafetyRating_HARM_SEVERITY_HIGH SafetyRating_HarmSeverity = 4 428 ) 429 430 // Enum value maps for SafetyRating_HarmSeverity. 431 var ( 432 SafetyRating_HarmSeverity_name = map[int32]string{ 433 0: "HARM_SEVERITY_UNSPECIFIED", 434 1: "HARM_SEVERITY_NEGLIGIBLE", 435 2: "HARM_SEVERITY_LOW", 436 3: "HARM_SEVERITY_MEDIUM", 437 4: "HARM_SEVERITY_HIGH", 438 } 439 SafetyRating_HarmSeverity_value = map[string]int32{ 440 "HARM_SEVERITY_UNSPECIFIED": 0, 441 "HARM_SEVERITY_NEGLIGIBLE": 1, 442 "HARM_SEVERITY_LOW": 2, 443 "HARM_SEVERITY_MEDIUM": 3, 444 "HARM_SEVERITY_HIGH": 4, 445 } 446 ) 447 448 func (x SafetyRating_HarmSeverity) Enum() *SafetyRating_HarmSeverity { 449 p := new(SafetyRating_HarmSeverity) 450 *p = x 451 return p 452 } 453 454 func (x SafetyRating_HarmSeverity) String() string { 455 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 456 } 457 458 func (SafetyRating_HarmSeverity) Descriptor() protoreflect.EnumDescriptor { 459 return file_google_cloud_aiplatform_v1_content_proto_enumTypes[6].Descriptor() 460 } 461 462 func (SafetyRating_HarmSeverity) Type() protoreflect.EnumType { 463 return &file_google_cloud_aiplatform_v1_content_proto_enumTypes[6] 464 } 465 466 func (x SafetyRating_HarmSeverity) Number() protoreflect.EnumNumber { 467 return protoreflect.EnumNumber(x) 468 } 469 470 // Deprecated: Use SafetyRating_HarmSeverity.Descriptor instead. 471 func (SafetyRating_HarmSeverity) EnumDescriptor() ([]byte, []int) { 472 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{7, 1} 473 } 474 475 // The reason why the model stopped generating tokens. 476 // If empty, the model has not stopped generating the tokens. 477 type Candidate_FinishReason int32 478 479 const ( 480 // The finish reason is unspecified. 481 Candidate_FINISH_REASON_UNSPECIFIED Candidate_FinishReason = 0 482 // Token generation reached a natural stopping point or a configured stop 483 // sequence. 484 Candidate_STOP Candidate_FinishReason = 1 485 // Token generation reached the configured maximum output tokens. 486 Candidate_MAX_TOKENS Candidate_FinishReason = 2 487 // Token generation stopped because the content potentially contains safety 488 // violations. NOTE: When streaming, 489 // [content][google.cloud.aiplatform.v1.Candidate.content] is empty if 490 // content filters blocks the output. 491 Candidate_SAFETY Candidate_FinishReason = 3 492 // Token generation stopped because the content potentially contains 493 // copyright violations. 494 Candidate_RECITATION Candidate_FinishReason = 4 495 // All other reasons that stopped the token generation. 496 Candidate_OTHER Candidate_FinishReason = 5 497 // Token generation stopped because the content contains forbidden terms. 498 Candidate_BLOCKLIST Candidate_FinishReason = 6 499 // Token generation stopped for potentially containing prohibited content. 500 Candidate_PROHIBITED_CONTENT Candidate_FinishReason = 7 501 // Token generation stopped because the content potentially contains 502 // Sensitive Personally Identifiable Information (SPII). 503 Candidate_SPII Candidate_FinishReason = 8 504 // The function call generated by the model is invalid. 505 Candidate_MALFORMED_FUNCTION_CALL Candidate_FinishReason = 9 506 // The model response was blocked by Model Armor. 507 Candidate_MODEL_ARMOR Candidate_FinishReason = 10 508 ) 509 510 // Enum value maps for Candidate_FinishReason. 511 var ( 512 Candidate_FinishReason_name = map[int32]string{ 513 0: "FINISH_REASON_UNSPECIFIED", 514 1: "STOP", 515 2: "MAX_TOKENS", 516 3: "SAFETY", 517 4: "RECITATION", 518 5: "OTHER", 519 6: "BLOCKLIST", 520 7: "PROHIBITED_CONTENT", 521 8: "SPII", 522 9: "MALFORMED_FUNCTION_CALL", 523 10: "MODEL_ARMOR", 524 } 525 Candidate_FinishReason_value = map[string]int32{ 526 "FINISH_REASON_UNSPECIFIED": 0, 527 "STOP": 1, 528 "MAX_TOKENS": 2, 529 "SAFETY": 3, 530 "RECITATION": 4, 531 "OTHER": 5, 532 "BLOCKLIST": 6, 533 "PROHIBITED_CONTENT": 7, 534 "SPII": 8, 535 "MALFORMED_FUNCTION_CALL": 9, 536 "MODEL_ARMOR": 10, 537 } 538 ) 539 540 func (x Candidate_FinishReason) Enum() *Candidate_FinishReason { 541 p := new(Candidate_FinishReason) 542 *p = x 543 return p 544 } 545 546 func (x Candidate_FinishReason) String() string { 547 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 548 } 549 550 func (Candidate_FinishReason) Descriptor() protoreflect.EnumDescriptor { 551 return file_google_cloud_aiplatform_v1_content_proto_enumTypes[7].Descriptor() 552 } 553 554 func (Candidate_FinishReason) Type() protoreflect.EnumType { 555 return &file_google_cloud_aiplatform_v1_content_proto_enumTypes[7] 556 } 557 558 func (x Candidate_FinishReason) Number() protoreflect.EnumNumber { 559 return protoreflect.EnumNumber(x) 560 } 561 562 // Deprecated: Use Candidate_FinishReason.Descriptor instead. 563 func (Candidate_FinishReason) EnumDescriptor() ([]byte, []int) { 564 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{10, 0} 565 } 566 567 // Status of the url retrieval. 568 type UrlMetadata_UrlRetrievalStatus int32 569 570 const ( 571 // Default value. This value is unused. 572 UrlMetadata_URL_RETRIEVAL_STATUS_UNSPECIFIED UrlMetadata_UrlRetrievalStatus = 0 573 // Url retrieval is successful. 574 UrlMetadata_URL_RETRIEVAL_STATUS_SUCCESS UrlMetadata_UrlRetrievalStatus = 1 575 // Url retrieval is failed due to error. 576 UrlMetadata_URL_RETRIEVAL_STATUS_ERROR UrlMetadata_UrlRetrievalStatus = 2 577 ) 578 579 // Enum value maps for UrlMetadata_UrlRetrievalStatus. 580 var ( 581 UrlMetadata_UrlRetrievalStatus_name = map[int32]string{ 582 0: "URL_RETRIEVAL_STATUS_UNSPECIFIED", 583 1: "URL_RETRIEVAL_STATUS_SUCCESS", 584 2: "URL_RETRIEVAL_STATUS_ERROR", 585 } 586 UrlMetadata_UrlRetrievalStatus_value = map[string]int32{ 587 "URL_RETRIEVAL_STATUS_UNSPECIFIED": 0, 588 "URL_RETRIEVAL_STATUS_SUCCESS": 1, 589 "URL_RETRIEVAL_STATUS_ERROR": 2, 590 } 591 ) 592 593 func (x UrlMetadata_UrlRetrievalStatus) Enum() *UrlMetadata_UrlRetrievalStatus { 594 p := new(UrlMetadata_UrlRetrievalStatus) 595 *p = x 596 return p 597 } 598 599 func (x UrlMetadata_UrlRetrievalStatus) String() string { 600 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 601 } 602 603 func (UrlMetadata_UrlRetrievalStatus) Descriptor() protoreflect.EnumDescriptor { 604 return file_google_cloud_aiplatform_v1_content_proto_enumTypes[8].Descriptor() 605 } 606 607 func (UrlMetadata_UrlRetrievalStatus) Type() protoreflect.EnumType { 608 return &file_google_cloud_aiplatform_v1_content_proto_enumTypes[8] 609 } 610 611 func (x UrlMetadata_UrlRetrievalStatus) Number() protoreflect.EnumNumber { 612 return protoreflect.EnumNumber(x) 613 } 614 615 // Deprecated: Use UrlMetadata_UrlRetrievalStatus.Descriptor instead. 616 func (UrlMetadata_UrlRetrievalStatus) EnumDescriptor() ([]byte, []int) { 617 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{12, 0} 618 } 619 620 // The base structured datatype containing multi-part content of a message. 621 // 622 // A `Content` includes a `role` field designating the producer of the `Content` 623 // and a `parts` field containing multi-part data that contains the content of 624 // the message turn. 625 type Content struct { 626 state protoimpl.MessageState 627 sizeCache protoimpl.SizeCache 628 unknownFields protoimpl.UnknownFields 629 630 // Optional. The producer of the content. Must be either 'user' or 'model'. 631 // 632 // Useful to set for multi-turn conversations, otherwise can be left blank 633 // or unset. 634 Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"` 635 // Required. Ordered `Parts` that constitute a single message. Parts may have 636 // different IANA MIME types. 637 Parts []*Part `protobuf:"bytes,2,rep,name=parts,proto3" json:"parts,omitempty"` 638 } 639 640 func (x *Content) Reset() { 641 *x = Content{} 642 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[0] 643 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 644 ms.StoreMessageInfo(mi) 645 } 646 647 func (x *Content) String() string { 648 return protoimpl.X.MessageStringOf(x) 649 } 650 651 func (*Content) ProtoMessage() {} 652 653 func (x *Content) ProtoReflect() protoreflect.Message { 654 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[0] 655 if x != nil { 656 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 657 if ms.LoadMessageInfo() == nil { 658 ms.StoreMessageInfo(mi) 659 } 660 return ms 661 } 662 return mi.MessageOf(x) 663 } 664 665 // Deprecated: Use Content.ProtoReflect.Descriptor instead. 666 func (*Content) Descriptor() ([]byte, []int) { 667 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{0} 668 } 669 670 func (x *Content) GetRole() string { 671 if x != nil { 672 return x.Role 673 } 674 return "" 675 } 676 677 func (x *Content) GetParts() []*Part { 678 if x != nil { 679 return x.Parts 680 } 681 return nil 682 } 683 684 // A datatype containing media that is part of a multi-part `Content` message. 685 // 686 // A `Part` consists of data which has an associated datatype. A `Part` can only 687 // contain one of the accepted types in `Part.data`. 688 // 689 // A `Part` must have a fixed IANA MIME type identifying the type and subtype 690 // of the media if `inline_data` or `file_data` field is filled with raw bytes. 691 type Part struct { 692 state protoimpl.MessageState 693 sizeCache protoimpl.SizeCache 694 unknownFields protoimpl.UnknownFields 695 696 // Types that are assignable to Data: 697 // 698 // *Part_Text 699 // *Part_InlineData 700 // *Part_FileData 701 // *Part_FunctionCall 702 // *Part_FunctionResponse 703 // *Part_ExecutableCode 704 // *Part_CodeExecutionResult 705 Data isPart_Data `protobuf_oneof:"data"` 706 // Indicates if the part is thought from the model. 707 Thought bool `protobuf:"varint,10,opt,name=thought,proto3" json:"thought,omitempty"` 708 // An opaque signature for the thought so it can be reused in subsequent 709 // requests. 710 ThoughtSignature []byte `protobuf:"bytes,11,opt,name=thought_signature,json=thoughtSignature,proto3" json:"thought_signature,omitempty"` 711 // Types that are assignable to Metadata: 712 // 713 // *Part_VideoMetadata 714 Metadata isPart_Metadata `protobuf_oneof:"metadata"` 715 } 716 717 func (x *Part) Reset() { 718 *x = Part{} 719 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[1] 720 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 721 ms.StoreMessageInfo(mi) 722 } 723 724 func (x *Part) String() string { 725 return protoimpl.X.MessageStringOf(x) 726 } 727 728 func (*Part) ProtoMessage() {} 729 730 func (x *Part) ProtoReflect() protoreflect.Message { 731 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[1] 732 if x != nil { 733 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 734 if ms.LoadMessageInfo() == nil { 735 ms.StoreMessageInfo(mi) 736 } 737 return ms 738 } 739 return mi.MessageOf(x) 740 } 741 742 // Deprecated: Use Part.ProtoReflect.Descriptor instead. 743 func (*Part) Descriptor() ([]byte, []int) { 744 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{1} 745 } 746 747 func (m *Part) GetData() isPart_Data { 748 if m != nil { 749 return m.Data 750 } 751 return nil 752 } 753 754 func (x *Part) GetText() string { 755 if x, ok := x.GetData().(*Part_Text); ok { 756 return x.Text 757 } 758 return "" 759 } 760 761 func (x *Part) GetInlineData() *Blob { 762 if x, ok := x.GetData().(*Part_InlineData); ok { 763 return x.InlineData 764 } 765 return nil 766 } 767 768 func (x *Part) GetFileData() *FileData { 769 if x, ok := x.GetData().(*Part_FileData); ok { 770 return x.FileData 771 } 772 return nil 773 } 774 775 func (x *Part) GetFunctionCall() *FunctionCall { 776 if x, ok := x.GetData().(*Part_FunctionCall); ok { 777 return x.FunctionCall 778 } 779 return nil 780 } 781 782 func (x *Part) GetFunctionResponse() *FunctionResponse { 783 if x, ok := x.GetData().(*Part_FunctionResponse); ok { 784 return x.FunctionResponse 785 } 786 return nil 787 } 788 789 func (x *Part) GetExecutableCode() *ExecutableCode { 790 if x, ok := x.GetData().(*Part_ExecutableCode); ok { 791 return x.ExecutableCode 792 } 793 return nil 794 } 795 796 func (x *Part) GetCodeExecutionResult() *CodeExecutionResult { 797 if x, ok := x.GetData().(*Part_CodeExecutionResult); ok { 798 return x.CodeExecutionResult 799 } 800 return nil 801 } 802 803 func (x *Part) GetThought() bool { 804 if x != nil { 805 return x.Thought 806 } 807 return false 808 } 809 810 func (x *Part) GetThoughtSignature() []byte { 811 if x != nil { 812 return x.ThoughtSignature 813 } 814 return nil 815 } 816 817 func (m *Part) GetMetadata() isPart_Metadata { 818 if m != nil { 819 return m.Metadata 820 } 821 return nil 822 } 823 824 func (x *Part) GetVideoMetadata() *VideoMetadata { 825 if x, ok := x.GetMetadata().(*Part_VideoMetadata); ok { 826 return x.VideoMetadata 827 } 828 return nil 829 } 830 831 type isPart_Data interface { 832 isPart_Data() 833 } 834 835 type Part_Text struct { 836 // Optional. Text part (can be code). 837 Text string `protobuf:"bytes,1,opt,name=text,proto3,oneof"` 838 } 839 840 type Part_InlineData struct { 841 // Optional. Inlined bytes data. 842 InlineData *Blob `protobuf:"bytes,2,opt,name=inline_data,json=inlineData,proto3,oneof"` 843 } 844 845 type Part_FileData struct { 846 // Optional. URI based data. 847 FileData *FileData `protobuf:"bytes,3,opt,name=file_data,json=fileData,proto3,oneof"` 848 } 849 850 type Part_FunctionCall struct { 851 // Optional. A predicted [FunctionCall] returned from the model that 852 // contains a string representing the [FunctionDeclaration.name] with the 853 // parameters and their values. 854 FunctionCall *FunctionCall `protobuf:"bytes,5,opt,name=function_call,json=functionCall,proto3,oneof"` 855 } 856 857 type Part_FunctionResponse struct { 858 // Optional. The result output of a [FunctionCall] that contains a string 859 // representing the [FunctionDeclaration.name] and a structured JSON object 860 // containing any output from the function call. It is used as context to 861 // the model. 862 FunctionResponse *FunctionResponse `protobuf:"bytes,6,opt,name=function_response,json=functionResponse,proto3,oneof"` 863 } 864 865 type Part_ExecutableCode struct { 866 // Optional. Code generated by the model that is meant to be executed. 867 ExecutableCode *ExecutableCode `protobuf:"bytes,8,opt,name=executable_code,json=executableCode,proto3,oneof"` 868 } 869 870 type Part_CodeExecutionResult struct { 871 // Optional. Result of executing the [ExecutableCode]. 872 CodeExecutionResult *CodeExecutionResult `protobuf:"bytes,9,opt,name=code_execution_result,json=codeExecutionResult,proto3,oneof"` 873 } 874 875 func (*Part_Text) isPart_Data() {} 876 877 func (*Part_InlineData) isPart_Data() {} 878 879 func (*Part_FileData) isPart_Data() {} 880 881 func (*Part_FunctionCall) isPart_Data() {} 882 883 func (*Part_FunctionResponse) isPart_Data() {} 884 885 func (*Part_ExecutableCode) isPart_Data() {} 886 887 func (*Part_CodeExecutionResult) isPart_Data() {} 888 889 type isPart_Metadata interface { 890 isPart_Metadata() 891 } 892 893 type Part_VideoMetadata struct { 894 // Optional. Video metadata. The metadata should only be specified while the 895 // video data is presented in inline_data or file_data. 896 VideoMetadata *VideoMetadata `protobuf:"bytes,4,opt,name=video_metadata,json=videoMetadata,proto3,oneof"` 897 } 898 899 func (*Part_VideoMetadata) isPart_Metadata() {} 900 901 // Content blob. 902 // 903 // It's preferred to send as [text][google.cloud.aiplatform.v1.Part.text] 904 // directly rather than raw bytes. 905 type Blob struct { 906 state protoimpl.MessageState 907 sizeCache protoimpl.SizeCache 908 unknownFields protoimpl.UnknownFields 909 910 // Required. The IANA standard MIME type of the source data. 911 MimeType string `protobuf:"bytes,1,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"` 912 // Required. Raw bytes. 913 Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` 914 } 915 916 func (x *Blob) Reset() { 917 *x = Blob{} 918 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[2] 919 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 920 ms.StoreMessageInfo(mi) 921 } 922 923 func (x *Blob) String() string { 924 return protoimpl.X.MessageStringOf(x) 925 } 926 927 func (*Blob) ProtoMessage() {} 928 929 func (x *Blob) ProtoReflect() protoreflect.Message { 930 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[2] 931 if x != nil { 932 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 933 if ms.LoadMessageInfo() == nil { 934 ms.StoreMessageInfo(mi) 935 } 936 return ms 937 } 938 return mi.MessageOf(x) 939 } 940 941 // Deprecated: Use Blob.ProtoReflect.Descriptor instead. 942 func (*Blob) Descriptor() ([]byte, []int) { 943 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{2} 944 } 945 946 func (x *Blob) GetMimeType() string { 947 if x != nil { 948 return x.MimeType 949 } 950 return "" 951 } 952 953 func (x *Blob) GetData() []byte { 954 if x != nil { 955 return x.Data 956 } 957 return nil 958 } 959 960 // URI based data. 961 type FileData struct { 962 state protoimpl.MessageState 963 sizeCache protoimpl.SizeCache 964 unknownFields protoimpl.UnknownFields 965 966 // Required. The IANA standard MIME type of the source data. 967 MimeType string `protobuf:"bytes,1,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"` 968 // Required. URI. 969 FileUri string `protobuf:"bytes,2,opt,name=file_uri,json=fileUri,proto3" json:"file_uri,omitempty"` 970 } 971 972 func (x *FileData) Reset() { 973 *x = FileData{} 974 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[3] 975 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 976 ms.StoreMessageInfo(mi) 977 } 978 979 func (x *FileData) String() string { 980 return protoimpl.X.MessageStringOf(x) 981 } 982 983 func (*FileData) ProtoMessage() {} 984 985 func (x *FileData) ProtoReflect() protoreflect.Message { 986 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[3] 987 if x != nil { 988 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 989 if ms.LoadMessageInfo() == nil { 990 ms.StoreMessageInfo(mi) 991 } 992 return ms 993 } 994 return mi.MessageOf(x) 995 } 996 997 // Deprecated: Use FileData.ProtoReflect.Descriptor instead. 998 func (*FileData) Descriptor() ([]byte, []int) { 999 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{3} 1000 } 1001 1002 func (x *FileData) GetMimeType() string { 1003 if x != nil { 1004 return x.MimeType 1005 } 1006 return "" 1007 } 1008 1009 func (x *FileData) GetFileUri() string { 1010 if x != nil { 1011 return x.FileUri 1012 } 1013 return "" 1014 } 1015 1016 // Metadata describes the input video content. 1017 type VideoMetadata struct { 1018 state protoimpl.MessageState 1019 sizeCache protoimpl.SizeCache 1020 unknownFields protoimpl.UnknownFields 1021 1022 // Optional. The start offset of the video. 1023 StartOffset *durationpb.Duration `protobuf:"bytes,1,opt,name=start_offset,json=startOffset,proto3" json:"start_offset,omitempty"` 1024 // Optional. The end offset of the video. 1025 EndOffset *durationpb.Duration `protobuf:"bytes,2,opt,name=end_offset,json=endOffset,proto3" json:"end_offset,omitempty"` 1026 } 1027 1028 func (x *VideoMetadata) Reset() { 1029 *x = VideoMetadata{} 1030 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[4] 1031 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1032 ms.StoreMessageInfo(mi) 1033 } 1034 1035 func (x *VideoMetadata) String() string { 1036 return protoimpl.X.MessageStringOf(x) 1037 } 1038 1039 func (*VideoMetadata) ProtoMessage() {} 1040 1041 func (x *VideoMetadata) ProtoReflect() protoreflect.Message { 1042 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[4] 1043 if x != nil { 1044 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1045 if ms.LoadMessageInfo() == nil { 1046 ms.StoreMessageInfo(mi) 1047 } 1048 return ms 1049 } 1050 return mi.MessageOf(x) 1051 } 1052 1053 // Deprecated: Use VideoMetadata.ProtoReflect.Descriptor instead. 1054 func (*VideoMetadata) Descriptor() ([]byte, []int) { 1055 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{4} 1056 } 1057 1058 func (x *VideoMetadata) GetStartOffset() *durationpb.Duration { 1059 if x != nil { 1060 return x.StartOffset 1061 } 1062 return nil 1063 } 1064 1065 func (x *VideoMetadata) GetEndOffset() *durationpb.Duration { 1066 if x != nil { 1067 return x.EndOffset 1068 } 1069 return nil 1070 } 1071 1072 // Generation config. 1073 type GenerationConfig struct { 1074 state protoimpl.MessageState 1075 sizeCache protoimpl.SizeCache 1076 unknownFields protoimpl.UnknownFields 1077 1078 // Optional. Controls the randomness of predictions. 1079 Temperature *float32 `protobuf:"fixed32,1,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` 1080 // Optional. If specified, nucleus sampling will be used. 1081 TopP *float32 `protobuf:"fixed32,2,opt,name=top_p,json=topP,proto3,oneof" json:"top_p,omitempty"` 1082 // Optional. If specified, top-k sampling will be used. 1083 TopK *float32 `protobuf:"fixed32,3,opt,name=top_k,json=topK,proto3,oneof" json:"top_k,omitempty"` 1084 // Optional. Number of candidates to generate. 1085 CandidateCount *int32 `protobuf:"varint,4,opt,name=candidate_count,json=candidateCount,proto3,oneof" json:"candidate_count,omitempty"` 1086 // Optional. The maximum number of output tokens to generate per message. 1087 MaxOutputTokens *int32 `protobuf:"varint,5,opt,name=max_output_tokens,json=maxOutputTokens,proto3,oneof" json:"max_output_tokens,omitempty"` 1088 // Optional. Stop sequences. 1089 StopSequences []string `protobuf:"bytes,6,rep,name=stop_sequences,json=stopSequences,proto3" json:"stop_sequences,omitempty"` 1090 // Optional. If true, export the logprobs results in response. 1091 ResponseLogprobs *bool `protobuf:"varint,18,opt,name=response_logprobs,json=responseLogprobs,proto3,oneof" json:"response_logprobs,omitempty"` 1092 // Optional. Logit probabilities. 1093 Logprobs *int32 `protobuf:"varint,7,opt,name=logprobs,proto3,oneof" json:"logprobs,omitempty"` 1094 // Optional. Positive penalties. 1095 PresencePenalty *float32 `protobuf:"fixed32,8,opt,name=presence_penalty,json=presencePenalty,proto3,oneof" json:"presence_penalty,omitempty"` 1096 // Optional. Frequency penalties. 1097 FrequencyPenalty *float32 `protobuf:"fixed32,9,opt,name=frequency_penalty,json=frequencyPenalty,proto3,oneof" json:"frequency_penalty,omitempty"` 1098 // Optional. Seed. 1099 Seed *int32 `protobuf:"varint,12,opt,name=seed,proto3,oneof" json:"seed,omitempty"` 1100 // Optional. Output response mimetype of the generated candidate text. 1101 // Supported mimetype: 1102 // - `text/plain`: (default) Text output. 1103 // - `application/json`: JSON response in the candidates. 1104 // The model needs to be prompted to output the appropriate response type, 1105 // otherwise the behavior is undefined. 1106 // This is a preview feature. 1107 ResponseMimeType string `protobuf:"bytes,13,opt,name=response_mime_type,json=responseMimeType,proto3" json:"response_mime_type,omitempty"` 1108 // Optional. The `Schema` object allows the definition of input and output 1109 // data types. These types can be objects, but also primitives and arrays. 1110 // Represents a select subset of an [OpenAPI 3.0 schema 1111 // object](https://spec.openapis.org/oas/v3.0.3#schema). 1112 // If set, a compatible response_mime_type must also be set. 1113 // Compatible mimetypes: 1114 // `application/json`: Schema for JSON response. 1115 ResponseSchema *Schema `protobuf:"bytes,16,opt,name=response_schema,json=responseSchema,proto3,oneof" json:"response_schema,omitempty"` 1116 // Optional. Output schema of the generated response. This is an alternative 1117 // to `response_schema` that accepts [JSON Schema](https://json-schema.org/). 1118 // 1119 // If set, `response_schema` must be omitted, but `response_mime_type` is 1120 // required. 1121 // 1122 // While the full JSON Schema may be sent, not all features are supported. 1123 // Specifically, only the following properties are supported: 1124 // 1125 // - `$id` 1126 // - `$defs` 1127 // - `$ref` 1128 // - `$anchor` 1129 // - `type` 1130 // - `format` 1131 // - `title` 1132 // - `description` 1133 // - `enum` (for strings and numbers) 1134 // - `items` 1135 // - `prefixItems` 1136 // - `minItems` 1137 // - `maxItems` 1138 // - `minimum` 1139 // - `maximum` 1140 // - `anyOf` 1141 // - `oneOf` (interpreted the same as `anyOf`) 1142 // - `properties` 1143 // - `additionalProperties` 1144 // - `required` 1145 // 1146 // The non-standard `propertyOrdering` property may also be set. 1147 // 1148 // Cyclic references are unrolled to a limited degree and, as such, may only 1149 // be used within non-required properties. (Nullable properties are not 1150 // sufficient.) If `$ref` is set on a sub-schema, no other properties, except 1151 // for than those starting as a `$`, may be set. 1152 ResponseJsonSchema *structpb.Value `protobuf:"bytes,28,opt,name=response_json_schema,json=responseJsonSchema,proto3,oneof" json:"response_json_schema,omitempty"` 1153 // Optional. Routing configuration. 1154 RoutingConfig *GenerationConfig_RoutingConfig `protobuf:"bytes,17,opt,name=routing_config,json=routingConfig,proto3,oneof" json:"routing_config,omitempty"` 1155 // Optional. Config for thinking features. 1156 // An error will be returned if this field is set for models that don't 1157 // support thinking. 1158 ThinkingConfig *GenerationConfig_ThinkingConfig `protobuf:"bytes,25,opt,name=thinking_config,json=thinkingConfig,proto3" json:"thinking_config,omitempty"` 1159 } 1160 1161 func (x *GenerationConfig) Reset() { 1162 *x = GenerationConfig{} 1163 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[5] 1164 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1165 ms.StoreMessageInfo(mi) 1166 } 1167 1168 func (x *GenerationConfig) String() string { 1169 return protoimpl.X.MessageStringOf(x) 1170 } 1171 1172 func (*GenerationConfig) ProtoMessage() {} 1173 1174 func (x *GenerationConfig) ProtoReflect() protoreflect.Message { 1175 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[5] 1176 if x != nil { 1177 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1178 if ms.LoadMessageInfo() == nil { 1179 ms.StoreMessageInfo(mi) 1180 } 1181 return ms 1182 } 1183 return mi.MessageOf(x) 1184 } 1185 1186 // Deprecated: Use GenerationConfig.ProtoReflect.Descriptor instead. 1187 func (*GenerationConfig) Descriptor() ([]byte, []int) { 1188 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{5} 1189 } 1190 1191 func (x *GenerationConfig) GetTemperature() float32 { 1192 if x != nil && x.Temperature != nil { 1193 return *x.Temperature 1194 } 1195 return 0 1196 } 1197 1198 func (x *GenerationConfig) GetTopP() float32 { 1199 if x != nil && x.TopP != nil { 1200 return *x.TopP 1201 } 1202 return 0 1203 } 1204 1205 func (x *GenerationConfig) GetTopK() float32 { 1206 if x != nil && x.TopK != nil { 1207 return *x.TopK 1208 } 1209 return 0 1210 } 1211 1212 func (x *GenerationConfig) GetCandidateCount() int32 { 1213 if x != nil && x.CandidateCount != nil { 1214 return *x.CandidateCount 1215 } 1216 return 0 1217 } 1218 1219 func (x *GenerationConfig) GetMaxOutputTokens() int32 { 1220 if x != nil && x.MaxOutputTokens != nil { 1221 return *x.MaxOutputTokens 1222 } 1223 return 0 1224 } 1225 1226 func (x *GenerationConfig) GetStopSequences() []string { 1227 if x != nil { 1228 return x.StopSequences 1229 } 1230 return nil 1231 } 1232 1233 func (x *GenerationConfig) GetResponseLogprobs() bool { 1234 if x != nil && x.ResponseLogprobs != nil { 1235 return *x.ResponseLogprobs 1236 } 1237 return false 1238 } 1239 1240 func (x *GenerationConfig) GetLogprobs() int32 { 1241 if x != nil && x.Logprobs != nil { 1242 return *x.Logprobs 1243 } 1244 return 0 1245 } 1246 1247 func (x *GenerationConfig) GetPresencePenalty() float32 { 1248 if x != nil && x.PresencePenalty != nil { 1249 return *x.PresencePenalty 1250 } 1251 return 0 1252 } 1253 1254 func (x *GenerationConfig) GetFrequencyPenalty() float32 { 1255 if x != nil && x.FrequencyPenalty != nil { 1256 return *x.FrequencyPenalty 1257 } 1258 return 0 1259 } 1260 1261 func (x *GenerationConfig) GetSeed() int32 { 1262 if x != nil && x.Seed != nil { 1263 return *x.Seed 1264 } 1265 return 0 1266 } 1267 1268 func (x *GenerationConfig) GetResponseMimeType() string { 1269 if x != nil { 1270 return x.ResponseMimeType 1271 } 1272 return "" 1273 } 1274 1275 func (x *GenerationConfig) GetResponseSchema() *Schema { 1276 if x != nil { 1277 return x.ResponseSchema 1278 } 1279 return nil 1280 } 1281 1282 func (x *GenerationConfig) GetResponseJsonSchema() *structpb.Value { 1283 if x != nil { 1284 return x.ResponseJsonSchema 1285 } 1286 return nil 1287 } 1288 1289 func (x *GenerationConfig) GetRoutingConfig() *GenerationConfig_RoutingConfig { 1290 if x != nil { 1291 return x.RoutingConfig 1292 } 1293 return nil 1294 } 1295 1296 func (x *GenerationConfig) GetThinkingConfig() *GenerationConfig_ThinkingConfig { 1297 if x != nil { 1298 return x.ThinkingConfig 1299 } 1300 return nil 1301 } 1302 1303 // Safety settings. 1304 type SafetySetting struct { 1305 state protoimpl.MessageState 1306 sizeCache protoimpl.SizeCache 1307 unknownFields protoimpl.UnknownFields 1308 1309 // Required. Harm category. 1310 Category HarmCategory `protobuf:"varint,1,opt,name=category,proto3,enum=google.cloud.aiplatform.v1.HarmCategory" json:"category,omitempty"` 1311 // Required. The harm block threshold. 1312 Threshold SafetySetting_HarmBlockThreshold `protobuf:"varint,2,opt,name=threshold,proto3,enum=google.cloud.aiplatform.v1.SafetySetting_HarmBlockThreshold" json:"threshold,omitempty"` 1313 // Optional. Specify if the threshold is used for probability or severity 1314 // score. If not specified, the threshold is used for probability score. 1315 Method SafetySetting_HarmBlockMethod `protobuf:"varint,4,opt,name=method,proto3,enum=google.cloud.aiplatform.v1.SafetySetting_HarmBlockMethod" json:"method,omitempty"` 1316 } 1317 1318 func (x *SafetySetting) Reset() { 1319 *x = SafetySetting{} 1320 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[6] 1321 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1322 ms.StoreMessageInfo(mi) 1323 } 1324 1325 func (x *SafetySetting) String() string { 1326 return protoimpl.X.MessageStringOf(x) 1327 } 1328 1329 func (*SafetySetting) ProtoMessage() {} 1330 1331 func (x *SafetySetting) ProtoReflect() protoreflect.Message { 1332 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[6] 1333 if x != nil { 1334 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1335 if ms.LoadMessageInfo() == nil { 1336 ms.StoreMessageInfo(mi) 1337 } 1338 return ms 1339 } 1340 return mi.MessageOf(x) 1341 } 1342 1343 // Deprecated: Use SafetySetting.ProtoReflect.Descriptor instead. 1344 func (*SafetySetting) Descriptor() ([]byte, []int) { 1345 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{6} 1346 } 1347 1348 func (x *SafetySetting) GetCategory() HarmCategory { 1349 if x != nil { 1350 return x.Category 1351 } 1352 return HarmCategory_HARM_CATEGORY_UNSPECIFIED 1353 } 1354 1355 func (x *SafetySetting) GetThreshold() SafetySetting_HarmBlockThreshold { 1356 if x != nil { 1357 return x.Threshold 1358 } 1359 return SafetySetting_HARM_BLOCK_THRESHOLD_UNSPECIFIED 1360 } 1361 1362 func (x *SafetySetting) GetMethod() SafetySetting_HarmBlockMethod { 1363 if x != nil { 1364 return x.Method 1365 } 1366 return SafetySetting_HARM_BLOCK_METHOD_UNSPECIFIED 1367 } 1368 1369 // Safety rating corresponding to the generated content. 1370 type SafetyRating struct { 1371 state protoimpl.MessageState 1372 sizeCache protoimpl.SizeCache 1373 unknownFields protoimpl.UnknownFields 1374 1375 // Output only. Harm category. 1376 Category HarmCategory `protobuf:"varint,1,opt,name=category,proto3,enum=google.cloud.aiplatform.v1.HarmCategory" json:"category,omitempty"` 1377 // Output only. Harm probability levels in the content. 1378 Probability SafetyRating_HarmProbability `protobuf:"varint,2,opt,name=probability,proto3,enum=google.cloud.aiplatform.v1.SafetyRating_HarmProbability" json:"probability,omitempty"` 1379 // Output only. Harm probability score. 1380 ProbabilityScore float32 `protobuf:"fixed32,5,opt,name=probability_score,json=probabilityScore,proto3" json:"probability_score,omitempty"` 1381 // Output only. Harm severity levels in the content. 1382 Severity SafetyRating_HarmSeverity `protobuf:"varint,6,opt,name=severity,proto3,enum=google.cloud.aiplatform.v1.SafetyRating_HarmSeverity" json:"severity,omitempty"` 1383 // Output only. Harm severity score. 1384 SeverityScore float32 `protobuf:"fixed32,7,opt,name=severity_score,json=severityScore,proto3" json:"severity_score,omitempty"` 1385 // Output only. Indicates whether the content was filtered out because of this 1386 // rating. 1387 Blocked bool `protobuf:"varint,3,opt,name=blocked,proto3" json:"blocked,omitempty"` 1388 } 1389 1390 func (x *SafetyRating) Reset() { 1391 *x = SafetyRating{} 1392 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[7] 1393 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1394 ms.StoreMessageInfo(mi) 1395 } 1396 1397 func (x *SafetyRating) String() string { 1398 return protoimpl.X.MessageStringOf(x) 1399 } 1400 1401 func (*SafetyRating) ProtoMessage() {} 1402 1403 func (x *SafetyRating) ProtoReflect() protoreflect.Message { 1404 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[7] 1405 if x != nil { 1406 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1407 if ms.LoadMessageInfo() == nil { 1408 ms.StoreMessageInfo(mi) 1409 } 1410 return ms 1411 } 1412 return mi.MessageOf(x) 1413 } 1414 1415 // Deprecated: Use SafetyRating.ProtoReflect.Descriptor instead. 1416 func (*SafetyRating) Descriptor() ([]byte, []int) { 1417 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{7} 1418 } 1419 1420 func (x *SafetyRating) GetCategory() HarmCategory { 1421 if x != nil { 1422 return x.Category 1423 } 1424 return HarmCategory_HARM_CATEGORY_UNSPECIFIED 1425 } 1426 1427 func (x *SafetyRating) GetProbability() SafetyRating_HarmProbability { 1428 if x != nil { 1429 return x.Probability 1430 } 1431 return SafetyRating_HARM_PROBABILITY_UNSPECIFIED 1432 } 1433 1434 func (x *SafetyRating) GetProbabilityScore() float32 { 1435 if x != nil { 1436 return x.ProbabilityScore 1437 } 1438 return 0 1439 } 1440 1441 func (x *SafetyRating) GetSeverity() SafetyRating_HarmSeverity { 1442 if x != nil { 1443 return x.Severity 1444 } 1445 return SafetyRating_HARM_SEVERITY_UNSPECIFIED 1446 } 1447 1448 func (x *SafetyRating) GetSeverityScore() float32 { 1449 if x != nil { 1450 return x.SeverityScore 1451 } 1452 return 0 1453 } 1454 1455 func (x *SafetyRating) GetBlocked() bool { 1456 if x != nil { 1457 return x.Blocked 1458 } 1459 return false 1460 } 1461 1462 // A collection of source attributions for a piece of content. 1463 type CitationMetadata struct { 1464 state protoimpl.MessageState 1465 sizeCache protoimpl.SizeCache 1466 unknownFields protoimpl.UnknownFields 1467 1468 // Output only. List of citations. 1469 Citations []*Citation `protobuf:"bytes,1,rep,name=citations,proto3" json:"citations,omitempty"` 1470 } 1471 1472 func (x *CitationMetadata) Reset() { 1473 *x = CitationMetadata{} 1474 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[8] 1475 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1476 ms.StoreMessageInfo(mi) 1477 } 1478 1479 func (x *CitationMetadata) String() string { 1480 return protoimpl.X.MessageStringOf(x) 1481 } 1482 1483 func (*CitationMetadata) ProtoMessage() {} 1484 1485 func (x *CitationMetadata) ProtoReflect() protoreflect.Message { 1486 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[8] 1487 if x != nil { 1488 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1489 if ms.LoadMessageInfo() == nil { 1490 ms.StoreMessageInfo(mi) 1491 } 1492 return ms 1493 } 1494 return mi.MessageOf(x) 1495 } 1496 1497 // Deprecated: Use CitationMetadata.ProtoReflect.Descriptor instead. 1498 func (*CitationMetadata) Descriptor() ([]byte, []int) { 1499 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{8} 1500 } 1501 1502 func (x *CitationMetadata) GetCitations() []*Citation { 1503 if x != nil { 1504 return x.Citations 1505 } 1506 return nil 1507 } 1508 1509 // Source attributions for content. 1510 type Citation struct { 1511 state protoimpl.MessageState 1512 sizeCache protoimpl.SizeCache 1513 unknownFields protoimpl.UnknownFields 1514 1515 // Output only. Start index into the content. 1516 StartIndex int32 `protobuf:"varint,1,opt,name=start_index,json=startIndex,proto3" json:"start_index,omitempty"` 1517 // Output only. End index into the content. 1518 EndIndex int32 `protobuf:"varint,2,opt,name=end_index,json=endIndex,proto3" json:"end_index,omitempty"` 1519 // Output only. Url reference of the attribution. 1520 Uri string `protobuf:"bytes,3,opt,name=uri,proto3" json:"uri,omitempty"` 1521 // Output only. Title of the attribution. 1522 Title string `protobuf:"bytes,4,opt,name=title,proto3" json:"title,omitempty"` 1523 // Output only. License of the attribution. 1524 License string `protobuf:"bytes,5,opt,name=license,proto3" json:"license,omitempty"` 1525 // Output only. Publication date of the attribution. 1526 PublicationDate *date.Date `protobuf:"bytes,6,opt,name=publication_date,json=publicationDate,proto3" json:"publication_date,omitempty"` 1527 } 1528 1529 func (x *Citation) Reset() { 1530 *x = Citation{} 1531 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[9] 1532 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1533 ms.StoreMessageInfo(mi) 1534 } 1535 1536 func (x *Citation) String() string { 1537 return protoimpl.X.MessageStringOf(x) 1538 } 1539 1540 func (*Citation) ProtoMessage() {} 1541 1542 func (x *Citation) ProtoReflect() protoreflect.Message { 1543 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[9] 1544 if x != nil { 1545 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1546 if ms.LoadMessageInfo() == nil { 1547 ms.StoreMessageInfo(mi) 1548 } 1549 return ms 1550 } 1551 return mi.MessageOf(x) 1552 } 1553 1554 // Deprecated: Use Citation.ProtoReflect.Descriptor instead. 1555 func (*Citation) Descriptor() ([]byte, []int) { 1556 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{9} 1557 } 1558 1559 func (x *Citation) GetStartIndex() int32 { 1560 if x != nil { 1561 return x.StartIndex 1562 } 1563 return 0 1564 } 1565 1566 func (x *Citation) GetEndIndex() int32 { 1567 if x != nil { 1568 return x.EndIndex 1569 } 1570 return 0 1571 } 1572 1573 func (x *Citation) GetUri() string { 1574 if x != nil { 1575 return x.Uri 1576 } 1577 return "" 1578 } 1579 1580 func (x *Citation) GetTitle() string { 1581 if x != nil { 1582 return x.Title 1583 } 1584 return "" 1585 } 1586 1587 func (x *Citation) GetLicense() string { 1588 if x != nil { 1589 return x.License 1590 } 1591 return "" 1592 } 1593 1594 func (x *Citation) GetPublicationDate() *date.Date { 1595 if x != nil { 1596 return x.PublicationDate 1597 } 1598 return nil 1599 } 1600 1601 // A response candidate generated from the model. 1602 type Candidate struct { 1603 state protoimpl.MessageState 1604 sizeCache protoimpl.SizeCache 1605 unknownFields protoimpl.UnknownFields 1606 1607 // Output only. Index of the candidate. 1608 Index int32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` 1609 // Output only. Content parts of the candidate. 1610 Content *Content `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` 1611 // Output only. Confidence score of the candidate. 1612 Score float64 `protobuf:"fixed64,8,opt,name=score,proto3" json:"score,omitempty"` 1613 // Output only. Average log probability score of the candidate. 1614 AvgLogprobs float64 `protobuf:"fixed64,9,opt,name=avg_logprobs,json=avgLogprobs,proto3" json:"avg_logprobs,omitempty"` 1615 // Output only. Log-likelihood scores for the response tokens and top tokens 1616 LogprobsResult *LogprobsResult `protobuf:"bytes,10,opt,name=logprobs_result,json=logprobsResult,proto3" json:"logprobs_result,omitempty"` 1617 // Output only. The reason why the model stopped generating tokens. 1618 // If empty, the model has not stopped generating the tokens. 1619 FinishReason Candidate_FinishReason `protobuf:"varint,3,opt,name=finish_reason,json=finishReason,proto3,enum=google.cloud.aiplatform.v1.Candidate_FinishReason" json:"finish_reason,omitempty"` 1620 // Output only. List of ratings for the safety of a response candidate. 1621 // 1622 // There is at most one rating per category. 1623 SafetyRatings []*SafetyRating `protobuf:"bytes,4,rep,name=safety_ratings,json=safetyRatings,proto3" json:"safety_ratings,omitempty"` 1624 // Output only. Describes the reason the mode stopped generating tokens in 1625 // more detail. This is only filled when `finish_reason` is set. 1626 FinishMessage *string `protobuf:"bytes,5,opt,name=finish_message,json=finishMessage,proto3,oneof" json:"finish_message,omitempty"` 1627 // Output only. Source attribution of the generated content. 1628 CitationMetadata *CitationMetadata `protobuf:"bytes,6,opt,name=citation_metadata,json=citationMetadata,proto3" json:"citation_metadata,omitempty"` 1629 // Output only. Metadata specifies sources used to ground generated content. 1630 GroundingMetadata *GroundingMetadata `protobuf:"bytes,7,opt,name=grounding_metadata,json=groundingMetadata,proto3" json:"grounding_metadata,omitempty"` 1631 // Output only. Metadata related to url context retrieval tool. 1632 UrlContextMetadata *UrlContextMetadata `protobuf:"bytes,11,opt,name=url_context_metadata,json=urlContextMetadata,proto3" json:"url_context_metadata,omitempty"` 1633 } 1634 1635 func (x *Candidate) Reset() { 1636 *x = Candidate{} 1637 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[10] 1638 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1639 ms.StoreMessageInfo(mi) 1640 } 1641 1642 func (x *Candidate) String() string { 1643 return protoimpl.X.MessageStringOf(x) 1644 } 1645 1646 func (*Candidate) ProtoMessage() {} 1647 1648 func (x *Candidate) ProtoReflect() protoreflect.Message { 1649 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[10] 1650 if x != nil { 1651 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1652 if ms.LoadMessageInfo() == nil { 1653 ms.StoreMessageInfo(mi) 1654 } 1655 return ms 1656 } 1657 return mi.MessageOf(x) 1658 } 1659 1660 // Deprecated: Use Candidate.ProtoReflect.Descriptor instead. 1661 func (*Candidate) Descriptor() ([]byte, []int) { 1662 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{10} 1663 } 1664 1665 func (x *Candidate) GetIndex() int32 { 1666 if x != nil { 1667 return x.Index 1668 } 1669 return 0 1670 } 1671 1672 func (x *Candidate) GetContent() *Content { 1673 if x != nil { 1674 return x.Content 1675 } 1676 return nil 1677 } 1678 1679 func (x *Candidate) GetScore() float64 { 1680 if x != nil { 1681 return x.Score 1682 } 1683 return 0 1684 } 1685 1686 func (x *Candidate) GetAvgLogprobs() float64 { 1687 if x != nil { 1688 return x.AvgLogprobs 1689 } 1690 return 0 1691 } 1692 1693 func (x *Candidate) GetLogprobsResult() *LogprobsResult { 1694 if x != nil { 1695 return x.LogprobsResult 1696 } 1697 return nil 1698 } 1699 1700 func (x *Candidate) GetFinishReason() Candidate_FinishReason { 1701 if x != nil { 1702 return x.FinishReason 1703 } 1704 return Candidate_FINISH_REASON_UNSPECIFIED 1705 } 1706 1707 func (x *Candidate) GetSafetyRatings() []*SafetyRating { 1708 if x != nil { 1709 return x.SafetyRatings 1710 } 1711 return nil 1712 } 1713 1714 func (x *Candidate) GetFinishMessage() string { 1715 if x != nil && x.FinishMessage != nil { 1716 return *x.FinishMessage 1717 } 1718 return "" 1719 } 1720 1721 func (x *Candidate) GetCitationMetadata() *CitationMetadata { 1722 if x != nil { 1723 return x.CitationMetadata 1724 } 1725 return nil 1726 } 1727 1728 func (x *Candidate) GetGroundingMetadata() *GroundingMetadata { 1729 if x != nil { 1730 return x.GroundingMetadata 1731 } 1732 return nil 1733 } 1734 1735 func (x *Candidate) GetUrlContextMetadata() *UrlContextMetadata { 1736 if x != nil { 1737 return x.UrlContextMetadata 1738 } 1739 return nil 1740 } 1741 1742 // Metadata related to url context retrieval tool. 1743 type UrlContextMetadata struct { 1744 state protoimpl.MessageState 1745 sizeCache protoimpl.SizeCache 1746 unknownFields protoimpl.UnknownFields 1747 1748 // Output only. List of url context. 1749 UrlMetadata []*UrlMetadata `protobuf:"bytes,1,rep,name=url_metadata,json=urlMetadata,proto3" json:"url_metadata,omitempty"` 1750 } 1751 1752 func (x *UrlContextMetadata) Reset() { 1753 *x = UrlContextMetadata{} 1754 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[11] 1755 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1756 ms.StoreMessageInfo(mi) 1757 } 1758 1759 func (x *UrlContextMetadata) String() string { 1760 return protoimpl.X.MessageStringOf(x) 1761 } 1762 1763 func (*UrlContextMetadata) ProtoMessage() {} 1764 1765 func (x *UrlContextMetadata) ProtoReflect() protoreflect.Message { 1766 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[11] 1767 if x != nil { 1768 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1769 if ms.LoadMessageInfo() == nil { 1770 ms.StoreMessageInfo(mi) 1771 } 1772 return ms 1773 } 1774 return mi.MessageOf(x) 1775 } 1776 1777 // Deprecated: Use UrlContextMetadata.ProtoReflect.Descriptor instead. 1778 func (*UrlContextMetadata) Descriptor() ([]byte, []int) { 1779 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{11} 1780 } 1781 1782 func (x *UrlContextMetadata) GetUrlMetadata() []*UrlMetadata { 1783 if x != nil { 1784 return x.UrlMetadata 1785 } 1786 return nil 1787 } 1788 1789 // Context of the a single url retrieval. 1790 type UrlMetadata struct { 1791 state protoimpl.MessageState 1792 sizeCache protoimpl.SizeCache 1793 unknownFields protoimpl.UnknownFields 1794 1795 // Retrieved url by the tool. 1796 RetrievedUrl string `protobuf:"bytes,1,opt,name=retrieved_url,json=retrievedUrl,proto3" json:"retrieved_url,omitempty"` 1797 // Status of the url retrieval. 1798 UrlRetrievalStatus UrlMetadata_UrlRetrievalStatus `protobuf:"varint,2,opt,name=url_retrieval_status,json=urlRetrievalStatus,proto3,enum=google.cloud.aiplatform.v1.UrlMetadata_UrlRetrievalStatus" json:"url_retrieval_status,omitempty"` 1799 } 1800 1801 func (x *UrlMetadata) Reset() { 1802 *x = UrlMetadata{} 1803 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[12] 1804 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1805 ms.StoreMessageInfo(mi) 1806 } 1807 1808 func (x *UrlMetadata) String() string { 1809 return protoimpl.X.MessageStringOf(x) 1810 } 1811 1812 func (*UrlMetadata) ProtoMessage() {} 1813 1814 func (x *UrlMetadata) ProtoReflect() protoreflect.Message { 1815 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[12] 1816 if x != nil { 1817 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1818 if ms.LoadMessageInfo() == nil { 1819 ms.StoreMessageInfo(mi) 1820 } 1821 return ms 1822 } 1823 return mi.MessageOf(x) 1824 } 1825 1826 // Deprecated: Use UrlMetadata.ProtoReflect.Descriptor instead. 1827 func (*UrlMetadata) Descriptor() ([]byte, []int) { 1828 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{12} 1829 } 1830 1831 func (x *UrlMetadata) GetRetrievedUrl() string { 1832 if x != nil { 1833 return x.RetrievedUrl 1834 } 1835 return "" 1836 } 1837 1838 func (x *UrlMetadata) GetUrlRetrievalStatus() UrlMetadata_UrlRetrievalStatus { 1839 if x != nil { 1840 return x.UrlRetrievalStatus 1841 } 1842 return UrlMetadata_URL_RETRIEVAL_STATUS_UNSPECIFIED 1843 } 1844 1845 // Logprobs Result 1846 type LogprobsResult struct { 1847 state protoimpl.MessageState 1848 sizeCache protoimpl.SizeCache 1849 unknownFields protoimpl.UnknownFields 1850 1851 // Length = total number of decoding steps. 1852 TopCandidates []*LogprobsResult_TopCandidates `protobuf:"bytes,1,rep,name=top_candidates,json=topCandidates,proto3" json:"top_candidates,omitempty"` 1853 // Length = total number of decoding steps. 1854 // The chosen candidates may or may not be in top_candidates. 1855 ChosenCandidates []*LogprobsResult_Candidate `protobuf:"bytes,2,rep,name=chosen_candidates,json=chosenCandidates,proto3" json:"chosen_candidates,omitempty"` 1856 } 1857 1858 func (x *LogprobsResult) Reset() { 1859 *x = LogprobsResult{} 1860 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[13] 1861 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1862 ms.StoreMessageInfo(mi) 1863 } 1864 1865 func (x *LogprobsResult) String() string { 1866 return protoimpl.X.MessageStringOf(x) 1867 } 1868 1869 func (*LogprobsResult) ProtoMessage() {} 1870 1871 func (x *LogprobsResult) ProtoReflect() protoreflect.Message { 1872 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[13] 1873 if x != nil { 1874 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1875 if ms.LoadMessageInfo() == nil { 1876 ms.StoreMessageInfo(mi) 1877 } 1878 return ms 1879 } 1880 return mi.MessageOf(x) 1881 } 1882 1883 // Deprecated: Use LogprobsResult.ProtoReflect.Descriptor instead. 1884 func (*LogprobsResult) Descriptor() ([]byte, []int) { 1885 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{13} 1886 } 1887 1888 func (x *LogprobsResult) GetTopCandidates() []*LogprobsResult_TopCandidates { 1889 if x != nil { 1890 return x.TopCandidates 1891 } 1892 return nil 1893 } 1894 1895 func (x *LogprobsResult) GetChosenCandidates() []*LogprobsResult_Candidate { 1896 if x != nil { 1897 return x.ChosenCandidates 1898 } 1899 return nil 1900 } 1901 1902 // Segment of the content. 1903 type Segment struct { 1904 state protoimpl.MessageState 1905 sizeCache protoimpl.SizeCache 1906 unknownFields protoimpl.UnknownFields 1907 1908 // Output only. The index of a Part object within its parent Content object. 1909 PartIndex int32 `protobuf:"varint,1,opt,name=part_index,json=partIndex,proto3" json:"part_index,omitempty"` 1910 // Output only. Start index in the given Part, measured in bytes. Offset from 1911 // the start of the Part, inclusive, starting at zero. 1912 StartIndex int32 `protobuf:"varint,2,opt,name=start_index,json=startIndex,proto3" json:"start_index,omitempty"` 1913 // Output only. End index in the given Part, measured in bytes. Offset from 1914 // the start of the Part, exclusive, starting at zero. 1915 EndIndex int32 `protobuf:"varint,3,opt,name=end_index,json=endIndex,proto3" json:"end_index,omitempty"` 1916 // Output only. The text corresponding to the segment from the response. 1917 Text string `protobuf:"bytes,4,opt,name=text,proto3" json:"text,omitempty"` 1918 } 1919 1920 func (x *Segment) Reset() { 1921 *x = Segment{} 1922 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[14] 1923 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1924 ms.StoreMessageInfo(mi) 1925 } 1926 1927 func (x *Segment) String() string { 1928 return protoimpl.X.MessageStringOf(x) 1929 } 1930 1931 func (*Segment) ProtoMessage() {} 1932 1933 func (x *Segment) ProtoReflect() protoreflect.Message { 1934 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[14] 1935 if x != nil { 1936 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1937 if ms.LoadMessageInfo() == nil { 1938 ms.StoreMessageInfo(mi) 1939 } 1940 return ms 1941 } 1942 return mi.MessageOf(x) 1943 } 1944 1945 // Deprecated: Use Segment.ProtoReflect.Descriptor instead. 1946 func (*Segment) Descriptor() ([]byte, []int) { 1947 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{14} 1948 } 1949 1950 func (x *Segment) GetPartIndex() int32 { 1951 if x != nil { 1952 return x.PartIndex 1953 } 1954 return 0 1955 } 1956 1957 func (x *Segment) GetStartIndex() int32 { 1958 if x != nil { 1959 return x.StartIndex 1960 } 1961 return 0 1962 } 1963 1964 func (x *Segment) GetEndIndex() int32 { 1965 if x != nil { 1966 return x.EndIndex 1967 } 1968 return 0 1969 } 1970 1971 func (x *Segment) GetText() string { 1972 if x != nil { 1973 return x.Text 1974 } 1975 return "" 1976 } 1977 1978 // Grounding chunk. 1979 type GroundingChunk struct { 1980 state protoimpl.MessageState 1981 sizeCache protoimpl.SizeCache 1982 unknownFields protoimpl.UnknownFields 1983 1984 // Chunk type. 1985 // 1986 // Types that are assignable to ChunkType: 1987 // 1988 // *GroundingChunk_Web_ 1989 // *GroundingChunk_RetrievedContext_ 1990 // *GroundingChunk_Maps_ 1991 ChunkType isGroundingChunk_ChunkType `protobuf_oneof:"chunk_type"` 1992 } 1993 1994 func (x *GroundingChunk) Reset() { 1995 *x = GroundingChunk{} 1996 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[15] 1997 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1998 ms.StoreMessageInfo(mi) 1999 } 2000 2001 func (x *GroundingChunk) String() string { 2002 return protoimpl.X.MessageStringOf(x) 2003 } 2004 2005 func (*GroundingChunk) ProtoMessage() {} 2006 2007 func (x *GroundingChunk) ProtoReflect() protoreflect.Message { 2008 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[15] 2009 if x != nil { 2010 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2011 if ms.LoadMessageInfo() == nil { 2012 ms.StoreMessageInfo(mi) 2013 } 2014 return ms 2015 } 2016 return mi.MessageOf(x) 2017 } 2018 2019 // Deprecated: Use GroundingChunk.ProtoReflect.Descriptor instead. 2020 func (*GroundingChunk) Descriptor() ([]byte, []int) { 2021 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{15} 2022 } 2023 2024 func (m *GroundingChunk) GetChunkType() isGroundingChunk_ChunkType { 2025 if m != nil { 2026 return m.ChunkType 2027 } 2028 return nil 2029 } 2030 2031 func (x *GroundingChunk) GetWeb() *GroundingChunk_Web { 2032 if x, ok := x.GetChunkType().(*GroundingChunk_Web_); ok { 2033 return x.Web 2034 } 2035 return nil 2036 } 2037 2038 func (x *GroundingChunk) GetRetrievedContext() *GroundingChunk_RetrievedContext { 2039 if x, ok := x.GetChunkType().(*GroundingChunk_RetrievedContext_); ok { 2040 return x.RetrievedContext 2041 } 2042 return nil 2043 } 2044 2045 func (x *GroundingChunk) GetMaps() *GroundingChunk_Maps { 2046 if x, ok := x.GetChunkType().(*GroundingChunk_Maps_); ok { 2047 return x.Maps 2048 } 2049 return nil 2050 } 2051 2052 type isGroundingChunk_ChunkType interface { 2053 isGroundingChunk_ChunkType() 2054 } 2055 2056 type GroundingChunk_Web_ struct { 2057 // Grounding chunk from the web. 2058 Web *GroundingChunk_Web `protobuf:"bytes,1,opt,name=web,proto3,oneof"` 2059 } 2060 2061 type GroundingChunk_RetrievedContext_ struct { 2062 // Grounding chunk from context retrieved by the retrieval tools. 2063 RetrievedContext *GroundingChunk_RetrievedContext `protobuf:"bytes,2,opt,name=retrieved_context,json=retrievedContext,proto3,oneof"` 2064 } 2065 2066 type GroundingChunk_Maps_ struct { 2067 // Grounding chunk from Google Maps. 2068 Maps *GroundingChunk_Maps `protobuf:"bytes,3,opt,name=maps,proto3,oneof"` 2069 } 2070 2071 func (*GroundingChunk_Web_) isGroundingChunk_ChunkType() {} 2072 2073 func (*GroundingChunk_RetrievedContext_) isGroundingChunk_ChunkType() {} 2074 2075 func (*GroundingChunk_Maps_) isGroundingChunk_ChunkType() {} 2076 2077 // Grounding support. 2078 type GroundingSupport struct { 2079 state protoimpl.MessageState 2080 sizeCache protoimpl.SizeCache 2081 unknownFields protoimpl.UnknownFields 2082 2083 // Segment of the content this support belongs to. 2084 Segment *Segment `protobuf:"bytes,1,opt,name=segment,proto3,oneof" json:"segment,omitempty"` 2085 // A list of indices (into 'grounding_chunk') specifying the 2086 // citations associated with the claim. For instance [1,3,4] means 2087 // that grounding_chunk[1], grounding_chunk[3], 2088 // grounding_chunk[4] are the retrieved content attributed to the claim. 2089 GroundingChunkIndices []int32 `protobuf:"varint,2,rep,packed,name=grounding_chunk_indices,json=groundingChunkIndices,proto3" json:"grounding_chunk_indices,omitempty"` 2090 // Confidence score of the support references. Ranges from 0 to 1. 1 is the 2091 // most confident. This list must have the same size as the 2092 // grounding_chunk_indices. 2093 ConfidenceScores []float32 `protobuf:"fixed32,3,rep,packed,name=confidence_scores,json=confidenceScores,proto3" json:"confidence_scores,omitempty"` 2094 } 2095 2096 func (x *GroundingSupport) Reset() { 2097 *x = GroundingSupport{} 2098 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[16] 2099 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2100 ms.StoreMessageInfo(mi) 2101 } 2102 2103 func (x *GroundingSupport) String() string { 2104 return protoimpl.X.MessageStringOf(x) 2105 } 2106 2107 func (*GroundingSupport) ProtoMessage() {} 2108 2109 func (x *GroundingSupport) ProtoReflect() protoreflect.Message { 2110 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[16] 2111 if x != nil { 2112 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2113 if ms.LoadMessageInfo() == nil { 2114 ms.StoreMessageInfo(mi) 2115 } 2116 return ms 2117 } 2118 return mi.MessageOf(x) 2119 } 2120 2121 // Deprecated: Use GroundingSupport.ProtoReflect.Descriptor instead. 2122 func (*GroundingSupport) Descriptor() ([]byte, []int) { 2123 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{16} 2124 } 2125 2126 func (x *GroundingSupport) GetSegment() *Segment { 2127 if x != nil { 2128 return x.Segment 2129 } 2130 return nil 2131 } 2132 2133 func (x *GroundingSupport) GetGroundingChunkIndices() []int32 { 2134 if x != nil { 2135 return x.GroundingChunkIndices 2136 } 2137 return nil 2138 } 2139 2140 func (x *GroundingSupport) GetConfidenceScores() []float32 { 2141 if x != nil { 2142 return x.ConfidenceScores 2143 } 2144 return nil 2145 } 2146 2147 // Metadata returned to client when grounding is enabled. 2148 type GroundingMetadata struct { 2149 state protoimpl.MessageState 2150 sizeCache protoimpl.SizeCache 2151 unknownFields protoimpl.UnknownFields 2152 2153 // Optional. Web search queries for the following-up web search. 2154 WebSearchQueries []string `protobuf:"bytes,1,rep,name=web_search_queries,json=webSearchQueries,proto3" json:"web_search_queries,omitempty"` 2155 // Optional. Google search entry for the following-up web searches. 2156 SearchEntryPoint *SearchEntryPoint `protobuf:"bytes,4,opt,name=search_entry_point,json=searchEntryPoint,proto3,oneof" json:"search_entry_point,omitempty"` 2157 // List of supporting references retrieved from specified grounding source. 2158 GroundingChunks []*GroundingChunk `protobuf:"bytes,5,rep,name=grounding_chunks,json=groundingChunks,proto3" json:"grounding_chunks,omitempty"` 2159 // Optional. List of grounding support. 2160 GroundingSupports []*GroundingSupport `protobuf:"bytes,6,rep,name=grounding_supports,json=groundingSupports,proto3" json:"grounding_supports,omitempty"` 2161 // Optional. Output only. Retrieval metadata. 2162 RetrievalMetadata *RetrievalMetadata `protobuf:"bytes,7,opt,name=retrieval_metadata,json=retrievalMetadata,proto3,oneof" json:"retrieval_metadata,omitempty"` 2163 // Optional. Output only. Resource name of the Google Maps widget context 2164 // token to be used with the PlacesContextElement widget to render contextual 2165 // data. This is populated only for Google Maps grounding. 2166 GoogleMapsWidgetContextToken *string `protobuf:"bytes,8,opt,name=google_maps_widget_context_token,json=googleMapsWidgetContextToken,proto3,oneof" json:"google_maps_widget_context_token,omitempty"` 2167 // List of source flagging uris. This is currently populated only for Google 2168 // Maps grounding. 2169 SourceFlaggingUris []*GroundingMetadata_SourceFlaggingUri `protobuf:"bytes,9,rep,name=source_flagging_uris,json=sourceFlaggingUris,proto3" json:"source_flagging_uris,omitempty"` 2170 } 2171 2172 func (x *GroundingMetadata) Reset() { 2173 *x = GroundingMetadata{} 2174 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[17] 2175 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2176 ms.StoreMessageInfo(mi) 2177 } 2178 2179 func (x *GroundingMetadata) String() string { 2180 return protoimpl.X.MessageStringOf(x) 2181 } 2182 2183 func (*GroundingMetadata) ProtoMessage() {} 2184 2185 func (x *GroundingMetadata) ProtoReflect() protoreflect.Message { 2186 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[17] 2187 if x != nil { 2188 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2189 if ms.LoadMessageInfo() == nil { 2190 ms.StoreMessageInfo(mi) 2191 } 2192 return ms 2193 } 2194 return mi.MessageOf(x) 2195 } 2196 2197 // Deprecated: Use GroundingMetadata.ProtoReflect.Descriptor instead. 2198 func (*GroundingMetadata) Descriptor() ([]byte, []int) { 2199 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{17} 2200 } 2201 2202 func (x *GroundingMetadata) GetWebSearchQueries() []string { 2203 if x != nil { 2204 return x.WebSearchQueries 2205 } 2206 return nil 2207 } 2208 2209 func (x *GroundingMetadata) GetSearchEntryPoint() *SearchEntryPoint { 2210 if x != nil { 2211 return x.SearchEntryPoint 2212 } 2213 return nil 2214 } 2215 2216 func (x *GroundingMetadata) GetGroundingChunks() []*GroundingChunk { 2217 if x != nil { 2218 return x.GroundingChunks 2219 } 2220 return nil 2221 } 2222 2223 func (x *GroundingMetadata) GetGroundingSupports() []*GroundingSupport { 2224 if x != nil { 2225 return x.GroundingSupports 2226 } 2227 return nil 2228 } 2229 2230 func (x *GroundingMetadata) GetRetrievalMetadata() *RetrievalMetadata { 2231 if x != nil { 2232 return x.RetrievalMetadata 2233 } 2234 return nil 2235 } 2236 2237 func (x *GroundingMetadata) GetGoogleMapsWidgetContextToken() string { 2238 if x != nil && x.GoogleMapsWidgetContextToken != nil { 2239 return *x.GoogleMapsWidgetContextToken 2240 } 2241 return "" 2242 } 2243 2244 func (x *GroundingMetadata) GetSourceFlaggingUris() []*GroundingMetadata_SourceFlaggingUri { 2245 if x != nil { 2246 return x.SourceFlaggingUris 2247 } 2248 return nil 2249 } 2250 2251 // Google search entry point. 2252 type SearchEntryPoint struct { 2253 state protoimpl.MessageState 2254 sizeCache protoimpl.SizeCache 2255 unknownFields protoimpl.UnknownFields 2256 2257 // Optional. Web content snippet that can be embedded in a web page or an app 2258 // webview. 2259 RenderedContent string `protobuf:"bytes,1,opt,name=rendered_content,json=renderedContent,proto3" json:"rendered_content,omitempty"` 2260 // Optional. Base64 encoded JSON representing array of <search term, search 2261 // url> tuple. 2262 SdkBlob []byte `protobuf:"bytes,2,opt,name=sdk_blob,json=sdkBlob,proto3" json:"sdk_blob,omitempty"` 2263 } 2264 2265 func (x *SearchEntryPoint) Reset() { 2266 *x = SearchEntryPoint{} 2267 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[18] 2268 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2269 ms.StoreMessageInfo(mi) 2270 } 2271 2272 func (x *SearchEntryPoint) String() string { 2273 return protoimpl.X.MessageStringOf(x) 2274 } 2275 2276 func (*SearchEntryPoint) ProtoMessage() {} 2277 2278 func (x *SearchEntryPoint) ProtoReflect() protoreflect.Message { 2279 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[18] 2280 if x != nil { 2281 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2282 if ms.LoadMessageInfo() == nil { 2283 ms.StoreMessageInfo(mi) 2284 } 2285 return ms 2286 } 2287 return mi.MessageOf(x) 2288 } 2289 2290 // Deprecated: Use SearchEntryPoint.ProtoReflect.Descriptor instead. 2291 func (*SearchEntryPoint) Descriptor() ([]byte, []int) { 2292 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{18} 2293 } 2294 2295 func (x *SearchEntryPoint) GetRenderedContent() string { 2296 if x != nil { 2297 return x.RenderedContent 2298 } 2299 return "" 2300 } 2301 2302 func (x *SearchEntryPoint) GetSdkBlob() []byte { 2303 if x != nil { 2304 return x.SdkBlob 2305 } 2306 return nil 2307 } 2308 2309 // Metadata related to retrieval in the grounding flow. 2310 type RetrievalMetadata struct { 2311 state protoimpl.MessageState 2312 sizeCache protoimpl.SizeCache 2313 unknownFields protoimpl.UnknownFields 2314 2315 // Optional. Score indicating how likely information from Google Search could 2316 // help answer the prompt. The score is in the range `[0, 1]`, where 0 is the 2317 // least likely and 1 is the most likely. This score is only populated when 2318 // Google Search grounding and dynamic retrieval is enabled. It will be 2319 // compared to the threshold to determine whether to trigger Google Search. 2320 GoogleSearchDynamicRetrievalScore float32 `protobuf:"fixed32,2,opt,name=google_search_dynamic_retrieval_score,json=googleSearchDynamicRetrievalScore,proto3" json:"google_search_dynamic_retrieval_score,omitempty"` 2321 } 2322 2323 func (x *RetrievalMetadata) Reset() { 2324 *x = RetrievalMetadata{} 2325 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[19] 2326 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2327 ms.StoreMessageInfo(mi) 2328 } 2329 2330 func (x *RetrievalMetadata) String() string { 2331 return protoimpl.X.MessageStringOf(x) 2332 } 2333 2334 func (*RetrievalMetadata) ProtoMessage() {} 2335 2336 func (x *RetrievalMetadata) ProtoReflect() protoreflect.Message { 2337 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[19] 2338 if x != nil { 2339 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2340 if ms.LoadMessageInfo() == nil { 2341 ms.StoreMessageInfo(mi) 2342 } 2343 return ms 2344 } 2345 return mi.MessageOf(x) 2346 } 2347 2348 // Deprecated: Use RetrievalMetadata.ProtoReflect.Descriptor instead. 2349 func (*RetrievalMetadata) Descriptor() ([]byte, []int) { 2350 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{19} 2351 } 2352 2353 func (x *RetrievalMetadata) GetGoogleSearchDynamicRetrievalScore() float32 { 2354 if x != nil { 2355 return x.GoogleSearchDynamicRetrievalScore 2356 } 2357 return 0 2358 } 2359 2360 // Configuration for Model Armor integrations of prompt and responses. 2361 type ModelArmorConfig struct { 2362 state protoimpl.MessageState 2363 sizeCache protoimpl.SizeCache 2364 unknownFields protoimpl.UnknownFields 2365 2366 // Optional. The name of the Model Armor template to use for prompt 2367 // sanitization. 2368 PromptTemplateName string `protobuf:"bytes,1,opt,name=prompt_template_name,json=promptTemplateName,proto3" json:"prompt_template_name,omitempty"` 2369 // Optional. The name of the Model Armor template to use for response 2370 // sanitization. 2371 ResponseTemplateName string `protobuf:"bytes,2,opt,name=response_template_name,json=responseTemplateName,proto3" json:"response_template_name,omitempty"` 2372 } 2373 2374 func (x *ModelArmorConfig) Reset() { 2375 *x = ModelArmorConfig{} 2376 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[20] 2377 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2378 ms.StoreMessageInfo(mi) 2379 } 2380 2381 func (x *ModelArmorConfig) String() string { 2382 return protoimpl.X.MessageStringOf(x) 2383 } 2384 2385 func (*ModelArmorConfig) ProtoMessage() {} 2386 2387 func (x *ModelArmorConfig) ProtoReflect() protoreflect.Message { 2388 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[20] 2389 if x != nil { 2390 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2391 if ms.LoadMessageInfo() == nil { 2392 ms.StoreMessageInfo(mi) 2393 } 2394 return ms 2395 } 2396 return mi.MessageOf(x) 2397 } 2398 2399 // Deprecated: Use ModelArmorConfig.ProtoReflect.Descriptor instead. 2400 func (*ModelArmorConfig) Descriptor() ([]byte, []int) { 2401 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{20} 2402 } 2403 2404 func (x *ModelArmorConfig) GetPromptTemplateName() string { 2405 if x != nil { 2406 return x.PromptTemplateName 2407 } 2408 return "" 2409 } 2410 2411 func (x *ModelArmorConfig) GetResponseTemplateName() string { 2412 if x != nil { 2413 return x.ResponseTemplateName 2414 } 2415 return "" 2416 } 2417 2418 // Represents token counting info for a single modality. 2419 type ModalityTokenCount struct { 2420 state protoimpl.MessageState 2421 sizeCache protoimpl.SizeCache 2422 unknownFields protoimpl.UnknownFields 2423 2424 // The modality associated with this token count. 2425 Modality Modality `protobuf:"varint,1,opt,name=modality,proto3,enum=google.cloud.aiplatform.v1.Modality" json:"modality,omitempty"` 2426 // Number of tokens. 2427 TokenCount int32 `protobuf:"varint,2,opt,name=token_count,json=tokenCount,proto3" json:"token_count,omitempty"` 2428 } 2429 2430 func (x *ModalityTokenCount) Reset() { 2431 *x = ModalityTokenCount{} 2432 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[21] 2433 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2434 ms.StoreMessageInfo(mi) 2435 } 2436 2437 func (x *ModalityTokenCount) String() string { 2438 return protoimpl.X.MessageStringOf(x) 2439 } 2440 2441 func (*ModalityTokenCount) ProtoMessage() {} 2442 2443 func (x *ModalityTokenCount) ProtoReflect() protoreflect.Message { 2444 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[21] 2445 if x != nil { 2446 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2447 if ms.LoadMessageInfo() == nil { 2448 ms.StoreMessageInfo(mi) 2449 } 2450 return ms 2451 } 2452 return mi.MessageOf(x) 2453 } 2454 2455 // Deprecated: Use ModalityTokenCount.ProtoReflect.Descriptor instead. 2456 func (*ModalityTokenCount) Descriptor() ([]byte, []int) { 2457 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{21} 2458 } 2459 2460 func (x *ModalityTokenCount) GetModality() Modality { 2461 if x != nil { 2462 return x.Modality 2463 } 2464 return Modality_MODALITY_UNSPECIFIED 2465 } 2466 2467 func (x *ModalityTokenCount) GetTokenCount() int32 { 2468 if x != nil { 2469 return x.TokenCount 2470 } 2471 return 0 2472 } 2473 2474 // The configuration for routing the request to a specific model. 2475 type GenerationConfig_RoutingConfig struct { 2476 state protoimpl.MessageState 2477 sizeCache protoimpl.SizeCache 2478 unknownFields protoimpl.UnknownFields 2479 2480 // Routing mode. 2481 // 2482 // Types that are assignable to RoutingConfig: 2483 // 2484 // *GenerationConfig_RoutingConfig_AutoMode 2485 // *GenerationConfig_RoutingConfig_ManualMode 2486 RoutingConfig isGenerationConfig_RoutingConfig_RoutingConfig `protobuf_oneof:"routing_config"` 2487 } 2488 2489 func (x *GenerationConfig_RoutingConfig) Reset() { 2490 *x = GenerationConfig_RoutingConfig{} 2491 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[22] 2492 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2493 ms.StoreMessageInfo(mi) 2494 } 2495 2496 func (x *GenerationConfig_RoutingConfig) String() string { 2497 return protoimpl.X.MessageStringOf(x) 2498 } 2499 2500 func (*GenerationConfig_RoutingConfig) ProtoMessage() {} 2501 2502 func (x *GenerationConfig_RoutingConfig) ProtoReflect() protoreflect.Message { 2503 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[22] 2504 if x != nil { 2505 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2506 if ms.LoadMessageInfo() == nil { 2507 ms.StoreMessageInfo(mi) 2508 } 2509 return ms 2510 } 2511 return mi.MessageOf(x) 2512 } 2513 2514 // Deprecated: Use GenerationConfig_RoutingConfig.ProtoReflect.Descriptor instead. 2515 func (*GenerationConfig_RoutingConfig) Descriptor() ([]byte, []int) { 2516 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{5, 0} 2517 } 2518 2519 func (m *GenerationConfig_RoutingConfig) GetRoutingConfig() isGenerationConfig_RoutingConfig_RoutingConfig { 2520 if m != nil { 2521 return m.RoutingConfig 2522 } 2523 return nil 2524 } 2525 2526 func (x *GenerationConfig_RoutingConfig) GetAutoMode() *GenerationConfig_RoutingConfig_AutoRoutingMode { 2527 if x, ok := x.GetRoutingConfig().(*GenerationConfig_RoutingConfig_AutoMode); ok { 2528 return x.AutoMode 2529 } 2530 return nil 2531 } 2532 2533 func (x *GenerationConfig_RoutingConfig) GetManualMode() *GenerationConfig_RoutingConfig_ManualRoutingMode { 2534 if x, ok := x.GetRoutingConfig().(*GenerationConfig_RoutingConfig_ManualMode); ok { 2535 return x.ManualMode 2536 } 2537 return nil 2538 } 2539 2540 type isGenerationConfig_RoutingConfig_RoutingConfig interface { 2541 isGenerationConfig_RoutingConfig_RoutingConfig() 2542 } 2543 2544 type GenerationConfig_RoutingConfig_AutoMode struct { 2545 // Automated routing. 2546 AutoMode *GenerationConfig_RoutingConfig_AutoRoutingMode `protobuf:"bytes,1,opt,name=auto_mode,json=autoMode,proto3,oneof"` 2547 } 2548 2549 type GenerationConfig_RoutingConfig_ManualMode struct { 2550 // Manual routing. 2551 ManualMode *GenerationConfig_RoutingConfig_ManualRoutingMode `protobuf:"bytes,2,opt,name=manual_mode,json=manualMode,proto3,oneof"` 2552 } 2553 2554 func (*GenerationConfig_RoutingConfig_AutoMode) isGenerationConfig_RoutingConfig_RoutingConfig() {} 2555 2556 func (*GenerationConfig_RoutingConfig_ManualMode) isGenerationConfig_RoutingConfig_RoutingConfig() {} 2557 2558 // Config for thinking features. 2559 type GenerationConfig_ThinkingConfig struct { 2560 state protoimpl.MessageState 2561 sizeCache protoimpl.SizeCache 2562 unknownFields protoimpl.UnknownFields 2563 2564 // Indicates whether to include thoughts in the response. 2565 // If true, thoughts are returned only when available. 2566 IncludeThoughts *bool `protobuf:"varint,1,opt,name=include_thoughts,json=includeThoughts,proto3,oneof" json:"include_thoughts,omitempty"` 2567 // Optional. Indicates the thinking budget in tokens. 2568 // This is only applied when enable_thinking is true. 2569 ThinkingBudget *int32 `protobuf:"varint,3,opt,name=thinking_budget,json=thinkingBudget,proto3,oneof" json:"thinking_budget,omitempty"` 2570 } 2571 2572 func (x *GenerationConfig_ThinkingConfig) Reset() { 2573 *x = GenerationConfig_ThinkingConfig{} 2574 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[23] 2575 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2576 ms.StoreMessageInfo(mi) 2577 } 2578 2579 func (x *GenerationConfig_ThinkingConfig) String() string { 2580 return protoimpl.X.MessageStringOf(x) 2581 } 2582 2583 func (*GenerationConfig_ThinkingConfig) ProtoMessage() {} 2584 2585 func (x *GenerationConfig_ThinkingConfig) ProtoReflect() protoreflect.Message { 2586 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[23] 2587 if x != nil { 2588 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2589 if ms.LoadMessageInfo() == nil { 2590 ms.StoreMessageInfo(mi) 2591 } 2592 return ms 2593 } 2594 return mi.MessageOf(x) 2595 } 2596 2597 // Deprecated: Use GenerationConfig_ThinkingConfig.ProtoReflect.Descriptor instead. 2598 func (*GenerationConfig_ThinkingConfig) Descriptor() ([]byte, []int) { 2599 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{5, 1} 2600 } 2601 2602 func (x *GenerationConfig_ThinkingConfig) GetIncludeThoughts() bool { 2603 if x != nil && x.IncludeThoughts != nil { 2604 return *x.IncludeThoughts 2605 } 2606 return false 2607 } 2608 2609 func (x *GenerationConfig_ThinkingConfig) GetThinkingBudget() int32 { 2610 if x != nil && x.ThinkingBudget != nil { 2611 return *x.ThinkingBudget 2612 } 2613 return 0 2614 } 2615 2616 // When automated routing is specified, the routing will be determined by 2617 // the pretrained routing model and customer provided model routing 2618 // preference. 2619 type GenerationConfig_RoutingConfig_AutoRoutingMode struct { 2620 state protoimpl.MessageState 2621 sizeCache protoimpl.SizeCache 2622 unknownFields protoimpl.UnknownFields 2623 2624 // The model routing preference. 2625 ModelRoutingPreference *GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference `protobuf:"varint,1,opt,name=model_routing_preference,json=modelRoutingPreference,proto3,enum=google.cloud.aiplatform.v1.GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference,oneof" json:"model_routing_preference,omitempty"` 2626 } 2627 2628 func (x *GenerationConfig_RoutingConfig_AutoRoutingMode) Reset() { 2629 *x = GenerationConfig_RoutingConfig_AutoRoutingMode{} 2630 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[24] 2631 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2632 ms.StoreMessageInfo(mi) 2633 } 2634 2635 func (x *GenerationConfig_RoutingConfig_AutoRoutingMode) String() string { 2636 return protoimpl.X.MessageStringOf(x) 2637 } 2638 2639 func (*GenerationConfig_RoutingConfig_AutoRoutingMode) ProtoMessage() {} 2640 2641 func (x *GenerationConfig_RoutingConfig_AutoRoutingMode) ProtoReflect() protoreflect.Message { 2642 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[24] 2643 if x != nil { 2644 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2645 if ms.LoadMessageInfo() == nil { 2646 ms.StoreMessageInfo(mi) 2647 } 2648 return ms 2649 } 2650 return mi.MessageOf(x) 2651 } 2652 2653 // Deprecated: Use GenerationConfig_RoutingConfig_AutoRoutingMode.ProtoReflect.Descriptor instead. 2654 func (*GenerationConfig_RoutingConfig_AutoRoutingMode) Descriptor() ([]byte, []int) { 2655 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{5, 0, 0} 2656 } 2657 2658 func (x *GenerationConfig_RoutingConfig_AutoRoutingMode) GetModelRoutingPreference() GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference { 2659 if x != nil && x.ModelRoutingPreference != nil { 2660 return *x.ModelRoutingPreference 2661 } 2662 return GenerationConfig_RoutingConfig_AutoRoutingMode_UNKNOWN 2663 } 2664 2665 // When manual routing is set, the specified model will be used directly. 2666 type GenerationConfig_RoutingConfig_ManualRoutingMode struct { 2667 state protoimpl.MessageState 2668 sizeCache protoimpl.SizeCache 2669 unknownFields protoimpl.UnknownFields 2670 2671 // The model name to use. Only the public LLM models are accepted. e.g. 2672 // 'gemini-1.5-pro-001'. 2673 ModelName *string `protobuf:"bytes,1,opt,name=model_name,json=modelName,proto3,oneof" json:"model_name,omitempty"` 2674 } 2675 2676 func (x *GenerationConfig_RoutingConfig_ManualRoutingMode) Reset() { 2677 *x = GenerationConfig_RoutingConfig_ManualRoutingMode{} 2678 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[25] 2679 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2680 ms.StoreMessageInfo(mi) 2681 } 2682 2683 func (x *GenerationConfig_RoutingConfig_ManualRoutingMode) String() string { 2684 return protoimpl.X.MessageStringOf(x) 2685 } 2686 2687 func (*GenerationConfig_RoutingConfig_ManualRoutingMode) ProtoMessage() {} 2688 2689 func (x *GenerationConfig_RoutingConfig_ManualRoutingMode) ProtoReflect() protoreflect.Message { 2690 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[25] 2691 if x != nil { 2692 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2693 if ms.LoadMessageInfo() == nil { 2694 ms.StoreMessageInfo(mi) 2695 } 2696 return ms 2697 } 2698 return mi.MessageOf(x) 2699 } 2700 2701 // Deprecated: Use GenerationConfig_RoutingConfig_ManualRoutingMode.ProtoReflect.Descriptor instead. 2702 func (*GenerationConfig_RoutingConfig_ManualRoutingMode) Descriptor() ([]byte, []int) { 2703 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{5, 0, 1} 2704 } 2705 2706 func (x *GenerationConfig_RoutingConfig_ManualRoutingMode) GetModelName() string { 2707 if x != nil && x.ModelName != nil { 2708 return *x.ModelName 2709 } 2710 return "" 2711 } 2712 2713 // Candidate for the logprobs token and score. 2714 type LogprobsResult_Candidate struct { 2715 state protoimpl.MessageState 2716 sizeCache protoimpl.SizeCache 2717 unknownFields protoimpl.UnknownFields 2718 2719 // The candidate’s token string value. 2720 Token *string `protobuf:"bytes,1,opt,name=token,proto3,oneof" json:"token,omitempty"` 2721 // The candidate’s token id value. 2722 TokenId *int32 `protobuf:"varint,3,opt,name=token_id,json=tokenId,proto3,oneof" json:"token_id,omitempty"` 2723 // The candidate's log probability. 2724 LogProbability *float32 `protobuf:"fixed32,2,opt,name=log_probability,json=logProbability,proto3,oneof" json:"log_probability,omitempty"` 2725 } 2726 2727 func (x *LogprobsResult_Candidate) Reset() { 2728 *x = LogprobsResult_Candidate{} 2729 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[26] 2730 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2731 ms.StoreMessageInfo(mi) 2732 } 2733 2734 func (x *LogprobsResult_Candidate) String() string { 2735 return protoimpl.X.MessageStringOf(x) 2736 } 2737 2738 func (*LogprobsResult_Candidate) ProtoMessage() {} 2739 2740 func (x *LogprobsResult_Candidate) ProtoReflect() protoreflect.Message { 2741 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[26] 2742 if x != nil { 2743 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2744 if ms.LoadMessageInfo() == nil { 2745 ms.StoreMessageInfo(mi) 2746 } 2747 return ms 2748 } 2749 return mi.MessageOf(x) 2750 } 2751 2752 // Deprecated: Use LogprobsResult_Candidate.ProtoReflect.Descriptor instead. 2753 func (*LogprobsResult_Candidate) Descriptor() ([]byte, []int) { 2754 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{13, 0} 2755 } 2756 2757 func (x *LogprobsResult_Candidate) GetToken() string { 2758 if x != nil && x.Token != nil { 2759 return *x.Token 2760 } 2761 return "" 2762 } 2763 2764 func (x *LogprobsResult_Candidate) GetTokenId() int32 { 2765 if x != nil && x.TokenId != nil { 2766 return *x.TokenId 2767 } 2768 return 0 2769 } 2770 2771 func (x *LogprobsResult_Candidate) GetLogProbability() float32 { 2772 if x != nil && x.LogProbability != nil { 2773 return *x.LogProbability 2774 } 2775 return 0 2776 } 2777 2778 // Candidates with top log probabilities at each decoding step. 2779 type LogprobsResult_TopCandidates struct { 2780 state protoimpl.MessageState 2781 sizeCache protoimpl.SizeCache 2782 unknownFields protoimpl.UnknownFields 2783 2784 // Sorted by log probability in descending order. 2785 Candidates []*LogprobsResult_Candidate `protobuf:"bytes,1,rep,name=candidates,proto3" json:"candidates,omitempty"` 2786 } 2787 2788 func (x *LogprobsResult_TopCandidates) Reset() { 2789 *x = LogprobsResult_TopCandidates{} 2790 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[27] 2791 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2792 ms.StoreMessageInfo(mi) 2793 } 2794 2795 func (x *LogprobsResult_TopCandidates) String() string { 2796 return protoimpl.X.MessageStringOf(x) 2797 } 2798 2799 func (*LogprobsResult_TopCandidates) ProtoMessage() {} 2800 2801 func (x *LogprobsResult_TopCandidates) ProtoReflect() protoreflect.Message { 2802 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[27] 2803 if x != nil { 2804 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2805 if ms.LoadMessageInfo() == nil { 2806 ms.StoreMessageInfo(mi) 2807 } 2808 return ms 2809 } 2810 return mi.MessageOf(x) 2811 } 2812 2813 // Deprecated: Use LogprobsResult_TopCandidates.ProtoReflect.Descriptor instead. 2814 func (*LogprobsResult_TopCandidates) Descriptor() ([]byte, []int) { 2815 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{13, 1} 2816 } 2817 2818 func (x *LogprobsResult_TopCandidates) GetCandidates() []*LogprobsResult_Candidate { 2819 if x != nil { 2820 return x.Candidates 2821 } 2822 return nil 2823 } 2824 2825 // Chunk from the web. 2826 type GroundingChunk_Web struct { 2827 state protoimpl.MessageState 2828 sizeCache protoimpl.SizeCache 2829 unknownFields protoimpl.UnknownFields 2830 2831 // URI reference of the chunk. 2832 Uri *string `protobuf:"bytes,1,opt,name=uri,proto3,oneof" json:"uri,omitempty"` 2833 // Title of the chunk. 2834 Title *string `protobuf:"bytes,2,opt,name=title,proto3,oneof" json:"title,omitempty"` 2835 } 2836 2837 func (x *GroundingChunk_Web) Reset() { 2838 *x = GroundingChunk_Web{} 2839 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[28] 2840 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2841 ms.StoreMessageInfo(mi) 2842 } 2843 2844 func (x *GroundingChunk_Web) String() string { 2845 return protoimpl.X.MessageStringOf(x) 2846 } 2847 2848 func (*GroundingChunk_Web) ProtoMessage() {} 2849 2850 func (x *GroundingChunk_Web) ProtoReflect() protoreflect.Message { 2851 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[28] 2852 if x != nil { 2853 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2854 if ms.LoadMessageInfo() == nil { 2855 ms.StoreMessageInfo(mi) 2856 } 2857 return ms 2858 } 2859 return mi.MessageOf(x) 2860 } 2861 2862 // Deprecated: Use GroundingChunk_Web.ProtoReflect.Descriptor instead. 2863 func (*GroundingChunk_Web) Descriptor() ([]byte, []int) { 2864 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{15, 0} 2865 } 2866 2867 func (x *GroundingChunk_Web) GetUri() string { 2868 if x != nil && x.Uri != nil { 2869 return *x.Uri 2870 } 2871 return "" 2872 } 2873 2874 func (x *GroundingChunk_Web) GetTitle() string { 2875 if x != nil && x.Title != nil { 2876 return *x.Title 2877 } 2878 return "" 2879 } 2880 2881 // Chunk from context retrieved by the retrieval tools. 2882 type GroundingChunk_RetrievedContext struct { 2883 state protoimpl.MessageState 2884 sizeCache protoimpl.SizeCache 2885 unknownFields protoimpl.UnknownFields 2886 2887 // Tool-specific details about the retrieved context. 2888 // 2889 // Types that are assignable to ContextDetails: 2890 // 2891 // *GroundingChunk_RetrievedContext_RagChunk 2892 ContextDetails isGroundingChunk_RetrievedContext_ContextDetails `protobuf_oneof:"context_details"` 2893 // URI reference of the attribution. 2894 Uri *string `protobuf:"bytes,1,opt,name=uri,proto3,oneof" json:"uri,omitempty"` 2895 // Title of the attribution. 2896 Title *string `protobuf:"bytes,2,opt,name=title,proto3,oneof" json:"title,omitempty"` 2897 // Text of the attribution. 2898 Text *string `protobuf:"bytes,3,opt,name=text,proto3,oneof" json:"text,omitempty"` 2899 // Output only. The full document name for the referenced Vertex AI Search 2900 // document. 2901 DocumentName *string `protobuf:"bytes,6,opt,name=document_name,json=documentName,proto3,oneof" json:"document_name,omitempty"` 2902 } 2903 2904 func (x *GroundingChunk_RetrievedContext) Reset() { 2905 *x = GroundingChunk_RetrievedContext{} 2906 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[29] 2907 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2908 ms.StoreMessageInfo(mi) 2909 } 2910 2911 func (x *GroundingChunk_RetrievedContext) String() string { 2912 return protoimpl.X.MessageStringOf(x) 2913 } 2914 2915 func (*GroundingChunk_RetrievedContext) ProtoMessage() {} 2916 2917 func (x *GroundingChunk_RetrievedContext) ProtoReflect() protoreflect.Message { 2918 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[29] 2919 if x != nil { 2920 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2921 if ms.LoadMessageInfo() == nil { 2922 ms.StoreMessageInfo(mi) 2923 } 2924 return ms 2925 } 2926 return mi.MessageOf(x) 2927 } 2928 2929 // Deprecated: Use GroundingChunk_RetrievedContext.ProtoReflect.Descriptor instead. 2930 func (*GroundingChunk_RetrievedContext) Descriptor() ([]byte, []int) { 2931 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{15, 1} 2932 } 2933 2934 func (m *GroundingChunk_RetrievedContext) GetContextDetails() isGroundingChunk_RetrievedContext_ContextDetails { 2935 if m != nil { 2936 return m.ContextDetails 2937 } 2938 return nil 2939 } 2940 2941 func (x *GroundingChunk_RetrievedContext) GetRagChunk() *RagChunk { 2942 if x, ok := x.GetContextDetails().(*GroundingChunk_RetrievedContext_RagChunk); ok { 2943 return x.RagChunk 2944 } 2945 return nil 2946 } 2947 2948 func (x *GroundingChunk_RetrievedContext) GetUri() string { 2949 if x != nil && x.Uri != nil { 2950 return *x.Uri 2951 } 2952 return "" 2953 } 2954 2955 func (x *GroundingChunk_RetrievedContext) GetTitle() string { 2956 if x != nil && x.Title != nil { 2957 return *x.Title 2958 } 2959 return "" 2960 } 2961 2962 func (x *GroundingChunk_RetrievedContext) GetText() string { 2963 if x != nil && x.Text != nil { 2964 return *x.Text 2965 } 2966 return "" 2967 } 2968 2969 func (x *GroundingChunk_RetrievedContext) GetDocumentName() string { 2970 if x != nil && x.DocumentName != nil { 2971 return *x.DocumentName 2972 } 2973 return "" 2974 } 2975 2976 type isGroundingChunk_RetrievedContext_ContextDetails interface { 2977 isGroundingChunk_RetrievedContext_ContextDetails() 2978 } 2979 2980 type GroundingChunk_RetrievedContext_RagChunk struct { 2981 // Additional context for the RAG retrieval result. This is only populated 2982 // when using the RAG retrieval tool. 2983 RagChunk *RagChunk `protobuf:"bytes,4,opt,name=rag_chunk,json=ragChunk,proto3,oneof"` 2984 } 2985 2986 func (*GroundingChunk_RetrievedContext_RagChunk) isGroundingChunk_RetrievedContext_ContextDetails() {} 2987 2988 // Chunk from Google Maps. 2989 type GroundingChunk_Maps struct { 2990 state protoimpl.MessageState 2991 sizeCache protoimpl.SizeCache 2992 unknownFields protoimpl.UnknownFields 2993 2994 // URI reference of the chunk. 2995 Uri *string `protobuf:"bytes,1,opt,name=uri,proto3,oneof" json:"uri,omitempty"` 2996 // Title of the chunk. 2997 Title *string `protobuf:"bytes,2,opt,name=title,proto3,oneof" json:"title,omitempty"` 2998 // Text of the chunk. 2999 Text *string `protobuf:"bytes,3,opt,name=text,proto3,oneof" json:"text,omitempty"` 3000 // This Place's resource name, in `places/{place_id}` format. Can be used 3001 // to look up the Place. 3002 PlaceId *string `protobuf:"bytes,4,opt,name=place_id,json=placeId,proto3,oneof" json:"place_id,omitempty"` 3003 // Sources used to generate the place answer. 3004 // This includes review snippets and photos that were used to generate the 3005 // answer, as well as uris to flag content. 3006 PlaceAnswerSources *GroundingChunk_Maps_PlaceAnswerSources `protobuf:"bytes,5,opt,name=place_answer_sources,json=placeAnswerSources,proto3" json:"place_answer_sources,omitempty"` 3007 } 3008 3009 func (x *GroundingChunk_Maps) Reset() { 3010 *x = GroundingChunk_Maps{} 3011 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[30] 3012 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3013 ms.StoreMessageInfo(mi) 3014 } 3015 3016 func (x *GroundingChunk_Maps) String() string { 3017 return protoimpl.X.MessageStringOf(x) 3018 } 3019 3020 func (*GroundingChunk_Maps) ProtoMessage() {} 3021 3022 func (x *GroundingChunk_Maps) ProtoReflect() protoreflect.Message { 3023 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[30] 3024 if x != nil { 3025 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3026 if ms.LoadMessageInfo() == nil { 3027 ms.StoreMessageInfo(mi) 3028 } 3029 return ms 3030 } 3031 return mi.MessageOf(x) 3032 } 3033 3034 // Deprecated: Use GroundingChunk_Maps.ProtoReflect.Descriptor instead. 3035 func (*GroundingChunk_Maps) Descriptor() ([]byte, []int) { 3036 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{15, 2} 3037 } 3038 3039 func (x *GroundingChunk_Maps) GetUri() string { 3040 if x != nil && x.Uri != nil { 3041 return *x.Uri 3042 } 3043 return "" 3044 } 3045 3046 func (x *GroundingChunk_Maps) GetTitle() string { 3047 if x != nil && x.Title != nil { 3048 return *x.Title 3049 } 3050 return "" 3051 } 3052 3053 func (x *GroundingChunk_Maps) GetText() string { 3054 if x != nil && x.Text != nil { 3055 return *x.Text 3056 } 3057 return "" 3058 } 3059 3060 func (x *GroundingChunk_Maps) GetPlaceId() string { 3061 if x != nil && x.PlaceId != nil { 3062 return *x.PlaceId 3063 } 3064 return "" 3065 } 3066 3067 func (x *GroundingChunk_Maps) GetPlaceAnswerSources() *GroundingChunk_Maps_PlaceAnswerSources { 3068 if x != nil { 3069 return x.PlaceAnswerSources 3070 } 3071 return nil 3072 } 3073 3074 type GroundingChunk_Maps_PlaceAnswerSources struct { 3075 state protoimpl.MessageState 3076 sizeCache protoimpl.SizeCache 3077 unknownFields protoimpl.UnknownFields 3078 3079 // Snippets of reviews that are used to generate the answer. 3080 ReviewSnippets []*GroundingChunk_Maps_PlaceAnswerSources_ReviewSnippet `protobuf:"bytes,1,rep,name=review_snippets,json=reviewSnippets,proto3" json:"review_snippets,omitempty"` 3081 } 3082 3083 func (x *GroundingChunk_Maps_PlaceAnswerSources) Reset() { 3084 *x = GroundingChunk_Maps_PlaceAnswerSources{} 3085 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[31] 3086 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3087 ms.StoreMessageInfo(mi) 3088 } 3089 3090 func (x *GroundingChunk_Maps_PlaceAnswerSources) String() string { 3091 return protoimpl.X.MessageStringOf(x) 3092 } 3093 3094 func (*GroundingChunk_Maps_PlaceAnswerSources) ProtoMessage() {} 3095 3096 func (x *GroundingChunk_Maps_PlaceAnswerSources) ProtoReflect() protoreflect.Message { 3097 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[31] 3098 if x != nil { 3099 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3100 if ms.LoadMessageInfo() == nil { 3101 ms.StoreMessageInfo(mi) 3102 } 3103 return ms 3104 } 3105 return mi.MessageOf(x) 3106 } 3107 3108 // Deprecated: Use GroundingChunk_Maps_PlaceAnswerSources.ProtoReflect.Descriptor instead. 3109 func (*GroundingChunk_Maps_PlaceAnswerSources) Descriptor() ([]byte, []int) { 3110 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{15, 2, 0} 3111 } 3112 3113 func (x *GroundingChunk_Maps_PlaceAnswerSources) GetReviewSnippets() []*GroundingChunk_Maps_PlaceAnswerSources_ReviewSnippet { 3114 if x != nil { 3115 return x.ReviewSnippets 3116 } 3117 return nil 3118 } 3119 3120 // Encapsulates a review snippet. 3121 type GroundingChunk_Maps_PlaceAnswerSources_ReviewSnippet struct { 3122 state protoimpl.MessageState 3123 sizeCache protoimpl.SizeCache 3124 unknownFields protoimpl.UnknownFields 3125 3126 // Id of the review referencing the place. 3127 ReviewId string `protobuf:"bytes,1,opt,name=review_id,json=reviewId,proto3" json:"review_id,omitempty"` 3128 // A link to show the review on Google Maps. 3129 GoogleMapsUri string `protobuf:"bytes,2,opt,name=google_maps_uri,json=googleMapsUri,proto3" json:"google_maps_uri,omitempty"` 3130 // Title of the review. 3131 Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"` 3132 } 3133 3134 func (x *GroundingChunk_Maps_PlaceAnswerSources_ReviewSnippet) Reset() { 3135 *x = GroundingChunk_Maps_PlaceAnswerSources_ReviewSnippet{} 3136 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[32] 3137 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3138 ms.StoreMessageInfo(mi) 3139 } 3140 3141 func (x *GroundingChunk_Maps_PlaceAnswerSources_ReviewSnippet) String() string { 3142 return protoimpl.X.MessageStringOf(x) 3143 } 3144 3145 func (*GroundingChunk_Maps_PlaceAnswerSources_ReviewSnippet) ProtoMessage() {} 3146 3147 func (x *GroundingChunk_Maps_PlaceAnswerSources_ReviewSnippet) ProtoReflect() protoreflect.Message { 3148 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[32] 3149 if x != nil { 3150 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3151 if ms.LoadMessageInfo() == nil { 3152 ms.StoreMessageInfo(mi) 3153 } 3154 return ms 3155 } 3156 return mi.MessageOf(x) 3157 } 3158 3159 // Deprecated: Use GroundingChunk_Maps_PlaceAnswerSources_ReviewSnippet.ProtoReflect.Descriptor instead. 3160 func (*GroundingChunk_Maps_PlaceAnswerSources_ReviewSnippet) Descriptor() ([]byte, []int) { 3161 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{15, 2, 0, 0} 3162 } 3163 3164 func (x *GroundingChunk_Maps_PlaceAnswerSources_ReviewSnippet) GetReviewId() string { 3165 if x != nil { 3166 return x.ReviewId 3167 } 3168 return "" 3169 } 3170 3171 func (x *GroundingChunk_Maps_PlaceAnswerSources_ReviewSnippet) GetGoogleMapsUri() string { 3172 if x != nil { 3173 return x.GoogleMapsUri 3174 } 3175 return "" 3176 } 3177 3178 func (x *GroundingChunk_Maps_PlaceAnswerSources_ReviewSnippet) GetTitle() string { 3179 if x != nil { 3180 return x.Title 3181 } 3182 return "" 3183 } 3184 3185 // Source content flagging uri for a place or review. This is currently 3186 // populated only for Google Maps grounding. 3187 type GroundingMetadata_SourceFlaggingUri struct { 3188 state protoimpl.MessageState 3189 sizeCache protoimpl.SizeCache 3190 unknownFields protoimpl.UnknownFields 3191 3192 // Id of the place or review. 3193 SourceId string `protobuf:"bytes,1,opt,name=source_id,json=sourceId,proto3" json:"source_id,omitempty"` 3194 // A link where users can flag a problem with the source (place or review). 3195 // (-- The link is generated by Google and it does not contain 3196 // information from the user query. It may contain information of the 3197 // content it is flagging, which can be used to identify places. --) 3198 FlagContentUri string `protobuf:"bytes,2,opt,name=flag_content_uri,json=flagContentUri,proto3" json:"flag_content_uri,omitempty"` 3199 } 3200 3201 func (x *GroundingMetadata_SourceFlaggingUri) Reset() { 3202 *x = GroundingMetadata_SourceFlaggingUri{} 3203 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[33] 3204 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3205 ms.StoreMessageInfo(mi) 3206 } 3207 3208 func (x *GroundingMetadata_SourceFlaggingUri) String() string { 3209 return protoimpl.X.MessageStringOf(x) 3210 } 3211 3212 func (*GroundingMetadata_SourceFlaggingUri) ProtoMessage() {} 3213 3214 func (x *GroundingMetadata_SourceFlaggingUri) ProtoReflect() protoreflect.Message { 3215 mi := &file_google_cloud_aiplatform_v1_content_proto_msgTypes[33] 3216 if x != nil { 3217 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3218 if ms.LoadMessageInfo() == nil { 3219 ms.StoreMessageInfo(mi) 3220 } 3221 return ms 3222 } 3223 return mi.MessageOf(x) 3224 } 3225 3226 // Deprecated: Use GroundingMetadata_SourceFlaggingUri.ProtoReflect.Descriptor instead. 3227 func (*GroundingMetadata_SourceFlaggingUri) Descriptor() ([]byte, []int) { 3228 return file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP(), []int{17, 0} 3229 } 3230 3231 func (x *GroundingMetadata_SourceFlaggingUri) GetSourceId() string { 3232 if x != nil { 3233 return x.SourceId 3234 } 3235 return "" 3236 } 3237 3238 func (x *GroundingMetadata_SourceFlaggingUri) GetFlagContentUri() string { 3239 if x != nil { 3240 return x.FlagContentUri 3241 } 3242 return "" 3243 } 3244 3245 var File_google_cloud_aiplatform_v1_content_proto protoreflect.FileDescriptor 3246 3247 var file_google_cloud_aiplatform_v1_content_proto_rawDesc = []byte{ 3248 0x0a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 3249 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 3250 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 3251 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 3252 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 3253 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 3254 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 3255 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 3256 0x74, 0x6f, 0x1a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3257 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 3258 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x67, 0x6f, 3259 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 3260 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 3261 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 3262 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 3263 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5f, 0x72, 0x61, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 3264 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 3265 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 3266 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 3267 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 3268 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 3269 0x2f, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5f, 0x0a, 0x07, 0x43, 3270 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 3271 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 3272 0x3b, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 3273 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 3274 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 3275 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x22, 0xf3, 0x05, 0x0a, 3276 0x04, 0x50, 0x61, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 3277 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 3278 0x12, 0x48, 0x0a, 0x0b, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 3279 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3280 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 3281 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0a, 3282 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x48, 0x0a, 0x09, 0x66, 0x69, 3283 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 3284 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 3285 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 3286 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 3287 0x44, 0x61, 0x74, 0x61, 0x12, 0x54, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 3288 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 3289 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 3290 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 3291 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x75, 3292 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x60, 0x0a, 0x11, 0x66, 0x75, 3293 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 3294 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3295 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 3296 0x76, 0x31, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 3297 0x6e, 0x73, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x10, 0x66, 0x75, 0x6e, 0x63, 3298 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0f, 3299 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 3300 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3301 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 3302 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x64, 3303 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 3304 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x6a, 0x0a, 0x15, 0x63, 0x6f, 0x64, 0x65, 3305 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 3306 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3307 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 3308 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 3309 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 3310 0x13, 0x63, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 3311 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x18, 3312 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x74, 0x68, 0x6f, 0x75, 3313 0x67, 0x68, 0x74, 0x12, 0x30, 0x0a, 0x11, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x5f, 0x73, 3314 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 3315 0xe0, 0x41, 0x01, 0x52, 0x10, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x53, 0x69, 0x67, 0x6e, 3316 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x57, 0x0a, 0x0e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x6d, 3317 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 3318 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 3319 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 3320 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 3321 0x0d, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 3322 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x0a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 3323 0x74, 0x61, 0x22, 0x41, 0x0a, 0x04, 0x42, 0x6c, 0x6f, 0x62, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 3324 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 3325 0x41, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x04, 3326 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 3327 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4c, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 3328 0x61, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 3329 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 3330 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 3331 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 3332 0x55, 0x72, 0x69, 0x22, 0x91, 0x01, 0x0a, 0x0d, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x74, 3333 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6f, 3334 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 3335 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 3336 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x73, 0x74, 0x61, 3337 0x72, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x3d, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x5f, 3338 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 3339 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 3340 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x65, 0x6e, 3341 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0xb5, 0x0f, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, 3342 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x0a, 0x0b, 3343 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 3344 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 3345 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x5f, 3346 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x04, 3347 0x74, 0x6f, 0x70, 0x50, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x5f, 0x6b, 3348 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x04, 0x74, 3349 0x6f, 0x70, 0x4b, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 3350 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 3351 0x03, 0xe0, 0x41, 0x01, 0x48, 0x03, 0x52, 0x0e, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 3352 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x11, 0x6d, 0x61, 0x78, 3353 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x05, 3354 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x04, 0x52, 0x0f, 0x6d, 0x61, 0x78, 3355 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 3356 0x2a, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 3357 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x73, 0x74, 3358 0x6f, 0x70, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x11, 0x72, 3359 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x70, 0x72, 0x6f, 0x62, 0x73, 3360 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x05, 0x52, 0x10, 0x72, 3361 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4c, 0x6f, 0x67, 0x70, 0x72, 0x6f, 0x62, 0x73, 0x88, 3362 0x01, 0x01, 0x12, 0x24, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x70, 0x72, 0x6f, 0x62, 0x73, 0x18, 0x07, 3363 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x06, 0x52, 0x08, 0x6c, 0x6f, 0x67, 3364 0x70, 0x72, 0x6f, 0x62, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x10, 0x70, 0x72, 0x65, 0x73, 3365 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 3366 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x07, 0x52, 0x0f, 0x70, 0x72, 0x65, 0x73, 0x65, 3367 0x6e, 0x63, 0x65, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 3368 0x11, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 3369 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x08, 0x52, 3370 0x10, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 3371 0x79, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 3372 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x09, 0x52, 0x04, 0x73, 0x65, 0x65, 0x64, 0x88, 3373 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6d, 3374 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 3375 0xe0, 0x41, 0x01, 0x52, 0x10, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x69, 0x6d, 3376 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x55, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 3377 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 3378 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 3379 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 3380 0x6d, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x0a, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 3381 0x6e, 0x73, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x14, 3382 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 3383 0x68, 0x65, 0x6d, 0x61, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 3384 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 3385 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x0b, 0x52, 0x12, 0x72, 0x65, 0x73, 0x70, 0x6f, 3386 0x6e, 0x73, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x88, 0x01, 0x01, 3387 0x12, 0x6b, 0x0a, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 3388 0x69, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3389 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 3390 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 3391 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 3392 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x0c, 0x52, 0x0d, 0x72, 0x6f, 0x75, 3393 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, 3394 0x0f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 3395 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3396 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 3397 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 3398 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 3399 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x69, 3400 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0xfb, 0x04, 0x0a, 0x0d, 0x52, 0x6f, 0x75, 3401 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x69, 0x0a, 0x09, 0x61, 0x75, 3402 0x74, 0x6f, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 3403 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 3404 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 3405 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x6f, 0x75, 0x74, 3406 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x52, 0x6f, 3407 0x75, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x08, 0x61, 0x75, 0x74, 3408 0x6f, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x6f, 0x0a, 0x0b, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x5f, 3409 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 3410 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 3411 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 3412 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 3413 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 3414 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x6d, 0x61, 0x6e, 0x75, 3415 0x61, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x1a, 0xb3, 0x02, 0x0a, 0x0f, 0x41, 0x75, 0x74, 0x6f, 0x52, 3416 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0xa0, 0x01, 0x0a, 0x18, 0x6d, 3417 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x65, 3418 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x61, 0x2e, 3419 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 3420 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 3421 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x6f, 0x75, 0x74, 3422 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x52, 0x6f, 3423 0x75, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 3424 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 3425 0x48, 0x00, 0x52, 0x16, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 3426 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x22, 0x60, 0x0a, 3427 0x16, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 3428 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 3429 0x57, 0x4e, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x49, 3430 0x5a, 0x45, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 3431 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x44, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x52, 3432 0x49, 0x4f, 0x52, 0x49, 0x54, 0x49, 0x5a, 0x45, 0x5f, 0x43, 0x4f, 0x53, 0x54, 0x10, 0x03, 0x42, 3433 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 3434 0x67, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x46, 0x0a, 0x11, 3435 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 3436 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 3437 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 3438 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 3439 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 3440 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0xa1, 0x01, 0x0a, 0x0e, 0x54, 0x68, 0x69, 0x6e, 0x6b, 3441 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x33, 0x0a, 0x10, 0x69, 0x6e, 0x63, 3442 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x73, 0x18, 0x01, 0x20, 3443 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 3444 0x75, 0x64, 0x65, 0x54, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 3445 0x0a, 0x0f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x64, 0x67, 0x65, 3446 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x0e, 3447 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x88, 0x01, 3448 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x74, 0x68, 3449 0x6f, 0x75, 0x67, 0x68, 0x74, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 3450 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 3451 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 3452 0x6f, 0x70, 0x5f, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x6f, 0x70, 0x5f, 0x6b, 0x42, 0x12, 3453 0x0a, 0x10, 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 3454 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 3455 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x73, 3456 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x70, 0x72, 0x6f, 0x62, 0x73, 0x42, 0x0b, 3457 0x0a, 0x09, 0x5f, 0x6c, 0x6f, 0x67, 0x70, 0x72, 0x6f, 0x62, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 3458 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 3459 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x70, 3460 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x42, 3461 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x73, 0x63, 0x68, 3462 0x65, 0x6d, 0x61, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 3463 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x42, 0x11, 0x0a, 0x0f, 3464 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 3465 0x88, 0x04, 0x0a, 0x0d, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 3466 0x67, 0x12, 0x49, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 3467 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3468 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 3469 0x2e, 0x48, 0x61, 0x72, 0x6d, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x42, 0x03, 0xe0, 3470 0x41, 0x02, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x5f, 0x0a, 0x09, 3471 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 3472 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 3473 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x66, 3474 0x65, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x48, 0x61, 0x72, 0x6d, 0x42, 3475 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x03, 0xe0, 3476 0x41, 0x02, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x56, 0x0a, 3477 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 3478 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 3479 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 3480 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x48, 0x61, 0x72, 0x6d, 0x42, 0x6c, 0x6f, 3481 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6d, 3482 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x9d, 0x01, 0x0a, 0x12, 0x48, 0x61, 0x72, 0x6d, 0x42, 0x6c, 3483 0x6f, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x24, 0x0a, 0x20, 3484 0x48, 0x41, 0x52, 0x4d, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 3485 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 3486 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 3487 0x41, 0x4e, 0x44, 0x5f, 0x41, 0x42, 0x4f, 0x56, 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x42, 3488 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 3489 0x41, 0x42, 0x4f, 0x56, 0x45, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 3490 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 3491 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 3492 0x4f, 0x46, 0x46, 0x10, 0x05, 0x22, 0x53, 0x0a, 0x0f, 0x48, 0x61, 0x72, 0x6d, 0x42, 0x6c, 0x6f, 3493 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x21, 0x0a, 0x1d, 0x48, 0x41, 0x52, 0x4d, 3494 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x55, 0x4e, 3495 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x53, 3496 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x52, 0x4f, 3497 0x42, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x02, 0x22, 0x8a, 0x05, 0x0a, 0x0c, 0x53, 3498 0x61, 0x66, 0x65, 0x74, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x08, 0x63, 3499 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 3500 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 3501 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x61, 0x72, 0x6d, 0x43, 3502 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x63, 0x61, 3503 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x5f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 3504 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 3505 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 3506 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x52, 3507 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x48, 0x61, 0x72, 0x6d, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 3508 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x62, 3509 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x30, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x62, 0x61, 3510 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 3511 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 3512 0x6c, 0x69, 0x74, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x56, 0x0a, 0x08, 0x73, 0x65, 0x76, 3513 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x67, 0x6f, 3514 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 3515 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x52, 3516 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x48, 0x61, 0x72, 0x6d, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 3517 0x74, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 3518 0x79, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x63, 3519 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 3520 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1d, 0x0a, 3521 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 3522 0xe0, 0x41, 0x03, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x22, 0x62, 0x0a, 0x0f, 3523 0x48, 0x61, 0x72, 0x6d, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 3524 0x20, 0x0a, 0x1c, 0x48, 0x41, 0x52, 0x4d, 0x5f, 0x50, 0x52, 0x4f, 0x42, 0x41, 0x42, 0x49, 0x4c, 3525 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 3526 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x45, 0x47, 0x4c, 0x49, 0x47, 0x49, 0x42, 0x4c, 0x45, 0x10, 3527 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x4f, 0x57, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x45, 3528 0x44, 0x49, 0x55, 0x4d, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x49, 0x47, 0x48, 0x10, 0x04, 3529 0x22, 0x94, 0x01, 0x0a, 0x0c, 0x48, 0x61, 0x72, 0x6d, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 3530 0x79, 0x12, 0x1d, 0x0a, 0x19, 0x48, 0x41, 0x52, 0x4d, 0x5f, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 3531 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 3532 0x12, 0x1c, 0x0a, 0x18, 0x48, 0x41, 0x52, 0x4d, 0x5f, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 3533 0x59, 0x5f, 0x4e, 0x45, 0x47, 0x4c, 0x49, 0x47, 0x49, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x15, 3534 0x0a, 0x11, 0x48, 0x41, 0x52, 0x4d, 0x5f, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 3535 0x4c, 0x4f, 0x57, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x48, 0x41, 0x52, 0x4d, 0x5f, 0x53, 0x45, 3536 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x03, 0x12, 3537 0x16, 0x0a, 0x12, 0x48, 0x41, 0x52, 0x4d, 0x5f, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 3538 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x04, 0x22, 0x5b, 0x0a, 0x10, 0x43, 0x69, 0x74, 0x61, 0x74, 3539 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x47, 0x0a, 0x09, 0x63, 3540 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 3541 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 3542 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x69, 0x74, 0x61, 3543 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x63, 0x69, 0x74, 0x61, 0x74, 3544 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe6, 0x01, 0x0a, 0x08, 0x43, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 3545 0x6e, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 3546 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x73, 0x74, 0x61, 3547 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x5f, 0x69, 3548 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 3549 0x08, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x69, 3550 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x03, 0x75, 0x72, 0x69, 3551 0x12, 0x19, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 3552 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x6c, 3553 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 3554 0x03, 0x52, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x10, 0x70, 0x75, 3555 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 3556 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 3557 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x70, 0x75, 3558 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x22, 0xf9, 0x07, 3559 0x0a, 0x09, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x69, 3560 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 3561 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x42, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 3562 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3563 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 3564 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 3565 0x03, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x63, 3566 0x6f, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 3567 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x61, 0x76, 0x67, 0x5f, 0x6c, 0x6f, 0x67, 3568 0x70, 0x72, 0x6f, 0x62, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x03, 3569 0x52, 0x0b, 0x61, 0x76, 0x67, 0x4c, 0x6f, 0x67, 0x70, 0x72, 0x6f, 0x62, 0x73, 0x12, 0x58, 0x0a, 3570 0x0f, 0x6c, 0x6f, 0x67, 0x70, 0x72, 0x6f, 0x62, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 3571 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3572 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 3573 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x70, 0x72, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x75, 3574 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x6c, 0x6f, 0x67, 0x70, 0x72, 0x6f, 0x62, 3575 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x5c, 0x0a, 0x0d, 0x66, 0x69, 0x6e, 0x69, 0x73, 3576 0x68, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 3577 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 3578 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x64, 3579 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, 3580 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 3581 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x0e, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 3582 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 3583 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 3584 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 3585 0x79, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x73, 0x61, 3586 0x66, 0x65, 0x74, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x0e, 0x66, 3587 0x69, 0x6e, 0x69, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 3588 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x69, 3589 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x11, 3590 0x63, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 3591 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3592 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 3593 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 3594 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x63, 0x69, 0x74, 0x61, 3595 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x61, 0x0a, 0x12, 3596 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 3597 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3598 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 3599 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 3600 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x67, 0x72, 3601 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 3602 0x65, 0x0a, 0x14, 0x75, 0x72, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6d, 3603 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 3604 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 3605 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x72, 0x6c, 0x43, 0x6f, 3606 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 0xe0, 3607 0x41, 0x03, 0x52, 0x12, 0x75, 0x72, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4d, 0x65, 3608 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xcd, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x69, 0x73, 3609 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x19, 0x46, 0x49, 0x4e, 0x49, 0x53, 3610 0x48, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 3611 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x54, 0x4f, 0x50, 0x10, 0x01, 3612 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x41, 0x58, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x53, 0x10, 0x02, 3613 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x41, 0x46, 0x45, 0x54, 0x59, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 3614 0x52, 0x45, 0x43, 0x49, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 3615 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 3616 0x4c, 0x49, 0x53, 0x54, 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x52, 0x4f, 0x48, 0x49, 0x42, 3617 0x49, 0x54, 0x45, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x07, 0x12, 0x08, 3618 0x0a, 0x04, 0x53, 0x50, 0x49, 0x49, 0x10, 0x08, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x41, 0x4c, 0x46, 3619 0x4f, 0x52, 0x4d, 0x45, 0x44, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 3620 0x41, 0x4c, 0x4c, 0x10, 0x09, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x41, 3621 0x52, 0x4d, 0x4f, 0x52, 0x10, 0x0a, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 3622 0x68, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x65, 0x0a, 0x12, 0x55, 0x72, 0x6c, 3623 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 3624 0x4f, 0x0a, 0x0c, 0x75, 0x72, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 3625 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3626 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 3627 0x76, 0x31, 0x2e, 0x55, 0x72, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x03, 3628 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x75, 0x72, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 3629 0x22, 0x9e, 0x02, 0x0a, 0x0b, 0x55, 0x72, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 3630 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x5f, 0x75, 0x72, 3631 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 3632 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x6c, 0x0a, 0x14, 0x75, 0x72, 0x6c, 0x5f, 0x72, 0x65, 0x74, 3633 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 3634 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3635 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 3636 0x2e, 0x55, 0x72, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x72, 0x6c, 3637 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 3638 0x12, 0x75, 0x72, 0x6c, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x53, 0x74, 0x61, 3639 0x74, 0x75, 0x73, 0x22, 0x7c, 0x0a, 0x12, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 3640 0x76, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x20, 0x55, 0x52, 0x4c, 3641 0x5f, 0x52, 0x45, 0x54, 0x52, 0x49, 0x45, 0x56, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 3642 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 3643 0x20, 0x0a, 0x1c, 0x55, 0x52, 0x4c, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x49, 0x45, 0x56, 0x41, 0x4c, 3644 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 3645 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x52, 0x4c, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x49, 0x45, 0x56, 3646 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 3647 0x02, 0x22, 0xdd, 0x03, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x70, 0x72, 0x6f, 0x62, 0x73, 0x52, 0x65, 3648 0x73, 0x75, 0x6c, 0x74, 0x12, 0x5f, 0x0a, 0x0e, 0x74, 0x6f, 0x70, 0x5f, 0x63, 0x61, 0x6e, 0x64, 3649 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 3650 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 3651 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x70, 0x72, 0x6f, 3652 0x62, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x54, 0x6f, 0x70, 0x43, 0x61, 0x6e, 0x64, 3653 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x0d, 0x74, 0x6f, 0x70, 0x43, 0x61, 0x6e, 0x64, 0x69, 3654 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x61, 0x0a, 0x11, 0x63, 0x68, 0x6f, 0x73, 0x65, 0x6e, 0x5f, 3655 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 3656 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3657 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 3658 0x67, 0x70, 0x72, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x43, 0x61, 0x6e, 3659 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x10, 0x63, 0x68, 0x6f, 0x73, 0x65, 0x6e, 0x43, 0x61, 3660 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x9f, 0x01, 0x0a, 0x09, 0x43, 0x61, 0x6e, 3661 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 3662 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 3663 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 3664 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x88, 0x01, 3665 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 3666 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x0e, 0x6c, 0x6f, 3667 0x67, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x42, 3668 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x6f, 3669 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x70, 3670 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x65, 0x0a, 0x0d, 0x54, 0x6f, 3671 0x70, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0a, 0x63, 3672 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 3673 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 3674 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 3675 0x70, 0x72, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x43, 0x61, 0x6e, 0x64, 3676 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 3677 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x07, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 3678 0x0a, 0x70, 0x61, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 3679 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 3680 0x78, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 3681 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x73, 0x74, 0x61, 3682 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x5f, 0x69, 3683 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 3684 0x08, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x65, 0x78, 3685 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x74, 0x65, 3686 0x78, 0x74, 0x22, 0x84, 0x09, 0x0a, 0x0e, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 3687 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x42, 0x0a, 0x03, 0x77, 0x65, 0x62, 0x18, 0x01, 0x20, 0x01, 3688 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 3689 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 3690 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x2e, 0x57, 3691 0x65, 0x62, 0x48, 0x00, 0x52, 0x03, 0x77, 0x65, 0x62, 0x12, 0x6a, 0x0a, 0x11, 0x72, 0x65, 0x74, 3692 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 3693 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 3694 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 3695 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x75, 0x6e, 0x6b, 3696 0x2e, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 3697 0x74, 0x48, 0x00, 0x52, 0x10, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x43, 0x6f, 3698 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x6d, 0x61, 0x70, 0x73, 0x18, 0x03, 0x20, 3699 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 3700 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 3701 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x2e, 3702 0x4d, 0x61, 0x70, 0x73, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x61, 0x70, 0x73, 0x1a, 0x49, 0x0a, 0x03, 3703 0x57, 0x65, 0x62, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 3704 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x69, 3705 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x74, 0x69, 0x74, 3706 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x69, 0x42, 0x08, 0x0a, 3707 0x06, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x1a, 0x91, 0x02, 0x0a, 0x10, 0x52, 0x65, 0x74, 0x72, 3708 0x69, 0x65, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x43, 0x0a, 0x09, 3709 0x72, 0x61, 0x67, 0x5f, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 3710 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 3711 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x67, 3712 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x08, 0x72, 0x61, 0x67, 0x43, 0x68, 0x75, 0x6e, 3713 0x6b, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 3714 0x52, 0x03, 0x75, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 3715 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 3716 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 3717 0x09, 0x48, 0x03, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0d, 3718 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 3719 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x04, 0x52, 0x0c, 0x64, 0x6f, 0x63, 0x75, 3720 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x63, 3721 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x06, 3722 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x69, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, 3723 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x6f, 3724 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x8d, 0x04, 0x0a, 0x04, 3725 0x4d, 0x61, 0x70, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 3726 0x09, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x74, 3727 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x74, 0x69, 3728 0x74, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 3729 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, 0x12, 3730 0x1e, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 3731 0x09, 0x48, 0x03, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 3732 0x74, 0x0a, 0x14, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 3733 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 3734 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 3735 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x6e, 3736 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x73, 0x2e, 0x50, 3737 0x6c, 0x61, 0x63, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 3738 0x73, 0x52, 0x12, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x53, 0x6f, 3739 0x75, 0x72, 0x63, 0x65, 0x73, 0x1a, 0xfb, 0x01, 0x0a, 0x12, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x41, 3740 0x6e, 0x73, 0x77, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x79, 0x0a, 0x0f, 3741 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x73, 0x18, 3742 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x50, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3743 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 3744 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x75, 0x6e, 3745 0x6b, 0x2e, 0x4d, 0x61, 0x70, 0x73, 0x2e, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x41, 0x6e, 0x73, 0x77, 3746 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 3747 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x52, 0x0e, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x53, 3748 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x73, 0x1a, 0x6a, 0x0a, 0x0d, 0x52, 0x65, 0x76, 0x69, 0x65, 3749 0x77, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x69, 3750 0x65, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 3751 0x69, 0x65, 0x77, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 3752 0x6d, 0x61, 0x70, 0x73, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 3753 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x73, 0x55, 0x72, 0x69, 0x12, 0x14, 0x0a, 3754 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 3755 0x74, 0x6c, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x69, 0x42, 0x08, 0x0a, 0x06, 0x5f, 3756 0x74, 0x69, 0x74, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x42, 0x0b, 3757 0x0a, 0x09, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 3758 0x68, 0x75, 0x6e, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xc7, 0x01, 0x0a, 0x10, 0x47, 0x72, 3759 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x42, 3760 0x0a, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 3761 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 3762 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x67, 3763 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x88, 3764 0x01, 0x01, 0x12, 0x36, 0x0a, 0x17, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 3765 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 3766 0x03, 0x28, 0x05, 0x52, 0x15, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 3767 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 3768 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 3769 0x03, 0x20, 0x03, 0x28, 0x02, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 3770 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x65, 0x67, 0x6d, 3771 0x65, 0x6e, 0x74, 0x22, 0xc7, 0x06, 0x0a, 0x11, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 3772 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x31, 0x0a, 0x12, 0x77, 0x65, 0x62, 3773 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 3774 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x77, 0x65, 0x62, 0x53, 3775 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x64, 0x0a, 0x12, 3776 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x69, 3777 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3778 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 3779 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x6e, 0x74, 0x72, 3780 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x10, 0x73, 3781 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x88, 3782 0x01, 0x01, 0x12, 0x55, 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 3783 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 3784 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 3785 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 3786 0x69, 0x6e, 0x67, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 3787 0x69, 0x6e, 0x67, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x12, 0x60, 0x0a, 0x12, 0x67, 0x72, 0x6f, 3788 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 3789 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 3790 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 3791 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x70, 0x70, 3792 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 3793 0x69, 0x6e, 0x67, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x69, 0x0a, 0x12, 0x72, 3794 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 3795 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3796 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 3797 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x4d, 0x65, 3798 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x03, 0x48, 0x01, 3799 0x52, 0x11, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 3800 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3801 0x5f, 0x6d, 0x61, 0x70, 0x73, 0x5f, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 3802 0x74, 0x65, 0x78, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 3803 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x03, 0x48, 0x02, 0x52, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 3804 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x73, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 3805 0x65, 0x78, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x14, 0x73, 3806 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x75, 3807 0x72, 0x69, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 3808 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 3809 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 3810 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 3811 0x6c, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x55, 0x72, 0x69, 0x52, 0x12, 0x73, 0x6f, 0x75, 0x72, 3812 0x63, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x55, 0x72, 0x69, 0x73, 0x1a, 0x5a, 3813 0x0a, 0x11, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 3814 0x55, 0x72, 0x69, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 3815 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 3816 0x12, 0x28, 0x0a, 0x10, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 3817 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x6c, 0x61, 0x67, 3818 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x69, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 3819 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 3820 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x5f, 3821 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x67, 0x6f, 0x6f, 3822 0x67, 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x73, 0x5f, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x5f, 3823 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x62, 0x0a, 3824 0x10, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 3825 0x74, 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x63, 0x6f, 3826 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 3827 0x52, 0x0f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 3828 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x64, 0x6b, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0x02, 0x20, 3829 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x73, 0x64, 0x6b, 0x42, 0x6c, 0x6f, 3830 0x62, 0x22, 0x6a, 0x0a, 0x11, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x4d, 0x65, 3831 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x55, 0x0a, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3832 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 3833 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 3834 0x02, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x21, 0x67, 0x6f, 0x6f, 0x67, 3835 0x6c, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x52, 3836 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xd2, 0x01, 3837 0x0a, 0x10, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x41, 0x72, 0x6d, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 3838 0x69, 0x67, 0x12, 0x5c, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x74, 0x65, 0x6d, 3839 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 3840 0x42, 0x2a, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x61, 3841 0x72, 0x6d, 0x6f, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 3842 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x12, 0x70, 0x72, 3843 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 3844 0x12, 0x60, 0x0a, 0x16, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x65, 0x6d, 3845 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 3846 0x42, 0x2a, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x61, 3847 0x72, 0x6d, 0x6f, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 3848 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x14, 0x72, 0x65, 3849 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4e, 0x61, 3850 0x6d, 0x65, 0x22, 0x77, 0x0a, 0x12, 0x4d, 0x6f, 0x64, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6f, 3851 0x6b, 0x65, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x61, 3852 0x6c, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 3853 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 3854 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x61, 0x6c, 0x69, 0x74, 0x79, 3855 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 3856 0x6b, 0x65, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 3857 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x2a, 0xf8, 0x01, 0x0a, 0x0c, 3858 0x48, 0x61, 0x72, 0x6d, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x19, 3859 0x48, 0x41, 0x52, 0x4d, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x55, 0x4e, 3860 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x48, 3861 0x41, 0x52, 0x4d, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x48, 0x41, 0x54, 3862 0x45, 0x5f, 0x53, 0x50, 0x45, 0x45, 0x43, 0x48, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x48, 0x41, 3863 0x52, 0x4d, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x44, 0x41, 0x4e, 0x47, 3864 0x45, 0x52, 0x4f, 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 3865 0x1c, 0x0a, 0x18, 0x48, 0x41, 0x52, 0x4d, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 3866 0x5f, 0x48, 0x41, 0x52, 0x41, 0x53, 0x53, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x23, 0x0a, 3867 0x1f, 0x48, 0x41, 0x52, 0x4d, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x53, 3868 0x45, 0x58, 0x55, 0x41, 0x4c, 0x4c, 0x59, 0x5f, 0x45, 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 3869 0x10, 0x04, 0x12, 0x25, 0x0a, 0x1d, 0x48, 0x41, 0x52, 0x4d, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, 3870 0x4f, 0x52, 0x59, 0x5f, 0x43, 0x49, 0x56, 0x49, 0x43, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 3871 0x49, 0x54, 0x59, 0x10, 0x05, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x48, 0x41, 0x52, 3872 0x4d, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x4a, 0x41, 0x49, 0x4c, 0x42, 3873 0x52, 0x45, 0x41, 0x4b, 0x10, 0x06, 0x2a, 0x5d, 0x0a, 0x08, 0x4d, 0x6f, 0x64, 0x61, 0x6c, 0x69, 3874 0x74, 0x79, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x4f, 0x44, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 3875 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 3876 0x54, 0x45, 0x58, 0x54, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 3877 0x02, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 3878 0x41, 0x55, 0x44, 0x49, 0x4f, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x4f, 0x43, 0x55, 0x4d, 3879 0x45, 0x4e, 0x54, 0x10, 0x05, 0x42, 0xaf, 0x02, 0xea, 0x41, 0x62, 0x0a, 0x22, 0x6d, 0x6f, 0x64, 3880 0x65, 0x6c, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 3881 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 3882 0x3c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 3883 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 3884 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 3885 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x7d, 0x0a, 0x1e, 0x63, 3886 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 3887 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x43, 3888 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 3889 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 3890 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 3891 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 3892 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 3893 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 3894 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 3895 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 3896 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3897 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 3898 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 3899 } 3900 3901 var ( 3902 file_google_cloud_aiplatform_v1_content_proto_rawDescOnce sync.Once 3903 file_google_cloud_aiplatform_v1_content_proto_rawDescData = file_google_cloud_aiplatform_v1_content_proto_rawDesc 3904 ) 3905 3906 func file_google_cloud_aiplatform_v1_content_proto_rawDescGZIP() []byte { 3907 file_google_cloud_aiplatform_v1_content_proto_rawDescOnce.Do(func() { 3908 file_google_cloud_aiplatform_v1_content_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_content_proto_rawDescData) 3909 }) 3910 return file_google_cloud_aiplatform_v1_content_proto_rawDescData 3911 } 3912 3913 var file_google_cloud_aiplatform_v1_content_proto_enumTypes = make([]protoimpl.EnumInfo, 9) 3914 var file_google_cloud_aiplatform_v1_content_proto_msgTypes = make([]protoimpl.MessageInfo, 34) 3915 var file_google_cloud_aiplatform_v1_content_proto_goTypes = []any{ 3916 (HarmCategory)(0), // 0: google.cloud.aiplatform.v1.HarmCategory 3917 (Modality)(0), // 1: google.cloud.aiplatform.v1.Modality 3918 (GenerationConfig_RoutingConfig_AutoRoutingMode_ModelRoutingPreference)(0), // 2: google.cloud.aiplatform.v1.GenerationConfig.RoutingConfig.AutoRoutingMode.ModelRoutingPreference 3919 (SafetySetting_HarmBlockThreshold)(0), // 3: google.cloud.aiplatform.v1.SafetySetting.HarmBlockThreshold 3920 (SafetySetting_HarmBlockMethod)(0), // 4: google.cloud.aiplatform.v1.SafetySetting.HarmBlockMethod 3921 (SafetyRating_HarmProbability)(0), // 5: google.cloud.aiplatform.v1.SafetyRating.HarmProbability 3922 (SafetyRating_HarmSeverity)(0), // 6: google.cloud.aiplatform.v1.SafetyRating.HarmSeverity 3923 (Candidate_FinishReason)(0), // 7: google.cloud.aiplatform.v1.Candidate.FinishReason 3924 (UrlMetadata_UrlRetrievalStatus)(0), // 8: google.cloud.aiplatform.v1.UrlMetadata.UrlRetrievalStatus 3925 (*Content)(nil), // 9: google.cloud.aiplatform.v1.Content 3926 (*Part)(nil), // 10: google.cloud.aiplatform.v1.Part 3927 (*Blob)(nil), // 11: google.cloud.aiplatform.v1.Blob 3928 (*FileData)(nil), // 12: google.cloud.aiplatform.v1.FileData 3929 (*VideoMetadata)(nil), // 13: google.cloud.aiplatform.v1.VideoMetadata 3930 (*GenerationConfig)(nil), // 14: google.cloud.aiplatform.v1.GenerationConfig 3931 (*SafetySetting)(nil), // 15: google.cloud.aiplatform.v1.SafetySetting 3932 (*SafetyRating)(nil), // 16: google.cloud.aiplatform.v1.SafetyRating 3933 (*CitationMetadata)(nil), // 17: google.cloud.aiplatform.v1.CitationMetadata 3934 (*Citation)(nil), // 18: google.cloud.aiplatform.v1.Citation 3935 (*Candidate)(nil), // 19: google.cloud.aiplatform.v1.Candidate 3936 (*UrlContextMetadata)(nil), // 20: google.cloud.aiplatform.v1.UrlContextMetadata 3937 (*UrlMetadata)(nil), // 21: google.cloud.aiplatform.v1.UrlMetadata 3938 (*LogprobsResult)(nil), // 22: google.cloud.aiplatform.v1.LogprobsResult 3939 (*Segment)(nil), // 23: google.cloud.aiplatform.v1.Segment 3940 (*GroundingChunk)(nil), // 24: google.cloud.aiplatform.v1.GroundingChunk 3941 (*GroundingSupport)(nil), // 25: google.cloud.aiplatform.v1.GroundingSupport 3942 (*GroundingMetadata)(nil), // 26: google.cloud.aiplatform.v1.GroundingMetadata 3943 (*SearchEntryPoint)(nil), // 27: google.cloud.aiplatform.v1.SearchEntryPoint 3944 (*RetrievalMetadata)(nil), // 28: google.cloud.aiplatform.v1.RetrievalMetadata 3945 (*ModelArmorConfig)(nil), // 29: google.cloud.aiplatform.v1.ModelArmorConfig 3946 (*ModalityTokenCount)(nil), // 30: google.cloud.aiplatform.v1.ModalityTokenCount 3947 (*GenerationConfig_RoutingConfig)(nil), // 31: google.cloud.aiplatform.v1.GenerationConfig.RoutingConfig 3948 (*GenerationConfig_ThinkingConfig)(nil), // 32: google.cloud.aiplatform.v1.GenerationConfig.ThinkingConfig 3949 (*GenerationConfig_RoutingConfig_AutoRoutingMode)(nil), // 33: google.cloud.aiplatform.v1.GenerationConfig.RoutingConfig.AutoRoutingMode 3950 (*GenerationConfig_RoutingConfig_ManualRoutingMode)(nil), // 34: google.cloud.aiplatform.v1.GenerationConfig.RoutingConfig.ManualRoutingMode 3951 (*LogprobsResult_Candidate)(nil), // 35: google.cloud.aiplatform.v1.LogprobsResult.Candidate 3952 (*LogprobsResult_TopCandidates)(nil), // 36: google.cloud.aiplatform.v1.LogprobsResult.TopCandidates 3953 (*GroundingChunk_Web)(nil), // 37: google.cloud.aiplatform.v1.GroundingChunk.Web 3954 (*GroundingChunk_RetrievedContext)(nil), // 38: google.cloud.aiplatform.v1.GroundingChunk.RetrievedContext 3955 (*GroundingChunk_Maps)(nil), // 39: google.cloud.aiplatform.v1.GroundingChunk.Maps 3956 (*GroundingChunk_Maps_PlaceAnswerSources)(nil), // 40: google.cloud.aiplatform.v1.GroundingChunk.Maps.PlaceAnswerSources 3957 (*GroundingChunk_Maps_PlaceAnswerSources_ReviewSnippet)(nil), // 41: google.cloud.aiplatform.v1.GroundingChunk.Maps.PlaceAnswerSources.ReviewSnippet 3958 (*GroundingMetadata_SourceFlaggingUri)(nil), // 42: google.cloud.aiplatform.v1.GroundingMetadata.SourceFlaggingUri 3959 (*FunctionCall)(nil), // 43: google.cloud.aiplatform.v1.FunctionCall 3960 (*FunctionResponse)(nil), // 44: google.cloud.aiplatform.v1.FunctionResponse 3961 (*ExecutableCode)(nil), // 45: google.cloud.aiplatform.v1.ExecutableCode 3962 (*CodeExecutionResult)(nil), // 46: google.cloud.aiplatform.v1.CodeExecutionResult 3963 (*durationpb.Duration)(nil), // 47: google.protobuf.Duration 3964 (*Schema)(nil), // 48: google.cloud.aiplatform.v1.Schema 3965 (*structpb.Value)(nil), // 49: google.protobuf.Value 3966 (*date.Date)(nil), // 50: google.type.Date 3967 (*RagChunk)(nil), // 51: google.cloud.aiplatform.v1.RagChunk 3968 } 3969 var file_google_cloud_aiplatform_v1_content_proto_depIdxs = []int32{ 3970 10, // 0: google.cloud.aiplatform.v1.Content.parts:type_name -> google.cloud.aiplatform.v1.Part 3971 11, // 1: google.cloud.aiplatform.v1.Part.inline_data:type_name -> google.cloud.aiplatform.v1.Blob 3972 12, // 2: google.cloud.aiplatform.v1.Part.file_data:type_name -> google.cloud.aiplatform.v1.FileData 3973 43, // 3: google.cloud.aiplatform.v1.Part.function_call:type_name -> google.cloud.aiplatform.v1.FunctionCall 3974 44, // 4: google.cloud.aiplatform.v1.Part.function_response:type_name -> google.cloud.aiplatform.v1.FunctionResponse 3975 45, // 5: google.cloud.aiplatform.v1.Part.executable_code:type_name -> google.cloud.aiplatform.v1.ExecutableCode 3976 46, // 6: google.cloud.aiplatform.v1.Part.code_execution_result:type_name -> google.cloud.aiplatform.v1.CodeExecutionResult 3977 13, // 7: google.cloud.aiplatform.v1.Part.video_metadata:type_name -> google.cloud.aiplatform.v1.VideoMetadata 3978 47, // 8: google.cloud.aiplatform.v1.VideoMetadata.start_offset:type_name -> google.protobuf.Duration 3979 47, // 9: google.cloud.aiplatform.v1.VideoMetadata.end_offset:type_name -> google.protobuf.Duration 3980 48, // 10: google.cloud.aiplatform.v1.GenerationConfig.response_schema:type_name -> google.cloud.aiplatform.v1.Schema 3981 49, // 11: google.cloud.aiplatform.v1.GenerationConfig.response_json_schema:type_name -> google.protobuf.Value 3982 31, // 12: google.cloud.aiplatform.v1.GenerationConfig.routing_config:type_name -> google.cloud.aiplatform.v1.GenerationConfig.RoutingConfig 3983 32, // 13: google.cloud.aiplatform.v1.GenerationConfig.thinking_config:type_name -> google.cloud.aiplatform.v1.GenerationConfig.ThinkingConfig 3984 0, // 14: google.cloud.aiplatform.v1.SafetySetting.category:type_name -> google.cloud.aiplatform.v1.HarmCategory 3985 3, // 15: google.cloud.aiplatform.v1.SafetySetting.threshold:type_name -> google.cloud.aiplatform.v1.SafetySetting.HarmBlockThreshold 3986 4, // 16: google.cloud.aiplatform.v1.SafetySetting.method:type_name -> google.cloud.aiplatform.v1.SafetySetting.HarmBlockMethod 3987 0, // 17: google.cloud.aiplatform.v1.SafetyRating.category:type_name -> google.cloud.aiplatform.v1.HarmCategory 3988 5, // 18: google.cloud.aiplatform.v1.SafetyRating.probability:type_name -> google.cloud.aiplatform.v1.SafetyRating.HarmProbability 3989 6, // 19: google.cloud.aiplatform.v1.SafetyRating.severity:type_name -> google.cloud.aiplatform.v1.SafetyRating.HarmSeverity 3990 18, // 20: google.cloud.aiplatform.v1.CitationMetadata.citations:type_name -> google.cloud.aiplatform.v1.Citation 3991 50, // 21: google.cloud.aiplatform.v1.Citation.publication_date:type_name -> google.type.Date 3992 9, // 22: google.cloud.aiplatform.v1.Candidate.content:type_name -> google.cloud.aiplatform.v1.Content 3993 22, // 23: google.cloud.aiplatform.v1.Candidate.logprobs_result:type_name -> google.cloud.aiplatform.v1.LogprobsResult 3994 7, // 24: google.cloud.aiplatform.v1.Candidate.finish_reason:type_name -> google.cloud.aiplatform.v1.Candidate.FinishReason 3995 16, // 25: google.cloud.aiplatform.v1.Candidate.safety_ratings:type_name -> google.cloud.aiplatform.v1.SafetyRating 3996 17, // 26: google.cloud.aiplatform.v1.Candidate.citation_metadata:type_name -> google.cloud.aiplatform.v1.CitationMetadata 3997 26, // 27: google.cloud.aiplatform.v1.Candidate.grounding_metadata:type_name -> google.cloud.aiplatform.v1.GroundingMetadata 3998 20, // 28: google.cloud.aiplatform.v1.Candidate.url_context_metadata:type_name -> google.cloud.aiplatform.v1.UrlContextMetadata 3999 21, // 29: google.cloud.aiplatform.v1.UrlContextMetadata.url_metadata:type_name -> google.cloud.aiplatform.v1.UrlMetadata 4000 8, // 30: google.cloud.aiplatform.v1.UrlMetadata.url_retrieval_status:type_name -> google.cloud.aiplatform.v1.UrlMetadata.UrlRetrievalStatus 4001 36, // 31: google.cloud.aiplatform.v1.LogprobsResult.top_candidates:type_name -> google.cloud.aiplatform.v1.LogprobsResult.TopCandidates 4002 35, // 32: google.cloud.aiplatform.v1.LogprobsResult.chosen_candidates:type_name -> google.cloud.aiplatform.v1.LogprobsResult.Candidate 4003 37, // 33: google.cloud.aiplatform.v1.GroundingChunk.web:type_name -> google.cloud.aiplatform.v1.GroundingChunk.Web 4004 38, // 34: google.cloud.aiplatform.v1.GroundingChunk.retrieved_context:type_name -> google.cloud.aiplatform.v1.GroundingChunk.RetrievedContext 4005 39, // 35: google.cloud.aiplatform.v1.GroundingChunk.maps:type_name -> google.cloud.aiplatform.v1.GroundingChunk.Maps 4006 23, // 36: google.cloud.aiplatform.v1.GroundingSupport.segment:type_name -> google.cloud.aiplatform.v1.Segment 4007 27, // 37: google.cloud.aiplatform.v1.GroundingMetadata.search_entry_point:type_name -> google.cloud.aiplatform.v1.SearchEntryPoint 4008 24, // 38: google.cloud.aiplatform.v1.GroundingMetadata.grounding_chunks:type_name -> google.cloud.aiplatform.v1.GroundingChunk 4009 25, // 39: google.cloud.aiplatform.v1.GroundingMetadata.grounding_supports:type_name -> google.cloud.aiplatform.v1.GroundingSupport 4010 28, // 40: google.cloud.aiplatform.v1.GroundingMetadata.retrieval_metadata:type_name -> google.cloud.aiplatform.v1.RetrievalMetadata 4011 42, // 41: google.cloud.aiplatform.v1.GroundingMetadata.source_flagging_uris:type_name -> google.cloud.aiplatform.v1.GroundingMetadata.SourceFlaggingUri 4012 1, // 42: google.cloud.aiplatform.v1.ModalityTokenCount.modality:type_name -> google.cloud.aiplatform.v1.Modality 4013 33, // 43: google.cloud.aiplatform.v1.GenerationConfig.RoutingConfig.auto_mode:type_name -> google.cloud.aiplatform.v1.GenerationConfig.RoutingConfig.AutoRoutingMode 4014 34, // 44: google.cloud.aiplatform.v1.GenerationConfig.RoutingConfig.manual_mode:type_name -> google.cloud.aiplatform.v1.GenerationConfig.RoutingConfig.ManualRoutingMode 4015 2, // 45: google.cloud.aiplatform.v1.GenerationConfig.RoutingConfig.AutoRoutingMode.model_routing_preference:type_name -> google.cloud.aiplatform.v1.GenerationConfig.RoutingConfig.AutoRoutingMode.ModelRoutingPreference 4016 35, // 46: google.cloud.aiplatform.v1.LogprobsResult.TopCandidates.candidates:type_name -> google.cloud.aiplatform.v1.LogprobsResult.Candidate 4017 51, // 47: google.cloud.aiplatform.v1.GroundingChunk.RetrievedContext.rag_chunk:type_name -> google.cloud.aiplatform.v1.RagChunk 4018 40, // 48: google.cloud.aiplatform.v1.GroundingChunk.Maps.place_answer_sources:type_name -> google.cloud.aiplatform.v1.GroundingChunk.Maps.PlaceAnswerSources 4019 41, // 49: google.cloud.aiplatform.v1.GroundingChunk.Maps.PlaceAnswerSources.review_snippets:type_name -> google.cloud.aiplatform.v1.GroundingChunk.Maps.PlaceAnswerSources.ReviewSnippet 4020 50, // [50:50] is the sub-list for method output_type 4021 50, // [50:50] is the sub-list for method input_type 4022 50, // [50:50] is the sub-list for extension type_name 4023 50, // [50:50] is the sub-list for extension extendee 4024 0, // [0:50] is the sub-list for field type_name 4025 } 4026 4027 func init() { file_google_cloud_aiplatform_v1_content_proto_init() } 4028 func file_google_cloud_aiplatform_v1_content_proto_init() { 4029 if File_google_cloud_aiplatform_v1_content_proto != nil { 4030 return 4031 } 4032 file_google_cloud_aiplatform_v1_openapi_proto_init() 4033 file_google_cloud_aiplatform_v1_tool_proto_init() 4034 file_google_cloud_aiplatform_v1_vertex_rag_data_proto_init() 4035 file_google_cloud_aiplatform_v1_content_proto_msgTypes[1].OneofWrappers = []any{ 4036 (*Part_Text)(nil), 4037 (*Part_InlineData)(nil), 4038 (*Part_FileData)(nil), 4039 (*Part_FunctionCall)(nil), 4040 (*Part_FunctionResponse)(nil), 4041 (*Part_ExecutableCode)(nil), 4042 (*Part_CodeExecutionResult)(nil), 4043 (*Part_VideoMetadata)(nil), 4044 } 4045 file_google_cloud_aiplatform_v1_content_proto_msgTypes[5].OneofWrappers = []any{} 4046 file_google_cloud_aiplatform_v1_content_proto_msgTypes[10].OneofWrappers = []any{} 4047 file_google_cloud_aiplatform_v1_content_proto_msgTypes[15].OneofWrappers = []any{ 4048 (*GroundingChunk_Web_)(nil), 4049 (*GroundingChunk_RetrievedContext_)(nil), 4050 (*GroundingChunk_Maps_)(nil), 4051 } 4052 file_google_cloud_aiplatform_v1_content_proto_msgTypes[16].OneofWrappers = []any{} 4053 file_google_cloud_aiplatform_v1_content_proto_msgTypes[17].OneofWrappers = []any{} 4054 file_google_cloud_aiplatform_v1_content_proto_msgTypes[22].OneofWrappers = []any{ 4055 (*GenerationConfig_RoutingConfig_AutoMode)(nil), 4056 (*GenerationConfig_RoutingConfig_ManualMode)(nil), 4057 } 4058 file_google_cloud_aiplatform_v1_content_proto_msgTypes[23].OneofWrappers = []any{} 4059 file_google_cloud_aiplatform_v1_content_proto_msgTypes[24].OneofWrappers = []any{} 4060 file_google_cloud_aiplatform_v1_content_proto_msgTypes[25].OneofWrappers = []any{} 4061 file_google_cloud_aiplatform_v1_content_proto_msgTypes[26].OneofWrappers = []any{} 4062 file_google_cloud_aiplatform_v1_content_proto_msgTypes[28].OneofWrappers = []any{} 4063 file_google_cloud_aiplatform_v1_content_proto_msgTypes[29].OneofWrappers = []any{ 4064 (*GroundingChunk_RetrievedContext_RagChunk)(nil), 4065 } 4066 file_google_cloud_aiplatform_v1_content_proto_msgTypes[30].OneofWrappers = []any{} 4067 type x struct{} 4068 out := protoimpl.TypeBuilder{ 4069 File: protoimpl.DescBuilder{ 4070 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 4071 RawDescriptor: file_google_cloud_aiplatform_v1_content_proto_rawDesc, 4072 NumEnums: 9, 4073 NumMessages: 34, 4074 NumExtensions: 0, 4075 NumServices: 0, 4076 }, 4077 GoTypes: file_google_cloud_aiplatform_v1_content_proto_goTypes, 4078 DependencyIndexes: file_google_cloud_aiplatform_v1_content_proto_depIdxs, 4079 EnumInfos: file_google_cloud_aiplatform_v1_content_proto_enumTypes, 4080 MessageInfos: file_google_cloud_aiplatform_v1_content_proto_msgTypes, 4081 }.Build() 4082 File_google_cloud_aiplatform_v1_content_proto = out.File 4083 file_google_cloud_aiplatform_v1_content_proto_rawDesc = nil 4084 file_google_cloud_aiplatform_v1_content_proto_goTypes = nil 4085 file_google_cloud_aiplatform_v1_content_proto_depIdxs = nil 4086 }