cloud.google.com/go/aiplatform@v1.106.0/apiv1beta1/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/v1beta1/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.v1beta1.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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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.v1beta1.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_v1beta1_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_v1beta1_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_v1beta1_featurestore_online_service_proto_rawDescGZIP(), []int{2} 197 } 198 199 // Request message for 200 // [FeaturestoreOnlineServingService.ReadFeatureValues][google.cloud.aiplatform.v1beta1.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_v1beta1_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_v1beta1_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_v1beta1_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.v1beta1.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_v1beta1_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_v1beta1_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_v1beta1_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.v1beta1.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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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.v1beta1.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.v1beta1.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.v1beta1.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_v1beta1_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_v1beta1_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_v1beta1_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.v1beta1.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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_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_v1beta1_featurestore_online_service_proto protoreflect.FileDescriptor 1081 1082 var file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_rawDesc = []byte{ 1083 0x0a, 0x41, 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, 0x62, 0x65, 0x74, 0x61, 1085 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x6f, 1086 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 1087 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1088 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 1089 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 1090 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 1091 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 1092 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 1093 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 1094 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 1095 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 1096 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x36, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 1097 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1098 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 1099 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 1100 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 1101 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 1102 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 1103 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 1104 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc7, 0x01, 1105 0x0a, 0x19, 0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 1106 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x65, 1107 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 1108 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 1109 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 1110 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 1111 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5b, 0x0a, 0x08, 0x70, 0x61, 1112 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 1113 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 1114 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 1115 0x72, 0x69, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 1116 0x73, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x70, 1117 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x22, 0xa9, 0x02, 0x0a, 0x19, 0x57, 0x72, 0x69, 0x74, 1118 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x50, 0x61, 1119 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 1120 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x65, 1121 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x79, 0x0a, 0x0e, 0x66, 0x65, 0x61, 0x74, 0x75, 1122 0x72, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 1123 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 1124 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 1125 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 1126 0x6c, 0x75, 0x65, 0x73, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x46, 0x65, 0x61, 0x74, 1127 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 1128 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 1129 0x65, 0x73, 0x1a, 0x6f, 0x0a, 0x12, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 1130 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 1131 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x43, 0x0a, 0x05, 0x76, 0x61, 1132 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1133 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 1134 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 1135 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 1136 0x02, 0x38, 0x01, 0x22, 0x1c, 0x0a, 0x1a, 0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 1137 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 1138 0x65, 0x22, 0xed, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 1139 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 1140 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 1141 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x61, 0x69, 0x70, 1142 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 1143 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 1144 0x65, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 1145 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 1146 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 1147 0x60, 0x0a, 0x10, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 1148 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1149 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 1150 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 1151 0x75, 0x72, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 1152 0x52, 0x0f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 1153 0x72, 0x22, 0x8a, 0x06, 0x0a, 0x19, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 1154 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 1155 0x59, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 1156 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 1157 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 1158 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 1159 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x64, 1160 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x66, 0x0a, 0x0b, 0x65, 0x6e, 1161 0x74, 0x69, 0x74, 0x79, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 1162 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 1163 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 1164 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 1165 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, 1166 0x74, 0x79, 0x56, 0x69, 0x65, 0x77, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x56, 0x69, 1167 0x65, 0x77, 0x1a, 0x23, 0x0a, 0x11, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x65, 0x73, 1168 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 1169 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x1a, 0xd3, 0x01, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 1170 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 1171 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x61, 0x69, 1172 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 1173 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 1174 0x70, 0x65, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x7d, 1175 0x0a, 0x13, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 1176 0x70, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 1177 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 1178 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 1179 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 1180 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 1181 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x12, 0x66, 0x65, 0x61, 0x74, 0x75, 1182 0x72, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x1a, 0xae, 0x02, 1183 0x0a, 0x0a, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1b, 0x0a, 0x09, 1184 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 1185 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x5e, 0x0a, 0x04, 0x64, 0x61, 0x74, 1186 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1187 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 1188 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 1189 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 1190 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x44, 1191 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xa2, 0x01, 0x0a, 0x04, 0x44, 0x61, 1192 0x74, 0x61, 0x12, 0x45, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 1193 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1194 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 1195 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 1196 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 1197 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1198 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 1199 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 1200 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x06, 1201 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf8, 1202 0x01, 0x0a, 0x21, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x61, 0x64, 1203 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 1204 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 1205 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 1206 0x26, 0x0a, 0x24, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 1207 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x74, 1208 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 1209 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 1210 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x65, 0x6e, 1211 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x73, 0x12, 0x60, 0x0a, 0x10, 0x66, 0x65, 0x61, 0x74, 0x75, 1212 0x72, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 1213 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1214 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 1215 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 1216 0x74, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 1217 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xab, 0x06, 0x0a, 0x0c, 0x46, 0x65, 1218 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 1219 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 1220 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x64, 1221 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 1222 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 1223 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 1224 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 1225 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 1226 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 1227 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x56, 0x0a, 0x10, 0x62, 0x6f, 0x6f, 0x6c, 1228 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 1229 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1230 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 1231 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, 1232 0x52, 0x0e, 0x62, 0x6f, 0x6f, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 1233 0x12, 0x5c, 0x0a, 0x12, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 1234 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 1235 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 1236 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 1237 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, 0x10, 0x64, 0x6f, 1238 0x75, 0x62, 0x6c, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x59, 1239 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x76, 0x61, 1240 0x6c, 0x75, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1241 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 1242 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x36, 1243 0x34, 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, 0x0f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x41, 1244 0x72, 0x72, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x5c, 0x0a, 0x12, 0x73, 0x74, 0x72, 1245 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 1246 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1247 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 1248 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 1249 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, 0x10, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 1250 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 1251 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 1252 0x62, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x51, 0x0a, 0x0c, 0x73, 0x74, 1253 0x72, 0x75, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 1254 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 1255 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 1256 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 1257 0x52, 0x0b, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x52, 0x0a, 1258 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 1259 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 1260 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 1261 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x4d, 1262 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 1263 0x61, 0x1a, 0x4b, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3f, 0x0a, 1264 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 1265 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 1266 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 1267 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x07, 1268 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x58, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x75, 0x63, 1269 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 1270 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1271 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1272 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x46, 1273 0x69, 0x65, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 1274 0x73, 0x22, 0x6b, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 1275 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 1276 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x76, 0x61, 0x6c, 1277 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1278 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 1279 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 1280 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x59, 1281 0x0a, 0x10, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 1282 0x73, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 1283 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1284 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 1285 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 1286 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x32, 0xab, 0x07, 0x0a, 0x20, 0x46, 0x65, 1287 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 1288 0x53, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 1289 0x02, 0x0a, 0x11, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 1290 0x6c, 0x75, 0x65, 0x73, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 1291 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 1292 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 1293 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 1294 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 1295 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 1296 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 1297 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x76, 0xda, 0x41, 0x0b, 1298 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 1299 0x62, 0x3a, 0x01, 0x2a, 0x22, 0x5d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 1300 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 1301 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 1302 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 1303 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 1304 0x7d, 0x3a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 1305 0x75, 0x65, 0x73, 0x12, 0x9f, 0x02, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 1306 0x67, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 1307 0x65, 0x73, 0x12, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1308 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 1309 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x65, 1310 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 1311 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1312 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1313 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 1314 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 1315 0x73, 0x65, 0x22, 0x7f, 0xda, 0x41, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 1316 0x70, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6b, 0x3a, 0x01, 0x2a, 0x22, 0x66, 0x2f, 0x76, 0x31, 1317 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 1318 0x70, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 1319 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 1320 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 1321 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 1322 0x6e, 0x67, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 1323 0x75, 0x65, 0x73, 0x30, 0x01, 0x12, 0x90, 0x02, 0x0a, 0x12, 0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 1324 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3a, 0x2e, 0x67, 1325 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 1326 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 1327 0x72, 0x69, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 1328 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1329 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 1330 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 1331 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 1332 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x80, 0x01, 0xda, 0x41, 0x14, 0x65, 0x6e, 0x74, 0x69, 0x74, 1333 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x82, 1334 0xd3, 0xe4, 0x93, 0x02, 0x63, 0x3a, 0x01, 0x2a, 0x22, 0x5e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 1335 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x3d, 1336 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 1337 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 1338 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 1339 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x77, 0x72, 0x69, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 1340 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x4d, 0xca, 0x41, 0x19, 0x61, 0x69, 0x70, 1341 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 1342 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 1343 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 1344 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 1345 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xf5, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 1346 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 1347 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 1348 0x1e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 1349 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 1350 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1351 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 1352 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 1353 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 1354 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1355 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1356 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 1357 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 1358 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 1359 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 1360 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 1361 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 1362 } 1363 1364 var ( 1365 file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_rawDescOnce sync.Once 1366 file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_rawDescData = file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_rawDesc 1367 ) 1368 1369 func file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_rawDescGZIP() []byte { 1370 file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_rawDescOnce.Do(func() { 1371 file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_rawDescData) 1372 }) 1373 return file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_rawDescData 1374 } 1375 1376 var file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_msgTypes = make([]protoimpl.MessageInfo, 16) 1377 var file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_goTypes = []any{ 1378 (*WriteFeatureValuesRequest)(nil), // 0: google.cloud.aiplatform.v1beta1.WriteFeatureValuesRequest 1379 (*WriteFeatureValuesPayload)(nil), // 1: google.cloud.aiplatform.v1beta1.WriteFeatureValuesPayload 1380 (*WriteFeatureValuesResponse)(nil), // 2: google.cloud.aiplatform.v1beta1.WriteFeatureValuesResponse 1381 (*ReadFeatureValuesRequest)(nil), // 3: google.cloud.aiplatform.v1beta1.ReadFeatureValuesRequest 1382 (*ReadFeatureValuesResponse)(nil), // 4: google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse 1383 (*StreamingReadFeatureValuesRequest)(nil), // 5: google.cloud.aiplatform.v1beta1.StreamingReadFeatureValuesRequest 1384 (*FeatureValue)(nil), // 6: google.cloud.aiplatform.v1beta1.FeatureValue 1385 (*StructValue)(nil), // 7: google.cloud.aiplatform.v1beta1.StructValue 1386 (*StructFieldValue)(nil), // 8: google.cloud.aiplatform.v1beta1.StructFieldValue 1387 (*FeatureValueList)(nil), // 9: google.cloud.aiplatform.v1beta1.FeatureValueList 1388 nil, // 10: google.cloud.aiplatform.v1beta1.WriteFeatureValuesPayload.FeatureValuesEntry 1389 (*ReadFeatureValuesResponse_FeatureDescriptor)(nil), // 11: google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse.FeatureDescriptor 1390 (*ReadFeatureValuesResponse_Header)(nil), // 12: google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse.Header 1391 (*ReadFeatureValuesResponse_EntityView)(nil), // 13: google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse.EntityView 1392 (*ReadFeatureValuesResponse_EntityView_Data)(nil), // 14: google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse.EntityView.Data 1393 (*FeatureValue_Metadata)(nil), // 15: google.cloud.aiplatform.v1beta1.FeatureValue.Metadata 1394 (*FeatureSelector)(nil), // 16: google.cloud.aiplatform.v1beta1.FeatureSelector 1395 (*BoolArray)(nil), // 17: google.cloud.aiplatform.v1beta1.BoolArray 1396 (*DoubleArray)(nil), // 18: google.cloud.aiplatform.v1beta1.DoubleArray 1397 (*Int64Array)(nil), // 19: google.cloud.aiplatform.v1beta1.Int64Array 1398 (*StringArray)(nil), // 20: google.cloud.aiplatform.v1beta1.StringArray 1399 (*timestamppb.Timestamp)(nil), // 21: google.protobuf.Timestamp 1400 } 1401 var file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_depIdxs = []int32{ 1402 1, // 0: google.cloud.aiplatform.v1beta1.WriteFeatureValuesRequest.payloads:type_name -> google.cloud.aiplatform.v1beta1.WriteFeatureValuesPayload 1403 10, // 1: google.cloud.aiplatform.v1beta1.WriteFeatureValuesPayload.feature_values:type_name -> google.cloud.aiplatform.v1beta1.WriteFeatureValuesPayload.FeatureValuesEntry 1404 16, // 2: google.cloud.aiplatform.v1beta1.ReadFeatureValuesRequest.feature_selector:type_name -> google.cloud.aiplatform.v1beta1.FeatureSelector 1405 12, // 3: google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse.header:type_name -> google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse.Header 1406 13, // 4: google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse.entity_view:type_name -> google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse.EntityView 1407 16, // 5: google.cloud.aiplatform.v1beta1.StreamingReadFeatureValuesRequest.feature_selector:type_name -> google.cloud.aiplatform.v1beta1.FeatureSelector 1408 17, // 6: google.cloud.aiplatform.v1beta1.FeatureValue.bool_array_value:type_name -> google.cloud.aiplatform.v1beta1.BoolArray 1409 18, // 7: google.cloud.aiplatform.v1beta1.FeatureValue.double_array_value:type_name -> google.cloud.aiplatform.v1beta1.DoubleArray 1410 19, // 8: google.cloud.aiplatform.v1beta1.FeatureValue.int64_array_value:type_name -> google.cloud.aiplatform.v1beta1.Int64Array 1411 20, // 9: google.cloud.aiplatform.v1beta1.FeatureValue.string_array_value:type_name -> google.cloud.aiplatform.v1beta1.StringArray 1412 7, // 10: google.cloud.aiplatform.v1beta1.FeatureValue.struct_value:type_name -> google.cloud.aiplatform.v1beta1.StructValue 1413 15, // 11: google.cloud.aiplatform.v1beta1.FeatureValue.metadata:type_name -> google.cloud.aiplatform.v1beta1.FeatureValue.Metadata 1414 8, // 12: google.cloud.aiplatform.v1beta1.StructValue.values:type_name -> google.cloud.aiplatform.v1beta1.StructFieldValue 1415 6, // 13: google.cloud.aiplatform.v1beta1.StructFieldValue.value:type_name -> google.cloud.aiplatform.v1beta1.FeatureValue 1416 6, // 14: google.cloud.aiplatform.v1beta1.FeatureValueList.values:type_name -> google.cloud.aiplatform.v1beta1.FeatureValue 1417 6, // 15: google.cloud.aiplatform.v1beta1.WriteFeatureValuesPayload.FeatureValuesEntry.value:type_name -> google.cloud.aiplatform.v1beta1.FeatureValue 1418 11, // 16: google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse.Header.feature_descriptors:type_name -> google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse.FeatureDescriptor 1419 14, // 17: google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse.EntityView.data:type_name -> google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse.EntityView.Data 1420 6, // 18: google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse.EntityView.Data.value:type_name -> google.cloud.aiplatform.v1beta1.FeatureValue 1421 9, // 19: google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse.EntityView.Data.values:type_name -> google.cloud.aiplatform.v1beta1.FeatureValueList 1422 21, // 20: google.cloud.aiplatform.v1beta1.FeatureValue.Metadata.generate_time:type_name -> google.protobuf.Timestamp 1423 3, // 21: google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.ReadFeatureValues:input_type -> google.cloud.aiplatform.v1beta1.ReadFeatureValuesRequest 1424 5, // 22: google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.StreamingReadFeatureValues:input_type -> google.cloud.aiplatform.v1beta1.StreamingReadFeatureValuesRequest 1425 0, // 23: google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.WriteFeatureValues:input_type -> google.cloud.aiplatform.v1beta1.WriteFeatureValuesRequest 1426 4, // 24: google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.ReadFeatureValues:output_type -> google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse 1427 4, // 25: google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.StreamingReadFeatureValues:output_type -> google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse 1428 2, // 26: google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.WriteFeatureValues:output_type -> google.cloud.aiplatform.v1beta1.WriteFeatureValuesResponse 1429 24, // [24:27] is the sub-list for method output_type 1430 21, // [21:24] is the sub-list for method input_type 1431 21, // [21:21] is the sub-list for extension type_name 1432 21, // [21:21] is the sub-list for extension extendee 1433 0, // [0:21] is the sub-list for field type_name 1434 } 1435 1436 func init() { file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_init() } 1437 func file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_init() { 1438 if File_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto != nil { 1439 return 1440 } 1441 file_google_cloud_aiplatform_v1beta1_feature_selector_proto_init() 1442 file_google_cloud_aiplatform_v1beta1_types_proto_init() 1443 file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_msgTypes[6].OneofWrappers = []any{ 1444 (*FeatureValue_BoolValue)(nil), 1445 (*FeatureValue_DoubleValue)(nil), 1446 (*FeatureValue_Int64Value)(nil), 1447 (*FeatureValue_StringValue)(nil), 1448 (*FeatureValue_BoolArrayValue)(nil), 1449 (*FeatureValue_DoubleArrayValue)(nil), 1450 (*FeatureValue_Int64ArrayValue)(nil), 1451 (*FeatureValue_StringArrayValue)(nil), 1452 (*FeatureValue_BytesValue)(nil), 1453 (*FeatureValue_StructValue)(nil), 1454 } 1455 file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_msgTypes[14].OneofWrappers = []any{ 1456 (*ReadFeatureValuesResponse_EntityView_Data_Value)(nil), 1457 (*ReadFeatureValuesResponse_EntityView_Data_Values)(nil), 1458 } 1459 type x struct{} 1460 out := protoimpl.TypeBuilder{ 1461 File: protoimpl.DescBuilder{ 1462 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1463 RawDescriptor: file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_rawDesc, 1464 NumEnums: 0, 1465 NumMessages: 16, 1466 NumExtensions: 0, 1467 NumServices: 1, 1468 }, 1469 GoTypes: file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_goTypes, 1470 DependencyIndexes: file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_depIdxs, 1471 MessageInfos: file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_msgTypes, 1472 }.Build() 1473 File_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto = out.File 1474 file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_rawDesc = nil 1475 file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_goTypes = nil 1476 file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_depIdxs = nil 1477 }