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