cloud.google.com/go/aiplatform@v1.106.0/apiv1beta1/aiplatformpb/featurestore_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_service.proto 20 21 package aiplatformpb 22 23 import ( 24 longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" 25 _ "google.golang.org/genproto/googleapis/api/annotations" 26 interval "google.golang.org/genproto/googleapis/type/interval" 27 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 28 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 29 _ "google.golang.org/protobuf/types/known/emptypb" 30 fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" 31 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 32 reflect "reflect" 33 sync "sync" 34 ) 35 36 const ( 37 // Verify that this generated code is sufficiently up-to-date. 38 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 39 // Verify that runtime/protoimpl is sufficiently up-to-date. 40 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 41 ) 42 43 // Request message for 44 // [FeaturestoreService.CreateFeaturestore][google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateFeaturestore]. 45 type CreateFeaturestoreRequest struct { 46 state protoimpl.MessageState 47 sizeCache protoimpl.SizeCache 48 unknownFields protoimpl.UnknownFields 49 50 // Required. The resource name of the Location to create Featurestores. 51 // Format: 52 // `projects/{project}/locations/{location}` 53 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 54 // Required. The Featurestore to create. 55 Featurestore *Featurestore `protobuf:"bytes,2,opt,name=featurestore,proto3" json:"featurestore,omitempty"` 56 // Required. The ID to use for this Featurestore, which will become the final 57 // component of the Featurestore's resource name. 58 // 59 // This value may be up to 60 characters, and valid characters are 60 // `[a-z0-9_]`. The first character cannot be a number. 61 // 62 // The value must be unique within the project and location. 63 FeaturestoreId string `protobuf:"bytes,3,opt,name=featurestore_id,json=featurestoreId,proto3" json:"featurestore_id,omitempty"` 64 } 65 66 func (x *CreateFeaturestoreRequest) Reset() { 67 *x = CreateFeaturestoreRequest{} 68 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[0] 69 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 70 ms.StoreMessageInfo(mi) 71 } 72 73 func (x *CreateFeaturestoreRequest) String() string { 74 return protoimpl.X.MessageStringOf(x) 75 } 76 77 func (*CreateFeaturestoreRequest) ProtoMessage() {} 78 79 func (x *CreateFeaturestoreRequest) ProtoReflect() protoreflect.Message { 80 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[0] 81 if x != nil { 82 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 83 if ms.LoadMessageInfo() == nil { 84 ms.StoreMessageInfo(mi) 85 } 86 return ms 87 } 88 return mi.MessageOf(x) 89 } 90 91 // Deprecated: Use CreateFeaturestoreRequest.ProtoReflect.Descriptor instead. 92 func (*CreateFeaturestoreRequest) Descriptor() ([]byte, []int) { 93 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{0} 94 } 95 96 func (x *CreateFeaturestoreRequest) GetParent() string { 97 if x != nil { 98 return x.Parent 99 } 100 return "" 101 } 102 103 func (x *CreateFeaturestoreRequest) GetFeaturestore() *Featurestore { 104 if x != nil { 105 return x.Featurestore 106 } 107 return nil 108 } 109 110 func (x *CreateFeaturestoreRequest) GetFeaturestoreId() string { 111 if x != nil { 112 return x.FeaturestoreId 113 } 114 return "" 115 } 116 117 // Request message for 118 // [FeaturestoreService.GetFeaturestore][google.cloud.aiplatform.v1beta1.FeaturestoreService.GetFeaturestore]. 119 type GetFeaturestoreRequest struct { 120 state protoimpl.MessageState 121 sizeCache protoimpl.SizeCache 122 unknownFields protoimpl.UnknownFields 123 124 // Required. The name of the Featurestore resource. 125 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 126 } 127 128 func (x *GetFeaturestoreRequest) Reset() { 129 *x = GetFeaturestoreRequest{} 130 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[1] 131 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 132 ms.StoreMessageInfo(mi) 133 } 134 135 func (x *GetFeaturestoreRequest) String() string { 136 return protoimpl.X.MessageStringOf(x) 137 } 138 139 func (*GetFeaturestoreRequest) ProtoMessage() {} 140 141 func (x *GetFeaturestoreRequest) ProtoReflect() protoreflect.Message { 142 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[1] 143 if x != nil { 144 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 145 if ms.LoadMessageInfo() == nil { 146 ms.StoreMessageInfo(mi) 147 } 148 return ms 149 } 150 return mi.MessageOf(x) 151 } 152 153 // Deprecated: Use GetFeaturestoreRequest.ProtoReflect.Descriptor instead. 154 func (*GetFeaturestoreRequest) Descriptor() ([]byte, []int) { 155 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{1} 156 } 157 158 func (x *GetFeaturestoreRequest) GetName() string { 159 if x != nil { 160 return x.Name 161 } 162 return "" 163 } 164 165 // Request message for 166 // [FeaturestoreService.ListFeaturestores][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores]. 167 type ListFeaturestoresRequest struct { 168 state protoimpl.MessageState 169 sizeCache protoimpl.SizeCache 170 unknownFields protoimpl.UnknownFields 171 172 // Required. The resource name of the Location to list Featurestores. 173 // Format: 174 // `projects/{project}/locations/{location}` 175 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 176 // Lists the featurestores that match the filter expression. The following 177 // fields are supported: 178 // 179 // * `create_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. 180 // Values must be 181 // 182 // in RFC 3339 format. 183 // 184 // * `update_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. 185 // Values must be 186 // 187 // in RFC 3339 format. 188 // 189 // * `online_serving_config.fixed_node_count`: Supports `=`, `!=`, `<`, `>`, 190 // `<=`, and `>=` comparisons. 191 // * `labels`: Supports key-value equality and key presence. 192 // 193 // Examples: 194 // 195 // - `create_time > "2020-01-01" OR update_time > "2020-01-01"` 196 // Featurestores created or updated after 2020-01-01. 197 // - `labels.env = "prod"` 198 // Featurestores with label "env" set to "prod". 199 Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` 200 // The maximum number of Featurestores to return. The service may return fewer 201 // than this value. If unspecified, at most 100 Featurestores will be 202 // returned. The maximum value is 100; any value greater than 100 will be 203 // coerced to 100. 204 PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 205 // A page token, received from a previous 206 // [FeaturestoreService.ListFeaturestores][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores] 207 // call. Provide this to retrieve the subsequent page. 208 // 209 // When paginating, all other parameters provided to 210 // [FeaturestoreService.ListFeaturestores][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores] 211 // must match the call that provided the page token. 212 PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 213 // A comma-separated list of fields to order by, sorted in ascending order. 214 // Use "desc" after a field name for descending. 215 // Supported Fields: 216 // 217 // - `create_time` 218 // - `update_time` 219 // - `online_serving_config.fixed_node_count` 220 OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` 221 // Mask specifying which fields to read. 222 ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,6,opt,name=read_mask,json=readMask,proto3" json:"read_mask,omitempty"` 223 } 224 225 func (x *ListFeaturestoresRequest) Reset() { 226 *x = ListFeaturestoresRequest{} 227 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[2] 228 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 229 ms.StoreMessageInfo(mi) 230 } 231 232 func (x *ListFeaturestoresRequest) String() string { 233 return protoimpl.X.MessageStringOf(x) 234 } 235 236 func (*ListFeaturestoresRequest) ProtoMessage() {} 237 238 func (x *ListFeaturestoresRequest) ProtoReflect() protoreflect.Message { 239 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[2] 240 if x != nil { 241 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 242 if ms.LoadMessageInfo() == nil { 243 ms.StoreMessageInfo(mi) 244 } 245 return ms 246 } 247 return mi.MessageOf(x) 248 } 249 250 // Deprecated: Use ListFeaturestoresRequest.ProtoReflect.Descriptor instead. 251 func (*ListFeaturestoresRequest) Descriptor() ([]byte, []int) { 252 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{2} 253 } 254 255 func (x *ListFeaturestoresRequest) GetParent() string { 256 if x != nil { 257 return x.Parent 258 } 259 return "" 260 } 261 262 func (x *ListFeaturestoresRequest) GetFilter() string { 263 if x != nil { 264 return x.Filter 265 } 266 return "" 267 } 268 269 func (x *ListFeaturestoresRequest) GetPageSize() int32 { 270 if x != nil { 271 return x.PageSize 272 } 273 return 0 274 } 275 276 func (x *ListFeaturestoresRequest) GetPageToken() string { 277 if x != nil { 278 return x.PageToken 279 } 280 return "" 281 } 282 283 func (x *ListFeaturestoresRequest) GetOrderBy() string { 284 if x != nil { 285 return x.OrderBy 286 } 287 return "" 288 } 289 290 func (x *ListFeaturestoresRequest) GetReadMask() *fieldmaskpb.FieldMask { 291 if x != nil { 292 return x.ReadMask 293 } 294 return nil 295 } 296 297 // Response message for 298 // [FeaturestoreService.ListFeaturestores][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores]. 299 type ListFeaturestoresResponse struct { 300 state protoimpl.MessageState 301 sizeCache protoimpl.SizeCache 302 unknownFields protoimpl.UnknownFields 303 304 // The Featurestores matching the request. 305 Featurestores []*Featurestore `protobuf:"bytes,1,rep,name=featurestores,proto3" json:"featurestores,omitempty"` 306 // A token, which can be sent as 307 // [ListFeaturestoresRequest.page_token][google.cloud.aiplatform.v1beta1.ListFeaturestoresRequest.page_token] 308 // to retrieve the next page. If this field is omitted, there are no 309 // subsequent pages. 310 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 311 } 312 313 func (x *ListFeaturestoresResponse) Reset() { 314 *x = ListFeaturestoresResponse{} 315 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[3] 316 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 317 ms.StoreMessageInfo(mi) 318 } 319 320 func (x *ListFeaturestoresResponse) String() string { 321 return protoimpl.X.MessageStringOf(x) 322 } 323 324 func (*ListFeaturestoresResponse) ProtoMessage() {} 325 326 func (x *ListFeaturestoresResponse) ProtoReflect() protoreflect.Message { 327 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[3] 328 if x != nil { 329 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 330 if ms.LoadMessageInfo() == nil { 331 ms.StoreMessageInfo(mi) 332 } 333 return ms 334 } 335 return mi.MessageOf(x) 336 } 337 338 // Deprecated: Use ListFeaturestoresResponse.ProtoReflect.Descriptor instead. 339 func (*ListFeaturestoresResponse) Descriptor() ([]byte, []int) { 340 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{3} 341 } 342 343 func (x *ListFeaturestoresResponse) GetFeaturestores() []*Featurestore { 344 if x != nil { 345 return x.Featurestores 346 } 347 return nil 348 } 349 350 func (x *ListFeaturestoresResponse) GetNextPageToken() string { 351 if x != nil { 352 return x.NextPageToken 353 } 354 return "" 355 } 356 357 // Request message for 358 // [FeaturestoreService.UpdateFeaturestore][google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateFeaturestore]. 359 type UpdateFeaturestoreRequest struct { 360 state protoimpl.MessageState 361 sizeCache protoimpl.SizeCache 362 unknownFields protoimpl.UnknownFields 363 364 // Required. The Featurestore's `name` field is used to identify the 365 // Featurestore to be updated. Format: 366 // `projects/{project}/locations/{location}/featurestores/{featurestore}` 367 Featurestore *Featurestore `protobuf:"bytes,1,opt,name=featurestore,proto3" json:"featurestore,omitempty"` 368 // Field mask is used to specify the fields to be overwritten in the 369 // Featurestore resource by the update. 370 // The fields specified in the update_mask are relative to the resource, not 371 // the full request. A field will be overwritten if it is in the mask. If the 372 // user does not provide a mask then only the non-empty fields present in the 373 // request will be overwritten. Set the update_mask to `*` to override all 374 // fields. 375 // 376 // Updatable fields: 377 // 378 // - `labels` 379 // - `online_serving_config.fixed_node_count` 380 // - `online_serving_config.scaling` 381 // - `online_storage_ttl_days` 382 UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 383 } 384 385 func (x *UpdateFeaturestoreRequest) Reset() { 386 *x = UpdateFeaturestoreRequest{} 387 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[4] 388 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 389 ms.StoreMessageInfo(mi) 390 } 391 392 func (x *UpdateFeaturestoreRequest) String() string { 393 return protoimpl.X.MessageStringOf(x) 394 } 395 396 func (*UpdateFeaturestoreRequest) ProtoMessage() {} 397 398 func (x *UpdateFeaturestoreRequest) ProtoReflect() protoreflect.Message { 399 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[4] 400 if x != nil { 401 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 402 if ms.LoadMessageInfo() == nil { 403 ms.StoreMessageInfo(mi) 404 } 405 return ms 406 } 407 return mi.MessageOf(x) 408 } 409 410 // Deprecated: Use UpdateFeaturestoreRequest.ProtoReflect.Descriptor instead. 411 func (*UpdateFeaturestoreRequest) Descriptor() ([]byte, []int) { 412 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{4} 413 } 414 415 func (x *UpdateFeaturestoreRequest) GetFeaturestore() *Featurestore { 416 if x != nil { 417 return x.Featurestore 418 } 419 return nil 420 } 421 422 func (x *UpdateFeaturestoreRequest) GetUpdateMask() *fieldmaskpb.FieldMask { 423 if x != nil { 424 return x.UpdateMask 425 } 426 return nil 427 } 428 429 // Request message for 430 // [FeaturestoreService.DeleteFeaturestore][google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeaturestore]. 431 type DeleteFeaturestoreRequest struct { 432 state protoimpl.MessageState 433 sizeCache protoimpl.SizeCache 434 unknownFields protoimpl.UnknownFields 435 436 // Required. The name of the Featurestore to be deleted. 437 // Format: 438 // `projects/{project}/locations/{location}/featurestores/{featurestore}` 439 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 440 // If set to true, any EntityTypes and Features for this Featurestore will 441 // also be deleted. (Otherwise, the request will only work if the Featurestore 442 // has no EntityTypes.) 443 Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` 444 } 445 446 func (x *DeleteFeaturestoreRequest) Reset() { 447 *x = DeleteFeaturestoreRequest{} 448 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[5] 449 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 450 ms.StoreMessageInfo(mi) 451 } 452 453 func (x *DeleteFeaturestoreRequest) String() string { 454 return protoimpl.X.MessageStringOf(x) 455 } 456 457 func (*DeleteFeaturestoreRequest) ProtoMessage() {} 458 459 func (x *DeleteFeaturestoreRequest) ProtoReflect() protoreflect.Message { 460 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[5] 461 if x != nil { 462 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 463 if ms.LoadMessageInfo() == nil { 464 ms.StoreMessageInfo(mi) 465 } 466 return ms 467 } 468 return mi.MessageOf(x) 469 } 470 471 // Deprecated: Use DeleteFeaturestoreRequest.ProtoReflect.Descriptor instead. 472 func (*DeleteFeaturestoreRequest) Descriptor() ([]byte, []int) { 473 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{5} 474 } 475 476 func (x *DeleteFeaturestoreRequest) GetName() string { 477 if x != nil { 478 return x.Name 479 } 480 return "" 481 } 482 483 func (x *DeleteFeaturestoreRequest) GetForce() bool { 484 if x != nil { 485 return x.Force 486 } 487 return false 488 } 489 490 // Request message for 491 // [FeaturestoreService.ImportFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.ImportFeatureValues]. 492 type ImportFeatureValuesRequest struct { 493 state protoimpl.MessageState 494 sizeCache protoimpl.SizeCache 495 unknownFields protoimpl.UnknownFields 496 497 // Details about the source data, including the location of the storage and 498 // the format. 499 // 500 // Types that are assignable to Source: 501 // 502 // *ImportFeatureValuesRequest_AvroSource 503 // *ImportFeatureValuesRequest_BigquerySource 504 // *ImportFeatureValuesRequest_CsvSource 505 Source isImportFeatureValuesRequest_Source `protobuf_oneof:"source"` 506 // Source of Feature timestamp for all Feature values of each entity. 507 // Timestamps must be millisecond-aligned. 508 // 509 // Types that are assignable to FeatureTimeSource: 510 // 511 // *ImportFeatureValuesRequest_FeatureTimeField 512 // *ImportFeatureValuesRequest_FeatureTime 513 FeatureTimeSource isImportFeatureValuesRequest_FeatureTimeSource `protobuf_oneof:"feature_time_source"` 514 // Required. The resource name of the EntityType grouping the Features for 515 // which values are being imported. Format: 516 // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}` 517 EntityType string `protobuf:"bytes,1,opt,name=entity_type,json=entityType,proto3" json:"entity_type,omitempty"` 518 // Source column that holds entity IDs. If not provided, entity IDs are 519 // extracted from the column named entity_id. 520 EntityIdField string `protobuf:"bytes,5,opt,name=entity_id_field,json=entityIdField,proto3" json:"entity_id_field,omitempty"` 521 // Required. Specifications defining which Feature values to import from the 522 // entity. The request fails if no feature_specs are provided, and having 523 // multiple feature_specs for one Feature is not allowed. 524 FeatureSpecs []*ImportFeatureValuesRequest_FeatureSpec `protobuf:"bytes,8,rep,name=feature_specs,json=featureSpecs,proto3" json:"feature_specs,omitempty"` 525 // If set, data will not be imported for online serving. This 526 // is typically used for backfilling, where Feature generation timestamps are 527 // not in the timestamp range needed for online serving. 528 DisableOnlineServing bool `protobuf:"varint,9,opt,name=disable_online_serving,json=disableOnlineServing,proto3" json:"disable_online_serving,omitempty"` 529 // Specifies the number of workers that are used to write data to the 530 // Featurestore. Consider the online serving capacity that you require to 531 // achieve the desired import throughput without interfering with online 532 // serving. The value must be positive, and less than or equal to 100. 533 // If not set, defaults to using 1 worker. The low count ensures minimal 534 // impact on online serving performance. 535 WorkerCount int32 `protobuf:"varint,11,opt,name=worker_count,json=workerCount,proto3" json:"worker_count,omitempty"` 536 // If true, API doesn't start ingestion analysis pipeline. 537 DisableIngestionAnalysis bool `protobuf:"varint,12,opt,name=disable_ingestion_analysis,json=disableIngestionAnalysis,proto3" json:"disable_ingestion_analysis,omitempty"` 538 } 539 540 func (x *ImportFeatureValuesRequest) Reset() { 541 *x = ImportFeatureValuesRequest{} 542 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[6] 543 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 544 ms.StoreMessageInfo(mi) 545 } 546 547 func (x *ImportFeatureValuesRequest) String() string { 548 return protoimpl.X.MessageStringOf(x) 549 } 550 551 func (*ImportFeatureValuesRequest) ProtoMessage() {} 552 553 func (x *ImportFeatureValuesRequest) ProtoReflect() protoreflect.Message { 554 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[6] 555 if x != nil { 556 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 557 if ms.LoadMessageInfo() == nil { 558 ms.StoreMessageInfo(mi) 559 } 560 return ms 561 } 562 return mi.MessageOf(x) 563 } 564 565 // Deprecated: Use ImportFeatureValuesRequest.ProtoReflect.Descriptor instead. 566 func (*ImportFeatureValuesRequest) Descriptor() ([]byte, []int) { 567 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{6} 568 } 569 570 func (m *ImportFeatureValuesRequest) GetSource() isImportFeatureValuesRequest_Source { 571 if m != nil { 572 return m.Source 573 } 574 return nil 575 } 576 577 func (x *ImportFeatureValuesRequest) GetAvroSource() *AvroSource { 578 if x, ok := x.GetSource().(*ImportFeatureValuesRequest_AvroSource); ok { 579 return x.AvroSource 580 } 581 return nil 582 } 583 584 func (x *ImportFeatureValuesRequest) GetBigquerySource() *BigQuerySource { 585 if x, ok := x.GetSource().(*ImportFeatureValuesRequest_BigquerySource); ok { 586 return x.BigquerySource 587 } 588 return nil 589 } 590 591 func (x *ImportFeatureValuesRequest) GetCsvSource() *CsvSource { 592 if x, ok := x.GetSource().(*ImportFeatureValuesRequest_CsvSource); ok { 593 return x.CsvSource 594 } 595 return nil 596 } 597 598 func (m *ImportFeatureValuesRequest) GetFeatureTimeSource() isImportFeatureValuesRequest_FeatureTimeSource { 599 if m != nil { 600 return m.FeatureTimeSource 601 } 602 return nil 603 } 604 605 func (x *ImportFeatureValuesRequest) GetFeatureTimeField() string { 606 if x, ok := x.GetFeatureTimeSource().(*ImportFeatureValuesRequest_FeatureTimeField); ok { 607 return x.FeatureTimeField 608 } 609 return "" 610 } 611 612 func (x *ImportFeatureValuesRequest) GetFeatureTime() *timestamppb.Timestamp { 613 if x, ok := x.GetFeatureTimeSource().(*ImportFeatureValuesRequest_FeatureTime); ok { 614 return x.FeatureTime 615 } 616 return nil 617 } 618 619 func (x *ImportFeatureValuesRequest) GetEntityType() string { 620 if x != nil { 621 return x.EntityType 622 } 623 return "" 624 } 625 626 func (x *ImportFeatureValuesRequest) GetEntityIdField() string { 627 if x != nil { 628 return x.EntityIdField 629 } 630 return "" 631 } 632 633 func (x *ImportFeatureValuesRequest) GetFeatureSpecs() []*ImportFeatureValuesRequest_FeatureSpec { 634 if x != nil { 635 return x.FeatureSpecs 636 } 637 return nil 638 } 639 640 func (x *ImportFeatureValuesRequest) GetDisableOnlineServing() bool { 641 if x != nil { 642 return x.DisableOnlineServing 643 } 644 return false 645 } 646 647 func (x *ImportFeatureValuesRequest) GetWorkerCount() int32 { 648 if x != nil { 649 return x.WorkerCount 650 } 651 return 0 652 } 653 654 func (x *ImportFeatureValuesRequest) GetDisableIngestionAnalysis() bool { 655 if x != nil { 656 return x.DisableIngestionAnalysis 657 } 658 return false 659 } 660 661 type isImportFeatureValuesRequest_Source interface { 662 isImportFeatureValuesRequest_Source() 663 } 664 665 type ImportFeatureValuesRequest_AvroSource struct { 666 AvroSource *AvroSource `protobuf:"bytes,2,opt,name=avro_source,json=avroSource,proto3,oneof"` 667 } 668 669 type ImportFeatureValuesRequest_BigquerySource struct { 670 BigquerySource *BigQuerySource `protobuf:"bytes,3,opt,name=bigquery_source,json=bigquerySource,proto3,oneof"` 671 } 672 673 type ImportFeatureValuesRequest_CsvSource struct { 674 CsvSource *CsvSource `protobuf:"bytes,4,opt,name=csv_source,json=csvSource,proto3,oneof"` 675 } 676 677 func (*ImportFeatureValuesRequest_AvroSource) isImportFeatureValuesRequest_Source() {} 678 679 func (*ImportFeatureValuesRequest_BigquerySource) isImportFeatureValuesRequest_Source() {} 680 681 func (*ImportFeatureValuesRequest_CsvSource) isImportFeatureValuesRequest_Source() {} 682 683 type isImportFeatureValuesRequest_FeatureTimeSource interface { 684 isImportFeatureValuesRequest_FeatureTimeSource() 685 } 686 687 type ImportFeatureValuesRequest_FeatureTimeField struct { 688 // Source column that holds the Feature timestamp for all Feature 689 // values in each entity. 690 FeatureTimeField string `protobuf:"bytes,6,opt,name=feature_time_field,json=featureTimeField,proto3,oneof"` 691 } 692 693 type ImportFeatureValuesRequest_FeatureTime struct { 694 // Single Feature timestamp for all entities being imported. The 695 // timestamp must not have higher than millisecond precision. 696 FeatureTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=feature_time,json=featureTime,proto3,oneof"` 697 } 698 699 func (*ImportFeatureValuesRequest_FeatureTimeField) isImportFeatureValuesRequest_FeatureTimeSource() { 700 } 701 702 func (*ImportFeatureValuesRequest_FeatureTime) isImportFeatureValuesRequest_FeatureTimeSource() {} 703 704 // Response message for 705 // [FeaturestoreService.ImportFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.ImportFeatureValues]. 706 type ImportFeatureValuesResponse struct { 707 state protoimpl.MessageState 708 sizeCache protoimpl.SizeCache 709 unknownFields protoimpl.UnknownFields 710 711 // Number of entities that have been imported by the operation. 712 ImportedEntityCount int64 `protobuf:"varint,1,opt,name=imported_entity_count,json=importedEntityCount,proto3" json:"imported_entity_count,omitempty"` 713 // Number of Feature values that have been imported by the operation. 714 ImportedFeatureValueCount int64 `protobuf:"varint,2,opt,name=imported_feature_value_count,json=importedFeatureValueCount,proto3" json:"imported_feature_value_count,omitempty"` 715 // The number of rows in input source that weren't imported due to either 716 // * Not having any featureValues. 717 // * Having a null entityId. 718 // * Having a null timestamp. 719 // * Not being parsable (applicable for CSV sources). 720 InvalidRowCount int64 `protobuf:"varint,6,opt,name=invalid_row_count,json=invalidRowCount,proto3" json:"invalid_row_count,omitempty"` 721 // The number rows that weren't ingested due to having feature timestamps 722 // outside the retention boundary. 723 TimestampOutsideRetentionRowsCount int64 `protobuf:"varint,4,opt,name=timestamp_outside_retention_rows_count,json=timestampOutsideRetentionRowsCount,proto3" json:"timestamp_outside_retention_rows_count,omitempty"` 724 } 725 726 func (x *ImportFeatureValuesResponse) Reset() { 727 *x = ImportFeatureValuesResponse{} 728 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[7] 729 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 730 ms.StoreMessageInfo(mi) 731 } 732 733 func (x *ImportFeatureValuesResponse) String() string { 734 return protoimpl.X.MessageStringOf(x) 735 } 736 737 func (*ImportFeatureValuesResponse) ProtoMessage() {} 738 739 func (x *ImportFeatureValuesResponse) ProtoReflect() protoreflect.Message { 740 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[7] 741 if x != nil { 742 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 743 if ms.LoadMessageInfo() == nil { 744 ms.StoreMessageInfo(mi) 745 } 746 return ms 747 } 748 return mi.MessageOf(x) 749 } 750 751 // Deprecated: Use ImportFeatureValuesResponse.ProtoReflect.Descriptor instead. 752 func (*ImportFeatureValuesResponse) Descriptor() ([]byte, []int) { 753 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{7} 754 } 755 756 func (x *ImportFeatureValuesResponse) GetImportedEntityCount() int64 { 757 if x != nil { 758 return x.ImportedEntityCount 759 } 760 return 0 761 } 762 763 func (x *ImportFeatureValuesResponse) GetImportedFeatureValueCount() int64 { 764 if x != nil { 765 return x.ImportedFeatureValueCount 766 } 767 return 0 768 } 769 770 func (x *ImportFeatureValuesResponse) GetInvalidRowCount() int64 { 771 if x != nil { 772 return x.InvalidRowCount 773 } 774 return 0 775 } 776 777 func (x *ImportFeatureValuesResponse) GetTimestampOutsideRetentionRowsCount() int64 { 778 if x != nil { 779 return x.TimestampOutsideRetentionRowsCount 780 } 781 return 0 782 } 783 784 // Request message for 785 // [FeaturestoreService.BatchReadFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchReadFeatureValues]. 786 type BatchReadFeatureValuesRequest struct { 787 state protoimpl.MessageState 788 sizeCache protoimpl.SizeCache 789 unknownFields protoimpl.UnknownFields 790 791 // Types that are assignable to ReadOption: 792 // 793 // *BatchReadFeatureValuesRequest_CsvReadInstances 794 // *BatchReadFeatureValuesRequest_BigqueryReadInstances 795 ReadOption isBatchReadFeatureValuesRequest_ReadOption `protobuf_oneof:"read_option"` 796 // Required. The resource name of the Featurestore from which to query Feature 797 // values. Format: 798 // `projects/{project}/locations/{location}/featurestores/{featurestore}` 799 Featurestore string `protobuf:"bytes,1,opt,name=featurestore,proto3" json:"featurestore,omitempty"` 800 // Required. Specifies output location and format. 801 Destination *FeatureValueDestination `protobuf:"bytes,4,opt,name=destination,proto3" json:"destination,omitempty"` 802 // When not empty, the specified fields in the *_read_instances source will be 803 // joined as-is in the output, in addition to those fields from the 804 // Featurestore Entity. 805 // 806 // For BigQuery source, the type of the pass-through values will be 807 // automatically inferred. For CSV source, the pass-through values will be 808 // passed as opaque bytes. 809 PassThroughFields []*BatchReadFeatureValuesRequest_PassThroughField `protobuf:"bytes,8,rep,name=pass_through_fields,json=passThroughFields,proto3" json:"pass_through_fields,omitempty"` 810 // Required. Specifies EntityType grouping Features to read values of and 811 // settings. 812 EntityTypeSpecs []*BatchReadFeatureValuesRequest_EntityTypeSpec `protobuf:"bytes,7,rep,name=entity_type_specs,json=entityTypeSpecs,proto3" json:"entity_type_specs,omitempty"` 813 // Optional. Excludes Feature values with feature generation timestamp before 814 // this timestamp. If not set, retrieve oldest values kept in Feature Store. 815 // Timestamp, if present, must not have higher than millisecond precision. 816 StartTime *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 817 } 818 819 func (x *BatchReadFeatureValuesRequest) Reset() { 820 *x = BatchReadFeatureValuesRequest{} 821 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[8] 822 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 823 ms.StoreMessageInfo(mi) 824 } 825 826 func (x *BatchReadFeatureValuesRequest) String() string { 827 return protoimpl.X.MessageStringOf(x) 828 } 829 830 func (*BatchReadFeatureValuesRequest) ProtoMessage() {} 831 832 func (x *BatchReadFeatureValuesRequest) ProtoReflect() protoreflect.Message { 833 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[8] 834 if x != nil { 835 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 836 if ms.LoadMessageInfo() == nil { 837 ms.StoreMessageInfo(mi) 838 } 839 return ms 840 } 841 return mi.MessageOf(x) 842 } 843 844 // Deprecated: Use BatchReadFeatureValuesRequest.ProtoReflect.Descriptor instead. 845 func (*BatchReadFeatureValuesRequest) Descriptor() ([]byte, []int) { 846 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{8} 847 } 848 849 func (m *BatchReadFeatureValuesRequest) GetReadOption() isBatchReadFeatureValuesRequest_ReadOption { 850 if m != nil { 851 return m.ReadOption 852 } 853 return nil 854 } 855 856 func (x *BatchReadFeatureValuesRequest) GetCsvReadInstances() *CsvSource { 857 if x, ok := x.GetReadOption().(*BatchReadFeatureValuesRequest_CsvReadInstances); ok { 858 return x.CsvReadInstances 859 } 860 return nil 861 } 862 863 func (x *BatchReadFeatureValuesRequest) GetBigqueryReadInstances() *BigQuerySource { 864 if x, ok := x.GetReadOption().(*BatchReadFeatureValuesRequest_BigqueryReadInstances); ok { 865 return x.BigqueryReadInstances 866 } 867 return nil 868 } 869 870 func (x *BatchReadFeatureValuesRequest) GetFeaturestore() string { 871 if x != nil { 872 return x.Featurestore 873 } 874 return "" 875 } 876 877 func (x *BatchReadFeatureValuesRequest) GetDestination() *FeatureValueDestination { 878 if x != nil { 879 return x.Destination 880 } 881 return nil 882 } 883 884 func (x *BatchReadFeatureValuesRequest) GetPassThroughFields() []*BatchReadFeatureValuesRequest_PassThroughField { 885 if x != nil { 886 return x.PassThroughFields 887 } 888 return nil 889 } 890 891 func (x *BatchReadFeatureValuesRequest) GetEntityTypeSpecs() []*BatchReadFeatureValuesRequest_EntityTypeSpec { 892 if x != nil { 893 return x.EntityTypeSpecs 894 } 895 return nil 896 } 897 898 func (x *BatchReadFeatureValuesRequest) GetStartTime() *timestamppb.Timestamp { 899 if x != nil { 900 return x.StartTime 901 } 902 return nil 903 } 904 905 type isBatchReadFeatureValuesRequest_ReadOption interface { 906 isBatchReadFeatureValuesRequest_ReadOption() 907 } 908 909 type BatchReadFeatureValuesRequest_CsvReadInstances struct { 910 // Each read instance consists of exactly one read timestamp and one or more 911 // entity IDs identifying entities of the corresponding EntityTypes whose 912 // Features are requested. 913 // 914 // Each output instance contains Feature values of requested entities 915 // concatenated together as of the read time. 916 // 917 // An example read instance may be `foo_entity_id, bar_entity_id, 918 // 2020-01-01T10:00:00.123Z`. 919 // 920 // An example output instance may be `foo_entity_id, bar_entity_id, 921 // 2020-01-01T10:00:00.123Z, foo_entity_feature1_value, 922 // bar_entity_feature2_value`. 923 // 924 // Timestamp in each read instance must be millisecond-aligned. 925 // 926 // `csv_read_instances` are read instances stored in a plain-text CSV file. 927 // The header should be: 928 // 929 // [ENTITY_TYPE_ID1], [ENTITY_TYPE_ID2], ..., timestamp 930 // 931 // The columns can be in any order. 932 // 933 // Values in the timestamp column must use the RFC 3339 format, e.g. 934 // `2012-07-30T10:43:17.123Z`. 935 CsvReadInstances *CsvSource `protobuf:"bytes,3,opt,name=csv_read_instances,json=csvReadInstances,proto3,oneof"` 936 } 937 938 type BatchReadFeatureValuesRequest_BigqueryReadInstances struct { 939 // Similar to csv_read_instances, but from BigQuery source. 940 BigqueryReadInstances *BigQuerySource `protobuf:"bytes,5,opt,name=bigquery_read_instances,json=bigqueryReadInstances,proto3,oneof"` 941 } 942 943 func (*BatchReadFeatureValuesRequest_CsvReadInstances) isBatchReadFeatureValuesRequest_ReadOption() {} 944 945 func (*BatchReadFeatureValuesRequest_BigqueryReadInstances) isBatchReadFeatureValuesRequest_ReadOption() { 946 } 947 948 // Request message for 949 // [FeaturestoreService.ExportFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.ExportFeatureValues]. 950 type ExportFeatureValuesRequest struct { 951 state protoimpl.MessageState 952 sizeCache protoimpl.SizeCache 953 unknownFields protoimpl.UnknownFields 954 955 // Required. The mode in which Feature values are exported. 956 // 957 // Types that are assignable to Mode: 958 // 959 // *ExportFeatureValuesRequest_SnapshotExport_ 960 // *ExportFeatureValuesRequest_FullExport_ 961 Mode isExportFeatureValuesRequest_Mode `protobuf_oneof:"mode"` 962 // Required. The resource name of the EntityType from which to export Feature 963 // values. Format: 964 // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` 965 EntityType string `protobuf:"bytes,1,opt,name=entity_type,json=entityType,proto3" json:"entity_type,omitempty"` 966 // Required. Specifies destination location and format. 967 Destination *FeatureValueDestination `protobuf:"bytes,4,opt,name=destination,proto3" json:"destination,omitempty"` 968 // Required. Selects Features to export values of. 969 FeatureSelector *FeatureSelector `protobuf:"bytes,5,opt,name=feature_selector,json=featureSelector,proto3" json:"feature_selector,omitempty"` 970 // Per-Feature export settings. 971 Settings []*DestinationFeatureSetting `protobuf:"bytes,6,rep,name=settings,proto3" json:"settings,omitempty"` 972 } 973 974 func (x *ExportFeatureValuesRequest) Reset() { 975 *x = ExportFeatureValuesRequest{} 976 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[9] 977 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 978 ms.StoreMessageInfo(mi) 979 } 980 981 func (x *ExportFeatureValuesRequest) String() string { 982 return protoimpl.X.MessageStringOf(x) 983 } 984 985 func (*ExportFeatureValuesRequest) ProtoMessage() {} 986 987 func (x *ExportFeatureValuesRequest) ProtoReflect() protoreflect.Message { 988 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[9] 989 if x != nil { 990 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 991 if ms.LoadMessageInfo() == nil { 992 ms.StoreMessageInfo(mi) 993 } 994 return ms 995 } 996 return mi.MessageOf(x) 997 } 998 999 // Deprecated: Use ExportFeatureValuesRequest.ProtoReflect.Descriptor instead. 1000 func (*ExportFeatureValuesRequest) Descriptor() ([]byte, []int) { 1001 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{9} 1002 } 1003 1004 func (m *ExportFeatureValuesRequest) GetMode() isExportFeatureValuesRequest_Mode { 1005 if m != nil { 1006 return m.Mode 1007 } 1008 return nil 1009 } 1010 1011 func (x *ExportFeatureValuesRequest) GetSnapshotExport() *ExportFeatureValuesRequest_SnapshotExport { 1012 if x, ok := x.GetMode().(*ExportFeatureValuesRequest_SnapshotExport_); ok { 1013 return x.SnapshotExport 1014 } 1015 return nil 1016 } 1017 1018 func (x *ExportFeatureValuesRequest) GetFullExport() *ExportFeatureValuesRequest_FullExport { 1019 if x, ok := x.GetMode().(*ExportFeatureValuesRequest_FullExport_); ok { 1020 return x.FullExport 1021 } 1022 return nil 1023 } 1024 1025 func (x *ExportFeatureValuesRequest) GetEntityType() string { 1026 if x != nil { 1027 return x.EntityType 1028 } 1029 return "" 1030 } 1031 1032 func (x *ExportFeatureValuesRequest) GetDestination() *FeatureValueDestination { 1033 if x != nil { 1034 return x.Destination 1035 } 1036 return nil 1037 } 1038 1039 func (x *ExportFeatureValuesRequest) GetFeatureSelector() *FeatureSelector { 1040 if x != nil { 1041 return x.FeatureSelector 1042 } 1043 return nil 1044 } 1045 1046 func (x *ExportFeatureValuesRequest) GetSettings() []*DestinationFeatureSetting { 1047 if x != nil { 1048 return x.Settings 1049 } 1050 return nil 1051 } 1052 1053 type isExportFeatureValuesRequest_Mode interface { 1054 isExportFeatureValuesRequest_Mode() 1055 } 1056 1057 type ExportFeatureValuesRequest_SnapshotExport_ struct { 1058 // Exports the latest Feature values of all entities of the EntityType 1059 // within a time range. 1060 SnapshotExport *ExportFeatureValuesRequest_SnapshotExport `protobuf:"bytes,3,opt,name=snapshot_export,json=snapshotExport,proto3,oneof"` 1061 } 1062 1063 type ExportFeatureValuesRequest_FullExport_ struct { 1064 // Exports all historical values of all entities of the EntityType within a 1065 // time range 1066 FullExport *ExportFeatureValuesRequest_FullExport `protobuf:"bytes,7,opt,name=full_export,json=fullExport,proto3,oneof"` 1067 } 1068 1069 func (*ExportFeatureValuesRequest_SnapshotExport_) isExportFeatureValuesRequest_Mode() {} 1070 1071 func (*ExportFeatureValuesRequest_FullExport_) isExportFeatureValuesRequest_Mode() {} 1072 1073 type DestinationFeatureSetting struct { 1074 state protoimpl.MessageState 1075 sizeCache protoimpl.SizeCache 1076 unknownFields protoimpl.UnknownFields 1077 1078 // Required. The ID of the Feature to apply the setting to. 1079 FeatureId string `protobuf:"bytes,1,opt,name=feature_id,json=featureId,proto3" json:"feature_id,omitempty"` 1080 // Specify the field name in the export destination. If not specified, 1081 // Feature ID is used. 1082 DestinationField string `protobuf:"bytes,2,opt,name=destination_field,json=destinationField,proto3" json:"destination_field,omitempty"` 1083 } 1084 1085 func (x *DestinationFeatureSetting) Reset() { 1086 *x = DestinationFeatureSetting{} 1087 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[10] 1088 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1089 ms.StoreMessageInfo(mi) 1090 } 1091 1092 func (x *DestinationFeatureSetting) String() string { 1093 return protoimpl.X.MessageStringOf(x) 1094 } 1095 1096 func (*DestinationFeatureSetting) ProtoMessage() {} 1097 1098 func (x *DestinationFeatureSetting) ProtoReflect() protoreflect.Message { 1099 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[10] 1100 if x != nil { 1101 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1102 if ms.LoadMessageInfo() == nil { 1103 ms.StoreMessageInfo(mi) 1104 } 1105 return ms 1106 } 1107 return mi.MessageOf(x) 1108 } 1109 1110 // Deprecated: Use DestinationFeatureSetting.ProtoReflect.Descriptor instead. 1111 func (*DestinationFeatureSetting) Descriptor() ([]byte, []int) { 1112 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{10} 1113 } 1114 1115 func (x *DestinationFeatureSetting) GetFeatureId() string { 1116 if x != nil { 1117 return x.FeatureId 1118 } 1119 return "" 1120 } 1121 1122 func (x *DestinationFeatureSetting) GetDestinationField() string { 1123 if x != nil { 1124 return x.DestinationField 1125 } 1126 return "" 1127 } 1128 1129 // A destination location for Feature values and format. 1130 type FeatureValueDestination struct { 1131 state protoimpl.MessageState 1132 sizeCache protoimpl.SizeCache 1133 unknownFields protoimpl.UnknownFields 1134 1135 // Types that are assignable to Destination: 1136 // 1137 // *FeatureValueDestination_BigqueryDestination 1138 // *FeatureValueDestination_TfrecordDestination 1139 // *FeatureValueDestination_CsvDestination 1140 Destination isFeatureValueDestination_Destination `protobuf_oneof:"destination"` 1141 } 1142 1143 func (x *FeatureValueDestination) Reset() { 1144 *x = FeatureValueDestination{} 1145 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[11] 1146 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1147 ms.StoreMessageInfo(mi) 1148 } 1149 1150 func (x *FeatureValueDestination) String() string { 1151 return protoimpl.X.MessageStringOf(x) 1152 } 1153 1154 func (*FeatureValueDestination) ProtoMessage() {} 1155 1156 func (x *FeatureValueDestination) ProtoReflect() protoreflect.Message { 1157 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[11] 1158 if x != nil { 1159 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1160 if ms.LoadMessageInfo() == nil { 1161 ms.StoreMessageInfo(mi) 1162 } 1163 return ms 1164 } 1165 return mi.MessageOf(x) 1166 } 1167 1168 // Deprecated: Use FeatureValueDestination.ProtoReflect.Descriptor instead. 1169 func (*FeatureValueDestination) Descriptor() ([]byte, []int) { 1170 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{11} 1171 } 1172 1173 func (m *FeatureValueDestination) GetDestination() isFeatureValueDestination_Destination { 1174 if m != nil { 1175 return m.Destination 1176 } 1177 return nil 1178 } 1179 1180 func (x *FeatureValueDestination) GetBigqueryDestination() *BigQueryDestination { 1181 if x, ok := x.GetDestination().(*FeatureValueDestination_BigqueryDestination); ok { 1182 return x.BigqueryDestination 1183 } 1184 return nil 1185 } 1186 1187 func (x *FeatureValueDestination) GetTfrecordDestination() *TFRecordDestination { 1188 if x, ok := x.GetDestination().(*FeatureValueDestination_TfrecordDestination); ok { 1189 return x.TfrecordDestination 1190 } 1191 return nil 1192 } 1193 1194 func (x *FeatureValueDestination) GetCsvDestination() *CsvDestination { 1195 if x, ok := x.GetDestination().(*FeatureValueDestination_CsvDestination); ok { 1196 return x.CsvDestination 1197 } 1198 return nil 1199 } 1200 1201 type isFeatureValueDestination_Destination interface { 1202 isFeatureValueDestination_Destination() 1203 } 1204 1205 type FeatureValueDestination_BigqueryDestination struct { 1206 // Output in BigQuery format. 1207 // [BigQueryDestination.output_uri][google.cloud.aiplatform.v1beta1.BigQueryDestination.output_uri] 1208 // in 1209 // [FeatureValueDestination.bigquery_destination][google.cloud.aiplatform.v1beta1.FeatureValueDestination.bigquery_destination] 1210 // must refer to a table. 1211 BigqueryDestination *BigQueryDestination `protobuf:"bytes,1,opt,name=bigquery_destination,json=bigqueryDestination,proto3,oneof"` 1212 } 1213 1214 type FeatureValueDestination_TfrecordDestination struct { 1215 // Output in TFRecord format. 1216 // 1217 // Below are the mapping from Feature value type 1218 // in Featurestore to Feature value type in TFRecord: 1219 // 1220 // Value type in Featurestore | Value type in TFRecord 1221 // DOUBLE, DOUBLE_ARRAY | FLOAT_LIST 1222 // INT64, INT64_ARRAY | INT64_LIST 1223 // STRING, STRING_ARRAY, BYTES | BYTES_LIST 1224 // true -> byte_string("true"), false -> byte_string("false") 1225 // BOOL, BOOL_ARRAY (true, false) | BYTES_LIST 1226 TfrecordDestination *TFRecordDestination `protobuf:"bytes,2,opt,name=tfrecord_destination,json=tfrecordDestination,proto3,oneof"` 1227 } 1228 1229 type FeatureValueDestination_CsvDestination struct { 1230 // Output in CSV format. Array Feature value types are not allowed in CSV 1231 // format. 1232 CsvDestination *CsvDestination `protobuf:"bytes,3,opt,name=csv_destination,json=csvDestination,proto3,oneof"` 1233 } 1234 1235 func (*FeatureValueDestination_BigqueryDestination) isFeatureValueDestination_Destination() {} 1236 1237 func (*FeatureValueDestination_TfrecordDestination) isFeatureValueDestination_Destination() {} 1238 1239 func (*FeatureValueDestination_CsvDestination) isFeatureValueDestination_Destination() {} 1240 1241 // Response message for 1242 // [FeaturestoreService.ExportFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.ExportFeatureValues]. 1243 type ExportFeatureValuesResponse struct { 1244 state protoimpl.MessageState 1245 sizeCache protoimpl.SizeCache 1246 unknownFields protoimpl.UnknownFields 1247 } 1248 1249 func (x *ExportFeatureValuesResponse) Reset() { 1250 *x = ExportFeatureValuesResponse{} 1251 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[12] 1252 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1253 ms.StoreMessageInfo(mi) 1254 } 1255 1256 func (x *ExportFeatureValuesResponse) String() string { 1257 return protoimpl.X.MessageStringOf(x) 1258 } 1259 1260 func (*ExportFeatureValuesResponse) ProtoMessage() {} 1261 1262 func (x *ExportFeatureValuesResponse) ProtoReflect() protoreflect.Message { 1263 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[12] 1264 if x != nil { 1265 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1266 if ms.LoadMessageInfo() == nil { 1267 ms.StoreMessageInfo(mi) 1268 } 1269 return ms 1270 } 1271 return mi.MessageOf(x) 1272 } 1273 1274 // Deprecated: Use ExportFeatureValuesResponse.ProtoReflect.Descriptor instead. 1275 func (*ExportFeatureValuesResponse) Descriptor() ([]byte, []int) { 1276 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{12} 1277 } 1278 1279 // Response message for 1280 // [FeaturestoreService.BatchReadFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchReadFeatureValues]. 1281 type BatchReadFeatureValuesResponse struct { 1282 state protoimpl.MessageState 1283 sizeCache protoimpl.SizeCache 1284 unknownFields protoimpl.UnknownFields 1285 } 1286 1287 func (x *BatchReadFeatureValuesResponse) Reset() { 1288 *x = BatchReadFeatureValuesResponse{} 1289 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[13] 1290 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1291 ms.StoreMessageInfo(mi) 1292 } 1293 1294 func (x *BatchReadFeatureValuesResponse) String() string { 1295 return protoimpl.X.MessageStringOf(x) 1296 } 1297 1298 func (*BatchReadFeatureValuesResponse) ProtoMessage() {} 1299 1300 func (x *BatchReadFeatureValuesResponse) ProtoReflect() protoreflect.Message { 1301 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[13] 1302 if x != nil { 1303 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1304 if ms.LoadMessageInfo() == nil { 1305 ms.StoreMessageInfo(mi) 1306 } 1307 return ms 1308 } 1309 return mi.MessageOf(x) 1310 } 1311 1312 // Deprecated: Use BatchReadFeatureValuesResponse.ProtoReflect.Descriptor instead. 1313 func (*BatchReadFeatureValuesResponse) Descriptor() ([]byte, []int) { 1314 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{13} 1315 } 1316 1317 // Request message for 1318 // [FeaturestoreService.CreateEntityType][google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateEntityType]. 1319 type CreateEntityTypeRequest struct { 1320 state protoimpl.MessageState 1321 sizeCache protoimpl.SizeCache 1322 unknownFields protoimpl.UnknownFields 1323 1324 // Required. The resource name of the Featurestore to create EntityTypes. 1325 // Format: 1326 // `projects/{project}/locations/{location}/featurestores/{featurestore}` 1327 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 1328 // The EntityType to create. 1329 EntityType *EntityType `protobuf:"bytes,2,opt,name=entity_type,json=entityType,proto3" json:"entity_type,omitempty"` 1330 // Required. The ID to use for the EntityType, which will become the final 1331 // component of the EntityType's resource name. 1332 // 1333 // This value may be up to 60 characters, and valid characters are 1334 // `[a-z0-9_]`. The first character cannot be a number. 1335 // 1336 // The value must be unique within a featurestore. 1337 EntityTypeId string `protobuf:"bytes,3,opt,name=entity_type_id,json=entityTypeId,proto3" json:"entity_type_id,omitempty"` 1338 } 1339 1340 func (x *CreateEntityTypeRequest) Reset() { 1341 *x = CreateEntityTypeRequest{} 1342 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[14] 1343 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1344 ms.StoreMessageInfo(mi) 1345 } 1346 1347 func (x *CreateEntityTypeRequest) String() string { 1348 return protoimpl.X.MessageStringOf(x) 1349 } 1350 1351 func (*CreateEntityTypeRequest) ProtoMessage() {} 1352 1353 func (x *CreateEntityTypeRequest) ProtoReflect() protoreflect.Message { 1354 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[14] 1355 if x != nil { 1356 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1357 if ms.LoadMessageInfo() == nil { 1358 ms.StoreMessageInfo(mi) 1359 } 1360 return ms 1361 } 1362 return mi.MessageOf(x) 1363 } 1364 1365 // Deprecated: Use CreateEntityTypeRequest.ProtoReflect.Descriptor instead. 1366 func (*CreateEntityTypeRequest) Descriptor() ([]byte, []int) { 1367 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{14} 1368 } 1369 1370 func (x *CreateEntityTypeRequest) GetParent() string { 1371 if x != nil { 1372 return x.Parent 1373 } 1374 return "" 1375 } 1376 1377 func (x *CreateEntityTypeRequest) GetEntityType() *EntityType { 1378 if x != nil { 1379 return x.EntityType 1380 } 1381 return nil 1382 } 1383 1384 func (x *CreateEntityTypeRequest) GetEntityTypeId() string { 1385 if x != nil { 1386 return x.EntityTypeId 1387 } 1388 return "" 1389 } 1390 1391 // Request message for 1392 // [FeaturestoreService.GetEntityType][google.cloud.aiplatform.v1beta1.FeaturestoreService.GetEntityType]. 1393 type GetEntityTypeRequest struct { 1394 state protoimpl.MessageState 1395 sizeCache protoimpl.SizeCache 1396 unknownFields protoimpl.UnknownFields 1397 1398 // Required. The name of the EntityType resource. 1399 // Format: 1400 // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` 1401 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1402 } 1403 1404 func (x *GetEntityTypeRequest) Reset() { 1405 *x = GetEntityTypeRequest{} 1406 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[15] 1407 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1408 ms.StoreMessageInfo(mi) 1409 } 1410 1411 func (x *GetEntityTypeRequest) String() string { 1412 return protoimpl.X.MessageStringOf(x) 1413 } 1414 1415 func (*GetEntityTypeRequest) ProtoMessage() {} 1416 1417 func (x *GetEntityTypeRequest) ProtoReflect() protoreflect.Message { 1418 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[15] 1419 if x != nil { 1420 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1421 if ms.LoadMessageInfo() == nil { 1422 ms.StoreMessageInfo(mi) 1423 } 1424 return ms 1425 } 1426 return mi.MessageOf(x) 1427 } 1428 1429 // Deprecated: Use GetEntityTypeRequest.ProtoReflect.Descriptor instead. 1430 func (*GetEntityTypeRequest) Descriptor() ([]byte, []int) { 1431 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{15} 1432 } 1433 1434 func (x *GetEntityTypeRequest) GetName() string { 1435 if x != nil { 1436 return x.Name 1437 } 1438 return "" 1439 } 1440 1441 // Request message for 1442 // [FeaturestoreService.ListEntityTypes][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes]. 1443 type ListEntityTypesRequest struct { 1444 state protoimpl.MessageState 1445 sizeCache protoimpl.SizeCache 1446 unknownFields protoimpl.UnknownFields 1447 1448 // Required. The resource name of the Featurestore to list EntityTypes. 1449 // Format: 1450 // `projects/{project}/locations/{location}/featurestores/{featurestore}` 1451 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 1452 // Lists the EntityTypes that match the filter expression. The following 1453 // filters are supported: 1454 // 1455 // * `create_time`: Supports `=`, `!=`, `<`, `>`, `>=`, and `<=` comparisons. 1456 // Values must be in RFC 3339 format. 1457 // * `update_time`: Supports `=`, `!=`, `<`, `>`, `>=`, and `<=` comparisons. 1458 // Values must be in RFC 3339 format. 1459 // * `labels`: Supports key-value equality as well as key presence. 1460 // 1461 // Examples: 1462 // 1463 // - `create_time > \"2020-01-31T15:30:00.000000Z\" OR 1464 // update_time > \"2020-01-31T15:30:00.000000Z\"` --> EntityTypes created 1465 // or updated after 2020-01-31T15:30:00.000000Z. 1466 // - `labels.active = yes AND labels.env = prod` --> EntityTypes having both 1467 // (active: yes) and (env: prod) labels. 1468 // - `labels.env: *` --> Any EntityType which has a label with 'env' as the 1469 // key. 1470 Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` 1471 // The maximum number of EntityTypes to return. The service may return fewer 1472 // than this value. If unspecified, at most 1000 EntityTypes will be returned. 1473 // The maximum value is 1000; any value greater than 1000 will be coerced to 1474 // 1000. 1475 PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 1476 // A page token, received from a previous 1477 // [FeaturestoreService.ListEntityTypes][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes] 1478 // call. Provide this to retrieve the subsequent page. 1479 // 1480 // When paginating, all other parameters provided to 1481 // [FeaturestoreService.ListEntityTypes][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes] 1482 // must match the call that provided the page token. 1483 PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 1484 // A comma-separated list of fields to order by, sorted in ascending order. 1485 // Use "desc" after a field name for descending. 1486 // 1487 // Supported fields: 1488 // 1489 // - `entity_type_id` 1490 // - `create_time` 1491 // - `update_time` 1492 OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` 1493 // Mask specifying which fields to read. 1494 ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,6,opt,name=read_mask,json=readMask,proto3" json:"read_mask,omitempty"` 1495 } 1496 1497 func (x *ListEntityTypesRequest) Reset() { 1498 *x = ListEntityTypesRequest{} 1499 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[16] 1500 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1501 ms.StoreMessageInfo(mi) 1502 } 1503 1504 func (x *ListEntityTypesRequest) String() string { 1505 return protoimpl.X.MessageStringOf(x) 1506 } 1507 1508 func (*ListEntityTypesRequest) ProtoMessage() {} 1509 1510 func (x *ListEntityTypesRequest) ProtoReflect() protoreflect.Message { 1511 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[16] 1512 if x != nil { 1513 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1514 if ms.LoadMessageInfo() == nil { 1515 ms.StoreMessageInfo(mi) 1516 } 1517 return ms 1518 } 1519 return mi.MessageOf(x) 1520 } 1521 1522 // Deprecated: Use ListEntityTypesRequest.ProtoReflect.Descriptor instead. 1523 func (*ListEntityTypesRequest) Descriptor() ([]byte, []int) { 1524 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{16} 1525 } 1526 1527 func (x *ListEntityTypesRequest) GetParent() string { 1528 if x != nil { 1529 return x.Parent 1530 } 1531 return "" 1532 } 1533 1534 func (x *ListEntityTypesRequest) GetFilter() string { 1535 if x != nil { 1536 return x.Filter 1537 } 1538 return "" 1539 } 1540 1541 func (x *ListEntityTypesRequest) GetPageSize() int32 { 1542 if x != nil { 1543 return x.PageSize 1544 } 1545 return 0 1546 } 1547 1548 func (x *ListEntityTypesRequest) GetPageToken() string { 1549 if x != nil { 1550 return x.PageToken 1551 } 1552 return "" 1553 } 1554 1555 func (x *ListEntityTypesRequest) GetOrderBy() string { 1556 if x != nil { 1557 return x.OrderBy 1558 } 1559 return "" 1560 } 1561 1562 func (x *ListEntityTypesRequest) GetReadMask() *fieldmaskpb.FieldMask { 1563 if x != nil { 1564 return x.ReadMask 1565 } 1566 return nil 1567 } 1568 1569 // Response message for 1570 // [FeaturestoreService.ListEntityTypes][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes]. 1571 type ListEntityTypesResponse struct { 1572 state protoimpl.MessageState 1573 sizeCache protoimpl.SizeCache 1574 unknownFields protoimpl.UnknownFields 1575 1576 // The EntityTypes matching the request. 1577 EntityTypes []*EntityType `protobuf:"bytes,1,rep,name=entity_types,json=entityTypes,proto3" json:"entity_types,omitempty"` 1578 // A token, which can be sent as 1579 // [ListEntityTypesRequest.page_token][google.cloud.aiplatform.v1beta1.ListEntityTypesRequest.page_token] 1580 // to retrieve the next page. If this field is omitted, there are no 1581 // subsequent pages. 1582 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 1583 } 1584 1585 func (x *ListEntityTypesResponse) Reset() { 1586 *x = ListEntityTypesResponse{} 1587 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[17] 1588 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1589 ms.StoreMessageInfo(mi) 1590 } 1591 1592 func (x *ListEntityTypesResponse) String() string { 1593 return protoimpl.X.MessageStringOf(x) 1594 } 1595 1596 func (*ListEntityTypesResponse) ProtoMessage() {} 1597 1598 func (x *ListEntityTypesResponse) ProtoReflect() protoreflect.Message { 1599 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[17] 1600 if x != nil { 1601 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1602 if ms.LoadMessageInfo() == nil { 1603 ms.StoreMessageInfo(mi) 1604 } 1605 return ms 1606 } 1607 return mi.MessageOf(x) 1608 } 1609 1610 // Deprecated: Use ListEntityTypesResponse.ProtoReflect.Descriptor instead. 1611 func (*ListEntityTypesResponse) Descriptor() ([]byte, []int) { 1612 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{17} 1613 } 1614 1615 func (x *ListEntityTypesResponse) GetEntityTypes() []*EntityType { 1616 if x != nil { 1617 return x.EntityTypes 1618 } 1619 return nil 1620 } 1621 1622 func (x *ListEntityTypesResponse) GetNextPageToken() string { 1623 if x != nil { 1624 return x.NextPageToken 1625 } 1626 return "" 1627 } 1628 1629 // Request message for 1630 // [FeaturestoreService.UpdateEntityType][google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateEntityType]. 1631 type UpdateEntityTypeRequest struct { 1632 state protoimpl.MessageState 1633 sizeCache protoimpl.SizeCache 1634 unknownFields protoimpl.UnknownFields 1635 1636 // Required. The EntityType's `name` field is used to identify the EntityType 1637 // to be updated. Format: 1638 // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` 1639 EntityType *EntityType `protobuf:"bytes,1,opt,name=entity_type,json=entityType,proto3" json:"entity_type,omitempty"` 1640 // Field mask is used to specify the fields to be overwritten in the 1641 // EntityType resource by the update. 1642 // The fields specified in the update_mask are relative to the resource, not 1643 // the full request. A field will be overwritten if it is in the mask. If the 1644 // user does not provide a mask then only the non-empty fields present in the 1645 // request will be overwritten. Set the update_mask to `*` to override all 1646 // fields. 1647 // 1648 // Updatable fields: 1649 // 1650 // - `description` 1651 // - `labels` 1652 // - `monitoring_config.snapshot_analysis.disabled` 1653 // - `monitoring_config.snapshot_analysis.monitoring_interval_days` 1654 // - `monitoring_config.snapshot_analysis.staleness_days` 1655 // - `monitoring_config.import_features_analysis.state` 1656 // - `monitoring_config.import_features_analysis.anomaly_detection_baseline` 1657 // - `monitoring_config.numerical_threshold_config.value` 1658 // - `monitoring_config.categorical_threshold_config.value` 1659 // - `offline_storage_ttl_days` 1660 UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 1661 } 1662 1663 func (x *UpdateEntityTypeRequest) Reset() { 1664 *x = UpdateEntityTypeRequest{} 1665 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[18] 1666 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1667 ms.StoreMessageInfo(mi) 1668 } 1669 1670 func (x *UpdateEntityTypeRequest) String() string { 1671 return protoimpl.X.MessageStringOf(x) 1672 } 1673 1674 func (*UpdateEntityTypeRequest) ProtoMessage() {} 1675 1676 func (x *UpdateEntityTypeRequest) ProtoReflect() protoreflect.Message { 1677 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[18] 1678 if x != nil { 1679 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1680 if ms.LoadMessageInfo() == nil { 1681 ms.StoreMessageInfo(mi) 1682 } 1683 return ms 1684 } 1685 return mi.MessageOf(x) 1686 } 1687 1688 // Deprecated: Use UpdateEntityTypeRequest.ProtoReflect.Descriptor instead. 1689 func (*UpdateEntityTypeRequest) Descriptor() ([]byte, []int) { 1690 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{18} 1691 } 1692 1693 func (x *UpdateEntityTypeRequest) GetEntityType() *EntityType { 1694 if x != nil { 1695 return x.EntityType 1696 } 1697 return nil 1698 } 1699 1700 func (x *UpdateEntityTypeRequest) GetUpdateMask() *fieldmaskpb.FieldMask { 1701 if x != nil { 1702 return x.UpdateMask 1703 } 1704 return nil 1705 } 1706 1707 // Request message for [FeaturestoreService.DeleteEntityTypes][]. 1708 type DeleteEntityTypeRequest struct { 1709 state protoimpl.MessageState 1710 sizeCache protoimpl.SizeCache 1711 unknownFields protoimpl.UnknownFields 1712 1713 // Required. The name of the EntityType to be deleted. 1714 // Format: 1715 // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` 1716 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1717 // If set to true, any Features for this EntityType will also be deleted. 1718 // (Otherwise, the request will only work if the EntityType has no Features.) 1719 Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` 1720 } 1721 1722 func (x *DeleteEntityTypeRequest) Reset() { 1723 *x = DeleteEntityTypeRequest{} 1724 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[19] 1725 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1726 ms.StoreMessageInfo(mi) 1727 } 1728 1729 func (x *DeleteEntityTypeRequest) String() string { 1730 return protoimpl.X.MessageStringOf(x) 1731 } 1732 1733 func (*DeleteEntityTypeRequest) ProtoMessage() {} 1734 1735 func (x *DeleteEntityTypeRequest) ProtoReflect() protoreflect.Message { 1736 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[19] 1737 if x != nil { 1738 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1739 if ms.LoadMessageInfo() == nil { 1740 ms.StoreMessageInfo(mi) 1741 } 1742 return ms 1743 } 1744 return mi.MessageOf(x) 1745 } 1746 1747 // Deprecated: Use DeleteEntityTypeRequest.ProtoReflect.Descriptor instead. 1748 func (*DeleteEntityTypeRequest) Descriptor() ([]byte, []int) { 1749 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{19} 1750 } 1751 1752 func (x *DeleteEntityTypeRequest) GetName() string { 1753 if x != nil { 1754 return x.Name 1755 } 1756 return "" 1757 } 1758 1759 func (x *DeleteEntityTypeRequest) GetForce() bool { 1760 if x != nil { 1761 return x.Force 1762 } 1763 return false 1764 } 1765 1766 // Request message for 1767 // [FeaturestoreService.CreateFeature][google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateFeature]. 1768 // Request message for 1769 // [FeatureRegistryService.CreateFeature][google.cloud.aiplatform.v1beta1.FeatureRegistryService.CreateFeature]. 1770 type CreateFeatureRequest struct { 1771 state protoimpl.MessageState 1772 sizeCache protoimpl.SizeCache 1773 unknownFields protoimpl.UnknownFields 1774 1775 // Required. The resource name of the EntityType or FeatureGroup to create a 1776 // Feature. Format for entity_type as parent: 1777 // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` 1778 // Format for feature_group as parent: 1779 // `projects/{project}/locations/{location}/featureGroups/{feature_group}` 1780 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 1781 // Required. The Feature to create. 1782 Feature *Feature `protobuf:"bytes,2,opt,name=feature,proto3" json:"feature,omitempty"` 1783 // Required. The ID to use for the Feature, which will become the final 1784 // component of the Feature's resource name. 1785 // 1786 // This value may be up to 128 characters, and valid characters are 1787 // `[a-z0-9_]`. The first character cannot be a number. 1788 // 1789 // The value must be unique within an EntityType/FeatureGroup. 1790 FeatureId string `protobuf:"bytes,3,opt,name=feature_id,json=featureId,proto3" json:"feature_id,omitempty"` 1791 } 1792 1793 func (x *CreateFeatureRequest) Reset() { 1794 *x = CreateFeatureRequest{} 1795 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[20] 1796 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1797 ms.StoreMessageInfo(mi) 1798 } 1799 1800 func (x *CreateFeatureRequest) String() string { 1801 return protoimpl.X.MessageStringOf(x) 1802 } 1803 1804 func (*CreateFeatureRequest) ProtoMessage() {} 1805 1806 func (x *CreateFeatureRequest) ProtoReflect() protoreflect.Message { 1807 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[20] 1808 if x != nil { 1809 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1810 if ms.LoadMessageInfo() == nil { 1811 ms.StoreMessageInfo(mi) 1812 } 1813 return ms 1814 } 1815 return mi.MessageOf(x) 1816 } 1817 1818 // Deprecated: Use CreateFeatureRequest.ProtoReflect.Descriptor instead. 1819 func (*CreateFeatureRequest) Descriptor() ([]byte, []int) { 1820 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{20} 1821 } 1822 1823 func (x *CreateFeatureRequest) GetParent() string { 1824 if x != nil { 1825 return x.Parent 1826 } 1827 return "" 1828 } 1829 1830 func (x *CreateFeatureRequest) GetFeature() *Feature { 1831 if x != nil { 1832 return x.Feature 1833 } 1834 return nil 1835 } 1836 1837 func (x *CreateFeatureRequest) GetFeatureId() string { 1838 if x != nil { 1839 return x.FeatureId 1840 } 1841 return "" 1842 } 1843 1844 // Request message for 1845 // [FeaturestoreService.BatchCreateFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchCreateFeatures]. 1846 // Request message for 1847 // [FeatureRegistryService.BatchCreateFeatures][google.cloud.aiplatform.v1beta1.FeatureRegistryService.BatchCreateFeatures]. 1848 type BatchCreateFeaturesRequest struct { 1849 state protoimpl.MessageState 1850 sizeCache protoimpl.SizeCache 1851 unknownFields protoimpl.UnknownFields 1852 1853 // Required. The resource name of the EntityType/FeatureGroup to create the 1854 // batch of Features under. Format: 1855 // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` 1856 // `projects/{project}/locations/{location}/featureGroups/{feature_group}` 1857 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 1858 // Required. The request message specifying the Features to create. All 1859 // Features must be created under the same parent EntityType / FeatureGroup. 1860 // The `parent` field in each child request message can be omitted. If 1861 // `parent` is set in a child request, then the value must match the `parent` 1862 // value in this request message. 1863 Requests []*CreateFeatureRequest `protobuf:"bytes,2,rep,name=requests,proto3" json:"requests,omitempty"` 1864 } 1865 1866 func (x *BatchCreateFeaturesRequest) Reset() { 1867 *x = BatchCreateFeaturesRequest{} 1868 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[21] 1869 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1870 ms.StoreMessageInfo(mi) 1871 } 1872 1873 func (x *BatchCreateFeaturesRequest) String() string { 1874 return protoimpl.X.MessageStringOf(x) 1875 } 1876 1877 func (*BatchCreateFeaturesRequest) ProtoMessage() {} 1878 1879 func (x *BatchCreateFeaturesRequest) ProtoReflect() protoreflect.Message { 1880 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[21] 1881 if x != nil { 1882 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1883 if ms.LoadMessageInfo() == nil { 1884 ms.StoreMessageInfo(mi) 1885 } 1886 return ms 1887 } 1888 return mi.MessageOf(x) 1889 } 1890 1891 // Deprecated: Use BatchCreateFeaturesRequest.ProtoReflect.Descriptor instead. 1892 func (*BatchCreateFeaturesRequest) Descriptor() ([]byte, []int) { 1893 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{21} 1894 } 1895 1896 func (x *BatchCreateFeaturesRequest) GetParent() string { 1897 if x != nil { 1898 return x.Parent 1899 } 1900 return "" 1901 } 1902 1903 func (x *BatchCreateFeaturesRequest) GetRequests() []*CreateFeatureRequest { 1904 if x != nil { 1905 return x.Requests 1906 } 1907 return nil 1908 } 1909 1910 // Response message for 1911 // [FeaturestoreService.BatchCreateFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchCreateFeatures]. 1912 type BatchCreateFeaturesResponse struct { 1913 state protoimpl.MessageState 1914 sizeCache protoimpl.SizeCache 1915 unknownFields protoimpl.UnknownFields 1916 1917 // The Features created. 1918 Features []*Feature `protobuf:"bytes,1,rep,name=features,proto3" json:"features,omitempty"` 1919 } 1920 1921 func (x *BatchCreateFeaturesResponse) Reset() { 1922 *x = BatchCreateFeaturesResponse{} 1923 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[22] 1924 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1925 ms.StoreMessageInfo(mi) 1926 } 1927 1928 func (x *BatchCreateFeaturesResponse) String() string { 1929 return protoimpl.X.MessageStringOf(x) 1930 } 1931 1932 func (*BatchCreateFeaturesResponse) ProtoMessage() {} 1933 1934 func (x *BatchCreateFeaturesResponse) ProtoReflect() protoreflect.Message { 1935 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[22] 1936 if x != nil { 1937 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1938 if ms.LoadMessageInfo() == nil { 1939 ms.StoreMessageInfo(mi) 1940 } 1941 return ms 1942 } 1943 return mi.MessageOf(x) 1944 } 1945 1946 // Deprecated: Use BatchCreateFeaturesResponse.ProtoReflect.Descriptor instead. 1947 func (*BatchCreateFeaturesResponse) Descriptor() ([]byte, []int) { 1948 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{22} 1949 } 1950 1951 func (x *BatchCreateFeaturesResponse) GetFeatures() []*Feature { 1952 if x != nil { 1953 return x.Features 1954 } 1955 return nil 1956 } 1957 1958 // Request message for 1959 // [FeaturestoreService.GetFeature][google.cloud.aiplatform.v1beta1.FeaturestoreService.GetFeature]. 1960 // Request message for 1961 // [FeatureRegistryService.GetFeature][google.cloud.aiplatform.v1beta1.FeatureRegistryService.GetFeature]. 1962 type GetFeatureRequest struct { 1963 state protoimpl.MessageState 1964 sizeCache protoimpl.SizeCache 1965 unknownFields protoimpl.UnknownFields 1966 1967 // Required. The name of the Feature resource. 1968 // Format for entity_type as parent: 1969 // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` 1970 // Format for feature_group as parent: 1971 // `projects/{project}/locations/{location}/featureGroups/{feature_group}` 1972 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1973 // Optional. Only applicable for Vertex AI Feature Store. 1974 // If set, retrieves FeatureStatsAndAnomaly generated by FeatureMonitors based 1975 // on this spec. 1976 FeatureStatsAndAnomalySpec *FeatureStatsAndAnomalySpec `protobuf:"bytes,3,opt,name=feature_stats_and_anomaly_spec,json=featureStatsAndAnomalySpec,proto3" json:"feature_stats_and_anomaly_spec,omitempty"` 1977 } 1978 1979 func (x *GetFeatureRequest) Reset() { 1980 *x = GetFeatureRequest{} 1981 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[23] 1982 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1983 ms.StoreMessageInfo(mi) 1984 } 1985 1986 func (x *GetFeatureRequest) String() string { 1987 return protoimpl.X.MessageStringOf(x) 1988 } 1989 1990 func (*GetFeatureRequest) ProtoMessage() {} 1991 1992 func (x *GetFeatureRequest) ProtoReflect() protoreflect.Message { 1993 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[23] 1994 if x != nil { 1995 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1996 if ms.LoadMessageInfo() == nil { 1997 ms.StoreMessageInfo(mi) 1998 } 1999 return ms 2000 } 2001 return mi.MessageOf(x) 2002 } 2003 2004 // Deprecated: Use GetFeatureRequest.ProtoReflect.Descriptor instead. 2005 func (*GetFeatureRequest) Descriptor() ([]byte, []int) { 2006 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{23} 2007 } 2008 2009 func (x *GetFeatureRequest) GetName() string { 2010 if x != nil { 2011 return x.Name 2012 } 2013 return "" 2014 } 2015 2016 func (x *GetFeatureRequest) GetFeatureStatsAndAnomalySpec() *FeatureStatsAndAnomalySpec { 2017 if x != nil { 2018 return x.FeatureStatsAndAnomalySpec 2019 } 2020 return nil 2021 } 2022 2023 // Request message for 2024 // [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures]. 2025 // Request message for 2026 // [FeatureRegistryService.ListFeatures][google.cloud.aiplatform.v1beta1.FeatureRegistryService.ListFeatures]. 2027 type ListFeaturesRequest struct { 2028 state protoimpl.MessageState 2029 sizeCache protoimpl.SizeCache 2030 unknownFields protoimpl.UnknownFields 2031 2032 // Required. The resource name of the Location to list Features. 2033 // Format for entity_type as parent: 2034 // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` 2035 // Format for feature_group as parent: 2036 // `projects/{project}/locations/{location}/featureGroups/{feature_group}` 2037 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 2038 // Lists the Features that match the filter expression. The following 2039 // filters are supported: 2040 // 2041 // * `value_type`: Supports = and != comparisons. 2042 // * `create_time`: Supports =, !=, <, >, >=, and <= comparisons. Values must 2043 // be in RFC 3339 format. 2044 // * `update_time`: Supports =, !=, <, >, >=, and <= comparisons. Values must 2045 // be in RFC 3339 format. 2046 // * `labels`: Supports key-value equality as well as key presence. 2047 // 2048 // Examples: 2049 // 2050 // - `value_type = DOUBLE` --> Features whose type is DOUBLE. 2051 // - `create_time > \"2020-01-31T15:30:00.000000Z\" OR 2052 // update_time > \"2020-01-31T15:30:00.000000Z\"` --> EntityTypes created 2053 // or updated after 2020-01-31T15:30:00.000000Z. 2054 // - `labels.active = yes AND labels.env = prod` --> Features having both 2055 // (active: yes) and (env: prod) labels. 2056 // - `labels.env: *` --> Any Feature which has a label with 'env' as the 2057 // key. 2058 Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` 2059 // The maximum number of Features to return. The service may return fewer 2060 // than this value. If unspecified, at most 1000 Features will be returned. 2061 // The maximum value is 1000; any value greater than 1000 will be coerced to 2062 // 1000. 2063 PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 2064 // A page token, received from a previous 2065 // [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures] 2066 // call or 2067 // [FeatureRegistryService.ListFeatures][google.cloud.aiplatform.v1beta1.FeatureRegistryService.ListFeatures] 2068 // call. Provide this to retrieve the subsequent page. 2069 // 2070 // When paginating, all other parameters provided to 2071 // [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures] 2072 // or 2073 // [FeatureRegistryService.ListFeatures][google.cloud.aiplatform.v1beta1.FeatureRegistryService.ListFeatures] 2074 // must match the call that provided the page token. 2075 PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 2076 // A comma-separated list of fields to order by, sorted in ascending order. 2077 // Use "desc" after a field name for descending. 2078 // Supported fields: 2079 // 2080 // - `feature_id` 2081 // - `value_type` (Not supported for FeatureRegistry Feature) 2082 // - `create_time` 2083 // - `update_time` 2084 OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` 2085 // Mask specifying which fields to read. 2086 ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,6,opt,name=read_mask,json=readMask,proto3" json:"read_mask,omitempty"` 2087 // Only applicable for Vertex AI Feature Store (Legacy). 2088 // If set, return the most recent 2089 // [ListFeaturesRequest.latest_stats_count][google.cloud.aiplatform.v1beta1.ListFeaturesRequest.latest_stats_count] 2090 // of stats for each Feature in response. Valid value is [0, 10]. If number of 2091 // stats exists < 2092 // [ListFeaturesRequest.latest_stats_count][google.cloud.aiplatform.v1beta1.ListFeaturesRequest.latest_stats_count], 2093 // return all existing stats. 2094 LatestStatsCount int32 `protobuf:"varint,7,opt,name=latest_stats_count,json=latestStatsCount,proto3" json:"latest_stats_count,omitempty"` 2095 } 2096 2097 func (x *ListFeaturesRequest) Reset() { 2098 *x = ListFeaturesRequest{} 2099 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[24] 2100 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2101 ms.StoreMessageInfo(mi) 2102 } 2103 2104 func (x *ListFeaturesRequest) String() string { 2105 return protoimpl.X.MessageStringOf(x) 2106 } 2107 2108 func (*ListFeaturesRequest) ProtoMessage() {} 2109 2110 func (x *ListFeaturesRequest) ProtoReflect() protoreflect.Message { 2111 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[24] 2112 if x != nil { 2113 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2114 if ms.LoadMessageInfo() == nil { 2115 ms.StoreMessageInfo(mi) 2116 } 2117 return ms 2118 } 2119 return mi.MessageOf(x) 2120 } 2121 2122 // Deprecated: Use ListFeaturesRequest.ProtoReflect.Descriptor instead. 2123 func (*ListFeaturesRequest) Descriptor() ([]byte, []int) { 2124 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{24} 2125 } 2126 2127 func (x *ListFeaturesRequest) GetParent() string { 2128 if x != nil { 2129 return x.Parent 2130 } 2131 return "" 2132 } 2133 2134 func (x *ListFeaturesRequest) GetFilter() string { 2135 if x != nil { 2136 return x.Filter 2137 } 2138 return "" 2139 } 2140 2141 func (x *ListFeaturesRequest) GetPageSize() int32 { 2142 if x != nil { 2143 return x.PageSize 2144 } 2145 return 0 2146 } 2147 2148 func (x *ListFeaturesRequest) GetPageToken() string { 2149 if x != nil { 2150 return x.PageToken 2151 } 2152 return "" 2153 } 2154 2155 func (x *ListFeaturesRequest) GetOrderBy() string { 2156 if x != nil { 2157 return x.OrderBy 2158 } 2159 return "" 2160 } 2161 2162 func (x *ListFeaturesRequest) GetReadMask() *fieldmaskpb.FieldMask { 2163 if x != nil { 2164 return x.ReadMask 2165 } 2166 return nil 2167 } 2168 2169 func (x *ListFeaturesRequest) GetLatestStatsCount() int32 { 2170 if x != nil { 2171 return x.LatestStatsCount 2172 } 2173 return 0 2174 } 2175 2176 // Response message for 2177 // [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures]. 2178 // Response message for 2179 // [FeatureRegistryService.ListFeatures][google.cloud.aiplatform.v1beta1.FeatureRegistryService.ListFeatures]. 2180 type ListFeaturesResponse struct { 2181 state protoimpl.MessageState 2182 sizeCache protoimpl.SizeCache 2183 unknownFields protoimpl.UnknownFields 2184 2185 // The Features matching the request. 2186 Features []*Feature `protobuf:"bytes,1,rep,name=features,proto3" json:"features,omitempty"` 2187 // A token, which can be sent as 2188 // [ListFeaturesRequest.page_token][google.cloud.aiplatform.v1beta1.ListFeaturesRequest.page_token] 2189 // to retrieve the next page. If this field is omitted, there are no 2190 // subsequent pages. 2191 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 2192 } 2193 2194 func (x *ListFeaturesResponse) Reset() { 2195 *x = ListFeaturesResponse{} 2196 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[25] 2197 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2198 ms.StoreMessageInfo(mi) 2199 } 2200 2201 func (x *ListFeaturesResponse) String() string { 2202 return protoimpl.X.MessageStringOf(x) 2203 } 2204 2205 func (*ListFeaturesResponse) ProtoMessage() {} 2206 2207 func (x *ListFeaturesResponse) ProtoReflect() protoreflect.Message { 2208 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[25] 2209 if x != nil { 2210 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2211 if ms.LoadMessageInfo() == nil { 2212 ms.StoreMessageInfo(mi) 2213 } 2214 return ms 2215 } 2216 return mi.MessageOf(x) 2217 } 2218 2219 // Deprecated: Use ListFeaturesResponse.ProtoReflect.Descriptor instead. 2220 func (*ListFeaturesResponse) Descriptor() ([]byte, []int) { 2221 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{25} 2222 } 2223 2224 func (x *ListFeaturesResponse) GetFeatures() []*Feature { 2225 if x != nil { 2226 return x.Features 2227 } 2228 return nil 2229 } 2230 2231 func (x *ListFeaturesResponse) GetNextPageToken() string { 2232 if x != nil { 2233 return x.NextPageToken 2234 } 2235 return "" 2236 } 2237 2238 // Request message for 2239 // [FeaturestoreService.SearchFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures]. 2240 type SearchFeaturesRequest struct { 2241 state protoimpl.MessageState 2242 sizeCache protoimpl.SizeCache 2243 unknownFields protoimpl.UnknownFields 2244 2245 // Required. The resource name of the Location to search Features. 2246 // Format: 2247 // `projects/{project}/locations/{location}` 2248 Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"` 2249 // Query string that is a conjunction of field-restricted queries and/or 2250 // field-restricted filters. Field-restricted queries and filters can be 2251 // combined using `AND` to form a conjunction. 2252 // 2253 // A field query is in the form FIELD:QUERY. This implicitly checks if QUERY 2254 // exists as a substring within Feature's FIELD. The QUERY 2255 // and the FIELD are converted to a sequence of words (i.e. tokens) for 2256 // comparison. This is done by: 2257 // 2258 // - Removing leading/trailing whitespace and tokenizing the search value. 2259 // Characters that are not one of alphanumeric `[a-zA-Z0-9]`, underscore 2260 // `_`, or asterisk `*` are treated as delimiters for tokens. `*` is treated 2261 // as a wildcard that matches characters within a token. 2262 // - Ignoring case. 2263 // - Prepending an asterisk to the first and appending an asterisk to the 2264 // last token in QUERY. 2265 // 2266 // A QUERY must be either a singular token or a phrase. A phrase is one or 2267 // multiple words enclosed in double quotation marks ("). With phrases, the 2268 // order of the words is important. Words in the phrase must be matching in 2269 // order and consecutively. 2270 // 2271 // Supported FIELDs for field-restricted queries: 2272 // 2273 // * `feature_id` 2274 // * `description` 2275 // * `entity_type_id` 2276 // 2277 // Examples: 2278 // 2279 // * `feature_id: foo` --> Matches a Feature with ID containing the substring 2280 // `foo` (eg. `foo`, `foofeature`, `barfoo`). 2281 // * `feature_id: foo*feature` --> Matches a Feature with ID containing the 2282 // substring `foo*feature` (eg. `foobarfeature`). 2283 // * `feature_id: foo AND description: bar` --> Matches a Feature with ID 2284 // containing the substring `foo` and description containing the substring 2285 // `bar`. 2286 // 2287 // Besides field queries, the following exact-match filters are 2288 // supported. The exact-match filters do not support wildcards. Unlike 2289 // field-restricted queries, exact-match filters are case-sensitive. 2290 // 2291 // * `feature_id`: Supports = comparisons. 2292 // * `description`: Supports = comparisons. Multi-token filters should be 2293 // enclosed in quotes. 2294 // * `entity_type_id`: Supports = comparisons. 2295 // * `value_type`: Supports = and != comparisons. 2296 // * `labels`: Supports key-value equality as well as key presence. 2297 // * `featurestore_id`: Supports = comparisons. 2298 // 2299 // Examples: 2300 // 2301 // * `description = "foo bar"` --> Any Feature with description exactly equal 2302 // to `foo bar` 2303 // - `value_type = DOUBLE` --> Features whose type is DOUBLE. 2304 // - `labels.active = yes AND labels.env = prod` --> Features having both 2305 // (active: yes) and (env: prod) labels. 2306 // - `labels.env: *` --> Any Feature which has a label with `env` as the 2307 // key. 2308 Query string `protobuf:"bytes,3,opt,name=query,proto3" json:"query,omitempty"` 2309 // The maximum number of Features to return. The service may return fewer 2310 // than this value. If unspecified, at most 100 Features will be returned. 2311 // The maximum value is 100; any value greater than 100 will be coerced to 2312 // 100. 2313 PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 2314 // A page token, received from a previous 2315 // [FeaturestoreService.SearchFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures] 2316 // call. Provide this to retrieve the subsequent page. 2317 // 2318 // When paginating, all other parameters provided to 2319 // [FeaturestoreService.SearchFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures], 2320 // except `page_size`, must match the call that provided the page token. 2321 PageToken string `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 2322 } 2323 2324 func (x *SearchFeaturesRequest) Reset() { 2325 *x = SearchFeaturesRequest{} 2326 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[26] 2327 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2328 ms.StoreMessageInfo(mi) 2329 } 2330 2331 func (x *SearchFeaturesRequest) String() string { 2332 return protoimpl.X.MessageStringOf(x) 2333 } 2334 2335 func (*SearchFeaturesRequest) ProtoMessage() {} 2336 2337 func (x *SearchFeaturesRequest) ProtoReflect() protoreflect.Message { 2338 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[26] 2339 if x != nil { 2340 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2341 if ms.LoadMessageInfo() == nil { 2342 ms.StoreMessageInfo(mi) 2343 } 2344 return ms 2345 } 2346 return mi.MessageOf(x) 2347 } 2348 2349 // Deprecated: Use SearchFeaturesRequest.ProtoReflect.Descriptor instead. 2350 func (*SearchFeaturesRequest) Descriptor() ([]byte, []int) { 2351 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{26} 2352 } 2353 2354 func (x *SearchFeaturesRequest) GetLocation() string { 2355 if x != nil { 2356 return x.Location 2357 } 2358 return "" 2359 } 2360 2361 func (x *SearchFeaturesRequest) GetQuery() string { 2362 if x != nil { 2363 return x.Query 2364 } 2365 return "" 2366 } 2367 2368 func (x *SearchFeaturesRequest) GetPageSize() int32 { 2369 if x != nil { 2370 return x.PageSize 2371 } 2372 return 0 2373 } 2374 2375 func (x *SearchFeaturesRequest) GetPageToken() string { 2376 if x != nil { 2377 return x.PageToken 2378 } 2379 return "" 2380 } 2381 2382 // Response message for 2383 // [FeaturestoreService.SearchFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures]. 2384 type SearchFeaturesResponse struct { 2385 state protoimpl.MessageState 2386 sizeCache protoimpl.SizeCache 2387 unknownFields protoimpl.UnknownFields 2388 2389 // The Features matching the request. 2390 // 2391 // Fields returned: 2392 // 2393 // - `name` 2394 // - `description` 2395 // - `labels` 2396 // - `create_time` 2397 // - `update_time` 2398 Features []*Feature `protobuf:"bytes,1,rep,name=features,proto3" json:"features,omitempty"` 2399 // A token, which can be sent as 2400 // [SearchFeaturesRequest.page_token][google.cloud.aiplatform.v1beta1.SearchFeaturesRequest.page_token] 2401 // to retrieve the next page. If this field is omitted, there are no 2402 // subsequent pages. 2403 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 2404 } 2405 2406 func (x *SearchFeaturesResponse) Reset() { 2407 *x = SearchFeaturesResponse{} 2408 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[27] 2409 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2410 ms.StoreMessageInfo(mi) 2411 } 2412 2413 func (x *SearchFeaturesResponse) String() string { 2414 return protoimpl.X.MessageStringOf(x) 2415 } 2416 2417 func (*SearchFeaturesResponse) ProtoMessage() {} 2418 2419 func (x *SearchFeaturesResponse) ProtoReflect() protoreflect.Message { 2420 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[27] 2421 if x != nil { 2422 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2423 if ms.LoadMessageInfo() == nil { 2424 ms.StoreMessageInfo(mi) 2425 } 2426 return ms 2427 } 2428 return mi.MessageOf(x) 2429 } 2430 2431 // Deprecated: Use SearchFeaturesResponse.ProtoReflect.Descriptor instead. 2432 func (*SearchFeaturesResponse) Descriptor() ([]byte, []int) { 2433 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{27} 2434 } 2435 2436 func (x *SearchFeaturesResponse) GetFeatures() []*Feature { 2437 if x != nil { 2438 return x.Features 2439 } 2440 return nil 2441 } 2442 2443 func (x *SearchFeaturesResponse) GetNextPageToken() string { 2444 if x != nil { 2445 return x.NextPageToken 2446 } 2447 return "" 2448 } 2449 2450 // Request message for 2451 // [FeaturestoreService.UpdateFeature][google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateFeature]. 2452 // Request message for 2453 // [FeatureRegistryService.UpdateFeature][google.cloud.aiplatform.v1beta1.FeatureRegistryService.UpdateFeature]. 2454 type UpdateFeatureRequest struct { 2455 state protoimpl.MessageState 2456 sizeCache protoimpl.SizeCache 2457 unknownFields protoimpl.UnknownFields 2458 2459 // Required. The Feature's `name` field is used to identify the Feature to be 2460 // updated. 2461 // Format: 2462 // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}` 2463 // `projects/{project}/locations/{location}/featureGroups/{feature_group}/features/{feature}` 2464 Feature *Feature `protobuf:"bytes,1,opt,name=feature,proto3" json:"feature,omitempty"` 2465 // Field mask is used to specify the fields to be overwritten in the 2466 // Features resource by the update. 2467 // The fields specified in the update_mask are relative to the resource, not 2468 // the full request. A field will be overwritten if it is in the mask. If the 2469 // user does not provide a mask then only the non-empty fields present in the 2470 // request will be overwritten. Set the update_mask to `*` to override all 2471 // fields. 2472 // 2473 // Updatable fields: 2474 // 2475 // - `description` 2476 // - `labels` 2477 // - `disable_monitoring` (Not supported for FeatureRegistryService Feature) 2478 // - `point_of_contact` (Not supported for FeaturestoreService FeatureStore) 2479 UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 2480 } 2481 2482 func (x *UpdateFeatureRequest) Reset() { 2483 *x = UpdateFeatureRequest{} 2484 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[28] 2485 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2486 ms.StoreMessageInfo(mi) 2487 } 2488 2489 func (x *UpdateFeatureRequest) String() string { 2490 return protoimpl.X.MessageStringOf(x) 2491 } 2492 2493 func (*UpdateFeatureRequest) ProtoMessage() {} 2494 2495 func (x *UpdateFeatureRequest) ProtoReflect() protoreflect.Message { 2496 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[28] 2497 if x != nil { 2498 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2499 if ms.LoadMessageInfo() == nil { 2500 ms.StoreMessageInfo(mi) 2501 } 2502 return ms 2503 } 2504 return mi.MessageOf(x) 2505 } 2506 2507 // Deprecated: Use UpdateFeatureRequest.ProtoReflect.Descriptor instead. 2508 func (*UpdateFeatureRequest) Descriptor() ([]byte, []int) { 2509 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{28} 2510 } 2511 2512 func (x *UpdateFeatureRequest) GetFeature() *Feature { 2513 if x != nil { 2514 return x.Feature 2515 } 2516 return nil 2517 } 2518 2519 func (x *UpdateFeatureRequest) GetUpdateMask() *fieldmaskpb.FieldMask { 2520 if x != nil { 2521 return x.UpdateMask 2522 } 2523 return nil 2524 } 2525 2526 // Request message for 2527 // [FeaturestoreService.DeleteFeature][google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeature]. 2528 // Request message for 2529 // [FeatureRegistryService.DeleteFeature][google.cloud.aiplatform.v1beta1.FeatureRegistryService.DeleteFeature]. 2530 type DeleteFeatureRequest struct { 2531 state protoimpl.MessageState 2532 sizeCache protoimpl.SizeCache 2533 unknownFields protoimpl.UnknownFields 2534 2535 // Required. The name of the Features to be deleted. 2536 // Format: 2537 // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}` 2538 // `projects/{project}/locations/{location}/featureGroups/{feature_group}/features/{feature}` 2539 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 2540 } 2541 2542 func (x *DeleteFeatureRequest) Reset() { 2543 *x = DeleteFeatureRequest{} 2544 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[29] 2545 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2546 ms.StoreMessageInfo(mi) 2547 } 2548 2549 func (x *DeleteFeatureRequest) String() string { 2550 return protoimpl.X.MessageStringOf(x) 2551 } 2552 2553 func (*DeleteFeatureRequest) ProtoMessage() {} 2554 2555 func (x *DeleteFeatureRequest) ProtoReflect() protoreflect.Message { 2556 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[29] 2557 if x != nil { 2558 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2559 if ms.LoadMessageInfo() == nil { 2560 ms.StoreMessageInfo(mi) 2561 } 2562 return ms 2563 } 2564 return mi.MessageOf(x) 2565 } 2566 2567 // Deprecated: Use DeleteFeatureRequest.ProtoReflect.Descriptor instead. 2568 func (*DeleteFeatureRequest) Descriptor() ([]byte, []int) { 2569 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{29} 2570 } 2571 2572 func (x *DeleteFeatureRequest) GetName() string { 2573 if x != nil { 2574 return x.Name 2575 } 2576 return "" 2577 } 2578 2579 // Details of operations that perform create Featurestore. 2580 type CreateFeaturestoreOperationMetadata struct { 2581 state protoimpl.MessageState 2582 sizeCache protoimpl.SizeCache 2583 unknownFields protoimpl.UnknownFields 2584 2585 // Operation metadata for Featurestore. 2586 GenericMetadata *GenericOperationMetadata `protobuf:"bytes,1,opt,name=generic_metadata,json=genericMetadata,proto3" json:"generic_metadata,omitempty"` 2587 } 2588 2589 func (x *CreateFeaturestoreOperationMetadata) Reset() { 2590 *x = CreateFeaturestoreOperationMetadata{} 2591 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[30] 2592 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2593 ms.StoreMessageInfo(mi) 2594 } 2595 2596 func (x *CreateFeaturestoreOperationMetadata) String() string { 2597 return protoimpl.X.MessageStringOf(x) 2598 } 2599 2600 func (*CreateFeaturestoreOperationMetadata) ProtoMessage() {} 2601 2602 func (x *CreateFeaturestoreOperationMetadata) ProtoReflect() protoreflect.Message { 2603 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[30] 2604 if x != nil { 2605 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2606 if ms.LoadMessageInfo() == nil { 2607 ms.StoreMessageInfo(mi) 2608 } 2609 return ms 2610 } 2611 return mi.MessageOf(x) 2612 } 2613 2614 // Deprecated: Use CreateFeaturestoreOperationMetadata.ProtoReflect.Descriptor instead. 2615 func (*CreateFeaturestoreOperationMetadata) Descriptor() ([]byte, []int) { 2616 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{30} 2617 } 2618 2619 func (x *CreateFeaturestoreOperationMetadata) GetGenericMetadata() *GenericOperationMetadata { 2620 if x != nil { 2621 return x.GenericMetadata 2622 } 2623 return nil 2624 } 2625 2626 // Details of operations that perform update Featurestore. 2627 type UpdateFeaturestoreOperationMetadata struct { 2628 state protoimpl.MessageState 2629 sizeCache protoimpl.SizeCache 2630 unknownFields protoimpl.UnknownFields 2631 2632 // Operation metadata for Featurestore. 2633 GenericMetadata *GenericOperationMetadata `protobuf:"bytes,1,opt,name=generic_metadata,json=genericMetadata,proto3" json:"generic_metadata,omitempty"` 2634 } 2635 2636 func (x *UpdateFeaturestoreOperationMetadata) Reset() { 2637 *x = UpdateFeaturestoreOperationMetadata{} 2638 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[31] 2639 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2640 ms.StoreMessageInfo(mi) 2641 } 2642 2643 func (x *UpdateFeaturestoreOperationMetadata) String() string { 2644 return protoimpl.X.MessageStringOf(x) 2645 } 2646 2647 func (*UpdateFeaturestoreOperationMetadata) ProtoMessage() {} 2648 2649 func (x *UpdateFeaturestoreOperationMetadata) ProtoReflect() protoreflect.Message { 2650 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[31] 2651 if x != nil { 2652 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2653 if ms.LoadMessageInfo() == nil { 2654 ms.StoreMessageInfo(mi) 2655 } 2656 return ms 2657 } 2658 return mi.MessageOf(x) 2659 } 2660 2661 // Deprecated: Use UpdateFeaturestoreOperationMetadata.ProtoReflect.Descriptor instead. 2662 func (*UpdateFeaturestoreOperationMetadata) Descriptor() ([]byte, []int) { 2663 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{31} 2664 } 2665 2666 func (x *UpdateFeaturestoreOperationMetadata) GetGenericMetadata() *GenericOperationMetadata { 2667 if x != nil { 2668 return x.GenericMetadata 2669 } 2670 return nil 2671 } 2672 2673 // Details of operations that perform import Feature values. 2674 type ImportFeatureValuesOperationMetadata struct { 2675 state protoimpl.MessageState 2676 sizeCache protoimpl.SizeCache 2677 unknownFields protoimpl.UnknownFields 2678 2679 // Operation metadata for Featurestore import Feature values. 2680 GenericMetadata *GenericOperationMetadata `protobuf:"bytes,1,opt,name=generic_metadata,json=genericMetadata,proto3" json:"generic_metadata,omitempty"` 2681 // Number of entities that have been imported by the operation. 2682 ImportedEntityCount int64 `protobuf:"varint,2,opt,name=imported_entity_count,json=importedEntityCount,proto3" json:"imported_entity_count,omitempty"` 2683 // Number of Feature values that have been imported by the operation. 2684 ImportedFeatureValueCount int64 `protobuf:"varint,3,opt,name=imported_feature_value_count,json=importedFeatureValueCount,proto3" json:"imported_feature_value_count,omitempty"` 2685 // The source URI from where Feature values are imported. 2686 SourceUris []string `protobuf:"bytes,4,rep,name=source_uris,json=sourceUris,proto3" json:"source_uris,omitempty"` 2687 // The number of rows in input source that weren't imported due to either 2688 // * Not having any featureValues. 2689 // * Having a null entityId. 2690 // * Having a null timestamp. 2691 // * Not being parsable (applicable for CSV sources). 2692 InvalidRowCount int64 `protobuf:"varint,6,opt,name=invalid_row_count,json=invalidRowCount,proto3" json:"invalid_row_count,omitempty"` 2693 // The number rows that weren't ingested due to having timestamps outside the 2694 // retention boundary. 2695 TimestampOutsideRetentionRowsCount int64 `protobuf:"varint,7,opt,name=timestamp_outside_retention_rows_count,json=timestampOutsideRetentionRowsCount,proto3" json:"timestamp_outside_retention_rows_count,omitempty"` 2696 // List of ImportFeatureValues operations running under a single EntityType 2697 // that are blocking this operation. 2698 BlockingOperationIds []int64 `protobuf:"varint,8,rep,packed,name=blocking_operation_ids,json=blockingOperationIds,proto3" json:"blocking_operation_ids,omitempty"` 2699 } 2700 2701 func (x *ImportFeatureValuesOperationMetadata) Reset() { 2702 *x = ImportFeatureValuesOperationMetadata{} 2703 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[32] 2704 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2705 ms.StoreMessageInfo(mi) 2706 } 2707 2708 func (x *ImportFeatureValuesOperationMetadata) String() string { 2709 return protoimpl.X.MessageStringOf(x) 2710 } 2711 2712 func (*ImportFeatureValuesOperationMetadata) ProtoMessage() {} 2713 2714 func (x *ImportFeatureValuesOperationMetadata) ProtoReflect() protoreflect.Message { 2715 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[32] 2716 if x != nil { 2717 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2718 if ms.LoadMessageInfo() == nil { 2719 ms.StoreMessageInfo(mi) 2720 } 2721 return ms 2722 } 2723 return mi.MessageOf(x) 2724 } 2725 2726 // Deprecated: Use ImportFeatureValuesOperationMetadata.ProtoReflect.Descriptor instead. 2727 func (*ImportFeatureValuesOperationMetadata) Descriptor() ([]byte, []int) { 2728 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{32} 2729 } 2730 2731 func (x *ImportFeatureValuesOperationMetadata) GetGenericMetadata() *GenericOperationMetadata { 2732 if x != nil { 2733 return x.GenericMetadata 2734 } 2735 return nil 2736 } 2737 2738 func (x *ImportFeatureValuesOperationMetadata) GetImportedEntityCount() int64 { 2739 if x != nil { 2740 return x.ImportedEntityCount 2741 } 2742 return 0 2743 } 2744 2745 func (x *ImportFeatureValuesOperationMetadata) GetImportedFeatureValueCount() int64 { 2746 if x != nil { 2747 return x.ImportedFeatureValueCount 2748 } 2749 return 0 2750 } 2751 2752 func (x *ImportFeatureValuesOperationMetadata) GetSourceUris() []string { 2753 if x != nil { 2754 return x.SourceUris 2755 } 2756 return nil 2757 } 2758 2759 func (x *ImportFeatureValuesOperationMetadata) GetInvalidRowCount() int64 { 2760 if x != nil { 2761 return x.InvalidRowCount 2762 } 2763 return 0 2764 } 2765 2766 func (x *ImportFeatureValuesOperationMetadata) GetTimestampOutsideRetentionRowsCount() int64 { 2767 if x != nil { 2768 return x.TimestampOutsideRetentionRowsCount 2769 } 2770 return 0 2771 } 2772 2773 func (x *ImportFeatureValuesOperationMetadata) GetBlockingOperationIds() []int64 { 2774 if x != nil { 2775 return x.BlockingOperationIds 2776 } 2777 return nil 2778 } 2779 2780 // Details of operations that exports Features values. 2781 type ExportFeatureValuesOperationMetadata struct { 2782 state protoimpl.MessageState 2783 sizeCache protoimpl.SizeCache 2784 unknownFields protoimpl.UnknownFields 2785 2786 // Operation metadata for Featurestore export Feature values. 2787 GenericMetadata *GenericOperationMetadata `protobuf:"bytes,1,opt,name=generic_metadata,json=genericMetadata,proto3" json:"generic_metadata,omitempty"` 2788 } 2789 2790 func (x *ExportFeatureValuesOperationMetadata) Reset() { 2791 *x = ExportFeatureValuesOperationMetadata{} 2792 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[33] 2793 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2794 ms.StoreMessageInfo(mi) 2795 } 2796 2797 func (x *ExportFeatureValuesOperationMetadata) String() string { 2798 return protoimpl.X.MessageStringOf(x) 2799 } 2800 2801 func (*ExportFeatureValuesOperationMetadata) ProtoMessage() {} 2802 2803 func (x *ExportFeatureValuesOperationMetadata) ProtoReflect() protoreflect.Message { 2804 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[33] 2805 if x != nil { 2806 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2807 if ms.LoadMessageInfo() == nil { 2808 ms.StoreMessageInfo(mi) 2809 } 2810 return ms 2811 } 2812 return mi.MessageOf(x) 2813 } 2814 2815 // Deprecated: Use ExportFeatureValuesOperationMetadata.ProtoReflect.Descriptor instead. 2816 func (*ExportFeatureValuesOperationMetadata) Descriptor() ([]byte, []int) { 2817 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{33} 2818 } 2819 2820 func (x *ExportFeatureValuesOperationMetadata) GetGenericMetadata() *GenericOperationMetadata { 2821 if x != nil { 2822 return x.GenericMetadata 2823 } 2824 return nil 2825 } 2826 2827 // Details of operations that batch reads Feature values. 2828 type BatchReadFeatureValuesOperationMetadata struct { 2829 state protoimpl.MessageState 2830 sizeCache protoimpl.SizeCache 2831 unknownFields protoimpl.UnknownFields 2832 2833 // Operation metadata for Featurestore batch read Features values. 2834 GenericMetadata *GenericOperationMetadata `protobuf:"bytes,1,opt,name=generic_metadata,json=genericMetadata,proto3" json:"generic_metadata,omitempty"` 2835 } 2836 2837 func (x *BatchReadFeatureValuesOperationMetadata) Reset() { 2838 *x = BatchReadFeatureValuesOperationMetadata{} 2839 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[34] 2840 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2841 ms.StoreMessageInfo(mi) 2842 } 2843 2844 func (x *BatchReadFeatureValuesOperationMetadata) String() string { 2845 return protoimpl.X.MessageStringOf(x) 2846 } 2847 2848 func (*BatchReadFeatureValuesOperationMetadata) ProtoMessage() {} 2849 2850 func (x *BatchReadFeatureValuesOperationMetadata) ProtoReflect() protoreflect.Message { 2851 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[34] 2852 if x != nil { 2853 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2854 if ms.LoadMessageInfo() == nil { 2855 ms.StoreMessageInfo(mi) 2856 } 2857 return ms 2858 } 2859 return mi.MessageOf(x) 2860 } 2861 2862 // Deprecated: Use BatchReadFeatureValuesOperationMetadata.ProtoReflect.Descriptor instead. 2863 func (*BatchReadFeatureValuesOperationMetadata) Descriptor() ([]byte, []int) { 2864 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{34} 2865 } 2866 2867 func (x *BatchReadFeatureValuesOperationMetadata) GetGenericMetadata() *GenericOperationMetadata { 2868 if x != nil { 2869 return x.GenericMetadata 2870 } 2871 return nil 2872 } 2873 2874 // Details of operations that delete Feature values. 2875 type DeleteFeatureValuesOperationMetadata struct { 2876 state protoimpl.MessageState 2877 sizeCache protoimpl.SizeCache 2878 unknownFields protoimpl.UnknownFields 2879 2880 // Operation metadata for Featurestore delete Features values. 2881 GenericMetadata *GenericOperationMetadata `protobuf:"bytes,1,opt,name=generic_metadata,json=genericMetadata,proto3" json:"generic_metadata,omitempty"` 2882 } 2883 2884 func (x *DeleteFeatureValuesOperationMetadata) Reset() { 2885 *x = DeleteFeatureValuesOperationMetadata{} 2886 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[35] 2887 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2888 ms.StoreMessageInfo(mi) 2889 } 2890 2891 func (x *DeleteFeatureValuesOperationMetadata) String() string { 2892 return protoimpl.X.MessageStringOf(x) 2893 } 2894 2895 func (*DeleteFeatureValuesOperationMetadata) ProtoMessage() {} 2896 2897 func (x *DeleteFeatureValuesOperationMetadata) ProtoReflect() protoreflect.Message { 2898 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[35] 2899 if x != nil { 2900 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2901 if ms.LoadMessageInfo() == nil { 2902 ms.StoreMessageInfo(mi) 2903 } 2904 return ms 2905 } 2906 return mi.MessageOf(x) 2907 } 2908 2909 // Deprecated: Use DeleteFeatureValuesOperationMetadata.ProtoReflect.Descriptor instead. 2910 func (*DeleteFeatureValuesOperationMetadata) Descriptor() ([]byte, []int) { 2911 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{35} 2912 } 2913 2914 func (x *DeleteFeatureValuesOperationMetadata) GetGenericMetadata() *GenericOperationMetadata { 2915 if x != nil { 2916 return x.GenericMetadata 2917 } 2918 return nil 2919 } 2920 2921 // Details of operations that perform create EntityType. 2922 type CreateEntityTypeOperationMetadata struct { 2923 state protoimpl.MessageState 2924 sizeCache protoimpl.SizeCache 2925 unknownFields protoimpl.UnknownFields 2926 2927 // Operation metadata for EntityType. 2928 GenericMetadata *GenericOperationMetadata `protobuf:"bytes,1,opt,name=generic_metadata,json=genericMetadata,proto3" json:"generic_metadata,omitempty"` 2929 } 2930 2931 func (x *CreateEntityTypeOperationMetadata) Reset() { 2932 *x = CreateEntityTypeOperationMetadata{} 2933 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[36] 2934 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2935 ms.StoreMessageInfo(mi) 2936 } 2937 2938 func (x *CreateEntityTypeOperationMetadata) String() string { 2939 return protoimpl.X.MessageStringOf(x) 2940 } 2941 2942 func (*CreateEntityTypeOperationMetadata) ProtoMessage() {} 2943 2944 func (x *CreateEntityTypeOperationMetadata) ProtoReflect() protoreflect.Message { 2945 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[36] 2946 if x != nil { 2947 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2948 if ms.LoadMessageInfo() == nil { 2949 ms.StoreMessageInfo(mi) 2950 } 2951 return ms 2952 } 2953 return mi.MessageOf(x) 2954 } 2955 2956 // Deprecated: Use CreateEntityTypeOperationMetadata.ProtoReflect.Descriptor instead. 2957 func (*CreateEntityTypeOperationMetadata) Descriptor() ([]byte, []int) { 2958 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{36} 2959 } 2960 2961 func (x *CreateEntityTypeOperationMetadata) GetGenericMetadata() *GenericOperationMetadata { 2962 if x != nil { 2963 return x.GenericMetadata 2964 } 2965 return nil 2966 } 2967 2968 // Details of operations that perform create Feature. 2969 type CreateFeatureOperationMetadata struct { 2970 state protoimpl.MessageState 2971 sizeCache protoimpl.SizeCache 2972 unknownFields protoimpl.UnknownFields 2973 2974 // Operation metadata for Feature. 2975 GenericMetadata *GenericOperationMetadata `protobuf:"bytes,1,opt,name=generic_metadata,json=genericMetadata,proto3" json:"generic_metadata,omitempty"` 2976 } 2977 2978 func (x *CreateFeatureOperationMetadata) Reset() { 2979 *x = CreateFeatureOperationMetadata{} 2980 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[37] 2981 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2982 ms.StoreMessageInfo(mi) 2983 } 2984 2985 func (x *CreateFeatureOperationMetadata) String() string { 2986 return protoimpl.X.MessageStringOf(x) 2987 } 2988 2989 func (*CreateFeatureOperationMetadata) ProtoMessage() {} 2990 2991 func (x *CreateFeatureOperationMetadata) ProtoReflect() protoreflect.Message { 2992 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[37] 2993 if x != nil { 2994 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2995 if ms.LoadMessageInfo() == nil { 2996 ms.StoreMessageInfo(mi) 2997 } 2998 return ms 2999 } 3000 return mi.MessageOf(x) 3001 } 3002 3003 // Deprecated: Use CreateFeatureOperationMetadata.ProtoReflect.Descriptor instead. 3004 func (*CreateFeatureOperationMetadata) Descriptor() ([]byte, []int) { 3005 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{37} 3006 } 3007 3008 func (x *CreateFeatureOperationMetadata) GetGenericMetadata() *GenericOperationMetadata { 3009 if x != nil { 3010 return x.GenericMetadata 3011 } 3012 return nil 3013 } 3014 3015 // Details of operations that perform batch create Features. 3016 type BatchCreateFeaturesOperationMetadata struct { 3017 state protoimpl.MessageState 3018 sizeCache protoimpl.SizeCache 3019 unknownFields protoimpl.UnknownFields 3020 3021 // Operation metadata for Feature. 3022 GenericMetadata *GenericOperationMetadata `protobuf:"bytes,1,opt,name=generic_metadata,json=genericMetadata,proto3" json:"generic_metadata,omitempty"` 3023 } 3024 3025 func (x *BatchCreateFeaturesOperationMetadata) Reset() { 3026 *x = BatchCreateFeaturesOperationMetadata{} 3027 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[38] 3028 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3029 ms.StoreMessageInfo(mi) 3030 } 3031 3032 func (x *BatchCreateFeaturesOperationMetadata) String() string { 3033 return protoimpl.X.MessageStringOf(x) 3034 } 3035 3036 func (*BatchCreateFeaturesOperationMetadata) ProtoMessage() {} 3037 3038 func (x *BatchCreateFeaturesOperationMetadata) ProtoReflect() protoreflect.Message { 3039 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[38] 3040 if x != nil { 3041 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3042 if ms.LoadMessageInfo() == nil { 3043 ms.StoreMessageInfo(mi) 3044 } 3045 return ms 3046 } 3047 return mi.MessageOf(x) 3048 } 3049 3050 // Deprecated: Use BatchCreateFeaturesOperationMetadata.ProtoReflect.Descriptor instead. 3051 func (*BatchCreateFeaturesOperationMetadata) Descriptor() ([]byte, []int) { 3052 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{38} 3053 } 3054 3055 func (x *BatchCreateFeaturesOperationMetadata) GetGenericMetadata() *GenericOperationMetadata { 3056 if x != nil { 3057 return x.GenericMetadata 3058 } 3059 return nil 3060 } 3061 3062 // Request message for 3063 // [FeaturestoreService.DeleteFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeatureValues]. 3064 type DeleteFeatureValuesRequest struct { 3065 state protoimpl.MessageState 3066 sizeCache protoimpl.SizeCache 3067 unknownFields protoimpl.UnknownFields 3068 3069 // Defines options to select feature values to be deleted. 3070 // 3071 // Types that are assignable to DeleteOption: 3072 // 3073 // *DeleteFeatureValuesRequest_SelectEntity_ 3074 // *DeleteFeatureValuesRequest_SelectTimeRangeAndFeature_ 3075 DeleteOption isDeleteFeatureValuesRequest_DeleteOption `protobuf_oneof:"DeleteOption"` 3076 // Required. The resource name of the EntityType grouping the Features for 3077 // which values are being deleted from. Format: 3078 // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}` 3079 EntityType string `protobuf:"bytes,1,opt,name=entity_type,json=entityType,proto3" json:"entity_type,omitempty"` 3080 } 3081 3082 func (x *DeleteFeatureValuesRequest) Reset() { 3083 *x = DeleteFeatureValuesRequest{} 3084 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[39] 3085 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3086 ms.StoreMessageInfo(mi) 3087 } 3088 3089 func (x *DeleteFeatureValuesRequest) String() string { 3090 return protoimpl.X.MessageStringOf(x) 3091 } 3092 3093 func (*DeleteFeatureValuesRequest) ProtoMessage() {} 3094 3095 func (x *DeleteFeatureValuesRequest) ProtoReflect() protoreflect.Message { 3096 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[39] 3097 if x != nil { 3098 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3099 if ms.LoadMessageInfo() == nil { 3100 ms.StoreMessageInfo(mi) 3101 } 3102 return ms 3103 } 3104 return mi.MessageOf(x) 3105 } 3106 3107 // Deprecated: Use DeleteFeatureValuesRequest.ProtoReflect.Descriptor instead. 3108 func (*DeleteFeatureValuesRequest) Descriptor() ([]byte, []int) { 3109 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{39} 3110 } 3111 3112 func (m *DeleteFeatureValuesRequest) GetDeleteOption() isDeleteFeatureValuesRequest_DeleteOption { 3113 if m != nil { 3114 return m.DeleteOption 3115 } 3116 return nil 3117 } 3118 3119 func (x *DeleteFeatureValuesRequest) GetSelectEntity() *DeleteFeatureValuesRequest_SelectEntity { 3120 if x, ok := x.GetDeleteOption().(*DeleteFeatureValuesRequest_SelectEntity_); ok { 3121 return x.SelectEntity 3122 } 3123 return nil 3124 } 3125 3126 func (x *DeleteFeatureValuesRequest) GetSelectTimeRangeAndFeature() *DeleteFeatureValuesRequest_SelectTimeRangeAndFeature { 3127 if x, ok := x.GetDeleteOption().(*DeleteFeatureValuesRequest_SelectTimeRangeAndFeature_); ok { 3128 return x.SelectTimeRangeAndFeature 3129 } 3130 return nil 3131 } 3132 3133 func (x *DeleteFeatureValuesRequest) GetEntityType() string { 3134 if x != nil { 3135 return x.EntityType 3136 } 3137 return "" 3138 } 3139 3140 type isDeleteFeatureValuesRequest_DeleteOption interface { 3141 isDeleteFeatureValuesRequest_DeleteOption() 3142 } 3143 3144 type DeleteFeatureValuesRequest_SelectEntity_ struct { 3145 // Select feature values to be deleted by specifying entities. 3146 SelectEntity *DeleteFeatureValuesRequest_SelectEntity `protobuf:"bytes,2,opt,name=select_entity,json=selectEntity,proto3,oneof"` 3147 } 3148 3149 type DeleteFeatureValuesRequest_SelectTimeRangeAndFeature_ struct { 3150 // Select feature values to be deleted by specifying time range and 3151 // features. 3152 SelectTimeRangeAndFeature *DeleteFeatureValuesRequest_SelectTimeRangeAndFeature `protobuf:"bytes,3,opt,name=select_time_range_and_feature,json=selectTimeRangeAndFeature,proto3,oneof"` 3153 } 3154 3155 func (*DeleteFeatureValuesRequest_SelectEntity_) isDeleteFeatureValuesRequest_DeleteOption() {} 3156 3157 func (*DeleteFeatureValuesRequest_SelectTimeRangeAndFeature_) isDeleteFeatureValuesRequest_DeleteOption() { 3158 } 3159 3160 // Response message for 3161 // [FeaturestoreService.DeleteFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeatureValues]. 3162 type DeleteFeatureValuesResponse struct { 3163 state protoimpl.MessageState 3164 sizeCache protoimpl.SizeCache 3165 unknownFields protoimpl.UnknownFields 3166 3167 // Response based on which delete option is specified in the 3168 // request 3169 // 3170 // Types that are assignable to Response: 3171 // 3172 // *DeleteFeatureValuesResponse_SelectEntity_ 3173 // *DeleteFeatureValuesResponse_SelectTimeRangeAndFeature_ 3174 Response isDeleteFeatureValuesResponse_Response `protobuf_oneof:"response"` 3175 } 3176 3177 func (x *DeleteFeatureValuesResponse) Reset() { 3178 *x = DeleteFeatureValuesResponse{} 3179 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[40] 3180 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3181 ms.StoreMessageInfo(mi) 3182 } 3183 3184 func (x *DeleteFeatureValuesResponse) String() string { 3185 return protoimpl.X.MessageStringOf(x) 3186 } 3187 3188 func (*DeleteFeatureValuesResponse) ProtoMessage() {} 3189 3190 func (x *DeleteFeatureValuesResponse) ProtoReflect() protoreflect.Message { 3191 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[40] 3192 if x != nil { 3193 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3194 if ms.LoadMessageInfo() == nil { 3195 ms.StoreMessageInfo(mi) 3196 } 3197 return ms 3198 } 3199 return mi.MessageOf(x) 3200 } 3201 3202 // Deprecated: Use DeleteFeatureValuesResponse.ProtoReflect.Descriptor instead. 3203 func (*DeleteFeatureValuesResponse) Descriptor() ([]byte, []int) { 3204 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{40} 3205 } 3206 3207 func (m *DeleteFeatureValuesResponse) GetResponse() isDeleteFeatureValuesResponse_Response { 3208 if m != nil { 3209 return m.Response 3210 } 3211 return nil 3212 } 3213 3214 func (x *DeleteFeatureValuesResponse) GetSelectEntity() *DeleteFeatureValuesResponse_SelectEntity { 3215 if x, ok := x.GetResponse().(*DeleteFeatureValuesResponse_SelectEntity_); ok { 3216 return x.SelectEntity 3217 } 3218 return nil 3219 } 3220 3221 func (x *DeleteFeatureValuesResponse) GetSelectTimeRangeAndFeature() *DeleteFeatureValuesResponse_SelectTimeRangeAndFeature { 3222 if x, ok := x.GetResponse().(*DeleteFeatureValuesResponse_SelectTimeRangeAndFeature_); ok { 3223 return x.SelectTimeRangeAndFeature 3224 } 3225 return nil 3226 } 3227 3228 type isDeleteFeatureValuesResponse_Response interface { 3229 isDeleteFeatureValuesResponse_Response() 3230 } 3231 3232 type DeleteFeatureValuesResponse_SelectEntity_ struct { 3233 // Response for request specifying the entities to delete 3234 SelectEntity *DeleteFeatureValuesResponse_SelectEntity `protobuf:"bytes,1,opt,name=select_entity,json=selectEntity,proto3,oneof"` 3235 } 3236 3237 type DeleteFeatureValuesResponse_SelectTimeRangeAndFeature_ struct { 3238 // Response for request specifying time range and feature 3239 SelectTimeRangeAndFeature *DeleteFeatureValuesResponse_SelectTimeRangeAndFeature `protobuf:"bytes,2,opt,name=select_time_range_and_feature,json=selectTimeRangeAndFeature,proto3,oneof"` 3240 } 3241 3242 func (*DeleteFeatureValuesResponse_SelectEntity_) isDeleteFeatureValuesResponse_Response() {} 3243 3244 func (*DeleteFeatureValuesResponse_SelectTimeRangeAndFeature_) isDeleteFeatureValuesResponse_Response() { 3245 } 3246 3247 // Selector for entityId. Getting ids from the given source. 3248 type EntityIdSelector struct { 3249 state protoimpl.MessageState 3250 sizeCache protoimpl.SizeCache 3251 unknownFields protoimpl.UnknownFields 3252 3253 // Details about the source data, including the location of the storage and 3254 // the format. 3255 // 3256 // Types that are assignable to EntityIdsSource: 3257 // 3258 // *EntityIdSelector_CsvSource 3259 EntityIdsSource isEntityIdSelector_EntityIdsSource `protobuf_oneof:"EntityIdsSource"` 3260 // Source column that holds entity IDs. If not provided, entity IDs are 3261 // extracted from the column named entity_id. 3262 EntityIdField string `protobuf:"bytes,5,opt,name=entity_id_field,json=entityIdField,proto3" json:"entity_id_field,omitempty"` 3263 } 3264 3265 func (x *EntityIdSelector) Reset() { 3266 *x = EntityIdSelector{} 3267 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[41] 3268 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3269 ms.StoreMessageInfo(mi) 3270 } 3271 3272 func (x *EntityIdSelector) String() string { 3273 return protoimpl.X.MessageStringOf(x) 3274 } 3275 3276 func (*EntityIdSelector) ProtoMessage() {} 3277 3278 func (x *EntityIdSelector) ProtoReflect() protoreflect.Message { 3279 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[41] 3280 if x != nil { 3281 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3282 if ms.LoadMessageInfo() == nil { 3283 ms.StoreMessageInfo(mi) 3284 } 3285 return ms 3286 } 3287 return mi.MessageOf(x) 3288 } 3289 3290 // Deprecated: Use EntityIdSelector.ProtoReflect.Descriptor instead. 3291 func (*EntityIdSelector) Descriptor() ([]byte, []int) { 3292 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{41} 3293 } 3294 3295 func (m *EntityIdSelector) GetEntityIdsSource() isEntityIdSelector_EntityIdsSource { 3296 if m != nil { 3297 return m.EntityIdsSource 3298 } 3299 return nil 3300 } 3301 3302 func (x *EntityIdSelector) GetCsvSource() *CsvSource { 3303 if x, ok := x.GetEntityIdsSource().(*EntityIdSelector_CsvSource); ok { 3304 return x.CsvSource 3305 } 3306 return nil 3307 } 3308 3309 func (x *EntityIdSelector) GetEntityIdField() string { 3310 if x != nil { 3311 return x.EntityIdField 3312 } 3313 return "" 3314 } 3315 3316 type isEntityIdSelector_EntityIdsSource interface { 3317 isEntityIdSelector_EntityIdsSource() 3318 } 3319 3320 type EntityIdSelector_CsvSource struct { 3321 // Source of Csv 3322 CsvSource *CsvSource `protobuf:"bytes,3,opt,name=csv_source,json=csvSource,proto3,oneof"` 3323 } 3324 3325 func (*EntityIdSelector_CsvSource) isEntityIdSelector_EntityIdsSource() {} 3326 3327 // Defines the Feature value(s) to import. 3328 type ImportFeatureValuesRequest_FeatureSpec struct { 3329 state protoimpl.MessageState 3330 sizeCache protoimpl.SizeCache 3331 unknownFields protoimpl.UnknownFields 3332 3333 // Required. ID of the Feature to import values of. This Feature must exist 3334 // in the target EntityType, or the request will fail. 3335 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` 3336 // Source column to get the Feature values from. If not set, uses the column 3337 // with the same name as the Feature ID. 3338 SourceField string `protobuf:"bytes,2,opt,name=source_field,json=sourceField,proto3" json:"source_field,omitempty"` 3339 } 3340 3341 func (x *ImportFeatureValuesRequest_FeatureSpec) Reset() { 3342 *x = ImportFeatureValuesRequest_FeatureSpec{} 3343 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[42] 3344 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3345 ms.StoreMessageInfo(mi) 3346 } 3347 3348 func (x *ImportFeatureValuesRequest_FeatureSpec) String() string { 3349 return protoimpl.X.MessageStringOf(x) 3350 } 3351 3352 func (*ImportFeatureValuesRequest_FeatureSpec) ProtoMessage() {} 3353 3354 func (x *ImportFeatureValuesRequest_FeatureSpec) ProtoReflect() protoreflect.Message { 3355 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[42] 3356 if x != nil { 3357 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3358 if ms.LoadMessageInfo() == nil { 3359 ms.StoreMessageInfo(mi) 3360 } 3361 return ms 3362 } 3363 return mi.MessageOf(x) 3364 } 3365 3366 // Deprecated: Use ImportFeatureValuesRequest_FeatureSpec.ProtoReflect.Descriptor instead. 3367 func (*ImportFeatureValuesRequest_FeatureSpec) Descriptor() ([]byte, []int) { 3368 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{6, 0} 3369 } 3370 3371 func (x *ImportFeatureValuesRequest_FeatureSpec) GetId() string { 3372 if x != nil { 3373 return x.Id 3374 } 3375 return "" 3376 } 3377 3378 func (x *ImportFeatureValuesRequest_FeatureSpec) GetSourceField() string { 3379 if x != nil { 3380 return x.SourceField 3381 } 3382 return "" 3383 } 3384 3385 // Describe pass-through fields in read_instance source. 3386 type BatchReadFeatureValuesRequest_PassThroughField struct { 3387 state protoimpl.MessageState 3388 sizeCache protoimpl.SizeCache 3389 unknownFields protoimpl.UnknownFields 3390 3391 // Required. The name of the field in the CSV header or the name of the 3392 // column in BigQuery table. The naming restriction is the same as 3393 // [Feature.name][google.cloud.aiplatform.v1beta1.Feature.name]. 3394 FieldName string `protobuf:"bytes,1,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` 3395 } 3396 3397 func (x *BatchReadFeatureValuesRequest_PassThroughField) Reset() { 3398 *x = BatchReadFeatureValuesRequest_PassThroughField{} 3399 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[43] 3400 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3401 ms.StoreMessageInfo(mi) 3402 } 3403 3404 func (x *BatchReadFeatureValuesRequest_PassThroughField) String() string { 3405 return protoimpl.X.MessageStringOf(x) 3406 } 3407 3408 func (*BatchReadFeatureValuesRequest_PassThroughField) ProtoMessage() {} 3409 3410 func (x *BatchReadFeatureValuesRequest_PassThroughField) ProtoReflect() protoreflect.Message { 3411 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[43] 3412 if x != nil { 3413 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3414 if ms.LoadMessageInfo() == nil { 3415 ms.StoreMessageInfo(mi) 3416 } 3417 return ms 3418 } 3419 return mi.MessageOf(x) 3420 } 3421 3422 // Deprecated: Use BatchReadFeatureValuesRequest_PassThroughField.ProtoReflect.Descriptor instead. 3423 func (*BatchReadFeatureValuesRequest_PassThroughField) Descriptor() ([]byte, []int) { 3424 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{8, 0} 3425 } 3426 3427 func (x *BatchReadFeatureValuesRequest_PassThroughField) GetFieldName() string { 3428 if x != nil { 3429 return x.FieldName 3430 } 3431 return "" 3432 } 3433 3434 // Selects Features of an EntityType to read values of and specifies read 3435 // settings. 3436 type BatchReadFeatureValuesRequest_EntityTypeSpec struct { 3437 state protoimpl.MessageState 3438 sizeCache protoimpl.SizeCache 3439 unknownFields protoimpl.UnknownFields 3440 3441 // Required. ID of the EntityType to select Features. The EntityType id is 3442 // the 3443 // [entity_type_id][google.cloud.aiplatform.v1beta1.CreateEntityTypeRequest.entity_type_id] 3444 // specified during EntityType creation. 3445 EntityTypeId string `protobuf:"bytes,1,opt,name=entity_type_id,json=entityTypeId,proto3" json:"entity_type_id,omitempty"` 3446 // Required. Selectors choosing which Feature values to read from the 3447 // EntityType. 3448 FeatureSelector *FeatureSelector `protobuf:"bytes,2,opt,name=feature_selector,json=featureSelector,proto3" json:"feature_selector,omitempty"` 3449 // Per-Feature settings for the batch read. 3450 Settings []*DestinationFeatureSetting `protobuf:"bytes,3,rep,name=settings,proto3" json:"settings,omitempty"` 3451 } 3452 3453 func (x *BatchReadFeatureValuesRequest_EntityTypeSpec) Reset() { 3454 *x = BatchReadFeatureValuesRequest_EntityTypeSpec{} 3455 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[44] 3456 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3457 ms.StoreMessageInfo(mi) 3458 } 3459 3460 func (x *BatchReadFeatureValuesRequest_EntityTypeSpec) String() string { 3461 return protoimpl.X.MessageStringOf(x) 3462 } 3463 3464 func (*BatchReadFeatureValuesRequest_EntityTypeSpec) ProtoMessage() {} 3465 3466 func (x *BatchReadFeatureValuesRequest_EntityTypeSpec) ProtoReflect() protoreflect.Message { 3467 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[44] 3468 if x != nil { 3469 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3470 if ms.LoadMessageInfo() == nil { 3471 ms.StoreMessageInfo(mi) 3472 } 3473 return ms 3474 } 3475 return mi.MessageOf(x) 3476 } 3477 3478 // Deprecated: Use BatchReadFeatureValuesRequest_EntityTypeSpec.ProtoReflect.Descriptor instead. 3479 func (*BatchReadFeatureValuesRequest_EntityTypeSpec) Descriptor() ([]byte, []int) { 3480 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{8, 1} 3481 } 3482 3483 func (x *BatchReadFeatureValuesRequest_EntityTypeSpec) GetEntityTypeId() string { 3484 if x != nil { 3485 return x.EntityTypeId 3486 } 3487 return "" 3488 } 3489 3490 func (x *BatchReadFeatureValuesRequest_EntityTypeSpec) GetFeatureSelector() *FeatureSelector { 3491 if x != nil { 3492 return x.FeatureSelector 3493 } 3494 return nil 3495 } 3496 3497 func (x *BatchReadFeatureValuesRequest_EntityTypeSpec) GetSettings() []*DestinationFeatureSetting { 3498 if x != nil { 3499 return x.Settings 3500 } 3501 return nil 3502 } 3503 3504 // Describes exporting the latest Feature values of all entities of the 3505 // EntityType between [start_time, snapshot_time]. 3506 type ExportFeatureValuesRequest_SnapshotExport struct { 3507 state protoimpl.MessageState 3508 sizeCache protoimpl.SizeCache 3509 unknownFields protoimpl.UnknownFields 3510 3511 // Exports Feature values as of this timestamp. If not set, 3512 // retrieve values as of now. Timestamp, if present, must not have higher 3513 // than millisecond precision. 3514 SnapshotTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=snapshot_time,json=snapshotTime,proto3" json:"snapshot_time,omitempty"` 3515 // Excludes Feature values with feature generation timestamp before this 3516 // timestamp. If not set, retrieve oldest values kept in Feature Store. 3517 // Timestamp, if present, must not have higher than millisecond precision. 3518 StartTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 3519 } 3520 3521 func (x *ExportFeatureValuesRequest_SnapshotExport) Reset() { 3522 *x = ExportFeatureValuesRequest_SnapshotExport{} 3523 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[45] 3524 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3525 ms.StoreMessageInfo(mi) 3526 } 3527 3528 func (x *ExportFeatureValuesRequest_SnapshotExport) String() string { 3529 return protoimpl.X.MessageStringOf(x) 3530 } 3531 3532 func (*ExportFeatureValuesRequest_SnapshotExport) ProtoMessage() {} 3533 3534 func (x *ExportFeatureValuesRequest_SnapshotExport) ProtoReflect() protoreflect.Message { 3535 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[45] 3536 if x != nil { 3537 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3538 if ms.LoadMessageInfo() == nil { 3539 ms.StoreMessageInfo(mi) 3540 } 3541 return ms 3542 } 3543 return mi.MessageOf(x) 3544 } 3545 3546 // Deprecated: Use ExportFeatureValuesRequest_SnapshotExport.ProtoReflect.Descriptor instead. 3547 func (*ExportFeatureValuesRequest_SnapshotExport) Descriptor() ([]byte, []int) { 3548 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{9, 0} 3549 } 3550 3551 func (x *ExportFeatureValuesRequest_SnapshotExport) GetSnapshotTime() *timestamppb.Timestamp { 3552 if x != nil { 3553 return x.SnapshotTime 3554 } 3555 return nil 3556 } 3557 3558 func (x *ExportFeatureValuesRequest_SnapshotExport) GetStartTime() *timestamppb.Timestamp { 3559 if x != nil { 3560 return x.StartTime 3561 } 3562 return nil 3563 } 3564 3565 // Describes exporting all historical Feature values of all entities of the 3566 // EntityType between [start_time, end_time]. 3567 type ExportFeatureValuesRequest_FullExport struct { 3568 state protoimpl.MessageState 3569 sizeCache protoimpl.SizeCache 3570 unknownFields protoimpl.UnknownFields 3571 3572 // Excludes Feature values with feature generation timestamp before this 3573 // timestamp. If not set, retrieve oldest values kept in Feature Store. 3574 // Timestamp, if present, must not have higher than millisecond precision. 3575 StartTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 3576 // Exports Feature values as of this timestamp. If not set, 3577 // retrieve values as of now. Timestamp, if present, must not have higher 3578 // than millisecond precision. 3579 EndTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` 3580 } 3581 3582 func (x *ExportFeatureValuesRequest_FullExport) Reset() { 3583 *x = ExportFeatureValuesRequest_FullExport{} 3584 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[46] 3585 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3586 ms.StoreMessageInfo(mi) 3587 } 3588 3589 func (x *ExportFeatureValuesRequest_FullExport) String() string { 3590 return protoimpl.X.MessageStringOf(x) 3591 } 3592 3593 func (*ExportFeatureValuesRequest_FullExport) ProtoMessage() {} 3594 3595 func (x *ExportFeatureValuesRequest_FullExport) ProtoReflect() protoreflect.Message { 3596 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[46] 3597 if x != nil { 3598 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3599 if ms.LoadMessageInfo() == nil { 3600 ms.StoreMessageInfo(mi) 3601 } 3602 return ms 3603 } 3604 return mi.MessageOf(x) 3605 } 3606 3607 // Deprecated: Use ExportFeatureValuesRequest_FullExport.ProtoReflect.Descriptor instead. 3608 func (*ExportFeatureValuesRequest_FullExport) Descriptor() ([]byte, []int) { 3609 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{9, 1} 3610 } 3611 3612 func (x *ExportFeatureValuesRequest_FullExport) GetStartTime() *timestamppb.Timestamp { 3613 if x != nil { 3614 return x.StartTime 3615 } 3616 return nil 3617 } 3618 3619 func (x *ExportFeatureValuesRequest_FullExport) GetEndTime() *timestamppb.Timestamp { 3620 if x != nil { 3621 return x.EndTime 3622 } 3623 return nil 3624 } 3625 3626 // Message to select entity. 3627 // If an entity id is selected, all the feature values corresponding to the 3628 // entity id will be deleted, including the entityId. 3629 type DeleteFeatureValuesRequest_SelectEntity struct { 3630 state protoimpl.MessageState 3631 sizeCache protoimpl.SizeCache 3632 unknownFields protoimpl.UnknownFields 3633 3634 // Required. Selectors choosing feature values of which entity id to be 3635 // deleted from the EntityType. 3636 EntityIdSelector *EntityIdSelector `protobuf:"bytes,1,opt,name=entity_id_selector,json=entityIdSelector,proto3" json:"entity_id_selector,omitempty"` 3637 } 3638 3639 func (x *DeleteFeatureValuesRequest_SelectEntity) Reset() { 3640 *x = DeleteFeatureValuesRequest_SelectEntity{} 3641 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[47] 3642 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3643 ms.StoreMessageInfo(mi) 3644 } 3645 3646 func (x *DeleteFeatureValuesRequest_SelectEntity) String() string { 3647 return protoimpl.X.MessageStringOf(x) 3648 } 3649 3650 func (*DeleteFeatureValuesRequest_SelectEntity) ProtoMessage() {} 3651 3652 func (x *DeleteFeatureValuesRequest_SelectEntity) ProtoReflect() protoreflect.Message { 3653 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[47] 3654 if x != nil { 3655 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3656 if ms.LoadMessageInfo() == nil { 3657 ms.StoreMessageInfo(mi) 3658 } 3659 return ms 3660 } 3661 return mi.MessageOf(x) 3662 } 3663 3664 // Deprecated: Use DeleteFeatureValuesRequest_SelectEntity.ProtoReflect.Descriptor instead. 3665 func (*DeleteFeatureValuesRequest_SelectEntity) Descriptor() ([]byte, []int) { 3666 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{39, 0} 3667 } 3668 3669 func (x *DeleteFeatureValuesRequest_SelectEntity) GetEntityIdSelector() *EntityIdSelector { 3670 if x != nil { 3671 return x.EntityIdSelector 3672 } 3673 return nil 3674 } 3675 3676 // Message to select time range and feature. 3677 // Values of the selected feature generated within an inclusive time range 3678 // will be deleted. Using this option permanently deletes the feature values 3679 // from the specified feature IDs within the specified time range. 3680 // This might include data from the online storage. If you want to retain 3681 // any deleted historical data in the online storage, you must re-ingest it. 3682 type DeleteFeatureValuesRequest_SelectTimeRangeAndFeature struct { 3683 state protoimpl.MessageState 3684 sizeCache protoimpl.SizeCache 3685 unknownFields protoimpl.UnknownFields 3686 3687 // Required. Select feature generated within a half-inclusive time range. 3688 // The time range is lower inclusive and upper exclusive. 3689 TimeRange *interval.Interval `protobuf:"bytes,1,opt,name=time_range,json=timeRange,proto3" json:"time_range,omitempty"` 3690 // Required. Selectors choosing which feature values to be deleted from the 3691 // EntityType. 3692 FeatureSelector *FeatureSelector `protobuf:"bytes,2,opt,name=feature_selector,json=featureSelector,proto3" json:"feature_selector,omitempty"` 3693 // If set, data will not be deleted from online storage. 3694 // When time range is older than the data in online storage, setting this to 3695 // be true will make the deletion have no impact on online serving. 3696 SkipOnlineStorageDelete bool `protobuf:"varint,3,opt,name=skip_online_storage_delete,json=skipOnlineStorageDelete,proto3" json:"skip_online_storage_delete,omitempty"` 3697 } 3698 3699 func (x *DeleteFeatureValuesRequest_SelectTimeRangeAndFeature) Reset() { 3700 *x = DeleteFeatureValuesRequest_SelectTimeRangeAndFeature{} 3701 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[48] 3702 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3703 ms.StoreMessageInfo(mi) 3704 } 3705 3706 func (x *DeleteFeatureValuesRequest_SelectTimeRangeAndFeature) String() string { 3707 return protoimpl.X.MessageStringOf(x) 3708 } 3709 3710 func (*DeleteFeatureValuesRequest_SelectTimeRangeAndFeature) ProtoMessage() {} 3711 3712 func (x *DeleteFeatureValuesRequest_SelectTimeRangeAndFeature) ProtoReflect() protoreflect.Message { 3713 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[48] 3714 if x != nil { 3715 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3716 if ms.LoadMessageInfo() == nil { 3717 ms.StoreMessageInfo(mi) 3718 } 3719 return ms 3720 } 3721 return mi.MessageOf(x) 3722 } 3723 3724 // Deprecated: Use DeleteFeatureValuesRequest_SelectTimeRangeAndFeature.ProtoReflect.Descriptor instead. 3725 func (*DeleteFeatureValuesRequest_SelectTimeRangeAndFeature) Descriptor() ([]byte, []int) { 3726 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{39, 1} 3727 } 3728 3729 func (x *DeleteFeatureValuesRequest_SelectTimeRangeAndFeature) GetTimeRange() *interval.Interval { 3730 if x != nil { 3731 return x.TimeRange 3732 } 3733 return nil 3734 } 3735 3736 func (x *DeleteFeatureValuesRequest_SelectTimeRangeAndFeature) GetFeatureSelector() *FeatureSelector { 3737 if x != nil { 3738 return x.FeatureSelector 3739 } 3740 return nil 3741 } 3742 3743 func (x *DeleteFeatureValuesRequest_SelectTimeRangeAndFeature) GetSkipOnlineStorageDelete() bool { 3744 if x != nil { 3745 return x.SkipOnlineStorageDelete 3746 } 3747 return false 3748 } 3749 3750 // Response message if the request uses the SelectEntity option. 3751 type DeleteFeatureValuesResponse_SelectEntity struct { 3752 state protoimpl.MessageState 3753 sizeCache protoimpl.SizeCache 3754 unknownFields protoimpl.UnknownFields 3755 3756 // The count of deleted entity rows in the offline storage. 3757 // Each row corresponds to the combination of an entity ID and a timestamp. 3758 // One entity ID can have multiple rows in the offline storage. 3759 OfflineStorageDeletedEntityRowCount int64 `protobuf:"varint,1,opt,name=offline_storage_deleted_entity_row_count,json=offlineStorageDeletedEntityRowCount,proto3" json:"offline_storage_deleted_entity_row_count,omitempty"` 3760 // The count of deleted entities in the online storage. 3761 // Each entity ID corresponds to one entity. 3762 OnlineStorageDeletedEntityCount int64 `protobuf:"varint,2,opt,name=online_storage_deleted_entity_count,json=onlineStorageDeletedEntityCount,proto3" json:"online_storage_deleted_entity_count,omitempty"` 3763 } 3764 3765 func (x *DeleteFeatureValuesResponse_SelectEntity) Reset() { 3766 *x = DeleteFeatureValuesResponse_SelectEntity{} 3767 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[49] 3768 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3769 ms.StoreMessageInfo(mi) 3770 } 3771 3772 func (x *DeleteFeatureValuesResponse_SelectEntity) String() string { 3773 return protoimpl.X.MessageStringOf(x) 3774 } 3775 3776 func (*DeleteFeatureValuesResponse_SelectEntity) ProtoMessage() {} 3777 3778 func (x *DeleteFeatureValuesResponse_SelectEntity) ProtoReflect() protoreflect.Message { 3779 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[49] 3780 if x != nil { 3781 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3782 if ms.LoadMessageInfo() == nil { 3783 ms.StoreMessageInfo(mi) 3784 } 3785 return ms 3786 } 3787 return mi.MessageOf(x) 3788 } 3789 3790 // Deprecated: Use DeleteFeatureValuesResponse_SelectEntity.ProtoReflect.Descriptor instead. 3791 func (*DeleteFeatureValuesResponse_SelectEntity) Descriptor() ([]byte, []int) { 3792 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{40, 0} 3793 } 3794 3795 func (x *DeleteFeatureValuesResponse_SelectEntity) GetOfflineStorageDeletedEntityRowCount() int64 { 3796 if x != nil { 3797 return x.OfflineStorageDeletedEntityRowCount 3798 } 3799 return 0 3800 } 3801 3802 func (x *DeleteFeatureValuesResponse_SelectEntity) GetOnlineStorageDeletedEntityCount() int64 { 3803 if x != nil { 3804 return x.OnlineStorageDeletedEntityCount 3805 } 3806 return 0 3807 } 3808 3809 // Response message if the request uses the SelectTimeRangeAndFeature option. 3810 type DeleteFeatureValuesResponse_SelectTimeRangeAndFeature struct { 3811 state protoimpl.MessageState 3812 sizeCache protoimpl.SizeCache 3813 unknownFields protoimpl.UnknownFields 3814 3815 // The count of the features or columns impacted. 3816 // This is the same as the feature count in the request. 3817 ImpactedFeatureCount int64 `protobuf:"varint,1,opt,name=impacted_feature_count,json=impactedFeatureCount,proto3" json:"impacted_feature_count,omitempty"` 3818 // The count of modified entity rows in the offline storage. 3819 // Each row corresponds to the combination of an entity ID and a timestamp. 3820 // One entity ID can have multiple rows in the offline storage. 3821 // Within each row, only the features specified in the request are 3822 // deleted. 3823 OfflineStorageModifiedEntityRowCount int64 `protobuf:"varint,2,opt,name=offline_storage_modified_entity_row_count,json=offlineStorageModifiedEntityRowCount,proto3" json:"offline_storage_modified_entity_row_count,omitempty"` 3824 // The count of modified entities in the online storage. 3825 // Each entity ID corresponds to one entity. 3826 // Within each entity, only the features specified in the request are 3827 // deleted. 3828 OnlineStorageModifiedEntityCount int64 `protobuf:"varint,3,opt,name=online_storage_modified_entity_count,json=onlineStorageModifiedEntityCount,proto3" json:"online_storage_modified_entity_count,omitempty"` 3829 } 3830 3831 func (x *DeleteFeatureValuesResponse_SelectTimeRangeAndFeature) Reset() { 3832 *x = DeleteFeatureValuesResponse_SelectTimeRangeAndFeature{} 3833 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[50] 3834 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3835 ms.StoreMessageInfo(mi) 3836 } 3837 3838 func (x *DeleteFeatureValuesResponse_SelectTimeRangeAndFeature) String() string { 3839 return protoimpl.X.MessageStringOf(x) 3840 } 3841 3842 func (*DeleteFeatureValuesResponse_SelectTimeRangeAndFeature) ProtoMessage() {} 3843 3844 func (x *DeleteFeatureValuesResponse_SelectTimeRangeAndFeature) ProtoReflect() protoreflect.Message { 3845 mi := &file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[50] 3846 if x != nil { 3847 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3848 if ms.LoadMessageInfo() == nil { 3849 ms.StoreMessageInfo(mi) 3850 } 3851 return ms 3852 } 3853 return mi.MessageOf(x) 3854 } 3855 3856 // Deprecated: Use DeleteFeatureValuesResponse_SelectTimeRangeAndFeature.ProtoReflect.Descriptor instead. 3857 func (*DeleteFeatureValuesResponse_SelectTimeRangeAndFeature) Descriptor() ([]byte, []int) { 3858 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP(), []int{40, 1} 3859 } 3860 3861 func (x *DeleteFeatureValuesResponse_SelectTimeRangeAndFeature) GetImpactedFeatureCount() int64 { 3862 if x != nil { 3863 return x.ImpactedFeatureCount 3864 } 3865 return 0 3866 } 3867 3868 func (x *DeleteFeatureValuesResponse_SelectTimeRangeAndFeature) GetOfflineStorageModifiedEntityRowCount() int64 { 3869 if x != nil { 3870 return x.OfflineStorageModifiedEntityRowCount 3871 } 3872 return 0 3873 } 3874 3875 func (x *DeleteFeatureValuesResponse_SelectTimeRangeAndFeature) GetOnlineStorageModifiedEntityCount() int64 { 3876 if x != nil { 3877 return x.OnlineStorageModifiedEntityCount 3878 } 3879 return 0 3880 } 3881 3882 var File_google_cloud_aiplatform_v1beta1_featurestore_service_proto protoreflect.FileDescriptor 3883 3884 var file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDesc = []byte{ 3885 0x0a, 0x3a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 3886 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 3887 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x73, 3888 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67, 0x6f, 3889 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 3890 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1c, 0x67, 3891 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 3892 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 3893 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 3894 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 3895 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 3896 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 3897 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 3898 0x1a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 3899 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 3900 0x31, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, 3901 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 3902 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 3903 0x65, 0x74, 0x61, 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 3904 0x74, 0x6f, 0x1a, 0x35, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 3905 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 3906 0x74, 0x61, 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 3907 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x36, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3908 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 3909 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 3910 0x72, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 3911 0x6f, 0x1a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 3912 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 3913 0x61, 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 3914 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 3915 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 3916 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 3917 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 3918 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 3919 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 3920 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 3921 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 3922 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 3923 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 3924 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 3925 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 3926 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 3927 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 3928 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 3929 0x70, 0x65, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 3930 0x6f, 0x22, 0xe9, 0x01, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 3931 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 3932 0x46, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 3933 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x12, 0x26, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 3934 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 3935 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 3936 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 3937 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 3938 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 3939 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 3940 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, 0x03, 0xe0, 0x41, 3941 0x02, 0x52, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 3942 0x2c, 0x0a, 0x0f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 3943 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x66, 3944 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x64, 0x22, 0x5c, 0x0a, 3945 0x16, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 3946 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 3947 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x61, 3948 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3949 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 3950 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8a, 0x02, 0x0a, 0x18, 3951 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 3952 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 3953 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 3954 0x12, 0x26, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 3955 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 3956 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 3957 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 3958 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 3959 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 3960 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 3961 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 3962 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 3963 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 3964 0x37, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x06, 0x20, 0x01, 3965 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 3966 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x08, 3967 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x98, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 3968 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 3969 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 3970 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 3971 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 3972 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 3973 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x0d, 0x66, 0x65, 3974 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 3975 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 3976 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 3977 0x6b, 0x65, 0x6e, 0x22, 0xb0, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 3978 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 3979 0x74, 0x12, 0x56, 0x0a, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 3980 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3981 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 3982 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 3983 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x66, 0x65, 0x61, 3984 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 3985 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 3986 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 3987 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 3988 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x75, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 3989 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 3990 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 3991 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x61, 0x69, 0x70, 0x6c, 0x61, 3992 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 3993 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 3994 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 3995 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0xef, 0x06, 3996 0x0a, 0x1a, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 3997 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x0b, 3998 0x61, 0x76, 0x72, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 3999 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 4000 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 4001 0x74, 0x61, 0x31, 0x2e, 0x41, 0x76, 0x72, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 4002 0x52, 0x0a, 0x61, 0x76, 0x72, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x5a, 0x0a, 0x0f, 4003 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 4004 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 4005 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 4006 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 4007 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 4008 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x63, 0x73, 0x76, 0x5f, 4009 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 4010 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 4011 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 4012 0x73, 0x76, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x63, 0x73, 0x76, 0x53, 4013 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 4014 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 4015 0x09, 0x48, 0x01, 0x52, 0x10, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 4016 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x3f, 0x0a, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 4017 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 4018 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 4019 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x01, 0x52, 0x0b, 0x66, 0x65, 0x61, 0x74, 0x75, 4020 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 4021 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 4022 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 4023 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 4024 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 4025 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 4026 0x69, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 4027 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x71, 0x0a, 4028 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x08, 4029 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 4030 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 4031 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x61, 4032 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 4033 0x74, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 4034 0x41, 0x02, 0x52, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x73, 4035 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 4036 0x6e, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 4037 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 4038 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 4039 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x77, 0x6f, 4040 0x72, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x1a, 0x64, 0x69, 0x73, 4041 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 4042 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x64, 4043 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 4044 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x1a, 0x45, 0x0a, 0x0b, 0x46, 0x65, 0x61, 0x74, 0x75, 4045 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 4046 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 4047 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 4048 0x09, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x08, 4049 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x66, 0x65, 0x61, 0x74, 4050 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 4051 0x92, 0x02, 0x0a, 0x1b, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 4052 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 4053 0x32, 0x0a, 0x15, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, 4054 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 4055 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x6f, 4056 0x75, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x1c, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 4057 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 4058 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x69, 0x6d, 0x70, 0x6f, 0x72, 4059 0x74, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 4060 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 4061 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 4062 0x0f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 4063 0x12, 0x52, 0x0a, 0x26, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6f, 0x75, 4064 0x74, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 4065 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 4066 0x52, 0x22, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4f, 0x75, 0x74, 0x73, 0x69, 4067 0x64, 0x65, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x77, 0x73, 0x43, 4068 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x08, 0x0a, 0x1d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 4069 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 4070 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5a, 0x0a, 0x12, 0x63, 0x73, 0x76, 0x5f, 0x72, 0x65, 4071 0x61, 0x64, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 4072 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 4073 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 4074 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x73, 0x76, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 4075 0x52, 0x10, 0x63, 0x73, 0x76, 0x52, 0x65, 0x61, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 4076 0x65, 0x73, 0x12, 0x69, 0x0a, 0x17, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x72, 4077 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 4078 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 4079 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 4080 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 4081 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x15, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 4082 0x52, 0x65, 0x61, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x52, 0x0a, 4083 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 4084 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x61, 0x69, 0x70, 4085 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 4086 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 4087 0x6f, 0x72, 0x65, 0x52, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 4088 0x65, 0x12, 0x5f, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4089 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 4090 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 4091 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 4092 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4093 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 4094 0x6f, 0x6e, 0x12, 0x7f, 0x0a, 0x13, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 4095 0x67, 0x68, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 4096 0x4f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 4097 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 4098 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 4099 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 4100 0x50, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 4101 0x52, 0x11, 0x70, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x46, 0x69, 0x65, 4102 0x6c, 0x64, 0x73, 0x12, 0x7e, 0x0a, 0x11, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 4103 0x70, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 4104 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 4105 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 4106 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 4107 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 4108 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 4109 0x41, 0x02, 0x52, 0x0f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x53, 0x70, 4110 0x65, 0x63, 0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 4111 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4112 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 4113 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 4114 0x69, 0x6d, 0x65, 0x1a, 0x36, 0x0a, 0x10, 0x50, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 4115 0x67, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 4116 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 4117 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0xf5, 0x01, 0x0a, 0x0e, 4118 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x29, 4119 0x0a, 0x0e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 4120 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x65, 0x6e, 0x74, 4121 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x60, 0x0a, 0x10, 0x66, 0x65, 0x61, 4122 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 4123 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 4124 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 4125 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x6c, 4126 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x65, 0x61, 0x74, 4127 0x75, 0x72, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x56, 0x0a, 0x08, 0x73, 4128 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 4129 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 4130 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 4131 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x61, 0x74, 0x75, 4132 0x72, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 4133 0x6e, 0x67, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 4134 0x6f, 0x6e, 0x22, 0xff, 0x06, 0x0a, 0x1a, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x61, 4135 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 4136 0x74, 0x12, 0x75, 0x0a, 0x0f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x65, 0x78, 4137 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 4138 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 4139 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 4140 0x6f, 0x72, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 4141 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 4142 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 4143 0x6f, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x69, 0x0a, 0x0b, 0x66, 0x75, 0x6c, 0x6c, 4144 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 4145 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 4146 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 4147 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 4148 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x45, 4149 0x78, 0x70, 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x45, 0x78, 0x70, 4150 0x6f, 0x72, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 4151 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 4152 0x0a, 0x24, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 4153 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x74, 0x69, 4154 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 4155 0x70, 0x65, 0x12, 0x5f, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 4156 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4157 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 4158 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 4159 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 4160 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 4161 0x69, 0x6f, 0x6e, 0x12, 0x60, 0x0a, 0x10, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 4162 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 4163 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 4164 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 4165 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 4166 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x6c, 4167 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x56, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 4168 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4169 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 4170 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 4171 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x74, 4172 0x69, 0x6e, 0x67, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x1a, 0x8c, 0x01, 4173 0x0a, 0x0e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 4174 0x12, 0x3f, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 4175 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4176 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 4177 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x54, 0x69, 0x6d, 4178 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 4179 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 4180 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 4181 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x7e, 0x0a, 0x0a, 4182 0x46, 0x75, 0x6c, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 4183 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 4184 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 4185 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 4186 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 4187 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4188 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 4189 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 4190 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x6c, 0x0a, 0x19, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 4191 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 4192 0x67, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 4193 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x66, 0x65, 0x61, 0x74, 4194 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 4195 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 4196 0x52, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x65, 4197 0x6c, 0x64, 0x22, 0xda, 0x02, 0x0a, 0x17, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 4198 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x69, 4199 0x0a, 0x14, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 4200 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 4201 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 4202 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 4203 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 4204 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x13, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 4205 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x69, 0x0a, 0x14, 0x74, 0x66, 0x72, 4206 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 4207 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4208 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 4209 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x46, 0x52, 0x65, 0x63, 0x6f, 4210 0x72, 0x64, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 4211 0x13, 0x74, 0x66, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 4212 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5a, 0x0a, 0x0f, 0x63, 0x73, 0x76, 0x5f, 0x64, 0x65, 0x73, 0x74, 4213 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 4214 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 4215 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 4216 0x43, 0x73, 0x76, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 4217 0x52, 0x0e, 0x63, 0x73, 0x76, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4218 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 4219 0x1d, 0x0a, 0x1b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 4220 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 4221 0x0a, 0x1e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 4222 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 4223 0x22, 0xda, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 4224 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x06, 4225 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 4226 0x02, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 4227 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 4228 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x06, 0x70, 0x61, 4229 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 4230 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 4231 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 4232 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 4233 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 4234 0x70, 0x65, 0x12, 0x29, 0x0a, 0x0e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 4235 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 4236 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0x58, 0x0a, 4237 0x14, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 4238 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 4239 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x61, 0x69, 0x70, 4240 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 4241 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 4242 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x86, 0x02, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 4243 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 4244 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 4245 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x12, 0x24, 0x61, 0x69, 0x70, 0x6c, 4246 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 4247 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 4248 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 4249 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 4250 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 4251 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 4252 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 4253 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 4254 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 4255 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x37, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 4256 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 4257 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 4258 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x73, 0x6b, 4259 0x22, 0x91, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 4260 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0c, 4261 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 4262 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 4263 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 4264 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 4265 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 4266 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 4267 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 4268 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa9, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 4269 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 4270 0x12, 0x51, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 4271 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 4272 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 4273 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 4274 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 4275 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 4276 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4277 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 4278 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 4279 0x22, 0x71, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 4280 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 4281 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 4282 0x26, 0x0a, 0x24, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 4283 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x74, 4284 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 4285 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 4286 0x72, 0x63, 0x65, 0x22, 0xc6, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 4287 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 4288 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 4289 0x02, 0xfa, 0x41, 0x23, 0x12, 0x21, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 4290 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 4291 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 4292 0x47, 0x0a, 0x07, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 4293 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 4294 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 4295 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 4296 0x07, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x65, 0x61, 0x74, 4297 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 4298 0x02, 0x52, 0x09, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x22, 0xb7, 0x01, 0x0a, 4299 0x1a, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 4300 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 4301 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 4302 0xfa, 0x41, 0x23, 0x12, 0x21, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 4303 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 4304 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x56, 4305 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 4306 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 4307 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 4308 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 4309 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 4310 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x63, 0x0a, 0x1b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 4311 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 4312 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 4313 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4314 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 4315 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 4316 0x65, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0xd9, 0x01, 0x0a, 0x11, 4317 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 4318 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 4319 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 4320 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 4321 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 4322 0x12, 0x84, 0x01, 0x0a, 0x1e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 4323 0x74, 0x73, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x5f, 0x73, 4324 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 4325 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 4326 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 4327 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, 0x6e, 0x64, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 4328 0x6c, 0x79, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1a, 0x66, 0x65, 0x61, 4329 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, 0x6e, 0x64, 0x41, 0x6e, 0x6f, 0x6d, 4330 0x61, 0x6c, 0x79, 0x53, 0x70, 0x65, 0x63, 0x22, 0xae, 0x02, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 4331 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 4332 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 4333 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x12, 0x21, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 4334 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 4335 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 4336 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 4337 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 4338 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 4339 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 4340 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 4341 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 4342 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 4343 0x79, 0x12, 0x37, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x06, 4344 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 4345 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 4346 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x61, 4347 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 4348 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x53, 0x74, 4349 0x61, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 4350 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 4351 0x65, 0x12, 0x44, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 4352 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 4353 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 4354 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, 0x66, 4355 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 4356 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 4357 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 4358 0xb0, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 4359 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 4360 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 4361 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 4362 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 4363 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4364 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 4365 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 4366 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 4367 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 4368 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 4369 0x65, 0x6e, 0x22, 0x86, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x65, 0x61, 4370 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 4371 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 4372 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 4373 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 4374 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 4375 0x72, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 4376 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 4377 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x9c, 0x01, 0x0a, 0x14, 4378 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 4379 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x07, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 4380 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 4381 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 4382 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, 4383 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3b, 0x0a, 4384 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 4385 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 4386 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 4387 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x55, 0x0a, 0x14, 0x44, 0x65, 4388 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 4389 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 4390 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 4391 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 4392 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 4393 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x23, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 4394 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 4395 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x64, 0x0a, 0x10, 0x67, 0x65, 0x6e, 4396 0x65, 0x72, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 4397 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 4398 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 4399 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4f, 0x70, 0x65, 4400 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 4401 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 4402 0x8b, 0x01, 0x0a, 0x23, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 4403 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 4404 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x64, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 4405 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 4406 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 4407 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 4408 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 4409 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x67, 0x65, 4410 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xd8, 0x03, 4411 0x0a, 0x24, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 4412 0x61, 0x6c, 0x75, 0x65, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 4413 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x64, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 4414 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 4415 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 4416 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 4417 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 4418 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x67, 0x65, 0x6e, 4419 0x65, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x15, 4420 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 4421 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x69, 0x6d, 0x70, 4422 0x6f, 0x72, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 4423 0x12, 0x3f, 0x0a, 0x1c, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x61, 4424 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 4425 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 4426 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 4427 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 4428 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x72, 4429 0x69, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x72, 0x6f, 4430 0x77, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x69, 4431 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x52, 4432 0x0a, 0x26, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6f, 0x75, 0x74, 0x73, 4433 0x69, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x6f, 4434 0x77, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x22, 4435 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4f, 0x75, 0x74, 0x73, 0x69, 0x64, 0x65, 4436 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x77, 0x73, 0x43, 0x6f, 0x75, 4437 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 4438 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 4439 0x28, 0x03, 0x52, 0x14, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x65, 0x72, 4440 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x8c, 0x01, 0x0a, 0x24, 0x45, 0x78, 0x70, 4441 0x6f, 0x72, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 4442 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 4443 0x61, 0x12, 0x64, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 4444 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 4445 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 4446 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 4447 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 4448 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4d, 4449 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8f, 0x01, 0x0a, 0x27, 0x42, 0x61, 0x74, 0x63, 4450 0x68, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 4451 0x65, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 4452 0x61, 0x74, 0x61, 0x12, 0x64, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x6d, 4453 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 4454 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 4455 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 4456 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4457 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 4458 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8c, 0x01, 0x0a, 0x24, 0x44, 0x65, 4459 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 4460 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 4461 0x74, 0x61, 0x12, 0x64, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x6d, 0x65, 4462 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 4463 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 4464 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 4465 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 4466 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 4467 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x89, 0x01, 0x0a, 0x21, 0x43, 0x72, 0x65, 4468 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x4f, 0x70, 0x65, 4469 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x64, 4470 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 4471 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4472 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 4473 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 4474 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 4475 0x61, 0x74, 0x61, 0x52, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 4476 0x64, 0x61, 0x74, 0x61, 0x22, 0x86, 0x01, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 4477 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 4478 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x64, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 4479 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 4480 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 4481 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 4482 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 4483 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x67, 0x65, 4484 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8c, 0x01, 4485 0x0a, 0x24, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 4486 0x74, 0x75, 0x72, 0x65, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 4487 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x64, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 4488 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 4489 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 4490 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 4491 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 4492 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x67, 0x65, 0x6e, 4493 0x65, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf6, 0x05, 0x0a, 4494 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 4495 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6f, 0x0a, 0x0d, 0x73, 4496 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 4497 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 4498 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 4499 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 4500 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 4501 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0c, 4502 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x99, 0x01, 0x0a, 4503 0x1d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x6e, 4504 0x67, 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 4505 0x20, 0x01, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 4506 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 4507 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 4508 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 4509 0x74, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 4510 0x65, 0x41, 0x6e, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x19, 0x73, 4511 0x65, 0x6c, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6e, 4512 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x4d, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 4513 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 4514 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 4515 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 4516 0x2f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x65, 0x6e, 0x74, 4517 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x74, 0x0a, 0x0c, 0x53, 0x65, 0x6c, 0x65, 0x63, 4518 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x64, 0x0a, 0x12, 0x65, 0x6e, 0x74, 0x69, 0x74, 4519 0x79, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 4520 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 4521 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 4522 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 4523 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x65, 0x6e, 0x74, 4524 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0xf5, 0x01, 4525 0x0a, 0x19, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 4526 0x65, 0x41, 0x6e, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x74, 4527 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 4528 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x49, 0x6e, 4529 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 4530 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x60, 0x0a, 0x10, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 4531 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 4532 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 4533 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 4534 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 4535 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 4536 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x6b, 0x69, 0x70, 4537 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 4538 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x73, 0x6b, 4539 0x69, 0x70, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x44, 4540 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 4541 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xeb, 0x05, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 4542 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 4543 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 4544 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x67, 4545 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 4546 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 4547 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 4548 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 4549 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x65, 0x63, 4550 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x9a, 0x01, 0x0a, 0x1d, 0x73, 0x65, 0x6c, 0x65, 4551 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x61, 0x6e, 4552 0x64, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 4553 0x56, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 4554 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 4555 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 4556 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 4557 0x6c, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6e, 0x64, 4558 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x19, 0x73, 0x65, 0x6c, 0x65, 0x63, 4559 0x74, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6e, 0x64, 0x46, 0x65, 0x61, 4560 0x74, 0x75, 0x72, 0x65, 0x1a, 0xb3, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x45, 4561 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x55, 0x0a, 0x28, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 4562 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 4563 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 4564 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x23, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 4565 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x45, 0x6e, 4566 0x74, 0x69, 0x74, 0x79, 0x52, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x23, 4567 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x64, 4568 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 4569 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 4570 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x45, 4571 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xfa, 0x01, 0x0a, 0x19, 0x53, 4572 0x65, 0x6c, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6e, 4573 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x69, 0x6d, 0x70, 0x61, 4574 0x63, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x75, 4575 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x69, 0x6d, 0x70, 0x61, 0x63, 0x74, 4576 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x57, 4577 0x0a, 0x29, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 4578 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 4579 0x79, 0x5f, 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 4580 0x03, 0x52, 0x24, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 4581 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 4582 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x24, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 4583 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 4584 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 4585 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x20, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 4586 0x72, 0x61, 0x67, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 4587 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 4588 0x6e, 0x73, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 4589 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x4b, 0x0a, 0x0a, 0x63, 0x73, 0x76, 0x5f, 4590 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 4591 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 4592 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 4593 0x73, 0x76, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x63, 0x73, 0x76, 0x53, 4594 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 4595 0x69, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 4596 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x11, 0x0a, 4597 0x0f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 4598 0x32, 0xe5, 0x2b, 0x0a, 0x13, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 4599 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb0, 0x02, 0x0a, 0x12, 0x43, 0x72, 0x65, 4600 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 4601 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 4602 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 4603 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 4604 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 4605 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 4606 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbe, 0x01, 0xca, 0x41, 0x33, 4607 0x0a, 0x0c, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x23, 4608 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 4609 0x72, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 4610 0x61, 0x74, 0x61, 0xda, 0x41, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x66, 0x65, 0x61, 4611 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0xda, 0x41, 0x23, 0x70, 0x61, 0x72, 0x65, 4612 0x6e, 0x74, 0x2c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2c, 4613 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x82, 4614 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x3a, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 4615 0x6f, 0x72, 0x65, 0x22, 0x36, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 4616 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 4617 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x65, 4618 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x12, 0xc0, 0x01, 0x0a, 0x0f, 4619 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 4620 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 4621 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 4622 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 4623 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4624 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 4625 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 4626 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x45, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 4627 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12, 0x36, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 4628 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 4629 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 4630 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd3, 4631 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 4632 0x6f, 0x72, 0x65, 0x73, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 4633 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 4634 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 4635 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 4636 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 4637 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 4638 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 4639 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0xda, 0x41, 0x06, 4640 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12, 0x36, 0x2f, 0x76, 4641 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 4642 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 4643 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 4644 0x6f, 0x72, 0x65, 0x73, 0x12, 0x9c, 0x02, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 4645 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 4646 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 4647 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 4648 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 4649 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4650 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 4651 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xaa, 0x01, 0xca, 0x41, 0x33, 0x0a, 0x0c, 0x46, 0x65, 4652 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x23, 0x55, 0x70, 0x64, 0x61, 4653 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4f, 0x70, 4654 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 4655 0x41, 0x18, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2c, 0x75, 4656 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, 4657 0x3a, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x32, 0x43, 4658 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 4659 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 4660 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 4661 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 4662 0x2f, 0x2a, 0x7d, 0x12, 0xf7, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 4663 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 4664 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 4665 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 4666 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 4667 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 4668 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 4669 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x85, 0x01, 0xca, 0x41, 0x30, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 4670 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 4671 0x74, 0x79, 0x12, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 4672 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 4673 0x6d, 0x65, 0xda, 0x41, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x82, 4674 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x2a, 0x36, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 4675 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 4676 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 4677 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb2, 0x02, 4678 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 4679 0x70, 0x65, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 4680 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 4681 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 4682 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 4683 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 4684 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc4, 0x01, 0xca, 0x41, 4685 0x2f, 0x0a, 0x0a, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x43, 4686 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x4f, 4687 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 4688 0xda, 0x41, 0x12, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 4689 0x5f, 0x74, 0x79, 0x70, 0x65, 0xda, 0x41, 0x21, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x65, 4690 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x65, 0x6e, 0x74, 0x69, 0x74, 4691 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, 0x3a, 4692 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x44, 0x2f, 0x76, 4693 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 4694 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 4695 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 4696 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 4697 0x65, 0x73, 0x12, 0xc8, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 4698 0x54, 0x79, 0x70, 0x65, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 4699 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 4700 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 4701 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 4702 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 4703 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 4704 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x53, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 4705 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x12, 0x44, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 4706 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 4707 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 4708 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 4709 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xdb, 0x01, 4710 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 4711 0x73, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 4712 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 4713 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 4714 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 4715 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 4716 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 4717 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 4718 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 4719 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x12, 0x44, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 4720 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 4721 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 4722 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 4723 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0xfa, 0x01, 0x0a, 0x10, 4724 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 4725 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 4726 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 4727 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 4728 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 4729 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 4730 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x74, 4731 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x7f, 0xda, 0x41, 0x17, 0x65, 0x6e, 0x74, 0x69, 4732 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 4733 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5f, 0x3a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 4734 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x32, 0x50, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 4735 0x2f, 0x7b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6e, 0x61, 4736 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 4737 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 4738 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 4739 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x81, 0x02, 0x0a, 0x10, 0x44, 0x65, 0x6c, 4740 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x2e, 4741 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 4742 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 4743 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 4744 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4745 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 4746 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x93, 0x01, 0xca, 0x41, 0x30, 0x0a, 0x15, 0x67, 0x6f, 4747 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 4748 0x70, 0x74, 0x79, 0x12, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 4749 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 4750 0x61, 0x6d, 0x65, 0xda, 0x41, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x66, 0x6f, 0x72, 0x63, 0x65, 4751 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x2a, 0x44, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 4752 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 4753 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 4754 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 4755 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xa1, 0x02, 0x0a, 4756 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x35, 4757 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 4758 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 4759 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 4760 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 4761 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 4762 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x01, 0xca, 0x41, 0x29, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 4763 0x75, 0x72, 0x65, 0x12, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 4764 0x72, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 4765 0x61, 0x74, 0x61, 0xda, 0x41, 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x66, 0x65, 0x61, 4766 0x74, 0x75, 0x72, 0x65, 0xda, 0x41, 0x19, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x66, 0x65, 4767 0x61, 0x74, 0x75, 0x72, 0x65, 0x2c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 4768 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5a, 0x3a, 0x07, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 4769 0x4f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 4770 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 4771 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 4772 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 4773 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 4774 0x12, 0xb2, 0x02, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 4775 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4776 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 4777 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 4778 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 4779 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 4780 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 4781 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbe, 0x01, 0xca, 0x41, 0x43, 0x0a, 0x1b, 0x42, 0x61, 0x74, 0x63, 4782 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 4783 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 4784 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x4f, 0x70, 0x65, 0x72, 4785 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x0f, 4786 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x82, 4787 0xd3, 0xe4, 0x93, 0x02, 0x60, 0x3a, 0x01, 0x2a, 0x22, 0x5b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 4788 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 4789 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 4790 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 4791 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 4792 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x43, 4793 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0xca, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 4794 0x74, 0x75, 0x72, 0x65, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 4795 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 4796 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 4797 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4798 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 4799 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 4800 0x72, 0x65, 0x22, 0x5e, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 4801 0x51, 0x12, 0x4f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 4802 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 4803 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 4804 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 4805 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2f, 4806 0x2a, 0x7d, 0x12, 0xdd, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 4807 0x72, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 4808 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 4809 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 4810 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 4811 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 4812 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 4813 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 4814 0x22, 0x60, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 4815 0x51, 0x12, 0x4f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 4816 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 4817 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 4818 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 4819 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 4820 0x65, 0x73, 0x12, 0xf0, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 4821 0x74, 0x75, 0x72, 0x65, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 4822 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 4823 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 4824 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 4825 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 4826 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 4827 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x7e, 0xda, 0x41, 0x13, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 4828 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 4829 0x93, 0x02, 0x62, 0x3a, 0x07, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x32, 0x57, 0x2f, 0x76, 4830 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 4831 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 4832 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 4833 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x69, 4834 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 4835 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xf9, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 4836 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 4837 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 4838 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 4839 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 4840 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 4841 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x91, 0x01, 4842 0xca, 0x41, 0x30, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 4843 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x17, 0x44, 0x65, 0x6c, 0x65, 4844 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 4845 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x51, 4846 0x2a, 0x4f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 4847 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 4848 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 4849 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 4850 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2f, 0x2a, 4851 0x7d, 0x12, 0xb2, 0x02, 0x0a, 0x13, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x61, 0x74, 4852 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 4853 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 4854 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 4855 0x72, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 4856 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 4857 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 4858 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbe, 0x01, 0xca, 0x41, 0x43, 0x0a, 0x1b, 0x49, 0x6d, 0x70, 4859 0x6f, 0x72, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 4860 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 4861 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x4f, 0x70, 0x65, 4862 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 4863 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x82, 0xd3, 0xe4, 0x93, 4864 0x02, 0x64, 0x3a, 0x01, 0x2a, 0x22, 0x5f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 4865 0x7b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x70, 0x72, 0x6f, 4866 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4867 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 4868 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 4869 0x2a, 0x7d, 0x3a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 4870 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0xb5, 0x02, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 4871 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 4872 0x73, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 4873 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 4874 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x61, 0x64, 0x46, 0x65, 0x61, 4875 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 4876 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 4877 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4878 0x22, 0xbb, 0x01, 0xca, 0x41, 0x49, 0x0a, 0x1e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x61, 4879 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 4880 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x61, 4881 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x4f, 0x70, 4882 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 4883 0x41, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x82, 0xd3, 4884 0xe4, 0x93, 0x02, 0x5a, 0x3a, 0x01, 0x2a, 0x22, 0x55, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 4885 0x31, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x3d, 4886 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 4887 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 4888 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x61, 4889 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0xb2, 4890 0x02, 0x0a, 0x13, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 4891 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 4892 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 4893 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 4894 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 4895 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 4896 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 4897 0x6f, 0x6e, 0x22, 0xbe, 0x01, 0xca, 0x41, 0x43, 0x0a, 0x1b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 4898 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 4899 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x61, 4900 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 4901 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x0b, 0x65, 0x6e, 4902 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x64, 0x3a, 4903 0x01, 0x2a, 0x22, 0x5f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 4904 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 4905 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 4906 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 4907 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 4908 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 4909 0x75, 0x65, 0x73, 0x12, 0xb2, 0x02, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 4910 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 4911 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 4912 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 4913 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 4914 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 4915 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 4916 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbe, 0x01, 0xca, 0x41, 0x43, 0x0a, 0x1b, 0x44, 4917 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 4918 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x44, 0x65, 0x6c, 0x65, 4919 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x4f, 4920 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 4921 0xda, 0x41, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x82, 0xd3, 4922 0xe4, 0x93, 0x02, 0x64, 0x3a, 0x01, 0x2a, 0x22, 0x5f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 4923 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x70, 4924 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 4925 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 4926 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 4927 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 4928 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0xee, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x61, 4929 0x72, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x36, 0x2e, 0x67, 0x6f, 4930 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 4931 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 4932 0x61, 0x72, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 4933 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 4934 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 4935 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 4936 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6b, 0xda, 0x41, 4937 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xda, 0x41, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 4938 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 4939 0x12, 0x47, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 4940 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 4941 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x65, 0x61, 4942 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x3a, 0x73, 0x65, 0x61, 0x72, 0x63, 4943 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x1a, 0x4d, 0xca, 0x41, 0x19, 0x61, 0x69, 4944 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 4945 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 4946 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 4947 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 4948 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xef, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 4949 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 4950 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 4951 0x42, 0x18, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x65, 4952 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 4953 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 4954 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 4955 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 4956 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 4957 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 4958 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 4959 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 4960 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 4961 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 4962 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 4963 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 4964 0x6f, 0x33, 4965 } 4966 4967 var ( 4968 file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescOnce sync.Once 4969 file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescData = file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDesc 4970 ) 4971 4972 func file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescGZIP() []byte { 4973 file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescOnce.Do(func() { 4974 file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescData) 4975 }) 4976 return file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDescData 4977 } 4978 4979 var file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes = make([]protoimpl.MessageInfo, 51) 4980 var file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_goTypes = []any{ 4981 (*CreateFeaturestoreRequest)(nil), // 0: google.cloud.aiplatform.v1beta1.CreateFeaturestoreRequest 4982 (*GetFeaturestoreRequest)(nil), // 1: google.cloud.aiplatform.v1beta1.GetFeaturestoreRequest 4983 (*ListFeaturestoresRequest)(nil), // 2: google.cloud.aiplatform.v1beta1.ListFeaturestoresRequest 4984 (*ListFeaturestoresResponse)(nil), // 3: google.cloud.aiplatform.v1beta1.ListFeaturestoresResponse 4985 (*UpdateFeaturestoreRequest)(nil), // 4: google.cloud.aiplatform.v1beta1.UpdateFeaturestoreRequest 4986 (*DeleteFeaturestoreRequest)(nil), // 5: google.cloud.aiplatform.v1beta1.DeleteFeaturestoreRequest 4987 (*ImportFeatureValuesRequest)(nil), // 6: google.cloud.aiplatform.v1beta1.ImportFeatureValuesRequest 4988 (*ImportFeatureValuesResponse)(nil), // 7: google.cloud.aiplatform.v1beta1.ImportFeatureValuesResponse 4989 (*BatchReadFeatureValuesRequest)(nil), // 8: google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesRequest 4990 (*ExportFeatureValuesRequest)(nil), // 9: google.cloud.aiplatform.v1beta1.ExportFeatureValuesRequest 4991 (*DestinationFeatureSetting)(nil), // 10: google.cloud.aiplatform.v1beta1.DestinationFeatureSetting 4992 (*FeatureValueDestination)(nil), // 11: google.cloud.aiplatform.v1beta1.FeatureValueDestination 4993 (*ExportFeatureValuesResponse)(nil), // 12: google.cloud.aiplatform.v1beta1.ExportFeatureValuesResponse 4994 (*BatchReadFeatureValuesResponse)(nil), // 13: google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesResponse 4995 (*CreateEntityTypeRequest)(nil), // 14: google.cloud.aiplatform.v1beta1.CreateEntityTypeRequest 4996 (*GetEntityTypeRequest)(nil), // 15: google.cloud.aiplatform.v1beta1.GetEntityTypeRequest 4997 (*ListEntityTypesRequest)(nil), // 16: google.cloud.aiplatform.v1beta1.ListEntityTypesRequest 4998 (*ListEntityTypesResponse)(nil), // 17: google.cloud.aiplatform.v1beta1.ListEntityTypesResponse 4999 (*UpdateEntityTypeRequest)(nil), // 18: google.cloud.aiplatform.v1beta1.UpdateEntityTypeRequest 5000 (*DeleteEntityTypeRequest)(nil), // 19: google.cloud.aiplatform.v1beta1.DeleteEntityTypeRequest 5001 (*CreateFeatureRequest)(nil), // 20: google.cloud.aiplatform.v1beta1.CreateFeatureRequest 5002 (*BatchCreateFeaturesRequest)(nil), // 21: google.cloud.aiplatform.v1beta1.BatchCreateFeaturesRequest 5003 (*BatchCreateFeaturesResponse)(nil), // 22: google.cloud.aiplatform.v1beta1.BatchCreateFeaturesResponse 5004 (*GetFeatureRequest)(nil), // 23: google.cloud.aiplatform.v1beta1.GetFeatureRequest 5005 (*ListFeaturesRequest)(nil), // 24: google.cloud.aiplatform.v1beta1.ListFeaturesRequest 5006 (*ListFeaturesResponse)(nil), // 25: google.cloud.aiplatform.v1beta1.ListFeaturesResponse 5007 (*SearchFeaturesRequest)(nil), // 26: google.cloud.aiplatform.v1beta1.SearchFeaturesRequest 5008 (*SearchFeaturesResponse)(nil), // 27: google.cloud.aiplatform.v1beta1.SearchFeaturesResponse 5009 (*UpdateFeatureRequest)(nil), // 28: google.cloud.aiplatform.v1beta1.UpdateFeatureRequest 5010 (*DeleteFeatureRequest)(nil), // 29: google.cloud.aiplatform.v1beta1.DeleteFeatureRequest 5011 (*CreateFeaturestoreOperationMetadata)(nil), // 30: google.cloud.aiplatform.v1beta1.CreateFeaturestoreOperationMetadata 5012 (*UpdateFeaturestoreOperationMetadata)(nil), // 31: google.cloud.aiplatform.v1beta1.UpdateFeaturestoreOperationMetadata 5013 (*ImportFeatureValuesOperationMetadata)(nil), // 32: google.cloud.aiplatform.v1beta1.ImportFeatureValuesOperationMetadata 5014 (*ExportFeatureValuesOperationMetadata)(nil), // 33: google.cloud.aiplatform.v1beta1.ExportFeatureValuesOperationMetadata 5015 (*BatchReadFeatureValuesOperationMetadata)(nil), // 34: google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesOperationMetadata 5016 (*DeleteFeatureValuesOperationMetadata)(nil), // 35: google.cloud.aiplatform.v1beta1.DeleteFeatureValuesOperationMetadata 5017 (*CreateEntityTypeOperationMetadata)(nil), // 36: google.cloud.aiplatform.v1beta1.CreateEntityTypeOperationMetadata 5018 (*CreateFeatureOperationMetadata)(nil), // 37: google.cloud.aiplatform.v1beta1.CreateFeatureOperationMetadata 5019 (*BatchCreateFeaturesOperationMetadata)(nil), // 38: google.cloud.aiplatform.v1beta1.BatchCreateFeaturesOperationMetadata 5020 (*DeleteFeatureValuesRequest)(nil), // 39: google.cloud.aiplatform.v1beta1.DeleteFeatureValuesRequest 5021 (*DeleteFeatureValuesResponse)(nil), // 40: google.cloud.aiplatform.v1beta1.DeleteFeatureValuesResponse 5022 (*EntityIdSelector)(nil), // 41: google.cloud.aiplatform.v1beta1.EntityIdSelector 5023 (*ImportFeatureValuesRequest_FeatureSpec)(nil), // 42: google.cloud.aiplatform.v1beta1.ImportFeatureValuesRequest.FeatureSpec 5024 (*BatchReadFeatureValuesRequest_PassThroughField)(nil), // 43: google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesRequest.PassThroughField 5025 (*BatchReadFeatureValuesRequest_EntityTypeSpec)(nil), // 44: google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesRequest.EntityTypeSpec 5026 (*ExportFeatureValuesRequest_SnapshotExport)(nil), // 45: google.cloud.aiplatform.v1beta1.ExportFeatureValuesRequest.SnapshotExport 5027 (*ExportFeatureValuesRequest_FullExport)(nil), // 46: google.cloud.aiplatform.v1beta1.ExportFeatureValuesRequest.FullExport 5028 (*DeleteFeatureValuesRequest_SelectEntity)(nil), // 47: google.cloud.aiplatform.v1beta1.DeleteFeatureValuesRequest.SelectEntity 5029 (*DeleteFeatureValuesRequest_SelectTimeRangeAndFeature)(nil), // 48: google.cloud.aiplatform.v1beta1.DeleteFeatureValuesRequest.SelectTimeRangeAndFeature 5030 (*DeleteFeatureValuesResponse_SelectEntity)(nil), // 49: google.cloud.aiplatform.v1beta1.DeleteFeatureValuesResponse.SelectEntity 5031 (*DeleteFeatureValuesResponse_SelectTimeRangeAndFeature)(nil), // 50: google.cloud.aiplatform.v1beta1.DeleteFeatureValuesResponse.SelectTimeRangeAndFeature 5032 (*Featurestore)(nil), // 51: google.cloud.aiplatform.v1beta1.Featurestore 5033 (*fieldmaskpb.FieldMask)(nil), // 52: google.protobuf.FieldMask 5034 (*AvroSource)(nil), // 53: google.cloud.aiplatform.v1beta1.AvroSource 5035 (*BigQuerySource)(nil), // 54: google.cloud.aiplatform.v1beta1.BigQuerySource 5036 (*CsvSource)(nil), // 55: google.cloud.aiplatform.v1beta1.CsvSource 5037 (*timestamppb.Timestamp)(nil), // 56: google.protobuf.Timestamp 5038 (*FeatureSelector)(nil), // 57: google.cloud.aiplatform.v1beta1.FeatureSelector 5039 (*BigQueryDestination)(nil), // 58: google.cloud.aiplatform.v1beta1.BigQueryDestination 5040 (*TFRecordDestination)(nil), // 59: google.cloud.aiplatform.v1beta1.TFRecordDestination 5041 (*CsvDestination)(nil), // 60: google.cloud.aiplatform.v1beta1.CsvDestination 5042 (*EntityType)(nil), // 61: google.cloud.aiplatform.v1beta1.EntityType 5043 (*Feature)(nil), // 62: google.cloud.aiplatform.v1beta1.Feature 5044 (*FeatureStatsAndAnomalySpec)(nil), // 63: google.cloud.aiplatform.v1beta1.FeatureStatsAndAnomalySpec 5045 (*GenericOperationMetadata)(nil), // 64: google.cloud.aiplatform.v1beta1.GenericOperationMetadata 5046 (*interval.Interval)(nil), // 65: google.type.Interval 5047 (*longrunningpb.Operation)(nil), // 66: google.longrunning.Operation 5048 } 5049 var file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_depIdxs = []int32{ 5050 51, // 0: google.cloud.aiplatform.v1beta1.CreateFeaturestoreRequest.featurestore:type_name -> google.cloud.aiplatform.v1beta1.Featurestore 5051 52, // 1: google.cloud.aiplatform.v1beta1.ListFeaturestoresRequest.read_mask:type_name -> google.protobuf.FieldMask 5052 51, // 2: google.cloud.aiplatform.v1beta1.ListFeaturestoresResponse.featurestores:type_name -> google.cloud.aiplatform.v1beta1.Featurestore 5053 51, // 3: google.cloud.aiplatform.v1beta1.UpdateFeaturestoreRequest.featurestore:type_name -> google.cloud.aiplatform.v1beta1.Featurestore 5054 52, // 4: google.cloud.aiplatform.v1beta1.UpdateFeaturestoreRequest.update_mask:type_name -> google.protobuf.FieldMask 5055 53, // 5: google.cloud.aiplatform.v1beta1.ImportFeatureValuesRequest.avro_source:type_name -> google.cloud.aiplatform.v1beta1.AvroSource 5056 54, // 6: google.cloud.aiplatform.v1beta1.ImportFeatureValuesRequest.bigquery_source:type_name -> google.cloud.aiplatform.v1beta1.BigQuerySource 5057 55, // 7: google.cloud.aiplatform.v1beta1.ImportFeatureValuesRequest.csv_source:type_name -> google.cloud.aiplatform.v1beta1.CsvSource 5058 56, // 8: google.cloud.aiplatform.v1beta1.ImportFeatureValuesRequest.feature_time:type_name -> google.protobuf.Timestamp 5059 42, // 9: google.cloud.aiplatform.v1beta1.ImportFeatureValuesRequest.feature_specs:type_name -> google.cloud.aiplatform.v1beta1.ImportFeatureValuesRequest.FeatureSpec 5060 55, // 10: google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesRequest.csv_read_instances:type_name -> google.cloud.aiplatform.v1beta1.CsvSource 5061 54, // 11: google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesRequest.bigquery_read_instances:type_name -> google.cloud.aiplatform.v1beta1.BigQuerySource 5062 11, // 12: google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesRequest.destination:type_name -> google.cloud.aiplatform.v1beta1.FeatureValueDestination 5063 43, // 13: google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesRequest.pass_through_fields:type_name -> google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesRequest.PassThroughField 5064 44, // 14: google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesRequest.entity_type_specs:type_name -> google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesRequest.EntityTypeSpec 5065 56, // 15: google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesRequest.start_time:type_name -> google.protobuf.Timestamp 5066 45, // 16: google.cloud.aiplatform.v1beta1.ExportFeatureValuesRequest.snapshot_export:type_name -> google.cloud.aiplatform.v1beta1.ExportFeatureValuesRequest.SnapshotExport 5067 46, // 17: google.cloud.aiplatform.v1beta1.ExportFeatureValuesRequest.full_export:type_name -> google.cloud.aiplatform.v1beta1.ExportFeatureValuesRequest.FullExport 5068 11, // 18: google.cloud.aiplatform.v1beta1.ExportFeatureValuesRequest.destination:type_name -> google.cloud.aiplatform.v1beta1.FeatureValueDestination 5069 57, // 19: google.cloud.aiplatform.v1beta1.ExportFeatureValuesRequest.feature_selector:type_name -> google.cloud.aiplatform.v1beta1.FeatureSelector 5070 10, // 20: google.cloud.aiplatform.v1beta1.ExportFeatureValuesRequest.settings:type_name -> google.cloud.aiplatform.v1beta1.DestinationFeatureSetting 5071 58, // 21: google.cloud.aiplatform.v1beta1.FeatureValueDestination.bigquery_destination:type_name -> google.cloud.aiplatform.v1beta1.BigQueryDestination 5072 59, // 22: google.cloud.aiplatform.v1beta1.FeatureValueDestination.tfrecord_destination:type_name -> google.cloud.aiplatform.v1beta1.TFRecordDestination 5073 60, // 23: google.cloud.aiplatform.v1beta1.FeatureValueDestination.csv_destination:type_name -> google.cloud.aiplatform.v1beta1.CsvDestination 5074 61, // 24: google.cloud.aiplatform.v1beta1.CreateEntityTypeRequest.entity_type:type_name -> google.cloud.aiplatform.v1beta1.EntityType 5075 52, // 25: google.cloud.aiplatform.v1beta1.ListEntityTypesRequest.read_mask:type_name -> google.protobuf.FieldMask 5076 61, // 26: google.cloud.aiplatform.v1beta1.ListEntityTypesResponse.entity_types:type_name -> google.cloud.aiplatform.v1beta1.EntityType 5077 61, // 27: google.cloud.aiplatform.v1beta1.UpdateEntityTypeRequest.entity_type:type_name -> google.cloud.aiplatform.v1beta1.EntityType 5078 52, // 28: google.cloud.aiplatform.v1beta1.UpdateEntityTypeRequest.update_mask:type_name -> google.protobuf.FieldMask 5079 62, // 29: google.cloud.aiplatform.v1beta1.CreateFeatureRequest.feature:type_name -> google.cloud.aiplatform.v1beta1.Feature 5080 20, // 30: google.cloud.aiplatform.v1beta1.BatchCreateFeaturesRequest.requests:type_name -> google.cloud.aiplatform.v1beta1.CreateFeatureRequest 5081 62, // 31: google.cloud.aiplatform.v1beta1.BatchCreateFeaturesResponse.features:type_name -> google.cloud.aiplatform.v1beta1.Feature 5082 63, // 32: google.cloud.aiplatform.v1beta1.GetFeatureRequest.feature_stats_and_anomaly_spec:type_name -> google.cloud.aiplatform.v1beta1.FeatureStatsAndAnomalySpec 5083 52, // 33: google.cloud.aiplatform.v1beta1.ListFeaturesRequest.read_mask:type_name -> google.protobuf.FieldMask 5084 62, // 34: google.cloud.aiplatform.v1beta1.ListFeaturesResponse.features:type_name -> google.cloud.aiplatform.v1beta1.Feature 5085 62, // 35: google.cloud.aiplatform.v1beta1.SearchFeaturesResponse.features:type_name -> google.cloud.aiplatform.v1beta1.Feature 5086 62, // 36: google.cloud.aiplatform.v1beta1.UpdateFeatureRequest.feature:type_name -> google.cloud.aiplatform.v1beta1.Feature 5087 52, // 37: google.cloud.aiplatform.v1beta1.UpdateFeatureRequest.update_mask:type_name -> google.protobuf.FieldMask 5088 64, // 38: google.cloud.aiplatform.v1beta1.CreateFeaturestoreOperationMetadata.generic_metadata:type_name -> google.cloud.aiplatform.v1beta1.GenericOperationMetadata 5089 64, // 39: google.cloud.aiplatform.v1beta1.UpdateFeaturestoreOperationMetadata.generic_metadata:type_name -> google.cloud.aiplatform.v1beta1.GenericOperationMetadata 5090 64, // 40: google.cloud.aiplatform.v1beta1.ImportFeatureValuesOperationMetadata.generic_metadata:type_name -> google.cloud.aiplatform.v1beta1.GenericOperationMetadata 5091 64, // 41: google.cloud.aiplatform.v1beta1.ExportFeatureValuesOperationMetadata.generic_metadata:type_name -> google.cloud.aiplatform.v1beta1.GenericOperationMetadata 5092 64, // 42: google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesOperationMetadata.generic_metadata:type_name -> google.cloud.aiplatform.v1beta1.GenericOperationMetadata 5093 64, // 43: google.cloud.aiplatform.v1beta1.DeleteFeatureValuesOperationMetadata.generic_metadata:type_name -> google.cloud.aiplatform.v1beta1.GenericOperationMetadata 5094 64, // 44: google.cloud.aiplatform.v1beta1.CreateEntityTypeOperationMetadata.generic_metadata:type_name -> google.cloud.aiplatform.v1beta1.GenericOperationMetadata 5095 64, // 45: google.cloud.aiplatform.v1beta1.CreateFeatureOperationMetadata.generic_metadata:type_name -> google.cloud.aiplatform.v1beta1.GenericOperationMetadata 5096 64, // 46: google.cloud.aiplatform.v1beta1.BatchCreateFeaturesOperationMetadata.generic_metadata:type_name -> google.cloud.aiplatform.v1beta1.GenericOperationMetadata 5097 47, // 47: google.cloud.aiplatform.v1beta1.DeleteFeatureValuesRequest.select_entity:type_name -> google.cloud.aiplatform.v1beta1.DeleteFeatureValuesRequest.SelectEntity 5098 48, // 48: google.cloud.aiplatform.v1beta1.DeleteFeatureValuesRequest.select_time_range_and_feature:type_name -> google.cloud.aiplatform.v1beta1.DeleteFeatureValuesRequest.SelectTimeRangeAndFeature 5099 49, // 49: google.cloud.aiplatform.v1beta1.DeleteFeatureValuesResponse.select_entity:type_name -> google.cloud.aiplatform.v1beta1.DeleteFeatureValuesResponse.SelectEntity 5100 50, // 50: google.cloud.aiplatform.v1beta1.DeleteFeatureValuesResponse.select_time_range_and_feature:type_name -> google.cloud.aiplatform.v1beta1.DeleteFeatureValuesResponse.SelectTimeRangeAndFeature 5101 55, // 51: google.cloud.aiplatform.v1beta1.EntityIdSelector.csv_source:type_name -> google.cloud.aiplatform.v1beta1.CsvSource 5102 57, // 52: google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesRequest.EntityTypeSpec.feature_selector:type_name -> google.cloud.aiplatform.v1beta1.FeatureSelector 5103 10, // 53: google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesRequest.EntityTypeSpec.settings:type_name -> google.cloud.aiplatform.v1beta1.DestinationFeatureSetting 5104 56, // 54: google.cloud.aiplatform.v1beta1.ExportFeatureValuesRequest.SnapshotExport.snapshot_time:type_name -> google.protobuf.Timestamp 5105 56, // 55: google.cloud.aiplatform.v1beta1.ExportFeatureValuesRequest.SnapshotExport.start_time:type_name -> google.protobuf.Timestamp 5106 56, // 56: google.cloud.aiplatform.v1beta1.ExportFeatureValuesRequest.FullExport.start_time:type_name -> google.protobuf.Timestamp 5107 56, // 57: google.cloud.aiplatform.v1beta1.ExportFeatureValuesRequest.FullExport.end_time:type_name -> google.protobuf.Timestamp 5108 41, // 58: google.cloud.aiplatform.v1beta1.DeleteFeatureValuesRequest.SelectEntity.entity_id_selector:type_name -> google.cloud.aiplatform.v1beta1.EntityIdSelector 5109 65, // 59: google.cloud.aiplatform.v1beta1.DeleteFeatureValuesRequest.SelectTimeRangeAndFeature.time_range:type_name -> google.type.Interval 5110 57, // 60: google.cloud.aiplatform.v1beta1.DeleteFeatureValuesRequest.SelectTimeRangeAndFeature.feature_selector:type_name -> google.cloud.aiplatform.v1beta1.FeatureSelector 5111 0, // 61: google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateFeaturestore:input_type -> google.cloud.aiplatform.v1beta1.CreateFeaturestoreRequest 5112 1, // 62: google.cloud.aiplatform.v1beta1.FeaturestoreService.GetFeaturestore:input_type -> google.cloud.aiplatform.v1beta1.GetFeaturestoreRequest 5113 2, // 63: google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores:input_type -> google.cloud.aiplatform.v1beta1.ListFeaturestoresRequest 5114 4, // 64: google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateFeaturestore:input_type -> google.cloud.aiplatform.v1beta1.UpdateFeaturestoreRequest 5115 5, // 65: google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeaturestore:input_type -> google.cloud.aiplatform.v1beta1.DeleteFeaturestoreRequest 5116 14, // 66: google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateEntityType:input_type -> google.cloud.aiplatform.v1beta1.CreateEntityTypeRequest 5117 15, // 67: google.cloud.aiplatform.v1beta1.FeaturestoreService.GetEntityType:input_type -> google.cloud.aiplatform.v1beta1.GetEntityTypeRequest 5118 16, // 68: google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes:input_type -> google.cloud.aiplatform.v1beta1.ListEntityTypesRequest 5119 18, // 69: google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateEntityType:input_type -> google.cloud.aiplatform.v1beta1.UpdateEntityTypeRequest 5120 19, // 70: google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteEntityType:input_type -> google.cloud.aiplatform.v1beta1.DeleteEntityTypeRequest 5121 20, // 71: google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateFeature:input_type -> google.cloud.aiplatform.v1beta1.CreateFeatureRequest 5122 21, // 72: google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchCreateFeatures:input_type -> google.cloud.aiplatform.v1beta1.BatchCreateFeaturesRequest 5123 23, // 73: google.cloud.aiplatform.v1beta1.FeaturestoreService.GetFeature:input_type -> google.cloud.aiplatform.v1beta1.GetFeatureRequest 5124 24, // 74: google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures:input_type -> google.cloud.aiplatform.v1beta1.ListFeaturesRequest 5125 28, // 75: google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateFeature:input_type -> google.cloud.aiplatform.v1beta1.UpdateFeatureRequest 5126 29, // 76: google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeature:input_type -> google.cloud.aiplatform.v1beta1.DeleteFeatureRequest 5127 6, // 77: google.cloud.aiplatform.v1beta1.FeaturestoreService.ImportFeatureValues:input_type -> google.cloud.aiplatform.v1beta1.ImportFeatureValuesRequest 5128 8, // 78: google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchReadFeatureValues:input_type -> google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesRequest 5129 9, // 79: google.cloud.aiplatform.v1beta1.FeaturestoreService.ExportFeatureValues:input_type -> google.cloud.aiplatform.v1beta1.ExportFeatureValuesRequest 5130 39, // 80: google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeatureValues:input_type -> google.cloud.aiplatform.v1beta1.DeleteFeatureValuesRequest 5131 26, // 81: google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures:input_type -> google.cloud.aiplatform.v1beta1.SearchFeaturesRequest 5132 66, // 82: google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateFeaturestore:output_type -> google.longrunning.Operation 5133 51, // 83: google.cloud.aiplatform.v1beta1.FeaturestoreService.GetFeaturestore:output_type -> google.cloud.aiplatform.v1beta1.Featurestore 5134 3, // 84: google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores:output_type -> google.cloud.aiplatform.v1beta1.ListFeaturestoresResponse 5135 66, // 85: google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateFeaturestore:output_type -> google.longrunning.Operation 5136 66, // 86: google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeaturestore:output_type -> google.longrunning.Operation 5137 66, // 87: google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateEntityType:output_type -> google.longrunning.Operation 5138 61, // 88: google.cloud.aiplatform.v1beta1.FeaturestoreService.GetEntityType:output_type -> google.cloud.aiplatform.v1beta1.EntityType 5139 17, // 89: google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes:output_type -> google.cloud.aiplatform.v1beta1.ListEntityTypesResponse 5140 61, // 90: google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateEntityType:output_type -> google.cloud.aiplatform.v1beta1.EntityType 5141 66, // 91: google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteEntityType:output_type -> google.longrunning.Operation 5142 66, // 92: google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateFeature:output_type -> google.longrunning.Operation 5143 66, // 93: google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchCreateFeatures:output_type -> google.longrunning.Operation 5144 62, // 94: google.cloud.aiplatform.v1beta1.FeaturestoreService.GetFeature:output_type -> google.cloud.aiplatform.v1beta1.Feature 5145 25, // 95: google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures:output_type -> google.cloud.aiplatform.v1beta1.ListFeaturesResponse 5146 62, // 96: google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateFeature:output_type -> google.cloud.aiplatform.v1beta1.Feature 5147 66, // 97: google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeature:output_type -> google.longrunning.Operation 5148 66, // 98: google.cloud.aiplatform.v1beta1.FeaturestoreService.ImportFeatureValues:output_type -> google.longrunning.Operation 5149 66, // 99: google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchReadFeatureValues:output_type -> google.longrunning.Operation 5150 66, // 100: google.cloud.aiplatform.v1beta1.FeaturestoreService.ExportFeatureValues:output_type -> google.longrunning.Operation 5151 66, // 101: google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeatureValues:output_type -> google.longrunning.Operation 5152 27, // 102: google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures:output_type -> google.cloud.aiplatform.v1beta1.SearchFeaturesResponse 5153 82, // [82:103] is the sub-list for method output_type 5154 61, // [61:82] is the sub-list for method input_type 5155 61, // [61:61] is the sub-list for extension type_name 5156 61, // [61:61] is the sub-list for extension extendee 5157 0, // [0:61] is the sub-list for field type_name 5158 } 5159 5160 func init() { file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_init() } 5161 func file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_init() { 5162 if File_google_cloud_aiplatform_v1beta1_featurestore_service_proto != nil { 5163 return 5164 } 5165 file_google_cloud_aiplatform_v1beta1_entity_type_proto_init() 5166 file_google_cloud_aiplatform_v1beta1_feature_proto_init() 5167 file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_init() 5168 file_google_cloud_aiplatform_v1beta1_feature_selector_proto_init() 5169 file_google_cloud_aiplatform_v1beta1_featurestore_proto_init() 5170 file_google_cloud_aiplatform_v1beta1_io_proto_init() 5171 file_google_cloud_aiplatform_v1beta1_operation_proto_init() 5172 file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[6].OneofWrappers = []any{ 5173 (*ImportFeatureValuesRequest_AvroSource)(nil), 5174 (*ImportFeatureValuesRequest_BigquerySource)(nil), 5175 (*ImportFeatureValuesRequest_CsvSource)(nil), 5176 (*ImportFeatureValuesRequest_FeatureTimeField)(nil), 5177 (*ImportFeatureValuesRequest_FeatureTime)(nil), 5178 } 5179 file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[8].OneofWrappers = []any{ 5180 (*BatchReadFeatureValuesRequest_CsvReadInstances)(nil), 5181 (*BatchReadFeatureValuesRequest_BigqueryReadInstances)(nil), 5182 } 5183 file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[9].OneofWrappers = []any{ 5184 (*ExportFeatureValuesRequest_SnapshotExport_)(nil), 5185 (*ExportFeatureValuesRequest_FullExport_)(nil), 5186 } 5187 file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[11].OneofWrappers = []any{ 5188 (*FeatureValueDestination_BigqueryDestination)(nil), 5189 (*FeatureValueDestination_TfrecordDestination)(nil), 5190 (*FeatureValueDestination_CsvDestination)(nil), 5191 } 5192 file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[39].OneofWrappers = []any{ 5193 (*DeleteFeatureValuesRequest_SelectEntity_)(nil), 5194 (*DeleteFeatureValuesRequest_SelectTimeRangeAndFeature_)(nil), 5195 } 5196 file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[40].OneofWrappers = []any{ 5197 (*DeleteFeatureValuesResponse_SelectEntity_)(nil), 5198 (*DeleteFeatureValuesResponse_SelectTimeRangeAndFeature_)(nil), 5199 } 5200 file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes[41].OneofWrappers = []any{ 5201 (*EntityIdSelector_CsvSource)(nil), 5202 } 5203 type x struct{} 5204 out := protoimpl.TypeBuilder{ 5205 File: protoimpl.DescBuilder{ 5206 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 5207 RawDescriptor: file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDesc, 5208 NumEnums: 0, 5209 NumMessages: 51, 5210 NumExtensions: 0, 5211 NumServices: 1, 5212 }, 5213 GoTypes: file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_goTypes, 5214 DependencyIndexes: file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_depIdxs, 5215 MessageInfos: file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_msgTypes, 5216 }.Build() 5217 File_google_cloud_aiplatform_v1beta1_featurestore_service_proto = out.File 5218 file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_rawDesc = nil 5219 file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_goTypes = nil 5220 file_google_cloud_aiplatform_v1beta1_featurestore_service_proto_depIdxs = nil 5221 }