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