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