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