1// Copyright 2021 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// Code generated by protoc-gen-go. DO NOT EDIT.
16// versions:
17// 	protoc-gen-go v1.26.0
18// 	protoc        v3.12.2
19// source: google/cloud/retail/v2/common.proto
20
21package retail
22
23import (
24	reflect "reflect"
25	sync "sync"
26
27	_ "google.golang.org/genproto/googleapis/api/annotations"
28	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
29	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
30	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
31)
32
33const (
34	// Verify that this generated code is sufficiently up-to-date.
35	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
36	// Verify that runtime/protoimpl is sufficiently up-to-date.
37	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
38)
39
40// An intended audience of the [Product][google.cloud.retail.v2.Product] for
41// whom it's sold.
42type Audience struct {
43	state         protoimpl.MessageState
44	sizeCache     protoimpl.SizeCache
45	unknownFields protoimpl.UnknownFields
46
47	// The genders of the audience. Strongly encouraged to use the standard
48	// values: "male", "female", "unisex".
49	//
50	// At most 5 values are allowed. Each value must be a UTF-8 encoded string
51	// with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error
52	// is returned.
53	//
54	// Google Merchant Center property
55	// [gender](https://support.google.com/merchants/answer/6324479). Schema.org
56	// property
57	// [Product.audience.suggestedGender](https://schema.org/suggestedGender).
58	Genders []string `protobuf:"bytes,1,rep,name=genders,proto3" json:"genders,omitempty"`
59	// The age groups of the audience. Strongly encouraged to use the standard
60	// values: "newborn" (up to 3 months old), "infant" (3–12 months old),
61	// "toddler" (1–5 years old), "kids" (5–13 years old), "adult" (typically
62	// teens or older).
63	//
64	// At most 5 values are allowed. Each value must be a UTF-8 encoded string
65	// with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error
66	// is returned.
67	//
68	// Google Merchant Center property
69	// [age_group](https://support.google.com/merchants/answer/6324463).
70	// Schema.org property
71	// [Product.audience.suggestedMinAge](https://schema.org/suggestedMinAge) and
72	// [Product.audience.suggestedMaxAge](https://schema.org/suggestedMaxAge).
73	AgeGroups []string `protobuf:"bytes,2,rep,name=age_groups,json=ageGroups,proto3" json:"age_groups,omitempty"`
74}
75
76func (x *Audience) Reset() {
77	*x = Audience{}
78	if protoimpl.UnsafeEnabled {
79		mi := &file_google_cloud_retail_v2_common_proto_msgTypes[0]
80		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
81		ms.StoreMessageInfo(mi)
82	}
83}
84
85func (x *Audience) String() string {
86	return protoimpl.X.MessageStringOf(x)
87}
88
89func (*Audience) ProtoMessage() {}
90
91func (x *Audience) ProtoReflect() protoreflect.Message {
92	mi := &file_google_cloud_retail_v2_common_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 Audience.ProtoReflect.Descriptor instead.
104func (*Audience) Descriptor() ([]byte, []int) {
105	return file_google_cloud_retail_v2_common_proto_rawDescGZIP(), []int{0}
106}
107
108func (x *Audience) GetGenders() []string {
109	if x != nil {
110		return x.Genders
111	}
112	return nil
113}
114
115func (x *Audience) GetAgeGroups() []string {
116	if x != nil {
117		return x.AgeGroups
118	}
119	return nil
120}
121
122// The color information of a [Product][google.cloud.retail.v2.Product].
123type ColorInfo struct {
124	state         protoimpl.MessageState
125	sizeCache     protoimpl.SizeCache
126	unknownFields protoimpl.UnknownFields
127
128	// The standard color families. Strongly recommended to use the following
129	// standard color groups: "Red", "Pink", "Orange", "Yellow", "Purple",
130	// "Green", "Cyan", "Blue", "Brown", "White", "Gray", "Black" and
131	// "Mixed". Normally it is expected to have only 1 color family. May consider
132	// using single "Mixed" instead of multiple values.
133	//
134	// A maximum of 5 values are allowed. Each value must be a UTF-8 encoded
135	// string with a length limit of 128 characters. Otherwise, an
136	// INVALID_ARGUMENT error is returned.
137	//
138	// Google Merchant Center property
139	// [color](https://support.google.com/merchants/answer/6324487). Schema.org
140	// property [Product.color](https://schema.org/color).
141	ColorFamilies []string `protobuf:"bytes,1,rep,name=color_families,json=colorFamilies,proto3" json:"color_families,omitempty"`
142	// The color display names, which may be different from standard color family
143	// names, such as the color aliases used in the website frontend. Normally
144	// it is expected to have only 1 color. May consider using single "Mixed"
145	// instead of multiple values.
146	//
147	// A maximum of 5 colors are allowed. Each value must be a UTF-8 encoded
148	// string with a length limit of 128 characters. Otherwise, an
149	// INVALID_ARGUMENT error is returned.
150	//
151	// Google Merchant Center property
152	// [color](https://support.google.com/merchants/answer/6324487). Schema.org
153	// property [Product.color](https://schema.org/color).
154	Colors []string `protobuf:"bytes,2,rep,name=colors,proto3" json:"colors,omitempty"`
155}
156
157func (x *ColorInfo) Reset() {
158	*x = ColorInfo{}
159	if protoimpl.UnsafeEnabled {
160		mi := &file_google_cloud_retail_v2_common_proto_msgTypes[1]
161		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
162		ms.StoreMessageInfo(mi)
163	}
164}
165
166func (x *ColorInfo) String() string {
167	return protoimpl.X.MessageStringOf(x)
168}
169
170func (*ColorInfo) ProtoMessage() {}
171
172func (x *ColorInfo) ProtoReflect() protoreflect.Message {
173	mi := &file_google_cloud_retail_v2_common_proto_msgTypes[1]
174	if protoimpl.UnsafeEnabled && x != nil {
175		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
176		if ms.LoadMessageInfo() == nil {
177			ms.StoreMessageInfo(mi)
178		}
179		return ms
180	}
181	return mi.MessageOf(x)
182}
183
184// Deprecated: Use ColorInfo.ProtoReflect.Descriptor instead.
185func (*ColorInfo) Descriptor() ([]byte, []int) {
186	return file_google_cloud_retail_v2_common_proto_rawDescGZIP(), []int{1}
187}
188
189func (x *ColorInfo) GetColorFamilies() []string {
190	if x != nil {
191		return x.ColorFamilies
192	}
193	return nil
194}
195
196func (x *ColorInfo) GetColors() []string {
197	if x != nil {
198		return x.Colors
199	}
200	return nil
201}
202
203// A custom attribute that is not explicitly modeled in
204// [Product][google.cloud.retail.v2.Product].
205type CustomAttribute struct {
206	state         protoimpl.MessageState
207	sizeCache     protoimpl.SizeCache
208	unknownFields protoimpl.UnknownFields
209
210	// The textual values of this custom attribute. For example, `["yellow",
211	// "green"]` when the key is "color".
212	//
213	// At most 400 values are allowed. Empty values are not allowed. Each value
214	// must be a UTF-8 encoded string with a length limit of 256 characters.
215	// Otherwise, an INVALID_ARGUMENT error is returned.
216	//
217	// Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
218	// [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
219	// Otherwise, an INVALID_ARGUMENT error is returned.
220	Text []string `protobuf:"bytes,1,rep,name=text,proto3" json:"text,omitempty"`
221	// The numerical values of this custom attribute. For example, `[2.3, 15.4]`
222	// when the key is "lengths_cm".
223	//
224	// At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
225	// returned.
226	//
227	// Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
228	// [numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
229	// Otherwise, an INVALID_ARGUMENT error is returned.
230	Numbers []float64 `protobuf:"fixed64,2,rep,packed,name=numbers,proto3" json:"numbers,omitempty"`
231	// If true, custom attribute values are searchable by text queries in
232	// [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
233	//
234	// This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
235	//
236	// Only set if type [text][google.cloud.retail.v2.CustomAttribute.text] is
237	// set. Otherwise, a INVALID_ARGUMENT error is returned.
238	Searchable *bool `protobuf:"varint,3,opt,name=searchable,proto3,oneof" json:"searchable,omitempty"`
239	// If true, custom attribute values are indexed, so that it can be filtered,
240	// faceted or boosted in
241	// [SearchService.Search][google.cloud.retail.v2.SearchService.Search].
242	//
243	// This field is ignored in a [UserEvent][google.cloud.retail.v2.UserEvent].
244	//
245	// See [SearchRequest.filter][google.cloud.retail.v2.SearchRequest.filter],
246	// [SearchRequest.facet_specs][google.cloud.retail.v2.SearchRequest.facet_specs]
247	// and
248	// [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec]
249	// for more details.
250	Indexable *bool `protobuf:"varint,4,opt,name=indexable,proto3,oneof" json:"indexable,omitempty"`
251}
252
253func (x *CustomAttribute) Reset() {
254	*x = CustomAttribute{}
255	if protoimpl.UnsafeEnabled {
256		mi := &file_google_cloud_retail_v2_common_proto_msgTypes[2]
257		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
258		ms.StoreMessageInfo(mi)
259	}
260}
261
262func (x *CustomAttribute) String() string {
263	return protoimpl.X.MessageStringOf(x)
264}
265
266func (*CustomAttribute) ProtoMessage() {}
267
268func (x *CustomAttribute) ProtoReflect() protoreflect.Message {
269	mi := &file_google_cloud_retail_v2_common_proto_msgTypes[2]
270	if protoimpl.UnsafeEnabled && x != nil {
271		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
272		if ms.LoadMessageInfo() == nil {
273			ms.StoreMessageInfo(mi)
274		}
275		return ms
276	}
277	return mi.MessageOf(x)
278}
279
280// Deprecated: Use CustomAttribute.ProtoReflect.Descriptor instead.
281func (*CustomAttribute) Descriptor() ([]byte, []int) {
282	return file_google_cloud_retail_v2_common_proto_rawDescGZIP(), []int{2}
283}
284
285func (x *CustomAttribute) GetText() []string {
286	if x != nil {
287		return x.Text
288	}
289	return nil
290}
291
292func (x *CustomAttribute) GetNumbers() []float64 {
293	if x != nil {
294		return x.Numbers
295	}
296	return nil
297}
298
299func (x *CustomAttribute) GetSearchable() bool {
300	if x != nil && x.Searchable != nil {
301		return *x.Searchable
302	}
303	return false
304}
305
306func (x *CustomAttribute) GetIndexable() bool {
307	if x != nil && x.Indexable != nil {
308		return *x.Indexable
309	}
310	return false
311}
312
313// Fulfillment information, such as the store IDs for in-store pickup or region
314// IDs for different shipping methods.
315type FulfillmentInfo struct {
316	state         protoimpl.MessageState
317	sizeCache     protoimpl.SizeCache
318	unknownFields protoimpl.UnknownFields
319
320	// The fulfillment type, including commonly used types (such as pickup in
321	// store and same day delivery), and custom types. Customers have to map
322	// custom types to their display names before rendering UI.
323	//
324	// Supported values:
325	//
326	// * "pickup-in-store"
327	// * "ship-to-store"
328	// * "same-day-delivery"
329	// * "next-day-delivery"
330	// * "custom-type-1"
331	// * "custom-type-2"
332	// * "custom-type-3"
333	// * "custom-type-4"
334	// * "custom-type-5"
335	//
336	// If this field is set to an invalid value other than these, an
337	// INVALID_ARGUMENT error is returned.
338	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
339	// The IDs for this [type][google.cloud.retail.v2.FulfillmentInfo.type], such
340	// as the store IDs for
341	// [FulfillmentInfo.type.pickup-in-store][google.cloud.retail.v2.FulfillmentInfo.type]
342	// or the region IDs for
343	// [FulfillmentInfo.type.same-day-delivery][google.cloud.retail.v2.FulfillmentInfo.type].
344	//
345	// A maximum of 2000 values are allowed. Each value must be a string with a
346	// length limit of 10 characters, matching the pattern [a-zA-Z0-9_-]+, such as
347	// "store1" or "REGION-2". Otherwise, an INVALID_ARGUMENT error is returned.
348	PlaceIds []string `protobuf:"bytes,2,rep,name=place_ids,json=placeIds,proto3" json:"place_ids,omitempty"`
349}
350
351func (x *FulfillmentInfo) Reset() {
352	*x = FulfillmentInfo{}
353	if protoimpl.UnsafeEnabled {
354		mi := &file_google_cloud_retail_v2_common_proto_msgTypes[3]
355		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
356		ms.StoreMessageInfo(mi)
357	}
358}
359
360func (x *FulfillmentInfo) String() string {
361	return protoimpl.X.MessageStringOf(x)
362}
363
364func (*FulfillmentInfo) ProtoMessage() {}
365
366func (x *FulfillmentInfo) ProtoReflect() protoreflect.Message {
367	mi := &file_google_cloud_retail_v2_common_proto_msgTypes[3]
368	if protoimpl.UnsafeEnabled && x != nil {
369		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
370		if ms.LoadMessageInfo() == nil {
371			ms.StoreMessageInfo(mi)
372		}
373		return ms
374	}
375	return mi.MessageOf(x)
376}
377
378// Deprecated: Use FulfillmentInfo.ProtoReflect.Descriptor instead.
379func (*FulfillmentInfo) Descriptor() ([]byte, []int) {
380	return file_google_cloud_retail_v2_common_proto_rawDescGZIP(), []int{3}
381}
382
383func (x *FulfillmentInfo) GetType() string {
384	if x != nil {
385		return x.Type
386	}
387	return ""
388}
389
390func (x *FulfillmentInfo) GetPlaceIds() []string {
391	if x != nil {
392		return x.PlaceIds
393	}
394	return nil
395}
396
397// [Product][google.cloud.retail.v2.Product] thumbnail/detail image.
398type Image struct {
399	state         protoimpl.MessageState
400	sizeCache     protoimpl.SizeCache
401	unknownFields protoimpl.UnknownFields
402
403	// Required. URI of the image.
404	//
405	// This field must be a valid UTF-8 encoded URI with a length limit of 5,000
406	// characters. Otherwise, an INVALID_ARGUMENT error is returned.
407	//
408	// Google Merchant Center property
409	// [image_link](https://support.google.com/merchants/answer/6324350).
410	// Schema.org property [Product.image](https://schema.org/image).
411	Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
412	// Height of the image in number of pixels.
413	//
414	// This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is
415	// returned.
416	Height int32 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
417	// Width of the image in number of pixels.
418	//
419	// This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is
420	// returned.
421	Width int32 `protobuf:"varint,3,opt,name=width,proto3" json:"width,omitempty"`
422}
423
424func (x *Image) Reset() {
425	*x = Image{}
426	if protoimpl.UnsafeEnabled {
427		mi := &file_google_cloud_retail_v2_common_proto_msgTypes[4]
428		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
429		ms.StoreMessageInfo(mi)
430	}
431}
432
433func (x *Image) String() string {
434	return protoimpl.X.MessageStringOf(x)
435}
436
437func (*Image) ProtoMessage() {}
438
439func (x *Image) ProtoReflect() protoreflect.Message {
440	mi := &file_google_cloud_retail_v2_common_proto_msgTypes[4]
441	if protoimpl.UnsafeEnabled && x != nil {
442		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
443		if ms.LoadMessageInfo() == nil {
444			ms.StoreMessageInfo(mi)
445		}
446		return ms
447	}
448	return mi.MessageOf(x)
449}
450
451// Deprecated: Use Image.ProtoReflect.Descriptor instead.
452func (*Image) Descriptor() ([]byte, []int) {
453	return file_google_cloud_retail_v2_common_proto_rawDescGZIP(), []int{4}
454}
455
456func (x *Image) GetUri() string {
457	if x != nil {
458		return x.Uri
459	}
460	return ""
461}
462
463func (x *Image) GetHeight() int32 {
464	if x != nil {
465		return x.Height
466	}
467	return 0
468}
469
470func (x *Image) GetWidth() int32 {
471	if x != nil {
472		return x.Width
473	}
474	return 0
475}
476
477// A floating point interval.
478type Interval struct {
479	state         protoimpl.MessageState
480	sizeCache     protoimpl.SizeCache
481	unknownFields protoimpl.UnknownFields
482
483	// The lower bound of the interval. If neither of the min fields are set, then
484	// the lower bound is negative infinity.
485	//
486	// This field must be not larger than
487	// [max][google.cloud.retail.v2.Interval.max]. Otherwise, an INVALID_ARGUMENT
488	// error is returned.
489	//
490	// Types that are assignable to Min:
491	//	*Interval_Minimum
492	//	*Interval_ExclusiveMinimum
493	Min isInterval_Min `protobuf_oneof:"min"`
494	// The upper bound of the interval. If neither of the max fields are set, then
495	// the upper bound is positive infinity.
496	//
497	// This field must be not smaller than
498	// [min][google.cloud.retail.v2.Interval.min]. Otherwise, an INVALID_ARGUMENT
499	// error is returned.
500	//
501	// Types that are assignable to Max:
502	//	*Interval_Maximum
503	//	*Interval_ExclusiveMaximum
504	Max isInterval_Max `protobuf_oneof:"max"`
505}
506
507func (x *Interval) Reset() {
508	*x = Interval{}
509	if protoimpl.UnsafeEnabled {
510		mi := &file_google_cloud_retail_v2_common_proto_msgTypes[5]
511		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
512		ms.StoreMessageInfo(mi)
513	}
514}
515
516func (x *Interval) String() string {
517	return protoimpl.X.MessageStringOf(x)
518}
519
520func (*Interval) ProtoMessage() {}
521
522func (x *Interval) ProtoReflect() protoreflect.Message {
523	mi := &file_google_cloud_retail_v2_common_proto_msgTypes[5]
524	if protoimpl.UnsafeEnabled && x != nil {
525		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
526		if ms.LoadMessageInfo() == nil {
527			ms.StoreMessageInfo(mi)
528		}
529		return ms
530	}
531	return mi.MessageOf(x)
532}
533
534// Deprecated: Use Interval.ProtoReflect.Descriptor instead.
535func (*Interval) Descriptor() ([]byte, []int) {
536	return file_google_cloud_retail_v2_common_proto_rawDescGZIP(), []int{5}
537}
538
539func (m *Interval) GetMin() isInterval_Min {
540	if m != nil {
541		return m.Min
542	}
543	return nil
544}
545
546func (x *Interval) GetMinimum() float64 {
547	if x, ok := x.GetMin().(*Interval_Minimum); ok {
548		return x.Minimum
549	}
550	return 0
551}
552
553func (x *Interval) GetExclusiveMinimum() float64 {
554	if x, ok := x.GetMin().(*Interval_ExclusiveMinimum); ok {
555		return x.ExclusiveMinimum
556	}
557	return 0
558}
559
560func (m *Interval) GetMax() isInterval_Max {
561	if m != nil {
562		return m.Max
563	}
564	return nil
565}
566
567func (x *Interval) GetMaximum() float64 {
568	if x, ok := x.GetMax().(*Interval_Maximum); ok {
569		return x.Maximum
570	}
571	return 0
572}
573
574func (x *Interval) GetExclusiveMaximum() float64 {
575	if x, ok := x.GetMax().(*Interval_ExclusiveMaximum); ok {
576		return x.ExclusiveMaximum
577	}
578	return 0
579}
580
581type isInterval_Min interface {
582	isInterval_Min()
583}
584
585type Interval_Minimum struct {
586	// Inclusive lower bound.
587	Minimum float64 `protobuf:"fixed64,1,opt,name=minimum,proto3,oneof"`
588}
589
590type Interval_ExclusiveMinimum struct {
591	// Exclusive lower bound.
592	ExclusiveMinimum float64 `protobuf:"fixed64,2,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3,oneof"`
593}
594
595func (*Interval_Minimum) isInterval_Min() {}
596
597func (*Interval_ExclusiveMinimum) isInterval_Min() {}
598
599type isInterval_Max interface {
600	isInterval_Max()
601}
602
603type Interval_Maximum struct {
604	// Inclusive upper bound.
605	Maximum float64 `protobuf:"fixed64,3,opt,name=maximum,proto3,oneof"`
606}
607
608type Interval_ExclusiveMaximum struct {
609	// Exclusive upper bound.
610	ExclusiveMaximum float64 `protobuf:"fixed64,4,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3,oneof"`
611}
612
613func (*Interval_Maximum) isInterval_Max() {}
614
615func (*Interval_ExclusiveMaximum) isInterval_Max() {}
616
617// The price information of a [Product][google.cloud.retail.v2.Product].
618type PriceInfo struct {
619	state         protoimpl.MessageState
620	sizeCache     protoimpl.SizeCache
621	unknownFields protoimpl.UnknownFields
622
623	// The 3-letter currency code defined in [ISO
624	// 4217](https://www.iso.org/iso-4217-currency-codes.html).
625	//
626	// If this field is an unrecognizable currency code, an INVALID_ARGUMENT
627	// error is returned.
628	//
629	// The [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT]
630	// [Product][google.cloud.retail.v2.Product]s with the same
631	// [Product.primary_product_id][google.cloud.retail.v2.Product.primary_product_id]
632	// must share the same
633	// [currency_code][google.cloud.retail.v2.PriceInfo.currency_code]. Otherwise,
634	// a FAILED_PRECONDITION error is returned.
635	CurrencyCode string `protobuf:"bytes,1,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"`
636	// Price of the product.
637	//
638	// Google Merchant Center property
639	// [price](https://support.google.com/merchants/answer/6324371). Schema.org
640	// property [Offer.priceSpecification](https://schema.org/priceSpecification).
641	Price float32 `protobuf:"fixed32,2,opt,name=price,proto3" json:"price,omitempty"`
642	// Price of the product without any discount. If zero, by default set to be
643	// the [price][google.cloud.retail.v2.PriceInfo.price].
644	OriginalPrice float32 `protobuf:"fixed32,3,opt,name=original_price,json=originalPrice,proto3" json:"original_price,omitempty"`
645	// The costs associated with the sale of a particular product. Used for gross
646	// profit reporting.
647	//
648	// * Profit = [price][google.cloud.retail.v2.PriceInfo.price] -
649	// [cost][google.cloud.retail.v2.PriceInfo.cost]
650	//
651	// Google Merchant Center property
652	// [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
653	Cost float32 `protobuf:"fixed32,4,opt,name=cost,proto3" json:"cost,omitempty"`
654	// The timestamp when the [price][google.cloud.retail.v2.PriceInfo.price]
655	// starts to be effective. This can be set as a future timestamp, and the
656	// [price][google.cloud.retail.v2.PriceInfo.price] is only used for search
657	// after
658	// [price_effective_time][google.cloud.retail.v2.PriceInfo.price_effective_time].
659	// If so, the
660	// [original_price][google.cloud.retail.v2.PriceInfo.original_price] must be
661	// set and [original_price][google.cloud.retail.v2.PriceInfo.original_price]
662	// is used before
663	// [price_effective_time][google.cloud.retail.v2.PriceInfo.price_effective_time].
664	//
665	// Do not set if [price][google.cloud.retail.v2.PriceInfo.price] is always
666	// effective because it will cause additional latency during search.
667	PriceEffectiveTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=price_effective_time,json=priceEffectiveTime,proto3" json:"price_effective_time,omitempty"`
668	// The timestamp when the [price][google.cloud.retail.v2.PriceInfo.price]
669	// stops to be effective. The [price][google.cloud.retail.v2.PriceInfo.price]
670	// is used for search before
671	// [price_expire_time][google.cloud.retail.v2.PriceInfo.price_expire_time]. If
672	// this field is set, the
673	// [original_price][google.cloud.retail.v2.PriceInfo.original_price] must be
674	// set and [original_price][google.cloud.retail.v2.PriceInfo.original_price]
675	// is used after
676	// [price_expire_time][google.cloud.retail.v2.PriceInfo.price_expire_time].
677	//
678	// Do not set if [price][google.cloud.retail.v2.PriceInfo.price] is always
679	// effective because it will cause additional latency during search.
680	PriceExpireTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=price_expire_time,json=priceExpireTime,proto3" json:"price_expire_time,omitempty"`
681	// Output only. The price range of all the child
682	// [Product.Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT]
683	// [Product][google.cloud.retail.v2.Product]s grouped together on the
684	// [Product.Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY]
685	// [Product][google.cloud.retail.v2.Product]. Only populated for
686	// [Product.Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY]
687	// [Product][google.cloud.retail.v2.Product]s.
688	//
689	// Note: This field is OUTPUT_ONLY for
690	// [ProductService.GetProduct][google.cloud.retail.v2.ProductService.GetProduct].
691	// Do not set this field in API requests.
692	PriceRange *PriceInfo_PriceRange `protobuf:"bytes,7,opt,name=price_range,json=priceRange,proto3" json:"price_range,omitempty"`
693}
694
695func (x *PriceInfo) Reset() {
696	*x = PriceInfo{}
697	if protoimpl.UnsafeEnabled {
698		mi := &file_google_cloud_retail_v2_common_proto_msgTypes[6]
699		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
700		ms.StoreMessageInfo(mi)
701	}
702}
703
704func (x *PriceInfo) String() string {
705	return protoimpl.X.MessageStringOf(x)
706}
707
708func (*PriceInfo) ProtoMessage() {}
709
710func (x *PriceInfo) ProtoReflect() protoreflect.Message {
711	mi := &file_google_cloud_retail_v2_common_proto_msgTypes[6]
712	if protoimpl.UnsafeEnabled && x != nil {
713		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
714		if ms.LoadMessageInfo() == nil {
715			ms.StoreMessageInfo(mi)
716		}
717		return ms
718	}
719	return mi.MessageOf(x)
720}
721
722// Deprecated: Use PriceInfo.ProtoReflect.Descriptor instead.
723func (*PriceInfo) Descriptor() ([]byte, []int) {
724	return file_google_cloud_retail_v2_common_proto_rawDescGZIP(), []int{6}
725}
726
727func (x *PriceInfo) GetCurrencyCode() string {
728	if x != nil {
729		return x.CurrencyCode
730	}
731	return ""
732}
733
734func (x *PriceInfo) GetPrice() float32 {
735	if x != nil {
736		return x.Price
737	}
738	return 0
739}
740
741func (x *PriceInfo) GetOriginalPrice() float32 {
742	if x != nil {
743		return x.OriginalPrice
744	}
745	return 0
746}
747
748func (x *PriceInfo) GetCost() float32 {
749	if x != nil {
750		return x.Cost
751	}
752	return 0
753}
754
755func (x *PriceInfo) GetPriceEffectiveTime() *timestamppb.Timestamp {
756	if x != nil {
757		return x.PriceEffectiveTime
758	}
759	return nil
760}
761
762func (x *PriceInfo) GetPriceExpireTime() *timestamppb.Timestamp {
763	if x != nil {
764		return x.PriceExpireTime
765	}
766	return nil
767}
768
769func (x *PriceInfo) GetPriceRange() *PriceInfo_PriceRange {
770	if x != nil {
771		return x.PriceRange
772	}
773	return nil
774}
775
776// The rating of a [Product][google.cloud.retail.v2.Product].
777type Rating struct {
778	state         protoimpl.MessageState
779	sizeCache     protoimpl.SizeCache
780	unknownFields protoimpl.UnknownFields
781
782	// The total number of ratings. This value is independent of the value of
783	// [rating_histogram][google.cloud.retail.v2.Rating.rating_histogram].
784	//
785	// This value must be nonnegative. Otherwise, an INVALID_ARGUMENT error is
786	// returned.
787	RatingCount int32 `protobuf:"varint,1,opt,name=rating_count,json=ratingCount,proto3" json:"rating_count,omitempty"`
788	// The average rating of the [Product][google.cloud.retail.v2.Product].
789	//
790	// The rating is scaled at 1-5. Otherwise, an INVALID_ARGUMENT error is
791	// returned.
792	AverageRating float32 `protobuf:"fixed32,2,opt,name=average_rating,json=averageRating,proto3" json:"average_rating,omitempty"`
793	// List of rating counts per rating value (index = rating - 1). The list is
794	// empty if there is no rating. If the list is non-empty, its size is
795	// always 5. Otherwise, an INVALID_ARGUMENT error is returned.
796	//
797	// For example, [41, 14, 13, 47, 303]. It means that the
798	// [Product][google.cloud.retail.v2.Product] got 41 ratings with 1 star, 14
799	// ratings with 2 star, and so on.
800	RatingHistogram []int32 `protobuf:"varint,3,rep,packed,name=rating_histogram,json=ratingHistogram,proto3" json:"rating_histogram,omitempty"`
801}
802
803func (x *Rating) Reset() {
804	*x = Rating{}
805	if protoimpl.UnsafeEnabled {
806		mi := &file_google_cloud_retail_v2_common_proto_msgTypes[7]
807		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
808		ms.StoreMessageInfo(mi)
809	}
810}
811
812func (x *Rating) String() string {
813	return protoimpl.X.MessageStringOf(x)
814}
815
816func (*Rating) ProtoMessage() {}
817
818func (x *Rating) ProtoReflect() protoreflect.Message {
819	mi := &file_google_cloud_retail_v2_common_proto_msgTypes[7]
820	if protoimpl.UnsafeEnabled && x != nil {
821		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
822		if ms.LoadMessageInfo() == nil {
823			ms.StoreMessageInfo(mi)
824		}
825		return ms
826	}
827	return mi.MessageOf(x)
828}
829
830// Deprecated: Use Rating.ProtoReflect.Descriptor instead.
831func (*Rating) Descriptor() ([]byte, []int) {
832	return file_google_cloud_retail_v2_common_proto_rawDescGZIP(), []int{7}
833}
834
835func (x *Rating) GetRatingCount() int32 {
836	if x != nil {
837		return x.RatingCount
838	}
839	return 0
840}
841
842func (x *Rating) GetAverageRating() float32 {
843	if x != nil {
844		return x.AverageRating
845	}
846	return 0
847}
848
849func (x *Rating) GetRatingHistogram() []int32 {
850	if x != nil {
851		return x.RatingHistogram
852	}
853	return nil
854}
855
856// Information of an end user.
857type UserInfo struct {
858	state         protoimpl.MessageState
859	sizeCache     protoimpl.SizeCache
860	unknownFields protoimpl.UnknownFields
861
862	// Highly recommended for logged-in users. Unique identifier for logged-in
863	// user, such as a user name.
864	//
865	// The field must be a UTF-8 encoded string with a length limit of 128
866	// characters. Otherwise, an INVALID_ARGUMENT error is returned.
867	UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
868	// The end user's IP address. Required for getting
869	// [SearchResponse.sponsored_results][google.cloud.retail.v2.SearchResponse.sponsored_results].
870	// This field is used to extract location information for personalization.
871	//
872	// This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6
873	// address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an
874	// INVALID_ARGUMENT error is returned.
875	//
876	// This should not be set when using the JavaScript tag in
877	// [UserEventService.CollectUserEvent][google.cloud.retail.v2.UserEventService.CollectUserEvent]
878	// or if
879	// [direct_user_request][google.cloud.retail.v2.UserInfo.direct_user_request]
880	// is set.
881	IpAddress string `protobuf:"bytes,2,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
882	// User agent as included in the HTTP header. Required for getting
883	// [SearchResponse.sponsored_results][google.cloud.retail.v2.SearchResponse.sponsored_results].
884	//
885	// The field must be a UTF-8 encoded string with a length limit of 1,000
886	// characters. Otherwise, an INVALID_ARGUMENT error is returned.
887	//
888	// This should not be set when using the client side event reporting with
889	// GTM or JavaScript tag in
890	// [UserEventService.CollectUserEvent][google.cloud.retail.v2.UserEventService.CollectUserEvent]
891	// or if
892	// [direct_user_request][google.cloud.retail.v2.UserInfo.direct_user_request]
893	// is set.
894	UserAgent string `protobuf:"bytes,3,opt,name=user_agent,json=userAgent,proto3" json:"user_agent,omitempty"`
895	// True if the request is made directly from the end user, in which case the
896	// [ip_address][google.cloud.retail.v2.UserInfo.ip_address] and
897	// [user_agent][google.cloud.retail.v2.UserInfo.user_agent] can be populated
898	// from the HTTP request. This flag should be set only if the API request is
899	// made directly from the end user such as a mobile app (and not if a gateway
900	// or a server is processing and pushing the user events).
901	//
902	// This should not be set when using the JavaScript tag in
903	// [UserEventService.CollectUserEvent][google.cloud.retail.v2.UserEventService.CollectUserEvent].
904	DirectUserRequest bool `protobuf:"varint,4,opt,name=direct_user_request,json=directUserRequest,proto3" json:"direct_user_request,omitempty"`
905}
906
907func (x *UserInfo) Reset() {
908	*x = UserInfo{}
909	if protoimpl.UnsafeEnabled {
910		mi := &file_google_cloud_retail_v2_common_proto_msgTypes[8]
911		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
912		ms.StoreMessageInfo(mi)
913	}
914}
915
916func (x *UserInfo) String() string {
917	return protoimpl.X.MessageStringOf(x)
918}
919
920func (*UserInfo) ProtoMessage() {}
921
922func (x *UserInfo) ProtoReflect() protoreflect.Message {
923	mi := &file_google_cloud_retail_v2_common_proto_msgTypes[8]
924	if protoimpl.UnsafeEnabled && x != nil {
925		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
926		if ms.LoadMessageInfo() == nil {
927			ms.StoreMessageInfo(mi)
928		}
929		return ms
930	}
931	return mi.MessageOf(x)
932}
933
934// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead.
935func (*UserInfo) Descriptor() ([]byte, []int) {
936	return file_google_cloud_retail_v2_common_proto_rawDescGZIP(), []int{8}
937}
938
939func (x *UserInfo) GetUserId() string {
940	if x != nil {
941		return x.UserId
942	}
943	return ""
944}
945
946func (x *UserInfo) GetIpAddress() string {
947	if x != nil {
948		return x.IpAddress
949	}
950	return ""
951}
952
953func (x *UserInfo) GetUserAgent() string {
954	if x != nil {
955		return x.UserAgent
956	}
957	return ""
958}
959
960func (x *UserInfo) GetDirectUserRequest() bool {
961	if x != nil {
962		return x.DirectUserRequest
963	}
964	return false
965}
966
967// Promotion information.
968type Promotion struct {
969	state         protoimpl.MessageState
970	sizeCache     protoimpl.SizeCache
971	unknownFields protoimpl.UnknownFields
972
973	// ID of the promotion. For example, "free gift".
974	//
975	// The value value must be a UTF-8 encoded string with a length limit of 128
976	// characters, and match the pattern: [a-zA-Z][a-zA-Z0-9_]*. For example,
977	// id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is
978	// returned.
979	//
980	// Google Merchant Center property
981	// [promotion](https://support.google.com/merchants/answer/7050148).
982	PromotionId string `protobuf:"bytes,1,opt,name=promotion_id,json=promotionId,proto3" json:"promotion_id,omitempty"`
983}
984
985func (x *Promotion) Reset() {
986	*x = Promotion{}
987	if protoimpl.UnsafeEnabled {
988		mi := &file_google_cloud_retail_v2_common_proto_msgTypes[9]
989		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
990		ms.StoreMessageInfo(mi)
991	}
992}
993
994func (x *Promotion) String() string {
995	return protoimpl.X.MessageStringOf(x)
996}
997
998func (*Promotion) ProtoMessage() {}
999
1000func (x *Promotion) ProtoReflect() protoreflect.Message {
1001	mi := &file_google_cloud_retail_v2_common_proto_msgTypes[9]
1002	if protoimpl.UnsafeEnabled && x != nil {
1003		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1004		if ms.LoadMessageInfo() == nil {
1005			ms.StoreMessageInfo(mi)
1006		}
1007		return ms
1008	}
1009	return mi.MessageOf(x)
1010}
1011
1012// Deprecated: Use Promotion.ProtoReflect.Descriptor instead.
1013func (*Promotion) Descriptor() ([]byte, []int) {
1014	return file_google_cloud_retail_v2_common_proto_rawDescGZIP(), []int{9}
1015}
1016
1017func (x *Promotion) GetPromotionId() string {
1018	if x != nil {
1019		return x.PromotionId
1020	}
1021	return ""
1022}
1023
1024// The price range of all
1025// [variant][google.cloud.retail.v2.Product.Type.VARIANT]
1026// [Product][google.cloud.retail.v2.Product] having the same
1027// [Product.primary_product_id][google.cloud.retail.v2.Product.primary_product_id].
1028type PriceInfo_PriceRange struct {
1029	state         protoimpl.MessageState
1030	sizeCache     protoimpl.SizeCache
1031	unknownFields protoimpl.UnknownFields
1032
1033	// The inclusive
1034	// [Product.pricing_info.price][google.cloud.retail.v2.PriceInfo.price]
1035	// interval of all [variant][google.cloud.retail.v2.Product.Type.VARIANT]
1036	// [Product][google.cloud.retail.v2.Product] having the same
1037	// [Product.primary_product_id][google.cloud.retail.v2.Product.primary_product_id].
1038	Price *Interval `protobuf:"bytes,1,opt,name=price,proto3" json:"price,omitempty"`
1039	// The inclusive
1040	// [Product.pricing_info.original_price][google.cloud.retail.v2.PriceInfo.original_price]
1041	// internal of all [variant][google.cloud.retail.v2.Product.Type.VARIANT]
1042	// [Product][google.cloud.retail.v2.Product] having the same
1043	// [Product.primary_product_id][google.cloud.retail.v2.Product.primary_product_id].
1044	OriginalPrice *Interval `protobuf:"bytes,2,opt,name=original_price,json=originalPrice,proto3" json:"original_price,omitempty"`
1045}
1046
1047func (x *PriceInfo_PriceRange) Reset() {
1048	*x = PriceInfo_PriceRange{}
1049	if protoimpl.UnsafeEnabled {
1050		mi := &file_google_cloud_retail_v2_common_proto_msgTypes[10]
1051		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1052		ms.StoreMessageInfo(mi)
1053	}
1054}
1055
1056func (x *PriceInfo_PriceRange) String() string {
1057	return protoimpl.X.MessageStringOf(x)
1058}
1059
1060func (*PriceInfo_PriceRange) ProtoMessage() {}
1061
1062func (x *PriceInfo_PriceRange) ProtoReflect() protoreflect.Message {
1063	mi := &file_google_cloud_retail_v2_common_proto_msgTypes[10]
1064	if protoimpl.UnsafeEnabled && x != nil {
1065		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1066		if ms.LoadMessageInfo() == nil {
1067			ms.StoreMessageInfo(mi)
1068		}
1069		return ms
1070	}
1071	return mi.MessageOf(x)
1072}
1073
1074// Deprecated: Use PriceInfo_PriceRange.ProtoReflect.Descriptor instead.
1075func (*PriceInfo_PriceRange) Descriptor() ([]byte, []int) {
1076	return file_google_cloud_retail_v2_common_proto_rawDescGZIP(), []int{6, 0}
1077}
1078
1079func (x *PriceInfo_PriceRange) GetPrice() *Interval {
1080	if x != nil {
1081		return x.Price
1082	}
1083	return nil
1084}
1085
1086func (x *PriceInfo_PriceRange) GetOriginalPrice() *Interval {
1087	if x != nil {
1088		return x.OriginalPrice
1089	}
1090	return nil
1091}
1092
1093var File_google_cloud_retail_v2_common_proto protoreflect.FileDescriptor
1094
1095var file_google_cloud_retail_v2_common_proto_rawDesc = []byte{
1096	0x0a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
1097	0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
1098	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
1099	0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x1a, 0x1c, 0x67,
1100	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
1101	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f,
1102	0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65,
1103	0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f,
1104	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69,
1105	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x43, 0x0a,
1106	0x08, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x65, 0x6e,
1107	0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x67, 0x65, 0x6e, 0x64,
1108	0x65, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x67, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70,
1109	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75,
1110	0x70, 0x73, 0x22, 0x4a, 0x0a, 0x09, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12,
1111	0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65,
1112	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x46, 0x61,
1113	0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73,
1114	0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x22, 0xa4,
1115	0x01, 0x0a, 0x0f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
1116	0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09,
1117	0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
1118	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x01, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73,
1119	0x12, 0x23, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03,
1120	0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x61, 0x62,
1121	0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x61, 0x62,
1122	0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65,
1123	0x78, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x65, 0x61,
1124	0x72, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x64, 0x65,
1125	0x78, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x42, 0x0a, 0x0f, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c,
1126	0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
1127	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09,
1128	0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52,
1129	0x08, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x49, 0x64, 0x73, 0x22, 0x4c, 0x0a, 0x05, 0x49, 0x6d, 0x61,
1130	0x67, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
1131	0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69,
1132	0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68,
1133	0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
1134	0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0xae, 0x01, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65,
1135	0x72, 0x76, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18,
1136	0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d,
1137	0x12, 0x2d, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x69,
1138	0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x10, 0x65,
1139	0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12,
1140	0x1a, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01,
1141	0x48, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2d, 0x0a, 0x11, 0x65,
1142	0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d,
1143	0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73,
1144	0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x42, 0x05, 0x0a, 0x03, 0x6d, 0x69,
1145	0x6e, 0x42, 0x05, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x22, 0xfb, 0x03, 0x0a, 0x09, 0x50, 0x72, 0x69,
1146	0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e,
1147	0x63, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63,
1148	0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70,
1149	0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63,
1150	0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72,
1151	0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69,
1152	0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74,
1153	0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x14,
1154	0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
1155	0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
1156	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
1157	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x70, 0x72, 0x69, 0x63, 0x65, 0x45, 0x66, 0x66,
1158	0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x70, 0x72,
1159	0x69, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
1160	0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
1161	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
1162	0x70, 0x52, 0x0f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69,
1163	0x6d, 0x65, 0x12, 0x52, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67,
1164	0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1165	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32,
1166	0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65,
1167	0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x63,
1168	0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x1a, 0x8d, 0x01, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x63, 0x65,
1169	0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01,
1170	0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
1171	0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e,
1172	0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x47, 0x0a,
1173	0x0e, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18,
1174	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
1175	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x49,
1176	0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61,
1177	0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x7d, 0x0a, 0x06, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67,
1178	0x12, 0x21, 0x0a, 0x0c, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
1179	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f,
1180	0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72,
1181	0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x61, 0x76, 0x65,
1182	0x72, 0x61, 0x67, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x61,
1183	0x74, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x03,
1184	0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x69, 0x73, 0x74,
1185	0x6f, 0x67, 0x72, 0x61, 0x6d, 0x22, 0x91, 0x01, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e,
1186	0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
1187	0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x69,
1188	0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
1189	0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73,
1190	0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
1191	0x75, 0x73, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x69, 0x72,
1192	0x65, 0x63, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
1193	0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x73,
1194	0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2e, 0x0a, 0x09, 0x50, 0x72, 0x6f,
1195	0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74,
1196	0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72,
1197	0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x42, 0xc0, 0x01, 0x0a, 0x1a, 0x63, 0x6f,
1198	0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
1199	0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x42, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
1200	0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
1201	0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72,
1202	0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63,
1203	0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x3b, 0x72,
1204	0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02,
1205	0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65,
1206	0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1207	0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32,
1208	0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64,
1209	0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72,
1210	0x6f, 0x74, 0x6f, 0x33,
1211}
1212
1213var (
1214	file_google_cloud_retail_v2_common_proto_rawDescOnce sync.Once
1215	file_google_cloud_retail_v2_common_proto_rawDescData = file_google_cloud_retail_v2_common_proto_rawDesc
1216)
1217
1218func file_google_cloud_retail_v2_common_proto_rawDescGZIP() []byte {
1219	file_google_cloud_retail_v2_common_proto_rawDescOnce.Do(func() {
1220		file_google_cloud_retail_v2_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2_common_proto_rawDescData)
1221	})
1222	return file_google_cloud_retail_v2_common_proto_rawDescData
1223}
1224
1225var file_google_cloud_retail_v2_common_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
1226var file_google_cloud_retail_v2_common_proto_goTypes = []interface{}{
1227	(*Audience)(nil),              // 0: google.cloud.retail.v2.Audience
1228	(*ColorInfo)(nil),             // 1: google.cloud.retail.v2.ColorInfo
1229	(*CustomAttribute)(nil),       // 2: google.cloud.retail.v2.CustomAttribute
1230	(*FulfillmentInfo)(nil),       // 3: google.cloud.retail.v2.FulfillmentInfo
1231	(*Image)(nil),                 // 4: google.cloud.retail.v2.Image
1232	(*Interval)(nil),              // 5: google.cloud.retail.v2.Interval
1233	(*PriceInfo)(nil),             // 6: google.cloud.retail.v2.PriceInfo
1234	(*Rating)(nil),                // 7: google.cloud.retail.v2.Rating
1235	(*UserInfo)(nil),              // 8: google.cloud.retail.v2.UserInfo
1236	(*Promotion)(nil),             // 9: google.cloud.retail.v2.Promotion
1237	(*PriceInfo_PriceRange)(nil),  // 10: google.cloud.retail.v2.PriceInfo.PriceRange
1238	(*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp
1239}
1240var file_google_cloud_retail_v2_common_proto_depIdxs = []int32{
1241	11, // 0: google.cloud.retail.v2.PriceInfo.price_effective_time:type_name -> google.protobuf.Timestamp
1242	11, // 1: google.cloud.retail.v2.PriceInfo.price_expire_time:type_name -> google.protobuf.Timestamp
1243	10, // 2: google.cloud.retail.v2.PriceInfo.price_range:type_name -> google.cloud.retail.v2.PriceInfo.PriceRange
1244	5,  // 3: google.cloud.retail.v2.PriceInfo.PriceRange.price:type_name -> google.cloud.retail.v2.Interval
1245	5,  // 4: google.cloud.retail.v2.PriceInfo.PriceRange.original_price:type_name -> google.cloud.retail.v2.Interval
1246	5,  // [5:5] is the sub-list for method output_type
1247	5,  // [5:5] is the sub-list for method input_type
1248	5,  // [5:5] is the sub-list for extension type_name
1249	5,  // [5:5] is the sub-list for extension extendee
1250	0,  // [0:5] is the sub-list for field type_name
1251}
1252
1253func init() { file_google_cloud_retail_v2_common_proto_init() }
1254func file_google_cloud_retail_v2_common_proto_init() {
1255	if File_google_cloud_retail_v2_common_proto != nil {
1256		return
1257	}
1258	if !protoimpl.UnsafeEnabled {
1259		file_google_cloud_retail_v2_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
1260			switch v := v.(*Audience); i {
1261			case 0:
1262				return &v.state
1263			case 1:
1264				return &v.sizeCache
1265			case 2:
1266				return &v.unknownFields
1267			default:
1268				return nil
1269			}
1270		}
1271		file_google_cloud_retail_v2_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
1272			switch v := v.(*ColorInfo); i {
1273			case 0:
1274				return &v.state
1275			case 1:
1276				return &v.sizeCache
1277			case 2:
1278				return &v.unknownFields
1279			default:
1280				return nil
1281			}
1282		}
1283		file_google_cloud_retail_v2_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
1284			switch v := v.(*CustomAttribute); i {
1285			case 0:
1286				return &v.state
1287			case 1:
1288				return &v.sizeCache
1289			case 2:
1290				return &v.unknownFields
1291			default:
1292				return nil
1293			}
1294		}
1295		file_google_cloud_retail_v2_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
1296			switch v := v.(*FulfillmentInfo); i {
1297			case 0:
1298				return &v.state
1299			case 1:
1300				return &v.sizeCache
1301			case 2:
1302				return &v.unknownFields
1303			default:
1304				return nil
1305			}
1306		}
1307		file_google_cloud_retail_v2_common_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
1308			switch v := v.(*Image); i {
1309			case 0:
1310				return &v.state
1311			case 1:
1312				return &v.sizeCache
1313			case 2:
1314				return &v.unknownFields
1315			default:
1316				return nil
1317			}
1318		}
1319		file_google_cloud_retail_v2_common_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
1320			switch v := v.(*Interval); i {
1321			case 0:
1322				return &v.state
1323			case 1:
1324				return &v.sizeCache
1325			case 2:
1326				return &v.unknownFields
1327			default:
1328				return nil
1329			}
1330		}
1331		file_google_cloud_retail_v2_common_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
1332			switch v := v.(*PriceInfo); i {
1333			case 0:
1334				return &v.state
1335			case 1:
1336				return &v.sizeCache
1337			case 2:
1338				return &v.unknownFields
1339			default:
1340				return nil
1341			}
1342		}
1343		file_google_cloud_retail_v2_common_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
1344			switch v := v.(*Rating); i {
1345			case 0:
1346				return &v.state
1347			case 1:
1348				return &v.sizeCache
1349			case 2:
1350				return &v.unknownFields
1351			default:
1352				return nil
1353			}
1354		}
1355		file_google_cloud_retail_v2_common_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
1356			switch v := v.(*UserInfo); i {
1357			case 0:
1358				return &v.state
1359			case 1:
1360				return &v.sizeCache
1361			case 2:
1362				return &v.unknownFields
1363			default:
1364				return nil
1365			}
1366		}
1367		file_google_cloud_retail_v2_common_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
1368			switch v := v.(*Promotion); i {
1369			case 0:
1370				return &v.state
1371			case 1:
1372				return &v.sizeCache
1373			case 2:
1374				return &v.unknownFields
1375			default:
1376				return nil
1377			}
1378		}
1379		file_google_cloud_retail_v2_common_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
1380			switch v := v.(*PriceInfo_PriceRange); i {
1381			case 0:
1382				return &v.state
1383			case 1:
1384				return &v.sizeCache
1385			case 2:
1386				return &v.unknownFields
1387			default:
1388				return nil
1389			}
1390		}
1391	}
1392	file_google_cloud_retail_v2_common_proto_msgTypes[2].OneofWrappers = []interface{}{}
1393	file_google_cloud_retail_v2_common_proto_msgTypes[5].OneofWrappers = []interface{}{
1394		(*Interval_Minimum)(nil),
1395		(*Interval_ExclusiveMinimum)(nil),
1396		(*Interval_Maximum)(nil),
1397		(*Interval_ExclusiveMaximum)(nil),
1398	}
1399	type x struct{}
1400	out := protoimpl.TypeBuilder{
1401		File: protoimpl.DescBuilder{
1402			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1403			RawDescriptor: file_google_cloud_retail_v2_common_proto_rawDesc,
1404			NumEnums:      0,
1405			NumMessages:   11,
1406			NumExtensions: 0,
1407			NumServices:   0,
1408		},
1409		GoTypes:           file_google_cloud_retail_v2_common_proto_goTypes,
1410		DependencyIndexes: file_google_cloud_retail_v2_common_proto_depIdxs,
1411		MessageInfos:      file_google_cloud_retail_v2_common_proto_msgTypes,
1412	}.Build()
1413	File_google_cloud_retail_v2_common_proto = out.File
1414	file_google_cloud_retail_v2_common_proto_rawDesc = nil
1415	file_google_cloud_retail_v2_common_proto_goTypes = nil
1416	file_google_cloud_retail_v2_common_proto_depIdxs = nil
1417}
1418