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/v2beta/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.v2beta.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_v2beta_product_proto_enumTypes[0].Descriptor()
96}
97
98func (Product_Availability) Type() protoreflect.EnumType {
99	return &file_google_cloud_retail_v2beta_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_v2beta_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.v2beta.Product] identifier, which
125	// is the final component of [name][google.cloud.retail.v2beta.Product.name].
126	// For example, this field is "id_1", if
127	// [name][google.cloud.retail.v2beta.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.v2beta.Product.id], with the same parent branch
140	// with this product. Otherwise, an error is thrown.
141	//
142	// For [Type.PRIMARY][] [Product][google.cloud.retail.v2beta.Product]s, this
143	// field can only be empty or set to the same value as
144	// [id][google.cloud.retail.v2beta.Product.id].
145	//
146	// For [Type.VARIANT][] [Product][google.cloud.retail.v2beta.Product]s, this
147	// field cannot be empty. A maximum of 2000 products are allowed to share the
148	// same [Type.PRIMARY][] [Product][google.cloud.retail.v2beta.Product].
149	// Otherwise, an 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][]
183	// [Product][google.cloud.retail.v2beta.Product] otherwise an INVALID_ARGUMENT
184	// error is returned.
185	//
186	// At most 250 values are allowed per
187	// [Product][google.cloud.retail.v2beta.Product]. Empty values are not
188	// allowed. Each value must be a UTF-8 encoded string with a length limit of
189	// 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned.
190	//
191	// Google Merchant Center property
192	//
193	// [google_product_category](https:
194	// //support.google.com/merchants/answer/6324436).
195	// Schema.org property [Product.category] (https://schema.org/category).
196	Categories []string `protobuf:"bytes,7,rep,name=categories,proto3" json:"categories,omitempty"`
197	// Required. Product title.
198	//
199	// This field must be a UTF-8 encoded string with a length limit of 128
200	// characters. Otherwise, an INVALID_ARGUMENT error is returned.
201	//
202	// Google Merchant Center property
203	// [title](https://support.google.com/merchants/answer/6324415). Schema.org
204	// property [Product.name](https://schema.org/name).
205	Title string `protobuf:"bytes,8,opt,name=title,proto3" json:"title,omitempty"`
206	// Product description.
207	//
208	// This field must be a UTF-8 encoded string with a length limit of 5,000
209	// characters. Otherwise, an INVALID_ARGUMENT error is returned.
210	//
211	// Google Merchant Center property
212	// [description](https://support.google.com/merchants/answer/6324468).
213	// schema.org property [Product.description](https://schema.org/description).
214	Description string `protobuf:"bytes,10,opt,name=description,proto3" json:"description,omitempty"`
215	// Highly encouraged. Extra product attributes to be included. For example,
216	// for products, this could include the store name, vendor, style, color, etc.
217	// These are very strong signals for recommendation model, thus we highly
218	// recommend providing the attributes here.
219	//
220	// Features that can take on one of a limited number of possible values. Two
221	// types of features can be set are:
222	//
223	// Textual features. some examples would be the brand/maker of a product, or
224	// country of a customer. Numerical features. Some examples would be the
225	// height/weight of a product, or age of a customer.
226	//
227	// For example: { "vendor": {"text": ["vendor123", "vendor456"]},
228	// "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]}
229	// }.
230	//
231	// A maximum of 150 attributes are allowed. Otherwise, an INVALID_ARGUMENT
232	// error is returned.
233	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"`
234	// Custom tags associated with the product.
235	//
236	// At most 250 values are allowed per
237	// [Product][google.cloud.retail.v2beta.Product]. This value must be a UTF-8
238	// encoded string with a length limit of 1,000 characters. Otherwise, an
239	// INVALID_ARGUMENT error is returned.
240	//
241	// This tag can be used for filtering recommendation results by passing the
242	// tag as part of the
243	// [PredictRequest.filter][google.cloud.retail.v2beta.PredictRequest.filter].
244	//
245	// Google Merchant Center property
246	// [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
247	Tags []string `protobuf:"bytes,13,rep,name=tags,proto3" json:"tags,omitempty"`
248	// Product price and cost information.
249	//
250	// Google Merchant Center property
251	// [price](https://support.google.com/merchants/answer/6324371).
252	PriceInfo *PriceInfo `protobuf:"bytes,14,opt,name=price_info,json=priceInfo,proto3" json:"price_info,omitempty"`
253	// The timestamp when this [Product][google.cloud.retail.v2beta.Product]
254	// becomes available recommendation and search.
255	AvailableTime *timestamppb.Timestamp `protobuf:"bytes,18,opt,name=available_time,json=availableTime,proto3" json:"available_time,omitempty"`
256	// The online availability of the
257	// [Product][google.cloud.retail.v2beta.Product], which is parallel to and
258	// independent of [fulfillment_info][]. Default is
259	// [Availability.IN_STOCK][google.cloud.retail.v2beta.Product.Availability.IN_STOCK].
260	//
261	// Google Merchant Center Property
262	// [availability](https://support.google.com/merchants/answer/6324448).
263	// schema.org Property [Offer.availability](https://schema.org/availability).
264	Availability Product_Availability `protobuf:"varint,19,opt,name=availability,proto3,enum=google.cloud.retail.v2beta.Product_Availability" json:"availability,omitempty"`
265	// The available quantity of the item.
266	AvailableQuantity *wrapperspb.Int32Value `protobuf:"bytes,20,opt,name=available_quantity,json=availableQuantity,proto3" json:"available_quantity,omitempty"`
267	// Canonical URL directly linking to the product detail page.
268	//
269	// This field must be a UTF-8 encoded string with a length limit of 5,000
270	// characters. Otherwise, an INVALID_ARGUMENT error is returned.
271	//
272	// Google Merchant Center property
273	// [link](https://support.google.com/merchants/answer/6324416).
274	// Schema.org property [Offer.url](https://schema.org/url).
275	Uri string `protobuf:"bytes,22,opt,name=uri,proto3" json:"uri,omitempty"`
276	// Product images for the product.
277	//
278	// A maximum of 300 images are allowed.
279	//
280	// Google Merchant Center property
281	// [image_link](https://support.google.com/merchants/answer/6324350).
282	// Schema.org property [Product.image](https://schema.org/image).
283	Images []*Image `protobuf:"bytes,23,rep,name=images,proto3" json:"images,omitempty"`
284}
285
286func (x *Product) Reset() {
287	*x = Product{}
288	if protoimpl.UnsafeEnabled {
289		mi := &file_google_cloud_retail_v2beta_product_proto_msgTypes[0]
290		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
291		ms.StoreMessageInfo(mi)
292	}
293}
294
295func (x *Product) String() string {
296	return protoimpl.X.MessageStringOf(x)
297}
298
299func (*Product) ProtoMessage() {}
300
301func (x *Product) ProtoReflect() protoreflect.Message {
302	mi := &file_google_cloud_retail_v2beta_product_proto_msgTypes[0]
303	if protoimpl.UnsafeEnabled && x != nil {
304		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
305		if ms.LoadMessageInfo() == nil {
306			ms.StoreMessageInfo(mi)
307		}
308		return ms
309	}
310	return mi.MessageOf(x)
311}
312
313// Deprecated: Use Product.ProtoReflect.Descriptor instead.
314func (*Product) Descriptor() ([]byte, []int) {
315	return file_google_cloud_retail_v2beta_product_proto_rawDescGZIP(), []int{0}
316}
317
318func (x *Product) GetName() string {
319	if x != nil {
320		return x.Name
321	}
322	return ""
323}
324
325func (x *Product) GetId() string {
326	if x != nil {
327		return x.Id
328	}
329	return ""
330}
331
332func (x *Product) GetPrimaryProductId() string {
333	if x != nil {
334		return x.PrimaryProductId
335	}
336	return ""
337}
338
339func (x *Product) GetCategories() []string {
340	if x != nil {
341		return x.Categories
342	}
343	return nil
344}
345
346func (x *Product) GetTitle() string {
347	if x != nil {
348		return x.Title
349	}
350	return ""
351}
352
353func (x *Product) GetDescription() string {
354	if x != nil {
355		return x.Description
356	}
357	return ""
358}
359
360func (x *Product) GetAttributes() map[string]*CustomAttribute {
361	if x != nil {
362		return x.Attributes
363	}
364	return nil
365}
366
367func (x *Product) GetTags() []string {
368	if x != nil {
369		return x.Tags
370	}
371	return nil
372}
373
374func (x *Product) GetPriceInfo() *PriceInfo {
375	if x != nil {
376		return x.PriceInfo
377	}
378	return nil
379}
380
381func (x *Product) GetAvailableTime() *timestamppb.Timestamp {
382	if x != nil {
383		return x.AvailableTime
384	}
385	return nil
386}
387
388func (x *Product) GetAvailability() Product_Availability {
389	if x != nil {
390		return x.Availability
391	}
392	return Product_AVAILABILITY_UNSPECIFIED
393}
394
395func (x *Product) GetAvailableQuantity() *wrapperspb.Int32Value {
396	if x != nil {
397		return x.AvailableQuantity
398	}
399	return nil
400}
401
402func (x *Product) GetUri() string {
403	if x != nil {
404		return x.Uri
405	}
406	return ""
407}
408
409func (x *Product) GetImages() []*Image {
410	if x != nil {
411		return x.Images
412	}
413	return nil
414}
415
416var File_google_cloud_retail_v2beta_product_proto protoreflect.FileDescriptor
417
418var file_google_cloud_retail_v2beta_product_proto_rawDesc = []byte{
419	0x0a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
420	0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x70, 0x72, 0x6f,
421	0x64, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67,
422	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
423	0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61,
424	0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70,
425	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69,
426	0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e,
427	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70,
428	0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
429	0x1a, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
430	0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6d,
431	0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
432	0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64,
433	0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f,
434	0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d,
435	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f,
436	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72,
437	0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x81, 0x08, 0x0a,
438	0x07, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
439	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d,
440	0x65, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
441	0x41, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72,
442	0x79, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01,
443	0x28, 0x09, 0x52, 0x10, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x64, 0x75,
444	0x63, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69,
445	0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f,
446	0x72, 0x69, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x08, 0x20,
447	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12,
448	0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a,
449	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
450	0x6e, 0x12, 0x53, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18,
451	0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
452	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65,
453	0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69,
454	0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72,
455	0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0d,
456	0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x0a, 0x70, 0x72,
457	0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25,
458	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
459	0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x63,
460	0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f,
461	0x12, 0x41, 0x0a, 0x0e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x69,
462	0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
463	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
464	0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x54,
465	0x69, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c,
466	0x69, 0x74, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
467	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
468	0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x41,
469	0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x61, 0x76, 0x61,
470	0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x12, 0x61, 0x76, 0x61,
471	0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18,
472	0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
473	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c,
474	0x75, 0x65, 0x52, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x61,
475	0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x16, 0x20, 0x01,
476	0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65,
477	0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
478	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32,
479	0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67,
480	0x65, 0x73, 0x1a, 0x6a, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
481	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
482	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x41, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
483	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
484	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62,
485	0x65, 0x74, 0x61, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
486	0x75, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x69,
487	0x0a, 0x0c, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1c,
488	0x0a, 0x18, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55,
489	0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08,
490	0x49, 0x4e, 0x5f, 0x53, 0x54, 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x55,
491	0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x53, 0x54, 0x4f, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08,
492	0x50, 0x52, 0x45, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41,
493	0x43, 0x4b, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x10, 0x04, 0x3a, 0x84, 0x01, 0xea, 0x41, 0x80, 0x01,
494	0x0a, 0x1d, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
495	0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12,
496	0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65,
497	0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c,
498	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
499	0x73, 0x2f, 0x7b, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x7d, 0x2f, 0x62, 0x72, 0x61, 0x6e,
500	0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x7d, 0x2f, 0x70, 0x72,
501	0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x7d,
502	0x42, 0xc4, 0x02, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
503	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62,
504	0x65, 0x74, 0x61, 0x42, 0x0c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x74,
505	0x6f, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61,
506	0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
507	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64,
508	0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x3b, 0x72,
509	0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02,
510	0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65,
511	0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x1a, 0x47, 0x6f,
512	0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69,
513	0x6c, 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
514	0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c,
515	0x3a, 0x3a, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xea, 0x41, 0x6c, 0x0a, 0x1c, 0x72, 0x65, 0x74,
516	0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63,
517	0x6f, 0x6d, 0x2f, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x4c, 0x70, 0x72, 0x6f, 0x6a, 0x65,
518	0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f,
519	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
520	0x6e, 0x7d, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x63, 0x61, 0x74,
521	0x61, 0x6c, 0x6f, 0x67, 0x7d, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b,
522	0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x7d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
523}
524
525var (
526	file_google_cloud_retail_v2beta_product_proto_rawDescOnce sync.Once
527	file_google_cloud_retail_v2beta_product_proto_rawDescData = file_google_cloud_retail_v2beta_product_proto_rawDesc
528)
529
530func file_google_cloud_retail_v2beta_product_proto_rawDescGZIP() []byte {
531	file_google_cloud_retail_v2beta_product_proto_rawDescOnce.Do(func() {
532		file_google_cloud_retail_v2beta_product_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2beta_product_proto_rawDescData)
533	})
534	return file_google_cloud_retail_v2beta_product_proto_rawDescData
535}
536
537var file_google_cloud_retail_v2beta_product_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
538var file_google_cloud_retail_v2beta_product_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
539var file_google_cloud_retail_v2beta_product_proto_goTypes = []interface{}{
540	(Product_Availability)(0),     // 0: google.cloud.retail.v2beta.Product.Availability
541	(*Product)(nil),               // 1: google.cloud.retail.v2beta.Product
542	nil,                           // 2: google.cloud.retail.v2beta.Product.AttributesEntry
543	(*PriceInfo)(nil),             // 3: google.cloud.retail.v2beta.PriceInfo
544	(*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp
545	(*wrapperspb.Int32Value)(nil), // 5: google.protobuf.Int32Value
546	(*Image)(nil),                 // 6: google.cloud.retail.v2beta.Image
547	(*CustomAttribute)(nil),       // 7: google.cloud.retail.v2beta.CustomAttribute
548}
549var file_google_cloud_retail_v2beta_product_proto_depIdxs = []int32{
550	2, // 0: google.cloud.retail.v2beta.Product.attributes:type_name -> google.cloud.retail.v2beta.Product.AttributesEntry
551	3, // 1: google.cloud.retail.v2beta.Product.price_info:type_name -> google.cloud.retail.v2beta.PriceInfo
552	4, // 2: google.cloud.retail.v2beta.Product.available_time:type_name -> google.protobuf.Timestamp
553	0, // 3: google.cloud.retail.v2beta.Product.availability:type_name -> google.cloud.retail.v2beta.Product.Availability
554	5, // 4: google.cloud.retail.v2beta.Product.available_quantity:type_name -> google.protobuf.Int32Value
555	6, // 5: google.cloud.retail.v2beta.Product.images:type_name -> google.cloud.retail.v2beta.Image
556	7, // 6: google.cloud.retail.v2beta.Product.AttributesEntry.value:type_name -> google.cloud.retail.v2beta.CustomAttribute
557	7, // [7:7] is the sub-list for method output_type
558	7, // [7:7] is the sub-list for method input_type
559	7, // [7:7] is the sub-list for extension type_name
560	7, // [7:7] is the sub-list for extension extendee
561	0, // [0:7] is the sub-list for field type_name
562}
563
564func init() { file_google_cloud_retail_v2beta_product_proto_init() }
565func file_google_cloud_retail_v2beta_product_proto_init() {
566	if File_google_cloud_retail_v2beta_product_proto != nil {
567		return
568	}
569	file_google_cloud_retail_v2beta_common_proto_init()
570	if !protoimpl.UnsafeEnabled {
571		file_google_cloud_retail_v2beta_product_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
572			switch v := v.(*Product); i {
573			case 0:
574				return &v.state
575			case 1:
576				return &v.sizeCache
577			case 2:
578				return &v.unknownFields
579			default:
580				return nil
581			}
582		}
583	}
584	type x struct{}
585	out := protoimpl.TypeBuilder{
586		File: protoimpl.DescBuilder{
587			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
588			RawDescriptor: file_google_cloud_retail_v2beta_product_proto_rawDesc,
589			NumEnums:      1,
590			NumMessages:   2,
591			NumExtensions: 0,
592			NumServices:   0,
593		},
594		GoTypes:           file_google_cloud_retail_v2beta_product_proto_goTypes,
595		DependencyIndexes: file_google_cloud_retail_v2beta_product_proto_depIdxs,
596		EnumInfos:         file_google_cloud_retail_v2beta_product_proto_enumTypes,
597		MessageInfos:      file_google_cloud_retail_v2beta_product_proto_msgTypes,
598	}.Build()
599	File_google_cloud_retail_v2beta_product_proto = out.File
600	file_google_cloud_retail_v2beta_product_proto_rawDesc = nil
601	file_google_cloud_retail_v2beta_product_proto_goTypes = nil
602	file_google_cloud_retail_v2beta_product_proto_depIdxs = nil
603}
604