1// Copyright 2020 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.25.0
18// 	protoc        v3.13.0
19// source: google/cloud/retail/v2/product.proto
20
21package retail
22
23import (
24	reflect "reflect"
25	sync "sync"
26
27	proto "github.com/golang/protobuf/proto"
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	_ "google.golang.org/protobuf/types/known/fieldmaskpb"
32	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
33	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
34)
35
36const (
37	// Verify that this generated code is sufficiently up-to-date.
38	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
39	// Verify that runtime/protoimpl is sufficiently up-to-date.
40	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
41)
42
43// This is a compile-time assertion that a sufficiently up-to-date version
44// of the legacy proto package is being used.
45const _ = proto.ProtoPackageIsVersion4
46
47// Product availability. If this field is unspecified, the product is
48// assumed to be in stock.
49type Product_Availability int32
50
51const (
52	// Default product availability. Default to
53	// [Availability.IN_STOCK][google.cloud.retail.v2.Product.Availability.IN_STOCK]
54	// if unset.
55	Product_AVAILABILITY_UNSPECIFIED Product_Availability = 0
56	// Product in stock.
57	Product_IN_STOCK Product_Availability = 1
58	// Product out of stock.
59	Product_OUT_OF_STOCK Product_Availability = 2
60	// Product that is in pre-order state.
61	Product_PREORDER Product_Availability = 3
62	// Product that is back-ordered (i.e. temporarily out of stock).
63	Product_BACKORDER Product_Availability = 4
64)
65
66// Enum value maps for Product_Availability.
67var (
68	Product_Availability_name = map[int32]string{
69		0: "AVAILABILITY_UNSPECIFIED",
70		1: "IN_STOCK",
71		2: "OUT_OF_STOCK",
72		3: "PREORDER",
73		4: "BACKORDER",
74	}
75	Product_Availability_value = map[string]int32{
76		"AVAILABILITY_UNSPECIFIED": 0,
77		"IN_STOCK":                 1,
78		"OUT_OF_STOCK":             2,
79		"PREORDER":                 3,
80		"BACKORDER":                4,
81	}
82)
83
84func (x Product_Availability) Enum() *Product_Availability {
85	p := new(Product_Availability)
86	*p = x
87	return p
88}
89
90func (x Product_Availability) String() string {
91	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
92}
93
94func (Product_Availability) Descriptor() protoreflect.EnumDescriptor {
95	return file_google_cloud_retail_v2_product_proto_enumTypes[0].Descriptor()
96}
97
98func (Product_Availability) Type() protoreflect.EnumType {
99	return &file_google_cloud_retail_v2_product_proto_enumTypes[0]
100}
101
102func (x Product_Availability) Number() protoreflect.EnumNumber {
103	return protoreflect.EnumNumber(x)
104}
105
106// Deprecated: Use Product_Availability.Descriptor instead.
107func (Product_Availability) EnumDescriptor() ([]byte, []int) {
108	return file_google_cloud_retail_v2_product_proto_rawDescGZIP(), []int{0, 0}
109}
110
111// Product captures all metadata information of items to be recommended or
112// searched.
113type Product struct {
114	state         protoimpl.MessageState
115	sizeCache     protoimpl.SizeCache
116	unknownFields protoimpl.UnknownFields
117
118	// Immutable. Full resource name of the product, such as
119	//
120	// "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id".
121	//
122	// The branch ID must be "default_branch".
123	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
124	// Immutable. [Product][google.cloud.retail.v2.Product] identifier, which is
125	// the final component of [name][google.cloud.retail.v2.Product.name]. For
126	// example, this field is "id_1", if
127	// [name][google.cloud.retail.v2.Product.name] is
128	//
129	// "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1".
130	//
131	// This field must be a UTF-8 encoded string with a length limit of 128
132	// characters. Otherwise, an INVALID_ARGUMENT error is returned.
133	//
134	// Google Merchant Center property
135	// [id](https://support.google.com/merchants/answer/6324405).
136	// schema.org Property [Product.sku](https://schema.org/sku).
137	Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
138	// Variant group identifier. Must be an
139	// [id][google.cloud.retail.v2.Product.id], with the same parent branch with
140	// this product. Otherwise, an error is thrown.
141	//
142	// For [Type.PRIMARY][] [Product][google.cloud.retail.v2.Product]s, this field
143	// can only be empty or set to the same value as
144	// [id][google.cloud.retail.v2.Product.id].
145	//
146	// For [Type.VARIANT][] [Product][google.cloud.retail.v2.Product]s, this field
147	// cannot be empty. A maximum of 2000 products are allowed to share the same
148	// [Type.PRIMARY][] [Product][google.cloud.retail.v2.Product]. Otherwise, an
149	// INVALID_ARGUMENT error is returned.
150	//
151	// Google Merchant Center Property
152	// [item_group_id](https://support.google.com/merchants/answer/6324507).
153	// schema.org Property
154	// [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID).
155	//
156	// This field must be enabled before it can be used. [Learn
157	// more](/recommendations-ai/docs/catalog#item-group-id).
158	PrimaryProductId string `protobuf:"bytes,4,opt,name=primary_product_id,json=primaryProductId,proto3" json:"primary_product_id,omitempty"`
159	// Product categories. This field is repeated for supporting one product
160	// belonging to several parallel categories. Each value is either the full
161	// path of the category, or the [category
162	//
163	// ID](https:
164	// //www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt).
165	// Strongly recommended using the full path for better search / recommendation
166	// quality.
167	//
168	// To represent full path of category, use '>' sign to separate different
169	// hierarchies. If '>' is part of the category name, please replace it with
170	// other character(s).
171	//
172	// For example, if a shoes product belongs to both
173	// ["Shoes & Accessories" -> "Shoes"] and
174	// ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be
175	// represented as:
176	//
177	//      "categories": [
178	//        "Shoes & Accessories > Shoes",
179	//        "Sports & Fitness > Athletic Clothing > Shoes"
180	//      ]
181	//
182	// Must be set for [Type.PRIMARY][] [Product][google.cloud.retail.v2.Product]
183	// otherwise an INVALID_ARGUMENT error is returned.
184	//
185	// At most 250 values are allowed per
186	// [Product][google.cloud.retail.v2.Product]. Empty values are not allowed.
187	// Each value must be a UTF-8 encoded string with a length limit of 5,000
188	// characters. Otherwise, an INVALID_ARGUMENT error is returned.
189	//
190	// Google Merchant Center property
191	//
192	// [google_product_category](https:
193	// //support.google.com/merchants/answer/6324436).
194	// Schema.org property [Product.category] (https://schema.org/category).
195	Categories []string `protobuf:"bytes,7,rep,name=categories,proto3" json:"categories,omitempty"`
196	// Required. Product title.
197	//
198	// This field must be a UTF-8 encoded string with a length limit of 128
199	// characters. Otherwise, an INVALID_ARGUMENT error is returned.
200	//
201	// Google Merchant Center property
202	// [title](https://support.google.com/merchants/answer/6324415). Schema.org
203	// property [Product.name](https://schema.org/name).
204	Title string `protobuf:"bytes,8,opt,name=title,proto3" json:"title,omitempty"`
205	// Product description.
206	//
207	// This field must be a UTF-8 encoded string with a length limit of 5,000
208	// characters. Otherwise, an INVALID_ARGUMENT error is returned.
209	//
210	// Google Merchant Center property
211	// [description](https://support.google.com/merchants/answer/6324468).
212	// schema.org property [Product.description](https://schema.org/description).
213	Description string `protobuf:"bytes,10,opt,name=description,proto3" json:"description,omitempty"`
214	// Highly encouraged. Extra product attributes to be included. For example,
215	// for products, this could include the store name, vendor, style, color, etc.
216	// These are very strong signals for recommendation model, thus we highly
217	// recommend providing the attributes here.
218	//
219	// Features that can take on one of a limited number of possible values. Two
220	// types of features can be set are:
221	//
222	// Textual features. some examples would be the brand/maker of a product, or
223	// country of a customer. Numerical features. Some examples would be the
224	// height/weight of a product, or age of a customer.
225	//
226	// For example: { "vendor": {"text": ["vendor123", "vendor456"]},
227	// "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]}
228	// }.
229	//
230	// A maximum of 150 attributes are allowed. Otherwise, an INVALID_ARGUMENT
231	// error is returned.
232	Attributes map[string]*CustomAttribute `protobuf:"bytes,12,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
233	// Custom tags associated with the product.
234	//
235	// At most 250 values are allowed per
236	// [Product][google.cloud.retail.v2.Product]. This value must be a UTF-8
237	// encoded string with a length limit of 1,000 characters. Otherwise, an
238	// INVALID_ARGUMENT error is returned.
239	//
240	// This tag can be used for filtering recommendation results by passing the
241	// tag as part of the
242	// [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter].
243	//
244	// Google Merchant Center property
245	// [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
246	Tags []string `protobuf:"bytes,13,rep,name=tags,proto3" json:"tags,omitempty"`
247	// Product price and cost information.
248	//
249	// Google Merchant Center property
250	// [price](https://support.google.com/merchants/answer/6324371).
251	PriceInfo *PriceInfo `protobuf:"bytes,14,opt,name=price_info,json=priceInfo,proto3" json:"price_info,omitempty"`
252	// The timestamp when this [Product][google.cloud.retail.v2.Product] becomes
253	// available recommendation and search.
254	AvailableTime *timestamppb.Timestamp `protobuf:"bytes,18,opt,name=available_time,json=availableTime,proto3" json:"available_time,omitempty"`
255	// The online availability of the [Product][google.cloud.retail.v2.Product],
256	// which is parallel to and independent of [fulfillment_info][]. Default is
257	// [Availability.IN_STOCK][google.cloud.retail.v2.Product.Availability.IN_STOCK].
258	//
259	// Google Merchant Center Property
260	// [availability](https://support.google.com/merchants/answer/6324448).
261	// schema.org Property [Offer.availability](https://schema.org/availability).
262	Availability Product_Availability `protobuf:"varint,19,opt,name=availability,proto3,enum=google.cloud.retail.v2.Product_Availability" json:"availability,omitempty"`
263	// The available quantity of the item.
264	AvailableQuantity *wrapperspb.Int32Value `protobuf:"bytes,20,opt,name=available_quantity,json=availableQuantity,proto3" json:"available_quantity,omitempty"`
265	// Canonical URL directly linking to the product detail page.
266	//
267	// This field must be a UTF-8 encoded string with a length limit of 5,000
268	// characters. Otherwise, an INVALID_ARGUMENT error is returned.
269	//
270	// Google Merchant Center property
271	// [link](https://support.google.com/merchants/answer/6324416).
272	// Schema.org property [Offer.url](https://schema.org/url).
273	Uri string `protobuf:"bytes,22,opt,name=uri,proto3" json:"uri,omitempty"`
274	// Product images for the product.
275	//
276	// A maximum of 300 images are allowed.
277	//
278	// Google Merchant Center property
279	// [image_link](https://support.google.com/merchants/answer/6324350).
280	// Schema.org property [Product.image](https://schema.org/image).
281	Images []*Image `protobuf:"bytes,23,rep,name=images,proto3" json:"images,omitempty"`
282}
283
284func (x *Product) Reset() {
285	*x = Product{}
286	if protoimpl.UnsafeEnabled {
287		mi := &file_google_cloud_retail_v2_product_proto_msgTypes[0]
288		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
289		ms.StoreMessageInfo(mi)
290	}
291}
292
293func (x *Product) String() string {
294	return protoimpl.X.MessageStringOf(x)
295}
296
297func (*Product) ProtoMessage() {}
298
299func (x *Product) ProtoReflect() protoreflect.Message {
300	mi := &file_google_cloud_retail_v2_product_proto_msgTypes[0]
301	if protoimpl.UnsafeEnabled && x != nil {
302		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
303		if ms.LoadMessageInfo() == nil {
304			ms.StoreMessageInfo(mi)
305		}
306		return ms
307	}
308	return mi.MessageOf(x)
309}
310
311// Deprecated: Use Product.ProtoReflect.Descriptor instead.
312func (*Product) Descriptor() ([]byte, []int) {
313	return file_google_cloud_retail_v2_product_proto_rawDescGZIP(), []int{0}
314}
315
316func (x *Product) GetName() string {
317	if x != nil {
318		return x.Name
319	}
320	return ""
321}
322
323func (x *Product) GetId() string {
324	if x != nil {
325		return x.Id
326	}
327	return ""
328}
329
330func (x *Product) GetPrimaryProductId() string {
331	if x != nil {
332		return x.PrimaryProductId
333	}
334	return ""
335}
336
337func (x *Product) GetCategories() []string {
338	if x != nil {
339		return x.Categories
340	}
341	return nil
342}
343
344func (x *Product) GetTitle() string {
345	if x != nil {
346		return x.Title
347	}
348	return ""
349}
350
351func (x *Product) GetDescription() string {
352	if x != nil {
353		return x.Description
354	}
355	return ""
356}
357
358func (x *Product) GetAttributes() map[string]*CustomAttribute {
359	if x != nil {
360		return x.Attributes
361	}
362	return nil
363}
364
365func (x *Product) GetTags() []string {
366	if x != nil {
367		return x.Tags
368	}
369	return nil
370}
371
372func (x *Product) GetPriceInfo() *PriceInfo {
373	if x != nil {
374		return x.PriceInfo
375	}
376	return nil
377}
378
379func (x *Product) GetAvailableTime() *timestamppb.Timestamp {
380	if x != nil {
381		return x.AvailableTime
382	}
383	return nil
384}
385
386func (x *Product) GetAvailability() Product_Availability {
387	if x != nil {
388		return x.Availability
389	}
390	return Product_AVAILABILITY_UNSPECIFIED
391}
392
393func (x *Product) GetAvailableQuantity() *wrapperspb.Int32Value {
394	if x != nil {
395		return x.AvailableQuantity
396	}
397	return nil
398}
399
400func (x *Product) GetUri() string {
401	if x != nil {
402		return x.Uri
403	}
404	return ""
405}
406
407func (x *Product) GetImages() []*Image {
408	if x != nil {
409		return x.Images
410	}
411	return nil
412}
413
414var File_google_cloud_retail_v2_product_proto protoreflect.FileDescriptor
415
416var file_google_cloud_retail_v2_product_proto_rawDesc = []byte{
417	0x0a, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
418	0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
419	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
420	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x1a, 0x1c,
421	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74,
422	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f,
423	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62,
424	0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67,
425	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
426	0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
427	0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32,
428	0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67,
429	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66,
430	0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
431	0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
432	0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
433	0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
434	0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
435	0x22, 0xed, 0x07, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x04,
436	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52,
437	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
438	0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x72,
439	0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64,
440	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x50,
441	0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65,
442	0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61,
443	0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c,
444	0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x74, 0x69,
445	0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
446	0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
447	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
448	0x74, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
449	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
450	0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69,
451	0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72,
452	0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0d,
453	0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x40, 0x0a, 0x0a, 0x70, 0x72,
454	0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21,
455	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
456	0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66,
457	0x6f, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a, 0x0e,
458	0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12,
459	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
460	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
461	0x52, 0x0d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12,
462	0x50, 0x0a, 0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18,
463	0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
464	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50,
465	0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c,
466	0x69, 0x74, 0x79, 0x52, 0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
467	0x79, 0x12, 0x4a, 0x0a, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71,
468	0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
469	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
470	0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x61, 0x76, 0x61, 0x69,
471	0x6c, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x10, 0x0a,
472	0x03, 0x75, 0x72, 0x69, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12,
473	0x35, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32,
474	0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
475	0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x06,
476	0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x1a, 0x66, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
477	0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
478	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3d, 0x0a, 0x05, 0x76,
479	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f,
480	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
481	0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
482	0x75, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x69,
483	0x0a, 0x0c, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1c,
484	0x0a, 0x18, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55,
485	0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08,
486	0x49, 0x4e, 0x5f, 0x53, 0x54, 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x55,
487	0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x53, 0x54, 0x4f, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08,
488	0x50, 0x52, 0x45, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41,
489	0x43, 0x4b, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x10, 0x04, 0x3a, 0x84, 0x01, 0xea, 0x41, 0x80, 0x01,
490	0x0a, 0x1d, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
491	0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12,
492	0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65,
493	0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c,
494	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
495	0x73, 0x2f, 0x7b, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x7d, 0x2f, 0x62, 0x72, 0x61, 0x6e,
496	0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x7d, 0x2f, 0x70, 0x72,
497	0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x7d,
498	0x42, 0xb0, 0x02, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
499	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x42,
500	0x0c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a,
501	0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f,
502	0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67,
503	0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74,
504	0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06,
505	0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
506	0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0xca,
507	0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52,
508	0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
509	0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c,
510	0x3a, 0x3a, 0x56, 0x32, 0xea, 0x41, 0x6c, 0x0a, 0x1c, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
511	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42,
512	0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x4c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f,
513	0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
514	0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63,
515	0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
516	0x7d, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x61, 0x6e,
517	0x63, 0x68, 0x7d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
518}
519
520var (
521	file_google_cloud_retail_v2_product_proto_rawDescOnce sync.Once
522	file_google_cloud_retail_v2_product_proto_rawDescData = file_google_cloud_retail_v2_product_proto_rawDesc
523)
524
525func file_google_cloud_retail_v2_product_proto_rawDescGZIP() []byte {
526	file_google_cloud_retail_v2_product_proto_rawDescOnce.Do(func() {
527		file_google_cloud_retail_v2_product_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2_product_proto_rawDescData)
528	})
529	return file_google_cloud_retail_v2_product_proto_rawDescData
530}
531
532var file_google_cloud_retail_v2_product_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
533var file_google_cloud_retail_v2_product_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
534var file_google_cloud_retail_v2_product_proto_goTypes = []interface{}{
535	(Product_Availability)(0),     // 0: google.cloud.retail.v2.Product.Availability
536	(*Product)(nil),               // 1: google.cloud.retail.v2.Product
537	nil,                           // 2: google.cloud.retail.v2.Product.AttributesEntry
538	(*PriceInfo)(nil),             // 3: google.cloud.retail.v2.PriceInfo
539	(*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp
540	(*wrapperspb.Int32Value)(nil), // 5: google.protobuf.Int32Value
541	(*Image)(nil),                 // 6: google.cloud.retail.v2.Image
542	(*CustomAttribute)(nil),       // 7: google.cloud.retail.v2.CustomAttribute
543}
544var file_google_cloud_retail_v2_product_proto_depIdxs = []int32{
545	2, // 0: google.cloud.retail.v2.Product.attributes:type_name -> google.cloud.retail.v2.Product.AttributesEntry
546	3, // 1: google.cloud.retail.v2.Product.price_info:type_name -> google.cloud.retail.v2.PriceInfo
547	4, // 2: google.cloud.retail.v2.Product.available_time:type_name -> google.protobuf.Timestamp
548	0, // 3: google.cloud.retail.v2.Product.availability:type_name -> google.cloud.retail.v2.Product.Availability
549	5, // 4: google.cloud.retail.v2.Product.available_quantity:type_name -> google.protobuf.Int32Value
550	6, // 5: google.cloud.retail.v2.Product.images:type_name -> google.cloud.retail.v2.Image
551	7, // 6: google.cloud.retail.v2.Product.AttributesEntry.value:type_name -> google.cloud.retail.v2.CustomAttribute
552	7, // [7:7] is the sub-list for method output_type
553	7, // [7:7] is the sub-list for method input_type
554	7, // [7:7] is the sub-list for extension type_name
555	7, // [7:7] is the sub-list for extension extendee
556	0, // [0:7] is the sub-list for field type_name
557}
558
559func init() { file_google_cloud_retail_v2_product_proto_init() }
560func file_google_cloud_retail_v2_product_proto_init() {
561	if File_google_cloud_retail_v2_product_proto != nil {
562		return
563	}
564	file_google_cloud_retail_v2_common_proto_init()
565	if !protoimpl.UnsafeEnabled {
566		file_google_cloud_retail_v2_product_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
567			switch v := v.(*Product); i {
568			case 0:
569				return &v.state
570			case 1:
571				return &v.sizeCache
572			case 2:
573				return &v.unknownFields
574			default:
575				return nil
576			}
577		}
578	}
579	type x struct{}
580	out := protoimpl.TypeBuilder{
581		File: protoimpl.DescBuilder{
582			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
583			RawDescriptor: file_google_cloud_retail_v2_product_proto_rawDesc,
584			NumEnums:      1,
585			NumMessages:   2,
586			NumExtensions: 0,
587			NumServices:   0,
588		},
589		GoTypes:           file_google_cloud_retail_v2_product_proto_goTypes,
590		DependencyIndexes: file_google_cloud_retail_v2_product_proto_depIdxs,
591		EnumInfos:         file_google_cloud_retail_v2_product_proto_enumTypes,
592		MessageInfos:      file_google_cloud_retail_v2_product_proto_msgTypes,
593	}.Build()
594	File_google_cloud_retail_v2_product_proto = out.File
595	file_google_cloud_retail_v2_product_proto_rawDesc = nil
596	file_google_cloud_retail_v2_product_proto_goTypes = nil
597	file_google_cloud_retail_v2_product_proto_depIdxs = nil
598}
599