cloud.google.com/go/aiplatform@v1.106.0/apiv1/aiplatformpb/featurestore_online_service.pb.go (about) 1 // Copyright 2025 Google LLC 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // Code generated by protoc-gen-go. DO NOT EDIT. 16 // versions: 17 // protoc-gen-go v1.35.2 18 // protoc v4.25.7 19 // source: google/cloud/aiplatform/v1/featurestore_online_service.proto 20 21 package aiplatformpb 22 23 import ( 24 _ "google.golang.org/genproto/googleapis/api/annotations" 25 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 26 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 27 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 28 reflect "reflect" 29 sync "sync" 30 ) 31 32 const ( 33 // Verify that this generated code is sufficiently up-to-date. 34 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 35 // Verify that runtime/protoimpl is sufficiently up-to-date. 36 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 37 ) 38 39 // Request message for 40 // [FeaturestoreOnlineServingService.WriteFeatureValues][google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.WriteFeatureValues]. 41 type WriteFeatureValuesRequest struct { 42 state protoimpl.MessageState 43 sizeCache protoimpl.SizeCache 44 unknownFields protoimpl.UnknownFields 45 46 // Required. The resource name of the EntityType for the entities being 47 // written. Value format: 48 // `projects/{project}/locations/{location}/featurestores/ 49 // {featurestore}/entityTypes/{entityType}`. For example, 50 // for a machine learning model predicting user clicks on a website, an 51 // EntityType ID could be `user`. 52 EntityType string `protobuf:"bytes,1,opt,name=entity_type,json=entityType,proto3" json:"entity_type,omitempty"` 53 // Required. The entities to be written. Up to 100,000 feature values can be 54 // written across all `payloads`. 55 Payloads []*WriteFeatureValuesPayload `protobuf:"bytes,2,rep,name=payloads,proto3" json:"payloads,omitempty"` 56 } 57 58 func (x *WriteFeatureValuesRequest) Reset() { 59 *x = WriteFeatureValuesRequest{} 60 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[0] 61 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 62 ms.StoreMessageInfo(mi) 63 } 64 65 func (x *WriteFeatureValuesRequest) String() string { 66 return protoimpl.X.MessageStringOf(x) 67 } 68 69 func (*WriteFeatureValuesRequest) ProtoMessage() {} 70 71 func (x *WriteFeatureValuesRequest) ProtoReflect() protoreflect.Message { 72 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[0] 73 if x != nil { 74 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 75 if ms.LoadMessageInfo() == nil { 76 ms.StoreMessageInfo(mi) 77 } 78 return ms 79 } 80 return mi.MessageOf(x) 81 } 82 83 // Deprecated: Use WriteFeatureValuesRequest.ProtoReflect.Descriptor instead. 84 func (*WriteFeatureValuesRequest) Descriptor() ([]byte, []int) { 85 return file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescGZIP(), []int{0} 86 } 87 88 func (x *WriteFeatureValuesRequest) GetEntityType() string { 89 if x != nil { 90 return x.EntityType 91 } 92 return "" 93 } 94 95 func (x *WriteFeatureValuesRequest) GetPayloads() []*WriteFeatureValuesPayload { 96 if x != nil { 97 return x.Payloads 98 } 99 return nil 100 } 101 102 // Contains Feature values to be written for a specific entity. 103 type WriteFeatureValuesPayload struct { 104 state protoimpl.MessageState 105 sizeCache protoimpl.SizeCache 106 unknownFields protoimpl.UnknownFields 107 108 // Required. The ID of the entity. 109 EntityId string `protobuf:"bytes,1,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"` 110 // Required. Feature values to be written, mapping from Feature ID to value. 111 // Up to 100,000 `feature_values` entries may be written across all payloads. 112 // The feature generation time, aligned by days, must be no older than five 113 // years (1825 days) and no later than one year (366 days) in the future. 114 FeatureValues map[string]*FeatureValue `protobuf:"bytes,2,rep,name=feature_values,json=featureValues,proto3" json:"feature_values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 115 } 116 117 func (x *WriteFeatureValuesPayload) Reset() { 118 *x = WriteFeatureValuesPayload{} 119 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[1] 120 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 121 ms.StoreMessageInfo(mi) 122 } 123 124 func (x *WriteFeatureValuesPayload) String() string { 125 return protoimpl.X.MessageStringOf(x) 126 } 127 128 func (*WriteFeatureValuesPayload) ProtoMessage() {} 129 130 func (x *WriteFeatureValuesPayload) ProtoReflect() protoreflect.Message { 131 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[1] 132 if x != nil { 133 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 134 if ms.LoadMessageInfo() == nil { 135 ms.StoreMessageInfo(mi) 136 } 137 return ms 138 } 139 return mi.MessageOf(x) 140 } 141 142 // Deprecated: Use WriteFeatureValuesPayload.ProtoReflect.Descriptor instead. 143 func (*WriteFeatureValuesPayload) Descriptor() ([]byte, []int) { 144 return file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescGZIP(), []int{1} 145 } 146 147 func (x *WriteFeatureValuesPayload) GetEntityId() string { 148 if x != nil { 149 return x.EntityId 150 } 151 return "" 152 } 153 154 func (x *WriteFeatureValuesPayload) GetFeatureValues() map[string]*FeatureValue { 155 if x != nil { 156 return x.FeatureValues 157 } 158 return nil 159 } 160 161 // Response message for 162 // [FeaturestoreOnlineServingService.WriteFeatureValues][google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.WriteFeatureValues]. 163 type WriteFeatureValuesResponse struct { 164 state protoimpl.MessageState 165 sizeCache protoimpl.SizeCache 166 unknownFields protoimpl.UnknownFields 167 } 168 169 func (x *WriteFeatureValuesResponse) Reset() { 170 *x = WriteFeatureValuesResponse{} 171 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[2] 172 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 173 ms.StoreMessageInfo(mi) 174 } 175 176 func (x *WriteFeatureValuesResponse) String() string { 177 return protoimpl.X.MessageStringOf(x) 178 } 179 180 func (*WriteFeatureValuesResponse) ProtoMessage() {} 181 182 func (x *WriteFeatureValuesResponse) ProtoReflect() protoreflect.Message { 183 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[2] 184 if x != nil { 185 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 186 if ms.LoadMessageInfo() == nil { 187 ms.StoreMessageInfo(mi) 188 } 189 return ms 190 } 191 return mi.MessageOf(x) 192 } 193 194 // Deprecated: Use WriteFeatureValuesResponse.ProtoReflect.Descriptor instead. 195 func (*WriteFeatureValuesResponse) Descriptor() ([]byte, []int) { 196 return file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescGZIP(), []int{2} 197 } 198 199 // Request message for 200 // [FeaturestoreOnlineServingService.ReadFeatureValues][google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.ReadFeatureValues]. 201 type ReadFeatureValuesRequest struct { 202 state protoimpl.MessageState 203 sizeCache protoimpl.SizeCache 204 unknownFields protoimpl.UnknownFields 205 206 // Required. The resource name of the EntityType for the entity being read. 207 // Value format: 208 // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}`. 209 // For example, for a machine learning model predicting user clicks on a 210 // website, an EntityType ID could be `user`. 211 EntityType string `protobuf:"bytes,1,opt,name=entity_type,json=entityType,proto3" json:"entity_type,omitempty"` 212 // Required. ID for a specific entity. For example, 213 // for a machine learning model predicting user clicks on a website, an entity 214 // ID could be `user_123`. 215 EntityId string `protobuf:"bytes,2,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"` 216 // Required. Selector choosing Features of the target EntityType. 217 FeatureSelector *FeatureSelector `protobuf:"bytes,3,opt,name=feature_selector,json=featureSelector,proto3" json:"feature_selector,omitempty"` 218 } 219 220 func (x *ReadFeatureValuesRequest) Reset() { 221 *x = ReadFeatureValuesRequest{} 222 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[3] 223 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 224 ms.StoreMessageInfo(mi) 225 } 226 227 func (x *ReadFeatureValuesRequest) String() string { 228 return protoimpl.X.MessageStringOf(x) 229 } 230 231 func (*ReadFeatureValuesRequest) ProtoMessage() {} 232 233 func (x *ReadFeatureValuesRequest) ProtoReflect() protoreflect.Message { 234 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[3] 235 if x != nil { 236 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 237 if ms.LoadMessageInfo() == nil { 238 ms.StoreMessageInfo(mi) 239 } 240 return ms 241 } 242 return mi.MessageOf(x) 243 } 244 245 // Deprecated: Use ReadFeatureValuesRequest.ProtoReflect.Descriptor instead. 246 func (*ReadFeatureValuesRequest) Descriptor() ([]byte, []int) { 247 return file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescGZIP(), []int{3} 248 } 249 250 func (x *ReadFeatureValuesRequest) GetEntityType() string { 251 if x != nil { 252 return x.EntityType 253 } 254 return "" 255 } 256 257 func (x *ReadFeatureValuesRequest) GetEntityId() string { 258 if x != nil { 259 return x.EntityId 260 } 261 return "" 262 } 263 264 func (x *ReadFeatureValuesRequest) GetFeatureSelector() *FeatureSelector { 265 if x != nil { 266 return x.FeatureSelector 267 } 268 return nil 269 } 270 271 // Response message for 272 // [FeaturestoreOnlineServingService.ReadFeatureValues][google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.ReadFeatureValues]. 273 type ReadFeatureValuesResponse struct { 274 state protoimpl.MessageState 275 sizeCache protoimpl.SizeCache 276 unknownFields protoimpl.UnknownFields 277 278 // Response header. 279 Header *ReadFeatureValuesResponse_Header `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` 280 // Entity view with Feature values. This may be the entity in the 281 // Featurestore if values for all Features were requested, or a projection 282 // of the entity in the Featurestore if values for only some Features were 283 // requested. 284 EntityView *ReadFeatureValuesResponse_EntityView `protobuf:"bytes,2,opt,name=entity_view,json=entityView,proto3" json:"entity_view,omitempty"` 285 } 286 287 func (x *ReadFeatureValuesResponse) Reset() { 288 *x = ReadFeatureValuesResponse{} 289 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[4] 290 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 291 ms.StoreMessageInfo(mi) 292 } 293 294 func (x *ReadFeatureValuesResponse) String() string { 295 return protoimpl.X.MessageStringOf(x) 296 } 297 298 func (*ReadFeatureValuesResponse) ProtoMessage() {} 299 300 func (x *ReadFeatureValuesResponse) ProtoReflect() protoreflect.Message { 301 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[4] 302 if x != nil { 303 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 304 if ms.LoadMessageInfo() == nil { 305 ms.StoreMessageInfo(mi) 306 } 307 return ms 308 } 309 return mi.MessageOf(x) 310 } 311 312 // Deprecated: Use ReadFeatureValuesResponse.ProtoReflect.Descriptor instead. 313 func (*ReadFeatureValuesResponse) Descriptor() ([]byte, []int) { 314 return file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescGZIP(), []int{4} 315 } 316 317 func (x *ReadFeatureValuesResponse) GetHeader() *ReadFeatureValuesResponse_Header { 318 if x != nil { 319 return x.Header 320 } 321 return nil 322 } 323 324 func (x *ReadFeatureValuesResponse) GetEntityView() *ReadFeatureValuesResponse_EntityView { 325 if x != nil { 326 return x.EntityView 327 } 328 return nil 329 } 330 331 // Request message for 332 // [FeaturestoreOnlineServingService.StreamingReadFeatureValues][google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.StreamingReadFeatureValues]. 333 type StreamingReadFeatureValuesRequest struct { 334 state protoimpl.MessageState 335 sizeCache protoimpl.SizeCache 336 unknownFields protoimpl.UnknownFields 337 338 // Required. The resource name of the entities' type. 339 // Value format: 340 // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}`. 341 // For example, 342 // for a machine learning model predicting user clicks on a website, an 343 // EntityType ID could be `user`. 344 EntityType string `protobuf:"bytes,1,opt,name=entity_type,json=entityType,proto3" json:"entity_type,omitempty"` 345 // Required. IDs of entities to read Feature values of. The maximum number of 346 // IDs is 100. For example, for a machine learning model predicting user 347 // clicks on a website, an entity ID could be `user_123`. 348 EntityIds []string `protobuf:"bytes,2,rep,name=entity_ids,json=entityIds,proto3" json:"entity_ids,omitempty"` 349 // Required. Selector choosing Features of the target EntityType. Feature IDs 350 // will be deduplicated. 351 FeatureSelector *FeatureSelector `protobuf:"bytes,3,opt,name=feature_selector,json=featureSelector,proto3" json:"feature_selector,omitempty"` 352 } 353 354 func (x *StreamingReadFeatureValuesRequest) Reset() { 355 *x = StreamingReadFeatureValuesRequest{} 356 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[5] 357 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 358 ms.StoreMessageInfo(mi) 359 } 360 361 func (x *StreamingReadFeatureValuesRequest) String() string { 362 return protoimpl.X.MessageStringOf(x) 363 } 364 365 func (*StreamingReadFeatureValuesRequest) ProtoMessage() {} 366 367 func (x *StreamingReadFeatureValuesRequest) ProtoReflect() protoreflect.Message { 368 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[5] 369 if x != nil { 370 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 371 if ms.LoadMessageInfo() == nil { 372 ms.StoreMessageInfo(mi) 373 } 374 return ms 375 } 376 return mi.MessageOf(x) 377 } 378 379 // Deprecated: Use StreamingReadFeatureValuesRequest.ProtoReflect.Descriptor instead. 380 func (*StreamingReadFeatureValuesRequest) Descriptor() ([]byte, []int) { 381 return file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescGZIP(), []int{5} 382 } 383 384 func (x *StreamingReadFeatureValuesRequest) GetEntityType() string { 385 if x != nil { 386 return x.EntityType 387 } 388 return "" 389 } 390 391 func (x *StreamingReadFeatureValuesRequest) GetEntityIds() []string { 392 if x != nil { 393 return x.EntityIds 394 } 395 return nil 396 } 397 398 func (x *StreamingReadFeatureValuesRequest) GetFeatureSelector() *FeatureSelector { 399 if x != nil { 400 return x.FeatureSelector 401 } 402 return nil 403 } 404 405 // Value for a feature. 406 type FeatureValue struct { 407 state protoimpl.MessageState 408 sizeCache protoimpl.SizeCache 409 unknownFields protoimpl.UnknownFields 410 411 // Value for the feature. 412 // 413 // Types that are assignable to Value: 414 // 415 // *FeatureValue_BoolValue 416 // *FeatureValue_DoubleValue 417 // *FeatureValue_Int64Value 418 // *FeatureValue_StringValue 419 // *FeatureValue_BoolArrayValue 420 // *FeatureValue_DoubleArrayValue 421 // *FeatureValue_Int64ArrayValue 422 // *FeatureValue_StringArrayValue 423 // *FeatureValue_BytesValue 424 // *FeatureValue_StructValue 425 Value isFeatureValue_Value `protobuf_oneof:"value"` 426 // Metadata of feature value. 427 Metadata *FeatureValue_Metadata `protobuf:"bytes,14,opt,name=metadata,proto3" json:"metadata,omitempty"` 428 } 429 430 func (x *FeatureValue) Reset() { 431 *x = FeatureValue{} 432 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[6] 433 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 434 ms.StoreMessageInfo(mi) 435 } 436 437 func (x *FeatureValue) String() string { 438 return protoimpl.X.MessageStringOf(x) 439 } 440 441 func (*FeatureValue) ProtoMessage() {} 442 443 func (x *FeatureValue) ProtoReflect() protoreflect.Message { 444 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[6] 445 if x != nil { 446 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 447 if ms.LoadMessageInfo() == nil { 448 ms.StoreMessageInfo(mi) 449 } 450 return ms 451 } 452 return mi.MessageOf(x) 453 } 454 455 // Deprecated: Use FeatureValue.ProtoReflect.Descriptor instead. 456 func (*FeatureValue) Descriptor() ([]byte, []int) { 457 return file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescGZIP(), []int{6} 458 } 459 460 func (m *FeatureValue) GetValue() isFeatureValue_Value { 461 if m != nil { 462 return m.Value 463 } 464 return nil 465 } 466 467 func (x *FeatureValue) GetBoolValue() bool { 468 if x, ok := x.GetValue().(*FeatureValue_BoolValue); ok { 469 return x.BoolValue 470 } 471 return false 472 } 473 474 func (x *FeatureValue) GetDoubleValue() float64 { 475 if x, ok := x.GetValue().(*FeatureValue_DoubleValue); ok { 476 return x.DoubleValue 477 } 478 return 0 479 } 480 481 func (x *FeatureValue) GetInt64Value() int64 { 482 if x, ok := x.GetValue().(*FeatureValue_Int64Value); ok { 483 return x.Int64Value 484 } 485 return 0 486 } 487 488 func (x *FeatureValue) GetStringValue() string { 489 if x, ok := x.GetValue().(*FeatureValue_StringValue); ok { 490 return x.StringValue 491 } 492 return "" 493 } 494 495 func (x *FeatureValue) GetBoolArrayValue() *BoolArray { 496 if x, ok := x.GetValue().(*FeatureValue_BoolArrayValue); ok { 497 return x.BoolArrayValue 498 } 499 return nil 500 } 501 502 func (x *FeatureValue) GetDoubleArrayValue() *DoubleArray { 503 if x, ok := x.GetValue().(*FeatureValue_DoubleArrayValue); ok { 504 return x.DoubleArrayValue 505 } 506 return nil 507 } 508 509 func (x *FeatureValue) GetInt64ArrayValue() *Int64Array { 510 if x, ok := x.GetValue().(*FeatureValue_Int64ArrayValue); ok { 511 return x.Int64ArrayValue 512 } 513 return nil 514 } 515 516 func (x *FeatureValue) GetStringArrayValue() *StringArray { 517 if x, ok := x.GetValue().(*FeatureValue_StringArrayValue); ok { 518 return x.StringArrayValue 519 } 520 return nil 521 } 522 523 func (x *FeatureValue) GetBytesValue() []byte { 524 if x, ok := x.GetValue().(*FeatureValue_BytesValue); ok { 525 return x.BytesValue 526 } 527 return nil 528 } 529 530 func (x *FeatureValue) GetStructValue() *StructValue { 531 if x, ok := x.GetValue().(*FeatureValue_StructValue); ok { 532 return x.StructValue 533 } 534 return nil 535 } 536 537 func (x *FeatureValue) GetMetadata() *FeatureValue_Metadata { 538 if x != nil { 539 return x.Metadata 540 } 541 return nil 542 } 543 544 type isFeatureValue_Value interface { 545 isFeatureValue_Value() 546 } 547 548 type FeatureValue_BoolValue struct { 549 // Bool type feature value. 550 BoolValue bool `protobuf:"varint,1,opt,name=bool_value,json=boolValue,proto3,oneof"` 551 } 552 553 type FeatureValue_DoubleValue struct { 554 // Double type feature value. 555 DoubleValue float64 `protobuf:"fixed64,2,opt,name=double_value,json=doubleValue,proto3,oneof"` 556 } 557 558 type FeatureValue_Int64Value struct { 559 // Int64 feature value. 560 Int64Value int64 `protobuf:"varint,5,opt,name=int64_value,json=int64Value,proto3,oneof"` 561 } 562 563 type FeatureValue_StringValue struct { 564 // String feature value. 565 StringValue string `protobuf:"bytes,6,opt,name=string_value,json=stringValue,proto3,oneof"` 566 } 567 568 type FeatureValue_BoolArrayValue struct { 569 // A list of bool type feature value. 570 BoolArrayValue *BoolArray `protobuf:"bytes,7,opt,name=bool_array_value,json=boolArrayValue,proto3,oneof"` 571 } 572 573 type FeatureValue_DoubleArrayValue struct { 574 // A list of double type feature value. 575 DoubleArrayValue *DoubleArray `protobuf:"bytes,8,opt,name=double_array_value,json=doubleArrayValue,proto3,oneof"` 576 } 577 578 type FeatureValue_Int64ArrayValue struct { 579 // A list of int64 type feature value. 580 Int64ArrayValue *Int64Array `protobuf:"bytes,11,opt,name=int64_array_value,json=int64ArrayValue,proto3,oneof"` 581 } 582 583 type FeatureValue_StringArrayValue struct { 584 // A list of string type feature value. 585 StringArrayValue *StringArray `protobuf:"bytes,12,opt,name=string_array_value,json=stringArrayValue,proto3,oneof"` 586 } 587 588 type FeatureValue_BytesValue struct { 589 // Bytes feature value. 590 BytesValue []byte `protobuf:"bytes,13,opt,name=bytes_value,json=bytesValue,proto3,oneof"` 591 } 592 593 type FeatureValue_StructValue struct { 594 // A struct type feature value. 595 StructValue *StructValue `protobuf:"bytes,15,opt,name=struct_value,json=structValue,proto3,oneof"` 596 } 597 598 func (*FeatureValue_BoolValue) isFeatureValue_Value() {} 599 600 func (*FeatureValue_DoubleValue) isFeatureValue_Value() {} 601 602 func (*FeatureValue_Int64Value) isFeatureValue_Value() {} 603 604 func (*FeatureValue_StringValue) isFeatureValue_Value() {} 605 606 func (*FeatureValue_BoolArrayValue) isFeatureValue_Value() {} 607 608 func (*FeatureValue_DoubleArrayValue) isFeatureValue_Value() {} 609 610 func (*FeatureValue_Int64ArrayValue) isFeatureValue_Value() {} 611 612 func (*FeatureValue_StringArrayValue) isFeatureValue_Value() {} 613 614 func (*FeatureValue_BytesValue) isFeatureValue_Value() {} 615 616 func (*FeatureValue_StructValue) isFeatureValue_Value() {} 617 618 // Struct (or object) type feature value. 619 type StructValue struct { 620 state protoimpl.MessageState 621 sizeCache protoimpl.SizeCache 622 unknownFields protoimpl.UnknownFields 623 624 // A list of field values. 625 Values []*StructFieldValue `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` 626 } 627 628 func (x *StructValue) Reset() { 629 *x = StructValue{} 630 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[7] 631 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 632 ms.StoreMessageInfo(mi) 633 } 634 635 func (x *StructValue) String() string { 636 return protoimpl.X.MessageStringOf(x) 637 } 638 639 func (*StructValue) ProtoMessage() {} 640 641 func (x *StructValue) ProtoReflect() protoreflect.Message { 642 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[7] 643 if x != nil { 644 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 645 if ms.LoadMessageInfo() == nil { 646 ms.StoreMessageInfo(mi) 647 } 648 return ms 649 } 650 return mi.MessageOf(x) 651 } 652 653 // Deprecated: Use StructValue.ProtoReflect.Descriptor instead. 654 func (*StructValue) Descriptor() ([]byte, []int) { 655 return file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescGZIP(), []int{7} 656 } 657 658 func (x *StructValue) GetValues() []*StructFieldValue { 659 if x != nil { 660 return x.Values 661 } 662 return nil 663 } 664 665 // One field of a Struct (or object) type feature value. 666 type StructFieldValue struct { 667 state protoimpl.MessageState 668 sizeCache protoimpl.SizeCache 669 unknownFields protoimpl.UnknownFields 670 671 // Name of the field in the struct feature. 672 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 673 // The value for this field. 674 Value *FeatureValue `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` 675 } 676 677 func (x *StructFieldValue) Reset() { 678 *x = StructFieldValue{} 679 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[8] 680 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 681 ms.StoreMessageInfo(mi) 682 } 683 684 func (x *StructFieldValue) String() string { 685 return protoimpl.X.MessageStringOf(x) 686 } 687 688 func (*StructFieldValue) ProtoMessage() {} 689 690 func (x *StructFieldValue) ProtoReflect() protoreflect.Message { 691 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[8] 692 if x != nil { 693 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 694 if ms.LoadMessageInfo() == nil { 695 ms.StoreMessageInfo(mi) 696 } 697 return ms 698 } 699 return mi.MessageOf(x) 700 } 701 702 // Deprecated: Use StructFieldValue.ProtoReflect.Descriptor instead. 703 func (*StructFieldValue) Descriptor() ([]byte, []int) { 704 return file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescGZIP(), []int{8} 705 } 706 707 func (x *StructFieldValue) GetName() string { 708 if x != nil { 709 return x.Name 710 } 711 return "" 712 } 713 714 func (x *StructFieldValue) GetValue() *FeatureValue { 715 if x != nil { 716 return x.Value 717 } 718 return nil 719 } 720 721 // Container for list of values. 722 type FeatureValueList struct { 723 state protoimpl.MessageState 724 sizeCache protoimpl.SizeCache 725 unknownFields protoimpl.UnknownFields 726 727 // A list of feature values. All of them should be the same data type. 728 Values []*FeatureValue `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` 729 } 730 731 func (x *FeatureValueList) Reset() { 732 *x = FeatureValueList{} 733 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[9] 734 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 735 ms.StoreMessageInfo(mi) 736 } 737 738 func (x *FeatureValueList) String() string { 739 return protoimpl.X.MessageStringOf(x) 740 } 741 742 func (*FeatureValueList) ProtoMessage() {} 743 744 func (x *FeatureValueList) ProtoReflect() protoreflect.Message { 745 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[9] 746 if x != nil { 747 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 748 if ms.LoadMessageInfo() == nil { 749 ms.StoreMessageInfo(mi) 750 } 751 return ms 752 } 753 return mi.MessageOf(x) 754 } 755 756 // Deprecated: Use FeatureValueList.ProtoReflect.Descriptor instead. 757 func (*FeatureValueList) Descriptor() ([]byte, []int) { 758 return file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescGZIP(), []int{9} 759 } 760 761 func (x *FeatureValueList) GetValues() []*FeatureValue { 762 if x != nil { 763 return x.Values 764 } 765 return nil 766 } 767 768 // Metadata for requested Features. 769 type ReadFeatureValuesResponse_FeatureDescriptor struct { 770 state protoimpl.MessageState 771 sizeCache protoimpl.SizeCache 772 unknownFields protoimpl.UnknownFields 773 774 // Feature ID. 775 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` 776 } 777 778 func (x *ReadFeatureValuesResponse_FeatureDescriptor) Reset() { 779 *x = ReadFeatureValuesResponse_FeatureDescriptor{} 780 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[11] 781 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 782 ms.StoreMessageInfo(mi) 783 } 784 785 func (x *ReadFeatureValuesResponse_FeatureDescriptor) String() string { 786 return protoimpl.X.MessageStringOf(x) 787 } 788 789 func (*ReadFeatureValuesResponse_FeatureDescriptor) ProtoMessage() {} 790 791 func (x *ReadFeatureValuesResponse_FeatureDescriptor) ProtoReflect() protoreflect.Message { 792 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[11] 793 if x != nil { 794 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 795 if ms.LoadMessageInfo() == nil { 796 ms.StoreMessageInfo(mi) 797 } 798 return ms 799 } 800 return mi.MessageOf(x) 801 } 802 803 // Deprecated: Use ReadFeatureValuesResponse_FeatureDescriptor.ProtoReflect.Descriptor instead. 804 func (*ReadFeatureValuesResponse_FeatureDescriptor) Descriptor() ([]byte, []int) { 805 return file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescGZIP(), []int{4, 0} 806 } 807 808 func (x *ReadFeatureValuesResponse_FeatureDescriptor) GetId() string { 809 if x != nil { 810 return x.Id 811 } 812 return "" 813 } 814 815 // Response header with metadata for the requested 816 // [ReadFeatureValuesRequest.entity_type][google.cloud.aiplatform.v1.ReadFeatureValuesRequest.entity_type] 817 // and Features. 818 type ReadFeatureValuesResponse_Header struct { 819 state protoimpl.MessageState 820 sizeCache protoimpl.SizeCache 821 unknownFields protoimpl.UnknownFields 822 823 // The resource name of the EntityType from the 824 // [ReadFeatureValuesRequest][google.cloud.aiplatform.v1.ReadFeatureValuesRequest]. 825 // Value format: 826 // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}`. 827 EntityType string `protobuf:"bytes,1,opt,name=entity_type,json=entityType,proto3" json:"entity_type,omitempty"` 828 // List of Feature metadata corresponding to each piece of 829 // [ReadFeatureValuesResponse.EntityView.data][google.cloud.aiplatform.v1.ReadFeatureValuesResponse.EntityView.data]. 830 FeatureDescriptors []*ReadFeatureValuesResponse_FeatureDescriptor `protobuf:"bytes,2,rep,name=feature_descriptors,json=featureDescriptors,proto3" json:"feature_descriptors,omitempty"` 831 } 832 833 func (x *ReadFeatureValuesResponse_Header) Reset() { 834 *x = ReadFeatureValuesResponse_Header{} 835 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[12] 836 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 837 ms.StoreMessageInfo(mi) 838 } 839 840 func (x *ReadFeatureValuesResponse_Header) String() string { 841 return protoimpl.X.MessageStringOf(x) 842 } 843 844 func (*ReadFeatureValuesResponse_Header) ProtoMessage() {} 845 846 func (x *ReadFeatureValuesResponse_Header) ProtoReflect() protoreflect.Message { 847 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[12] 848 if x != nil { 849 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 850 if ms.LoadMessageInfo() == nil { 851 ms.StoreMessageInfo(mi) 852 } 853 return ms 854 } 855 return mi.MessageOf(x) 856 } 857 858 // Deprecated: Use ReadFeatureValuesResponse_Header.ProtoReflect.Descriptor instead. 859 func (*ReadFeatureValuesResponse_Header) Descriptor() ([]byte, []int) { 860 return file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescGZIP(), []int{4, 1} 861 } 862 863 func (x *ReadFeatureValuesResponse_Header) GetEntityType() string { 864 if x != nil { 865 return x.EntityType 866 } 867 return "" 868 } 869 870 func (x *ReadFeatureValuesResponse_Header) GetFeatureDescriptors() []*ReadFeatureValuesResponse_FeatureDescriptor { 871 if x != nil { 872 return x.FeatureDescriptors 873 } 874 return nil 875 } 876 877 // Entity view with Feature values. 878 type ReadFeatureValuesResponse_EntityView struct { 879 state protoimpl.MessageState 880 sizeCache protoimpl.SizeCache 881 unknownFields protoimpl.UnknownFields 882 883 // ID of the requested entity. 884 EntityId string `protobuf:"bytes,1,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"` 885 // Each piece of data holds the k 886 // requested values for one requested Feature. If no values 887 // for the requested Feature exist, the corresponding cell will be empty. 888 // This has the same size and is in the same order as the features from the 889 // header 890 // [ReadFeatureValuesResponse.header][google.cloud.aiplatform.v1.ReadFeatureValuesResponse.header]. 891 Data []*ReadFeatureValuesResponse_EntityView_Data `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` 892 } 893 894 func (x *ReadFeatureValuesResponse_EntityView) Reset() { 895 *x = ReadFeatureValuesResponse_EntityView{} 896 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[13] 897 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 898 ms.StoreMessageInfo(mi) 899 } 900 901 func (x *ReadFeatureValuesResponse_EntityView) String() string { 902 return protoimpl.X.MessageStringOf(x) 903 } 904 905 func (*ReadFeatureValuesResponse_EntityView) ProtoMessage() {} 906 907 func (x *ReadFeatureValuesResponse_EntityView) ProtoReflect() protoreflect.Message { 908 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[13] 909 if x != nil { 910 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 911 if ms.LoadMessageInfo() == nil { 912 ms.StoreMessageInfo(mi) 913 } 914 return ms 915 } 916 return mi.MessageOf(x) 917 } 918 919 // Deprecated: Use ReadFeatureValuesResponse_EntityView.ProtoReflect.Descriptor instead. 920 func (*ReadFeatureValuesResponse_EntityView) Descriptor() ([]byte, []int) { 921 return file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescGZIP(), []int{4, 2} 922 } 923 924 func (x *ReadFeatureValuesResponse_EntityView) GetEntityId() string { 925 if x != nil { 926 return x.EntityId 927 } 928 return "" 929 } 930 931 func (x *ReadFeatureValuesResponse_EntityView) GetData() []*ReadFeatureValuesResponse_EntityView_Data { 932 if x != nil { 933 return x.Data 934 } 935 return nil 936 } 937 938 // Container to hold value(s), successive in time, for one Feature from the 939 // request. 940 type ReadFeatureValuesResponse_EntityView_Data struct { 941 state protoimpl.MessageState 942 sizeCache protoimpl.SizeCache 943 unknownFields protoimpl.UnknownFields 944 945 // Types that are assignable to Data: 946 // 947 // *ReadFeatureValuesResponse_EntityView_Data_Value 948 // *ReadFeatureValuesResponse_EntityView_Data_Values 949 Data isReadFeatureValuesResponse_EntityView_Data_Data `protobuf_oneof:"data"` 950 } 951 952 func (x *ReadFeatureValuesResponse_EntityView_Data) Reset() { 953 *x = ReadFeatureValuesResponse_EntityView_Data{} 954 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[14] 955 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 956 ms.StoreMessageInfo(mi) 957 } 958 959 func (x *ReadFeatureValuesResponse_EntityView_Data) String() string { 960 return protoimpl.X.MessageStringOf(x) 961 } 962 963 func (*ReadFeatureValuesResponse_EntityView_Data) ProtoMessage() {} 964 965 func (x *ReadFeatureValuesResponse_EntityView_Data) ProtoReflect() protoreflect.Message { 966 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[14] 967 if x != nil { 968 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 969 if ms.LoadMessageInfo() == nil { 970 ms.StoreMessageInfo(mi) 971 } 972 return ms 973 } 974 return mi.MessageOf(x) 975 } 976 977 // Deprecated: Use ReadFeatureValuesResponse_EntityView_Data.ProtoReflect.Descriptor instead. 978 func (*ReadFeatureValuesResponse_EntityView_Data) Descriptor() ([]byte, []int) { 979 return file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescGZIP(), []int{4, 2, 0} 980 } 981 982 func (m *ReadFeatureValuesResponse_EntityView_Data) GetData() isReadFeatureValuesResponse_EntityView_Data_Data { 983 if m != nil { 984 return m.Data 985 } 986 return nil 987 } 988 989 func (x *ReadFeatureValuesResponse_EntityView_Data) GetValue() *FeatureValue { 990 if x, ok := x.GetData().(*ReadFeatureValuesResponse_EntityView_Data_Value); ok { 991 return x.Value 992 } 993 return nil 994 } 995 996 func (x *ReadFeatureValuesResponse_EntityView_Data) GetValues() *FeatureValueList { 997 if x, ok := x.GetData().(*ReadFeatureValuesResponse_EntityView_Data_Values); ok { 998 return x.Values 999 } 1000 return nil 1001 } 1002 1003 type isReadFeatureValuesResponse_EntityView_Data_Data interface { 1004 isReadFeatureValuesResponse_EntityView_Data_Data() 1005 } 1006 1007 type ReadFeatureValuesResponse_EntityView_Data_Value struct { 1008 // Feature value if a single value is requested. 1009 Value *FeatureValue `protobuf:"bytes,1,opt,name=value,proto3,oneof"` 1010 } 1011 1012 type ReadFeatureValuesResponse_EntityView_Data_Values struct { 1013 // Feature values list if values, successive in time, are requested. 1014 // If the requested number of values is greater than the number of 1015 // existing Feature values, nonexistent values are omitted instead of 1016 // being returned as empty. 1017 Values *FeatureValueList `protobuf:"bytes,2,opt,name=values,proto3,oneof"` 1018 } 1019 1020 func (*ReadFeatureValuesResponse_EntityView_Data_Value) isReadFeatureValuesResponse_EntityView_Data_Data() { 1021 } 1022 1023 func (*ReadFeatureValuesResponse_EntityView_Data_Values) isReadFeatureValuesResponse_EntityView_Data_Data() { 1024 } 1025 1026 // Metadata of feature value. 1027 type FeatureValue_Metadata struct { 1028 state protoimpl.MessageState 1029 sizeCache protoimpl.SizeCache 1030 unknownFields protoimpl.UnknownFields 1031 1032 // Feature generation timestamp. Typically, it is provided by user at 1033 // feature ingestion time. If not, feature store 1034 // will use the system timestamp when the data is ingested into feature 1035 // store. 1036 // 1037 // Legacy Feature Store: For streaming ingestion, the time, aligned by days, 1038 // must be no older than five years (1825 days) and no later than one year 1039 // (366 days) in the future. 1040 GenerateTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=generate_time,json=generateTime,proto3" json:"generate_time,omitempty"` 1041 } 1042 1043 func (x *FeatureValue_Metadata) Reset() { 1044 *x = FeatureValue_Metadata{} 1045 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[15] 1046 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1047 ms.StoreMessageInfo(mi) 1048 } 1049 1050 func (x *FeatureValue_Metadata) String() string { 1051 return protoimpl.X.MessageStringOf(x) 1052 } 1053 1054 func (*FeatureValue_Metadata) ProtoMessage() {} 1055 1056 func (x *FeatureValue_Metadata) ProtoReflect() protoreflect.Message { 1057 mi := &file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[15] 1058 if x != nil { 1059 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1060 if ms.LoadMessageInfo() == nil { 1061 ms.StoreMessageInfo(mi) 1062 } 1063 return ms 1064 } 1065 return mi.MessageOf(x) 1066 } 1067 1068 // Deprecated: Use FeatureValue_Metadata.ProtoReflect.Descriptor instead. 1069 func (*FeatureValue_Metadata) Descriptor() ([]byte, []int) { 1070 return file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescGZIP(), []int{6, 0} 1071 } 1072 1073 func (x *FeatureValue_Metadata) GetGenerateTime() *timestamppb.Timestamp { 1074 if x != nil { 1075 return x.GenerateTime 1076 } 1077 return nil 1078 } 1079 1080 var File_google_cloud_aiplatform_v1_featurestore_online_service_proto protoreflect.FileDescriptor 1081 1082 var file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDesc = []byte{ 1083 0x0a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 1084 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, 1085 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 1086 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 1087 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 1088 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 1089 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 1090 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1091 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1092 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 1093 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 1094 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 1095 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x31, 0x67, 1096 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 1097 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 1098 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1099 0x1a, 0x26, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 1100 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 1101 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1102 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 1103 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc2, 0x01, 0x0a, 0x19, 0x57, 0x72, 1104 0x69, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 1105 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 1106 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 1107 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1108 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 1109 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 1110 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x08, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 1111 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1112 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 1113 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 1114 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 1115 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x22, 0x9f, 1116 0x02, 0x0a, 0x19, 0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 1117 0x61, 0x6c, 0x75, 0x65, 0x73, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x20, 0x0a, 0x09, 1118 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 1119 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x74, 1120 0x0a, 0x0e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 1121 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1122 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1123 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 1124 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x46, 0x65, 1125 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 1126 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 1127 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x6a, 0x0a, 0x12, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 1128 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 1129 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x05, 1130 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 1131 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 1132 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 1133 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 1134 0x22, 0x1c, 0x0a, 0x1a, 0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 1135 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe8, 1136 0x01, 0x0a, 0x18, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 1137 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x65, 1138 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 1139 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 1140 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 1141 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 1142 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x6e, 1143 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 1144 0x41, 0x02, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x10, 1145 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 1146 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1147 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1148 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 1149 0x74, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 1150 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xec, 0x05, 0x0a, 0x19, 0x52, 0x65, 1151 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 1152 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 1153 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1154 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 1155 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 1156 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 1157 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x61, 0x0a, 1158 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 1159 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1160 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 1161 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 1162 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 1163 0x56, 0x69, 0x65, 0x77, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x56, 0x69, 0x65, 0x77, 1164 0x1a, 0x23, 0x0a, 0x11, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 1165 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 1166 0x09, 0x52, 0x02, 0x69, 0x64, 0x1a, 0xce, 0x01, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 1167 0x12, 0x4a, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 1168 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x61, 0x69, 0x70, 0x6c, 1169 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 1170 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 1171 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x78, 0x0a, 0x13, 1172 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 1173 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1174 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 1175 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 1176 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 1177 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 1178 0x6f, 0x72, 0x52, 0x12, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 1179 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x1a, 0x9f, 0x02, 0x0a, 0x0a, 0x45, 0x6e, 0x74, 0x69, 0x74, 1180 0x79, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 1181 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 1182 0x49, 0x64, 0x12, 0x59, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 1183 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 1184 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 1185 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 1186 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x56, 0x69, 1187 0x65, 0x77, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x98, 0x01, 1188 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 1189 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1190 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 1191 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 1192 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x46, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 1193 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1194 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 1195 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 1196 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 1197 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf3, 0x01, 0x0a, 0x21, 0x53, 0x74, 0x72, 1198 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 1199 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 1200 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 1201 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x61, 0x69, 0x70, 1202 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 1203 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 1204 0x65, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 1205 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 1206 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 1207 0x73, 0x12, 0x5b, 0x0a, 0x10, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x6c, 1208 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 1209 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 1210 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 1211 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 1212 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x8d, 1213 0x06, 0x0a, 0x0c, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 1214 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 1215 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 1216 0x12, 0x23, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 1217 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 1218 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76, 1219 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 1220 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 1221 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 1222 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x51, 0x0a, 1223 0x10, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 1224 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1225 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 1226 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, 1227 0x52, 0x0e, 0x62, 0x6f, 0x6f, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 1228 0x12, 0x57, 0x0a, 0x12, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 1229 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 1230 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 1231 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 1232 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, 0x10, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x41, 1233 0x72, 0x72, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x54, 0x0a, 0x11, 0x69, 0x6e, 0x74, 1234 0x36, 0x34, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0b, 1235 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 1236 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 1237 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, 0x0f, 1238 0x69, 0x6e, 0x74, 0x36, 0x34, 0x41, 0x72, 0x72, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 1239 0x57, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 1240 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 1241 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 1242 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 1243 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, 0x10, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 1244 0x72, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 1245 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 1246 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x73, 1247 0x74, 0x72, 0x75, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 1248 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1249 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 1250 0x74, 0x72, 0x75, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 1251 0x72, 0x75, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4d, 0x0a, 0x08, 0x6d, 0x65, 0x74, 1252 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 1253 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 1254 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 1255 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 1256 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x4b, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 1257 0x64, 0x61, 0x74, 0x61, 0x12, 0x3f, 0x0a, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 1258 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 1259 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 1260 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 1261 0x65, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x53, 1262 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x44, 0x0a, 1263 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 1264 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 1265 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 1266 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 1267 0x75, 0x65, 0x73, 0x22, 0x66, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x46, 0x69, 0x65, 1268 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 1269 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x05, 0x76, 1270 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 1271 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 1272 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 1273 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x54, 0x0a, 0x10, 0x46, 1274 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 1275 0x40, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 1276 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 1277 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 1278 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 1279 0x73, 0x32, 0xfd, 0x06, 0x0a, 0x20, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 1280 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x53, 1281 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xf3, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x61, 0x64, 0x46, 1282 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x67, 1283 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 1284 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 1285 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 1286 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1287 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 1288 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 1289 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0xda, 0x41, 0x0b, 0x65, 0x6e, 1290 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5d, 0x3a, 1291 0x01, 0x2a, 0x22, 0x58, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 1292 0x74, 0x79, 0x70, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 1293 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 1294 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x69, 1295 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x61, 0x64, 0x46, 1296 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x90, 0x02, 0x0a, 1297 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 1298 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 1299 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 1300 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 1301 0x6e, 0x67, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 1302 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 1303 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 1304 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 1305 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 1306 0x65, 0x22, 0x7a, 0xda, 0x41, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 1307 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x66, 0x3a, 0x01, 0x2a, 0x22, 0x61, 0x2f, 0x76, 0x31, 0x2f, 1308 0x7b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x70, 0x72, 0x6f, 1309 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 1310 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 1311 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 1312 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x61, 0x64, 1313 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x30, 0x01, 0x12, 1314 0x80, 0x02, 0x0a, 0x12, 0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 1315 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1316 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1317 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 1318 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 1319 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 1320 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 1321 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 1322 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7b, 0xda, 0x41, 0x14, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 1323 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x82, 0xd3, 1324 0xe4, 0x93, 0x02, 0x5e, 0x3a, 0x01, 0x2a, 0x22, 0x59, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 1325 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 1326 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 1327 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 1328 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 1329 0x77, 0x72, 0x69, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 1330 0x65, 0x73, 0x1a, 0x4d, 0xca, 0x41, 0x19, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 1331 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 1332 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 1333 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 1334 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 1335 0x6d, 0x42, 0xdc, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1336 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 1337 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x1e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 1338 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 1339 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 1340 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 1341 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 1342 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 1343 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1344 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1345 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 1346 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 1347 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 1348 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 1349 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 1350 } 1351 1352 var ( 1353 file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescOnce sync.Once 1354 file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescData = file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDesc 1355 ) 1356 1357 func file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescGZIP() []byte { 1358 file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescOnce.Do(func() { 1359 file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescData) 1360 }) 1361 return file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDescData 1362 } 1363 1364 var file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes = make([]protoimpl.MessageInfo, 16) 1365 var file_google_cloud_aiplatform_v1_featurestore_online_service_proto_goTypes = []any{ 1366 (*WriteFeatureValuesRequest)(nil), // 0: google.cloud.aiplatform.v1.WriteFeatureValuesRequest 1367 (*WriteFeatureValuesPayload)(nil), // 1: google.cloud.aiplatform.v1.WriteFeatureValuesPayload 1368 (*WriteFeatureValuesResponse)(nil), // 2: google.cloud.aiplatform.v1.WriteFeatureValuesResponse 1369 (*ReadFeatureValuesRequest)(nil), // 3: google.cloud.aiplatform.v1.ReadFeatureValuesRequest 1370 (*ReadFeatureValuesResponse)(nil), // 4: google.cloud.aiplatform.v1.ReadFeatureValuesResponse 1371 (*StreamingReadFeatureValuesRequest)(nil), // 5: google.cloud.aiplatform.v1.StreamingReadFeatureValuesRequest 1372 (*FeatureValue)(nil), // 6: google.cloud.aiplatform.v1.FeatureValue 1373 (*StructValue)(nil), // 7: google.cloud.aiplatform.v1.StructValue 1374 (*StructFieldValue)(nil), // 8: google.cloud.aiplatform.v1.StructFieldValue 1375 (*FeatureValueList)(nil), // 9: google.cloud.aiplatform.v1.FeatureValueList 1376 nil, // 10: google.cloud.aiplatform.v1.WriteFeatureValuesPayload.FeatureValuesEntry 1377 (*ReadFeatureValuesResponse_FeatureDescriptor)(nil), // 11: google.cloud.aiplatform.v1.ReadFeatureValuesResponse.FeatureDescriptor 1378 (*ReadFeatureValuesResponse_Header)(nil), // 12: google.cloud.aiplatform.v1.ReadFeatureValuesResponse.Header 1379 (*ReadFeatureValuesResponse_EntityView)(nil), // 13: google.cloud.aiplatform.v1.ReadFeatureValuesResponse.EntityView 1380 (*ReadFeatureValuesResponse_EntityView_Data)(nil), // 14: google.cloud.aiplatform.v1.ReadFeatureValuesResponse.EntityView.Data 1381 (*FeatureValue_Metadata)(nil), // 15: google.cloud.aiplatform.v1.FeatureValue.Metadata 1382 (*FeatureSelector)(nil), // 16: google.cloud.aiplatform.v1.FeatureSelector 1383 (*BoolArray)(nil), // 17: google.cloud.aiplatform.v1.BoolArray 1384 (*DoubleArray)(nil), // 18: google.cloud.aiplatform.v1.DoubleArray 1385 (*Int64Array)(nil), // 19: google.cloud.aiplatform.v1.Int64Array 1386 (*StringArray)(nil), // 20: google.cloud.aiplatform.v1.StringArray 1387 (*timestamppb.Timestamp)(nil), // 21: google.protobuf.Timestamp 1388 } 1389 var file_google_cloud_aiplatform_v1_featurestore_online_service_proto_depIdxs = []int32{ 1390 1, // 0: google.cloud.aiplatform.v1.WriteFeatureValuesRequest.payloads:type_name -> google.cloud.aiplatform.v1.WriteFeatureValuesPayload 1391 10, // 1: google.cloud.aiplatform.v1.WriteFeatureValuesPayload.feature_values:type_name -> google.cloud.aiplatform.v1.WriteFeatureValuesPayload.FeatureValuesEntry 1392 16, // 2: google.cloud.aiplatform.v1.ReadFeatureValuesRequest.feature_selector:type_name -> google.cloud.aiplatform.v1.FeatureSelector 1393 12, // 3: google.cloud.aiplatform.v1.ReadFeatureValuesResponse.header:type_name -> google.cloud.aiplatform.v1.ReadFeatureValuesResponse.Header 1394 13, // 4: google.cloud.aiplatform.v1.ReadFeatureValuesResponse.entity_view:type_name -> google.cloud.aiplatform.v1.ReadFeatureValuesResponse.EntityView 1395 16, // 5: google.cloud.aiplatform.v1.StreamingReadFeatureValuesRequest.feature_selector:type_name -> google.cloud.aiplatform.v1.FeatureSelector 1396 17, // 6: google.cloud.aiplatform.v1.FeatureValue.bool_array_value:type_name -> google.cloud.aiplatform.v1.BoolArray 1397 18, // 7: google.cloud.aiplatform.v1.FeatureValue.double_array_value:type_name -> google.cloud.aiplatform.v1.DoubleArray 1398 19, // 8: google.cloud.aiplatform.v1.FeatureValue.int64_array_value:type_name -> google.cloud.aiplatform.v1.Int64Array 1399 20, // 9: google.cloud.aiplatform.v1.FeatureValue.string_array_value:type_name -> google.cloud.aiplatform.v1.StringArray 1400 7, // 10: google.cloud.aiplatform.v1.FeatureValue.struct_value:type_name -> google.cloud.aiplatform.v1.StructValue 1401 15, // 11: google.cloud.aiplatform.v1.FeatureValue.metadata:type_name -> google.cloud.aiplatform.v1.FeatureValue.Metadata 1402 8, // 12: google.cloud.aiplatform.v1.StructValue.values:type_name -> google.cloud.aiplatform.v1.StructFieldValue 1403 6, // 13: google.cloud.aiplatform.v1.StructFieldValue.value:type_name -> google.cloud.aiplatform.v1.FeatureValue 1404 6, // 14: google.cloud.aiplatform.v1.FeatureValueList.values:type_name -> google.cloud.aiplatform.v1.FeatureValue 1405 6, // 15: google.cloud.aiplatform.v1.WriteFeatureValuesPayload.FeatureValuesEntry.value:type_name -> google.cloud.aiplatform.v1.FeatureValue 1406 11, // 16: google.cloud.aiplatform.v1.ReadFeatureValuesResponse.Header.feature_descriptors:type_name -> google.cloud.aiplatform.v1.ReadFeatureValuesResponse.FeatureDescriptor 1407 14, // 17: google.cloud.aiplatform.v1.ReadFeatureValuesResponse.EntityView.data:type_name -> google.cloud.aiplatform.v1.ReadFeatureValuesResponse.EntityView.Data 1408 6, // 18: google.cloud.aiplatform.v1.ReadFeatureValuesResponse.EntityView.Data.value:type_name -> google.cloud.aiplatform.v1.FeatureValue 1409 9, // 19: google.cloud.aiplatform.v1.ReadFeatureValuesResponse.EntityView.Data.values:type_name -> google.cloud.aiplatform.v1.FeatureValueList 1410 21, // 20: google.cloud.aiplatform.v1.FeatureValue.Metadata.generate_time:type_name -> google.protobuf.Timestamp 1411 3, // 21: google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.ReadFeatureValues:input_type -> google.cloud.aiplatform.v1.ReadFeatureValuesRequest 1412 5, // 22: google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.StreamingReadFeatureValues:input_type -> google.cloud.aiplatform.v1.StreamingReadFeatureValuesRequest 1413 0, // 23: google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.WriteFeatureValues:input_type -> google.cloud.aiplatform.v1.WriteFeatureValuesRequest 1414 4, // 24: google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.ReadFeatureValues:output_type -> google.cloud.aiplatform.v1.ReadFeatureValuesResponse 1415 4, // 25: google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.StreamingReadFeatureValues:output_type -> google.cloud.aiplatform.v1.ReadFeatureValuesResponse 1416 2, // 26: google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.WriteFeatureValues:output_type -> google.cloud.aiplatform.v1.WriteFeatureValuesResponse 1417 24, // [24:27] is the sub-list for method output_type 1418 21, // [21:24] is the sub-list for method input_type 1419 21, // [21:21] is the sub-list for extension type_name 1420 21, // [21:21] is the sub-list for extension extendee 1421 0, // [0:21] is the sub-list for field type_name 1422 } 1423 1424 func init() { file_google_cloud_aiplatform_v1_featurestore_online_service_proto_init() } 1425 func file_google_cloud_aiplatform_v1_featurestore_online_service_proto_init() { 1426 if File_google_cloud_aiplatform_v1_featurestore_online_service_proto != nil { 1427 return 1428 } 1429 file_google_cloud_aiplatform_v1_feature_selector_proto_init() 1430 file_google_cloud_aiplatform_v1_types_proto_init() 1431 file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[6].OneofWrappers = []any{ 1432 (*FeatureValue_BoolValue)(nil), 1433 (*FeatureValue_DoubleValue)(nil), 1434 (*FeatureValue_Int64Value)(nil), 1435 (*FeatureValue_StringValue)(nil), 1436 (*FeatureValue_BoolArrayValue)(nil), 1437 (*FeatureValue_DoubleArrayValue)(nil), 1438 (*FeatureValue_Int64ArrayValue)(nil), 1439 (*FeatureValue_StringArrayValue)(nil), 1440 (*FeatureValue_BytesValue)(nil), 1441 (*FeatureValue_StructValue)(nil), 1442 } 1443 file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes[14].OneofWrappers = []any{ 1444 (*ReadFeatureValuesResponse_EntityView_Data_Value)(nil), 1445 (*ReadFeatureValuesResponse_EntityView_Data_Values)(nil), 1446 } 1447 type x struct{} 1448 out := protoimpl.TypeBuilder{ 1449 File: protoimpl.DescBuilder{ 1450 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1451 RawDescriptor: file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDesc, 1452 NumEnums: 0, 1453 NumMessages: 16, 1454 NumExtensions: 0, 1455 NumServices: 1, 1456 }, 1457 GoTypes: file_google_cloud_aiplatform_v1_featurestore_online_service_proto_goTypes, 1458 DependencyIndexes: file_google_cloud_aiplatform_v1_featurestore_online_service_proto_depIdxs, 1459 MessageInfos: file_google_cloud_aiplatform_v1_featurestore_online_service_proto_msgTypes, 1460 }.Build() 1461 File_google_cloud_aiplatform_v1_featurestore_online_service_proto = out.File 1462 file_google_cloud_aiplatform_v1_featurestore_online_service_proto_rawDesc = nil 1463 file_google_cloud_aiplatform_v1_featurestore_online_service_proto_goTypes = nil 1464 file_google_cloud_aiplatform_v1_featurestore_online_service_proto_depIdxs = nil 1465 }