1// Copyright 2019 Google LLC.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15
16// Code generated by protoc-gen-go. DO NOT EDIT.
17// versions:
18// 	protoc-gen-go v1.26.0
19// 	protoc        v3.12.2
20// source: google/cloud/vision/v1p4beta1/product_search.proto
21
22package vision
23
24import (
25	reflect "reflect"
26	sync "sync"
27
28	_ "google.golang.org/genproto/googleapis/api/annotations"
29	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
30	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
31	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
32)
33
34const (
35	// Verify that this generated code is sufficiently up-to-date.
36	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
37	// Verify that runtime/protoimpl is sufficiently up-to-date.
38	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
39)
40
41// Parameters for a product search request.
42type ProductSearchParams struct {
43	state         protoimpl.MessageState
44	sizeCache     protoimpl.SizeCache
45	unknownFields protoimpl.UnknownFields
46
47	// The bounding polygon around the area of interest in the image.
48	// If it is not specified, system discretion will be applied.
49	BoundingPoly *BoundingPoly `protobuf:"bytes,9,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
50	// The resource name of a
51	// [ProductSet][google.cloud.vision.v1p4beta1.ProductSet] to be searched for
52	// similar images.
53	//
54	// Format is:
55	// `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.
56	ProductSet string `protobuf:"bytes,6,opt,name=product_set,json=productSet,proto3" json:"product_set,omitempty"`
57	// The list of product categories to search in. Currently, we only consider
58	// the first category, and either "homegoods-v2", "apparel-v2", "toys-v2",
59	// "packagedgoods-v1", or "general-v1" should be specified. The legacy
60	// categories "homegoods", "apparel", and "toys" are still supported but will
61	// be deprecated. For new products, please use "homegoods-v2", "apparel-v2",
62	// or "toys-v2" for better product search accuracy. It is recommended to
63	// migrate existing products to these categories as well.
64	ProductCategories []string `protobuf:"bytes,7,rep,name=product_categories,json=productCategories,proto3" json:"product_categories,omitempty"`
65	// The filtering expression. This can be used to restrict search results based
66	// on Product labels. We currently support an AND of OR of key-value
67	// expressions, where each expression within an OR must have the same key. An
68	// '=' should be used to connect the key and value.
69	//
70	// For example, "(color = red OR color = blue) AND brand = Google" is
71	// acceptable, but "(color = red OR brand = Google)" is not acceptable.
72	// "color: red" is not acceptable because it uses a ':' instead of an '='.
73	Filter string `protobuf:"bytes,8,opt,name=filter,proto3" json:"filter,omitempty"`
74}
75
76func (x *ProductSearchParams) Reset() {
77	*x = ProductSearchParams{}
78	if protoimpl.UnsafeEnabled {
79		mi := &file_google_cloud_vision_v1p4beta1_product_search_proto_msgTypes[0]
80		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
81		ms.StoreMessageInfo(mi)
82	}
83}
84
85func (x *ProductSearchParams) String() string {
86	return protoimpl.X.MessageStringOf(x)
87}
88
89func (*ProductSearchParams) ProtoMessage() {}
90
91func (x *ProductSearchParams) ProtoReflect() protoreflect.Message {
92	mi := &file_google_cloud_vision_v1p4beta1_product_search_proto_msgTypes[0]
93	if protoimpl.UnsafeEnabled && x != nil {
94		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
95		if ms.LoadMessageInfo() == nil {
96			ms.StoreMessageInfo(mi)
97		}
98		return ms
99	}
100	return mi.MessageOf(x)
101}
102
103// Deprecated: Use ProductSearchParams.ProtoReflect.Descriptor instead.
104func (*ProductSearchParams) Descriptor() ([]byte, []int) {
105	return file_google_cloud_vision_v1p4beta1_product_search_proto_rawDescGZIP(), []int{0}
106}
107
108func (x *ProductSearchParams) GetBoundingPoly() *BoundingPoly {
109	if x != nil {
110		return x.BoundingPoly
111	}
112	return nil
113}
114
115func (x *ProductSearchParams) GetProductSet() string {
116	if x != nil {
117		return x.ProductSet
118	}
119	return ""
120}
121
122func (x *ProductSearchParams) GetProductCategories() []string {
123	if x != nil {
124		return x.ProductCategories
125	}
126	return nil
127}
128
129func (x *ProductSearchParams) GetFilter() string {
130	if x != nil {
131		return x.Filter
132	}
133	return ""
134}
135
136// Results for a product search request.
137type ProductSearchResults struct {
138	state         protoimpl.MessageState
139	sizeCache     protoimpl.SizeCache
140	unknownFields protoimpl.UnknownFields
141
142	// Timestamp of the index which provided these results. Products added to the
143	// product set and products removed from the product set after this time are
144	// not reflected in the current results.
145	IndexTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=index_time,json=indexTime,proto3" json:"index_time,omitempty"`
146	// List of results, one for each product match.
147	Results []*ProductSearchResults_Result `protobuf:"bytes,5,rep,name=results,proto3" json:"results,omitempty"`
148	// List of results grouped by products detected in the query image. Each entry
149	// corresponds to one bounding polygon in the query image, and contains the
150	// matching products specific to that region. There may be duplicate product
151	// matches in the union of all the per-product results.
152	ProductGroupedResults []*ProductSearchResults_GroupedResult `protobuf:"bytes,6,rep,name=product_grouped_results,json=productGroupedResults,proto3" json:"product_grouped_results,omitempty"`
153}
154
155func (x *ProductSearchResults) Reset() {
156	*x = ProductSearchResults{}
157	if protoimpl.UnsafeEnabled {
158		mi := &file_google_cloud_vision_v1p4beta1_product_search_proto_msgTypes[1]
159		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
160		ms.StoreMessageInfo(mi)
161	}
162}
163
164func (x *ProductSearchResults) String() string {
165	return protoimpl.X.MessageStringOf(x)
166}
167
168func (*ProductSearchResults) ProtoMessage() {}
169
170func (x *ProductSearchResults) ProtoReflect() protoreflect.Message {
171	mi := &file_google_cloud_vision_v1p4beta1_product_search_proto_msgTypes[1]
172	if protoimpl.UnsafeEnabled && x != nil {
173		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
174		if ms.LoadMessageInfo() == nil {
175			ms.StoreMessageInfo(mi)
176		}
177		return ms
178	}
179	return mi.MessageOf(x)
180}
181
182// Deprecated: Use ProductSearchResults.ProtoReflect.Descriptor instead.
183func (*ProductSearchResults) Descriptor() ([]byte, []int) {
184	return file_google_cloud_vision_v1p4beta1_product_search_proto_rawDescGZIP(), []int{1}
185}
186
187func (x *ProductSearchResults) GetIndexTime() *timestamppb.Timestamp {
188	if x != nil {
189		return x.IndexTime
190	}
191	return nil
192}
193
194func (x *ProductSearchResults) GetResults() []*ProductSearchResults_Result {
195	if x != nil {
196		return x.Results
197	}
198	return nil
199}
200
201func (x *ProductSearchResults) GetProductGroupedResults() []*ProductSearchResults_GroupedResult {
202	if x != nil {
203		return x.ProductGroupedResults
204	}
205	return nil
206}
207
208// Information about a product.
209type ProductSearchResults_Result struct {
210	state         protoimpl.MessageState
211	sizeCache     protoimpl.SizeCache
212	unknownFields protoimpl.UnknownFields
213
214	// The Product.
215	Product *Product `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"`
216	// A confidence level on the match, ranging from 0 (no confidence) to
217	// 1 (full confidence).
218	Score float32 `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"`
219	// The resource name of the image from the product that is the closest match
220	// to the query.
221	Image string `protobuf:"bytes,3,opt,name=image,proto3" json:"image,omitempty"`
222}
223
224func (x *ProductSearchResults_Result) Reset() {
225	*x = ProductSearchResults_Result{}
226	if protoimpl.UnsafeEnabled {
227		mi := &file_google_cloud_vision_v1p4beta1_product_search_proto_msgTypes[2]
228		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
229		ms.StoreMessageInfo(mi)
230	}
231}
232
233func (x *ProductSearchResults_Result) String() string {
234	return protoimpl.X.MessageStringOf(x)
235}
236
237func (*ProductSearchResults_Result) ProtoMessage() {}
238
239func (x *ProductSearchResults_Result) ProtoReflect() protoreflect.Message {
240	mi := &file_google_cloud_vision_v1p4beta1_product_search_proto_msgTypes[2]
241	if protoimpl.UnsafeEnabled && x != nil {
242		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
243		if ms.LoadMessageInfo() == nil {
244			ms.StoreMessageInfo(mi)
245		}
246		return ms
247	}
248	return mi.MessageOf(x)
249}
250
251// Deprecated: Use ProductSearchResults_Result.ProtoReflect.Descriptor instead.
252func (*ProductSearchResults_Result) Descriptor() ([]byte, []int) {
253	return file_google_cloud_vision_v1p4beta1_product_search_proto_rawDescGZIP(), []int{1, 0}
254}
255
256func (x *ProductSearchResults_Result) GetProduct() *Product {
257	if x != nil {
258		return x.Product
259	}
260	return nil
261}
262
263func (x *ProductSearchResults_Result) GetScore() float32 {
264	if x != nil {
265		return x.Score
266	}
267	return 0
268}
269
270func (x *ProductSearchResults_Result) GetImage() string {
271	if x != nil {
272		return x.Image
273	}
274	return ""
275}
276
277// Prediction for what the object in the bounding box is.
278type ProductSearchResults_ObjectAnnotation struct {
279	state         protoimpl.MessageState
280	sizeCache     protoimpl.SizeCache
281	unknownFields protoimpl.UnknownFields
282
283	// Object ID that should align with EntityAnnotation mid.
284	Mid string `protobuf:"bytes,1,opt,name=mid,proto3" json:"mid,omitempty"`
285	// The BCP-47 language code, such as "en-US" or "sr-Latn". For more
286	// information, see
287	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
288	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
289	// Object name, expressed in its `language_code` language.
290	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
291	// Score of the result. Range [0, 1].
292	Score float32 `protobuf:"fixed32,4,opt,name=score,proto3" json:"score,omitempty"`
293}
294
295func (x *ProductSearchResults_ObjectAnnotation) Reset() {
296	*x = ProductSearchResults_ObjectAnnotation{}
297	if protoimpl.UnsafeEnabled {
298		mi := &file_google_cloud_vision_v1p4beta1_product_search_proto_msgTypes[3]
299		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
300		ms.StoreMessageInfo(mi)
301	}
302}
303
304func (x *ProductSearchResults_ObjectAnnotation) String() string {
305	return protoimpl.X.MessageStringOf(x)
306}
307
308func (*ProductSearchResults_ObjectAnnotation) ProtoMessage() {}
309
310func (x *ProductSearchResults_ObjectAnnotation) ProtoReflect() protoreflect.Message {
311	mi := &file_google_cloud_vision_v1p4beta1_product_search_proto_msgTypes[3]
312	if protoimpl.UnsafeEnabled && x != nil {
313		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
314		if ms.LoadMessageInfo() == nil {
315			ms.StoreMessageInfo(mi)
316		}
317		return ms
318	}
319	return mi.MessageOf(x)
320}
321
322// Deprecated: Use ProductSearchResults_ObjectAnnotation.ProtoReflect.Descriptor instead.
323func (*ProductSearchResults_ObjectAnnotation) Descriptor() ([]byte, []int) {
324	return file_google_cloud_vision_v1p4beta1_product_search_proto_rawDescGZIP(), []int{1, 1}
325}
326
327func (x *ProductSearchResults_ObjectAnnotation) GetMid() string {
328	if x != nil {
329		return x.Mid
330	}
331	return ""
332}
333
334func (x *ProductSearchResults_ObjectAnnotation) GetLanguageCode() string {
335	if x != nil {
336		return x.LanguageCode
337	}
338	return ""
339}
340
341func (x *ProductSearchResults_ObjectAnnotation) GetName() string {
342	if x != nil {
343		return x.Name
344	}
345	return ""
346}
347
348func (x *ProductSearchResults_ObjectAnnotation) GetScore() float32 {
349	if x != nil {
350		return x.Score
351	}
352	return 0
353}
354
355// Information about the products similar to a single product in a query
356// image.
357type ProductSearchResults_GroupedResult struct {
358	state         protoimpl.MessageState
359	sizeCache     protoimpl.SizeCache
360	unknownFields protoimpl.UnknownFields
361
362	// The bounding polygon around the product detected in the query image.
363	BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
364	// List of results, one for each product match.
365	Results []*ProductSearchResults_Result `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"`
366	// List of generic predictions for the object in the bounding box.
367	ObjectAnnotations []*ProductSearchResults_ObjectAnnotation `protobuf:"bytes,3,rep,name=object_annotations,json=objectAnnotations,proto3" json:"object_annotations,omitempty"`
368}
369
370func (x *ProductSearchResults_GroupedResult) Reset() {
371	*x = ProductSearchResults_GroupedResult{}
372	if protoimpl.UnsafeEnabled {
373		mi := &file_google_cloud_vision_v1p4beta1_product_search_proto_msgTypes[4]
374		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
375		ms.StoreMessageInfo(mi)
376	}
377}
378
379func (x *ProductSearchResults_GroupedResult) String() string {
380	return protoimpl.X.MessageStringOf(x)
381}
382
383func (*ProductSearchResults_GroupedResult) ProtoMessage() {}
384
385func (x *ProductSearchResults_GroupedResult) ProtoReflect() protoreflect.Message {
386	mi := &file_google_cloud_vision_v1p4beta1_product_search_proto_msgTypes[4]
387	if protoimpl.UnsafeEnabled && x != nil {
388		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
389		if ms.LoadMessageInfo() == nil {
390			ms.StoreMessageInfo(mi)
391		}
392		return ms
393	}
394	return mi.MessageOf(x)
395}
396
397// Deprecated: Use ProductSearchResults_GroupedResult.ProtoReflect.Descriptor instead.
398func (*ProductSearchResults_GroupedResult) Descriptor() ([]byte, []int) {
399	return file_google_cloud_vision_v1p4beta1_product_search_proto_rawDescGZIP(), []int{1, 2}
400}
401
402func (x *ProductSearchResults_GroupedResult) GetBoundingPoly() *BoundingPoly {
403	if x != nil {
404		return x.BoundingPoly
405	}
406	return nil
407}
408
409func (x *ProductSearchResults_GroupedResult) GetResults() []*ProductSearchResults_Result {
410	if x != nil {
411		return x.Results
412	}
413	return nil
414}
415
416func (x *ProductSearchResults_GroupedResult) GetObjectAnnotations() []*ProductSearchResults_ObjectAnnotation {
417	if x != nil {
418		return x.ObjectAnnotations
419	}
420	return nil
421}
422
423var File_google_cloud_vision_v1p4beta1_product_search_proto protoreflect.FileDescriptor
424
425var file_google_cloud_vision_v1p4beta1_product_search_proto_rawDesc = []byte{
426	0x0a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76,
427	0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f,
428	0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x70,
429	0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
430	0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65,
431	0x74, 0x61, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f,
432	0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
433	0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65,
434	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x67, 0x6f,
435	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f,
436	0x6e, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x67, 0x65, 0x6f, 0x6d,
437	0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3a, 0x67, 0x6f, 0x6f, 0x67,
438	0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f,
439	0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63,
440	0x74, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
441	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
442	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
443	0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf6, 0x01, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x64,
444	0x75, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12,
445	0x50, 0x0a, 0x0d, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x79,
446	0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
447	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70,
448	0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50,
449	0x6f, 0x6c, 0x79, 0x52, 0x0c, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c,
450	0x79, 0x12, 0x46, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x74,
451	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x76, 0x69, 0x73,
452	0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63,
453	0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x52, 0x0a, 0x70,
454	0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f,
455	0x64, 0x75, 0x63, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18,
456	0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61,
457	0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74,
458	0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
459	0x22, 0xbe, 0x06, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72,
460	0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x69, 0x6e, 0x64,
461	0x65, 0x78, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
462	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
463	0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78,
464	0x54, 0x69, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18,
465	0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
466	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34,
467	0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x61,
468	0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c,
469	0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x79, 0x0a, 0x17, 0x70, 0x72,
470	0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x5f, 0x72, 0x65,
471	0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f,
472	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f,
473	0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64,
474	0x75, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73,
475	0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x15,
476	0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x52, 0x65,
477	0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x76, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12,
478	0x40, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
479	0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
480	0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31,
481	0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63,
482	0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02,
483	0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65,
484	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x1a, 0x73, 0x0a,
485	0x10, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
486	0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
487	0x6d, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f,
488	0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67,
489	0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
490	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05,
491	0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f,
492	0x72, 0x65, 0x1a, 0xac, 0x02, 0x0a, 0x0d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x52, 0x65,
493	0x73, 0x75, 0x6c, 0x74, 0x12, 0x50, 0x0a, 0x0d, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67,
494	0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f,
495	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f,
496	0x6e, 0x2e, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x75, 0x6e,
497	0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x52, 0x0c, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69,
498	0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79, 0x12, 0x54, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
499	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
500	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31,
501	0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53,
502	0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x52, 0x65, 0x73,
503	0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x73, 0x0a, 0x12,
504	0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
505	0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
506	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
507	0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
508	0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x4f, 0x62,
509	0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11,
510	0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
511	0x73, 0x42, 0x88, 0x01, 0x0a, 0x21, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
512	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31,
513	0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x12, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
514	0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x67,
515	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67,
516	0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
517	0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f,
518	0x6e, 0x2f, 0x76, 0x31, 0x70, 0x34, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x76, 0x69, 0x73, 0x69,
519	0x6f, 0x6e, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x04, 0x47, 0x43, 0x56, 0x4e, 0x62, 0x06, 0x70, 0x72,
520	0x6f, 0x74, 0x6f, 0x33,
521}
522
523var (
524	file_google_cloud_vision_v1p4beta1_product_search_proto_rawDescOnce sync.Once
525	file_google_cloud_vision_v1p4beta1_product_search_proto_rawDescData = file_google_cloud_vision_v1p4beta1_product_search_proto_rawDesc
526)
527
528func file_google_cloud_vision_v1p4beta1_product_search_proto_rawDescGZIP() []byte {
529	file_google_cloud_vision_v1p4beta1_product_search_proto_rawDescOnce.Do(func() {
530		file_google_cloud_vision_v1p4beta1_product_search_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_vision_v1p4beta1_product_search_proto_rawDescData)
531	})
532	return file_google_cloud_vision_v1p4beta1_product_search_proto_rawDescData
533}
534
535var file_google_cloud_vision_v1p4beta1_product_search_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
536var file_google_cloud_vision_v1p4beta1_product_search_proto_goTypes = []interface{}{
537	(*ProductSearchParams)(nil),                   // 0: google.cloud.vision.v1p4beta1.ProductSearchParams
538	(*ProductSearchResults)(nil),                  // 1: google.cloud.vision.v1p4beta1.ProductSearchResults
539	(*ProductSearchResults_Result)(nil),           // 2: google.cloud.vision.v1p4beta1.ProductSearchResults.Result
540	(*ProductSearchResults_ObjectAnnotation)(nil), // 3: google.cloud.vision.v1p4beta1.ProductSearchResults.ObjectAnnotation
541	(*ProductSearchResults_GroupedResult)(nil),    // 4: google.cloud.vision.v1p4beta1.ProductSearchResults.GroupedResult
542	(*BoundingPoly)(nil),                          // 5: google.cloud.vision.v1p4beta1.BoundingPoly
543	(*timestamppb.Timestamp)(nil),                 // 6: google.protobuf.Timestamp
544	(*Product)(nil),                               // 7: google.cloud.vision.v1p4beta1.Product
545}
546var file_google_cloud_vision_v1p4beta1_product_search_proto_depIdxs = []int32{
547	5, // 0: google.cloud.vision.v1p4beta1.ProductSearchParams.bounding_poly:type_name -> google.cloud.vision.v1p4beta1.BoundingPoly
548	6, // 1: google.cloud.vision.v1p4beta1.ProductSearchResults.index_time:type_name -> google.protobuf.Timestamp
549	2, // 2: google.cloud.vision.v1p4beta1.ProductSearchResults.results:type_name -> google.cloud.vision.v1p4beta1.ProductSearchResults.Result
550	4, // 3: google.cloud.vision.v1p4beta1.ProductSearchResults.product_grouped_results:type_name -> google.cloud.vision.v1p4beta1.ProductSearchResults.GroupedResult
551	7, // 4: google.cloud.vision.v1p4beta1.ProductSearchResults.Result.product:type_name -> google.cloud.vision.v1p4beta1.Product
552	5, // 5: google.cloud.vision.v1p4beta1.ProductSearchResults.GroupedResult.bounding_poly:type_name -> google.cloud.vision.v1p4beta1.BoundingPoly
553	2, // 6: google.cloud.vision.v1p4beta1.ProductSearchResults.GroupedResult.results:type_name -> google.cloud.vision.v1p4beta1.ProductSearchResults.Result
554	3, // 7: google.cloud.vision.v1p4beta1.ProductSearchResults.GroupedResult.object_annotations:type_name -> google.cloud.vision.v1p4beta1.ProductSearchResults.ObjectAnnotation
555	8, // [8:8] is the sub-list for method output_type
556	8, // [8:8] is the sub-list for method input_type
557	8, // [8:8] is the sub-list for extension type_name
558	8, // [8:8] is the sub-list for extension extendee
559	0, // [0:8] is the sub-list for field type_name
560}
561
562func init() { file_google_cloud_vision_v1p4beta1_product_search_proto_init() }
563func file_google_cloud_vision_v1p4beta1_product_search_proto_init() {
564	if File_google_cloud_vision_v1p4beta1_product_search_proto != nil {
565		return
566	}
567	file_google_cloud_vision_v1p4beta1_geometry_proto_init()
568	file_google_cloud_vision_v1p4beta1_product_search_service_proto_init()
569	if !protoimpl.UnsafeEnabled {
570		file_google_cloud_vision_v1p4beta1_product_search_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
571			switch v := v.(*ProductSearchParams); i {
572			case 0:
573				return &v.state
574			case 1:
575				return &v.sizeCache
576			case 2:
577				return &v.unknownFields
578			default:
579				return nil
580			}
581		}
582		file_google_cloud_vision_v1p4beta1_product_search_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
583			switch v := v.(*ProductSearchResults); i {
584			case 0:
585				return &v.state
586			case 1:
587				return &v.sizeCache
588			case 2:
589				return &v.unknownFields
590			default:
591				return nil
592			}
593		}
594		file_google_cloud_vision_v1p4beta1_product_search_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
595			switch v := v.(*ProductSearchResults_Result); i {
596			case 0:
597				return &v.state
598			case 1:
599				return &v.sizeCache
600			case 2:
601				return &v.unknownFields
602			default:
603				return nil
604			}
605		}
606		file_google_cloud_vision_v1p4beta1_product_search_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
607			switch v := v.(*ProductSearchResults_ObjectAnnotation); i {
608			case 0:
609				return &v.state
610			case 1:
611				return &v.sizeCache
612			case 2:
613				return &v.unknownFields
614			default:
615				return nil
616			}
617		}
618		file_google_cloud_vision_v1p4beta1_product_search_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
619			switch v := v.(*ProductSearchResults_GroupedResult); i {
620			case 0:
621				return &v.state
622			case 1:
623				return &v.sizeCache
624			case 2:
625				return &v.unknownFields
626			default:
627				return nil
628			}
629		}
630	}
631	type x struct{}
632	out := protoimpl.TypeBuilder{
633		File: protoimpl.DescBuilder{
634			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
635			RawDescriptor: file_google_cloud_vision_v1p4beta1_product_search_proto_rawDesc,
636			NumEnums:      0,
637			NumMessages:   5,
638			NumExtensions: 0,
639			NumServices:   0,
640		},
641		GoTypes:           file_google_cloud_vision_v1p4beta1_product_search_proto_goTypes,
642		DependencyIndexes: file_google_cloud_vision_v1p4beta1_product_search_proto_depIdxs,
643		MessageInfos:      file_google_cloud_vision_v1p4beta1_product_search_proto_msgTypes,
644	}.Build()
645	File_google_cloud_vision_v1p4beta1_product_search_proto = out.File
646	file_google_cloud_vision_v1p4beta1_product_search_proto_rawDesc = nil
647	file_google_cloud_vision_v1p4beta1_product_search_proto_goTypes = nil
648	file_google_cloud_vision_v1p4beta1_product_search_proto_depIdxs = nil
649}
650