1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: google/cloud/recommendationengine/v1beta1/catalog.proto
3
4package recommendationengine
5
6import (
7	fmt "fmt"
8	math "math"
9
10	proto "github.com/golang/protobuf/proto"
11	_ "github.com/golang/protobuf/ptypes/struct"
12	_ "google.golang.org/genproto/googleapis/api/annotations"
13)
14
15// Reference imports to suppress errors if they are not otherwise used.
16var _ = proto.Marshal
17var _ = fmt.Errorf
18var _ = math.Inf
19
20// This is a compile-time assertion to ensure that this generated file
21// is compatible with the proto package it is being compiled against.
22// A compilation error at this line likely means your copy of the
23// proto package needs to be updated.
24const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
25
26// Item stock state. If this field is unspecified, the item is
27// assumed to be in stock.
28type ProductCatalogItem_StockState int32
29
30const (
31	// Default item stock status. Should never be used.
32	ProductCatalogItem_STOCK_STATE_UNSPECIFIED ProductCatalogItem_StockState = 0
33	// Item in stock.
34	ProductCatalogItem_IN_STOCK ProductCatalogItem_StockState = 0
35	// Item out of stock.
36	ProductCatalogItem_OUT_OF_STOCK ProductCatalogItem_StockState = 1
37	// Item that is in pre-order state.
38	ProductCatalogItem_PREORDER ProductCatalogItem_StockState = 2
39	// Item that is back-ordered (i.e. temporarily out of stock).
40	ProductCatalogItem_BACKORDER ProductCatalogItem_StockState = 3
41)
42
43var ProductCatalogItem_StockState_name = map[int32]string{
44	0: "STOCK_STATE_UNSPECIFIED",
45	// Duplicate value: 0: "IN_STOCK",
46	1: "OUT_OF_STOCK",
47	2: "PREORDER",
48	3: "BACKORDER",
49}
50
51var ProductCatalogItem_StockState_value = map[string]int32{
52	"STOCK_STATE_UNSPECIFIED": 0,
53	"IN_STOCK":                0,
54	"OUT_OF_STOCK":            1,
55	"PREORDER":                2,
56	"BACKORDER":               3,
57}
58
59func (x ProductCatalogItem_StockState) String() string {
60	return proto.EnumName(ProductCatalogItem_StockState_name, int32(x))
61}
62
63func (ProductCatalogItem_StockState) EnumDescriptor() ([]byte, []int) {
64	return fileDescriptor_988daa8a4f3967d9, []int{1, 0}
65}
66
67// CatalogItem captures all metadata information of items to be recommended.
68type CatalogItem struct {
69	// Required. Catalog item identifier. UTF-8 encoded string with a length limit
70	// of 128 bytes.
71	//
72	// This id must be unique among all catalog items within the same catalog. It
73	// should also be used when logging user events in order for the user events
74	// to be joined with the Catalog.
75	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
76	// Required. Catalog item categories. This field is repeated for supporting
77	// one catalog item belonging to several parallel category hierarchies.
78	//
79	// For example, if a shoes product belongs to both
80	// ["Shoes & Accessories" -> "Shoes"] and
81	// ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be
82	// represented as:
83	//
84	//      "categoryHierarchies": [
85	//        { "categories": ["Shoes & Accessories", "Shoes"]},
86	//        { "categories": ["Sports & Fitness", "Athletic Clothing", "Shoes"] }
87	//      ]
88	CategoryHierarchies []*CatalogItem_CategoryHierarchy `protobuf:"bytes,2,rep,name=category_hierarchies,json=categoryHierarchies,proto3" json:"category_hierarchies,omitempty"`
89	// Required. Catalog item title. UTF-8 encoded string with a length limit of 1
90	// KiB.
91	Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
92	// Optional. Catalog item description. UTF-8 encoded string with a length
93	// limit of 5 KiB.
94	Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
95	// Optional. Highly encouraged. Extra catalog item attributes to be
96	// included in the recommendation model. For example, for retail products,
97	// this could include the store name, vendor, style, color, etc. These are
98	// very strong signals for recommendation model, thus we highly recommend
99	// providing the item attributes here.
100	ItemAttributes *FeatureMap `protobuf:"bytes,5,opt,name=item_attributes,json=itemAttributes,proto3" json:"item_attributes,omitempty"`
101	// Optional. Language of the title/description/item_attributes. Use language
102	// tags defined by BCP 47. https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Our
103	// supported language codes include 'en', 'es', 'fr', 'de', 'ar', 'fa', 'zh',
104	// 'ja', 'ko', 'sv', 'ro', 'nl'. For other languages, contact
105	// your Google account manager.
106	LanguageCode string `protobuf:"bytes,6,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
107	// Optional. Filtering tags associated with the catalog item. Each tag should
108	// be a UTF-8 encoded string with a length limit of 1 KiB.
109	//
110	// This tag can be used for filtering recommendation results by passing the
111	// tag as part of the predict request filter.
112	Tags []string `protobuf:"bytes,8,rep,name=tags,proto3" json:"tags,omitempty"`
113	// Optional. Variant group identifier for prediction results. UTF-8 encoded
114	// string with a length limit of 128 bytes.
115	//
116	// This field must be enabled before it can be used. [Learn
117	// more](/recommendations-ai/docs/catalog#item-group-id).
118	ItemGroupId string `protobuf:"bytes,9,opt,name=item_group_id,json=itemGroupId,proto3" json:"item_group_id,omitempty"`
119	// Extra catalog item metadata for different recommendation types.
120	//
121	// Types that are valid to be assigned to RecommendationType:
122	//	*CatalogItem_ProductMetadata
123	RecommendationType   isCatalogItem_RecommendationType `protobuf_oneof:"recommendation_type"`
124	XXX_NoUnkeyedLiteral struct{}                         `json:"-"`
125	XXX_unrecognized     []byte                           `json:"-"`
126	XXX_sizecache        int32                            `json:"-"`
127}
128
129func (m *CatalogItem) Reset()         { *m = CatalogItem{} }
130func (m *CatalogItem) String() string { return proto.CompactTextString(m) }
131func (*CatalogItem) ProtoMessage()    {}
132func (*CatalogItem) Descriptor() ([]byte, []int) {
133	return fileDescriptor_988daa8a4f3967d9, []int{0}
134}
135
136func (m *CatalogItem) XXX_Unmarshal(b []byte) error {
137	return xxx_messageInfo_CatalogItem.Unmarshal(m, b)
138}
139func (m *CatalogItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
140	return xxx_messageInfo_CatalogItem.Marshal(b, m, deterministic)
141}
142func (m *CatalogItem) XXX_Merge(src proto.Message) {
143	xxx_messageInfo_CatalogItem.Merge(m, src)
144}
145func (m *CatalogItem) XXX_Size() int {
146	return xxx_messageInfo_CatalogItem.Size(m)
147}
148func (m *CatalogItem) XXX_DiscardUnknown() {
149	xxx_messageInfo_CatalogItem.DiscardUnknown(m)
150}
151
152var xxx_messageInfo_CatalogItem proto.InternalMessageInfo
153
154func (m *CatalogItem) GetId() string {
155	if m != nil {
156		return m.Id
157	}
158	return ""
159}
160
161func (m *CatalogItem) GetCategoryHierarchies() []*CatalogItem_CategoryHierarchy {
162	if m != nil {
163		return m.CategoryHierarchies
164	}
165	return nil
166}
167
168func (m *CatalogItem) GetTitle() string {
169	if m != nil {
170		return m.Title
171	}
172	return ""
173}
174
175func (m *CatalogItem) GetDescription() string {
176	if m != nil {
177		return m.Description
178	}
179	return ""
180}
181
182func (m *CatalogItem) GetItemAttributes() *FeatureMap {
183	if m != nil {
184		return m.ItemAttributes
185	}
186	return nil
187}
188
189func (m *CatalogItem) GetLanguageCode() string {
190	if m != nil {
191		return m.LanguageCode
192	}
193	return ""
194}
195
196func (m *CatalogItem) GetTags() []string {
197	if m != nil {
198		return m.Tags
199	}
200	return nil
201}
202
203func (m *CatalogItem) GetItemGroupId() string {
204	if m != nil {
205		return m.ItemGroupId
206	}
207	return ""
208}
209
210type isCatalogItem_RecommendationType interface {
211	isCatalogItem_RecommendationType()
212}
213
214type CatalogItem_ProductMetadata struct {
215	ProductMetadata *ProductCatalogItem `protobuf:"bytes,10,opt,name=product_metadata,json=productMetadata,proto3,oneof"`
216}
217
218func (*CatalogItem_ProductMetadata) isCatalogItem_RecommendationType() {}
219
220func (m *CatalogItem) GetRecommendationType() isCatalogItem_RecommendationType {
221	if m != nil {
222		return m.RecommendationType
223	}
224	return nil
225}
226
227func (m *CatalogItem) GetProductMetadata() *ProductCatalogItem {
228	if x, ok := m.GetRecommendationType().(*CatalogItem_ProductMetadata); ok {
229		return x.ProductMetadata
230	}
231	return nil
232}
233
234// XXX_OneofWrappers is for the internal use of the proto package.
235func (*CatalogItem) XXX_OneofWrappers() []interface{} {
236	return []interface{}{
237		(*CatalogItem_ProductMetadata)(nil),
238	}
239}
240
241// Category represents catalog item category hierarchy.
242type CatalogItem_CategoryHierarchy struct {
243	// Required. Catalog item categories. Each category should be a UTF-8
244	// encoded string with a length limit of 2 KiB.
245	//
246	// Note that the order in the list denotes the specificity (from least to
247	// most specific).
248	Categories           []string `protobuf:"bytes,1,rep,name=categories,proto3" json:"categories,omitempty"`
249	XXX_NoUnkeyedLiteral struct{} `json:"-"`
250	XXX_unrecognized     []byte   `json:"-"`
251	XXX_sizecache        int32    `json:"-"`
252}
253
254func (m *CatalogItem_CategoryHierarchy) Reset()         { *m = CatalogItem_CategoryHierarchy{} }
255func (m *CatalogItem_CategoryHierarchy) String() string { return proto.CompactTextString(m) }
256func (*CatalogItem_CategoryHierarchy) ProtoMessage()    {}
257func (*CatalogItem_CategoryHierarchy) Descriptor() ([]byte, []int) {
258	return fileDescriptor_988daa8a4f3967d9, []int{0, 0}
259}
260
261func (m *CatalogItem_CategoryHierarchy) XXX_Unmarshal(b []byte) error {
262	return xxx_messageInfo_CatalogItem_CategoryHierarchy.Unmarshal(m, b)
263}
264func (m *CatalogItem_CategoryHierarchy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
265	return xxx_messageInfo_CatalogItem_CategoryHierarchy.Marshal(b, m, deterministic)
266}
267func (m *CatalogItem_CategoryHierarchy) XXX_Merge(src proto.Message) {
268	xxx_messageInfo_CatalogItem_CategoryHierarchy.Merge(m, src)
269}
270func (m *CatalogItem_CategoryHierarchy) XXX_Size() int {
271	return xxx_messageInfo_CatalogItem_CategoryHierarchy.Size(m)
272}
273func (m *CatalogItem_CategoryHierarchy) XXX_DiscardUnknown() {
274	xxx_messageInfo_CatalogItem_CategoryHierarchy.DiscardUnknown(m)
275}
276
277var xxx_messageInfo_CatalogItem_CategoryHierarchy proto.InternalMessageInfo
278
279func (m *CatalogItem_CategoryHierarchy) GetCategories() []string {
280	if m != nil {
281		return m.Categories
282	}
283	return nil
284}
285
286// ProductCatalogItem captures item metadata specific to retail products.
287type ProductCatalogItem struct {
288	// Product price. Only one of 'exactPrice'/'priceRange' can be provided.
289	//
290	// Types that are valid to be assigned to Price:
291	//	*ProductCatalogItem_ExactPrice_
292	//	*ProductCatalogItem_PriceRange_
293	Price isProductCatalogItem_Price `protobuf_oneof:"price"`
294	// Optional. A map to pass the costs associated with the product.
295	//
296	// For example:
297	// {"manufacturing": 45.5} The profit of selling this item is computed like
298	// so:
299	//
300	// * If 'exactPrice' is provided, profit = displayPrice - sum(costs)
301	// * If 'priceRange' is provided, profit = minPrice - sum(costs)
302	Costs map[string]float32 `protobuf:"bytes,3,rep,name=costs,proto3" json:"costs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"`
303	// Optional. Only required if the price is set. Currency code for price/costs. Use
304	// three-character ISO-4217 code.
305	CurrencyCode string `protobuf:"bytes,4,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"`
306	// Optional. Online stock state of the catalog item. Default is `IN_STOCK`.
307	StockState ProductCatalogItem_StockState `protobuf:"varint,5,opt,name=stock_state,json=stockState,proto3,enum=google.cloud.recommendationengine.v1beta1.ProductCatalogItem_StockState" json:"stock_state,omitempty"`
308	// Optional. The available quantity of the item.
309	AvailableQuantity int64 `protobuf:"varint,6,opt,name=available_quantity,json=availableQuantity,proto3" json:"available_quantity,omitempty"`
310	// Optional. Canonical URL directly linking to the item detail page with a
311	// length limit of 5 KiB..
312	CanonicalProductUri string `protobuf:"bytes,7,opt,name=canonical_product_uri,json=canonicalProductUri,proto3" json:"canonical_product_uri,omitempty"`
313	// Optional. Product images for the catalog item.
314	Images               []*Image `protobuf:"bytes,8,rep,name=images,proto3" json:"images,omitempty"`
315	XXX_NoUnkeyedLiteral struct{} `json:"-"`
316	XXX_unrecognized     []byte   `json:"-"`
317	XXX_sizecache        int32    `json:"-"`
318}
319
320func (m *ProductCatalogItem) Reset()         { *m = ProductCatalogItem{} }
321func (m *ProductCatalogItem) String() string { return proto.CompactTextString(m) }
322func (*ProductCatalogItem) ProtoMessage()    {}
323func (*ProductCatalogItem) Descriptor() ([]byte, []int) {
324	return fileDescriptor_988daa8a4f3967d9, []int{1}
325}
326
327func (m *ProductCatalogItem) XXX_Unmarshal(b []byte) error {
328	return xxx_messageInfo_ProductCatalogItem.Unmarshal(m, b)
329}
330func (m *ProductCatalogItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
331	return xxx_messageInfo_ProductCatalogItem.Marshal(b, m, deterministic)
332}
333func (m *ProductCatalogItem) XXX_Merge(src proto.Message) {
334	xxx_messageInfo_ProductCatalogItem.Merge(m, src)
335}
336func (m *ProductCatalogItem) XXX_Size() int {
337	return xxx_messageInfo_ProductCatalogItem.Size(m)
338}
339func (m *ProductCatalogItem) XXX_DiscardUnknown() {
340	xxx_messageInfo_ProductCatalogItem.DiscardUnknown(m)
341}
342
343var xxx_messageInfo_ProductCatalogItem proto.InternalMessageInfo
344
345type isProductCatalogItem_Price interface {
346	isProductCatalogItem_Price()
347}
348
349type ProductCatalogItem_ExactPrice_ struct {
350	ExactPrice *ProductCatalogItem_ExactPrice `protobuf:"bytes,1,opt,name=exact_price,json=exactPrice,proto3,oneof"`
351}
352
353type ProductCatalogItem_PriceRange_ struct {
354	PriceRange *ProductCatalogItem_PriceRange `protobuf:"bytes,2,opt,name=price_range,json=priceRange,proto3,oneof"`
355}
356
357func (*ProductCatalogItem_ExactPrice_) isProductCatalogItem_Price() {}
358
359func (*ProductCatalogItem_PriceRange_) isProductCatalogItem_Price() {}
360
361func (m *ProductCatalogItem) GetPrice() isProductCatalogItem_Price {
362	if m != nil {
363		return m.Price
364	}
365	return nil
366}
367
368func (m *ProductCatalogItem) GetExactPrice() *ProductCatalogItem_ExactPrice {
369	if x, ok := m.GetPrice().(*ProductCatalogItem_ExactPrice_); ok {
370		return x.ExactPrice
371	}
372	return nil
373}
374
375func (m *ProductCatalogItem) GetPriceRange() *ProductCatalogItem_PriceRange {
376	if x, ok := m.GetPrice().(*ProductCatalogItem_PriceRange_); ok {
377		return x.PriceRange
378	}
379	return nil
380}
381
382func (m *ProductCatalogItem) GetCosts() map[string]float32 {
383	if m != nil {
384		return m.Costs
385	}
386	return nil
387}
388
389func (m *ProductCatalogItem) GetCurrencyCode() string {
390	if m != nil {
391		return m.CurrencyCode
392	}
393	return ""
394}
395
396func (m *ProductCatalogItem) GetStockState() ProductCatalogItem_StockState {
397	if m != nil {
398		return m.StockState
399	}
400	return ProductCatalogItem_STOCK_STATE_UNSPECIFIED
401}
402
403func (m *ProductCatalogItem) GetAvailableQuantity() int64 {
404	if m != nil {
405		return m.AvailableQuantity
406	}
407	return 0
408}
409
410func (m *ProductCatalogItem) GetCanonicalProductUri() string {
411	if m != nil {
412		return m.CanonicalProductUri
413	}
414	return ""
415}
416
417func (m *ProductCatalogItem) GetImages() []*Image {
418	if m != nil {
419		return m.Images
420	}
421	return nil
422}
423
424// XXX_OneofWrappers is for the internal use of the proto package.
425func (*ProductCatalogItem) XXX_OneofWrappers() []interface{} {
426	return []interface{}{
427		(*ProductCatalogItem_ExactPrice_)(nil),
428		(*ProductCatalogItem_PriceRange_)(nil),
429	}
430}
431
432// Exact product price.
433type ProductCatalogItem_ExactPrice struct {
434	// Optional. Display price of the product.
435	DisplayPrice float32 `protobuf:"fixed32,1,opt,name=display_price,json=displayPrice,proto3" json:"display_price,omitempty"`
436	// Optional. Price of the product without any discount. If zero, by default
437	// set to be the 'displayPrice'.
438	OriginalPrice        float32  `protobuf:"fixed32,2,opt,name=original_price,json=originalPrice,proto3" json:"original_price,omitempty"`
439	XXX_NoUnkeyedLiteral struct{} `json:"-"`
440	XXX_unrecognized     []byte   `json:"-"`
441	XXX_sizecache        int32    `json:"-"`
442}
443
444func (m *ProductCatalogItem_ExactPrice) Reset()         { *m = ProductCatalogItem_ExactPrice{} }
445func (m *ProductCatalogItem_ExactPrice) String() string { return proto.CompactTextString(m) }
446func (*ProductCatalogItem_ExactPrice) ProtoMessage()    {}
447func (*ProductCatalogItem_ExactPrice) Descriptor() ([]byte, []int) {
448	return fileDescriptor_988daa8a4f3967d9, []int{1, 0}
449}
450
451func (m *ProductCatalogItem_ExactPrice) XXX_Unmarshal(b []byte) error {
452	return xxx_messageInfo_ProductCatalogItem_ExactPrice.Unmarshal(m, b)
453}
454func (m *ProductCatalogItem_ExactPrice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
455	return xxx_messageInfo_ProductCatalogItem_ExactPrice.Marshal(b, m, deterministic)
456}
457func (m *ProductCatalogItem_ExactPrice) XXX_Merge(src proto.Message) {
458	xxx_messageInfo_ProductCatalogItem_ExactPrice.Merge(m, src)
459}
460func (m *ProductCatalogItem_ExactPrice) XXX_Size() int {
461	return xxx_messageInfo_ProductCatalogItem_ExactPrice.Size(m)
462}
463func (m *ProductCatalogItem_ExactPrice) XXX_DiscardUnknown() {
464	xxx_messageInfo_ProductCatalogItem_ExactPrice.DiscardUnknown(m)
465}
466
467var xxx_messageInfo_ProductCatalogItem_ExactPrice proto.InternalMessageInfo
468
469func (m *ProductCatalogItem_ExactPrice) GetDisplayPrice() float32 {
470	if m != nil {
471		return m.DisplayPrice
472	}
473	return 0
474}
475
476func (m *ProductCatalogItem_ExactPrice) GetOriginalPrice() float32 {
477	if m != nil {
478		return m.OriginalPrice
479	}
480	return 0
481}
482
483// Product price range when there are a range of prices for different
484// variations of the same product.
485type ProductCatalogItem_PriceRange struct {
486	// Required. The minimum product price.
487	Min float32 `protobuf:"fixed32,1,opt,name=min,proto3" json:"min,omitempty"`
488	// Required. The maximum product price.
489	Max                  float32  `protobuf:"fixed32,2,opt,name=max,proto3" json:"max,omitempty"`
490	XXX_NoUnkeyedLiteral struct{} `json:"-"`
491	XXX_unrecognized     []byte   `json:"-"`
492	XXX_sizecache        int32    `json:"-"`
493}
494
495func (m *ProductCatalogItem_PriceRange) Reset()         { *m = ProductCatalogItem_PriceRange{} }
496func (m *ProductCatalogItem_PriceRange) String() string { return proto.CompactTextString(m) }
497func (*ProductCatalogItem_PriceRange) ProtoMessage()    {}
498func (*ProductCatalogItem_PriceRange) Descriptor() ([]byte, []int) {
499	return fileDescriptor_988daa8a4f3967d9, []int{1, 1}
500}
501
502func (m *ProductCatalogItem_PriceRange) XXX_Unmarshal(b []byte) error {
503	return xxx_messageInfo_ProductCatalogItem_PriceRange.Unmarshal(m, b)
504}
505func (m *ProductCatalogItem_PriceRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
506	return xxx_messageInfo_ProductCatalogItem_PriceRange.Marshal(b, m, deterministic)
507}
508func (m *ProductCatalogItem_PriceRange) XXX_Merge(src proto.Message) {
509	xxx_messageInfo_ProductCatalogItem_PriceRange.Merge(m, src)
510}
511func (m *ProductCatalogItem_PriceRange) XXX_Size() int {
512	return xxx_messageInfo_ProductCatalogItem_PriceRange.Size(m)
513}
514func (m *ProductCatalogItem_PriceRange) XXX_DiscardUnknown() {
515	xxx_messageInfo_ProductCatalogItem_PriceRange.DiscardUnknown(m)
516}
517
518var xxx_messageInfo_ProductCatalogItem_PriceRange proto.InternalMessageInfo
519
520func (m *ProductCatalogItem_PriceRange) GetMin() float32 {
521	if m != nil {
522		return m.Min
523	}
524	return 0
525}
526
527func (m *ProductCatalogItem_PriceRange) GetMax() float32 {
528	if m != nil {
529		return m.Max
530	}
531	return 0
532}
533
534// Catalog item thumbnail/detail image.
535type Image struct {
536	// Required. URL of the image with a length limit of 5 KiB.
537	Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
538	// Optional. Height of the image in number of pixels.
539	Height int32 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
540	// Optional. Width of the image in number of pixels.
541	Width                int32    `protobuf:"varint,3,opt,name=width,proto3" json:"width,omitempty"`
542	XXX_NoUnkeyedLiteral struct{} `json:"-"`
543	XXX_unrecognized     []byte   `json:"-"`
544	XXX_sizecache        int32    `json:"-"`
545}
546
547func (m *Image) Reset()         { *m = Image{} }
548func (m *Image) String() string { return proto.CompactTextString(m) }
549func (*Image) ProtoMessage()    {}
550func (*Image) Descriptor() ([]byte, []int) {
551	return fileDescriptor_988daa8a4f3967d9, []int{2}
552}
553
554func (m *Image) XXX_Unmarshal(b []byte) error {
555	return xxx_messageInfo_Image.Unmarshal(m, b)
556}
557func (m *Image) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
558	return xxx_messageInfo_Image.Marshal(b, m, deterministic)
559}
560func (m *Image) XXX_Merge(src proto.Message) {
561	xxx_messageInfo_Image.Merge(m, src)
562}
563func (m *Image) XXX_Size() int {
564	return xxx_messageInfo_Image.Size(m)
565}
566func (m *Image) XXX_DiscardUnknown() {
567	xxx_messageInfo_Image.DiscardUnknown(m)
568}
569
570var xxx_messageInfo_Image proto.InternalMessageInfo
571
572func (m *Image) GetUri() string {
573	if m != nil {
574		return m.Uri
575	}
576	return ""
577}
578
579func (m *Image) GetHeight() int32 {
580	if m != nil {
581		return m.Height
582	}
583	return 0
584}
585
586func (m *Image) GetWidth() int32 {
587	if m != nil {
588		return m.Width
589	}
590	return 0
591}
592
593func init() {
594	proto.RegisterEnum("google.cloud.recommendationengine.v1beta1.ProductCatalogItem_StockState", ProductCatalogItem_StockState_name, ProductCatalogItem_StockState_value)
595	proto.RegisterType((*CatalogItem)(nil), "google.cloud.recommendationengine.v1beta1.CatalogItem")
596	proto.RegisterType((*CatalogItem_CategoryHierarchy)(nil), "google.cloud.recommendationengine.v1beta1.CatalogItem.CategoryHierarchy")
597	proto.RegisterType((*ProductCatalogItem)(nil), "google.cloud.recommendationengine.v1beta1.ProductCatalogItem")
598	proto.RegisterMapType((map[string]float32)(nil), "google.cloud.recommendationengine.v1beta1.ProductCatalogItem.CostsEntry")
599	proto.RegisterType((*ProductCatalogItem_ExactPrice)(nil), "google.cloud.recommendationengine.v1beta1.ProductCatalogItem.ExactPrice")
600	proto.RegisterType((*ProductCatalogItem_PriceRange)(nil), "google.cloud.recommendationengine.v1beta1.ProductCatalogItem.PriceRange")
601	proto.RegisterType((*Image)(nil), "google.cloud.recommendationengine.v1beta1.Image")
602}
603
604func init() {
605	proto.RegisterFile("google/cloud/recommendationengine/v1beta1/catalog.proto", fileDescriptor_988daa8a4f3967d9)
606}
607
608var fileDescriptor_988daa8a4f3967d9 = []byte{
609	// 969 bytes of a gzipped FileDescriptorProto
610	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0xdf, 0x6e, 0x1b, 0xc5,
611	0x17, 0xce, 0xae, 0xe3, 0x34, 0x39, 0x4e, 0x52, 0x77, 0xd2, 0xa8, 0xfb, 0x73, 0x7f, 0x12, 0x51,
612	0x10, 0x22, 0x45, 0x60, 0x93, 0x20, 0x68, 0x64, 0xc4, 0x45, 0xec, 0x3a, 0x8d, 0x55, 0xa5, 0x09,
613	0xeb, 0x24, 0x17, 0x28, 0x68, 0x35, 0x9e, 0x9d, 0xae, 0x87, 0xee, 0xee, 0x2c, 0xb3, 0xb3, 0x21,
614	0xbe, 0x43, 0xbc, 0x08, 0x12, 0x97, 0x3c, 0x0a, 0x4f, 0xc1, 0x35, 0x8f, 0xc0, 0x15, 0x9a, 0x3f,
615	0xf6, 0xba, 0x8d, 0x2f, 0x62, 0xc1, 0xdd, 0xce, 0xf9, 0xbe, 0xf9, 0xbe, 0x73, 0xe6, 0x9c, 0xd9,
616	0x81, 0xe7, 0x11, 0xe7, 0x51, 0x4c, 0x5b, 0x24, 0xe6, 0x45, 0xd8, 0x12, 0x94, 0xf0, 0x24, 0xa1,
617	0x69, 0x88, 0x25, 0xe3, 0x29, 0x4d, 0x23, 0x96, 0xd2, 0xd6, 0xcd, 0xfe, 0x90, 0x4a, 0xbc, 0xdf,
618	0x22, 0x58, 0xe2, 0x98, 0x47, 0xcd, 0x4c, 0x70, 0xc9, 0xd1, 0x33, 0xb3, 0xb1, 0xa9, 0x37, 0x36,
619	0xe7, 0x6d, 0x6c, 0xda, 0x8d, 0x8d, 0x0f, 0xac, 0x07, 0xce, 0x58, 0xeb, 0x0d, 0xa3, 0x71, 0x18,
620	0x0c, 0xe9, 0x08, 0xdf, 0x30, 0x2e, 0x8c, 0x56, 0xe3, 0xab, 0x05, 0x92, 0xe0, 0x49, 0xc2, 0x53,
621	0xbb, 0xef, 0xff, 0x76, 0x9f, 0x5e, 0x0d, 0x8b, 0x37, 0xad, 0x5c, 0x8a, 0x82, 0xc8, 0xf7, 0x50,
622	0x65, 0x8b, 0xd3, 0x94, 0x4b, 0xad, 0x97, 0x1b, 0x74, 0xf7, 0xef, 0x65, 0xa8, 0x75, 0x4d, 0x45,
623	0x7d, 0x49, 0x13, 0xb4, 0x05, 0x2e, 0x0b, 0x3d, 0x67, 0xc7, 0xd9, 0x5b, 0xeb, 0x54, 0xfe, 0x3c,
624	0x72, 0x7d, 0x97, 0x85, 0xe8, 0x67, 0x07, 0x1e, 0x13, 0x2c, 0x69, 0xc4, 0xc5, 0x38, 0x18, 0x31,
625	0x2a, 0xb0, 0x20, 0x23, 0x46, 0x73, 0xcf, 0xdd, 0xa9, 0xec, 0xd5, 0x0e, 0x4e, 0x9a, 0xf7, 0x3e,
626	0x84, 0xe6, 0x8c, 0x97, 0xfa, 0xd6, 0x92, 0x27, 0x56, 0x71, 0x6c, 0x1c, 0xb7, 0xc8, 0x7b, 0x71,
627	0x46, 0x73, 0xf4, 0x3f, 0xa8, 0x4a, 0x26, 0x63, 0xea, 0x55, 0xca, 0xd4, 0x4c, 0x04, 0x7d, 0x04,
628	0xb5, 0x90, 0xe6, 0x44, 0xb0, 0x4c, 0xf9, 0x79, 0xcb, 0x13, 0x82, 0xe3, 0xcf, 0xc6, 0x11, 0x81,
629	0x87, 0x4c, 0xd2, 0x24, 0xc0, 0x52, 0x0a, 0x36, 0x2c, 0x24, 0xcd, 0xbd, 0xea, 0x8e, 0xb3, 0x57,
630	0x3b, 0xf8, 0x72, 0x81, 0xf4, 0x8f, 0x29, 0x96, 0x85, 0xa0, 0xa7, 0x38, 0x33, 0x0e, 0x9b, 0x4a,
631	0xf2, 0x68, 0xaa, 0x88, 0xf6, 0x60, 0x23, 0xc6, 0x69, 0x54, 0xe0, 0x88, 0x06, 0x84, 0x87, 0xd4,
632	0x5b, 0x29, 0xb3, 0x59, 0x9f, 0x20, 0x5d, 0x1e, 0x52, 0xf4, 0x04, 0x96, 0x25, 0x8e, 0x72, 0x6f,
633	0x75, 0xa7, 0x32, 0x21, 0xe8, 0x00, 0xfa, 0x18, 0x36, 0x74, 0x9e, 0x91, 0xe0, 0x45, 0x16, 0xb0,
634	0xd0, 0x5b, 0x9b, 0x29, 0x48, 0x21, 0x2f, 0x15, 0xd0, 0x0f, 0x11, 0x87, 0x7a, 0x26, 0x78, 0x58,
635	0x10, 0x19, 0x24, 0x54, 0xe2, 0x10, 0x4b, 0xec, 0x81, 0xae, 0xe8, 0x9b, 0x05, 0x2a, 0x3a, 0x37,
636	0x12, 0x33, 0x7d, 0xd1, 0x56, 0x27, 0x4b, 0xfe, 0x43, 0xab, 0x7e, 0x6a, 0xc5, 0x1b, 0x87, 0xf0,
637	0xe8, 0x4e, 0xcb, 0xd0, 0x87, 0x00, 0xb6, 0x5f, 0x6a, 0x20, 0x9c, 0x49, 0x35, 0xae, 0x3f, 0x13,
638	0xee, 0x6c, 0xc3, 0xd6, 0xbb, 0x49, 0x04, 0x72, 0x9c, 0xd1, 0xdd, 0x5f, 0x56, 0x01, 0xdd, 0xf5,
639	0x47, 0x19, 0xd4, 0xe8, 0x2d, 0x26, 0x32, 0xc8, 0x04, 0x23, 0x54, 0x0f, 0xe3, 0x62, 0x43, 0x76,
640	0x57, 0xb3, 0xd9, 0x53, 0x82, 0xe7, 0x4a, 0x6f, 0x52, 0x1e, 0xd0, 0x69, 0x48, 0x39, 0x6a, 0xaf,
641	0x40, 0xe0, 0x34, 0xa2, 0x9e, 0xfb, 0x5f, 0x38, 0x6a, 0x65, 0x5f, 0xe9, 0x4d, 0x1d, 0xb3, 0x69,
642	0x08, 0x11, 0xa8, 0x12, 0x9e, 0xcb, 0xdc, 0xab, 0x2c, 0x7c, 0x85, 0xe6, 0x78, 0x75, 0x95, 0x54,
643	0x2f, 0x95, 0x62, 0x6c, 0xe6, 0xc4, 0x68, 0xab, 0x69, 0x24, 0x85, 0x10, 0x34, 0x25, 0x63, 0x33,
644	0x8d, 0x33, 0x77, 0x63, 0x7d, 0x82, 0xe8, 0x69, 0x4c, 0xa1, 0x96, 0x4b, 0x4e, 0xde, 0x06, 0xb9,
645	0xc4, 0x92, 0xea, 0x8b, 0xb1, 0xf9, 0x6f, 0x93, 0x1a, 0x28, 0xc1, 0x81, 0xd2, 0x33, 0x8e, 0x90,
646	0x4f, 0x03, 0xe8, 0x00, 0x10, 0xbe, 0xc1, 0x2c, 0xc6, 0xc3, 0x98, 0x06, 0x3f, 0x16, 0x38, 0x95,
647	0x4c, 0x8e, 0xf5, 0x65, 0xa9, 0x18, 0xf2, 0xa3, 0x29, 0xfc, 0xad, 0x45, 0xd1, 0x73, 0xd8, 0x26,
648	0x38, 0xe5, 0x29, 0x23, 0x38, 0x0e, 0x26, 0x93, 0x5f, 0x08, 0xe6, 0x3d, 0x28, 0xab, 0xda, 0x9a,
649	0x32, 0x6c, 0x42, 0x97, 0x82, 0xa1, 0x53, 0x58, 0x61, 0x09, 0x8e, 0xa8, 0xb9, 0x6c, 0xb5, 0x83,
650	0xcf, 0x17, 0xa8, 0xab, 0xaf, 0x36, 0x1a, 0x6d, 0x2b, 0xd2, 0x18, 0x02, 0x94, 0xd3, 0xa4, 0xce,
651	0x38, 0x64, 0x79, 0x16, 0xe3, 0xf1, 0xcc, 0xb8, 0xba, 0xf6, 0x8c, 0x2d, 0x62, 0x98, 0x9f, 0xc0,
652	0x26, 0x17, 0x2c, 0x62, 0xa9, 0x4e, 0x5f, 0x51, 0xdd, 0x92, 0xba, 0x31, 0x81, 0x34, 0xb7, 0xd1,
653	0x06, 0x28, 0xe7, 0x07, 0x6d, 0x43, 0x25, 0x61, 0x69, 0xa9, 0xec, 0xfa, 0x6a, 0xad, 0xc3, 0xf8,
654	0xb6, 0x54, 0x51, 0x61, 0x7c, 0xdb, 0x38, 0x04, 0x28, 0xe7, 0x01, 0xd5, 0xa1, 0xf2, 0x96, 0x8e,
655	0xcd, 0x1f, 0xdd, 0x57, 0x9f, 0xe8, 0x31, 0x54, 0x6f, 0x70, 0x5c, 0x58, 0x7b, 0xdf, 0x2c, 0xda,
656	0xee, 0xa1, 0xb3, 0xfb, 0x03, 0x40, 0xd9, 0x34, 0xf4, 0x14, 0x9e, 0x0c, 0x2e, 0xce, 0xba, 0xaf,
657	0x82, 0xc1, 0xc5, 0xd1, 0x45, 0x2f, 0xb8, 0x7c, 0x3d, 0x38, 0xef, 0x75, 0xfb, 0xc7, 0xfd, 0xde,
658	0x8b, 0xfa, 0x12, 0x5a, 0x87, 0xd5, 0xfe, 0xeb, 0x40, 0xe3, 0xf5, 0x25, 0x54, 0x87, 0xf5, 0xb3,
659	0xcb, 0x8b, 0xe0, 0xec, 0xd8, 0x46, 0x1c, 0x85, 0x9f, 0xfb, 0xbd, 0x33, 0xff, 0x45, 0xcf, 0xaf,
660	0xbb, 0x68, 0x03, 0xd6, 0x3a, 0x47, 0xdd, 0x57, 0x66, 0x59, 0x69, 0xb8, 0x75, 0xa7, 0xf3, 0x00,
661	0xaa, 0xfa, 0x10, 0x76, 0xaf, 0xa0, 0xaa, 0x0f, 0x59, 0x95, 0xa3, 0xba, 0x39, 0xf3, 0xf6, 0xa8,
662	0x35, 0x7a, 0x0a, 0x2b, 0x23, 0xca, 0xa2, 0x91, 0xd4, 0xf9, 0x56, 0x6d, 0x2f, 0x4c, 0x48, 0x3d,
663	0x0b, 0x3f, 0xb1, 0x50, 0x8e, 0xf4, 0xb3, 0x60, 0x31, 0x13, 0xe9, 0xfc, 0xea, 0xc2, 0x67, 0x84,
664	0x27, 0xf7, 0xef, 0xf5, 0xb9, 0xf3, 0xdd, 0xf7, 0x96, 0x1c, 0x71, 0xf5, 0xaf, 0x6e, 0x72, 0x11,
665	0xb5, 0x22, 0x9a, 0xea, 0x97, 0xb2, 0x65, 0x20, 0x9c, 0xb1, 0xfc, 0x1e, 0x0f, 0xf4, 0xd7, 0xf3,
666	0xc0, 0xdf, 0xdc, 0xaa, 0xdf, 0xeb, 0x1e, 0xf5, 0x7f, 0x77, 0x9f, 0xbd, 0x34, 0x3e, 0x5d, 0x9d,
667	0x94, 0xff, 0x0e, 0xb7, 0x67, 0x92, 0xba, 0xda, 0xef, 0x28, 0xa1, 0x3f, 0x26, 0xdc, 0x6b, 0xcd,
668	0xbd, 0x9e, 0xc7, 0xbd, 0xbe, 0x32, 0xa6, 0x7f, 0xb9, 0x9f, 0x1a, 0x6e, 0xbb, 0xad, 0xc9, 0xed,
669	0xf6, 0x3c, 0x76, 0xbb, 0x6d, 0xe9, 0xc3, 0x15, 0x5d, 0xd8, 0x17, 0xff, 0x04, 0x00, 0x00, 0xff,
670	0xff, 0x49, 0x18, 0xc4, 0xad, 0xfd, 0x08, 0x00, 0x00,
671}
672