1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package vision
23
24 import (
25 context "context"
26 reflect "reflect"
27 sync "sync"
28
29 _ "google.golang.org/genproto/googleapis/api/annotations"
30 longrunning "google.golang.org/genproto/googleapis/longrunning"
31 status "google.golang.org/genproto/googleapis/rpc/status"
32 grpc "google.golang.org/grpc"
33 codes "google.golang.org/grpc/codes"
34 status1 "google.golang.org/grpc/status"
35 protoreflect "google.golang.org/protobuf/reflect/protoreflect"
36 protoimpl "google.golang.org/protobuf/runtime/protoimpl"
37 emptypb "google.golang.org/protobuf/types/known/emptypb"
38 fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
39 timestamppb "google.golang.org/protobuf/types/known/timestamppb"
40 )
41
42 const (
43
44 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
45
46 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
47 )
48
49
50 type BatchOperationMetadata_State int32
51
52 const (
53
54 BatchOperationMetadata_STATE_UNSPECIFIED BatchOperationMetadata_State = 0
55
56 BatchOperationMetadata_PROCESSING BatchOperationMetadata_State = 1
57
58
59 BatchOperationMetadata_SUCCESSFUL BatchOperationMetadata_State = 2
60
61 BatchOperationMetadata_FAILED BatchOperationMetadata_State = 3
62
63
64
65 BatchOperationMetadata_CANCELLED BatchOperationMetadata_State = 4
66 )
67
68
69 var (
70 BatchOperationMetadata_State_name = map[int32]string{
71 0: "STATE_UNSPECIFIED",
72 1: "PROCESSING",
73 2: "SUCCESSFUL",
74 3: "FAILED",
75 4: "CANCELLED",
76 }
77 BatchOperationMetadata_State_value = map[string]int32{
78 "STATE_UNSPECIFIED": 0,
79 "PROCESSING": 1,
80 "SUCCESSFUL": 2,
81 "FAILED": 3,
82 "CANCELLED": 4,
83 }
84 )
85
86 func (x BatchOperationMetadata_State) Enum() *BatchOperationMetadata_State {
87 p := new(BatchOperationMetadata_State)
88 *p = x
89 return p
90 }
91
92 func (x BatchOperationMetadata_State) String() string {
93 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
94 }
95
96 func (BatchOperationMetadata_State) Descriptor() protoreflect.EnumDescriptor {
97 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_enumTypes[0].Descriptor()
98 }
99
100 func (BatchOperationMetadata_State) Type() protoreflect.EnumType {
101 return &file_google_cloud_vision_v1p3beta1_product_search_service_proto_enumTypes[0]
102 }
103
104 func (x BatchOperationMetadata_State) Number() protoreflect.EnumNumber {
105 return protoreflect.EnumNumber(x)
106 }
107
108
109 func (BatchOperationMetadata_State) EnumDescriptor() ([]byte, []int) {
110 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{28, 0}
111 }
112
113
114 type Product struct {
115 state protoimpl.MessageState
116 sizeCache protoimpl.SizeCache
117 unknownFields protoimpl.UnknownFields
118
119
120
121
122
123
124
125 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
126
127
128 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
129
130
131 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
132
133
134
135
136 ProductCategory string `protobuf:"bytes,4,opt,name=product_category,json=productCategory,proto3" json:"product_category,omitempty"`
137
138
139
140
141
142
143
144
145
146 ProductLabels []*Product_KeyValue `protobuf:"bytes,5,rep,name=product_labels,json=productLabels,proto3" json:"product_labels,omitempty"`
147 }
148
149 func (x *Product) Reset() {
150 *x = Product{}
151 if protoimpl.UnsafeEnabled {
152 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[0]
153 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
154 ms.StoreMessageInfo(mi)
155 }
156 }
157
158 func (x *Product) String() string {
159 return protoimpl.X.MessageStringOf(x)
160 }
161
162 func (*Product) ProtoMessage() {}
163
164 func (x *Product) ProtoReflect() protoreflect.Message {
165 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[0]
166 if protoimpl.UnsafeEnabled && x != nil {
167 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
168 if ms.LoadMessageInfo() == nil {
169 ms.StoreMessageInfo(mi)
170 }
171 return ms
172 }
173 return mi.MessageOf(x)
174 }
175
176
177 func (*Product) Descriptor() ([]byte, []int) {
178 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{0}
179 }
180
181 func (x *Product) GetName() string {
182 if x != nil {
183 return x.Name
184 }
185 return ""
186 }
187
188 func (x *Product) GetDisplayName() string {
189 if x != nil {
190 return x.DisplayName
191 }
192 return ""
193 }
194
195 func (x *Product) GetDescription() string {
196 if x != nil {
197 return x.Description
198 }
199 return ""
200 }
201
202 func (x *Product) GetProductCategory() string {
203 if x != nil {
204 return x.ProductCategory
205 }
206 return ""
207 }
208
209 func (x *Product) GetProductLabels() []*Product_KeyValue {
210 if x != nil {
211 return x.ProductLabels
212 }
213 return nil
214 }
215
216
217
218
219 type ProductSet struct {
220 state protoimpl.MessageState
221 sizeCache protoimpl.SizeCache
222 unknownFields protoimpl.UnknownFields
223
224
225
226
227
228
229
230 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
231
232
233 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
234
235
236
237
238
239 IndexTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=index_time,json=indexTime,proto3" json:"index_time,omitempty"`
240
241
242
243
244 IndexError *status.Status `protobuf:"bytes,4,opt,name=index_error,json=indexError,proto3" json:"index_error,omitempty"`
245 }
246
247 func (x *ProductSet) Reset() {
248 *x = ProductSet{}
249 if protoimpl.UnsafeEnabled {
250 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[1]
251 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
252 ms.StoreMessageInfo(mi)
253 }
254 }
255
256 func (x *ProductSet) String() string {
257 return protoimpl.X.MessageStringOf(x)
258 }
259
260 func (*ProductSet) ProtoMessage() {}
261
262 func (x *ProductSet) ProtoReflect() protoreflect.Message {
263 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[1]
264 if protoimpl.UnsafeEnabled && x != nil {
265 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
266 if ms.LoadMessageInfo() == nil {
267 ms.StoreMessageInfo(mi)
268 }
269 return ms
270 }
271 return mi.MessageOf(x)
272 }
273
274
275 func (*ProductSet) Descriptor() ([]byte, []int) {
276 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{1}
277 }
278
279 func (x *ProductSet) GetName() string {
280 if x != nil {
281 return x.Name
282 }
283 return ""
284 }
285
286 func (x *ProductSet) GetDisplayName() string {
287 if x != nil {
288 return x.DisplayName
289 }
290 return ""
291 }
292
293 func (x *ProductSet) GetIndexTime() *timestamppb.Timestamp {
294 if x != nil {
295 return x.IndexTime
296 }
297 return nil
298 }
299
300 func (x *ProductSet) GetIndexError() *status.Status {
301 if x != nil {
302 return x.IndexError
303 }
304 return nil
305 }
306
307
308
309 type ReferenceImage struct {
310 state protoimpl.MessageState
311 sizeCache protoimpl.SizeCache
312 unknownFields protoimpl.UnknownFields
313
314
315
316
317
318
319
320
321 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
322
323
324
325 Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"`
326
327
328
329
330
331
332
333
334 BoundingPolys []*BoundingPoly `protobuf:"bytes,3,rep,name=bounding_polys,json=boundingPolys,proto3" json:"bounding_polys,omitempty"`
335 }
336
337 func (x *ReferenceImage) Reset() {
338 *x = ReferenceImage{}
339 if protoimpl.UnsafeEnabled {
340 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[2]
341 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
342 ms.StoreMessageInfo(mi)
343 }
344 }
345
346 func (x *ReferenceImage) String() string {
347 return protoimpl.X.MessageStringOf(x)
348 }
349
350 func (*ReferenceImage) ProtoMessage() {}
351
352 func (x *ReferenceImage) ProtoReflect() protoreflect.Message {
353 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[2]
354 if protoimpl.UnsafeEnabled && x != nil {
355 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
356 if ms.LoadMessageInfo() == nil {
357 ms.StoreMessageInfo(mi)
358 }
359 return ms
360 }
361 return mi.MessageOf(x)
362 }
363
364
365 func (*ReferenceImage) Descriptor() ([]byte, []int) {
366 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{2}
367 }
368
369 func (x *ReferenceImage) GetName() string {
370 if x != nil {
371 return x.Name
372 }
373 return ""
374 }
375
376 func (x *ReferenceImage) GetUri() string {
377 if x != nil {
378 return x.Uri
379 }
380 return ""
381 }
382
383 func (x *ReferenceImage) GetBoundingPolys() []*BoundingPoly {
384 if x != nil {
385 return x.BoundingPolys
386 }
387 return nil
388 }
389
390
391 type CreateProductRequest struct {
392 state protoimpl.MessageState
393 sizeCache protoimpl.SizeCache
394 unknownFields protoimpl.UnknownFields
395
396
397
398
399
400 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
401
402 Product *Product `protobuf:"bytes,2,opt,name=product,proto3" json:"product,omitempty"`
403
404
405
406
407 ProductId string `protobuf:"bytes,3,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"`
408 }
409
410 func (x *CreateProductRequest) Reset() {
411 *x = CreateProductRequest{}
412 if protoimpl.UnsafeEnabled {
413 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[3]
414 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
415 ms.StoreMessageInfo(mi)
416 }
417 }
418
419 func (x *CreateProductRequest) String() string {
420 return protoimpl.X.MessageStringOf(x)
421 }
422
423 func (*CreateProductRequest) ProtoMessage() {}
424
425 func (x *CreateProductRequest) ProtoReflect() protoreflect.Message {
426 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[3]
427 if protoimpl.UnsafeEnabled && x != nil {
428 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
429 if ms.LoadMessageInfo() == nil {
430 ms.StoreMessageInfo(mi)
431 }
432 return ms
433 }
434 return mi.MessageOf(x)
435 }
436
437
438 func (*CreateProductRequest) Descriptor() ([]byte, []int) {
439 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{3}
440 }
441
442 func (x *CreateProductRequest) GetParent() string {
443 if x != nil {
444 return x.Parent
445 }
446 return ""
447 }
448
449 func (x *CreateProductRequest) GetProduct() *Product {
450 if x != nil {
451 return x.Product
452 }
453 return nil
454 }
455
456 func (x *CreateProductRequest) GetProductId() string {
457 if x != nil {
458 return x.ProductId
459 }
460 return ""
461 }
462
463
464 type ListProductsRequest struct {
465 state protoimpl.MessageState
466 sizeCache protoimpl.SizeCache
467 unknownFields protoimpl.UnknownFields
468
469
470
471
472
473 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
474
475 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
476
477 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
478 }
479
480 func (x *ListProductsRequest) Reset() {
481 *x = ListProductsRequest{}
482 if protoimpl.UnsafeEnabled {
483 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[4]
484 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
485 ms.StoreMessageInfo(mi)
486 }
487 }
488
489 func (x *ListProductsRequest) String() string {
490 return protoimpl.X.MessageStringOf(x)
491 }
492
493 func (*ListProductsRequest) ProtoMessage() {}
494
495 func (x *ListProductsRequest) ProtoReflect() protoreflect.Message {
496 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[4]
497 if protoimpl.UnsafeEnabled && x != nil {
498 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
499 if ms.LoadMessageInfo() == nil {
500 ms.StoreMessageInfo(mi)
501 }
502 return ms
503 }
504 return mi.MessageOf(x)
505 }
506
507
508 func (*ListProductsRequest) Descriptor() ([]byte, []int) {
509 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{4}
510 }
511
512 func (x *ListProductsRequest) GetParent() string {
513 if x != nil {
514 return x.Parent
515 }
516 return ""
517 }
518
519 func (x *ListProductsRequest) GetPageSize() int32 {
520 if x != nil {
521 return x.PageSize
522 }
523 return 0
524 }
525
526 func (x *ListProductsRequest) GetPageToken() string {
527 if x != nil {
528 return x.PageToken
529 }
530 return ""
531 }
532
533
534 type ListProductsResponse struct {
535 state protoimpl.MessageState
536 sizeCache protoimpl.SizeCache
537 unknownFields protoimpl.UnknownFields
538
539
540 Products []*Product `protobuf:"bytes,1,rep,name=products,proto3" json:"products,omitempty"`
541
542
543 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
544 }
545
546 func (x *ListProductsResponse) Reset() {
547 *x = ListProductsResponse{}
548 if protoimpl.UnsafeEnabled {
549 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[5]
550 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
551 ms.StoreMessageInfo(mi)
552 }
553 }
554
555 func (x *ListProductsResponse) String() string {
556 return protoimpl.X.MessageStringOf(x)
557 }
558
559 func (*ListProductsResponse) ProtoMessage() {}
560
561 func (x *ListProductsResponse) ProtoReflect() protoreflect.Message {
562 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[5]
563 if protoimpl.UnsafeEnabled && x != nil {
564 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
565 if ms.LoadMessageInfo() == nil {
566 ms.StoreMessageInfo(mi)
567 }
568 return ms
569 }
570 return mi.MessageOf(x)
571 }
572
573
574 func (*ListProductsResponse) Descriptor() ([]byte, []int) {
575 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{5}
576 }
577
578 func (x *ListProductsResponse) GetProducts() []*Product {
579 if x != nil {
580 return x.Products
581 }
582 return nil
583 }
584
585 func (x *ListProductsResponse) GetNextPageToken() string {
586 if x != nil {
587 return x.NextPageToken
588 }
589 return ""
590 }
591
592
593 type GetProductRequest struct {
594 state protoimpl.MessageState
595 sizeCache protoimpl.SizeCache
596 unknownFields protoimpl.UnknownFields
597
598
599
600
601
602 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
603 }
604
605 func (x *GetProductRequest) Reset() {
606 *x = GetProductRequest{}
607 if protoimpl.UnsafeEnabled {
608 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[6]
609 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
610 ms.StoreMessageInfo(mi)
611 }
612 }
613
614 func (x *GetProductRequest) String() string {
615 return protoimpl.X.MessageStringOf(x)
616 }
617
618 func (*GetProductRequest) ProtoMessage() {}
619
620 func (x *GetProductRequest) ProtoReflect() protoreflect.Message {
621 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[6]
622 if protoimpl.UnsafeEnabled && x != nil {
623 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
624 if ms.LoadMessageInfo() == nil {
625 ms.StoreMessageInfo(mi)
626 }
627 return ms
628 }
629 return mi.MessageOf(x)
630 }
631
632
633 func (*GetProductRequest) Descriptor() ([]byte, []int) {
634 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{6}
635 }
636
637 func (x *GetProductRequest) GetName() string {
638 if x != nil {
639 return x.Name
640 }
641 return ""
642 }
643
644
645 type UpdateProductRequest struct {
646 state protoimpl.MessageState
647 sizeCache protoimpl.SizeCache
648 unknownFields protoimpl.UnknownFields
649
650
651
652 Product *Product `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"`
653
654
655
656
657
658 UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
659 }
660
661 func (x *UpdateProductRequest) Reset() {
662 *x = UpdateProductRequest{}
663 if protoimpl.UnsafeEnabled {
664 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[7]
665 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
666 ms.StoreMessageInfo(mi)
667 }
668 }
669
670 func (x *UpdateProductRequest) String() string {
671 return protoimpl.X.MessageStringOf(x)
672 }
673
674 func (*UpdateProductRequest) ProtoMessage() {}
675
676 func (x *UpdateProductRequest) ProtoReflect() protoreflect.Message {
677 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[7]
678 if protoimpl.UnsafeEnabled && x != nil {
679 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
680 if ms.LoadMessageInfo() == nil {
681 ms.StoreMessageInfo(mi)
682 }
683 return ms
684 }
685 return mi.MessageOf(x)
686 }
687
688
689 func (*UpdateProductRequest) Descriptor() ([]byte, []int) {
690 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{7}
691 }
692
693 func (x *UpdateProductRequest) GetProduct() *Product {
694 if x != nil {
695 return x.Product
696 }
697 return nil
698 }
699
700 func (x *UpdateProductRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
701 if x != nil {
702 return x.UpdateMask
703 }
704 return nil
705 }
706
707
708 type DeleteProductRequest struct {
709 state protoimpl.MessageState
710 sizeCache protoimpl.SizeCache
711 unknownFields protoimpl.UnknownFields
712
713
714
715
716
717 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
718 }
719
720 func (x *DeleteProductRequest) Reset() {
721 *x = DeleteProductRequest{}
722 if protoimpl.UnsafeEnabled {
723 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[8]
724 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
725 ms.StoreMessageInfo(mi)
726 }
727 }
728
729 func (x *DeleteProductRequest) String() string {
730 return protoimpl.X.MessageStringOf(x)
731 }
732
733 func (*DeleteProductRequest) ProtoMessage() {}
734
735 func (x *DeleteProductRequest) ProtoReflect() protoreflect.Message {
736 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[8]
737 if protoimpl.UnsafeEnabled && x != nil {
738 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
739 if ms.LoadMessageInfo() == nil {
740 ms.StoreMessageInfo(mi)
741 }
742 return ms
743 }
744 return mi.MessageOf(x)
745 }
746
747
748 func (*DeleteProductRequest) Descriptor() ([]byte, []int) {
749 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{8}
750 }
751
752 func (x *DeleteProductRequest) GetName() string {
753 if x != nil {
754 return x.Name
755 }
756 return ""
757 }
758
759
760 type CreateProductSetRequest struct {
761 state protoimpl.MessageState
762 sizeCache protoimpl.SizeCache
763 unknownFields protoimpl.UnknownFields
764
765
766
767
768 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
769
770 ProductSet *ProductSet `protobuf:"bytes,2,opt,name=product_set,json=productSet,proto3" json:"product_set,omitempty"`
771
772
773
774
775 ProductSetId string `protobuf:"bytes,3,opt,name=product_set_id,json=productSetId,proto3" json:"product_set_id,omitempty"`
776 }
777
778 func (x *CreateProductSetRequest) Reset() {
779 *x = CreateProductSetRequest{}
780 if protoimpl.UnsafeEnabled {
781 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[9]
782 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
783 ms.StoreMessageInfo(mi)
784 }
785 }
786
787 func (x *CreateProductSetRequest) String() string {
788 return protoimpl.X.MessageStringOf(x)
789 }
790
791 func (*CreateProductSetRequest) ProtoMessage() {}
792
793 func (x *CreateProductSetRequest) ProtoReflect() protoreflect.Message {
794 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[9]
795 if protoimpl.UnsafeEnabled && x != nil {
796 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
797 if ms.LoadMessageInfo() == nil {
798 ms.StoreMessageInfo(mi)
799 }
800 return ms
801 }
802 return mi.MessageOf(x)
803 }
804
805
806 func (*CreateProductSetRequest) Descriptor() ([]byte, []int) {
807 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{9}
808 }
809
810 func (x *CreateProductSetRequest) GetParent() string {
811 if x != nil {
812 return x.Parent
813 }
814 return ""
815 }
816
817 func (x *CreateProductSetRequest) GetProductSet() *ProductSet {
818 if x != nil {
819 return x.ProductSet
820 }
821 return nil
822 }
823
824 func (x *CreateProductSetRequest) GetProductSetId() string {
825 if x != nil {
826 return x.ProductSetId
827 }
828 return ""
829 }
830
831
832 type ListProductSetsRequest struct {
833 state protoimpl.MessageState
834 sizeCache protoimpl.SizeCache
835 unknownFields protoimpl.UnknownFields
836
837
838
839
840 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
841
842 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
843
844 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
845 }
846
847 func (x *ListProductSetsRequest) Reset() {
848 *x = ListProductSetsRequest{}
849 if protoimpl.UnsafeEnabled {
850 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[10]
851 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
852 ms.StoreMessageInfo(mi)
853 }
854 }
855
856 func (x *ListProductSetsRequest) String() string {
857 return protoimpl.X.MessageStringOf(x)
858 }
859
860 func (*ListProductSetsRequest) ProtoMessage() {}
861
862 func (x *ListProductSetsRequest) ProtoReflect() protoreflect.Message {
863 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[10]
864 if protoimpl.UnsafeEnabled && x != nil {
865 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
866 if ms.LoadMessageInfo() == nil {
867 ms.StoreMessageInfo(mi)
868 }
869 return ms
870 }
871 return mi.MessageOf(x)
872 }
873
874
875 func (*ListProductSetsRequest) Descriptor() ([]byte, []int) {
876 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{10}
877 }
878
879 func (x *ListProductSetsRequest) GetParent() string {
880 if x != nil {
881 return x.Parent
882 }
883 return ""
884 }
885
886 func (x *ListProductSetsRequest) GetPageSize() int32 {
887 if x != nil {
888 return x.PageSize
889 }
890 return 0
891 }
892
893 func (x *ListProductSetsRequest) GetPageToken() string {
894 if x != nil {
895 return x.PageToken
896 }
897 return ""
898 }
899
900
901 type ListProductSetsResponse struct {
902 state protoimpl.MessageState
903 sizeCache protoimpl.SizeCache
904 unknownFields protoimpl.UnknownFields
905
906
907 ProductSets []*ProductSet `protobuf:"bytes,1,rep,name=product_sets,json=productSets,proto3" json:"product_sets,omitempty"`
908
909
910 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
911 }
912
913 func (x *ListProductSetsResponse) Reset() {
914 *x = ListProductSetsResponse{}
915 if protoimpl.UnsafeEnabled {
916 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[11]
917 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
918 ms.StoreMessageInfo(mi)
919 }
920 }
921
922 func (x *ListProductSetsResponse) String() string {
923 return protoimpl.X.MessageStringOf(x)
924 }
925
926 func (*ListProductSetsResponse) ProtoMessage() {}
927
928 func (x *ListProductSetsResponse) ProtoReflect() protoreflect.Message {
929 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[11]
930 if protoimpl.UnsafeEnabled && x != nil {
931 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
932 if ms.LoadMessageInfo() == nil {
933 ms.StoreMessageInfo(mi)
934 }
935 return ms
936 }
937 return mi.MessageOf(x)
938 }
939
940
941 func (*ListProductSetsResponse) Descriptor() ([]byte, []int) {
942 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{11}
943 }
944
945 func (x *ListProductSetsResponse) GetProductSets() []*ProductSet {
946 if x != nil {
947 return x.ProductSets
948 }
949 return nil
950 }
951
952 func (x *ListProductSetsResponse) GetNextPageToken() string {
953 if x != nil {
954 return x.NextPageToken
955 }
956 return ""
957 }
958
959
960 type GetProductSetRequest struct {
961 state protoimpl.MessageState
962 sizeCache protoimpl.SizeCache
963 unknownFields protoimpl.UnknownFields
964
965
966
967
968
969 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
970 }
971
972 func (x *GetProductSetRequest) Reset() {
973 *x = GetProductSetRequest{}
974 if protoimpl.UnsafeEnabled {
975 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[12]
976 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
977 ms.StoreMessageInfo(mi)
978 }
979 }
980
981 func (x *GetProductSetRequest) String() string {
982 return protoimpl.X.MessageStringOf(x)
983 }
984
985 func (*GetProductSetRequest) ProtoMessage() {}
986
987 func (x *GetProductSetRequest) ProtoReflect() protoreflect.Message {
988 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[12]
989 if protoimpl.UnsafeEnabled && 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
1000 func (*GetProductSetRequest) Descriptor() ([]byte, []int) {
1001 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{12}
1002 }
1003
1004 func (x *GetProductSetRequest) GetName() string {
1005 if x != nil {
1006 return x.Name
1007 }
1008 return ""
1009 }
1010
1011
1012 type UpdateProductSetRequest struct {
1013 state protoimpl.MessageState
1014 sizeCache protoimpl.SizeCache
1015 unknownFields protoimpl.UnknownFields
1016
1017
1018 ProductSet *ProductSet `protobuf:"bytes,1,opt,name=product_set,json=productSet,proto3" json:"product_set,omitempty"`
1019
1020
1021
1022
1023 UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
1024 }
1025
1026 func (x *UpdateProductSetRequest) Reset() {
1027 *x = UpdateProductSetRequest{}
1028 if protoimpl.UnsafeEnabled {
1029 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[13]
1030 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1031 ms.StoreMessageInfo(mi)
1032 }
1033 }
1034
1035 func (x *UpdateProductSetRequest) String() string {
1036 return protoimpl.X.MessageStringOf(x)
1037 }
1038
1039 func (*UpdateProductSetRequest) ProtoMessage() {}
1040
1041 func (x *UpdateProductSetRequest) ProtoReflect() protoreflect.Message {
1042 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[13]
1043 if protoimpl.UnsafeEnabled && x != nil {
1044 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1045 if ms.LoadMessageInfo() == nil {
1046 ms.StoreMessageInfo(mi)
1047 }
1048 return ms
1049 }
1050 return mi.MessageOf(x)
1051 }
1052
1053
1054 func (*UpdateProductSetRequest) Descriptor() ([]byte, []int) {
1055 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{13}
1056 }
1057
1058 func (x *UpdateProductSetRequest) GetProductSet() *ProductSet {
1059 if x != nil {
1060 return x.ProductSet
1061 }
1062 return nil
1063 }
1064
1065 func (x *UpdateProductSetRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
1066 if x != nil {
1067 return x.UpdateMask
1068 }
1069 return nil
1070 }
1071
1072
1073 type DeleteProductSetRequest struct {
1074 state protoimpl.MessageState
1075 sizeCache protoimpl.SizeCache
1076 unknownFields protoimpl.UnknownFields
1077
1078
1079
1080
1081
1082 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1083 }
1084
1085 func (x *DeleteProductSetRequest) Reset() {
1086 *x = DeleteProductSetRequest{}
1087 if protoimpl.UnsafeEnabled {
1088 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[14]
1089 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1090 ms.StoreMessageInfo(mi)
1091 }
1092 }
1093
1094 func (x *DeleteProductSetRequest) String() string {
1095 return protoimpl.X.MessageStringOf(x)
1096 }
1097
1098 func (*DeleteProductSetRequest) ProtoMessage() {}
1099
1100 func (x *DeleteProductSetRequest) ProtoReflect() protoreflect.Message {
1101 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[14]
1102 if protoimpl.UnsafeEnabled && x != nil {
1103 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1104 if ms.LoadMessageInfo() == nil {
1105 ms.StoreMessageInfo(mi)
1106 }
1107 return ms
1108 }
1109 return mi.MessageOf(x)
1110 }
1111
1112
1113 func (*DeleteProductSetRequest) Descriptor() ([]byte, []int) {
1114 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{14}
1115 }
1116
1117 func (x *DeleteProductSetRequest) GetName() string {
1118 if x != nil {
1119 return x.Name
1120 }
1121 return ""
1122 }
1123
1124
1125 type CreateReferenceImageRequest struct {
1126 state protoimpl.MessageState
1127 sizeCache protoimpl.SizeCache
1128 unknownFields protoimpl.UnknownFields
1129
1130
1131
1132
1133
1134 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
1135
1136
1137 ReferenceImage *ReferenceImage `protobuf:"bytes,2,opt,name=reference_image,json=referenceImage,proto3" json:"reference_image,omitempty"`
1138
1139
1140
1141
1142 ReferenceImageId string `protobuf:"bytes,3,opt,name=reference_image_id,json=referenceImageId,proto3" json:"reference_image_id,omitempty"`
1143 }
1144
1145 func (x *CreateReferenceImageRequest) Reset() {
1146 *x = CreateReferenceImageRequest{}
1147 if protoimpl.UnsafeEnabled {
1148 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[15]
1149 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1150 ms.StoreMessageInfo(mi)
1151 }
1152 }
1153
1154 func (x *CreateReferenceImageRequest) String() string {
1155 return protoimpl.X.MessageStringOf(x)
1156 }
1157
1158 func (*CreateReferenceImageRequest) ProtoMessage() {}
1159
1160 func (x *CreateReferenceImageRequest) ProtoReflect() protoreflect.Message {
1161 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[15]
1162 if protoimpl.UnsafeEnabled && x != nil {
1163 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1164 if ms.LoadMessageInfo() == nil {
1165 ms.StoreMessageInfo(mi)
1166 }
1167 return ms
1168 }
1169 return mi.MessageOf(x)
1170 }
1171
1172
1173 func (*CreateReferenceImageRequest) Descriptor() ([]byte, []int) {
1174 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{15}
1175 }
1176
1177 func (x *CreateReferenceImageRequest) GetParent() string {
1178 if x != nil {
1179 return x.Parent
1180 }
1181 return ""
1182 }
1183
1184 func (x *CreateReferenceImageRequest) GetReferenceImage() *ReferenceImage {
1185 if x != nil {
1186 return x.ReferenceImage
1187 }
1188 return nil
1189 }
1190
1191 func (x *CreateReferenceImageRequest) GetReferenceImageId() string {
1192 if x != nil {
1193 return x.ReferenceImageId
1194 }
1195 return ""
1196 }
1197
1198
1199 type ListReferenceImagesRequest struct {
1200 state protoimpl.MessageState
1201 sizeCache protoimpl.SizeCache
1202 unknownFields protoimpl.UnknownFields
1203
1204
1205
1206
1207
1208 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
1209
1210 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
1211
1212
1213
1214
1215 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
1216 }
1217
1218 func (x *ListReferenceImagesRequest) Reset() {
1219 *x = ListReferenceImagesRequest{}
1220 if protoimpl.UnsafeEnabled {
1221 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[16]
1222 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1223 ms.StoreMessageInfo(mi)
1224 }
1225 }
1226
1227 func (x *ListReferenceImagesRequest) String() string {
1228 return protoimpl.X.MessageStringOf(x)
1229 }
1230
1231 func (*ListReferenceImagesRequest) ProtoMessage() {}
1232
1233 func (x *ListReferenceImagesRequest) ProtoReflect() protoreflect.Message {
1234 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[16]
1235 if protoimpl.UnsafeEnabled && x != nil {
1236 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1237 if ms.LoadMessageInfo() == nil {
1238 ms.StoreMessageInfo(mi)
1239 }
1240 return ms
1241 }
1242 return mi.MessageOf(x)
1243 }
1244
1245
1246 func (*ListReferenceImagesRequest) Descriptor() ([]byte, []int) {
1247 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{16}
1248 }
1249
1250 func (x *ListReferenceImagesRequest) GetParent() string {
1251 if x != nil {
1252 return x.Parent
1253 }
1254 return ""
1255 }
1256
1257 func (x *ListReferenceImagesRequest) GetPageSize() int32 {
1258 if x != nil {
1259 return x.PageSize
1260 }
1261 return 0
1262 }
1263
1264 func (x *ListReferenceImagesRequest) GetPageToken() string {
1265 if x != nil {
1266 return x.PageToken
1267 }
1268 return ""
1269 }
1270
1271
1272 type ListReferenceImagesResponse struct {
1273 state protoimpl.MessageState
1274 sizeCache protoimpl.SizeCache
1275 unknownFields protoimpl.UnknownFields
1276
1277
1278 ReferenceImages []*ReferenceImage `protobuf:"bytes,1,rep,name=reference_images,json=referenceImages,proto3" json:"reference_images,omitempty"`
1279
1280 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
1281
1282 NextPageToken string `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
1283 }
1284
1285 func (x *ListReferenceImagesResponse) Reset() {
1286 *x = ListReferenceImagesResponse{}
1287 if protoimpl.UnsafeEnabled {
1288 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[17]
1289 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1290 ms.StoreMessageInfo(mi)
1291 }
1292 }
1293
1294 func (x *ListReferenceImagesResponse) String() string {
1295 return protoimpl.X.MessageStringOf(x)
1296 }
1297
1298 func (*ListReferenceImagesResponse) ProtoMessage() {}
1299
1300 func (x *ListReferenceImagesResponse) ProtoReflect() protoreflect.Message {
1301 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[17]
1302 if protoimpl.UnsafeEnabled && 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
1313 func (*ListReferenceImagesResponse) Descriptor() ([]byte, []int) {
1314 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{17}
1315 }
1316
1317 func (x *ListReferenceImagesResponse) GetReferenceImages() []*ReferenceImage {
1318 if x != nil {
1319 return x.ReferenceImages
1320 }
1321 return nil
1322 }
1323
1324 func (x *ListReferenceImagesResponse) GetPageSize() int32 {
1325 if x != nil {
1326 return x.PageSize
1327 }
1328 return 0
1329 }
1330
1331 func (x *ListReferenceImagesResponse) GetNextPageToken() string {
1332 if x != nil {
1333 return x.NextPageToken
1334 }
1335 return ""
1336 }
1337
1338
1339 type GetReferenceImageRequest struct {
1340 state protoimpl.MessageState
1341 sizeCache protoimpl.SizeCache
1342 unknownFields protoimpl.UnknownFields
1343
1344
1345
1346
1347
1348
1349 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1350 }
1351
1352 func (x *GetReferenceImageRequest) Reset() {
1353 *x = GetReferenceImageRequest{}
1354 if protoimpl.UnsafeEnabled {
1355 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[18]
1356 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1357 ms.StoreMessageInfo(mi)
1358 }
1359 }
1360
1361 func (x *GetReferenceImageRequest) String() string {
1362 return protoimpl.X.MessageStringOf(x)
1363 }
1364
1365 func (*GetReferenceImageRequest) ProtoMessage() {}
1366
1367 func (x *GetReferenceImageRequest) ProtoReflect() protoreflect.Message {
1368 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[18]
1369 if protoimpl.UnsafeEnabled && x != nil {
1370 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1371 if ms.LoadMessageInfo() == nil {
1372 ms.StoreMessageInfo(mi)
1373 }
1374 return ms
1375 }
1376 return mi.MessageOf(x)
1377 }
1378
1379
1380 func (*GetReferenceImageRequest) Descriptor() ([]byte, []int) {
1381 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{18}
1382 }
1383
1384 func (x *GetReferenceImageRequest) GetName() string {
1385 if x != nil {
1386 return x.Name
1387 }
1388 return ""
1389 }
1390
1391
1392 type DeleteReferenceImageRequest struct {
1393 state protoimpl.MessageState
1394 sizeCache protoimpl.SizeCache
1395 unknownFields protoimpl.UnknownFields
1396
1397
1398
1399
1400
1401
1402 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1403 }
1404
1405 func (x *DeleteReferenceImageRequest) Reset() {
1406 *x = DeleteReferenceImageRequest{}
1407 if protoimpl.UnsafeEnabled {
1408 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[19]
1409 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1410 ms.StoreMessageInfo(mi)
1411 }
1412 }
1413
1414 func (x *DeleteReferenceImageRequest) String() string {
1415 return protoimpl.X.MessageStringOf(x)
1416 }
1417
1418 func (*DeleteReferenceImageRequest) ProtoMessage() {}
1419
1420 func (x *DeleteReferenceImageRequest) ProtoReflect() protoreflect.Message {
1421 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[19]
1422 if protoimpl.UnsafeEnabled && x != nil {
1423 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1424 if ms.LoadMessageInfo() == nil {
1425 ms.StoreMessageInfo(mi)
1426 }
1427 return ms
1428 }
1429 return mi.MessageOf(x)
1430 }
1431
1432
1433 func (*DeleteReferenceImageRequest) Descriptor() ([]byte, []int) {
1434 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{19}
1435 }
1436
1437 func (x *DeleteReferenceImageRequest) GetName() string {
1438 if x != nil {
1439 return x.Name
1440 }
1441 return ""
1442 }
1443
1444
1445 type AddProductToProductSetRequest struct {
1446 state protoimpl.MessageState
1447 sizeCache protoimpl.SizeCache
1448 unknownFields protoimpl.UnknownFields
1449
1450
1451
1452
1453
1454 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1455
1456
1457
1458
1459 Product string `protobuf:"bytes,2,opt,name=product,proto3" json:"product,omitempty"`
1460 }
1461
1462 func (x *AddProductToProductSetRequest) Reset() {
1463 *x = AddProductToProductSetRequest{}
1464 if protoimpl.UnsafeEnabled {
1465 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[20]
1466 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1467 ms.StoreMessageInfo(mi)
1468 }
1469 }
1470
1471 func (x *AddProductToProductSetRequest) String() string {
1472 return protoimpl.X.MessageStringOf(x)
1473 }
1474
1475 func (*AddProductToProductSetRequest) ProtoMessage() {}
1476
1477 func (x *AddProductToProductSetRequest) ProtoReflect() protoreflect.Message {
1478 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[20]
1479 if protoimpl.UnsafeEnabled && x != nil {
1480 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1481 if ms.LoadMessageInfo() == nil {
1482 ms.StoreMessageInfo(mi)
1483 }
1484 return ms
1485 }
1486 return mi.MessageOf(x)
1487 }
1488
1489
1490 func (*AddProductToProductSetRequest) Descriptor() ([]byte, []int) {
1491 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{20}
1492 }
1493
1494 func (x *AddProductToProductSetRequest) GetName() string {
1495 if x != nil {
1496 return x.Name
1497 }
1498 return ""
1499 }
1500
1501 func (x *AddProductToProductSetRequest) GetProduct() string {
1502 if x != nil {
1503 return x.Product
1504 }
1505 return ""
1506 }
1507
1508
1509 type RemoveProductFromProductSetRequest struct {
1510 state protoimpl.MessageState
1511 sizeCache protoimpl.SizeCache
1512 unknownFields protoimpl.UnknownFields
1513
1514
1515
1516
1517
1518 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1519
1520
1521
1522
1523 Product string `protobuf:"bytes,2,opt,name=product,proto3" json:"product,omitempty"`
1524 }
1525
1526 func (x *RemoveProductFromProductSetRequest) Reset() {
1527 *x = RemoveProductFromProductSetRequest{}
1528 if protoimpl.UnsafeEnabled {
1529 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[21]
1530 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1531 ms.StoreMessageInfo(mi)
1532 }
1533 }
1534
1535 func (x *RemoveProductFromProductSetRequest) String() string {
1536 return protoimpl.X.MessageStringOf(x)
1537 }
1538
1539 func (*RemoveProductFromProductSetRequest) ProtoMessage() {}
1540
1541 func (x *RemoveProductFromProductSetRequest) ProtoReflect() protoreflect.Message {
1542 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[21]
1543 if protoimpl.UnsafeEnabled && x != nil {
1544 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1545 if ms.LoadMessageInfo() == nil {
1546 ms.StoreMessageInfo(mi)
1547 }
1548 return ms
1549 }
1550 return mi.MessageOf(x)
1551 }
1552
1553
1554 func (*RemoveProductFromProductSetRequest) Descriptor() ([]byte, []int) {
1555 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{21}
1556 }
1557
1558 func (x *RemoveProductFromProductSetRequest) GetName() string {
1559 if x != nil {
1560 return x.Name
1561 }
1562 return ""
1563 }
1564
1565 func (x *RemoveProductFromProductSetRequest) GetProduct() string {
1566 if x != nil {
1567 return x.Product
1568 }
1569 return ""
1570 }
1571
1572
1573 type ListProductsInProductSetRequest struct {
1574 state protoimpl.MessageState
1575 sizeCache protoimpl.SizeCache
1576 unknownFields protoimpl.UnknownFields
1577
1578
1579
1580
1581
1582 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1583
1584 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
1585
1586 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
1587 }
1588
1589 func (x *ListProductsInProductSetRequest) Reset() {
1590 *x = ListProductsInProductSetRequest{}
1591 if protoimpl.UnsafeEnabled {
1592 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[22]
1593 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1594 ms.StoreMessageInfo(mi)
1595 }
1596 }
1597
1598 func (x *ListProductsInProductSetRequest) String() string {
1599 return protoimpl.X.MessageStringOf(x)
1600 }
1601
1602 func (*ListProductsInProductSetRequest) ProtoMessage() {}
1603
1604 func (x *ListProductsInProductSetRequest) ProtoReflect() protoreflect.Message {
1605 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[22]
1606 if protoimpl.UnsafeEnabled && x != nil {
1607 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1608 if ms.LoadMessageInfo() == nil {
1609 ms.StoreMessageInfo(mi)
1610 }
1611 return ms
1612 }
1613 return mi.MessageOf(x)
1614 }
1615
1616
1617 func (*ListProductsInProductSetRequest) Descriptor() ([]byte, []int) {
1618 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{22}
1619 }
1620
1621 func (x *ListProductsInProductSetRequest) GetName() string {
1622 if x != nil {
1623 return x.Name
1624 }
1625 return ""
1626 }
1627
1628 func (x *ListProductsInProductSetRequest) GetPageSize() int32 {
1629 if x != nil {
1630 return x.PageSize
1631 }
1632 return 0
1633 }
1634
1635 func (x *ListProductsInProductSetRequest) GetPageToken() string {
1636 if x != nil {
1637 return x.PageToken
1638 }
1639 return ""
1640 }
1641
1642
1643 type ListProductsInProductSetResponse struct {
1644 state protoimpl.MessageState
1645 sizeCache protoimpl.SizeCache
1646 unknownFields protoimpl.UnknownFields
1647
1648
1649 Products []*Product `protobuf:"bytes,1,rep,name=products,proto3" json:"products,omitempty"`
1650
1651
1652 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
1653 }
1654
1655 func (x *ListProductsInProductSetResponse) Reset() {
1656 *x = ListProductsInProductSetResponse{}
1657 if protoimpl.UnsafeEnabled {
1658 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[23]
1659 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1660 ms.StoreMessageInfo(mi)
1661 }
1662 }
1663
1664 func (x *ListProductsInProductSetResponse) String() string {
1665 return protoimpl.X.MessageStringOf(x)
1666 }
1667
1668 func (*ListProductsInProductSetResponse) ProtoMessage() {}
1669
1670 func (x *ListProductsInProductSetResponse) ProtoReflect() protoreflect.Message {
1671 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[23]
1672 if protoimpl.UnsafeEnabled && x != nil {
1673 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1674 if ms.LoadMessageInfo() == nil {
1675 ms.StoreMessageInfo(mi)
1676 }
1677 return ms
1678 }
1679 return mi.MessageOf(x)
1680 }
1681
1682
1683 func (*ListProductsInProductSetResponse) Descriptor() ([]byte, []int) {
1684 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{23}
1685 }
1686
1687 func (x *ListProductsInProductSetResponse) GetProducts() []*Product {
1688 if x != nil {
1689 return x.Products
1690 }
1691 return nil
1692 }
1693
1694 func (x *ListProductsInProductSetResponse) GetNextPageToken() string {
1695 if x != nil {
1696 return x.NextPageToken
1697 }
1698 return ""
1699 }
1700
1701
1702
1703 type ImportProductSetsGcsSource struct {
1704 state protoimpl.MessageState
1705 sizeCache protoimpl.SizeCache
1706 unknownFields protoimpl.UnknownFields
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765 CsvFileUri string `protobuf:"bytes,1,opt,name=csv_file_uri,json=csvFileUri,proto3" json:"csv_file_uri,omitempty"`
1766 }
1767
1768 func (x *ImportProductSetsGcsSource) Reset() {
1769 *x = ImportProductSetsGcsSource{}
1770 if protoimpl.UnsafeEnabled {
1771 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[24]
1772 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1773 ms.StoreMessageInfo(mi)
1774 }
1775 }
1776
1777 func (x *ImportProductSetsGcsSource) String() string {
1778 return protoimpl.X.MessageStringOf(x)
1779 }
1780
1781 func (*ImportProductSetsGcsSource) ProtoMessage() {}
1782
1783 func (x *ImportProductSetsGcsSource) ProtoReflect() protoreflect.Message {
1784 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[24]
1785 if protoimpl.UnsafeEnabled && x != nil {
1786 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1787 if ms.LoadMessageInfo() == nil {
1788 ms.StoreMessageInfo(mi)
1789 }
1790 return ms
1791 }
1792 return mi.MessageOf(x)
1793 }
1794
1795
1796 func (*ImportProductSetsGcsSource) Descriptor() ([]byte, []int) {
1797 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{24}
1798 }
1799
1800 func (x *ImportProductSetsGcsSource) GetCsvFileUri() string {
1801 if x != nil {
1802 return x.CsvFileUri
1803 }
1804 return ""
1805 }
1806
1807
1808 type ImportProductSetsInputConfig struct {
1809 state protoimpl.MessageState
1810 sizeCache protoimpl.SizeCache
1811 unknownFields protoimpl.UnknownFields
1812
1813
1814
1815
1816
1817 Source isImportProductSetsInputConfig_Source `protobuf_oneof:"source"`
1818 }
1819
1820 func (x *ImportProductSetsInputConfig) Reset() {
1821 *x = ImportProductSetsInputConfig{}
1822 if protoimpl.UnsafeEnabled {
1823 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[25]
1824 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1825 ms.StoreMessageInfo(mi)
1826 }
1827 }
1828
1829 func (x *ImportProductSetsInputConfig) String() string {
1830 return protoimpl.X.MessageStringOf(x)
1831 }
1832
1833 func (*ImportProductSetsInputConfig) ProtoMessage() {}
1834
1835 func (x *ImportProductSetsInputConfig) ProtoReflect() protoreflect.Message {
1836 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[25]
1837 if protoimpl.UnsafeEnabled && x != nil {
1838 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1839 if ms.LoadMessageInfo() == nil {
1840 ms.StoreMessageInfo(mi)
1841 }
1842 return ms
1843 }
1844 return mi.MessageOf(x)
1845 }
1846
1847
1848 func (*ImportProductSetsInputConfig) Descriptor() ([]byte, []int) {
1849 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{25}
1850 }
1851
1852 func (m *ImportProductSetsInputConfig) GetSource() isImportProductSetsInputConfig_Source {
1853 if m != nil {
1854 return m.Source
1855 }
1856 return nil
1857 }
1858
1859 func (x *ImportProductSetsInputConfig) GetGcsSource() *ImportProductSetsGcsSource {
1860 if x, ok := x.GetSource().(*ImportProductSetsInputConfig_GcsSource); ok {
1861 return x.GcsSource
1862 }
1863 return nil
1864 }
1865
1866 type isImportProductSetsInputConfig_Source interface {
1867 isImportProductSetsInputConfig_Source()
1868 }
1869
1870 type ImportProductSetsInputConfig_GcsSource struct {
1871
1872
1873 GcsSource *ImportProductSetsGcsSource `protobuf:"bytes,1,opt,name=gcs_source,json=gcsSource,proto3,oneof"`
1874 }
1875
1876 func (*ImportProductSetsInputConfig_GcsSource) isImportProductSetsInputConfig_Source() {}
1877
1878
1879 type ImportProductSetsRequest struct {
1880 state protoimpl.MessageState
1881 sizeCache protoimpl.SizeCache
1882 unknownFields protoimpl.UnknownFields
1883
1884
1885
1886
1887 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
1888
1889 InputConfig *ImportProductSetsInputConfig `protobuf:"bytes,2,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"`
1890 }
1891
1892 func (x *ImportProductSetsRequest) Reset() {
1893 *x = ImportProductSetsRequest{}
1894 if protoimpl.UnsafeEnabled {
1895 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[26]
1896 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1897 ms.StoreMessageInfo(mi)
1898 }
1899 }
1900
1901 func (x *ImportProductSetsRequest) String() string {
1902 return protoimpl.X.MessageStringOf(x)
1903 }
1904
1905 func (*ImportProductSetsRequest) ProtoMessage() {}
1906
1907 func (x *ImportProductSetsRequest) ProtoReflect() protoreflect.Message {
1908 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[26]
1909 if protoimpl.UnsafeEnabled && x != nil {
1910 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1911 if ms.LoadMessageInfo() == nil {
1912 ms.StoreMessageInfo(mi)
1913 }
1914 return ms
1915 }
1916 return mi.MessageOf(x)
1917 }
1918
1919
1920 func (*ImportProductSetsRequest) Descriptor() ([]byte, []int) {
1921 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{26}
1922 }
1923
1924 func (x *ImportProductSetsRequest) GetParent() string {
1925 if x != nil {
1926 return x.Parent
1927 }
1928 return ""
1929 }
1930
1931 func (x *ImportProductSetsRequest) GetInputConfig() *ImportProductSetsInputConfig {
1932 if x != nil {
1933 return x.InputConfig
1934 }
1935 return nil
1936 }
1937
1938
1939
1940
1941
1942
1943
1944
1945 type ImportProductSetsResponse struct {
1946 state protoimpl.MessageState
1947 sizeCache protoimpl.SizeCache
1948 unknownFields protoimpl.UnknownFields
1949
1950
1951 ReferenceImages []*ReferenceImage `protobuf:"bytes,1,rep,name=reference_images,json=referenceImages,proto3" json:"reference_images,omitempty"`
1952
1953
1954
1955
1956
1957
1958 Statuses []*status.Status `protobuf:"bytes,2,rep,name=statuses,proto3" json:"statuses,omitempty"`
1959 }
1960
1961 func (x *ImportProductSetsResponse) Reset() {
1962 *x = ImportProductSetsResponse{}
1963 if protoimpl.UnsafeEnabled {
1964 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[27]
1965 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1966 ms.StoreMessageInfo(mi)
1967 }
1968 }
1969
1970 func (x *ImportProductSetsResponse) String() string {
1971 return protoimpl.X.MessageStringOf(x)
1972 }
1973
1974 func (*ImportProductSetsResponse) ProtoMessage() {}
1975
1976 func (x *ImportProductSetsResponse) ProtoReflect() protoreflect.Message {
1977 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[27]
1978 if protoimpl.UnsafeEnabled && x != nil {
1979 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1980 if ms.LoadMessageInfo() == nil {
1981 ms.StoreMessageInfo(mi)
1982 }
1983 return ms
1984 }
1985 return mi.MessageOf(x)
1986 }
1987
1988
1989 func (*ImportProductSetsResponse) Descriptor() ([]byte, []int) {
1990 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{27}
1991 }
1992
1993 func (x *ImportProductSetsResponse) GetReferenceImages() []*ReferenceImage {
1994 if x != nil {
1995 return x.ReferenceImages
1996 }
1997 return nil
1998 }
1999
2000 func (x *ImportProductSetsResponse) GetStatuses() []*status.Status {
2001 if x != nil {
2002 return x.Statuses
2003 }
2004 return nil
2005 }
2006
2007
2008
2009
2010
2011 type BatchOperationMetadata struct {
2012 state protoimpl.MessageState
2013 sizeCache protoimpl.SizeCache
2014 unknownFields protoimpl.UnknownFields
2015
2016
2017 State BatchOperationMetadata_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.vision.v1p3beta1.BatchOperationMetadata_State" json:"state,omitempty"`
2018
2019 SubmitTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=submit_time,json=submitTime,proto3" json:"submit_time,omitempty"`
2020
2021
2022
2023 EndTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
2024 }
2025
2026 func (x *BatchOperationMetadata) Reset() {
2027 *x = BatchOperationMetadata{}
2028 if protoimpl.UnsafeEnabled {
2029 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[28]
2030 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2031 ms.StoreMessageInfo(mi)
2032 }
2033 }
2034
2035 func (x *BatchOperationMetadata) String() string {
2036 return protoimpl.X.MessageStringOf(x)
2037 }
2038
2039 func (*BatchOperationMetadata) ProtoMessage() {}
2040
2041 func (x *BatchOperationMetadata) ProtoReflect() protoreflect.Message {
2042 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[28]
2043 if protoimpl.UnsafeEnabled && x != nil {
2044 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2045 if ms.LoadMessageInfo() == nil {
2046 ms.StoreMessageInfo(mi)
2047 }
2048 return ms
2049 }
2050 return mi.MessageOf(x)
2051 }
2052
2053
2054 func (*BatchOperationMetadata) Descriptor() ([]byte, []int) {
2055 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{28}
2056 }
2057
2058 func (x *BatchOperationMetadata) GetState() BatchOperationMetadata_State {
2059 if x != nil {
2060 return x.State
2061 }
2062 return BatchOperationMetadata_STATE_UNSPECIFIED
2063 }
2064
2065 func (x *BatchOperationMetadata) GetSubmitTime() *timestamppb.Timestamp {
2066 if x != nil {
2067 return x.SubmitTime
2068 }
2069 return nil
2070 }
2071
2072 func (x *BatchOperationMetadata) GetEndTime() *timestamppb.Timestamp {
2073 if x != nil {
2074 return x.EndTime
2075 }
2076 return nil
2077 }
2078
2079
2080 type Product_KeyValue struct {
2081 state protoimpl.MessageState
2082 sizeCache protoimpl.SizeCache
2083 unknownFields protoimpl.UnknownFields
2084
2085
2086
2087 Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
2088
2089
2090 Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
2091 }
2092
2093 func (x *Product_KeyValue) Reset() {
2094 *x = Product_KeyValue{}
2095 if protoimpl.UnsafeEnabled {
2096 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[29]
2097 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2098 ms.StoreMessageInfo(mi)
2099 }
2100 }
2101
2102 func (x *Product_KeyValue) String() string {
2103 return protoimpl.X.MessageStringOf(x)
2104 }
2105
2106 func (*Product_KeyValue) ProtoMessage() {}
2107
2108 func (x *Product_KeyValue) ProtoReflect() protoreflect.Message {
2109 mi := &file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[29]
2110 if protoimpl.UnsafeEnabled && x != nil {
2111 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2112 if ms.LoadMessageInfo() == nil {
2113 ms.StoreMessageInfo(mi)
2114 }
2115 return ms
2116 }
2117 return mi.MessageOf(x)
2118 }
2119
2120
2121 func (*Product_KeyValue) Descriptor() ([]byte, []int) {
2122 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP(), []int{0, 0}
2123 }
2124
2125 func (x *Product_KeyValue) GetKey() string {
2126 if x != nil {
2127 return x.Key
2128 }
2129 return ""
2130 }
2131
2132 func (x *Product_KeyValue) GetValue() string {
2133 if x != nil {
2134 return x.Value
2135 }
2136 return ""
2137 }
2138
2139 var File_google_cloud_vision_v1p3beta1_product_search_service_proto protoreflect.FileDescriptor
2140
2141 var file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDesc = []byte{
2142 0x0a, 0x3a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76,
2143 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f,
2144 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x73,
2145 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1d, 0x67, 0x6f,
2146 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f,
2147 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f,
2148 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,
2149 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
2150 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f,
2151 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66,
2152 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72,
2153 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f,
2154 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c,
2155 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73,
2156 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x67, 0x65,
2157 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f,
2158 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67,
2159 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
2160 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
2161 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20,
2162 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
2163 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
2164 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
2165 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74,
2166 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74,
2167 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfe, 0x02, 0x0a, 0x07, 0x50,
2168 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
2169 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69,
2170 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
2171 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a,
2172 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
2173 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,
2174 0x2e, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67,
2175 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0f,
2176 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12,
2177 0x56, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c,
2178 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
2179 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31,
2180 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e,
2181 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63,
2182 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x32, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x56, 0x61,
2183 0x6c, 0x75, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
2184 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
2185 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x5e, 0xea, 0x41, 0x5b,
2186 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
2187 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12,
2188 0x3a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65,
2189 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c,
2190 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
2191 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x7d, 0x22, 0xa7, 0x02, 0x0a, 0x0a,
2192 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
2193 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21,
2194 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
2195 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d,
2196 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
2197 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
2198 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
2199 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x69, 0x6d,
2200 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72,
2201 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
2202 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
2203 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x68, 0xea, 0x41, 0x65,
2204 0x0a, 0x20, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
2205 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53,
2206 0x65, 0x74, 0x12, 0x41, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72,
2207 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
2208 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64,
2209 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
2210 0x5f, 0x73, 0x65, 0x74, 0x7d, 0x22, 0x9f, 0x02, 0x0a, 0x0e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65,
2211 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
2212 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x03,
2213 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03,
2214 0x75, 0x72, 0x69, 0x12, 0x57, 0x0a, 0x0e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f,
2215 0x70, 0x6f, 0x6c, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f,
2216 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f,
2217 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x75, 0x6e,
2218 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x62,
2219 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x73, 0x3a, 0x88, 0x01, 0xea,
2220 0x41, 0x84, 0x01, 0x0a, 0x24, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
2221 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x66, 0x65, 0x72,
2222 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x5c, 0x70, 0x72, 0x6f, 0x6a, 0x65,
2223 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f,
2224 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
2225 0x6e, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f,
2226 0x64, 0x75, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49,
2227 0x6d, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
2228 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x7d, 0x22, 0xbf, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61,
2229 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
2230 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
2231 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
2232 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63,
2233 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72,
2234 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x02,
2235 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
2236 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62,
2237 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41,
2238 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72,
2239 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
2240 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x13, 0x4c, 0x69,
2241 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
2242 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
2243 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74,
2244 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e,
2245 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61,
2246 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a,
2247 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a,
2248 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18,
2249 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
2250 0x22, 0x82, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
2251 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x08, 0x70, 0x72, 0x6f,
2252 0x64, 0x75, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f,
2253 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f,
2254 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64,
2255 0x75, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x26, 0x0a,
2256 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
2257 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65,
2258 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x4e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64,
2259 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61,
2260 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f,
2261 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
2262 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52,
2263 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
2264 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45,
2265 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
2266 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76,
2267 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
2268 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x72,
2269 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
2270 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
2271 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65,
2272 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61,
2273 0x73, 0x6b, 0x22, 0x51, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64,
2274 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61,
2275 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f,
2276 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
2277 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52,
2278 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
2279 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
2280 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
2281 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74,
2282 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e,
2283 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61,
2284 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f,
2285 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
2286 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
2287 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63,
2288 0x74, 0x53, 0x65, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75,
2289 0x63, 0x74, 0x53, 0x65, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
2290 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70,
2291 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x49, 0x64, 0x22, 0x97, 0x01, 0x0a, 0x16,
2292 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x52,
2293 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
2294 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21,
2295 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
2296 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
2297 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67,
2298 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61,
2299 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74,
2300 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65,
2301 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8f, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72,
2302 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
2303 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x74,
2304 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
2305 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31,
2306 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53,
2307 0x65, 0x74, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x12,
2308 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b,
2309 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61,
2310 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x54, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72,
2311 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
2312 0x3c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0,
2313 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f,
2314 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f,
2315 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa7, 0x01,
2316 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53,
2317 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x70, 0x72, 0x6f,
2318 0x64, 0x75, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29,
2319 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69,
2320 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50,
2321 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a,
2322 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70,
2323 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
2324 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
2325 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64,
2326 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x57, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74,
2327 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
2328 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
2329 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
2330 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
2331 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
2332 0x22, 0xe7, 0x01, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72,
2333 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
2334 0x12, 0x3d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
2335 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
2336 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
2337 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12,
2338 0x5b, 0x0a, 0x0f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6d, 0x61,
2339 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
2340 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
2341 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
2342 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, 0x65,
2343 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x12,
2344 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f,
2345 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
2346 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x64, 0x22, 0x97, 0x01, 0x0a, 0x1a, 0x4c,
2347 0x69, 0x73, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67,
2348 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x70, 0x61, 0x72,
2349 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41,
2350 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
2351 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
2352 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65,
2353 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67,
2354 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f,
2355 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54,
2356 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xbc, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x66,
2357 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
2358 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
2359 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d,
2360 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69,
2361 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52,
2362 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x72,
2363 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1b,
2364 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
2365 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6e,
2366 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03,
2367 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f,
2368 0x6b, 0x65, 0x6e, 0x22, 0x5c, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65,
2369 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
2370 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0,
2371 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f,
2372 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x66,
2373 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d,
2374 0x65, 0x22, 0x5f, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72,
2375 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
2376 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c,
2377 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x67,
2378 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65,
2379 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x04, 0x6e, 0x61,
2380 0x6d, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63,
2381 0x74, 0x54, 0x6f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71,
2382 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
2383 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x76, 0x69, 0x73, 0x69,
2384 0x6f, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f,
2385 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x52, 0x04, 0x6e, 0x61,
2386 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x02, 0x20,
2387 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73,
2388 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63,
2389 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64,
2390 0x75, 0x63, 0x74, 0x22, 0xa3, 0x01, 0x0a, 0x22, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72,
2391 0x6f, 0x64, 0x75, 0x63, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
2392 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61,
2393 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22,
2394 0x0a, 0x20, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
2395 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53,
2396 0x65, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64,
2397 0x75, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41,
2398 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
2399 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
2400 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x1f, 0x4c, 0x69,
2401 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x64,
2402 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a,
2403 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02,
2404 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
2405 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75,
2406 0x63, 0x74, 0x53, 0x65, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70,
2407 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
2408 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65,
2409 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61,
2410 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74,
2411 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63,
2412 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x08,
2413 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26,
2414 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69,
2415 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50,
2416 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73,
2417 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f,
2418 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50,
2419 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x3e, 0x0a, 0x1a, 0x49, 0x6d, 0x70, 0x6f,
2420 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x47, 0x63, 0x73,
2421 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x63, 0x73, 0x76, 0x5f, 0x66, 0x69,
2422 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x73,
2423 0x76, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x69, 0x22, 0x84, 0x01, 0x0a, 0x1c, 0x49, 0x6d, 0x70,
2424 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x49, 0x6e,
2425 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5a, 0x0a, 0x0a, 0x67, 0x63, 0x73,
2426 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e,
2427 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73,
2428 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6d,
2429 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x47,
2430 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x67, 0x63, 0x73, 0x53,
2431 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22,
2432 0xc2, 0x01, 0x0a, 0x18, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63,
2433 0x74, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06,
2434 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41,
2435 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e,
2436 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c,
2437 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12,
2438 0x63, 0x0a, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18,
2439 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
2440 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33,
2441 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64,
2442 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66,
2443 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f,
2444 0x6e, 0x66, 0x69, 0x67, 0x22, 0xa5, 0x01, 0x0a, 0x19, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50,
2445 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
2446 0x73, 0x65, 0x12, 0x58, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f,
2447 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67,
2448 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69,
2449 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66,
2450 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x66,
2451 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x08,
2452 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12,
2453 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74,
2454 0x75, 0x73, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x22, 0xba, 0x02, 0x0a,
2455 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d,
2456 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x51, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
2457 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
2458 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70,
2459 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x65, 0x72,
2460 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74,
2461 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x73, 0x75,
2462 0x62, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
2463 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
2464 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x73, 0x75, 0x62,
2465 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74,
2466 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
2467 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
2468 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x59,
2469 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45,
2470 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e,
2471 0x0a, 0x0a, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e,
2472 0x0a, 0x0a, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x46, 0x55, 0x4c, 0x10, 0x02, 0x12, 0x0a,
2473 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41,
2474 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x32, 0xeb, 0x1e, 0x0a, 0x0d, 0x50, 0x72,
2475 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0xe6, 0x01, 0x0a, 0x10,
2476 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74,
2477 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
2478 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31,
2479 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65,
2480 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
2481 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
2482 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
2483 0x53, 0x65, 0x74, 0x22, 0x6f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x22, 0x36, 0x2f, 0x76, 0x31,
2484 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d,
2485 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74,
2486 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53,
2487 0x65, 0x74, 0x73, 0x3a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x74,
2488 0xda, 0x41, 0x21, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63,
2489 0x74, 0x5f, 0x73, 0x65, 0x74, 0x2c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x73, 0x65,
2490 0x74, 0x5f, 0x69, 0x64, 0x12, 0xc9, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f,
2491 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
2492 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
2493 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f,
2494 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
2495 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76,
2496 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
2497 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x52,
2498 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12,
2499 0x36, 0x2f, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72,
2500 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c,
2501 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64,
2502 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
2503 0x12, 0xb6, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53,
2504 0x65, 0x74, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
2505 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74,
2506 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74,
2507 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
2508 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31,
2509 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53,
2510 0x65, 0x74, 0x22, 0x45, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12, 0x36, 0x2f, 0x76, 0x31, 0x70,
2511 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f,
2512 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
2513 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x2f,
2514 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xe8, 0x01, 0x0a, 0x10, 0x55, 0x70,
2515 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x12, 0x36,
2516 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69,
2517 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55,
2518 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x52,
2519 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
2520 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70,
2521 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65,
2522 0x74, 0x22, 0x71, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x32, 0x42, 0x2f, 0x76, 0x31, 0x70, 0x33,
2523 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x73,
2524 0x65, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73,
2525 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70,
2526 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x0b, 0x70,
2527 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x74, 0xda, 0x41, 0x17, 0x70, 0x72, 0x6f,
2528 0x64, 0x75, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
2529 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xa9, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50,
2530 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
2531 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
2532 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
2533 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
2534 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
2535 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x45, 0x82, 0xd3, 0xe4, 0x93, 0x02,
2536 0x38, 0x2a, 0x36, 0x2f, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e,
2537 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c,
2538 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75,
2539 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65,
2540 0x12, 0xce, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75,
2541 0x63, 0x74, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
2542 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74,
2543 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
2544 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
2545 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31,
2546 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22,
2547 0x60, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x22, 0x33, 0x2f, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65,
2548 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a,
2549 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
2550 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x3a, 0x07, 0x70, 0x72,
2551 0x6f, 0x64, 0x75, 0x63, 0x74, 0xda, 0x41, 0x19, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x70,
2552 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69,
2553 0x64, 0x12, 0xbd, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63,
2554 0x74, 0x73, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
2555 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74,
2556 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52,
2557 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
2558 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70,
2559 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75,
2560 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x82, 0xd3, 0xe4,
2561 0x93, 0x02, 0x35, 0x12, 0x33, 0x2f, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f,
2562 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73,
2563 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f,
2564 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
2565 0x74, 0x12, 0xaa, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
2566 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
2567 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31,
2568 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
2569 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
2570 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74,
2571 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93,
2572 0x02, 0x35, 0x12, 0x33, 0x2f, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b,
2573 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f,
2574 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64,
2575 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xd0,
2576 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
2577 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
2578 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31,
2579 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65,
2580 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
2581 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33,
2582 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0x62, 0x82,
2583 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x32, 0x3b, 0x2f, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61,
2584 0x31, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
2585 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74,
2586 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f,
2587 0x2a, 0x7d, 0x3a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0xda, 0x41, 0x13, 0x70, 0x72,
2588 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73,
2589 0x6b, 0x12, 0xa0, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64,
2590 0x75, 0x63, 0x74, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
2591 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65,
2592 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63,
2593 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
2594 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
2595 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x2a, 0x33, 0x2f, 0x76, 0x31, 0x70, 0x33, 0x62,
2596 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65,
2597 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f,
2598 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04,
2599 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x8e, 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52,
2600 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x3a, 0x2e,
2601 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73,
2602 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72,
2603 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61,
2604 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
2605 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
2606 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65,
2607 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x8a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02,
2608 0x58, 0x22, 0x45, 0x2f, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70,
2609 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a,
2610 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f,
2611 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
2612 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x3a, 0x0f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
2613 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0xda, 0x41, 0x29, 0x70, 0x61, 0x72, 0x65,
2614 0x6e, 0x74, 0x2c, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6d, 0x61,
2615 0x67, 0x65, 0x2c, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6d, 0x61,
2616 0x67, 0x65, 0x5f, 0x69, 0x64, 0x12, 0xc0, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
2617 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x3a,
2618 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69,
2619 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44,
2620 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d,
2621 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
2622 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
2623 0x74, 0x79, 0x22, 0x54, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x2a, 0x45, 0x2f, 0x76, 0x31, 0x70,
2624 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f,
2625 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
2626 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x72,
2627 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x2a,
2628 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xe4, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73,
2629 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73,
2630 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
2631 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31,
2632 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d,
2633 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f,
2634 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f,
2635 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74,
2636 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52,
2637 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x12,
2638 0x45, 0x2f, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72,
2639 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c,
2640 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75,
2641 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
2642 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12,
2643 0xd1, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
2644 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
2645 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33,
2646 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
2647 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d,
2648 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69,
2649 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52,
2650 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x54, 0x82,
2651 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x12, 0x45, 0x2f, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61,
2652 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73,
2653 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70,
2654 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
2655 0x6e, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e,
2656 0x61, 0x6d, 0x65, 0x12, 0xcb, 0x01, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x64, 0x75,
2657 0x63, 0x74, 0x54, 0x6f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x12, 0x3c,
2658 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69,
2659 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41,
2660 0x64, 0x64, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x54, 0x6f, 0x50, 0x72, 0x6f, 0x64, 0x75,
2661 0x63, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67,
2662 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
2663 0x6d, 0x70, 0x74, 0x79, 0x22, 0x5b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x22, 0x41, 0x2f, 0x76,
2664 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70,
2665 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
2666 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74,
2667 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x3a,
2668 0x01, 0x2a, 0xda, 0x41, 0x0c, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63,
2669 0x74, 0x12, 0xd8, 0x01, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x64,
2670 0x75, 0x63, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65,
2671 0x74, 0x12, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
2672 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61,
2673 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x46,
2674 0x72, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71,
2675 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
2676 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x5e, 0x82, 0xd3,
2677 0xe4, 0x93, 0x02, 0x49, 0x22, 0x44, 0x2f, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31,
2678 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f,
2679 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72,
2680 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x6d,
2681 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x0c,
2682 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0xeb, 0x01, 0x0a,
2683 0x18, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x49, 0x6e, 0x50,
2684 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
2685 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
2686 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72,
2687 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53,
2688 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
2689 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
2690 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72,
2691 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53,
2692 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x82, 0xd3, 0xe4, 0x93,
2693 0x02, 0x41, 0x12, 0x3f, 0x2f, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b,
2694 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f,
2695 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64,
2696 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75,
2697 0x63, 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x82, 0x02, 0x0a, 0x11, 0x49,
2698 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73,
2699 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
2700 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31,
2701 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65,
2702 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
2703 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f,
2704 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x94, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02,
2705 0x42, 0x22, 0x3d, 0x2f, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70,
2706 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a,
2707 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72,
2708 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x3a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74,
2709 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x70,
2710 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0xca, 0x41, 0x33, 0x0a, 0x19, 0x49, 0x6d,
2711 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x73, 0x52,
2712 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x70,
2713 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a,
2714 0x76, 0xca, 0x41, 0x15, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
2715 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x5b, 0x68, 0x74, 0x74, 0x70,
2716 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
2717 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75,
2718 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x73,
2719 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69,
2720 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64,
2721 0x2d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x88, 0x01, 0x0a, 0x21, 0x63, 0x6f, 0x6d, 0x2e,
2722 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73,
2723 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x19, 0x50,
2724 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76,
2725 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x67, 0x6f, 0x6f, 0x67,
2726 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65,
2727 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69,
2728 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
2729 0x31, 0x70, 0x33, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0xf8,
2730 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
2731 }
2732
2733 var (
2734 file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescOnce sync.Once
2735 file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescData = file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDesc
2736 )
2737
2738 func file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescGZIP() []byte {
2739 file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescOnce.Do(func() {
2740 file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescData)
2741 })
2742 return file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDescData
2743 }
2744
2745 var file_google_cloud_vision_v1p3beta1_product_search_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
2746 var file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes = make([]protoimpl.MessageInfo, 30)
2747 var file_google_cloud_vision_v1p3beta1_product_search_service_proto_goTypes = []interface{}{
2748 (BatchOperationMetadata_State)(0),
2749 (*Product)(nil),
2750 (*ProductSet)(nil),
2751 (*ReferenceImage)(nil),
2752 (*CreateProductRequest)(nil),
2753 (*ListProductsRequest)(nil),
2754 (*ListProductsResponse)(nil),
2755 (*GetProductRequest)(nil),
2756 (*UpdateProductRequest)(nil),
2757 (*DeleteProductRequest)(nil),
2758 (*CreateProductSetRequest)(nil),
2759 (*ListProductSetsRequest)(nil),
2760 (*ListProductSetsResponse)(nil),
2761 (*GetProductSetRequest)(nil),
2762 (*UpdateProductSetRequest)(nil),
2763 (*DeleteProductSetRequest)(nil),
2764 (*CreateReferenceImageRequest)(nil),
2765 (*ListReferenceImagesRequest)(nil),
2766 (*ListReferenceImagesResponse)(nil),
2767 (*GetReferenceImageRequest)(nil),
2768 (*DeleteReferenceImageRequest)(nil),
2769 (*AddProductToProductSetRequest)(nil),
2770 (*RemoveProductFromProductSetRequest)(nil),
2771 (*ListProductsInProductSetRequest)(nil),
2772 (*ListProductsInProductSetResponse)(nil),
2773 (*ImportProductSetsGcsSource)(nil),
2774 (*ImportProductSetsInputConfig)(nil),
2775 (*ImportProductSetsRequest)(nil),
2776 (*ImportProductSetsResponse)(nil),
2777 (*BatchOperationMetadata)(nil),
2778 (*Product_KeyValue)(nil),
2779 (*timestamppb.Timestamp)(nil),
2780 (*status.Status)(nil),
2781 (*BoundingPoly)(nil),
2782 (*fieldmaskpb.FieldMask)(nil),
2783 (*emptypb.Empty)(nil),
2784 (*longrunning.Operation)(nil),
2785 }
2786 var file_google_cloud_vision_v1p3beta1_product_search_service_proto_depIdxs = []int32{
2787 30,
2788 31,
2789 32,
2790 33,
2791 1,
2792 1,
2793 1,
2794 34,
2795 2,
2796 2,
2797 2,
2798 34,
2799 3,
2800 3,
2801 1,
2802 25,
2803 26,
2804 3,
2805 32,
2806 0,
2807 31,
2808 31,
2809 10,
2810 11,
2811 13,
2812 14,
2813 15,
2814 4,
2815 5,
2816 7,
2817 8,
2818 9,
2819 16,
2820 20,
2821 17,
2822 19,
2823 21,
2824 22,
2825 23,
2826 27,
2827 2,
2828 12,
2829 2,
2830 2,
2831 35,
2832 1,
2833 6,
2834 1,
2835 1,
2836 35,
2837 3,
2838 35,
2839 18,
2840 3,
2841 35,
2842 35,
2843 24,
2844 36,
2845 40,
2846 22,
2847 22,
2848 22,
2849 0,
2850 }
2851
2852 func init() { file_google_cloud_vision_v1p3beta1_product_search_service_proto_init() }
2853 func file_google_cloud_vision_v1p3beta1_product_search_service_proto_init() {
2854 if File_google_cloud_vision_v1p3beta1_product_search_service_proto != nil {
2855 return
2856 }
2857 file_google_cloud_vision_v1p3beta1_geometry_proto_init()
2858 if !protoimpl.UnsafeEnabled {
2859 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
2860 switch v := v.(*Product); i {
2861 case 0:
2862 return &v.state
2863 case 1:
2864 return &v.sizeCache
2865 case 2:
2866 return &v.unknownFields
2867 default:
2868 return nil
2869 }
2870 }
2871 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
2872 switch v := v.(*ProductSet); i {
2873 case 0:
2874 return &v.state
2875 case 1:
2876 return &v.sizeCache
2877 case 2:
2878 return &v.unknownFields
2879 default:
2880 return nil
2881 }
2882 }
2883 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
2884 switch v := v.(*ReferenceImage); i {
2885 case 0:
2886 return &v.state
2887 case 1:
2888 return &v.sizeCache
2889 case 2:
2890 return &v.unknownFields
2891 default:
2892 return nil
2893 }
2894 }
2895 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
2896 switch v := v.(*CreateProductRequest); i {
2897 case 0:
2898 return &v.state
2899 case 1:
2900 return &v.sizeCache
2901 case 2:
2902 return &v.unknownFields
2903 default:
2904 return nil
2905 }
2906 }
2907 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
2908 switch v := v.(*ListProductsRequest); i {
2909 case 0:
2910 return &v.state
2911 case 1:
2912 return &v.sizeCache
2913 case 2:
2914 return &v.unknownFields
2915 default:
2916 return nil
2917 }
2918 }
2919 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
2920 switch v := v.(*ListProductsResponse); i {
2921 case 0:
2922 return &v.state
2923 case 1:
2924 return &v.sizeCache
2925 case 2:
2926 return &v.unknownFields
2927 default:
2928 return nil
2929 }
2930 }
2931 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
2932 switch v := v.(*GetProductRequest); i {
2933 case 0:
2934 return &v.state
2935 case 1:
2936 return &v.sizeCache
2937 case 2:
2938 return &v.unknownFields
2939 default:
2940 return nil
2941 }
2942 }
2943 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
2944 switch v := v.(*UpdateProductRequest); i {
2945 case 0:
2946 return &v.state
2947 case 1:
2948 return &v.sizeCache
2949 case 2:
2950 return &v.unknownFields
2951 default:
2952 return nil
2953 }
2954 }
2955 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
2956 switch v := v.(*DeleteProductRequest); i {
2957 case 0:
2958 return &v.state
2959 case 1:
2960 return &v.sizeCache
2961 case 2:
2962 return &v.unknownFields
2963 default:
2964 return nil
2965 }
2966 }
2967 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
2968 switch v := v.(*CreateProductSetRequest); i {
2969 case 0:
2970 return &v.state
2971 case 1:
2972 return &v.sizeCache
2973 case 2:
2974 return &v.unknownFields
2975 default:
2976 return nil
2977 }
2978 }
2979 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
2980 switch v := v.(*ListProductSetsRequest); i {
2981 case 0:
2982 return &v.state
2983 case 1:
2984 return &v.sizeCache
2985 case 2:
2986 return &v.unknownFields
2987 default:
2988 return nil
2989 }
2990 }
2991 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
2992 switch v := v.(*ListProductSetsResponse); i {
2993 case 0:
2994 return &v.state
2995 case 1:
2996 return &v.sizeCache
2997 case 2:
2998 return &v.unknownFields
2999 default:
3000 return nil
3001 }
3002 }
3003 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
3004 switch v := v.(*GetProductSetRequest); i {
3005 case 0:
3006 return &v.state
3007 case 1:
3008 return &v.sizeCache
3009 case 2:
3010 return &v.unknownFields
3011 default:
3012 return nil
3013 }
3014 }
3015 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
3016 switch v := v.(*UpdateProductSetRequest); i {
3017 case 0:
3018 return &v.state
3019 case 1:
3020 return &v.sizeCache
3021 case 2:
3022 return &v.unknownFields
3023 default:
3024 return nil
3025 }
3026 }
3027 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
3028 switch v := v.(*DeleteProductSetRequest); i {
3029 case 0:
3030 return &v.state
3031 case 1:
3032 return &v.sizeCache
3033 case 2:
3034 return &v.unknownFields
3035 default:
3036 return nil
3037 }
3038 }
3039 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
3040 switch v := v.(*CreateReferenceImageRequest); i {
3041 case 0:
3042 return &v.state
3043 case 1:
3044 return &v.sizeCache
3045 case 2:
3046 return &v.unknownFields
3047 default:
3048 return nil
3049 }
3050 }
3051 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
3052 switch v := v.(*ListReferenceImagesRequest); i {
3053 case 0:
3054 return &v.state
3055 case 1:
3056 return &v.sizeCache
3057 case 2:
3058 return &v.unknownFields
3059 default:
3060 return nil
3061 }
3062 }
3063 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
3064 switch v := v.(*ListReferenceImagesResponse); i {
3065 case 0:
3066 return &v.state
3067 case 1:
3068 return &v.sizeCache
3069 case 2:
3070 return &v.unknownFields
3071 default:
3072 return nil
3073 }
3074 }
3075 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
3076 switch v := v.(*GetReferenceImageRequest); i {
3077 case 0:
3078 return &v.state
3079 case 1:
3080 return &v.sizeCache
3081 case 2:
3082 return &v.unknownFields
3083 default:
3084 return nil
3085 }
3086 }
3087 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
3088 switch v := v.(*DeleteReferenceImageRequest); i {
3089 case 0:
3090 return &v.state
3091 case 1:
3092 return &v.sizeCache
3093 case 2:
3094 return &v.unknownFields
3095 default:
3096 return nil
3097 }
3098 }
3099 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
3100 switch v := v.(*AddProductToProductSetRequest); i {
3101 case 0:
3102 return &v.state
3103 case 1:
3104 return &v.sizeCache
3105 case 2:
3106 return &v.unknownFields
3107 default:
3108 return nil
3109 }
3110 }
3111 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
3112 switch v := v.(*RemoveProductFromProductSetRequest); i {
3113 case 0:
3114 return &v.state
3115 case 1:
3116 return &v.sizeCache
3117 case 2:
3118 return &v.unknownFields
3119 default:
3120 return nil
3121 }
3122 }
3123 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
3124 switch v := v.(*ListProductsInProductSetRequest); i {
3125 case 0:
3126 return &v.state
3127 case 1:
3128 return &v.sizeCache
3129 case 2:
3130 return &v.unknownFields
3131 default:
3132 return nil
3133 }
3134 }
3135 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
3136 switch v := v.(*ListProductsInProductSetResponse); i {
3137 case 0:
3138 return &v.state
3139 case 1:
3140 return &v.sizeCache
3141 case 2:
3142 return &v.unknownFields
3143 default:
3144 return nil
3145 }
3146 }
3147 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
3148 switch v := v.(*ImportProductSetsGcsSource); i {
3149 case 0:
3150 return &v.state
3151 case 1:
3152 return &v.sizeCache
3153 case 2:
3154 return &v.unknownFields
3155 default:
3156 return nil
3157 }
3158 }
3159 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
3160 switch v := v.(*ImportProductSetsInputConfig); i {
3161 case 0:
3162 return &v.state
3163 case 1:
3164 return &v.sizeCache
3165 case 2:
3166 return &v.unknownFields
3167 default:
3168 return nil
3169 }
3170 }
3171 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
3172 switch v := v.(*ImportProductSetsRequest); i {
3173 case 0:
3174 return &v.state
3175 case 1:
3176 return &v.sizeCache
3177 case 2:
3178 return &v.unknownFields
3179 default:
3180 return nil
3181 }
3182 }
3183 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
3184 switch v := v.(*ImportProductSetsResponse); i {
3185 case 0:
3186 return &v.state
3187 case 1:
3188 return &v.sizeCache
3189 case 2:
3190 return &v.unknownFields
3191 default:
3192 return nil
3193 }
3194 }
3195 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
3196 switch v := v.(*BatchOperationMetadata); i {
3197 case 0:
3198 return &v.state
3199 case 1:
3200 return &v.sizeCache
3201 case 2:
3202 return &v.unknownFields
3203 default:
3204 return nil
3205 }
3206 }
3207 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
3208 switch v := v.(*Product_KeyValue); i {
3209 case 0:
3210 return &v.state
3211 case 1:
3212 return &v.sizeCache
3213 case 2:
3214 return &v.unknownFields
3215 default:
3216 return nil
3217 }
3218 }
3219 }
3220 file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes[25].OneofWrappers = []interface{}{
3221 (*ImportProductSetsInputConfig_GcsSource)(nil),
3222 }
3223 type x struct{}
3224 out := protoimpl.TypeBuilder{
3225 File: protoimpl.DescBuilder{
3226 GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
3227 RawDescriptor: file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDesc,
3228 NumEnums: 1,
3229 NumMessages: 30,
3230 NumExtensions: 0,
3231 NumServices: 1,
3232 },
3233 GoTypes: file_google_cloud_vision_v1p3beta1_product_search_service_proto_goTypes,
3234 DependencyIndexes: file_google_cloud_vision_v1p3beta1_product_search_service_proto_depIdxs,
3235 EnumInfos: file_google_cloud_vision_v1p3beta1_product_search_service_proto_enumTypes,
3236 MessageInfos: file_google_cloud_vision_v1p3beta1_product_search_service_proto_msgTypes,
3237 }.Build()
3238 File_google_cloud_vision_v1p3beta1_product_search_service_proto = out.File
3239 file_google_cloud_vision_v1p3beta1_product_search_service_proto_rawDesc = nil
3240 file_google_cloud_vision_v1p3beta1_product_search_service_proto_goTypes = nil
3241 file_google_cloud_vision_v1p3beta1_product_search_service_proto_depIdxs = nil
3242 }
3243
3244
3245 var _ context.Context
3246 var _ grpc.ClientConnInterface
3247
3248
3249
3250 const _ = grpc.SupportPackageIsVersion6
3251
3252
3253
3254
3255 type ProductSearchClient interface {
3256
3257
3258
3259
3260
3261
3262 CreateProductSet(ctx context.Context, in *CreateProductSetRequest, opts ...grpc.CallOption) (*ProductSet, error)
3263
3264
3265
3266
3267
3268
3269 ListProductSets(ctx context.Context, in *ListProductSetsRequest, opts ...grpc.CallOption) (*ListProductSetsResponse, error)
3270
3271
3272
3273
3274
3275 GetProductSet(ctx context.Context, in *GetProductSetRequest, opts ...grpc.CallOption) (*ProductSet, error)
3276
3277
3278
3279
3280
3281
3282
3283
3284 UpdateProductSet(ctx context.Context, in *UpdateProductSetRequest, opts ...grpc.CallOption) (*ProductSet, error)
3285
3286
3287
3288
3289
3290
3291
3292
3293 DeleteProductSet(ctx context.Context, in *DeleteProductSetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
3294
3295
3296
3297
3298
3299
3300
3301
3302 CreateProduct(ctx context.Context, in *CreateProductRequest, opts ...grpc.CallOption) (*Product, error)
3303
3304
3305
3306
3307
3308 ListProducts(ctx context.Context, in *ListProductsRequest, opts ...grpc.CallOption) (*ListProductsResponse, error)
3309
3310
3311
3312
3313
3314 GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error)
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329 UpdateProduct(ctx context.Context, in *UpdateProductRequest, opts ...grpc.CallOption) (*Product, error)
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339 DeleteProduct(ctx context.Context, in *DeleteProductRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359 CreateReferenceImage(ctx context.Context, in *CreateReferenceImageRequest, opts ...grpc.CallOption) (*ReferenceImage, error)
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371 DeleteReferenceImage(ctx context.Context, in *DeleteReferenceImageRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
3372
3373
3374
3375
3376
3377
3378
3379 ListReferenceImages(ctx context.Context, in *ListReferenceImagesRequest, opts ...grpc.CallOption) (*ListReferenceImagesResponse, error)
3380
3381
3382
3383
3384
3385 GetReferenceImage(ctx context.Context, in *GetReferenceImageRequest, opts ...grpc.CallOption) (*ReferenceImage, error)
3386
3387
3388
3389
3390
3391
3392
3393
3394 AddProductToProductSet(ctx context.Context, in *AddProductToProductSetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
3395
3396
3397
3398
3399
3400 RemoveProductFromProductSet(ctx context.Context, in *RemoveProductFromProductSetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
3401
3402
3403
3404
3405
3406
3407
3408 ListProductsInProductSet(ctx context.Context, in *ListProductsInProductSetRequest, opts ...grpc.CallOption) (*ListProductsInProductSetResponse, error)
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420 ImportProductSets(ctx context.Context, in *ImportProductSetsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
3421 }
3422
3423 type productSearchClient struct {
3424 cc grpc.ClientConnInterface
3425 }
3426
3427 func NewProductSearchClient(cc grpc.ClientConnInterface) ProductSearchClient {
3428 return &productSearchClient{cc}
3429 }
3430
3431 func (c *productSearchClient) CreateProductSet(ctx context.Context, in *CreateProductSetRequest, opts ...grpc.CallOption) (*ProductSet, error) {
3432 out := new(ProductSet)
3433 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p3beta1.ProductSearch/CreateProductSet", in, out, opts...)
3434 if err != nil {
3435 return nil, err
3436 }
3437 return out, nil
3438 }
3439
3440 func (c *productSearchClient) ListProductSets(ctx context.Context, in *ListProductSetsRequest, opts ...grpc.CallOption) (*ListProductSetsResponse, error) {
3441 out := new(ListProductSetsResponse)
3442 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p3beta1.ProductSearch/ListProductSets", in, out, opts...)
3443 if err != nil {
3444 return nil, err
3445 }
3446 return out, nil
3447 }
3448
3449 func (c *productSearchClient) GetProductSet(ctx context.Context, in *GetProductSetRequest, opts ...grpc.CallOption) (*ProductSet, error) {
3450 out := new(ProductSet)
3451 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p3beta1.ProductSearch/GetProductSet", in, out, opts...)
3452 if err != nil {
3453 return nil, err
3454 }
3455 return out, nil
3456 }
3457
3458 func (c *productSearchClient) UpdateProductSet(ctx context.Context, in *UpdateProductSetRequest, opts ...grpc.CallOption) (*ProductSet, error) {
3459 out := new(ProductSet)
3460 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p3beta1.ProductSearch/UpdateProductSet", in, out, opts...)
3461 if err != nil {
3462 return nil, err
3463 }
3464 return out, nil
3465 }
3466
3467 func (c *productSearchClient) DeleteProductSet(ctx context.Context, in *DeleteProductSetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
3468 out := new(emptypb.Empty)
3469 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p3beta1.ProductSearch/DeleteProductSet", in, out, opts...)
3470 if err != nil {
3471 return nil, err
3472 }
3473 return out, nil
3474 }
3475
3476 func (c *productSearchClient) CreateProduct(ctx context.Context, in *CreateProductRequest, opts ...grpc.CallOption) (*Product, error) {
3477 out := new(Product)
3478 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p3beta1.ProductSearch/CreateProduct", in, out, opts...)
3479 if err != nil {
3480 return nil, err
3481 }
3482 return out, nil
3483 }
3484
3485 func (c *productSearchClient) ListProducts(ctx context.Context, in *ListProductsRequest, opts ...grpc.CallOption) (*ListProductsResponse, error) {
3486 out := new(ListProductsResponse)
3487 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p3beta1.ProductSearch/ListProducts", in, out, opts...)
3488 if err != nil {
3489 return nil, err
3490 }
3491 return out, nil
3492 }
3493
3494 func (c *productSearchClient) GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error) {
3495 out := new(Product)
3496 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p3beta1.ProductSearch/GetProduct", in, out, opts...)
3497 if err != nil {
3498 return nil, err
3499 }
3500 return out, nil
3501 }
3502
3503 func (c *productSearchClient) UpdateProduct(ctx context.Context, in *UpdateProductRequest, opts ...grpc.CallOption) (*Product, error) {
3504 out := new(Product)
3505 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p3beta1.ProductSearch/UpdateProduct", in, out, opts...)
3506 if err != nil {
3507 return nil, err
3508 }
3509 return out, nil
3510 }
3511
3512 func (c *productSearchClient) DeleteProduct(ctx context.Context, in *DeleteProductRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
3513 out := new(emptypb.Empty)
3514 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p3beta1.ProductSearch/DeleteProduct", in, out, opts...)
3515 if err != nil {
3516 return nil, err
3517 }
3518 return out, nil
3519 }
3520
3521 func (c *productSearchClient) CreateReferenceImage(ctx context.Context, in *CreateReferenceImageRequest, opts ...grpc.CallOption) (*ReferenceImage, error) {
3522 out := new(ReferenceImage)
3523 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p3beta1.ProductSearch/CreateReferenceImage", in, out, opts...)
3524 if err != nil {
3525 return nil, err
3526 }
3527 return out, nil
3528 }
3529
3530 func (c *productSearchClient) DeleteReferenceImage(ctx context.Context, in *DeleteReferenceImageRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
3531 out := new(emptypb.Empty)
3532 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p3beta1.ProductSearch/DeleteReferenceImage", in, out, opts...)
3533 if err != nil {
3534 return nil, err
3535 }
3536 return out, nil
3537 }
3538
3539 func (c *productSearchClient) ListReferenceImages(ctx context.Context, in *ListReferenceImagesRequest, opts ...grpc.CallOption) (*ListReferenceImagesResponse, error) {
3540 out := new(ListReferenceImagesResponse)
3541 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p3beta1.ProductSearch/ListReferenceImages", in, out, opts...)
3542 if err != nil {
3543 return nil, err
3544 }
3545 return out, nil
3546 }
3547
3548 func (c *productSearchClient) GetReferenceImage(ctx context.Context, in *GetReferenceImageRequest, opts ...grpc.CallOption) (*ReferenceImage, error) {
3549 out := new(ReferenceImage)
3550 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p3beta1.ProductSearch/GetReferenceImage", in, out, opts...)
3551 if err != nil {
3552 return nil, err
3553 }
3554 return out, nil
3555 }
3556
3557 func (c *productSearchClient) AddProductToProductSet(ctx context.Context, in *AddProductToProductSetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
3558 out := new(emptypb.Empty)
3559 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p3beta1.ProductSearch/AddProductToProductSet", in, out, opts...)
3560 if err != nil {
3561 return nil, err
3562 }
3563 return out, nil
3564 }
3565
3566 func (c *productSearchClient) RemoveProductFromProductSet(ctx context.Context, in *RemoveProductFromProductSetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
3567 out := new(emptypb.Empty)
3568 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p3beta1.ProductSearch/RemoveProductFromProductSet", in, out, opts...)
3569 if err != nil {
3570 return nil, err
3571 }
3572 return out, nil
3573 }
3574
3575 func (c *productSearchClient) ListProductsInProductSet(ctx context.Context, in *ListProductsInProductSetRequest, opts ...grpc.CallOption) (*ListProductsInProductSetResponse, error) {
3576 out := new(ListProductsInProductSetResponse)
3577 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p3beta1.ProductSearch/ListProductsInProductSet", in, out, opts...)
3578 if err != nil {
3579 return nil, err
3580 }
3581 return out, nil
3582 }
3583
3584 func (c *productSearchClient) ImportProductSets(ctx context.Context, in *ImportProductSetsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
3585 out := new(longrunning.Operation)
3586 err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p3beta1.ProductSearch/ImportProductSets", in, out, opts...)
3587 if err != nil {
3588 return nil, err
3589 }
3590 return out, nil
3591 }
3592
3593
3594 type ProductSearchServer interface {
3595
3596
3597
3598
3599
3600
3601 CreateProductSet(context.Context, *CreateProductSetRequest) (*ProductSet, error)
3602
3603
3604
3605
3606
3607
3608 ListProductSets(context.Context, *ListProductSetsRequest) (*ListProductSetsResponse, error)
3609
3610
3611
3612
3613
3614 GetProductSet(context.Context, *GetProductSetRequest) (*ProductSet, error)
3615
3616
3617
3618
3619
3620
3621
3622
3623 UpdateProductSet(context.Context, *UpdateProductSetRequest) (*ProductSet, error)
3624
3625
3626
3627
3628
3629
3630
3631
3632 DeleteProductSet(context.Context, *DeleteProductSetRequest) (*emptypb.Empty, error)
3633
3634
3635
3636
3637
3638
3639
3640
3641 CreateProduct(context.Context, *CreateProductRequest) (*Product, error)
3642
3643
3644
3645
3646
3647 ListProducts(context.Context, *ListProductsRequest) (*ListProductsResponse, error)
3648
3649
3650
3651
3652
3653 GetProduct(context.Context, *GetProductRequest) (*Product, error)
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668 UpdateProduct(context.Context, *UpdateProductRequest) (*Product, error)
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678 DeleteProduct(context.Context, *DeleteProductRequest) (*emptypb.Empty, error)
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698 CreateReferenceImage(context.Context, *CreateReferenceImageRequest) (*ReferenceImage, error)
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710 DeleteReferenceImage(context.Context, *DeleteReferenceImageRequest) (*emptypb.Empty, error)
3711
3712
3713
3714
3715
3716
3717
3718 ListReferenceImages(context.Context, *ListReferenceImagesRequest) (*ListReferenceImagesResponse, error)
3719
3720
3721
3722
3723
3724 GetReferenceImage(context.Context, *GetReferenceImageRequest) (*ReferenceImage, error)
3725
3726
3727
3728
3729
3730
3731
3732
3733 AddProductToProductSet(context.Context, *AddProductToProductSetRequest) (*emptypb.Empty, error)
3734
3735
3736
3737
3738
3739 RemoveProductFromProductSet(context.Context, *RemoveProductFromProductSetRequest) (*emptypb.Empty, error)
3740
3741
3742
3743
3744
3745
3746
3747 ListProductsInProductSet(context.Context, *ListProductsInProductSetRequest) (*ListProductsInProductSetResponse, error)
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759 ImportProductSets(context.Context, *ImportProductSetsRequest) (*longrunning.Operation, error)
3760 }
3761
3762
3763 type UnimplementedProductSearchServer struct {
3764 }
3765
3766 func (*UnimplementedProductSearchServer) CreateProductSet(context.Context, *CreateProductSetRequest) (*ProductSet, error) {
3767 return nil, status1.Errorf(codes.Unimplemented, "method CreateProductSet not implemented")
3768 }
3769 func (*UnimplementedProductSearchServer) ListProductSets(context.Context, *ListProductSetsRequest) (*ListProductSetsResponse, error) {
3770 return nil, status1.Errorf(codes.Unimplemented, "method ListProductSets not implemented")
3771 }
3772 func (*UnimplementedProductSearchServer) GetProductSet(context.Context, *GetProductSetRequest) (*ProductSet, error) {
3773 return nil, status1.Errorf(codes.Unimplemented, "method GetProductSet not implemented")
3774 }
3775 func (*UnimplementedProductSearchServer) UpdateProductSet(context.Context, *UpdateProductSetRequest) (*ProductSet, error) {
3776 return nil, status1.Errorf(codes.Unimplemented, "method UpdateProductSet not implemented")
3777 }
3778 func (*UnimplementedProductSearchServer) DeleteProductSet(context.Context, *DeleteProductSetRequest) (*emptypb.Empty, error) {
3779 return nil, status1.Errorf(codes.Unimplemented, "method DeleteProductSet not implemented")
3780 }
3781 func (*UnimplementedProductSearchServer) CreateProduct(context.Context, *CreateProductRequest) (*Product, error) {
3782 return nil, status1.Errorf(codes.Unimplemented, "method CreateProduct not implemented")
3783 }
3784 func (*UnimplementedProductSearchServer) ListProducts(context.Context, *ListProductsRequest) (*ListProductsResponse, error) {
3785 return nil, status1.Errorf(codes.Unimplemented, "method ListProducts not implemented")
3786 }
3787 func (*UnimplementedProductSearchServer) GetProduct(context.Context, *GetProductRequest) (*Product, error) {
3788 return nil, status1.Errorf(codes.Unimplemented, "method GetProduct not implemented")
3789 }
3790 func (*UnimplementedProductSearchServer) UpdateProduct(context.Context, *UpdateProductRequest) (*Product, error) {
3791 return nil, status1.Errorf(codes.Unimplemented, "method UpdateProduct not implemented")
3792 }
3793 func (*UnimplementedProductSearchServer) DeleteProduct(context.Context, *DeleteProductRequest) (*emptypb.Empty, error) {
3794 return nil, status1.Errorf(codes.Unimplemented, "method DeleteProduct not implemented")
3795 }
3796 func (*UnimplementedProductSearchServer) CreateReferenceImage(context.Context, *CreateReferenceImageRequest) (*ReferenceImage, error) {
3797 return nil, status1.Errorf(codes.Unimplemented, "method CreateReferenceImage not implemented")
3798 }
3799 func (*UnimplementedProductSearchServer) DeleteReferenceImage(context.Context, *DeleteReferenceImageRequest) (*emptypb.Empty, error) {
3800 return nil, status1.Errorf(codes.Unimplemented, "method DeleteReferenceImage not implemented")
3801 }
3802 func (*UnimplementedProductSearchServer) ListReferenceImages(context.Context, *ListReferenceImagesRequest) (*ListReferenceImagesResponse, error) {
3803 return nil, status1.Errorf(codes.Unimplemented, "method ListReferenceImages not implemented")
3804 }
3805 func (*UnimplementedProductSearchServer) GetReferenceImage(context.Context, *GetReferenceImageRequest) (*ReferenceImage, error) {
3806 return nil, status1.Errorf(codes.Unimplemented, "method GetReferenceImage not implemented")
3807 }
3808 func (*UnimplementedProductSearchServer) AddProductToProductSet(context.Context, *AddProductToProductSetRequest) (*emptypb.Empty, error) {
3809 return nil, status1.Errorf(codes.Unimplemented, "method AddProductToProductSet not implemented")
3810 }
3811 func (*UnimplementedProductSearchServer) RemoveProductFromProductSet(context.Context, *RemoveProductFromProductSetRequest) (*emptypb.Empty, error) {
3812 return nil, status1.Errorf(codes.Unimplemented, "method RemoveProductFromProductSet not implemented")
3813 }
3814 func (*UnimplementedProductSearchServer) ListProductsInProductSet(context.Context, *ListProductsInProductSetRequest) (*ListProductsInProductSetResponse, error) {
3815 return nil, status1.Errorf(codes.Unimplemented, "method ListProductsInProductSet not implemented")
3816 }
3817 func (*UnimplementedProductSearchServer) ImportProductSets(context.Context, *ImportProductSetsRequest) (*longrunning.Operation, error) {
3818 return nil, status1.Errorf(codes.Unimplemented, "method ImportProductSets not implemented")
3819 }
3820
3821 func RegisterProductSearchServer(s *grpc.Server, srv ProductSearchServer) {
3822 s.RegisterService(&_ProductSearch_serviceDesc, srv)
3823 }
3824
3825 func _ProductSearch_CreateProductSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
3826 in := new(CreateProductSetRequest)
3827 if err := dec(in); err != nil {
3828 return nil, err
3829 }
3830 if interceptor == nil {
3831 return srv.(ProductSearchServer).CreateProductSet(ctx, in)
3832 }
3833 info := &grpc.UnaryServerInfo{
3834 Server: srv,
3835 FullMethod: "/google.cloud.vision.v1p3beta1.ProductSearch/CreateProductSet",
3836 }
3837 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
3838 return srv.(ProductSearchServer).CreateProductSet(ctx, req.(*CreateProductSetRequest))
3839 }
3840 return interceptor(ctx, in, info, handler)
3841 }
3842
3843 func _ProductSearch_ListProductSets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
3844 in := new(ListProductSetsRequest)
3845 if err := dec(in); err != nil {
3846 return nil, err
3847 }
3848 if interceptor == nil {
3849 return srv.(ProductSearchServer).ListProductSets(ctx, in)
3850 }
3851 info := &grpc.UnaryServerInfo{
3852 Server: srv,
3853 FullMethod: "/google.cloud.vision.v1p3beta1.ProductSearch/ListProductSets",
3854 }
3855 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
3856 return srv.(ProductSearchServer).ListProductSets(ctx, req.(*ListProductSetsRequest))
3857 }
3858 return interceptor(ctx, in, info, handler)
3859 }
3860
3861 func _ProductSearch_GetProductSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
3862 in := new(GetProductSetRequest)
3863 if err := dec(in); err != nil {
3864 return nil, err
3865 }
3866 if interceptor == nil {
3867 return srv.(ProductSearchServer).GetProductSet(ctx, in)
3868 }
3869 info := &grpc.UnaryServerInfo{
3870 Server: srv,
3871 FullMethod: "/google.cloud.vision.v1p3beta1.ProductSearch/GetProductSet",
3872 }
3873 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
3874 return srv.(ProductSearchServer).GetProductSet(ctx, req.(*GetProductSetRequest))
3875 }
3876 return interceptor(ctx, in, info, handler)
3877 }
3878
3879 func _ProductSearch_UpdateProductSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
3880 in := new(UpdateProductSetRequest)
3881 if err := dec(in); err != nil {
3882 return nil, err
3883 }
3884 if interceptor == nil {
3885 return srv.(ProductSearchServer).UpdateProductSet(ctx, in)
3886 }
3887 info := &grpc.UnaryServerInfo{
3888 Server: srv,
3889 FullMethod: "/google.cloud.vision.v1p3beta1.ProductSearch/UpdateProductSet",
3890 }
3891 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
3892 return srv.(ProductSearchServer).UpdateProductSet(ctx, req.(*UpdateProductSetRequest))
3893 }
3894 return interceptor(ctx, in, info, handler)
3895 }
3896
3897 func _ProductSearch_DeleteProductSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
3898 in := new(DeleteProductSetRequest)
3899 if err := dec(in); err != nil {
3900 return nil, err
3901 }
3902 if interceptor == nil {
3903 return srv.(ProductSearchServer).DeleteProductSet(ctx, in)
3904 }
3905 info := &grpc.UnaryServerInfo{
3906 Server: srv,
3907 FullMethod: "/google.cloud.vision.v1p3beta1.ProductSearch/DeleteProductSet",
3908 }
3909 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
3910 return srv.(ProductSearchServer).DeleteProductSet(ctx, req.(*DeleteProductSetRequest))
3911 }
3912 return interceptor(ctx, in, info, handler)
3913 }
3914
3915 func _ProductSearch_CreateProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
3916 in := new(CreateProductRequest)
3917 if err := dec(in); err != nil {
3918 return nil, err
3919 }
3920 if interceptor == nil {
3921 return srv.(ProductSearchServer).CreateProduct(ctx, in)
3922 }
3923 info := &grpc.UnaryServerInfo{
3924 Server: srv,
3925 FullMethod: "/google.cloud.vision.v1p3beta1.ProductSearch/CreateProduct",
3926 }
3927 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
3928 return srv.(ProductSearchServer).CreateProduct(ctx, req.(*CreateProductRequest))
3929 }
3930 return interceptor(ctx, in, info, handler)
3931 }
3932
3933 func _ProductSearch_ListProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
3934 in := new(ListProductsRequest)
3935 if err := dec(in); err != nil {
3936 return nil, err
3937 }
3938 if interceptor == nil {
3939 return srv.(ProductSearchServer).ListProducts(ctx, in)
3940 }
3941 info := &grpc.UnaryServerInfo{
3942 Server: srv,
3943 FullMethod: "/google.cloud.vision.v1p3beta1.ProductSearch/ListProducts",
3944 }
3945 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
3946 return srv.(ProductSearchServer).ListProducts(ctx, req.(*ListProductsRequest))
3947 }
3948 return interceptor(ctx, in, info, handler)
3949 }
3950
3951 func _ProductSearch_GetProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
3952 in := new(GetProductRequest)
3953 if err := dec(in); err != nil {
3954 return nil, err
3955 }
3956 if interceptor == nil {
3957 return srv.(ProductSearchServer).GetProduct(ctx, in)
3958 }
3959 info := &grpc.UnaryServerInfo{
3960 Server: srv,
3961 FullMethod: "/google.cloud.vision.v1p3beta1.ProductSearch/GetProduct",
3962 }
3963 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
3964 return srv.(ProductSearchServer).GetProduct(ctx, req.(*GetProductRequest))
3965 }
3966 return interceptor(ctx, in, info, handler)
3967 }
3968
3969 func _ProductSearch_UpdateProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
3970 in := new(UpdateProductRequest)
3971 if err := dec(in); err != nil {
3972 return nil, err
3973 }
3974 if interceptor == nil {
3975 return srv.(ProductSearchServer).UpdateProduct(ctx, in)
3976 }
3977 info := &grpc.UnaryServerInfo{
3978 Server: srv,
3979 FullMethod: "/google.cloud.vision.v1p3beta1.ProductSearch/UpdateProduct",
3980 }
3981 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
3982 return srv.(ProductSearchServer).UpdateProduct(ctx, req.(*UpdateProductRequest))
3983 }
3984 return interceptor(ctx, in, info, handler)
3985 }
3986
3987 func _ProductSearch_DeleteProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
3988 in := new(DeleteProductRequest)
3989 if err := dec(in); err != nil {
3990 return nil, err
3991 }
3992 if interceptor == nil {
3993 return srv.(ProductSearchServer).DeleteProduct(ctx, in)
3994 }
3995 info := &grpc.UnaryServerInfo{
3996 Server: srv,
3997 FullMethod: "/google.cloud.vision.v1p3beta1.ProductSearch/DeleteProduct",
3998 }
3999 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4000 return srv.(ProductSearchServer).DeleteProduct(ctx, req.(*DeleteProductRequest))
4001 }
4002 return interceptor(ctx, in, info, handler)
4003 }
4004
4005 func _ProductSearch_CreateReferenceImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4006 in := new(CreateReferenceImageRequest)
4007 if err := dec(in); err != nil {
4008 return nil, err
4009 }
4010 if interceptor == nil {
4011 return srv.(ProductSearchServer).CreateReferenceImage(ctx, in)
4012 }
4013 info := &grpc.UnaryServerInfo{
4014 Server: srv,
4015 FullMethod: "/google.cloud.vision.v1p3beta1.ProductSearch/CreateReferenceImage",
4016 }
4017 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4018 return srv.(ProductSearchServer).CreateReferenceImage(ctx, req.(*CreateReferenceImageRequest))
4019 }
4020 return interceptor(ctx, in, info, handler)
4021 }
4022
4023 func _ProductSearch_DeleteReferenceImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4024 in := new(DeleteReferenceImageRequest)
4025 if err := dec(in); err != nil {
4026 return nil, err
4027 }
4028 if interceptor == nil {
4029 return srv.(ProductSearchServer).DeleteReferenceImage(ctx, in)
4030 }
4031 info := &grpc.UnaryServerInfo{
4032 Server: srv,
4033 FullMethod: "/google.cloud.vision.v1p3beta1.ProductSearch/DeleteReferenceImage",
4034 }
4035 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4036 return srv.(ProductSearchServer).DeleteReferenceImage(ctx, req.(*DeleteReferenceImageRequest))
4037 }
4038 return interceptor(ctx, in, info, handler)
4039 }
4040
4041 func _ProductSearch_ListReferenceImages_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4042 in := new(ListReferenceImagesRequest)
4043 if err := dec(in); err != nil {
4044 return nil, err
4045 }
4046 if interceptor == nil {
4047 return srv.(ProductSearchServer).ListReferenceImages(ctx, in)
4048 }
4049 info := &grpc.UnaryServerInfo{
4050 Server: srv,
4051 FullMethod: "/google.cloud.vision.v1p3beta1.ProductSearch/ListReferenceImages",
4052 }
4053 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4054 return srv.(ProductSearchServer).ListReferenceImages(ctx, req.(*ListReferenceImagesRequest))
4055 }
4056 return interceptor(ctx, in, info, handler)
4057 }
4058
4059 func _ProductSearch_GetReferenceImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4060 in := new(GetReferenceImageRequest)
4061 if err := dec(in); err != nil {
4062 return nil, err
4063 }
4064 if interceptor == nil {
4065 return srv.(ProductSearchServer).GetReferenceImage(ctx, in)
4066 }
4067 info := &grpc.UnaryServerInfo{
4068 Server: srv,
4069 FullMethod: "/google.cloud.vision.v1p3beta1.ProductSearch/GetReferenceImage",
4070 }
4071 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4072 return srv.(ProductSearchServer).GetReferenceImage(ctx, req.(*GetReferenceImageRequest))
4073 }
4074 return interceptor(ctx, in, info, handler)
4075 }
4076
4077 func _ProductSearch_AddProductToProductSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4078 in := new(AddProductToProductSetRequest)
4079 if err := dec(in); err != nil {
4080 return nil, err
4081 }
4082 if interceptor == nil {
4083 return srv.(ProductSearchServer).AddProductToProductSet(ctx, in)
4084 }
4085 info := &grpc.UnaryServerInfo{
4086 Server: srv,
4087 FullMethod: "/google.cloud.vision.v1p3beta1.ProductSearch/AddProductToProductSet",
4088 }
4089 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4090 return srv.(ProductSearchServer).AddProductToProductSet(ctx, req.(*AddProductToProductSetRequest))
4091 }
4092 return interceptor(ctx, in, info, handler)
4093 }
4094
4095 func _ProductSearch_RemoveProductFromProductSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4096 in := new(RemoveProductFromProductSetRequest)
4097 if err := dec(in); err != nil {
4098 return nil, err
4099 }
4100 if interceptor == nil {
4101 return srv.(ProductSearchServer).RemoveProductFromProductSet(ctx, in)
4102 }
4103 info := &grpc.UnaryServerInfo{
4104 Server: srv,
4105 FullMethod: "/google.cloud.vision.v1p3beta1.ProductSearch/RemoveProductFromProductSet",
4106 }
4107 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4108 return srv.(ProductSearchServer).RemoveProductFromProductSet(ctx, req.(*RemoveProductFromProductSetRequest))
4109 }
4110 return interceptor(ctx, in, info, handler)
4111 }
4112
4113 func _ProductSearch_ListProductsInProductSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4114 in := new(ListProductsInProductSetRequest)
4115 if err := dec(in); err != nil {
4116 return nil, err
4117 }
4118 if interceptor == nil {
4119 return srv.(ProductSearchServer).ListProductsInProductSet(ctx, in)
4120 }
4121 info := &grpc.UnaryServerInfo{
4122 Server: srv,
4123 FullMethod: "/google.cloud.vision.v1p3beta1.ProductSearch/ListProductsInProductSet",
4124 }
4125 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4126 return srv.(ProductSearchServer).ListProductsInProductSet(ctx, req.(*ListProductsInProductSetRequest))
4127 }
4128 return interceptor(ctx, in, info, handler)
4129 }
4130
4131 func _ProductSearch_ImportProductSets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
4132 in := new(ImportProductSetsRequest)
4133 if err := dec(in); err != nil {
4134 return nil, err
4135 }
4136 if interceptor == nil {
4137 return srv.(ProductSearchServer).ImportProductSets(ctx, in)
4138 }
4139 info := &grpc.UnaryServerInfo{
4140 Server: srv,
4141 FullMethod: "/google.cloud.vision.v1p3beta1.ProductSearch/ImportProductSets",
4142 }
4143 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
4144 return srv.(ProductSearchServer).ImportProductSets(ctx, req.(*ImportProductSetsRequest))
4145 }
4146 return interceptor(ctx, in, info, handler)
4147 }
4148
4149 var _ProductSearch_serviceDesc = grpc.ServiceDesc{
4150 ServiceName: "google.cloud.vision.v1p3beta1.ProductSearch",
4151 HandlerType: (*ProductSearchServer)(nil),
4152 Methods: []grpc.MethodDesc{
4153 {
4154 MethodName: "CreateProductSet",
4155 Handler: _ProductSearch_CreateProductSet_Handler,
4156 },
4157 {
4158 MethodName: "ListProductSets",
4159 Handler: _ProductSearch_ListProductSets_Handler,
4160 },
4161 {
4162 MethodName: "GetProductSet",
4163 Handler: _ProductSearch_GetProductSet_Handler,
4164 },
4165 {
4166 MethodName: "UpdateProductSet",
4167 Handler: _ProductSearch_UpdateProductSet_Handler,
4168 },
4169 {
4170 MethodName: "DeleteProductSet",
4171 Handler: _ProductSearch_DeleteProductSet_Handler,
4172 },
4173 {
4174 MethodName: "CreateProduct",
4175 Handler: _ProductSearch_CreateProduct_Handler,
4176 },
4177 {
4178 MethodName: "ListProducts",
4179 Handler: _ProductSearch_ListProducts_Handler,
4180 },
4181 {
4182 MethodName: "GetProduct",
4183 Handler: _ProductSearch_GetProduct_Handler,
4184 },
4185 {
4186 MethodName: "UpdateProduct",
4187 Handler: _ProductSearch_UpdateProduct_Handler,
4188 },
4189 {
4190 MethodName: "DeleteProduct",
4191 Handler: _ProductSearch_DeleteProduct_Handler,
4192 },
4193 {
4194 MethodName: "CreateReferenceImage",
4195 Handler: _ProductSearch_CreateReferenceImage_Handler,
4196 },
4197 {
4198 MethodName: "DeleteReferenceImage",
4199 Handler: _ProductSearch_DeleteReferenceImage_Handler,
4200 },
4201 {
4202 MethodName: "ListReferenceImages",
4203 Handler: _ProductSearch_ListReferenceImages_Handler,
4204 },
4205 {
4206 MethodName: "GetReferenceImage",
4207 Handler: _ProductSearch_GetReferenceImage_Handler,
4208 },
4209 {
4210 MethodName: "AddProductToProductSet",
4211 Handler: _ProductSearch_AddProductToProductSet_Handler,
4212 },
4213 {
4214 MethodName: "RemoveProductFromProductSet",
4215 Handler: _ProductSearch_RemoveProductFromProductSet_Handler,
4216 },
4217 {
4218 MethodName: "ListProductsInProductSet",
4219 Handler: _ProductSearch_ListProductsInProductSet_Handler,
4220 },
4221 {
4222 MethodName: "ImportProductSets",
4223 Handler: _ProductSearch_ImportProductSets_Handler,
4224 },
4225 },
4226 Streams: []grpc.StreamDesc{},
4227 Metadata: "google/cloud/vision/v1p3beta1/product_search_service.proto",
4228 }
4229
View as plain text