1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: google/cloud/vision/v1p4beta1/product_search_service.proto
3
4package vision
5
6import (
7	context "context"
8	fmt "fmt"
9	math "math"
10
11	proto "github.com/golang/protobuf/proto"
12	empty "github.com/golang/protobuf/ptypes/empty"
13	timestamp "github.com/golang/protobuf/ptypes/timestamp"
14	_ "google.golang.org/genproto/googleapis/api/annotations"
15	longrunning "google.golang.org/genproto/googleapis/longrunning"
16	status "google.golang.org/genproto/googleapis/rpc/status"
17	field_mask "google.golang.org/genproto/protobuf/field_mask"
18	grpc "google.golang.org/grpc"
19)
20
21// Reference imports to suppress errors if they are not otherwise used.
22var _ = proto.Marshal
23var _ = fmt.Errorf
24var _ = math.Inf
25
26// This is a compile-time assertion to ensure that this generated file
27// is compatible with the proto package it is being compiled against.
28// A compilation error at this line likely means your copy of the
29// proto package needs to be updated.
30const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
31
32// Enumerates the possible states that the batch request can be in.
33type BatchOperationMetadata_State int32
34
35const (
36	// Invalid.
37	BatchOperationMetadata_STATE_UNSPECIFIED BatchOperationMetadata_State = 0
38	// Request is actively being processed.
39	BatchOperationMetadata_PROCESSING BatchOperationMetadata_State = 1
40	// The request is done and at least one item has been successfully
41	// processed.
42	BatchOperationMetadata_SUCCESSFUL BatchOperationMetadata_State = 2
43	// The request is done and no item has been successfully processed.
44	BatchOperationMetadata_FAILED BatchOperationMetadata_State = 3
45	// The request is done after the longrunning.Operations.CancelOperation has
46	// been called by the user.  Any records that were processed before the
47	// cancel command are output as specified in the request.
48	BatchOperationMetadata_CANCELLED BatchOperationMetadata_State = 4
49)
50
51var BatchOperationMetadata_State_name = map[int32]string{
52	0: "STATE_UNSPECIFIED",
53	1: "PROCESSING",
54	2: "SUCCESSFUL",
55	3: "FAILED",
56	4: "CANCELLED",
57}
58
59var BatchOperationMetadata_State_value = map[string]int32{
60	"STATE_UNSPECIFIED": 0,
61	"PROCESSING":        1,
62	"SUCCESSFUL":        2,
63	"FAILED":            3,
64	"CANCELLED":         4,
65}
66
67func (x BatchOperationMetadata_State) String() string {
68	return proto.EnumName(BatchOperationMetadata_State_name, int32(x))
69}
70
71func (BatchOperationMetadata_State) EnumDescriptor() ([]byte, []int) {
72	return fileDescriptor_3ac817753c311f0a, []int{28, 0}
73}
74
75// A Product contains ReferenceImages.
76type Product struct {
77	// The resource name of the product.
78	//
79	// Format is:
80	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
81	//
82	// This field is ignored when creating a product.
83	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
84	// The user-provided name for this Product. Must not be empty. Must be at most
85	// 4096 characters long.
86	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
87	// User-provided metadata to be stored with this product. Must be at most 4096
88	// characters long.
89	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
90	// The category for the product identified by the reference image. This should
91	// be either "homegoods-v2", "apparel-v2", "toys-v2", or "packagedgoods-v1".
92	// The legacy categories "homegoods", "apparel", and "toys" are still
93	// supported but will be deprecated. For new products, please use
94	// "homegoods-v2", "apparel-v2", or "toys-v2" for better product search
95	// accuracy. It is recommended to migrate existing products to these
96	// categories as well.
97	//
98	// This field is immutable.
99	ProductCategory string `protobuf:"bytes,4,opt,name=product_category,json=productCategory,proto3" json:"product_category,omitempty"`
100	// Key-value pairs that can be attached to a product. At query time,
101	// constraints can be specified based on the product_labels.
102	//
103	// Note that integer values can be provided as strings, e.g. "1199". Only
104	// strings with integer values can match a range-based restriction which is
105	// to be supported soon.
106	//
107	// Multiple values can be assigned to the same key. One product may have up to
108	// 100 product_labels.
109	ProductLabels        []*Product_KeyValue `protobuf:"bytes,5,rep,name=product_labels,json=productLabels,proto3" json:"product_labels,omitempty"`
110	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
111	XXX_unrecognized     []byte              `json:"-"`
112	XXX_sizecache        int32               `json:"-"`
113}
114
115func (m *Product) Reset()         { *m = Product{} }
116func (m *Product) String() string { return proto.CompactTextString(m) }
117func (*Product) ProtoMessage()    {}
118func (*Product) Descriptor() ([]byte, []int) {
119	return fileDescriptor_3ac817753c311f0a, []int{0}
120}
121
122func (m *Product) XXX_Unmarshal(b []byte) error {
123	return xxx_messageInfo_Product.Unmarshal(m, b)
124}
125func (m *Product) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
126	return xxx_messageInfo_Product.Marshal(b, m, deterministic)
127}
128func (m *Product) XXX_Merge(src proto.Message) {
129	xxx_messageInfo_Product.Merge(m, src)
130}
131func (m *Product) XXX_Size() int {
132	return xxx_messageInfo_Product.Size(m)
133}
134func (m *Product) XXX_DiscardUnknown() {
135	xxx_messageInfo_Product.DiscardUnknown(m)
136}
137
138var xxx_messageInfo_Product proto.InternalMessageInfo
139
140func (m *Product) GetName() string {
141	if m != nil {
142		return m.Name
143	}
144	return ""
145}
146
147func (m *Product) GetDisplayName() string {
148	if m != nil {
149		return m.DisplayName
150	}
151	return ""
152}
153
154func (m *Product) GetDescription() string {
155	if m != nil {
156		return m.Description
157	}
158	return ""
159}
160
161func (m *Product) GetProductCategory() string {
162	if m != nil {
163		return m.ProductCategory
164	}
165	return ""
166}
167
168func (m *Product) GetProductLabels() []*Product_KeyValue {
169	if m != nil {
170		return m.ProductLabels
171	}
172	return nil
173}
174
175// A product label represented as a key-value pair.
176type Product_KeyValue struct {
177	// The key of the label attached to the product. Cannot be empty and cannot
178	// exceed 128 bytes.
179	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
180	// The value of the label attached to the product. Cannot be empty and
181	// cannot exceed 128 bytes.
182	Value                string   `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
183	XXX_NoUnkeyedLiteral struct{} `json:"-"`
184	XXX_unrecognized     []byte   `json:"-"`
185	XXX_sizecache        int32    `json:"-"`
186}
187
188func (m *Product_KeyValue) Reset()         { *m = Product_KeyValue{} }
189func (m *Product_KeyValue) String() string { return proto.CompactTextString(m) }
190func (*Product_KeyValue) ProtoMessage()    {}
191func (*Product_KeyValue) Descriptor() ([]byte, []int) {
192	return fileDescriptor_3ac817753c311f0a, []int{0, 0}
193}
194
195func (m *Product_KeyValue) XXX_Unmarshal(b []byte) error {
196	return xxx_messageInfo_Product_KeyValue.Unmarshal(m, b)
197}
198func (m *Product_KeyValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
199	return xxx_messageInfo_Product_KeyValue.Marshal(b, m, deterministic)
200}
201func (m *Product_KeyValue) XXX_Merge(src proto.Message) {
202	xxx_messageInfo_Product_KeyValue.Merge(m, src)
203}
204func (m *Product_KeyValue) XXX_Size() int {
205	return xxx_messageInfo_Product_KeyValue.Size(m)
206}
207func (m *Product_KeyValue) XXX_DiscardUnknown() {
208	xxx_messageInfo_Product_KeyValue.DiscardUnknown(m)
209}
210
211var xxx_messageInfo_Product_KeyValue proto.InternalMessageInfo
212
213func (m *Product_KeyValue) GetKey() string {
214	if m != nil {
215		return m.Key
216	}
217	return ""
218}
219
220func (m *Product_KeyValue) GetValue() string {
221	if m != nil {
222		return m.Value
223	}
224	return ""
225}
226
227// A ProductSet contains Products. A ProductSet can contain a maximum of 1
228// million reference images. If the limit is exceeded, periodic indexing will
229// fail.
230type ProductSet struct {
231	// The resource name of the ProductSet.
232	//
233	// Format is:
234	// `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.
235	//
236	// This field is ignored when creating a ProductSet.
237	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
238	// The user-provided name for this ProductSet. Must not be empty. Must be at
239	// most 4096 characters long.
240	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
241	// Output only. The time at which this ProductSet was last indexed. Query
242	// results will reflect all updates before this time. If this ProductSet has
243	// never been indexed, this timestamp is the default value
244	// "1970-01-01T00:00:00Z".
245	//
246	// This field is ignored when creating a ProductSet.
247	IndexTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=index_time,json=indexTime,proto3" json:"index_time,omitempty"`
248	// Output only. If there was an error with indexing the product set, the field
249	// is populated.
250	//
251	// This field is ignored when creating a ProductSet.
252	IndexError           *status.Status `protobuf:"bytes,4,opt,name=index_error,json=indexError,proto3" json:"index_error,omitempty"`
253	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
254	XXX_unrecognized     []byte         `json:"-"`
255	XXX_sizecache        int32          `json:"-"`
256}
257
258func (m *ProductSet) Reset()         { *m = ProductSet{} }
259func (m *ProductSet) String() string { return proto.CompactTextString(m) }
260func (*ProductSet) ProtoMessage()    {}
261func (*ProductSet) Descriptor() ([]byte, []int) {
262	return fileDescriptor_3ac817753c311f0a, []int{1}
263}
264
265func (m *ProductSet) XXX_Unmarshal(b []byte) error {
266	return xxx_messageInfo_ProductSet.Unmarshal(m, b)
267}
268func (m *ProductSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
269	return xxx_messageInfo_ProductSet.Marshal(b, m, deterministic)
270}
271func (m *ProductSet) XXX_Merge(src proto.Message) {
272	xxx_messageInfo_ProductSet.Merge(m, src)
273}
274func (m *ProductSet) XXX_Size() int {
275	return xxx_messageInfo_ProductSet.Size(m)
276}
277func (m *ProductSet) XXX_DiscardUnknown() {
278	xxx_messageInfo_ProductSet.DiscardUnknown(m)
279}
280
281var xxx_messageInfo_ProductSet proto.InternalMessageInfo
282
283func (m *ProductSet) GetName() string {
284	if m != nil {
285		return m.Name
286	}
287	return ""
288}
289
290func (m *ProductSet) GetDisplayName() string {
291	if m != nil {
292		return m.DisplayName
293	}
294	return ""
295}
296
297func (m *ProductSet) GetIndexTime() *timestamp.Timestamp {
298	if m != nil {
299		return m.IndexTime
300	}
301	return nil
302}
303
304func (m *ProductSet) GetIndexError() *status.Status {
305	if m != nil {
306		return m.IndexError
307	}
308	return nil
309}
310
311// A `ReferenceImage` represents a product image and its associated metadata,
312// such as bounding boxes.
313type ReferenceImage struct {
314	// The resource name of the reference image.
315	//
316	// Format is:
317	//
318	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceImages/IMAGE_ID`.
319	//
320	// This field is ignored when creating a reference image.
321	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
322	// The Google Cloud Storage URI of the reference image.
323	//
324	// The URI must start with `gs://`.
325	//
326	// Required.
327	Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"`
328	// Bounding polygons around the areas of interest in the reference image.
329	// Optional. If this field is empty, the system will try to detect regions of
330	// interest. At most 10 bounding polygons will be used.
331	//
332	// The provided shape is converted into a non-rotated rectangle. Once
333	// converted, the small edge of the rectangle must be greater than or equal
334	// to 300 pixels. The aspect ratio must be 1:4 or less (i.e. 1:3 is ok; 1:5
335	// is not).
336	BoundingPolys        []*BoundingPoly `protobuf:"bytes,3,rep,name=bounding_polys,json=boundingPolys,proto3" json:"bounding_polys,omitempty"`
337	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
338	XXX_unrecognized     []byte          `json:"-"`
339	XXX_sizecache        int32           `json:"-"`
340}
341
342func (m *ReferenceImage) Reset()         { *m = ReferenceImage{} }
343func (m *ReferenceImage) String() string { return proto.CompactTextString(m) }
344func (*ReferenceImage) ProtoMessage()    {}
345func (*ReferenceImage) Descriptor() ([]byte, []int) {
346	return fileDescriptor_3ac817753c311f0a, []int{2}
347}
348
349func (m *ReferenceImage) XXX_Unmarshal(b []byte) error {
350	return xxx_messageInfo_ReferenceImage.Unmarshal(m, b)
351}
352func (m *ReferenceImage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
353	return xxx_messageInfo_ReferenceImage.Marshal(b, m, deterministic)
354}
355func (m *ReferenceImage) XXX_Merge(src proto.Message) {
356	xxx_messageInfo_ReferenceImage.Merge(m, src)
357}
358func (m *ReferenceImage) XXX_Size() int {
359	return xxx_messageInfo_ReferenceImage.Size(m)
360}
361func (m *ReferenceImage) XXX_DiscardUnknown() {
362	xxx_messageInfo_ReferenceImage.DiscardUnknown(m)
363}
364
365var xxx_messageInfo_ReferenceImage proto.InternalMessageInfo
366
367func (m *ReferenceImage) GetName() string {
368	if m != nil {
369		return m.Name
370	}
371	return ""
372}
373
374func (m *ReferenceImage) GetUri() string {
375	if m != nil {
376		return m.Uri
377	}
378	return ""
379}
380
381func (m *ReferenceImage) GetBoundingPolys() []*BoundingPoly {
382	if m != nil {
383		return m.BoundingPolys
384	}
385	return nil
386}
387
388// Request message for the `CreateProduct` method.
389type CreateProductRequest struct {
390	// The project in which the Product should be created.
391	//
392	// Format is
393	// `projects/PROJECT_ID/locations/LOC_ID`.
394	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
395	// The product to create.
396	Product *Product `protobuf:"bytes,2,opt,name=product,proto3" json:"product,omitempty"`
397	// A user-supplied resource id for this Product. If set, the server will
398	// attempt to use this value as the resource id. If it is already in use, an
399	// error is returned with code ALREADY_EXISTS. Must be at most 128 characters
400	// long. It cannot contain the character `/`.
401	ProductId            string   `protobuf:"bytes,3,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"`
402	XXX_NoUnkeyedLiteral struct{} `json:"-"`
403	XXX_unrecognized     []byte   `json:"-"`
404	XXX_sizecache        int32    `json:"-"`
405}
406
407func (m *CreateProductRequest) Reset()         { *m = CreateProductRequest{} }
408func (m *CreateProductRequest) String() string { return proto.CompactTextString(m) }
409func (*CreateProductRequest) ProtoMessage()    {}
410func (*CreateProductRequest) Descriptor() ([]byte, []int) {
411	return fileDescriptor_3ac817753c311f0a, []int{3}
412}
413
414func (m *CreateProductRequest) XXX_Unmarshal(b []byte) error {
415	return xxx_messageInfo_CreateProductRequest.Unmarshal(m, b)
416}
417func (m *CreateProductRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
418	return xxx_messageInfo_CreateProductRequest.Marshal(b, m, deterministic)
419}
420func (m *CreateProductRequest) XXX_Merge(src proto.Message) {
421	xxx_messageInfo_CreateProductRequest.Merge(m, src)
422}
423func (m *CreateProductRequest) XXX_Size() int {
424	return xxx_messageInfo_CreateProductRequest.Size(m)
425}
426func (m *CreateProductRequest) XXX_DiscardUnknown() {
427	xxx_messageInfo_CreateProductRequest.DiscardUnknown(m)
428}
429
430var xxx_messageInfo_CreateProductRequest proto.InternalMessageInfo
431
432func (m *CreateProductRequest) GetParent() string {
433	if m != nil {
434		return m.Parent
435	}
436	return ""
437}
438
439func (m *CreateProductRequest) GetProduct() *Product {
440	if m != nil {
441		return m.Product
442	}
443	return nil
444}
445
446func (m *CreateProductRequest) GetProductId() string {
447	if m != nil {
448		return m.ProductId
449	}
450	return ""
451}
452
453// Request message for the `ListProducts` method.
454type ListProductsRequest struct {
455	// The project OR ProductSet from which Products should be listed.
456	//
457	// Format:
458	// `projects/PROJECT_ID/locations/LOC_ID`
459	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
460	// The maximum number of items to return. Default 10, maximum 100.
461	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
462	// The next_page_token returned from a previous List request, if any.
463	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
464	XXX_NoUnkeyedLiteral struct{} `json:"-"`
465	XXX_unrecognized     []byte   `json:"-"`
466	XXX_sizecache        int32    `json:"-"`
467}
468
469func (m *ListProductsRequest) Reset()         { *m = ListProductsRequest{} }
470func (m *ListProductsRequest) String() string { return proto.CompactTextString(m) }
471func (*ListProductsRequest) ProtoMessage()    {}
472func (*ListProductsRequest) Descriptor() ([]byte, []int) {
473	return fileDescriptor_3ac817753c311f0a, []int{4}
474}
475
476func (m *ListProductsRequest) XXX_Unmarshal(b []byte) error {
477	return xxx_messageInfo_ListProductsRequest.Unmarshal(m, b)
478}
479func (m *ListProductsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
480	return xxx_messageInfo_ListProductsRequest.Marshal(b, m, deterministic)
481}
482func (m *ListProductsRequest) XXX_Merge(src proto.Message) {
483	xxx_messageInfo_ListProductsRequest.Merge(m, src)
484}
485func (m *ListProductsRequest) XXX_Size() int {
486	return xxx_messageInfo_ListProductsRequest.Size(m)
487}
488func (m *ListProductsRequest) XXX_DiscardUnknown() {
489	xxx_messageInfo_ListProductsRequest.DiscardUnknown(m)
490}
491
492var xxx_messageInfo_ListProductsRequest proto.InternalMessageInfo
493
494func (m *ListProductsRequest) GetParent() string {
495	if m != nil {
496		return m.Parent
497	}
498	return ""
499}
500
501func (m *ListProductsRequest) GetPageSize() int32 {
502	if m != nil {
503		return m.PageSize
504	}
505	return 0
506}
507
508func (m *ListProductsRequest) GetPageToken() string {
509	if m != nil {
510		return m.PageToken
511	}
512	return ""
513}
514
515// Response message for the `ListProducts` method.
516type ListProductsResponse struct {
517	// List of products.
518	Products []*Product `protobuf:"bytes,1,rep,name=products,proto3" json:"products,omitempty"`
519	// Token to retrieve the next page of results, or empty if there are no more
520	// results in the list.
521	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
522	XXX_NoUnkeyedLiteral struct{} `json:"-"`
523	XXX_unrecognized     []byte   `json:"-"`
524	XXX_sizecache        int32    `json:"-"`
525}
526
527func (m *ListProductsResponse) Reset()         { *m = ListProductsResponse{} }
528func (m *ListProductsResponse) String() string { return proto.CompactTextString(m) }
529func (*ListProductsResponse) ProtoMessage()    {}
530func (*ListProductsResponse) Descriptor() ([]byte, []int) {
531	return fileDescriptor_3ac817753c311f0a, []int{5}
532}
533
534func (m *ListProductsResponse) XXX_Unmarshal(b []byte) error {
535	return xxx_messageInfo_ListProductsResponse.Unmarshal(m, b)
536}
537func (m *ListProductsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
538	return xxx_messageInfo_ListProductsResponse.Marshal(b, m, deterministic)
539}
540func (m *ListProductsResponse) XXX_Merge(src proto.Message) {
541	xxx_messageInfo_ListProductsResponse.Merge(m, src)
542}
543func (m *ListProductsResponse) XXX_Size() int {
544	return xxx_messageInfo_ListProductsResponse.Size(m)
545}
546func (m *ListProductsResponse) XXX_DiscardUnknown() {
547	xxx_messageInfo_ListProductsResponse.DiscardUnknown(m)
548}
549
550var xxx_messageInfo_ListProductsResponse proto.InternalMessageInfo
551
552func (m *ListProductsResponse) GetProducts() []*Product {
553	if m != nil {
554		return m.Products
555	}
556	return nil
557}
558
559func (m *ListProductsResponse) GetNextPageToken() string {
560	if m != nil {
561		return m.NextPageToken
562	}
563	return ""
564}
565
566// Request message for the `GetProduct` method.
567type GetProductRequest struct {
568	// Resource name of the Product to get.
569	//
570	// Format is:
571	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`
572	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
573	XXX_NoUnkeyedLiteral struct{} `json:"-"`
574	XXX_unrecognized     []byte   `json:"-"`
575	XXX_sizecache        int32    `json:"-"`
576}
577
578func (m *GetProductRequest) Reset()         { *m = GetProductRequest{} }
579func (m *GetProductRequest) String() string { return proto.CompactTextString(m) }
580func (*GetProductRequest) ProtoMessage()    {}
581func (*GetProductRequest) Descriptor() ([]byte, []int) {
582	return fileDescriptor_3ac817753c311f0a, []int{6}
583}
584
585func (m *GetProductRequest) XXX_Unmarshal(b []byte) error {
586	return xxx_messageInfo_GetProductRequest.Unmarshal(m, b)
587}
588func (m *GetProductRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
589	return xxx_messageInfo_GetProductRequest.Marshal(b, m, deterministic)
590}
591func (m *GetProductRequest) XXX_Merge(src proto.Message) {
592	xxx_messageInfo_GetProductRequest.Merge(m, src)
593}
594func (m *GetProductRequest) XXX_Size() int {
595	return xxx_messageInfo_GetProductRequest.Size(m)
596}
597func (m *GetProductRequest) XXX_DiscardUnknown() {
598	xxx_messageInfo_GetProductRequest.DiscardUnknown(m)
599}
600
601var xxx_messageInfo_GetProductRequest proto.InternalMessageInfo
602
603func (m *GetProductRequest) GetName() string {
604	if m != nil {
605		return m.Name
606	}
607	return ""
608}
609
610// Request message for the `UpdateProduct` method.
611type UpdateProductRequest struct {
612	// The Product resource which replaces the one on the server.
613	// product.name is immutable.
614	Product *Product `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"`
615	// The [FieldMask][google.protobuf.FieldMask] that specifies which fields
616	// to update.
617	// If update_mask isn't specified, all mutable fields are to be updated.
618	// Valid mask paths include `product_labels`, `display_name`, and
619	// `description`.
620	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
621	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
622	XXX_unrecognized     []byte                `json:"-"`
623	XXX_sizecache        int32                 `json:"-"`
624}
625
626func (m *UpdateProductRequest) Reset()         { *m = UpdateProductRequest{} }
627func (m *UpdateProductRequest) String() string { return proto.CompactTextString(m) }
628func (*UpdateProductRequest) ProtoMessage()    {}
629func (*UpdateProductRequest) Descriptor() ([]byte, []int) {
630	return fileDescriptor_3ac817753c311f0a, []int{7}
631}
632
633func (m *UpdateProductRequest) XXX_Unmarshal(b []byte) error {
634	return xxx_messageInfo_UpdateProductRequest.Unmarshal(m, b)
635}
636func (m *UpdateProductRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
637	return xxx_messageInfo_UpdateProductRequest.Marshal(b, m, deterministic)
638}
639func (m *UpdateProductRequest) XXX_Merge(src proto.Message) {
640	xxx_messageInfo_UpdateProductRequest.Merge(m, src)
641}
642func (m *UpdateProductRequest) XXX_Size() int {
643	return xxx_messageInfo_UpdateProductRequest.Size(m)
644}
645func (m *UpdateProductRequest) XXX_DiscardUnknown() {
646	xxx_messageInfo_UpdateProductRequest.DiscardUnknown(m)
647}
648
649var xxx_messageInfo_UpdateProductRequest proto.InternalMessageInfo
650
651func (m *UpdateProductRequest) GetProduct() *Product {
652	if m != nil {
653		return m.Product
654	}
655	return nil
656}
657
658func (m *UpdateProductRequest) GetUpdateMask() *field_mask.FieldMask {
659	if m != nil {
660		return m.UpdateMask
661	}
662	return nil
663}
664
665// Request message for the `DeleteProduct` method.
666type DeleteProductRequest struct {
667	// Resource name of product to delete.
668	//
669	// Format is:
670	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`
671	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
672	XXX_NoUnkeyedLiteral struct{} `json:"-"`
673	XXX_unrecognized     []byte   `json:"-"`
674	XXX_sizecache        int32    `json:"-"`
675}
676
677func (m *DeleteProductRequest) Reset()         { *m = DeleteProductRequest{} }
678func (m *DeleteProductRequest) String() string { return proto.CompactTextString(m) }
679func (*DeleteProductRequest) ProtoMessage()    {}
680func (*DeleteProductRequest) Descriptor() ([]byte, []int) {
681	return fileDescriptor_3ac817753c311f0a, []int{8}
682}
683
684func (m *DeleteProductRequest) XXX_Unmarshal(b []byte) error {
685	return xxx_messageInfo_DeleteProductRequest.Unmarshal(m, b)
686}
687func (m *DeleteProductRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
688	return xxx_messageInfo_DeleteProductRequest.Marshal(b, m, deterministic)
689}
690func (m *DeleteProductRequest) XXX_Merge(src proto.Message) {
691	xxx_messageInfo_DeleteProductRequest.Merge(m, src)
692}
693func (m *DeleteProductRequest) XXX_Size() int {
694	return xxx_messageInfo_DeleteProductRequest.Size(m)
695}
696func (m *DeleteProductRequest) XXX_DiscardUnknown() {
697	xxx_messageInfo_DeleteProductRequest.DiscardUnknown(m)
698}
699
700var xxx_messageInfo_DeleteProductRequest proto.InternalMessageInfo
701
702func (m *DeleteProductRequest) GetName() string {
703	if m != nil {
704		return m.Name
705	}
706	return ""
707}
708
709// Request message for the `CreateProductSet` method.
710type CreateProductSetRequest struct {
711	// The project in which the ProductSet should be created.
712	//
713	// Format is `projects/PROJECT_ID/locations/LOC_ID`.
714	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
715	// The ProductSet to create.
716	ProductSet *ProductSet `protobuf:"bytes,2,opt,name=product_set,json=productSet,proto3" json:"product_set,omitempty"`
717	// A user-supplied resource id for this ProductSet. If set, the server will
718	// attempt to use this value as the resource id. If it is already in use, an
719	// error is returned with code ALREADY_EXISTS. Must be at most 128 characters
720	// long. It cannot contain the character `/`.
721	ProductSetId         string   `protobuf:"bytes,3,opt,name=product_set_id,json=productSetId,proto3" json:"product_set_id,omitempty"`
722	XXX_NoUnkeyedLiteral struct{} `json:"-"`
723	XXX_unrecognized     []byte   `json:"-"`
724	XXX_sizecache        int32    `json:"-"`
725}
726
727func (m *CreateProductSetRequest) Reset()         { *m = CreateProductSetRequest{} }
728func (m *CreateProductSetRequest) String() string { return proto.CompactTextString(m) }
729func (*CreateProductSetRequest) ProtoMessage()    {}
730func (*CreateProductSetRequest) Descriptor() ([]byte, []int) {
731	return fileDescriptor_3ac817753c311f0a, []int{9}
732}
733
734func (m *CreateProductSetRequest) XXX_Unmarshal(b []byte) error {
735	return xxx_messageInfo_CreateProductSetRequest.Unmarshal(m, b)
736}
737func (m *CreateProductSetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
738	return xxx_messageInfo_CreateProductSetRequest.Marshal(b, m, deterministic)
739}
740func (m *CreateProductSetRequest) XXX_Merge(src proto.Message) {
741	xxx_messageInfo_CreateProductSetRequest.Merge(m, src)
742}
743func (m *CreateProductSetRequest) XXX_Size() int {
744	return xxx_messageInfo_CreateProductSetRequest.Size(m)
745}
746func (m *CreateProductSetRequest) XXX_DiscardUnknown() {
747	xxx_messageInfo_CreateProductSetRequest.DiscardUnknown(m)
748}
749
750var xxx_messageInfo_CreateProductSetRequest proto.InternalMessageInfo
751
752func (m *CreateProductSetRequest) GetParent() string {
753	if m != nil {
754		return m.Parent
755	}
756	return ""
757}
758
759func (m *CreateProductSetRequest) GetProductSet() *ProductSet {
760	if m != nil {
761		return m.ProductSet
762	}
763	return nil
764}
765
766func (m *CreateProductSetRequest) GetProductSetId() string {
767	if m != nil {
768		return m.ProductSetId
769	}
770	return ""
771}
772
773// Request message for the `ListProductSets` method.
774type ListProductSetsRequest struct {
775	// The project from which ProductSets should be listed.
776	//
777	// Format is `projects/PROJECT_ID/locations/LOC_ID`.
778	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
779	// The maximum number of items to return. Default 10, maximum 100.
780	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
781	// The next_page_token returned from a previous List request, if any.
782	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
783	XXX_NoUnkeyedLiteral struct{} `json:"-"`
784	XXX_unrecognized     []byte   `json:"-"`
785	XXX_sizecache        int32    `json:"-"`
786}
787
788func (m *ListProductSetsRequest) Reset()         { *m = ListProductSetsRequest{} }
789func (m *ListProductSetsRequest) String() string { return proto.CompactTextString(m) }
790func (*ListProductSetsRequest) ProtoMessage()    {}
791func (*ListProductSetsRequest) Descriptor() ([]byte, []int) {
792	return fileDescriptor_3ac817753c311f0a, []int{10}
793}
794
795func (m *ListProductSetsRequest) XXX_Unmarshal(b []byte) error {
796	return xxx_messageInfo_ListProductSetsRequest.Unmarshal(m, b)
797}
798func (m *ListProductSetsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
799	return xxx_messageInfo_ListProductSetsRequest.Marshal(b, m, deterministic)
800}
801func (m *ListProductSetsRequest) XXX_Merge(src proto.Message) {
802	xxx_messageInfo_ListProductSetsRequest.Merge(m, src)
803}
804func (m *ListProductSetsRequest) XXX_Size() int {
805	return xxx_messageInfo_ListProductSetsRequest.Size(m)
806}
807func (m *ListProductSetsRequest) XXX_DiscardUnknown() {
808	xxx_messageInfo_ListProductSetsRequest.DiscardUnknown(m)
809}
810
811var xxx_messageInfo_ListProductSetsRequest proto.InternalMessageInfo
812
813func (m *ListProductSetsRequest) GetParent() string {
814	if m != nil {
815		return m.Parent
816	}
817	return ""
818}
819
820func (m *ListProductSetsRequest) GetPageSize() int32 {
821	if m != nil {
822		return m.PageSize
823	}
824	return 0
825}
826
827func (m *ListProductSetsRequest) GetPageToken() string {
828	if m != nil {
829		return m.PageToken
830	}
831	return ""
832}
833
834// Response message for the `ListProductSets` method.
835type ListProductSetsResponse struct {
836	// List of ProductSets.
837	ProductSets []*ProductSet `protobuf:"bytes,1,rep,name=product_sets,json=productSets,proto3" json:"product_sets,omitempty"`
838	// Token to retrieve the next page of results, or empty if there are no more
839	// results in the list.
840	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
841	XXX_NoUnkeyedLiteral struct{} `json:"-"`
842	XXX_unrecognized     []byte   `json:"-"`
843	XXX_sizecache        int32    `json:"-"`
844}
845
846func (m *ListProductSetsResponse) Reset()         { *m = ListProductSetsResponse{} }
847func (m *ListProductSetsResponse) String() string { return proto.CompactTextString(m) }
848func (*ListProductSetsResponse) ProtoMessage()    {}
849func (*ListProductSetsResponse) Descriptor() ([]byte, []int) {
850	return fileDescriptor_3ac817753c311f0a, []int{11}
851}
852
853func (m *ListProductSetsResponse) XXX_Unmarshal(b []byte) error {
854	return xxx_messageInfo_ListProductSetsResponse.Unmarshal(m, b)
855}
856func (m *ListProductSetsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
857	return xxx_messageInfo_ListProductSetsResponse.Marshal(b, m, deterministic)
858}
859func (m *ListProductSetsResponse) XXX_Merge(src proto.Message) {
860	xxx_messageInfo_ListProductSetsResponse.Merge(m, src)
861}
862func (m *ListProductSetsResponse) XXX_Size() int {
863	return xxx_messageInfo_ListProductSetsResponse.Size(m)
864}
865func (m *ListProductSetsResponse) XXX_DiscardUnknown() {
866	xxx_messageInfo_ListProductSetsResponse.DiscardUnknown(m)
867}
868
869var xxx_messageInfo_ListProductSetsResponse proto.InternalMessageInfo
870
871func (m *ListProductSetsResponse) GetProductSets() []*ProductSet {
872	if m != nil {
873		return m.ProductSets
874	}
875	return nil
876}
877
878func (m *ListProductSetsResponse) GetNextPageToken() string {
879	if m != nil {
880		return m.NextPageToken
881	}
882	return ""
883}
884
885// Request message for the `GetProductSet` method.
886type GetProductSetRequest struct {
887	// Resource name of the ProductSet to get.
888	//
889	// Format is:
890	// `projects/PROJECT_ID/locations/LOG_ID/productSets/PRODUCT_SET_ID`
891	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
892	XXX_NoUnkeyedLiteral struct{} `json:"-"`
893	XXX_unrecognized     []byte   `json:"-"`
894	XXX_sizecache        int32    `json:"-"`
895}
896
897func (m *GetProductSetRequest) Reset()         { *m = GetProductSetRequest{} }
898func (m *GetProductSetRequest) String() string { return proto.CompactTextString(m) }
899func (*GetProductSetRequest) ProtoMessage()    {}
900func (*GetProductSetRequest) Descriptor() ([]byte, []int) {
901	return fileDescriptor_3ac817753c311f0a, []int{12}
902}
903
904func (m *GetProductSetRequest) XXX_Unmarshal(b []byte) error {
905	return xxx_messageInfo_GetProductSetRequest.Unmarshal(m, b)
906}
907func (m *GetProductSetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
908	return xxx_messageInfo_GetProductSetRequest.Marshal(b, m, deterministic)
909}
910func (m *GetProductSetRequest) XXX_Merge(src proto.Message) {
911	xxx_messageInfo_GetProductSetRequest.Merge(m, src)
912}
913func (m *GetProductSetRequest) XXX_Size() int {
914	return xxx_messageInfo_GetProductSetRequest.Size(m)
915}
916func (m *GetProductSetRequest) XXX_DiscardUnknown() {
917	xxx_messageInfo_GetProductSetRequest.DiscardUnknown(m)
918}
919
920var xxx_messageInfo_GetProductSetRequest proto.InternalMessageInfo
921
922func (m *GetProductSetRequest) GetName() string {
923	if m != nil {
924		return m.Name
925	}
926	return ""
927}
928
929// Request message for the `UpdateProductSet` method.
930type UpdateProductSetRequest struct {
931	// The ProductSet resource which replaces the one on the server.
932	ProductSet *ProductSet `protobuf:"bytes,1,opt,name=product_set,json=productSet,proto3" json:"product_set,omitempty"`
933	// The [FieldMask][google.protobuf.FieldMask] that specifies which fields to
934	// update.
935	// If update_mask isn't specified, all mutable fields are to be updated.
936	// Valid mask path is `display_name`.
937	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
938	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
939	XXX_unrecognized     []byte                `json:"-"`
940	XXX_sizecache        int32                 `json:"-"`
941}
942
943func (m *UpdateProductSetRequest) Reset()         { *m = UpdateProductSetRequest{} }
944func (m *UpdateProductSetRequest) String() string { return proto.CompactTextString(m) }
945func (*UpdateProductSetRequest) ProtoMessage()    {}
946func (*UpdateProductSetRequest) Descriptor() ([]byte, []int) {
947	return fileDescriptor_3ac817753c311f0a, []int{13}
948}
949
950func (m *UpdateProductSetRequest) XXX_Unmarshal(b []byte) error {
951	return xxx_messageInfo_UpdateProductSetRequest.Unmarshal(m, b)
952}
953func (m *UpdateProductSetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
954	return xxx_messageInfo_UpdateProductSetRequest.Marshal(b, m, deterministic)
955}
956func (m *UpdateProductSetRequest) XXX_Merge(src proto.Message) {
957	xxx_messageInfo_UpdateProductSetRequest.Merge(m, src)
958}
959func (m *UpdateProductSetRequest) XXX_Size() int {
960	return xxx_messageInfo_UpdateProductSetRequest.Size(m)
961}
962func (m *UpdateProductSetRequest) XXX_DiscardUnknown() {
963	xxx_messageInfo_UpdateProductSetRequest.DiscardUnknown(m)
964}
965
966var xxx_messageInfo_UpdateProductSetRequest proto.InternalMessageInfo
967
968func (m *UpdateProductSetRequest) GetProductSet() *ProductSet {
969	if m != nil {
970		return m.ProductSet
971	}
972	return nil
973}
974
975func (m *UpdateProductSetRequest) GetUpdateMask() *field_mask.FieldMask {
976	if m != nil {
977		return m.UpdateMask
978	}
979	return nil
980}
981
982// Request message for the `DeleteProductSet` method.
983type DeleteProductSetRequest struct {
984	// Resource name of the ProductSet to delete.
985	//
986	// Format is:
987	// `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`
988	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
989	XXX_NoUnkeyedLiteral struct{} `json:"-"`
990	XXX_unrecognized     []byte   `json:"-"`
991	XXX_sizecache        int32    `json:"-"`
992}
993
994func (m *DeleteProductSetRequest) Reset()         { *m = DeleteProductSetRequest{} }
995func (m *DeleteProductSetRequest) String() string { return proto.CompactTextString(m) }
996func (*DeleteProductSetRequest) ProtoMessage()    {}
997func (*DeleteProductSetRequest) Descriptor() ([]byte, []int) {
998	return fileDescriptor_3ac817753c311f0a, []int{14}
999}
1000
1001func (m *DeleteProductSetRequest) XXX_Unmarshal(b []byte) error {
1002	return xxx_messageInfo_DeleteProductSetRequest.Unmarshal(m, b)
1003}
1004func (m *DeleteProductSetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1005	return xxx_messageInfo_DeleteProductSetRequest.Marshal(b, m, deterministic)
1006}
1007func (m *DeleteProductSetRequest) XXX_Merge(src proto.Message) {
1008	xxx_messageInfo_DeleteProductSetRequest.Merge(m, src)
1009}
1010func (m *DeleteProductSetRequest) XXX_Size() int {
1011	return xxx_messageInfo_DeleteProductSetRequest.Size(m)
1012}
1013func (m *DeleteProductSetRequest) XXX_DiscardUnknown() {
1014	xxx_messageInfo_DeleteProductSetRequest.DiscardUnknown(m)
1015}
1016
1017var xxx_messageInfo_DeleteProductSetRequest proto.InternalMessageInfo
1018
1019func (m *DeleteProductSetRequest) GetName() string {
1020	if m != nil {
1021		return m.Name
1022	}
1023	return ""
1024}
1025
1026// Request message for the `CreateReferenceImage` method.
1027type CreateReferenceImageRequest struct {
1028	// Resource name of the product in which to create the reference image.
1029	//
1030	// Format is
1031	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
1032	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
1033	// The reference image to create.
1034	// If an image ID is specified, it is ignored.
1035	ReferenceImage *ReferenceImage `protobuf:"bytes,2,opt,name=reference_image,json=referenceImage,proto3" json:"reference_image,omitempty"`
1036	// A user-supplied resource id for the ReferenceImage to be added. If set,
1037	// the server will attempt to use this value as the resource id. If it is
1038	// already in use, an error is returned with code ALREADY_EXISTS. Must be at
1039	// most 128 characters long. It cannot contain the character `/`.
1040	ReferenceImageId     string   `protobuf:"bytes,3,opt,name=reference_image_id,json=referenceImageId,proto3" json:"reference_image_id,omitempty"`
1041	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1042	XXX_unrecognized     []byte   `json:"-"`
1043	XXX_sizecache        int32    `json:"-"`
1044}
1045
1046func (m *CreateReferenceImageRequest) Reset()         { *m = CreateReferenceImageRequest{} }
1047func (m *CreateReferenceImageRequest) String() string { return proto.CompactTextString(m) }
1048func (*CreateReferenceImageRequest) ProtoMessage()    {}
1049func (*CreateReferenceImageRequest) Descriptor() ([]byte, []int) {
1050	return fileDescriptor_3ac817753c311f0a, []int{15}
1051}
1052
1053func (m *CreateReferenceImageRequest) XXX_Unmarshal(b []byte) error {
1054	return xxx_messageInfo_CreateReferenceImageRequest.Unmarshal(m, b)
1055}
1056func (m *CreateReferenceImageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1057	return xxx_messageInfo_CreateReferenceImageRequest.Marshal(b, m, deterministic)
1058}
1059func (m *CreateReferenceImageRequest) XXX_Merge(src proto.Message) {
1060	xxx_messageInfo_CreateReferenceImageRequest.Merge(m, src)
1061}
1062func (m *CreateReferenceImageRequest) XXX_Size() int {
1063	return xxx_messageInfo_CreateReferenceImageRequest.Size(m)
1064}
1065func (m *CreateReferenceImageRequest) XXX_DiscardUnknown() {
1066	xxx_messageInfo_CreateReferenceImageRequest.DiscardUnknown(m)
1067}
1068
1069var xxx_messageInfo_CreateReferenceImageRequest proto.InternalMessageInfo
1070
1071func (m *CreateReferenceImageRequest) GetParent() string {
1072	if m != nil {
1073		return m.Parent
1074	}
1075	return ""
1076}
1077
1078func (m *CreateReferenceImageRequest) GetReferenceImage() *ReferenceImage {
1079	if m != nil {
1080		return m.ReferenceImage
1081	}
1082	return nil
1083}
1084
1085func (m *CreateReferenceImageRequest) GetReferenceImageId() string {
1086	if m != nil {
1087		return m.ReferenceImageId
1088	}
1089	return ""
1090}
1091
1092// Request message for the `ListReferenceImages` method.
1093type ListReferenceImagesRequest struct {
1094	// Resource name of the product containing the reference images.
1095	//
1096	// Format is
1097	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`.
1098	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
1099	// The maximum number of items to return. Default 10, maximum 100.
1100	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
1101	// A token identifying a page of results to be returned. This is the value
1102	// of `nextPageToken` returned in a previous reference image list request.
1103	//
1104	// Defaults to the first page if not specified.
1105	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
1106	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1107	XXX_unrecognized     []byte   `json:"-"`
1108	XXX_sizecache        int32    `json:"-"`
1109}
1110
1111func (m *ListReferenceImagesRequest) Reset()         { *m = ListReferenceImagesRequest{} }
1112func (m *ListReferenceImagesRequest) String() string { return proto.CompactTextString(m) }
1113func (*ListReferenceImagesRequest) ProtoMessage()    {}
1114func (*ListReferenceImagesRequest) Descriptor() ([]byte, []int) {
1115	return fileDescriptor_3ac817753c311f0a, []int{16}
1116}
1117
1118func (m *ListReferenceImagesRequest) XXX_Unmarshal(b []byte) error {
1119	return xxx_messageInfo_ListReferenceImagesRequest.Unmarshal(m, b)
1120}
1121func (m *ListReferenceImagesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1122	return xxx_messageInfo_ListReferenceImagesRequest.Marshal(b, m, deterministic)
1123}
1124func (m *ListReferenceImagesRequest) XXX_Merge(src proto.Message) {
1125	xxx_messageInfo_ListReferenceImagesRequest.Merge(m, src)
1126}
1127func (m *ListReferenceImagesRequest) XXX_Size() int {
1128	return xxx_messageInfo_ListReferenceImagesRequest.Size(m)
1129}
1130func (m *ListReferenceImagesRequest) XXX_DiscardUnknown() {
1131	xxx_messageInfo_ListReferenceImagesRequest.DiscardUnknown(m)
1132}
1133
1134var xxx_messageInfo_ListReferenceImagesRequest proto.InternalMessageInfo
1135
1136func (m *ListReferenceImagesRequest) GetParent() string {
1137	if m != nil {
1138		return m.Parent
1139	}
1140	return ""
1141}
1142
1143func (m *ListReferenceImagesRequest) GetPageSize() int32 {
1144	if m != nil {
1145		return m.PageSize
1146	}
1147	return 0
1148}
1149
1150func (m *ListReferenceImagesRequest) GetPageToken() string {
1151	if m != nil {
1152		return m.PageToken
1153	}
1154	return ""
1155}
1156
1157// Response message for the `ListReferenceImages` method.
1158type ListReferenceImagesResponse struct {
1159	// The list of reference images.
1160	ReferenceImages []*ReferenceImage `protobuf:"bytes,1,rep,name=reference_images,json=referenceImages,proto3" json:"reference_images,omitempty"`
1161	// The maximum number of items to return. Default 10, maximum 100.
1162	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
1163	// The next_page_token returned from a previous List request, if any.
1164	NextPageToken        string   `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
1165	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1166	XXX_unrecognized     []byte   `json:"-"`
1167	XXX_sizecache        int32    `json:"-"`
1168}
1169
1170func (m *ListReferenceImagesResponse) Reset()         { *m = ListReferenceImagesResponse{} }
1171func (m *ListReferenceImagesResponse) String() string { return proto.CompactTextString(m) }
1172func (*ListReferenceImagesResponse) ProtoMessage()    {}
1173func (*ListReferenceImagesResponse) Descriptor() ([]byte, []int) {
1174	return fileDescriptor_3ac817753c311f0a, []int{17}
1175}
1176
1177func (m *ListReferenceImagesResponse) XXX_Unmarshal(b []byte) error {
1178	return xxx_messageInfo_ListReferenceImagesResponse.Unmarshal(m, b)
1179}
1180func (m *ListReferenceImagesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1181	return xxx_messageInfo_ListReferenceImagesResponse.Marshal(b, m, deterministic)
1182}
1183func (m *ListReferenceImagesResponse) XXX_Merge(src proto.Message) {
1184	xxx_messageInfo_ListReferenceImagesResponse.Merge(m, src)
1185}
1186func (m *ListReferenceImagesResponse) XXX_Size() int {
1187	return xxx_messageInfo_ListReferenceImagesResponse.Size(m)
1188}
1189func (m *ListReferenceImagesResponse) XXX_DiscardUnknown() {
1190	xxx_messageInfo_ListReferenceImagesResponse.DiscardUnknown(m)
1191}
1192
1193var xxx_messageInfo_ListReferenceImagesResponse proto.InternalMessageInfo
1194
1195func (m *ListReferenceImagesResponse) GetReferenceImages() []*ReferenceImage {
1196	if m != nil {
1197		return m.ReferenceImages
1198	}
1199	return nil
1200}
1201
1202func (m *ListReferenceImagesResponse) GetPageSize() int32 {
1203	if m != nil {
1204		return m.PageSize
1205	}
1206	return 0
1207}
1208
1209func (m *ListReferenceImagesResponse) GetNextPageToken() string {
1210	if m != nil {
1211		return m.NextPageToken
1212	}
1213	return ""
1214}
1215
1216// Request message for the `GetReferenceImage` method.
1217type GetReferenceImageRequest struct {
1218	// The resource name of the ReferenceImage to get.
1219	//
1220	// Format is:
1221	//
1222	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceImages/IMAGE_ID`.
1223	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1224	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1225	XXX_unrecognized     []byte   `json:"-"`
1226	XXX_sizecache        int32    `json:"-"`
1227}
1228
1229func (m *GetReferenceImageRequest) Reset()         { *m = GetReferenceImageRequest{} }
1230func (m *GetReferenceImageRequest) String() string { return proto.CompactTextString(m) }
1231func (*GetReferenceImageRequest) ProtoMessage()    {}
1232func (*GetReferenceImageRequest) Descriptor() ([]byte, []int) {
1233	return fileDescriptor_3ac817753c311f0a, []int{18}
1234}
1235
1236func (m *GetReferenceImageRequest) XXX_Unmarshal(b []byte) error {
1237	return xxx_messageInfo_GetReferenceImageRequest.Unmarshal(m, b)
1238}
1239func (m *GetReferenceImageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1240	return xxx_messageInfo_GetReferenceImageRequest.Marshal(b, m, deterministic)
1241}
1242func (m *GetReferenceImageRequest) XXX_Merge(src proto.Message) {
1243	xxx_messageInfo_GetReferenceImageRequest.Merge(m, src)
1244}
1245func (m *GetReferenceImageRequest) XXX_Size() int {
1246	return xxx_messageInfo_GetReferenceImageRequest.Size(m)
1247}
1248func (m *GetReferenceImageRequest) XXX_DiscardUnknown() {
1249	xxx_messageInfo_GetReferenceImageRequest.DiscardUnknown(m)
1250}
1251
1252var xxx_messageInfo_GetReferenceImageRequest proto.InternalMessageInfo
1253
1254func (m *GetReferenceImageRequest) GetName() string {
1255	if m != nil {
1256		return m.Name
1257	}
1258	return ""
1259}
1260
1261// Request message for the `DeleteReferenceImage` method.
1262type DeleteReferenceImageRequest struct {
1263	// The resource name of the reference image to delete.
1264	//
1265	// Format is:
1266	//
1267	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID/referenceImages/IMAGE_ID`
1268	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1269	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1270	XXX_unrecognized     []byte   `json:"-"`
1271	XXX_sizecache        int32    `json:"-"`
1272}
1273
1274func (m *DeleteReferenceImageRequest) Reset()         { *m = DeleteReferenceImageRequest{} }
1275func (m *DeleteReferenceImageRequest) String() string { return proto.CompactTextString(m) }
1276func (*DeleteReferenceImageRequest) ProtoMessage()    {}
1277func (*DeleteReferenceImageRequest) Descriptor() ([]byte, []int) {
1278	return fileDescriptor_3ac817753c311f0a, []int{19}
1279}
1280
1281func (m *DeleteReferenceImageRequest) XXX_Unmarshal(b []byte) error {
1282	return xxx_messageInfo_DeleteReferenceImageRequest.Unmarshal(m, b)
1283}
1284func (m *DeleteReferenceImageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1285	return xxx_messageInfo_DeleteReferenceImageRequest.Marshal(b, m, deterministic)
1286}
1287func (m *DeleteReferenceImageRequest) XXX_Merge(src proto.Message) {
1288	xxx_messageInfo_DeleteReferenceImageRequest.Merge(m, src)
1289}
1290func (m *DeleteReferenceImageRequest) XXX_Size() int {
1291	return xxx_messageInfo_DeleteReferenceImageRequest.Size(m)
1292}
1293func (m *DeleteReferenceImageRequest) XXX_DiscardUnknown() {
1294	xxx_messageInfo_DeleteReferenceImageRequest.DiscardUnknown(m)
1295}
1296
1297var xxx_messageInfo_DeleteReferenceImageRequest proto.InternalMessageInfo
1298
1299func (m *DeleteReferenceImageRequest) GetName() string {
1300	if m != nil {
1301		return m.Name
1302	}
1303	return ""
1304}
1305
1306// Request message for the `AddProductToProductSet` method.
1307type AddProductToProductSetRequest struct {
1308	// The resource name for the ProductSet to modify.
1309	//
1310	// Format is:
1311	// `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`
1312	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1313	// The resource name for the Product to be added to this ProductSet.
1314	//
1315	// Format is:
1316	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`
1317	Product              string   `protobuf:"bytes,2,opt,name=product,proto3" json:"product,omitempty"`
1318	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1319	XXX_unrecognized     []byte   `json:"-"`
1320	XXX_sizecache        int32    `json:"-"`
1321}
1322
1323func (m *AddProductToProductSetRequest) Reset()         { *m = AddProductToProductSetRequest{} }
1324func (m *AddProductToProductSetRequest) String() string { return proto.CompactTextString(m) }
1325func (*AddProductToProductSetRequest) ProtoMessage()    {}
1326func (*AddProductToProductSetRequest) Descriptor() ([]byte, []int) {
1327	return fileDescriptor_3ac817753c311f0a, []int{20}
1328}
1329
1330func (m *AddProductToProductSetRequest) XXX_Unmarshal(b []byte) error {
1331	return xxx_messageInfo_AddProductToProductSetRequest.Unmarshal(m, b)
1332}
1333func (m *AddProductToProductSetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1334	return xxx_messageInfo_AddProductToProductSetRequest.Marshal(b, m, deterministic)
1335}
1336func (m *AddProductToProductSetRequest) XXX_Merge(src proto.Message) {
1337	xxx_messageInfo_AddProductToProductSetRequest.Merge(m, src)
1338}
1339func (m *AddProductToProductSetRequest) XXX_Size() int {
1340	return xxx_messageInfo_AddProductToProductSetRequest.Size(m)
1341}
1342func (m *AddProductToProductSetRequest) XXX_DiscardUnknown() {
1343	xxx_messageInfo_AddProductToProductSetRequest.DiscardUnknown(m)
1344}
1345
1346var xxx_messageInfo_AddProductToProductSetRequest proto.InternalMessageInfo
1347
1348func (m *AddProductToProductSetRequest) GetName() string {
1349	if m != nil {
1350		return m.Name
1351	}
1352	return ""
1353}
1354
1355func (m *AddProductToProductSetRequest) GetProduct() string {
1356	if m != nil {
1357		return m.Product
1358	}
1359	return ""
1360}
1361
1362// Request message for the `RemoveProductFromProductSet` method.
1363type RemoveProductFromProductSetRequest struct {
1364	// The resource name for the ProductSet to modify.
1365	//
1366	// Format is:
1367	// `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`
1368	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1369	// The resource name for the Product to be removed from this ProductSet.
1370	//
1371	// Format is:
1372	// `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`
1373	Product              string   `protobuf:"bytes,2,opt,name=product,proto3" json:"product,omitempty"`
1374	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1375	XXX_unrecognized     []byte   `json:"-"`
1376	XXX_sizecache        int32    `json:"-"`
1377}
1378
1379func (m *RemoveProductFromProductSetRequest) Reset()         { *m = RemoveProductFromProductSetRequest{} }
1380func (m *RemoveProductFromProductSetRequest) String() string { return proto.CompactTextString(m) }
1381func (*RemoveProductFromProductSetRequest) ProtoMessage()    {}
1382func (*RemoveProductFromProductSetRequest) Descriptor() ([]byte, []int) {
1383	return fileDescriptor_3ac817753c311f0a, []int{21}
1384}
1385
1386func (m *RemoveProductFromProductSetRequest) XXX_Unmarshal(b []byte) error {
1387	return xxx_messageInfo_RemoveProductFromProductSetRequest.Unmarshal(m, b)
1388}
1389func (m *RemoveProductFromProductSetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1390	return xxx_messageInfo_RemoveProductFromProductSetRequest.Marshal(b, m, deterministic)
1391}
1392func (m *RemoveProductFromProductSetRequest) XXX_Merge(src proto.Message) {
1393	xxx_messageInfo_RemoveProductFromProductSetRequest.Merge(m, src)
1394}
1395func (m *RemoveProductFromProductSetRequest) XXX_Size() int {
1396	return xxx_messageInfo_RemoveProductFromProductSetRequest.Size(m)
1397}
1398func (m *RemoveProductFromProductSetRequest) XXX_DiscardUnknown() {
1399	xxx_messageInfo_RemoveProductFromProductSetRequest.DiscardUnknown(m)
1400}
1401
1402var xxx_messageInfo_RemoveProductFromProductSetRequest proto.InternalMessageInfo
1403
1404func (m *RemoveProductFromProductSetRequest) GetName() string {
1405	if m != nil {
1406		return m.Name
1407	}
1408	return ""
1409}
1410
1411func (m *RemoveProductFromProductSetRequest) GetProduct() string {
1412	if m != nil {
1413		return m.Product
1414	}
1415	return ""
1416}
1417
1418// Request message for the `ListProductsInProductSet` method.
1419type ListProductsInProductSetRequest struct {
1420	// The ProductSet resource for which to retrieve Products.
1421	//
1422	// Format is:
1423	// `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`
1424	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1425	// The maximum number of items to return. Default 10, maximum 100.
1426	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
1427	// The next_page_token returned from a previous List request, if any.
1428	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
1429	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1430	XXX_unrecognized     []byte   `json:"-"`
1431	XXX_sizecache        int32    `json:"-"`
1432}
1433
1434func (m *ListProductsInProductSetRequest) Reset()         { *m = ListProductsInProductSetRequest{} }
1435func (m *ListProductsInProductSetRequest) String() string { return proto.CompactTextString(m) }
1436func (*ListProductsInProductSetRequest) ProtoMessage()    {}
1437func (*ListProductsInProductSetRequest) Descriptor() ([]byte, []int) {
1438	return fileDescriptor_3ac817753c311f0a, []int{22}
1439}
1440
1441func (m *ListProductsInProductSetRequest) XXX_Unmarshal(b []byte) error {
1442	return xxx_messageInfo_ListProductsInProductSetRequest.Unmarshal(m, b)
1443}
1444func (m *ListProductsInProductSetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1445	return xxx_messageInfo_ListProductsInProductSetRequest.Marshal(b, m, deterministic)
1446}
1447func (m *ListProductsInProductSetRequest) XXX_Merge(src proto.Message) {
1448	xxx_messageInfo_ListProductsInProductSetRequest.Merge(m, src)
1449}
1450func (m *ListProductsInProductSetRequest) XXX_Size() int {
1451	return xxx_messageInfo_ListProductsInProductSetRequest.Size(m)
1452}
1453func (m *ListProductsInProductSetRequest) XXX_DiscardUnknown() {
1454	xxx_messageInfo_ListProductsInProductSetRequest.DiscardUnknown(m)
1455}
1456
1457var xxx_messageInfo_ListProductsInProductSetRequest proto.InternalMessageInfo
1458
1459func (m *ListProductsInProductSetRequest) GetName() string {
1460	if m != nil {
1461		return m.Name
1462	}
1463	return ""
1464}
1465
1466func (m *ListProductsInProductSetRequest) GetPageSize() int32 {
1467	if m != nil {
1468		return m.PageSize
1469	}
1470	return 0
1471}
1472
1473func (m *ListProductsInProductSetRequest) GetPageToken() string {
1474	if m != nil {
1475		return m.PageToken
1476	}
1477	return ""
1478}
1479
1480// Response message for the `ListProductsInProductSet` method.
1481type ListProductsInProductSetResponse struct {
1482	// The list of Products.
1483	Products []*Product `protobuf:"bytes,1,rep,name=products,proto3" json:"products,omitempty"`
1484	// Token to retrieve the next page of results, or empty if there are no more
1485	// results in the list.
1486	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
1487	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1488	XXX_unrecognized     []byte   `json:"-"`
1489	XXX_sizecache        int32    `json:"-"`
1490}
1491
1492func (m *ListProductsInProductSetResponse) Reset()         { *m = ListProductsInProductSetResponse{} }
1493func (m *ListProductsInProductSetResponse) String() string { return proto.CompactTextString(m) }
1494func (*ListProductsInProductSetResponse) ProtoMessage()    {}
1495func (*ListProductsInProductSetResponse) Descriptor() ([]byte, []int) {
1496	return fileDescriptor_3ac817753c311f0a, []int{23}
1497}
1498
1499func (m *ListProductsInProductSetResponse) XXX_Unmarshal(b []byte) error {
1500	return xxx_messageInfo_ListProductsInProductSetResponse.Unmarshal(m, b)
1501}
1502func (m *ListProductsInProductSetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1503	return xxx_messageInfo_ListProductsInProductSetResponse.Marshal(b, m, deterministic)
1504}
1505func (m *ListProductsInProductSetResponse) XXX_Merge(src proto.Message) {
1506	xxx_messageInfo_ListProductsInProductSetResponse.Merge(m, src)
1507}
1508func (m *ListProductsInProductSetResponse) XXX_Size() int {
1509	return xxx_messageInfo_ListProductsInProductSetResponse.Size(m)
1510}
1511func (m *ListProductsInProductSetResponse) XXX_DiscardUnknown() {
1512	xxx_messageInfo_ListProductsInProductSetResponse.DiscardUnknown(m)
1513}
1514
1515var xxx_messageInfo_ListProductsInProductSetResponse proto.InternalMessageInfo
1516
1517func (m *ListProductsInProductSetResponse) GetProducts() []*Product {
1518	if m != nil {
1519		return m.Products
1520	}
1521	return nil
1522}
1523
1524func (m *ListProductsInProductSetResponse) GetNextPageToken() string {
1525	if m != nil {
1526		return m.NextPageToken
1527	}
1528	return ""
1529}
1530
1531// The Google Cloud Storage location for a csv file which preserves a list of
1532// ImportProductSetRequests in each line.
1533type ImportProductSetsGcsSource struct {
1534	// The Google Cloud Storage URI of the input csv file.
1535	//
1536	// The URI must start with `gs://`.
1537	//
1538	// The format of the input csv file should be one image per line.
1539	// In each line, there are 8 columns.
1540	//
1541	// 1.  image-uri
1542	// 2.  image-id
1543	// 3.  product-set-id
1544	// 4.  product-id
1545	// 5.  product-category
1546	// 6.  product-display-name
1547	// 7.  labels
1548	// 8.  bounding-poly
1549	//
1550	// The `image-uri`, `product-set-id`, `product-id`, and `product-category`
1551	// columns are required. All other columns are optional.
1552	//
1553	// If the `ProductSet` or `Product` specified by the `product-set-id` and
1554	// `product-id` values does not exist, then the system will create a new
1555	// `ProductSet` or `Product` for the image. In this case, the
1556	// `product-display-name` column refers to
1557	// [display_name][google.cloud.vision.v1p4beta1.Product.display_name], the
1558	// `product-category` column refers to
1559	// [product_category][google.cloud.vision.v1p4beta1.Product.product_category],
1560	// and the `labels` column refers to
1561	// [product_labels][google.cloud.vision.v1p4beta1.Product.product_labels].
1562	//
1563	// The `image-id` column is optional but must be unique if provided. If it is
1564	// empty, the system will automatically assign a unique id to the image.
1565	//
1566	// The `product-display-name` column is optional. If it is empty, the system
1567	// sets the [display_name][google.cloud.vision.v1p4beta1.Product.display_name]
1568	// field for the product to a space (" "). You can update the `display_name`
1569	// later by using the API.
1570	//
1571	// If a `Product` with the specified `product-id` already exists, then the
1572	// system ignores the `product-display-name`, `product-category`, and `labels`
1573	// columns.
1574	//
1575	// The `labels` column (optional) is a line containing a list of
1576	// comma-separated key-value pairs, in the following format:
1577	//
1578	//     "key_1=value_1,key_2=value_2,...,key_n=value_n"
1579	//
1580	// The `bounding-poly` column (optional) identifies one region of
1581	// interest from the image in the same manner as `CreateReferenceImage`. If
1582	// you do not specify the `bounding-poly` column, then the system will try to
1583	// detect regions of interest automatically.
1584	//
1585	// At most one `bounding-poly` column is allowed per line. If the image
1586	// contains multiple regions of interest, add a line to the CSV file that
1587	// includes the same product information, and the `bounding-poly` values for
1588	// each region of interest.
1589	//
1590	// The `bounding-poly` column must contain an even number of comma-separated
1591	// numbers, in the format "p1_x,p1_y,p2_x,p2_y,...,pn_x,pn_y". Use
1592	// non-negative integers for absolute bounding polygons, and float values
1593	// in [0, 1] for normalized bounding polygons.
1594	//
1595	// The system will resize the image if the image resolution is too
1596	// large to process (larger than 20MP).
1597	CsvFileUri           string   `protobuf:"bytes,1,opt,name=csv_file_uri,json=csvFileUri,proto3" json:"csv_file_uri,omitempty"`
1598	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1599	XXX_unrecognized     []byte   `json:"-"`
1600	XXX_sizecache        int32    `json:"-"`
1601}
1602
1603func (m *ImportProductSetsGcsSource) Reset()         { *m = ImportProductSetsGcsSource{} }
1604func (m *ImportProductSetsGcsSource) String() string { return proto.CompactTextString(m) }
1605func (*ImportProductSetsGcsSource) ProtoMessage()    {}
1606func (*ImportProductSetsGcsSource) Descriptor() ([]byte, []int) {
1607	return fileDescriptor_3ac817753c311f0a, []int{24}
1608}
1609
1610func (m *ImportProductSetsGcsSource) XXX_Unmarshal(b []byte) error {
1611	return xxx_messageInfo_ImportProductSetsGcsSource.Unmarshal(m, b)
1612}
1613func (m *ImportProductSetsGcsSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1614	return xxx_messageInfo_ImportProductSetsGcsSource.Marshal(b, m, deterministic)
1615}
1616func (m *ImportProductSetsGcsSource) XXX_Merge(src proto.Message) {
1617	xxx_messageInfo_ImportProductSetsGcsSource.Merge(m, src)
1618}
1619func (m *ImportProductSetsGcsSource) XXX_Size() int {
1620	return xxx_messageInfo_ImportProductSetsGcsSource.Size(m)
1621}
1622func (m *ImportProductSetsGcsSource) XXX_DiscardUnknown() {
1623	xxx_messageInfo_ImportProductSetsGcsSource.DiscardUnknown(m)
1624}
1625
1626var xxx_messageInfo_ImportProductSetsGcsSource proto.InternalMessageInfo
1627
1628func (m *ImportProductSetsGcsSource) GetCsvFileUri() string {
1629	if m != nil {
1630		return m.CsvFileUri
1631	}
1632	return ""
1633}
1634
1635// The input content for the `ImportProductSets` method.
1636type ImportProductSetsInputConfig struct {
1637	// The source of the input.
1638	//
1639	// Types that are valid to be assigned to Source:
1640	//	*ImportProductSetsInputConfig_GcsSource
1641	Source               isImportProductSetsInputConfig_Source `protobuf_oneof:"source"`
1642	XXX_NoUnkeyedLiteral struct{}                              `json:"-"`
1643	XXX_unrecognized     []byte                                `json:"-"`
1644	XXX_sizecache        int32                                 `json:"-"`
1645}
1646
1647func (m *ImportProductSetsInputConfig) Reset()         { *m = ImportProductSetsInputConfig{} }
1648func (m *ImportProductSetsInputConfig) String() string { return proto.CompactTextString(m) }
1649func (*ImportProductSetsInputConfig) ProtoMessage()    {}
1650func (*ImportProductSetsInputConfig) Descriptor() ([]byte, []int) {
1651	return fileDescriptor_3ac817753c311f0a, []int{25}
1652}
1653
1654func (m *ImportProductSetsInputConfig) XXX_Unmarshal(b []byte) error {
1655	return xxx_messageInfo_ImportProductSetsInputConfig.Unmarshal(m, b)
1656}
1657func (m *ImportProductSetsInputConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1658	return xxx_messageInfo_ImportProductSetsInputConfig.Marshal(b, m, deterministic)
1659}
1660func (m *ImportProductSetsInputConfig) XXX_Merge(src proto.Message) {
1661	xxx_messageInfo_ImportProductSetsInputConfig.Merge(m, src)
1662}
1663func (m *ImportProductSetsInputConfig) XXX_Size() int {
1664	return xxx_messageInfo_ImportProductSetsInputConfig.Size(m)
1665}
1666func (m *ImportProductSetsInputConfig) XXX_DiscardUnknown() {
1667	xxx_messageInfo_ImportProductSetsInputConfig.DiscardUnknown(m)
1668}
1669
1670var xxx_messageInfo_ImportProductSetsInputConfig proto.InternalMessageInfo
1671
1672type isImportProductSetsInputConfig_Source interface {
1673	isImportProductSetsInputConfig_Source()
1674}
1675
1676type ImportProductSetsInputConfig_GcsSource struct {
1677	GcsSource *ImportProductSetsGcsSource `protobuf:"bytes,1,opt,name=gcs_source,json=gcsSource,proto3,oneof"`
1678}
1679
1680func (*ImportProductSetsInputConfig_GcsSource) isImportProductSetsInputConfig_Source() {}
1681
1682func (m *ImportProductSetsInputConfig) GetSource() isImportProductSetsInputConfig_Source {
1683	if m != nil {
1684		return m.Source
1685	}
1686	return nil
1687}
1688
1689func (m *ImportProductSetsInputConfig) GetGcsSource() *ImportProductSetsGcsSource {
1690	if x, ok := m.GetSource().(*ImportProductSetsInputConfig_GcsSource); ok {
1691		return x.GcsSource
1692	}
1693	return nil
1694}
1695
1696// XXX_OneofWrappers is for the internal use of the proto package.
1697func (*ImportProductSetsInputConfig) XXX_OneofWrappers() []interface{} {
1698	return []interface{}{
1699		(*ImportProductSetsInputConfig_GcsSource)(nil),
1700	}
1701}
1702
1703// Request message for the `ImportProductSets` method.
1704type ImportProductSetsRequest struct {
1705	// The project in which the ProductSets should be imported.
1706	//
1707	// Format is `projects/PROJECT_ID/locations/LOC_ID`.
1708	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
1709	// The input content for the list of requests.
1710	InputConfig          *ImportProductSetsInputConfig `protobuf:"bytes,2,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"`
1711	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
1712	XXX_unrecognized     []byte                        `json:"-"`
1713	XXX_sizecache        int32                         `json:"-"`
1714}
1715
1716func (m *ImportProductSetsRequest) Reset()         { *m = ImportProductSetsRequest{} }
1717func (m *ImportProductSetsRequest) String() string { return proto.CompactTextString(m) }
1718func (*ImportProductSetsRequest) ProtoMessage()    {}
1719func (*ImportProductSetsRequest) Descriptor() ([]byte, []int) {
1720	return fileDescriptor_3ac817753c311f0a, []int{26}
1721}
1722
1723func (m *ImportProductSetsRequest) XXX_Unmarshal(b []byte) error {
1724	return xxx_messageInfo_ImportProductSetsRequest.Unmarshal(m, b)
1725}
1726func (m *ImportProductSetsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1727	return xxx_messageInfo_ImportProductSetsRequest.Marshal(b, m, deterministic)
1728}
1729func (m *ImportProductSetsRequest) XXX_Merge(src proto.Message) {
1730	xxx_messageInfo_ImportProductSetsRequest.Merge(m, src)
1731}
1732func (m *ImportProductSetsRequest) XXX_Size() int {
1733	return xxx_messageInfo_ImportProductSetsRequest.Size(m)
1734}
1735func (m *ImportProductSetsRequest) XXX_DiscardUnknown() {
1736	xxx_messageInfo_ImportProductSetsRequest.DiscardUnknown(m)
1737}
1738
1739var xxx_messageInfo_ImportProductSetsRequest proto.InternalMessageInfo
1740
1741func (m *ImportProductSetsRequest) GetParent() string {
1742	if m != nil {
1743		return m.Parent
1744	}
1745	return ""
1746}
1747
1748func (m *ImportProductSetsRequest) GetInputConfig() *ImportProductSetsInputConfig {
1749	if m != nil {
1750		return m.InputConfig
1751	}
1752	return nil
1753}
1754
1755// Response message for the `ImportProductSets` method.
1756//
1757// This message is returned by the
1758// [google.longrunning.Operations.GetOperation][google.longrunning.Operations.GetOperation]
1759// method in the returned
1760// [google.longrunning.Operation.response][google.longrunning.Operation.response]
1761// field.
1762type ImportProductSetsResponse struct {
1763	// The list of reference_images that are imported successfully.
1764	ReferenceImages []*ReferenceImage `protobuf:"bytes,1,rep,name=reference_images,json=referenceImages,proto3" json:"reference_images,omitempty"`
1765	// The rpc status for each ImportProductSet request, including both successes
1766	// and errors.
1767	//
1768	// The number of statuses here matches the number of lines in the csv file,
1769	// and statuses[i] stores the success or failure status of processing the i-th
1770	// line of the csv, starting from line 0.
1771	Statuses             []*status.Status `protobuf:"bytes,2,rep,name=statuses,proto3" json:"statuses,omitempty"`
1772	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
1773	XXX_unrecognized     []byte           `json:"-"`
1774	XXX_sizecache        int32            `json:"-"`
1775}
1776
1777func (m *ImportProductSetsResponse) Reset()         { *m = ImportProductSetsResponse{} }
1778func (m *ImportProductSetsResponse) String() string { return proto.CompactTextString(m) }
1779func (*ImportProductSetsResponse) ProtoMessage()    {}
1780func (*ImportProductSetsResponse) Descriptor() ([]byte, []int) {
1781	return fileDescriptor_3ac817753c311f0a, []int{27}
1782}
1783
1784func (m *ImportProductSetsResponse) XXX_Unmarshal(b []byte) error {
1785	return xxx_messageInfo_ImportProductSetsResponse.Unmarshal(m, b)
1786}
1787func (m *ImportProductSetsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1788	return xxx_messageInfo_ImportProductSetsResponse.Marshal(b, m, deterministic)
1789}
1790func (m *ImportProductSetsResponse) XXX_Merge(src proto.Message) {
1791	xxx_messageInfo_ImportProductSetsResponse.Merge(m, src)
1792}
1793func (m *ImportProductSetsResponse) XXX_Size() int {
1794	return xxx_messageInfo_ImportProductSetsResponse.Size(m)
1795}
1796func (m *ImportProductSetsResponse) XXX_DiscardUnknown() {
1797	xxx_messageInfo_ImportProductSetsResponse.DiscardUnknown(m)
1798}
1799
1800var xxx_messageInfo_ImportProductSetsResponse proto.InternalMessageInfo
1801
1802func (m *ImportProductSetsResponse) GetReferenceImages() []*ReferenceImage {
1803	if m != nil {
1804		return m.ReferenceImages
1805	}
1806	return nil
1807}
1808
1809func (m *ImportProductSetsResponse) GetStatuses() []*status.Status {
1810	if m != nil {
1811		return m.Statuses
1812	}
1813	return nil
1814}
1815
1816// Metadata for the batch operations such as the current state.
1817//
1818// This is included in the `metadata` field of the `Operation` returned by the
1819// `GetOperation` call of the `google::longrunning::Operations` service.
1820type BatchOperationMetadata struct {
1821	// The current state of the batch operation.
1822	State BatchOperationMetadata_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.vision.v1p4beta1.BatchOperationMetadata_State" json:"state,omitempty"`
1823	// The time when the batch request was submitted to the server.
1824	SubmitTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=submit_time,json=submitTime,proto3" json:"submit_time,omitempty"`
1825	// The time when the batch request is finished and
1826	// [google.longrunning.Operation.done][google.longrunning.Operation.done] is
1827	// set to true.
1828	EndTime              *timestamp.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
1829	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
1830	XXX_unrecognized     []byte               `json:"-"`
1831	XXX_sizecache        int32                `json:"-"`
1832}
1833
1834func (m *BatchOperationMetadata) Reset()         { *m = BatchOperationMetadata{} }
1835func (m *BatchOperationMetadata) String() string { return proto.CompactTextString(m) }
1836func (*BatchOperationMetadata) ProtoMessage()    {}
1837func (*BatchOperationMetadata) Descriptor() ([]byte, []int) {
1838	return fileDescriptor_3ac817753c311f0a, []int{28}
1839}
1840
1841func (m *BatchOperationMetadata) XXX_Unmarshal(b []byte) error {
1842	return xxx_messageInfo_BatchOperationMetadata.Unmarshal(m, b)
1843}
1844func (m *BatchOperationMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1845	return xxx_messageInfo_BatchOperationMetadata.Marshal(b, m, deterministic)
1846}
1847func (m *BatchOperationMetadata) XXX_Merge(src proto.Message) {
1848	xxx_messageInfo_BatchOperationMetadata.Merge(m, src)
1849}
1850func (m *BatchOperationMetadata) XXX_Size() int {
1851	return xxx_messageInfo_BatchOperationMetadata.Size(m)
1852}
1853func (m *BatchOperationMetadata) XXX_DiscardUnknown() {
1854	xxx_messageInfo_BatchOperationMetadata.DiscardUnknown(m)
1855}
1856
1857var xxx_messageInfo_BatchOperationMetadata proto.InternalMessageInfo
1858
1859func (m *BatchOperationMetadata) GetState() BatchOperationMetadata_State {
1860	if m != nil {
1861		return m.State
1862	}
1863	return BatchOperationMetadata_STATE_UNSPECIFIED
1864}
1865
1866func (m *BatchOperationMetadata) GetSubmitTime() *timestamp.Timestamp {
1867	if m != nil {
1868		return m.SubmitTime
1869	}
1870	return nil
1871}
1872
1873func (m *BatchOperationMetadata) GetEndTime() *timestamp.Timestamp {
1874	if m != nil {
1875		return m.EndTime
1876	}
1877	return nil
1878}
1879
1880func init() {
1881	proto.RegisterEnum("google.cloud.vision.v1p4beta1.BatchOperationMetadata_State", BatchOperationMetadata_State_name, BatchOperationMetadata_State_value)
1882	proto.RegisterType((*Product)(nil), "google.cloud.vision.v1p4beta1.Product")
1883	proto.RegisterType((*Product_KeyValue)(nil), "google.cloud.vision.v1p4beta1.Product.KeyValue")
1884	proto.RegisterType((*ProductSet)(nil), "google.cloud.vision.v1p4beta1.ProductSet")
1885	proto.RegisterType((*ReferenceImage)(nil), "google.cloud.vision.v1p4beta1.ReferenceImage")
1886	proto.RegisterType((*CreateProductRequest)(nil), "google.cloud.vision.v1p4beta1.CreateProductRequest")
1887	proto.RegisterType((*ListProductsRequest)(nil), "google.cloud.vision.v1p4beta1.ListProductsRequest")
1888	proto.RegisterType((*ListProductsResponse)(nil), "google.cloud.vision.v1p4beta1.ListProductsResponse")
1889	proto.RegisterType((*GetProductRequest)(nil), "google.cloud.vision.v1p4beta1.GetProductRequest")
1890	proto.RegisterType((*UpdateProductRequest)(nil), "google.cloud.vision.v1p4beta1.UpdateProductRequest")
1891	proto.RegisterType((*DeleteProductRequest)(nil), "google.cloud.vision.v1p4beta1.DeleteProductRequest")
1892	proto.RegisterType((*CreateProductSetRequest)(nil), "google.cloud.vision.v1p4beta1.CreateProductSetRequest")
1893	proto.RegisterType((*ListProductSetsRequest)(nil), "google.cloud.vision.v1p4beta1.ListProductSetsRequest")
1894	proto.RegisterType((*ListProductSetsResponse)(nil), "google.cloud.vision.v1p4beta1.ListProductSetsResponse")
1895	proto.RegisterType((*GetProductSetRequest)(nil), "google.cloud.vision.v1p4beta1.GetProductSetRequest")
1896	proto.RegisterType((*UpdateProductSetRequest)(nil), "google.cloud.vision.v1p4beta1.UpdateProductSetRequest")
1897	proto.RegisterType((*DeleteProductSetRequest)(nil), "google.cloud.vision.v1p4beta1.DeleteProductSetRequest")
1898	proto.RegisterType((*CreateReferenceImageRequest)(nil), "google.cloud.vision.v1p4beta1.CreateReferenceImageRequest")
1899	proto.RegisterType((*ListReferenceImagesRequest)(nil), "google.cloud.vision.v1p4beta1.ListReferenceImagesRequest")
1900	proto.RegisterType((*ListReferenceImagesResponse)(nil), "google.cloud.vision.v1p4beta1.ListReferenceImagesResponse")
1901	proto.RegisterType((*GetReferenceImageRequest)(nil), "google.cloud.vision.v1p4beta1.GetReferenceImageRequest")
1902	proto.RegisterType((*DeleteReferenceImageRequest)(nil), "google.cloud.vision.v1p4beta1.DeleteReferenceImageRequest")
1903	proto.RegisterType((*AddProductToProductSetRequest)(nil), "google.cloud.vision.v1p4beta1.AddProductToProductSetRequest")
1904	proto.RegisterType((*RemoveProductFromProductSetRequest)(nil), "google.cloud.vision.v1p4beta1.RemoveProductFromProductSetRequest")
1905	proto.RegisterType((*ListProductsInProductSetRequest)(nil), "google.cloud.vision.v1p4beta1.ListProductsInProductSetRequest")
1906	proto.RegisterType((*ListProductsInProductSetResponse)(nil), "google.cloud.vision.v1p4beta1.ListProductsInProductSetResponse")
1907	proto.RegisterType((*ImportProductSetsGcsSource)(nil), "google.cloud.vision.v1p4beta1.ImportProductSetsGcsSource")
1908	proto.RegisterType((*ImportProductSetsInputConfig)(nil), "google.cloud.vision.v1p4beta1.ImportProductSetsInputConfig")
1909	proto.RegisterType((*ImportProductSetsRequest)(nil), "google.cloud.vision.v1p4beta1.ImportProductSetsRequest")
1910	proto.RegisterType((*ImportProductSetsResponse)(nil), "google.cloud.vision.v1p4beta1.ImportProductSetsResponse")
1911	proto.RegisterType((*BatchOperationMetadata)(nil), "google.cloud.vision.v1p4beta1.BatchOperationMetadata")
1912}
1913
1914func init() {
1915	proto.RegisterFile("google/cloud/vision/v1p4beta1/product_search_service.proto", fileDescriptor_3ac817753c311f0a)
1916}
1917
1918var fileDescriptor_3ac817753c311f0a = []byte{
1919	// 1874 bytes of a gzipped FileDescriptorProto
1920	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcf, 0x6f, 0xe3, 0xc6,
1921	0x15, 0xce, 0xd8, 0xeb, 0x5d, 0xfb, 0xc9, 0xb2, 0xb5, 0x53, 0xd7, 0x56, 0xe4, 0x2c, 0xe2, 0xb0,
1922	0x45, 0x9a, 0xa8, 0x89, 0xd8, 0x95, 0xbb, 0xdb, 0xae, 0xdc, 0x6c, 0x6a, 0xcb, 0xb2, 0xa3, 0xc6,
1923	0xeb, 0x75, 0x28, 0x7b, 0x9b, 0xe6, 0x10, 0x81, 0x26, 0xc7, 0x0c, 0xbb, 0x14, 0xc9, 0x70, 0x28,
1924	0x23, 0x4e, 0x91, 0x4b, 0xd0, 0x53, 0x0f, 0x5d, 0xa0, 0x45, 0x0f, 0x39, 0x15, 0xd8, 0xa0, 0xe7,
1925	0x02, 0xfd, 0x71, 0x68, 0x9a, 0x43, 0xd1, 0x5b, 0x7b, 0xe8, 0xa5, 0xc7, 0x9e, 0x0a, 0xe4, 0x8f,
1926	0xe8, 0xb1, 0x98, 0xe1, 0x50, 0x22, 0x29, 0xca, 0xa4, 0xb4, 0x59, 0xe4, 0xa6, 0x19, 0xbe, 0xf7,
1927	0xe6, 0x7b, 0xef, 0x7d, 0x33, 0xf3, 0xde, 0x08, 0x1a, 0x86, 0xe3, 0x18, 0x16, 0x91, 0x35, 0xcb,
1928	0xe9, 0xeb, 0xf2, 0xb9, 0x49, 0x4d, 0xc7, 0x96, 0xcf, 0x6f, 0xba, 0xdf, 0x3d, 0x25, 0xbe, 0x7a,
1929	0x53, 0x76, 0x3d, 0x47, 0xef, 0x6b, 0x7e, 0x97, 0x12, 0xd5, 0xd3, 0xde, 0xeb, 0x52, 0xe2, 0x9d,
1930	0x9b, 0x1a, 0xa9, 0xb9, 0x9e, 0xe3, 0x3b, 0xf8, 0x46, 0xa0, 0x5b, 0xe3, 0xba, 0xb5, 0x40, 0xb7,
1931	0x36, 0xd0, 0xad, 0x3c, 0x27, 0x4c, 0xab, 0xae, 0x29, 0xab, 0xb6, 0xed, 0xf8, 0xaa, 0x6f, 0x3a,
1932	0x36, 0x0d, 0x94, 0x2b, 0xaf, 0x5c, 0xbe, 0xb0, 0x41, 0x9c, 0x1e, 0xf1, 0xbd, 0x0b, 0x21, 0xfd,
1933	0x0d, 0x21, 0x6d, 0x39, 0xb6, 0xe1, 0xf5, 0x6d, 0xdb, 0xb4, 0x0d, 0xd9, 0x71, 0x89, 0x17, 0x33,
1934	0xb9, 0x2e, 0x84, 0xf8, 0xe8, 0xb4, 0x7f, 0x26, 0x93, 0x9e, 0xeb, 0x87, 0x16, 0x36, 0x92, 0x1f,
1935	0xcf, 0x4c, 0x62, 0xe9, 0xdd, 0x9e, 0x4a, 0x1f, 0x0a, 0x89, 0xe7, 0x93, 0x12, 0xbe, 0xd9, 0x23,
1936	0xd4, 0x57, 0x7b, 0xae, 0x10, 0x58, 0x13, 0x02, 0x9e, 0xab, 0xc9, 0xd4, 0x57, 0xfd, 0xbe, 0x58,
1937	0x58, 0xfa, 0x64, 0x06, 0xae, 0x1d, 0x05, 0x91, 0xc2, 0x18, 0xae, 0xd8, 0x6a, 0x8f, 0x94, 0xd1,
1938	0x06, 0x7a, 0x69, 0x41, 0xe1, 0xbf, 0xf1, 0x0b, 0xb0, 0xa8, 0x9b, 0xd4, 0xb5, 0xd4, 0x8b, 0x2e,
1939	0xff, 0x36, 0xc3, 0xbf, 0x15, 0xc4, 0xdc, 0x21, 0x13, 0xd9, 0x80, 0x82, 0x4e, 0xa8, 0xe6, 0x99,
1940	0x2e, 0xf3, 0xa8, 0x3c, 0x2b, 0x24, 0x86, 0x53, 0xf8, 0x65, 0x28, 0x85, 0xd9, 0xd0, 0x54, 0x9f,
1941	0x18, 0x8e, 0x77, 0x51, 0xbe, 0xc2, 0xc5, 0x96, 0xc5, 0x7c, 0x53, 0x4c, 0xe3, 0x07, 0xb0, 0x14,
1942	0x8a, 0x5a, 0xea, 0x29, 0xb1, 0x68, 0x79, 0x6e, 0x63, 0xf6, 0xa5, 0x42, 0x5d, 0xae, 0x5d, 0x9a,
1943	0xb1, 0x9a, 0xf0, 0xa1, 0xf6, 0x26, 0xb9, 0x78, 0xa0, 0x5a, 0x7d, 0xa2, 0x14, 0x85, 0x99, 0x03,
1944	0x6e, 0xa5, 0x52, 0x87, 0xf9, 0xf0, 0x13, 0x2e, 0xc1, 0xec, 0x43, 0x72, 0x21, 0xdc, 0x64, 0x3f,
1945	0xf1, 0x0a, 0xcc, 0x9d, 0xb3, 0x4f, 0xc2, 0xbd, 0x60, 0x20, 0xfd, 0x11, 0x01, 0x08, 0xbb, 0x1d,
1946	0x32, 0x75, 0x78, 0xee, 0x00, 0x98, 0xb6, 0x4e, 0x3e, 0xe8, 0xb2, 0x9c, 0xf0, 0xe8, 0x14, 0xea,
1947	0x95, 0xd0, 0x9b, 0x30, 0x61, 0xb5, 0xe3, 0x30, 0x61, 0xca, 0x02, 0x97, 0x66, 0x63, 0xbc, 0x09,
1948	0x85, 0x40, 0x95, 0x78, 0x9e, 0xe3, 0xf1, 0x90, 0x15, 0xea, 0x38, 0xd4, 0xf5, 0x5c, 0xad, 0xd6,
1949	0xe1, 0xb9, 0x54, 0x82, 0x15, 0x5a, 0x4c, 0x4a, 0xfa, 0x05, 0x82, 0x25, 0x85, 0x9c, 0x11, 0x8f,
1950	0xd8, 0x1a, 0x69, 0xf7, 0x54, 0x83, 0xa4, 0x22, 0x2f, 0xc1, 0x6c, 0xdf, 0x33, 0x05, 0x60, 0xf6,
1951	0x13, 0x2b, 0xb0, 0x74, 0xea, 0xf4, 0x6d, 0xdd, 0xb4, 0x8d, 0xae, 0xeb, 0x58, 0x17, 0xb4, 0x3c,
1952	0xcb, 0x43, 0xff, 0xed, 0x8c, 0xd0, 0xef, 0x08, 0xa5, 0x23, 0xc7, 0xba, 0x50, 0x8a, 0xa7, 0x91,
1953	0x11, 0x95, 0x1e, 0x21, 0x58, 0x69, 0x7a, 0x44, 0xf5, 0x89, 0x08, 0xa4, 0x42, 0xde, 0xef, 0x13,
1954	0xea, 0xe3, 0x55, 0xb8, 0xea, 0xaa, 0x1e, 0xb1, 0x7d, 0x01, 0x4a, 0x8c, 0xf0, 0x0f, 0xe1, 0x9a,
1955	0x48, 0x1c, 0x87, 0x56, 0xa8, 0xbf, 0x98, 0x2f, 0xf1, 0x4a, 0xa8, 0x86, 0x6f, 0x00, 0x84, 0x0c,
1956	0x32, 0x75, 0xc1, 0xc6, 0x05, 0x31, 0xd3, 0xd6, 0x25, 0x13, 0xbe, 0x76, 0x60, 0x52, 0x5f, 0xa8,
1957	0xd1, 0x2c, 0x3c, 0xeb, 0xb0, 0xe0, 0xaa, 0x06, 0xe9, 0x52, 0xf3, 0xc3, 0x20, 0xbb, 0x73, 0xca,
1958	0x3c, 0x9b, 0xe8, 0x98, 0x1f, 0x12, 0xbe, 0x14, 0xfb, 0xe8, 0x3b, 0x0f, 0x89, 0x3d, 0x58, 0x4a,
1959	0x35, 0xc8, 0x31, 0x9b, 0x90, 0x3e, 0x46, 0xb0, 0x12, 0x5f, 0x8b, 0xba, 0x8e, 0x4d, 0x09, 0xde,
1960	0x81, 0x79, 0x01, 0x88, 0x96, 0x11, 0x8f, 0x71, 0x5e, 0x2f, 0x07, 0x7a, 0xf8, 0x45, 0x58, 0xb6,
1961	0xc9, 0x07, 0x7e, 0x37, 0x02, 0x20, 0xc8, 0x65, 0x91, 0x4d, 0x1f, 0x0d, 0x40, 0x7c, 0x0b, 0xae,
1962	0xef, 0x13, 0x3f, 0x11, 0xfd, 0x14, 0x42, 0x48, 0xbf, 0x41, 0xb0, 0x72, 0xe2, 0xea, 0xa3, 0xa9,
1963	0x8a, 0xa4, 0x04, 0x4d, 0x97, 0x92, 0x2d, 0x28, 0xf4, 0xb9, 0x65, 0x7e, 0x66, 0x89, 0xc4, 0x8e,
1964	0xee, 0x81, 0x3d, 0x76, 0xac, 0xdd, 0x53, 0xe9, 0x43, 0x05, 0x02, 0x71, 0xf6, 0x5b, 0xaa, 0xc2,
1965	0xca, 0x2e, 0xb1, 0xc8, 0x08, 0xac, 0x34, 0x1f, 0x3e, 0x45, 0xb0, 0x16, 0xa3, 0x5b, 0x87, 0x64,
1966	0x32, 0xee, 0x47, 0x50, 0x18, 0x5e, 0x15, 0x21, 0xeb, 0x5e, 0xce, 0xe7, 0x22, 0x33, 0x1f, 0xb2,
1967	0x8d, 0x1d, 0x11, 0xdf, 0x1c, 0x9e, 0x5e, 0x94, 0x44, 0xf8, 0xb7, 0x38, 0x94, 0x69, 0xeb, 0x92,
1968	0x05, 0xab, 0x11, 0x5a, 0x74, 0xc8, 0xd3, 0x65, 0xe1, 0x23, 0x04, 0x6b, 0x23, 0xcb, 0x09, 0x22,
1969	0x1e, 0xc0, 0x62, 0x04, 0x6f, 0x48, 0xc6, 0x09, 0x9c, 0x2f, 0x0c, 0x1d, 0xcb, 0x4f, 0xc9, 0x2a,
1970	0xac, 0x0c, 0x29, 0x19, 0xc9, 0x50, 0x5a, 0x46, 0x1f, 0x23, 0x58, 0x8b, 0xb1, 0x32, 0x22, 0x9f,
1971	0xc8, 0x1c, 0x7a, 0x92, 0xcc, 0x3d, 0x11, 0x45, 0x5f, 0x85, 0xb5, 0x18, 0x45, 0x33, 0x7c, 0xfa,
1972	0x2b, 0x82, 0xf5, 0x80, 0xa5, 0xf1, 0x73, 0x3a, 0x8b, 0x05, 0x0f, 0x60, 0xd9, 0x0b, 0x15, 0xba,
1973	0x26, 0xd3, 0x10, 0x38, 0x5f, 0xcd, 0xf0, 0x39, 0xb1, 0xcc, 0x92, 0x17, 0xbf, 0x1e, 0x5e, 0x01,
1974	0x9c, 0xb0, 0x3b, 0x64, 0x6e, 0x29, 0x2e, 0xdb, 0xd6, 0x25, 0x17, 0x2a, 0x8c, 0x4e, 0x71, 0x9b,
1975	0x4f, 0x95, 0xc1, 0x9f, 0x23, 0x58, 0x4f, 0x5d, 0x52, 0xb0, 0xf8, 0x6d, 0x28, 0x25, 0xf0, 0x87,
1976	0x4c, 0x9e, 0x30, 0x30, 0xcb, 0x71, 0x67, 0xe9, 0xe5, 0xa8, 0x53, 0xe8, 0x3e, 0x9b, 0x46, 0xf7,
1977	0x1a, 0x94, 0xf7, 0x89, 0x9f, 0x9e, 0xea, 0x34, 0x7a, 0xdc, 0x84, 0xf5, 0x80, 0x4d, 0xf9, 0x55,
1978	0xee, 0xc1, 0x8d, 0x6d, 0x5d, 0x17, 0xec, 0x3b, 0x76, 0x72, 0xd1, 0x10, 0x97, 0xe3, 0x57, 0xed,
1979	0xc2, 0xe0, 0xbc, 0x96, 0x14, 0x90, 0x14, 0xd2, 0x73, 0xce, 0x43, 0x3e, 0xef, 0x79, 0x4e, 0xef,
1980	0x49, 0x6d, 0xbe, 0x0f, 0xcf, 0x47, 0xef, 0xc2, 0xb6, 0x9d, 0xcf, 0xe0, 0x93, 0xf0, 0xe6, 0x97,
1981	0x08, 0x36, 0xc6, 0xaf, 0xf9, 0x15, 0xdc, 0xc5, 0x77, 0xa1, 0xd2, 0xee, 0xb9, 0x8e, 0x17, 0x3d,
1982	0x8b, 0xf7, 0x35, 0xda, 0x71, 0xfa, 0x9e, 0xc6, 0xea, 0xe8, 0x45, 0x8d, 0x9e, 0x77, 0xcf, 0x4c,
1983	0x8b, 0x74, 0x59, 0x69, 0x16, 0x84, 0x01, 0x34, 0x7a, 0xbe, 0x67, 0x5a, 0xe4, 0xc4, 0x33, 0xa5,
1984	0x9f, 0x23, 0x78, 0x6e, 0xc4, 0x40, 0xdb, 0x76, 0xfb, 0x7e, 0xd3, 0xb1, 0xcf, 0x4c, 0x03, 0xbf,
1985	0x03, 0x60, 0x68, 0xb4, 0x4b, 0xb9, 0x41, 0x71, 0x20, 0xde, 0xc9, 0x70, 0x67, 0x3c, 0xa2, 0x37,
1986	0x9e, 0x51, 0x16, 0x8c, 0x70, 0xb0, 0x33, 0x0f, 0x57, 0x03, 0xbb, 0xd2, 0xaf, 0x10, 0x94, 0x47,
1987	0xb4, 0xb2, 0x0e, 0x80, 0x77, 0x61, 0xd1, 0x64, 0x48, 0xbb, 0x1a, 0x87, 0x2a, 0x4e, 0xae, 0xad,
1988	0x49, 0xc1, 0x45, 0xbc, 0x55, 0x0a, 0xe6, 0x70, 0x20, 0xfd, 0x0e, 0xc1, 0xb3, 0x29, 0xa0, 0x9e,
1989	0xfa, 0x11, 0x51, 0x83, 0xf9, 0xa0, 0xa1, 0x22, 0xb4, 0x3c, 0xc3, 0x2d, 0xa6, 0x15, 0xe8, 0x03,
1990	0x19, 0xe9, 0xb3, 0x19, 0x58, 0xdd, 0x51, 0x7d, 0xed, 0xbd, 0xfb, 0x61, 0x0f, 0x78, 0x8f, 0xf8,
1991	0xaa, 0xae, 0xfa, 0x2a, 0x7e, 0x0b, 0xe6, 0x98, 0x58, 0x90, 0xb8, 0xa5, 0xcc, 0xd8, 0xa4, 0x5b,
1992	0xe1, 0x2b, 0x12, 0x25, 0xb0, 0xc4, 0xae, 0x35, 0xda, 0x3f, 0xed, 0x99, 0x7e, 0xd0, 0x7d, 0xcc,
1993	0x64, 0x76, 0x1f, 0x10, 0x88, 0xf3, 0xf6, 0xe3, 0x16, 0xcc, 0x13, 0x5b, 0xcf, 0xdb, 0xb7, 0x5c,
1994	0x23, 0xb6, 0xce, 0x46, 0xd2, 0x4f, 0x60, 0x8e, 0x63, 0xc0, 0x5f, 0x87, 0xeb, 0x9d, 0xe3, 0xed,
1995	0xe3, 0x56, 0xf7, 0xe4, 0xb0, 0x73, 0xd4, 0x6a, 0xb6, 0xf7, 0xda, 0xad, 0xdd, 0xd2, 0x33, 0x78,
1996	0x09, 0xe0, 0x48, 0xb9, 0xdf, 0x6c, 0x75, 0x3a, 0xed, 0xc3, 0xfd, 0x12, 0x62, 0xe3, 0xce, 0x49,
1997	0x93, 0x8d, 0xf7, 0x4e, 0x0e, 0x4a, 0x33, 0x18, 0xe0, 0xea, 0xde, 0x76, 0xfb, 0xa0, 0xb5, 0x5b,
1998	0x9a, 0xc5, 0x45, 0x58, 0x68, 0x6e, 0x1f, 0x36, 0x5b, 0x07, 0x6c, 0x78, 0xa5, 0xfe, 0xdb, 0x75,
1999	0x28, 0x0e, 0xd2, 0xcb, 0xda, 0x7a, 0xfc, 0x77, 0x04, 0xa5, 0x64, 0xc5, 0x87, 0x6f, 0x67, 0x44,
2000	0x6e, 0x4c, 0x89, 0x58, 0xc9, 0x5f, 0x3b, 0x48, 0x6f, 0x7e, 0xfc, 0xef, 0x2f, 0x7e, 0x3d, 0xd3,
2001	0x92, 0x6e, 0x47, 0x1a, 0xff, 0x9f, 0x05, 0x54, 0x7f, 0xcd, 0xf5, 0x9c, 0x9f, 0x12, 0xcd, 0xa7,
2002	0x72, 0x55, 0xb6, 0x1c, 0x2d, 0xe8, 0xf3, 0xe5, 0xea, 0x47, 0x72, 0xa4, 0x56, 0x6a, 0x44, 0x2b,
2003	0x17, 0xfc, 0x37, 0x04, 0xcb, 0x89, 0x12, 0x0d, 0xdf, 0xca, 0xc0, 0x92, 0x5e, 0x41, 0x56, 0x6e,
2004	0x4f, 0xaa, 0x16, 0x6c, 0x10, 0xe9, 0x2e, 0xf7, 0xe7, 0xfb, 0x78, 0x4a, 0x7f, 0xf0, 0xef, 0x11,
2005	0x14, 0x63, 0x45, 0x1d, 0xde, 0xcc, 0x40, 0x92, 0x56, 0x02, 0x4e, 0x92, 0x81, 0x54, 0xc4, 0xec,
2006	0xce, 0x18, 0x83, 0x37, 0x0a, 0x57, 0xae, 0x7e, 0x84, 0xff, 0x85, 0xa0, 0x94, 0xac, 0x2c, 0x33,
2007	0x99, 0x33, 0xa6, 0x14, 0x9d, 0x04, 0xf7, 0x8f, 0x39, 0xee, 0xb7, 0xea, 0x3b, 0xb1, 0x48, 0x0f,
2008	0xd9, 0x50, 0xcb, 0xef, 0x43, 0x9c, 0x45, 0x8f, 0x11, 0x94, 0x92, 0x65, 0x68, 0xa6, 0x43, 0x63,
2009	0xea, 0xd6, 0xca, 0xea, 0xc8, 0x4e, 0x6f, 0xf5, 0x5c, 0xff, 0x22, 0x8c, 0x7a, 0x75, 0xda, 0xa8,
2010	0xff, 0x01, 0x41, 0x31, 0xb6, 0xfd, 0x32, 0x79, 0x92, 0xf6, 0x7c, 0x50, 0xc9, 0x79, 0x47, 0x4b,
2011	0xbb, 0x1c, 0xee, 0x5d, 0x69, 0x73, 0x72, 0x5a, 0xd3, 0xc6, 0xa0, 0x7f, 0xfd, 0x13, 0x82, 0xc5,
2012	0x68, 0x21, 0x81, 0xeb, 0xf9, 0x77, 0xd9, 0x60, 0x67, 0x6e, 0x4e, 0xa4, 0x23, 0xb6, 0xe5, 0x16,
2013	0xc7, 0x7f, 0x0b, 0x4f, 0x83, 0x1f, 0x7f, 0x8a, 0x00, 0x86, 0xbb, 0x0c, 0x7f, 0x27, 0xf7, 0x86,
2014	0x9c, 0x34, 0xca, 0xa9, 0x28, 0x73, 0x90, 0x82, 0x33, 0xe2, 0x33, 0x04, 0xc5, 0xd8, 0xb6, 0xca,
2015	0x64, 0x44, 0xda, 0x2b, 0x45, 0x6e, 0xac, 0x07, 0x1c, 0xeb, 0x5e, 0x7d, 0x2b, 0x65, 0xfb, 0xd5,
2016	0x72, 0x62, 0x1e, 0x32, 0xe3, 0x13, 0x04, 0xc5, 0xd8, 0x16, 0xca, 0x04, 0x9f, 0xf6, 0x96, 0x31,
2017	0x76, 0xb7, 0x89, 0xc0, 0x56, 0xa7, 0x0a, 0xec, 0x7f, 0x07, 0x6f, 0x6f, 0x89, 0xe7, 0xc0, 0x46,
2018	0xae, 0x1d, 0x97, 0xda, 0x7d, 0x54, 0x26, 0x2b, 0x97, 0xa4, 0x77, 0xb9, 0x03, 0x6f, 0x4b, 0xad,
2019	0xdc, 0xfc, 0x8d, 0xba, 0x20, 0x27, 0x8a, 0xad, 0x46, 0xb2, 0xff, 0xc5, 0x7f, 0x41, 0xe1, 0xeb,
2020	0xd0, 0x84, 0x3e, 0x5e, 0xd2, 0x61, 0x8d, 0xcd, 0xc6, 0x3d, 0xee, 0xcc, 0x7e, 0xb5, 0x35, 0x79,
2021	0x36, 0x92, 0x9e, 0xb0, 0xfc, 0xfc, 0x07, 0x05, 0x4f, 0x91, 0x89, 0xb6, 0x16, 0xdf, 0xc9, 0x71,
2022	0x50, 0xa4, 0x77, 0xdf, 0x95, 0xc6, 0x34, 0xaa, 0xe2, 0xa8, 0x11, 0xde, 0xe1, 0x2f, 0x27, 0x55,
2023	0xf8, 0x9f, 0x88, 0x3f, 0x3c, 0x26, 0xd2, 0xf2, 0xbd, 0xec, 0x33, 0xe8, 0x4b, 0xe1, 0x5d, 0xaa,
2024	0x33, 0xd3, 0xa7, 0xea, 0x73, 0x04, 0xab, 0xe9, 0x0d, 0x36, 0xfe, 0x41, 0x06, 0xb0, 0x4b, 0xfb,
2025	0xf2, 0xb1, 0x54, 0x13, 0xa7, 0x94, 0xb4, 0x3d, 0xdd, 0x35, 0xdb, 0x50, 0x07, 0xab, 0x36, 0x50,
2026	0x15, 0xff, 0x03, 0xc1, 0xfa, 0x25, 0x0d, 0x3d, 0xde, 0xce, 0x0c, 0x6e, 0xd6, 0x63, 0xc0, 0x58,
2027	0x47, 0xee, 0x73, 0x47, 0xda, 0xd2, 0xee, 0x94, 0x8e, 0x78, 0xd1, 0xa5, 0x99, 0x2f, 0x5f, 0x20,
2028	0x28, 0x8f, 0x6b, 0xea, 0xf1, 0xdd, 0x09, 0xee, 0xd8, 0x94, 0x17, 0x88, 0xca, 0xeb, 0x53, 0xeb,
2029	0x8b, 0x4d, 0xb4, 0xcf, 0xdd, 0xdd, 0xc6, 0xaf, 0x4f, 0xe7, 0xee, 0xf0, 0xee, 0xfe, 0x33, 0x82,
2030	0xeb, 0x23, 0xed, 0x6c, 0xe6, 0xf6, 0x19, 0xd7, 0x95, 0x57, 0x6e, 0x84, 0x8a, 0x91, 0x7f, 0x21,
2031	0x6b, 0x83, 0xde, 0x51, 0x7a, 0x83, 0xc3, 0xde, 0x91, 0x5e, 0x9b, 0xb2, 0x9b, 0x31, 0xf9, 0xba,
2032	0x0d, 0x54, 0xdd, 0x79, 0x84, 0xe0, 0x05, 0xcd, 0xe9, 0x5d, 0x8e, 0x73, 0xe7, 0xd9, 0x58, 0x13,
2033	0xd7, 0x09, 0xfe, 0x9a, 0x3d, 0x62, 0xcc, 0x39, 0x42, 0xef, 0x34, 0x85, 0xae, 0xe1, 0x58, 0xaa,
2034	0x6d, 0xd4, 0x1c, 0xcf, 0x90, 0x0d, 0x62, 0x73, 0x5e, 0xc9, 0xc1, 0x27, 0xd5, 0x35, 0xe9, 0x98,
2035	0x7f, 0x5f, 0xb7, 0x82, 0x89, 0xff, 0x21, 0xf4, 0x78, 0xe6, 0xca, 0x7e, 0xf3, 0xc1, 0xe1, 0xe9,
2036	0x55, 0xae, 0xb9, 0xf9, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x32, 0x1a, 0x41, 0x2f, 0x1e,
2037	0x00, 0x00,
2038}
2039
2040// Reference imports to suppress errors if they are not otherwise used.
2041var _ context.Context
2042var _ grpc.ClientConn
2043
2044// This is a compile-time assertion to ensure that this generated file
2045// is compatible with the grpc package it is being compiled against.
2046const _ = grpc.SupportPackageIsVersion4
2047
2048// ProductSearchClient is the client API for ProductSearch service.
2049//
2050// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
2051type ProductSearchClient interface {
2052	// Creates and returns a new ProductSet resource.
2053	//
2054	// Possible errors:
2055	//
2056	// * Returns INVALID_ARGUMENT if display_name is missing, or is longer than
2057	//   4096 characters.
2058	CreateProductSet(ctx context.Context, in *CreateProductSetRequest, opts ...grpc.CallOption) (*ProductSet, error)
2059	// Lists ProductSets in an unspecified order.
2060	//
2061	// Possible errors:
2062	//
2063	// * Returns INVALID_ARGUMENT if page_size is greater than 100, or less
2064	//   than 1.
2065	ListProductSets(ctx context.Context, in *ListProductSetsRequest, opts ...grpc.CallOption) (*ListProductSetsResponse, error)
2066	// Gets information associated with a ProductSet.
2067	//
2068	// Possible errors:
2069	//
2070	// * Returns NOT_FOUND if the ProductSet does not exist.
2071	GetProductSet(ctx context.Context, in *GetProductSetRequest, opts ...grpc.CallOption) (*ProductSet, error)
2072	// Makes changes to a ProductSet resource.
2073	// Only display_name can be updated currently.
2074	//
2075	// Possible errors:
2076	//
2077	// * Returns NOT_FOUND if the ProductSet does not exist.
2078	// * Returns INVALID_ARGUMENT if display_name is present in update_mask but
2079	//   missing from the request or longer than 4096 characters.
2080	UpdateProductSet(ctx context.Context, in *UpdateProductSetRequest, opts ...grpc.CallOption) (*ProductSet, error)
2081	// Permanently deletes a ProductSet. Products and ReferenceImages in the
2082	// ProductSet are not deleted.
2083	//
2084	// The actual image files are not deleted from Google Cloud Storage.
2085	//
2086	// Possible errors:
2087	//
2088	// * Returns NOT_FOUND if the ProductSet does not exist.
2089	DeleteProductSet(ctx context.Context, in *DeleteProductSetRequest, opts ...grpc.CallOption) (*empty.Empty, error)
2090	// Creates and returns a new product resource.
2091	//
2092	// Possible errors:
2093	//
2094	// * Returns INVALID_ARGUMENT if display_name is missing or longer than 4096
2095	//   characters.
2096	// * Returns INVALID_ARGUMENT if description is longer than 4096 characters.
2097	// * Returns INVALID_ARGUMENT if product_category is missing or invalid.
2098	CreateProduct(ctx context.Context, in *CreateProductRequest, opts ...grpc.CallOption) (*Product, error)
2099	// Lists products in an unspecified order.
2100	//
2101	// Possible errors:
2102	//
2103	// * Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1.
2104	ListProducts(ctx context.Context, in *ListProductsRequest, opts ...grpc.CallOption) (*ListProductsResponse, error)
2105	// Gets information associated with a Product.
2106	//
2107	// Possible errors:
2108	//
2109	// * Returns NOT_FOUND if the Product does not exist.
2110	GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error)
2111	// Makes changes to a Product resource.
2112	// Only the `display_name`, `description`, and `labels` fields can be updated
2113	// right now.
2114	//
2115	// If labels are updated, the change will not be reflected in queries until
2116	// the next index time.
2117	//
2118	// Possible errors:
2119	//
2120	// * Returns NOT_FOUND if the Product does not exist.
2121	// * Returns INVALID_ARGUMENT if display_name is present in update_mask but is
2122	//   missing from the request or longer than 4096 characters.
2123	// * Returns INVALID_ARGUMENT if description is present in update_mask but is
2124	//   longer than 4096 characters.
2125	// * Returns INVALID_ARGUMENT if product_category is present in update_mask.
2126	UpdateProduct(ctx context.Context, in *UpdateProductRequest, opts ...grpc.CallOption) (*Product, error)
2127	// Permanently deletes a product and its reference images.
2128	//
2129	// Metadata of the product and all its images will be deleted right away, but
2130	// search queries against ProductSets containing the product may still work
2131	// until all related caches are refreshed.
2132	//
2133	// Possible errors:
2134	//
2135	// * Returns NOT_FOUND if the product does not exist.
2136	DeleteProduct(ctx context.Context, in *DeleteProductRequest, opts ...grpc.CallOption) (*empty.Empty, error)
2137	// Creates and returns a new ReferenceImage resource.
2138	//
2139	// The `bounding_poly` field is optional. If `bounding_poly` is not specified,
2140	// the system will try to detect regions of interest in the image that are
2141	// compatible with the product_category on the parent product. If it is
2142	// specified, detection is ALWAYS skipped. The system converts polygons into
2143	// non-rotated rectangles.
2144	//
2145	// Note that the pipeline will resize the image if the image resolution is too
2146	// large to process (above 50MP).
2147	//
2148	// Possible errors:
2149	//
2150	// * Returns INVALID_ARGUMENT if the image_uri is missing or longer than 4096
2151	//   characters.
2152	// * Returns INVALID_ARGUMENT if the product does not exist.
2153	// * Returns INVALID_ARGUMENT if bounding_poly is not provided, and nothing
2154	//   compatible with the parent product's product_category is detected.
2155	// * Returns INVALID_ARGUMENT if bounding_poly contains more than 10 polygons.
2156	CreateReferenceImage(ctx context.Context, in *CreateReferenceImageRequest, opts ...grpc.CallOption) (*ReferenceImage, error)
2157	// Permanently deletes a reference image.
2158	//
2159	// The image metadata will be deleted right away, but search queries
2160	// against ProductSets containing the image may still work until all related
2161	// caches are refreshed.
2162	//
2163	// The actual image files are not deleted from Google Cloud Storage.
2164	//
2165	// Possible errors:
2166	//
2167	// * Returns NOT_FOUND if the reference image does not exist.
2168	DeleteReferenceImage(ctx context.Context, in *DeleteReferenceImageRequest, opts ...grpc.CallOption) (*empty.Empty, error)
2169	// Lists reference images.
2170	//
2171	// Possible errors:
2172	//
2173	// * Returns NOT_FOUND if the parent product does not exist.
2174	// * Returns INVALID_ARGUMENT if the page_size is greater than 100, or less
2175	//   than 1.
2176	ListReferenceImages(ctx context.Context, in *ListReferenceImagesRequest, opts ...grpc.CallOption) (*ListReferenceImagesResponse, error)
2177	// Gets information associated with a ReferenceImage.
2178	//
2179	// Possible errors:
2180	//
2181	// * Returns NOT_FOUND if the specified image does not exist.
2182	GetReferenceImage(ctx context.Context, in *GetReferenceImageRequest, opts ...grpc.CallOption) (*ReferenceImage, error)
2183	// Adds a Product to the specified ProductSet. If the Product is already
2184	// present, no change is made.
2185	//
2186	// One Product can be added to at most 100 ProductSets.
2187	//
2188	// Possible errors:
2189	//
2190	// * Returns NOT_FOUND if the Product or the ProductSet doesn't exist.
2191	AddProductToProductSet(ctx context.Context, in *AddProductToProductSetRequest, opts ...grpc.CallOption) (*empty.Empty, error)
2192	// Removes a Product from the specified ProductSet.
2193	//
2194	// Possible errors:
2195	//
2196	// * Returns NOT_FOUND If the Product is not found under the ProductSet.
2197	RemoveProductFromProductSet(ctx context.Context, in *RemoveProductFromProductSetRequest, opts ...grpc.CallOption) (*empty.Empty, error)
2198	// Lists the Products in a ProductSet, in an unspecified order. If the
2199	// ProductSet does not exist, the products field of the response will be
2200	// empty.
2201	//
2202	// Possible errors:
2203	//
2204	// * Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1.
2205	ListProductsInProductSet(ctx context.Context, in *ListProductsInProductSetRequest, opts ...grpc.CallOption) (*ListProductsInProductSetResponse, error)
2206	// Asynchronous API that imports a list of reference images to specified
2207	// product sets based on a list of image information.
2208	//
2209	// The [google.longrunning.Operation][google.longrunning.Operation] API can be
2210	// used to keep track of the progress and results of the request.
2211	// `Operation.metadata` contains `BatchOperationMetadata`. (progress)
2212	// `Operation.response` contains `ImportProductSetsResponse`. (results)
2213	//
2214	// The input source of this method is a csv file on Google Cloud Storage.
2215	// For the format of the csv file please see
2216	// [ImportProductSetsGcsSource.csv_file_uri][google.cloud.vision.v1p4beta1.ImportProductSetsGcsSource.csv_file_uri].
2217	ImportProductSets(ctx context.Context, in *ImportProductSetsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
2218}
2219
2220type productSearchClient struct {
2221	cc *grpc.ClientConn
2222}
2223
2224func NewProductSearchClient(cc *grpc.ClientConn) ProductSearchClient {
2225	return &productSearchClient{cc}
2226}
2227
2228func (c *productSearchClient) CreateProductSet(ctx context.Context, in *CreateProductSetRequest, opts ...grpc.CallOption) (*ProductSet, error) {
2229	out := new(ProductSet)
2230	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ProductSearch/CreateProductSet", in, out, opts...)
2231	if err != nil {
2232		return nil, err
2233	}
2234	return out, nil
2235}
2236
2237func (c *productSearchClient) ListProductSets(ctx context.Context, in *ListProductSetsRequest, opts ...grpc.CallOption) (*ListProductSetsResponse, error) {
2238	out := new(ListProductSetsResponse)
2239	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ProductSearch/ListProductSets", in, out, opts...)
2240	if err != nil {
2241		return nil, err
2242	}
2243	return out, nil
2244}
2245
2246func (c *productSearchClient) GetProductSet(ctx context.Context, in *GetProductSetRequest, opts ...grpc.CallOption) (*ProductSet, error) {
2247	out := new(ProductSet)
2248	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ProductSearch/GetProductSet", in, out, opts...)
2249	if err != nil {
2250		return nil, err
2251	}
2252	return out, nil
2253}
2254
2255func (c *productSearchClient) UpdateProductSet(ctx context.Context, in *UpdateProductSetRequest, opts ...grpc.CallOption) (*ProductSet, error) {
2256	out := new(ProductSet)
2257	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ProductSearch/UpdateProductSet", in, out, opts...)
2258	if err != nil {
2259		return nil, err
2260	}
2261	return out, nil
2262}
2263
2264func (c *productSearchClient) DeleteProductSet(ctx context.Context, in *DeleteProductSetRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
2265	out := new(empty.Empty)
2266	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ProductSearch/DeleteProductSet", in, out, opts...)
2267	if err != nil {
2268		return nil, err
2269	}
2270	return out, nil
2271}
2272
2273func (c *productSearchClient) CreateProduct(ctx context.Context, in *CreateProductRequest, opts ...grpc.CallOption) (*Product, error) {
2274	out := new(Product)
2275	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ProductSearch/CreateProduct", in, out, opts...)
2276	if err != nil {
2277		return nil, err
2278	}
2279	return out, nil
2280}
2281
2282func (c *productSearchClient) ListProducts(ctx context.Context, in *ListProductsRequest, opts ...grpc.CallOption) (*ListProductsResponse, error) {
2283	out := new(ListProductsResponse)
2284	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ProductSearch/ListProducts", in, out, opts...)
2285	if err != nil {
2286		return nil, err
2287	}
2288	return out, nil
2289}
2290
2291func (c *productSearchClient) GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error) {
2292	out := new(Product)
2293	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ProductSearch/GetProduct", in, out, opts...)
2294	if err != nil {
2295		return nil, err
2296	}
2297	return out, nil
2298}
2299
2300func (c *productSearchClient) UpdateProduct(ctx context.Context, in *UpdateProductRequest, opts ...grpc.CallOption) (*Product, error) {
2301	out := new(Product)
2302	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ProductSearch/UpdateProduct", in, out, opts...)
2303	if err != nil {
2304		return nil, err
2305	}
2306	return out, nil
2307}
2308
2309func (c *productSearchClient) DeleteProduct(ctx context.Context, in *DeleteProductRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
2310	out := new(empty.Empty)
2311	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ProductSearch/DeleteProduct", in, out, opts...)
2312	if err != nil {
2313		return nil, err
2314	}
2315	return out, nil
2316}
2317
2318func (c *productSearchClient) CreateReferenceImage(ctx context.Context, in *CreateReferenceImageRequest, opts ...grpc.CallOption) (*ReferenceImage, error) {
2319	out := new(ReferenceImage)
2320	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ProductSearch/CreateReferenceImage", in, out, opts...)
2321	if err != nil {
2322		return nil, err
2323	}
2324	return out, nil
2325}
2326
2327func (c *productSearchClient) DeleteReferenceImage(ctx context.Context, in *DeleteReferenceImageRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
2328	out := new(empty.Empty)
2329	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ProductSearch/DeleteReferenceImage", in, out, opts...)
2330	if err != nil {
2331		return nil, err
2332	}
2333	return out, nil
2334}
2335
2336func (c *productSearchClient) ListReferenceImages(ctx context.Context, in *ListReferenceImagesRequest, opts ...grpc.CallOption) (*ListReferenceImagesResponse, error) {
2337	out := new(ListReferenceImagesResponse)
2338	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ProductSearch/ListReferenceImages", in, out, opts...)
2339	if err != nil {
2340		return nil, err
2341	}
2342	return out, nil
2343}
2344
2345func (c *productSearchClient) GetReferenceImage(ctx context.Context, in *GetReferenceImageRequest, opts ...grpc.CallOption) (*ReferenceImage, error) {
2346	out := new(ReferenceImage)
2347	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ProductSearch/GetReferenceImage", in, out, opts...)
2348	if err != nil {
2349		return nil, err
2350	}
2351	return out, nil
2352}
2353
2354func (c *productSearchClient) AddProductToProductSet(ctx context.Context, in *AddProductToProductSetRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
2355	out := new(empty.Empty)
2356	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ProductSearch/AddProductToProductSet", in, out, opts...)
2357	if err != nil {
2358		return nil, err
2359	}
2360	return out, nil
2361}
2362
2363func (c *productSearchClient) RemoveProductFromProductSet(ctx context.Context, in *RemoveProductFromProductSetRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
2364	out := new(empty.Empty)
2365	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ProductSearch/RemoveProductFromProductSet", in, out, opts...)
2366	if err != nil {
2367		return nil, err
2368	}
2369	return out, nil
2370}
2371
2372func (c *productSearchClient) ListProductsInProductSet(ctx context.Context, in *ListProductsInProductSetRequest, opts ...grpc.CallOption) (*ListProductsInProductSetResponse, error) {
2373	out := new(ListProductsInProductSetResponse)
2374	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ProductSearch/ListProductsInProductSet", in, out, opts...)
2375	if err != nil {
2376		return nil, err
2377	}
2378	return out, nil
2379}
2380
2381func (c *productSearchClient) ImportProductSets(ctx context.Context, in *ImportProductSetsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
2382	out := new(longrunning.Operation)
2383	err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p4beta1.ProductSearch/ImportProductSets", in, out, opts...)
2384	if err != nil {
2385		return nil, err
2386	}
2387	return out, nil
2388}
2389
2390// ProductSearchServer is the server API for ProductSearch service.
2391type ProductSearchServer interface {
2392	// Creates and returns a new ProductSet resource.
2393	//
2394	// Possible errors:
2395	//
2396	// * Returns INVALID_ARGUMENT if display_name is missing, or is longer than
2397	//   4096 characters.
2398	CreateProductSet(context.Context, *CreateProductSetRequest) (*ProductSet, error)
2399	// Lists ProductSets in an unspecified order.
2400	//
2401	// Possible errors:
2402	//
2403	// * Returns INVALID_ARGUMENT if page_size is greater than 100, or less
2404	//   than 1.
2405	ListProductSets(context.Context, *ListProductSetsRequest) (*ListProductSetsResponse, error)
2406	// Gets information associated with a ProductSet.
2407	//
2408	// Possible errors:
2409	//
2410	// * Returns NOT_FOUND if the ProductSet does not exist.
2411	GetProductSet(context.Context, *GetProductSetRequest) (*ProductSet, error)
2412	// Makes changes to a ProductSet resource.
2413	// Only display_name can be updated currently.
2414	//
2415	// Possible errors:
2416	//
2417	// * Returns NOT_FOUND if the ProductSet does not exist.
2418	// * Returns INVALID_ARGUMENT if display_name is present in update_mask but
2419	//   missing from the request or longer than 4096 characters.
2420	UpdateProductSet(context.Context, *UpdateProductSetRequest) (*ProductSet, error)
2421	// Permanently deletes a ProductSet. Products and ReferenceImages in the
2422	// ProductSet are not deleted.
2423	//
2424	// The actual image files are not deleted from Google Cloud Storage.
2425	//
2426	// Possible errors:
2427	//
2428	// * Returns NOT_FOUND if the ProductSet does not exist.
2429	DeleteProductSet(context.Context, *DeleteProductSetRequest) (*empty.Empty, error)
2430	// Creates and returns a new product resource.
2431	//
2432	// Possible errors:
2433	//
2434	// * Returns INVALID_ARGUMENT if display_name is missing or longer than 4096
2435	//   characters.
2436	// * Returns INVALID_ARGUMENT if description is longer than 4096 characters.
2437	// * Returns INVALID_ARGUMENT if product_category is missing or invalid.
2438	CreateProduct(context.Context, *CreateProductRequest) (*Product, error)
2439	// Lists products in an unspecified order.
2440	//
2441	// Possible errors:
2442	//
2443	// * Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1.
2444	ListProducts(context.Context, *ListProductsRequest) (*ListProductsResponse, error)
2445	// Gets information associated with a Product.
2446	//
2447	// Possible errors:
2448	//
2449	// * Returns NOT_FOUND if the Product does not exist.
2450	GetProduct(context.Context, *GetProductRequest) (*Product, error)
2451	// Makes changes to a Product resource.
2452	// Only the `display_name`, `description`, and `labels` fields can be updated
2453	// right now.
2454	//
2455	// If labels are updated, the change will not be reflected in queries until
2456	// the next index time.
2457	//
2458	// Possible errors:
2459	//
2460	// * Returns NOT_FOUND if the Product does not exist.
2461	// * Returns INVALID_ARGUMENT if display_name is present in update_mask but is
2462	//   missing from the request or longer than 4096 characters.
2463	// * Returns INVALID_ARGUMENT if description is present in update_mask but is
2464	//   longer than 4096 characters.
2465	// * Returns INVALID_ARGUMENT if product_category is present in update_mask.
2466	UpdateProduct(context.Context, *UpdateProductRequest) (*Product, error)
2467	// Permanently deletes a product and its reference images.
2468	//
2469	// Metadata of the product and all its images will be deleted right away, but
2470	// search queries against ProductSets containing the product may still work
2471	// until all related caches are refreshed.
2472	//
2473	// Possible errors:
2474	//
2475	// * Returns NOT_FOUND if the product does not exist.
2476	DeleteProduct(context.Context, *DeleteProductRequest) (*empty.Empty, error)
2477	// Creates and returns a new ReferenceImage resource.
2478	//
2479	// The `bounding_poly` field is optional. If `bounding_poly` is not specified,
2480	// the system will try to detect regions of interest in the image that are
2481	// compatible with the product_category on the parent product. If it is
2482	// specified, detection is ALWAYS skipped. The system converts polygons into
2483	// non-rotated rectangles.
2484	//
2485	// Note that the pipeline will resize the image if the image resolution is too
2486	// large to process (above 50MP).
2487	//
2488	// Possible errors:
2489	//
2490	// * Returns INVALID_ARGUMENT if the image_uri is missing or longer than 4096
2491	//   characters.
2492	// * Returns INVALID_ARGUMENT if the product does not exist.
2493	// * Returns INVALID_ARGUMENT if bounding_poly is not provided, and nothing
2494	//   compatible with the parent product's product_category is detected.
2495	// * Returns INVALID_ARGUMENT if bounding_poly contains more than 10 polygons.
2496	CreateReferenceImage(context.Context, *CreateReferenceImageRequest) (*ReferenceImage, error)
2497	// Permanently deletes a reference image.
2498	//
2499	// The image metadata will be deleted right away, but search queries
2500	// against ProductSets containing the image may still work until all related
2501	// caches are refreshed.
2502	//
2503	// The actual image files are not deleted from Google Cloud Storage.
2504	//
2505	// Possible errors:
2506	//
2507	// * Returns NOT_FOUND if the reference image does not exist.
2508	DeleteReferenceImage(context.Context, *DeleteReferenceImageRequest) (*empty.Empty, error)
2509	// Lists reference images.
2510	//
2511	// Possible errors:
2512	//
2513	// * Returns NOT_FOUND if the parent product does not exist.
2514	// * Returns INVALID_ARGUMENT if the page_size is greater than 100, or less
2515	//   than 1.
2516	ListReferenceImages(context.Context, *ListReferenceImagesRequest) (*ListReferenceImagesResponse, error)
2517	// Gets information associated with a ReferenceImage.
2518	//
2519	// Possible errors:
2520	//
2521	// * Returns NOT_FOUND if the specified image does not exist.
2522	GetReferenceImage(context.Context, *GetReferenceImageRequest) (*ReferenceImage, error)
2523	// Adds a Product to the specified ProductSet. If the Product is already
2524	// present, no change is made.
2525	//
2526	// One Product can be added to at most 100 ProductSets.
2527	//
2528	// Possible errors:
2529	//
2530	// * Returns NOT_FOUND if the Product or the ProductSet doesn't exist.
2531	AddProductToProductSet(context.Context, *AddProductToProductSetRequest) (*empty.Empty, error)
2532	// Removes a Product from the specified ProductSet.
2533	//
2534	// Possible errors:
2535	//
2536	// * Returns NOT_FOUND If the Product is not found under the ProductSet.
2537	RemoveProductFromProductSet(context.Context, *RemoveProductFromProductSetRequest) (*empty.Empty, error)
2538	// Lists the Products in a ProductSet, in an unspecified order. If the
2539	// ProductSet does not exist, the products field of the response will be
2540	// empty.
2541	//
2542	// Possible errors:
2543	//
2544	// * Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1.
2545	ListProductsInProductSet(context.Context, *ListProductsInProductSetRequest) (*ListProductsInProductSetResponse, error)
2546	// Asynchronous API that imports a list of reference images to specified
2547	// product sets based on a list of image information.
2548	//
2549	// The [google.longrunning.Operation][google.longrunning.Operation] API can be
2550	// used to keep track of the progress and results of the request.
2551	// `Operation.metadata` contains `BatchOperationMetadata`. (progress)
2552	// `Operation.response` contains `ImportProductSetsResponse`. (results)
2553	//
2554	// The input source of this method is a csv file on Google Cloud Storage.
2555	// For the format of the csv file please see
2556	// [ImportProductSetsGcsSource.csv_file_uri][google.cloud.vision.v1p4beta1.ImportProductSetsGcsSource.csv_file_uri].
2557	ImportProductSets(context.Context, *ImportProductSetsRequest) (*longrunning.Operation, error)
2558}
2559
2560func RegisterProductSearchServer(s *grpc.Server, srv ProductSearchServer) {
2561	s.RegisterService(&_ProductSearch_serviceDesc, srv)
2562}
2563
2564func _ProductSearch_CreateProductSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2565	in := new(CreateProductSetRequest)
2566	if err := dec(in); err != nil {
2567		return nil, err
2568	}
2569	if interceptor == nil {
2570		return srv.(ProductSearchServer).CreateProductSet(ctx, in)
2571	}
2572	info := &grpc.UnaryServerInfo{
2573		Server:     srv,
2574		FullMethod: "/google.cloud.vision.v1p4beta1.ProductSearch/CreateProductSet",
2575	}
2576	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2577		return srv.(ProductSearchServer).CreateProductSet(ctx, req.(*CreateProductSetRequest))
2578	}
2579	return interceptor(ctx, in, info, handler)
2580}
2581
2582func _ProductSearch_ListProductSets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2583	in := new(ListProductSetsRequest)
2584	if err := dec(in); err != nil {
2585		return nil, err
2586	}
2587	if interceptor == nil {
2588		return srv.(ProductSearchServer).ListProductSets(ctx, in)
2589	}
2590	info := &grpc.UnaryServerInfo{
2591		Server:     srv,
2592		FullMethod: "/google.cloud.vision.v1p4beta1.ProductSearch/ListProductSets",
2593	}
2594	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2595		return srv.(ProductSearchServer).ListProductSets(ctx, req.(*ListProductSetsRequest))
2596	}
2597	return interceptor(ctx, in, info, handler)
2598}
2599
2600func _ProductSearch_GetProductSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2601	in := new(GetProductSetRequest)
2602	if err := dec(in); err != nil {
2603		return nil, err
2604	}
2605	if interceptor == nil {
2606		return srv.(ProductSearchServer).GetProductSet(ctx, in)
2607	}
2608	info := &grpc.UnaryServerInfo{
2609		Server:     srv,
2610		FullMethod: "/google.cloud.vision.v1p4beta1.ProductSearch/GetProductSet",
2611	}
2612	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2613		return srv.(ProductSearchServer).GetProductSet(ctx, req.(*GetProductSetRequest))
2614	}
2615	return interceptor(ctx, in, info, handler)
2616}
2617
2618func _ProductSearch_UpdateProductSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2619	in := new(UpdateProductSetRequest)
2620	if err := dec(in); err != nil {
2621		return nil, err
2622	}
2623	if interceptor == nil {
2624		return srv.(ProductSearchServer).UpdateProductSet(ctx, in)
2625	}
2626	info := &grpc.UnaryServerInfo{
2627		Server:     srv,
2628		FullMethod: "/google.cloud.vision.v1p4beta1.ProductSearch/UpdateProductSet",
2629	}
2630	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2631		return srv.(ProductSearchServer).UpdateProductSet(ctx, req.(*UpdateProductSetRequest))
2632	}
2633	return interceptor(ctx, in, info, handler)
2634}
2635
2636func _ProductSearch_DeleteProductSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2637	in := new(DeleteProductSetRequest)
2638	if err := dec(in); err != nil {
2639		return nil, err
2640	}
2641	if interceptor == nil {
2642		return srv.(ProductSearchServer).DeleteProductSet(ctx, in)
2643	}
2644	info := &grpc.UnaryServerInfo{
2645		Server:     srv,
2646		FullMethod: "/google.cloud.vision.v1p4beta1.ProductSearch/DeleteProductSet",
2647	}
2648	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2649		return srv.(ProductSearchServer).DeleteProductSet(ctx, req.(*DeleteProductSetRequest))
2650	}
2651	return interceptor(ctx, in, info, handler)
2652}
2653
2654func _ProductSearch_CreateProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2655	in := new(CreateProductRequest)
2656	if err := dec(in); err != nil {
2657		return nil, err
2658	}
2659	if interceptor == nil {
2660		return srv.(ProductSearchServer).CreateProduct(ctx, in)
2661	}
2662	info := &grpc.UnaryServerInfo{
2663		Server:     srv,
2664		FullMethod: "/google.cloud.vision.v1p4beta1.ProductSearch/CreateProduct",
2665	}
2666	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2667		return srv.(ProductSearchServer).CreateProduct(ctx, req.(*CreateProductRequest))
2668	}
2669	return interceptor(ctx, in, info, handler)
2670}
2671
2672func _ProductSearch_ListProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2673	in := new(ListProductsRequest)
2674	if err := dec(in); err != nil {
2675		return nil, err
2676	}
2677	if interceptor == nil {
2678		return srv.(ProductSearchServer).ListProducts(ctx, in)
2679	}
2680	info := &grpc.UnaryServerInfo{
2681		Server:     srv,
2682		FullMethod: "/google.cloud.vision.v1p4beta1.ProductSearch/ListProducts",
2683	}
2684	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2685		return srv.(ProductSearchServer).ListProducts(ctx, req.(*ListProductsRequest))
2686	}
2687	return interceptor(ctx, in, info, handler)
2688}
2689
2690func _ProductSearch_GetProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2691	in := new(GetProductRequest)
2692	if err := dec(in); err != nil {
2693		return nil, err
2694	}
2695	if interceptor == nil {
2696		return srv.(ProductSearchServer).GetProduct(ctx, in)
2697	}
2698	info := &grpc.UnaryServerInfo{
2699		Server:     srv,
2700		FullMethod: "/google.cloud.vision.v1p4beta1.ProductSearch/GetProduct",
2701	}
2702	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2703		return srv.(ProductSearchServer).GetProduct(ctx, req.(*GetProductRequest))
2704	}
2705	return interceptor(ctx, in, info, handler)
2706}
2707
2708func _ProductSearch_UpdateProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2709	in := new(UpdateProductRequest)
2710	if err := dec(in); err != nil {
2711		return nil, err
2712	}
2713	if interceptor == nil {
2714		return srv.(ProductSearchServer).UpdateProduct(ctx, in)
2715	}
2716	info := &grpc.UnaryServerInfo{
2717		Server:     srv,
2718		FullMethod: "/google.cloud.vision.v1p4beta1.ProductSearch/UpdateProduct",
2719	}
2720	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2721		return srv.(ProductSearchServer).UpdateProduct(ctx, req.(*UpdateProductRequest))
2722	}
2723	return interceptor(ctx, in, info, handler)
2724}
2725
2726func _ProductSearch_DeleteProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2727	in := new(DeleteProductRequest)
2728	if err := dec(in); err != nil {
2729		return nil, err
2730	}
2731	if interceptor == nil {
2732		return srv.(ProductSearchServer).DeleteProduct(ctx, in)
2733	}
2734	info := &grpc.UnaryServerInfo{
2735		Server:     srv,
2736		FullMethod: "/google.cloud.vision.v1p4beta1.ProductSearch/DeleteProduct",
2737	}
2738	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2739		return srv.(ProductSearchServer).DeleteProduct(ctx, req.(*DeleteProductRequest))
2740	}
2741	return interceptor(ctx, in, info, handler)
2742}
2743
2744func _ProductSearch_CreateReferenceImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2745	in := new(CreateReferenceImageRequest)
2746	if err := dec(in); err != nil {
2747		return nil, err
2748	}
2749	if interceptor == nil {
2750		return srv.(ProductSearchServer).CreateReferenceImage(ctx, in)
2751	}
2752	info := &grpc.UnaryServerInfo{
2753		Server:     srv,
2754		FullMethod: "/google.cloud.vision.v1p4beta1.ProductSearch/CreateReferenceImage",
2755	}
2756	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2757		return srv.(ProductSearchServer).CreateReferenceImage(ctx, req.(*CreateReferenceImageRequest))
2758	}
2759	return interceptor(ctx, in, info, handler)
2760}
2761
2762func _ProductSearch_DeleteReferenceImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2763	in := new(DeleteReferenceImageRequest)
2764	if err := dec(in); err != nil {
2765		return nil, err
2766	}
2767	if interceptor == nil {
2768		return srv.(ProductSearchServer).DeleteReferenceImage(ctx, in)
2769	}
2770	info := &grpc.UnaryServerInfo{
2771		Server:     srv,
2772		FullMethod: "/google.cloud.vision.v1p4beta1.ProductSearch/DeleteReferenceImage",
2773	}
2774	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2775		return srv.(ProductSearchServer).DeleteReferenceImage(ctx, req.(*DeleteReferenceImageRequest))
2776	}
2777	return interceptor(ctx, in, info, handler)
2778}
2779
2780func _ProductSearch_ListReferenceImages_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2781	in := new(ListReferenceImagesRequest)
2782	if err := dec(in); err != nil {
2783		return nil, err
2784	}
2785	if interceptor == nil {
2786		return srv.(ProductSearchServer).ListReferenceImages(ctx, in)
2787	}
2788	info := &grpc.UnaryServerInfo{
2789		Server:     srv,
2790		FullMethod: "/google.cloud.vision.v1p4beta1.ProductSearch/ListReferenceImages",
2791	}
2792	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2793		return srv.(ProductSearchServer).ListReferenceImages(ctx, req.(*ListReferenceImagesRequest))
2794	}
2795	return interceptor(ctx, in, info, handler)
2796}
2797
2798func _ProductSearch_GetReferenceImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2799	in := new(GetReferenceImageRequest)
2800	if err := dec(in); err != nil {
2801		return nil, err
2802	}
2803	if interceptor == nil {
2804		return srv.(ProductSearchServer).GetReferenceImage(ctx, in)
2805	}
2806	info := &grpc.UnaryServerInfo{
2807		Server:     srv,
2808		FullMethod: "/google.cloud.vision.v1p4beta1.ProductSearch/GetReferenceImage",
2809	}
2810	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2811		return srv.(ProductSearchServer).GetReferenceImage(ctx, req.(*GetReferenceImageRequest))
2812	}
2813	return interceptor(ctx, in, info, handler)
2814}
2815
2816func _ProductSearch_AddProductToProductSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2817	in := new(AddProductToProductSetRequest)
2818	if err := dec(in); err != nil {
2819		return nil, err
2820	}
2821	if interceptor == nil {
2822		return srv.(ProductSearchServer).AddProductToProductSet(ctx, in)
2823	}
2824	info := &grpc.UnaryServerInfo{
2825		Server:     srv,
2826		FullMethod: "/google.cloud.vision.v1p4beta1.ProductSearch/AddProductToProductSet",
2827	}
2828	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2829		return srv.(ProductSearchServer).AddProductToProductSet(ctx, req.(*AddProductToProductSetRequest))
2830	}
2831	return interceptor(ctx, in, info, handler)
2832}
2833
2834func _ProductSearch_RemoveProductFromProductSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2835	in := new(RemoveProductFromProductSetRequest)
2836	if err := dec(in); err != nil {
2837		return nil, err
2838	}
2839	if interceptor == nil {
2840		return srv.(ProductSearchServer).RemoveProductFromProductSet(ctx, in)
2841	}
2842	info := &grpc.UnaryServerInfo{
2843		Server:     srv,
2844		FullMethod: "/google.cloud.vision.v1p4beta1.ProductSearch/RemoveProductFromProductSet",
2845	}
2846	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2847		return srv.(ProductSearchServer).RemoveProductFromProductSet(ctx, req.(*RemoveProductFromProductSetRequest))
2848	}
2849	return interceptor(ctx, in, info, handler)
2850}
2851
2852func _ProductSearch_ListProductsInProductSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2853	in := new(ListProductsInProductSetRequest)
2854	if err := dec(in); err != nil {
2855		return nil, err
2856	}
2857	if interceptor == nil {
2858		return srv.(ProductSearchServer).ListProductsInProductSet(ctx, in)
2859	}
2860	info := &grpc.UnaryServerInfo{
2861		Server:     srv,
2862		FullMethod: "/google.cloud.vision.v1p4beta1.ProductSearch/ListProductsInProductSet",
2863	}
2864	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2865		return srv.(ProductSearchServer).ListProductsInProductSet(ctx, req.(*ListProductsInProductSetRequest))
2866	}
2867	return interceptor(ctx, in, info, handler)
2868}
2869
2870func _ProductSearch_ImportProductSets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2871	in := new(ImportProductSetsRequest)
2872	if err := dec(in); err != nil {
2873		return nil, err
2874	}
2875	if interceptor == nil {
2876		return srv.(ProductSearchServer).ImportProductSets(ctx, in)
2877	}
2878	info := &grpc.UnaryServerInfo{
2879		Server:     srv,
2880		FullMethod: "/google.cloud.vision.v1p4beta1.ProductSearch/ImportProductSets",
2881	}
2882	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2883		return srv.(ProductSearchServer).ImportProductSets(ctx, req.(*ImportProductSetsRequest))
2884	}
2885	return interceptor(ctx, in, info, handler)
2886}
2887
2888var _ProductSearch_serviceDesc = grpc.ServiceDesc{
2889	ServiceName: "google.cloud.vision.v1p4beta1.ProductSearch",
2890	HandlerType: (*ProductSearchServer)(nil),
2891	Methods: []grpc.MethodDesc{
2892		{
2893			MethodName: "CreateProductSet",
2894			Handler:    _ProductSearch_CreateProductSet_Handler,
2895		},
2896		{
2897			MethodName: "ListProductSets",
2898			Handler:    _ProductSearch_ListProductSets_Handler,
2899		},
2900		{
2901			MethodName: "GetProductSet",
2902			Handler:    _ProductSearch_GetProductSet_Handler,
2903		},
2904		{
2905			MethodName: "UpdateProductSet",
2906			Handler:    _ProductSearch_UpdateProductSet_Handler,
2907		},
2908		{
2909			MethodName: "DeleteProductSet",
2910			Handler:    _ProductSearch_DeleteProductSet_Handler,
2911		},
2912		{
2913			MethodName: "CreateProduct",
2914			Handler:    _ProductSearch_CreateProduct_Handler,
2915		},
2916		{
2917			MethodName: "ListProducts",
2918			Handler:    _ProductSearch_ListProducts_Handler,
2919		},
2920		{
2921			MethodName: "GetProduct",
2922			Handler:    _ProductSearch_GetProduct_Handler,
2923		},
2924		{
2925			MethodName: "UpdateProduct",
2926			Handler:    _ProductSearch_UpdateProduct_Handler,
2927		},
2928		{
2929			MethodName: "DeleteProduct",
2930			Handler:    _ProductSearch_DeleteProduct_Handler,
2931		},
2932		{
2933			MethodName: "CreateReferenceImage",
2934			Handler:    _ProductSearch_CreateReferenceImage_Handler,
2935		},
2936		{
2937			MethodName: "DeleteReferenceImage",
2938			Handler:    _ProductSearch_DeleteReferenceImage_Handler,
2939		},
2940		{
2941			MethodName: "ListReferenceImages",
2942			Handler:    _ProductSearch_ListReferenceImages_Handler,
2943		},
2944		{
2945			MethodName: "GetReferenceImage",
2946			Handler:    _ProductSearch_GetReferenceImage_Handler,
2947		},
2948		{
2949			MethodName: "AddProductToProductSet",
2950			Handler:    _ProductSearch_AddProductToProductSet_Handler,
2951		},
2952		{
2953			MethodName: "RemoveProductFromProductSet",
2954			Handler:    _ProductSearch_RemoveProductFromProductSet_Handler,
2955		},
2956		{
2957			MethodName: "ListProductsInProductSet",
2958			Handler:    _ProductSearch_ListProductsInProductSet_Handler,
2959		},
2960		{
2961			MethodName: "ImportProductSets",
2962			Handler:    _ProductSearch_ImportProductSets_Handler,
2963		},
2964	},
2965	Streams:  []grpc.StreamDesc{},
2966	Metadata: "google/cloud/vision/v1p4beta1/product_search_service.proto",
2967}
2968