1// Copyright 2021 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.26.0 18// protoc v3.12.2 19// source: google/cloud/retail/v2/product.proto 20 21package retail 22 23import ( 24 reflect "reflect" 25 sync "sync" 26 27 _ "google.golang.org/genproto/googleapis/api/annotations" 28 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 29 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 30 durationpb "google.golang.org/protobuf/types/known/durationpb" 31 fieldmaskpb "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// The type of this product. 44type Product_Type int32 45 46const ( 47 // Default value. Default to 48 // [Catalog.product_level_config.ingestion_product_type][google.cloud.retail.v2.ProductLevelConfig.ingestion_product_type] 49 // if unset. 50 Product_TYPE_UNSPECIFIED Product_Type = 0 51 // The primary type. 52 // 53 // As the primary unit for predicting, indexing and search serving, a 54 // [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] 55 // [Product][google.cloud.retail.v2.Product] is grouped with multiple 56 // [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] 57 // [Product][google.cloud.retail.v2.Product]s. 58 Product_PRIMARY Product_Type = 1 59 // The variant type. 60 // 61 // [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] 62 // [Product][google.cloud.retail.v2.Product]s usually share some common 63 // attributes on the same 64 // [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] 65 // [Product][google.cloud.retail.v2.Product]s, but they have variant 66 // attributes like different colors, sizes and prices, etc. 67 Product_VARIANT Product_Type = 2 68 // The collection type. Collection products are bundled 69 // [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] 70 // [Product][google.cloud.retail.v2.Product]s or 71 // [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT] 72 // [Product][google.cloud.retail.v2.Product]s that are sold together, such 73 // as a jewelry set with necklaces, earrings and rings, etc. 74 Product_COLLECTION Product_Type = 3 75) 76 77// Enum value maps for Product_Type. 78var ( 79 Product_Type_name = map[int32]string{ 80 0: "TYPE_UNSPECIFIED", 81 1: "PRIMARY", 82 2: "VARIANT", 83 3: "COLLECTION", 84 } 85 Product_Type_value = map[string]int32{ 86 "TYPE_UNSPECIFIED": 0, 87 "PRIMARY": 1, 88 "VARIANT": 2, 89 "COLLECTION": 3, 90 } 91) 92 93func (x Product_Type) Enum() *Product_Type { 94 p := new(Product_Type) 95 *p = x 96 return p 97} 98 99func (x Product_Type) String() string { 100 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 101} 102 103func (Product_Type) Descriptor() protoreflect.EnumDescriptor { 104 return file_google_cloud_retail_v2_product_proto_enumTypes[0].Descriptor() 105} 106 107func (Product_Type) Type() protoreflect.EnumType { 108 return &file_google_cloud_retail_v2_product_proto_enumTypes[0] 109} 110 111func (x Product_Type) Number() protoreflect.EnumNumber { 112 return protoreflect.EnumNumber(x) 113} 114 115// Deprecated: Use Product_Type.Descriptor instead. 116func (Product_Type) EnumDescriptor() ([]byte, []int) { 117 return file_google_cloud_retail_v2_product_proto_rawDescGZIP(), []int{0, 0} 118} 119 120// Product availability. If this field is unspecified, the product is 121// assumed to be in stock. 122type Product_Availability int32 123 124const ( 125 // Default product availability. Default to 126 // [Availability.IN_STOCK][google.cloud.retail.v2.Product.Availability.IN_STOCK] 127 // if unset. 128 Product_AVAILABILITY_UNSPECIFIED Product_Availability = 0 129 // Product in stock. 130 Product_IN_STOCK Product_Availability = 1 131 // Product out of stock. 132 Product_OUT_OF_STOCK Product_Availability = 2 133 // Product that is in pre-order state. 134 Product_PREORDER Product_Availability = 3 135 // Product that is back-ordered (i.e. temporarily out of stock). 136 Product_BACKORDER Product_Availability = 4 137) 138 139// Enum value maps for Product_Availability. 140var ( 141 Product_Availability_name = map[int32]string{ 142 0: "AVAILABILITY_UNSPECIFIED", 143 1: "IN_STOCK", 144 2: "OUT_OF_STOCK", 145 3: "PREORDER", 146 4: "BACKORDER", 147 } 148 Product_Availability_value = map[string]int32{ 149 "AVAILABILITY_UNSPECIFIED": 0, 150 "IN_STOCK": 1, 151 "OUT_OF_STOCK": 2, 152 "PREORDER": 3, 153 "BACKORDER": 4, 154 } 155) 156 157func (x Product_Availability) Enum() *Product_Availability { 158 p := new(Product_Availability) 159 *p = x 160 return p 161} 162 163func (x Product_Availability) String() string { 164 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 165} 166 167func (Product_Availability) Descriptor() protoreflect.EnumDescriptor { 168 return file_google_cloud_retail_v2_product_proto_enumTypes[1].Descriptor() 169} 170 171func (Product_Availability) Type() protoreflect.EnumType { 172 return &file_google_cloud_retail_v2_product_proto_enumTypes[1] 173} 174 175func (x Product_Availability) Number() protoreflect.EnumNumber { 176 return protoreflect.EnumNumber(x) 177} 178 179// Deprecated: Use Product_Availability.Descriptor instead. 180func (Product_Availability) EnumDescriptor() ([]byte, []int) { 181 return file_google_cloud_retail_v2_product_proto_rawDescGZIP(), []int{0, 1} 182} 183 184// Product captures all metadata information of items to be recommended or 185// searched. 186type Product struct { 187 state protoimpl.MessageState 188 sizeCache protoimpl.SizeCache 189 unknownFields protoimpl.UnknownFields 190 191 // Types that are assignable to Expiration: 192 // *Product_ExpireTime 193 // *Product_Ttl 194 Expiration isProduct_Expiration `protobuf_oneof:"expiration"` 195 // Immutable. Full resource name of the product, such as 196 // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. 197 // 198 // The branch ID must be "default_branch". 199 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 200 // Immutable. [Product][google.cloud.retail.v2.Product] identifier, which is 201 // the final component of [name][google.cloud.retail.v2.Product.name]. For 202 // example, this field is "id_1", if 203 // [name][google.cloud.retail.v2.Product.name] is 204 // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. 205 // 206 // This field must be a UTF-8 encoded string with a length limit of 128 207 // characters. Otherwise, an INVALID_ARGUMENT error is returned. 208 // 209 // Google Merchant Center property 210 // [id](https://support.google.com/merchants/answer/6324405). Schema.org 211 // Property [Product.sku](https://schema.org/sku). 212 Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` 213 // Immutable. The type of the product. Default to 214 // [Catalog.product_level_config.ingestion_product_type][google.cloud.retail.v2.ProductLevelConfig.ingestion_product_type] 215 // if unset. 216 Type Product_Type `protobuf:"varint,3,opt,name=type,proto3,enum=google.cloud.retail.v2.Product_Type" json:"type,omitempty"` 217 // Variant group identifier. Must be an 218 // [id][google.cloud.retail.v2.Product.id], with the same parent branch with 219 // this product. Otherwise, an error is thrown. 220 // 221 // For [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] 222 // [Product][google.cloud.retail.v2.Product]s, this field can only be empty or 223 // set to the same value as [id][google.cloud.retail.v2.Product.id]. 224 // 225 // For VARIANT [Product][google.cloud.retail.v2.Product]s, this field cannot 226 // be empty. A maximum of 2,000 products are allowed to share the same 227 // [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] 228 // [Product][google.cloud.retail.v2.Product]. Otherwise, an INVALID_ARGUMENT 229 // error is returned. 230 // 231 // Google Merchant Center Property 232 // [item_group_id](https://support.google.com/merchants/answer/6324507). 233 // Schema.org Property 234 // [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). 235 // 236 // This field must be enabled before it can be used. [Learn 237 // more](/recommendations-ai/docs/catalog#item-group-id). 238 PrimaryProductId string `protobuf:"bytes,4,opt,name=primary_product_id,json=primaryProductId,proto3" json:"primary_product_id,omitempty"` 239 // The [id][google.cloud.retail.v2.Product.id] of the collection members when 240 // [type][google.cloud.retail.v2.Product.type] is 241 // [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]. 242 // 243 // Should not set it for other types. A maximum of 1000 values are allowed. 244 // Otherwise, an INVALID_ARGUMENT error is return. 245 CollectionMemberIds []string `protobuf:"bytes,5,rep,name=collection_member_ids,json=collectionMemberIds,proto3" json:"collection_member_ids,omitempty"` 246 // The Global Trade Item Number (GTIN) of the product. 247 // 248 // This field must be a UTF-8 encoded string with a length limit of 128 249 // characters. Otherwise, an INVALID_ARGUMENT error is returned. 250 // 251 // This field must be a Unigram. Otherwise, an INVALID_ARGUMENT error is 252 // returned. 253 // 254 // Google Merchant Center property 255 // [gtin](https://support.google.com/merchants/answer/6324461). 256 // Schema.org property 257 // [Product.isbn](https://schema.org/isbn) or 258 // [Product.gtin8](https://schema.org/gtin8) or 259 // [Product.gtin12](https://schema.org/gtin12) or 260 // [Product.gtin13](https://schema.org/gtin13) or 261 // [Product.gtin14](https://schema.org/gtin14). 262 // 263 // If the value is not a valid GTIN, an INVALID_ARGUMENT error is returned. 264 Gtin string `protobuf:"bytes,6,opt,name=gtin,proto3" json:"gtin,omitempty"` 265 // Product categories. This field is repeated for supporting one product 266 // belonging to several parallel categories. Strongly recommended using the 267 // full path for better search / recommendation quality. 268 // 269 // 270 // To represent full path of category, use '>' sign to separate different 271 // hierarchies. If '>' is part of the category name, please replace it with 272 // other character(s). 273 // 274 // For example, if a shoes product belongs to both 275 // ["Shoes & Accessories" -> "Shoes"] and 276 // ["Sports & Fitness" -> "Athletic Clothing" -> "Shoes"], it could be 277 // represented as: 278 // 279 // "categories": [ 280 // "Shoes & Accessories > Shoes", 281 // "Sports & Fitness > Athletic Clothing > Shoes" 282 // ] 283 // 284 // Must be set for [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] 285 // [Product][google.cloud.retail.v2.Product] otherwise an INVALID_ARGUMENT 286 // error is returned. 287 // 288 // At most 250 values are allowed per 289 // [Product][google.cloud.retail.v2.Product]. Empty values are not allowed. 290 // Each value must be a UTF-8 encoded string with a length limit of 5,000 291 // characters. Otherwise, an INVALID_ARGUMENT error is returned. 292 // 293 // Google Merchant Center property 294 // [google_product_category][mc_google_product_category]. Schema.org property 295 // [Product.category] (https://schema.org/category). 296 // 297 // [mc_google_product_category]: 298 // https://support.google.com/merchants/answer/6324436 299 Categories []string `protobuf:"bytes,7,rep,name=categories,proto3" json:"categories,omitempty"` 300 // Required. Product title. 301 // 302 // This field must be a UTF-8 encoded string with a length limit of 1,000 303 // characters. Otherwise, an INVALID_ARGUMENT error is returned. 304 // 305 // Google Merchant Center property 306 // [title](https://support.google.com/merchants/answer/6324415). Schema.org 307 // property [Product.name](https://schema.org/name). 308 Title string `protobuf:"bytes,8,opt,name=title,proto3" json:"title,omitempty"` 309 // The brands of the product. 310 // 311 // A maximum of 30 brands are allowed. Each brand must be a UTF-8 encoded 312 // string with a length limit of 1,000 characters. Otherwise, an 313 // INVALID_ARGUMENT error is returned. 314 // 315 // Google Merchant Center property 316 // [brand](https://support.google.com/merchants/answer/6324351). Schema.org 317 // property [Product.brand](https://schema.org/brand). 318 Brands []string `protobuf:"bytes,9,rep,name=brands,proto3" json:"brands,omitempty"` 319 // Product description. 320 // 321 // This field must be a UTF-8 encoded string with a length limit of 5,000 322 // characters. Otherwise, an INVALID_ARGUMENT error is returned. 323 // 324 // Google Merchant Center property 325 // [description](https://support.google.com/merchants/answer/6324468). 326 // schema.org property [Product.description](https://schema.org/description). 327 Description string `protobuf:"bytes,10,opt,name=description,proto3" json:"description,omitempty"` 328 // Language of the title/description and other string attributes. Use language 329 // tags defined by [BCP 47][https://www.rfc-editor.org/rfc/bcp/bcp47.txt]. 330 // 331 // For product prediction, this field is ignored and the model automatically 332 // detects the text language. The [Product][google.cloud.retail.v2.Product] 333 // can include text in different languages, but duplicating 334 // [Product][google.cloud.retail.v2.Product]s to provide text in multiple 335 // languages can result in degraded model performance. 336 // 337 // For product search this field is in use. It defaults to "en-US" if unset. 338 LanguageCode string `protobuf:"bytes,11,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` 339 // Highly encouraged. Extra product attributes to be included. For example, 340 // for products, this could include the store name, vendor, style, color, etc. 341 // These are very strong signals for recommendation model, thus we highly 342 // recommend providing the attributes here. 343 // 344 // Features that can take on one of a limited number of possible values. Two 345 // types of features can be set are: 346 // 347 // Textual features. some examples would be the brand/maker of a product, or 348 // country of a customer. Numerical features. Some examples would be the 349 // height/weight of a product, or age of a customer. 350 // 351 // For example: `{ "vendor": {"text": ["vendor123", "vendor456"]}, 352 // "lengths_cm": {"numbers":[2.3, 15.4]}, "heights_cm": {"numbers":[8.1, 6.4]} 353 // }`. 354 // 355 // This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT 356 // error is returned: 357 // 358 // * Max entries count: 200. 359 // * The key must be a UTF-8 encoded string with a length limit of 128 360 // characters. 361 // * For indexable attribute, the key must match the pattern: 362 // [a-zA-Z0-9][a-zA-Z0-9_]*. For example, key0LikeThis or KEY_1_LIKE_THIS. 363 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"` 364 // Custom tags associated with the product. 365 // 366 // At most 250 values are allowed per 367 // [Product][google.cloud.retail.v2.Product]. This value must be a UTF-8 368 // encoded string with a length limit of 1,000 characters. Otherwise, an 369 // INVALID_ARGUMENT error is returned. 370 // 371 // This tag can be used for filtering recommendation results by passing the 372 // tag as part of the 373 // [PredictRequest.filter][google.cloud.retail.v2.PredictRequest.filter]. 374 // 375 // Google Merchant Center property 376 // [custom_label_0–4](https://support.google.com/merchants/answer/6324473). 377 Tags []string `protobuf:"bytes,13,rep,name=tags,proto3" json:"tags,omitempty"` 378 // Product price and cost information. 379 // 380 // Google Merchant Center property 381 // [price](https://support.google.com/merchants/answer/6324371). 382 PriceInfo *PriceInfo `protobuf:"bytes,14,opt,name=price_info,json=priceInfo,proto3" json:"price_info,omitempty"` 383 // The rating of this product. 384 Rating *Rating `protobuf:"bytes,15,opt,name=rating,proto3" json:"rating,omitempty"` 385 // The timestamp when this [Product][google.cloud.retail.v2.Product] becomes 386 // available for 387 // [SearchService.Search][google.cloud.retail.v2.SearchService.Search]. 388 AvailableTime *timestamppb.Timestamp `protobuf:"bytes,18,opt,name=available_time,json=availableTime,proto3" json:"available_time,omitempty"` 389 // The online availability of the [Product][google.cloud.retail.v2.Product]. 390 // Default to 391 // [Availability.IN_STOCK][google.cloud.retail.v2.Product.Availability.IN_STOCK]. 392 // 393 // Google Merchant Center Property 394 // [availability](https://support.google.com/merchants/answer/6324448). 395 // Schema.org Property [Offer.availability](https://schema.org/availability). 396 Availability Product_Availability `protobuf:"varint,19,opt,name=availability,proto3,enum=google.cloud.retail.v2.Product_Availability" json:"availability,omitempty"` 397 // The available quantity of the item. 398 AvailableQuantity *wrapperspb.Int32Value `protobuf:"bytes,20,opt,name=available_quantity,json=availableQuantity,proto3" json:"available_quantity,omitempty"` 399 // Fulfillment information, such as the store IDs for in-store pickup or 400 // region IDs for different shipping methods. 401 // 402 // All the elements must have distinct 403 // [FulfillmentInfo.type][google.cloud.retail.v2.FulfillmentInfo.type]. 404 // Otherwise, an INVALID_ARGUMENT error is returned. 405 FulfillmentInfo []*FulfillmentInfo `protobuf:"bytes,21,rep,name=fulfillment_info,json=fulfillmentInfo,proto3" json:"fulfillment_info,omitempty"` 406 // Canonical URL directly linking to the product detail page. 407 // 408 // It is strongly recommended to provide a valid uri for the product, 409 // otherwise the service performance could be significantly degraded. 410 // 411 // This field must be a UTF-8 encoded string with a length limit of 5,000 412 // characters. Otherwise, an INVALID_ARGUMENT error is returned. 413 // 414 // Google Merchant Center property 415 // [link](https://support.google.com/merchants/answer/6324416). Schema.org 416 // property [Offer.url](https://schema.org/url). 417 Uri string `protobuf:"bytes,22,opt,name=uri,proto3" json:"uri,omitempty"` 418 // Product images for the product.Highly recommended to put the main image 419 // to the first. 420 // 421 // A maximum of 300 images are allowed. 422 // 423 // Google Merchant Center property 424 // [image_link](https://support.google.com/merchants/answer/6324350). 425 // Schema.org property [Product.image](https://schema.org/image). 426 Images []*Image `protobuf:"bytes,23,rep,name=images,proto3" json:"images,omitempty"` 427 // The target group associated with a given audience (e.g. male, veterans, 428 // car owners, musicians, etc.) of the product. 429 Audience *Audience `protobuf:"bytes,24,opt,name=audience,proto3" json:"audience,omitempty"` 430 // The color of the product. 431 // 432 // Google Merchant Center property 433 // [color](https://support.google.com/merchants/answer/6324487). Schema.org 434 // property [Product.color](https://schema.org/color). 435 ColorInfo *ColorInfo `protobuf:"bytes,25,opt,name=color_info,json=colorInfo,proto3" json:"color_info,omitempty"` 436 // The size of the product. To represent different size systems or size types, 437 // consider using this format: [[[size_system:]size_type:]size_value]. 438 // 439 // For example, in "US:MENS:M", "US" represents size system; "MENS" represents 440 // size type; "M" represents size value. In "GIRLS:27", size system is empty; 441 // "GIRLS" represents size type; "27" represents size value. In "32 inches", 442 // both size system and size type are empty, while size value is "32 inches". 443 // 444 // A maximum of 20 values are allowed per 445 // [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 446 // encoded string with a length limit of 128 characters. Otherwise, an 447 // INVALID_ARGUMENT error is returned. 448 // 449 // Google Merchant Center property 450 // [size](https://support.google.com/merchants/answer/6324492), 451 // [size_type](https://support.google.com/merchants/answer/6324497) and 452 // [size_system](https://support.google.com/merchants/answer/6324502). 453 // Schema.org property [Product.size](https://schema.org/size). 454 Sizes []string `protobuf:"bytes,26,rep,name=sizes,proto3" json:"sizes,omitempty"` 455 // The material of the product. For example, "leather", "wooden". 456 // 457 // A maximum of 20 values are allowed. Each value must be a UTF-8 encoded 458 // string with a length limit of 128 characters. Otherwise, an 459 // INVALID_ARGUMENT error is returned. 460 // 461 // Google Merchant Center property 462 // [material](https://support.google.com/merchants/answer/6324410). Schema.org 463 // property [Product.material](https://schema.org/material). 464 Materials []string `protobuf:"bytes,27,rep,name=materials,proto3" json:"materials,omitempty"` 465 // The pattern or graphic print of the product. For example, "striped", "polka 466 // dot", "paisley". 467 // 468 // A maximum of 20 values are allowed per 469 // [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 470 // encoded string with a length limit of 128 characters. Otherwise, an 471 // INVALID_ARGUMENT error is returned. 472 // 473 // Google Merchant Center property 474 // [pattern](https://support.google.com/merchants/answer/6324483). Schema.org 475 // property [Product.pattern](https://schema.org/pattern). 476 Patterns []string `protobuf:"bytes,28,rep,name=patterns,proto3" json:"patterns,omitempty"` 477 // The condition of the product. Strongly encouraged to use the standard 478 // values: "new", "refurbished", "used". 479 // 480 // A maximum of 5 values are allowed per 481 // [Product][google.cloud.retail.v2.Product]. Each value must be a UTF-8 482 // encoded string with a length limit of 128 characters. Otherwise, an 483 // INVALID_ARGUMENT error is returned. 484 // 485 // Google Merchant Center property 486 // [condition](https://support.google.com/merchants/answer/6324469). 487 // Schema.org property 488 // [Offer.itemCondition](https://schema.org/itemCondition). 489 Conditions []string `protobuf:"bytes,29,rep,name=conditions,proto3" json:"conditions,omitempty"` 490 // The promotions applied to the product. A maximum of 10 values are allowed 491 // per [Product][google.cloud.retail.v2.Product]. 492 Promotions []*Promotion `protobuf:"bytes,34,rep,name=promotions,proto3" json:"promotions,omitempty"` 493 // The timestamp when the product is published by the retailer for the first 494 // time, which indicates the freshness of the products. Note that this field 495 // is different from 496 // [available_time][google.cloud.retail.v2.Product.available_time], given it 497 // purely describes product freshness regardless of when it is available on 498 // search and recommendation. 499 PublishTime *timestamppb.Timestamp `protobuf:"bytes,33,opt,name=publish_time,json=publishTime,proto3" json:"publish_time,omitempty"` 500 // Indicates which fields in the [Product][google.cloud.retail.v2.Product]s 501 // are returned in [SearchResponse][google.cloud.retail.v2.SearchResponse]. 502 // 503 // Supported fields for all [type][google.cloud.retail.v2.Product.type]s: 504 // 505 // * [audience][google.cloud.retail.v2.Product.audience] 506 // * [availability][google.cloud.retail.v2.Product.availability] 507 // * [brands][google.cloud.retail.v2.Product.brands] 508 // * [color_info][google.cloud.retail.v2.Product.color_info] 509 // * [conditions][google.cloud.retail.v2.Product.conditions] 510 // * [gtin][google.cloud.retail.v2.Product.gtin] 511 // * [materials][google.cloud.retail.v2.Product.materials] 512 // * [name][google.cloud.retail.v2.Product.name] 513 // * [patterns][google.cloud.retail.v2.Product.patterns] 514 // * [price_info][google.cloud.retail.v2.Product.price_info] 515 // * [rating][google.cloud.retail.v2.Product.rating] 516 // * [sizes][google.cloud.retail.v2.Product.sizes] 517 // * [title][google.cloud.retail.v2.Product.title] 518 // * [uri][google.cloud.retail.v2.Product.uri] 519 // 520 // Supported fields only for 521 // [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] and 522 // [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION]: 523 // 524 // * [categories][google.cloud.retail.v2.Product.categories] 525 // * [description][google.cloud.retail.v2.Product.description] 526 // * [images][google.cloud.retail.v2.Product.images] 527 // 528 // Supported fields only for 529 // [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT]: 530 // 531 // * Only the first image in [images][google.cloud.retail.v2.Product.images] 532 // 533 // To mark [attributes][google.cloud.retail.v2.Product.attributes] as 534 // retrievable, include paths of the form "attributes.key" where "key" is the 535 // key of a custom attribute, as specified in 536 // [attributes][google.cloud.retail.v2.Product.attributes]. 537 // 538 // For [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] and 539 // [Type.COLLECTION][google.cloud.retail.v2.Product.Type.COLLECTION], the 540 // following fields are always returned in 541 // [SearchResponse][google.cloud.retail.v2.SearchResponse] by default: 542 // 543 // * [name][google.cloud.retail.v2.Product.name] 544 // 545 // For [Type.VARIANT][google.cloud.retail.v2.Product.Type.VARIANT], the 546 // following fields are always returned in by default: 547 // 548 // * [name][google.cloud.retail.v2.Product.name] 549 // * [color_info][google.cloud.retail.v2.Product.color_info] 550 // 551 // Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is 552 // returned. 553 // 554 // Note: Returning more fields in 555 // [SearchResponse][google.cloud.retail.v2.SearchResponse] may increase 556 // response payload size and serving latency. 557 RetrievableFields *fieldmaskpb.FieldMask `protobuf:"bytes,30,opt,name=retrievable_fields,json=retrievableFields,proto3" json:"retrievable_fields,omitempty"` 558 // Output only. Product variants grouped together on primary product which 559 // share similar product attributes. It's automatically grouped by 560 // [primary_product_id][google.cloud.retail.v2.Product.primary_product_id] for 561 // all the product variants. Only populated for 562 // [Type.PRIMARY][google.cloud.retail.v2.Product.Type.PRIMARY] 563 // [Product][google.cloud.retail.v2.Product]s. 564 // 565 // Note: This field is OUTPUT_ONLY for 566 // [ProductService.GetProduct][google.cloud.retail.v2.ProductService.GetProduct]. 567 // Do not set this field in API requests. 568 Variants []*Product `protobuf:"bytes,31,rep,name=variants,proto3" json:"variants,omitempty"` 569} 570 571func (x *Product) Reset() { 572 *x = Product{} 573 if protoimpl.UnsafeEnabled { 574 mi := &file_google_cloud_retail_v2_product_proto_msgTypes[0] 575 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 576 ms.StoreMessageInfo(mi) 577 } 578} 579 580func (x *Product) String() string { 581 return protoimpl.X.MessageStringOf(x) 582} 583 584func (*Product) ProtoMessage() {} 585 586func (x *Product) ProtoReflect() protoreflect.Message { 587 mi := &file_google_cloud_retail_v2_product_proto_msgTypes[0] 588 if protoimpl.UnsafeEnabled && x != nil { 589 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 590 if ms.LoadMessageInfo() == nil { 591 ms.StoreMessageInfo(mi) 592 } 593 return ms 594 } 595 return mi.MessageOf(x) 596} 597 598// Deprecated: Use Product.ProtoReflect.Descriptor instead. 599func (*Product) Descriptor() ([]byte, []int) { 600 return file_google_cloud_retail_v2_product_proto_rawDescGZIP(), []int{0} 601} 602 603func (m *Product) GetExpiration() isProduct_Expiration { 604 if m != nil { 605 return m.Expiration 606 } 607 return nil 608} 609 610func (x *Product) GetExpireTime() *timestamppb.Timestamp { 611 if x, ok := x.GetExpiration().(*Product_ExpireTime); ok { 612 return x.ExpireTime 613 } 614 return nil 615} 616 617func (x *Product) GetTtl() *durationpb.Duration { 618 if x, ok := x.GetExpiration().(*Product_Ttl); ok { 619 return x.Ttl 620 } 621 return nil 622} 623 624func (x *Product) GetName() string { 625 if x != nil { 626 return x.Name 627 } 628 return "" 629} 630 631func (x *Product) GetId() string { 632 if x != nil { 633 return x.Id 634 } 635 return "" 636} 637 638func (x *Product) GetType() Product_Type { 639 if x != nil { 640 return x.Type 641 } 642 return Product_TYPE_UNSPECIFIED 643} 644 645func (x *Product) GetPrimaryProductId() string { 646 if x != nil { 647 return x.PrimaryProductId 648 } 649 return "" 650} 651 652func (x *Product) GetCollectionMemberIds() []string { 653 if x != nil { 654 return x.CollectionMemberIds 655 } 656 return nil 657} 658 659func (x *Product) GetGtin() string { 660 if x != nil { 661 return x.Gtin 662 } 663 return "" 664} 665 666func (x *Product) GetCategories() []string { 667 if x != nil { 668 return x.Categories 669 } 670 return nil 671} 672 673func (x *Product) GetTitle() string { 674 if x != nil { 675 return x.Title 676 } 677 return "" 678} 679 680func (x *Product) GetBrands() []string { 681 if x != nil { 682 return x.Brands 683 } 684 return nil 685} 686 687func (x *Product) GetDescription() string { 688 if x != nil { 689 return x.Description 690 } 691 return "" 692} 693 694func (x *Product) GetLanguageCode() string { 695 if x != nil { 696 return x.LanguageCode 697 } 698 return "" 699} 700 701func (x *Product) GetAttributes() map[string]*CustomAttribute { 702 if x != nil { 703 return x.Attributes 704 } 705 return nil 706} 707 708func (x *Product) GetTags() []string { 709 if x != nil { 710 return x.Tags 711 } 712 return nil 713} 714 715func (x *Product) GetPriceInfo() *PriceInfo { 716 if x != nil { 717 return x.PriceInfo 718 } 719 return nil 720} 721 722func (x *Product) GetRating() *Rating { 723 if x != nil { 724 return x.Rating 725 } 726 return nil 727} 728 729func (x *Product) GetAvailableTime() *timestamppb.Timestamp { 730 if x != nil { 731 return x.AvailableTime 732 } 733 return nil 734} 735 736func (x *Product) GetAvailability() Product_Availability { 737 if x != nil { 738 return x.Availability 739 } 740 return Product_AVAILABILITY_UNSPECIFIED 741} 742 743func (x *Product) GetAvailableQuantity() *wrapperspb.Int32Value { 744 if x != nil { 745 return x.AvailableQuantity 746 } 747 return nil 748} 749 750func (x *Product) GetFulfillmentInfo() []*FulfillmentInfo { 751 if x != nil { 752 return x.FulfillmentInfo 753 } 754 return nil 755} 756 757func (x *Product) GetUri() string { 758 if x != nil { 759 return x.Uri 760 } 761 return "" 762} 763 764func (x *Product) GetImages() []*Image { 765 if x != nil { 766 return x.Images 767 } 768 return nil 769} 770 771func (x *Product) GetAudience() *Audience { 772 if x != nil { 773 return x.Audience 774 } 775 return nil 776} 777 778func (x *Product) GetColorInfo() *ColorInfo { 779 if x != nil { 780 return x.ColorInfo 781 } 782 return nil 783} 784 785func (x *Product) GetSizes() []string { 786 if x != nil { 787 return x.Sizes 788 } 789 return nil 790} 791 792func (x *Product) GetMaterials() []string { 793 if x != nil { 794 return x.Materials 795 } 796 return nil 797} 798 799func (x *Product) GetPatterns() []string { 800 if x != nil { 801 return x.Patterns 802 } 803 return nil 804} 805 806func (x *Product) GetConditions() []string { 807 if x != nil { 808 return x.Conditions 809 } 810 return nil 811} 812 813func (x *Product) GetPromotions() []*Promotion { 814 if x != nil { 815 return x.Promotions 816 } 817 return nil 818} 819 820func (x *Product) GetPublishTime() *timestamppb.Timestamp { 821 if x != nil { 822 return x.PublishTime 823 } 824 return nil 825} 826 827func (x *Product) GetRetrievableFields() *fieldmaskpb.FieldMask { 828 if x != nil { 829 return x.RetrievableFields 830 } 831 return nil 832} 833 834func (x *Product) GetVariants() []*Product { 835 if x != nil { 836 return x.Variants 837 } 838 return nil 839} 840 841type isProduct_Expiration interface { 842 isProduct_Expiration() 843} 844 845type Product_ExpireTime struct { 846 // The timestamp when this product becomes unavailable for 847 // [SearchService.Search][google.cloud.retail.v2.SearchService.Search]. 848 // 849 // If it is set, the [Product][google.cloud.retail.v2.Product] is not 850 // available for 851 // [SearchService.Search][google.cloud.retail.v2.SearchService.Search] after 852 // [expire_time][google.cloud.retail.v2.Product.expire_time]. However, the 853 // product can still be retrieved by 854 // [ProductService.GetProduct][google.cloud.retail.v2.ProductService.GetProduct] 855 // and 856 // [ProductService.ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. 857 // 858 // Google Merchant Center property 859 // [expiration_date](https://support.google.com/merchants/answer/6324499). 860 ExpireTime *timestamppb.Timestamp `protobuf:"bytes,16,opt,name=expire_time,json=expireTime,proto3,oneof"` 861} 862 863type Product_Ttl struct { 864 // Input only. The TTL (time to live) of the product. 865 // 866 // If it is set, [expire_time][google.cloud.retail.v2.Product.expire_time] 867 // is set as current timestamp plus 868 // [ttl][google.cloud.retail.v2.Product.ttl]. The derived 869 // [expire_time][google.cloud.retail.v2.Product.expire_time] is returned in 870 // the output and [ttl][google.cloud.retail.v2.Product.ttl] is left blank 871 // when retrieving the [Product][google.cloud.retail.v2.Product]. 872 // 873 // If it is set, the product is not available for 874 // [SearchService.Search][google.cloud.retail.v2.SearchService.Search] after 875 // current timestamp plus [ttl][google.cloud.retail.v2.Product.ttl]. 876 // However, the product can still be retrieved by 877 // [ProductService.GetProduct][google.cloud.retail.v2.ProductService.GetProduct] 878 // and 879 // [ProductService.ListProducts][google.cloud.retail.v2.ProductService.ListProducts]. 880 Ttl *durationpb.Duration `protobuf:"bytes,17,opt,name=ttl,proto3,oneof"` 881} 882 883func (*Product_ExpireTime) isProduct_Expiration() {} 884 885func (*Product_Ttl) isProduct_Expiration() {} 886 887var File_google_cloud_retail_v2_product_proto protoreflect.FileDescriptor 888 889var file_google_cloud_retail_v2_product_proto_rawDesc = []byte{ 890 0x0a, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 891 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 892 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 893 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x1a, 0x1c, 894 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 895 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 896 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 897 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 898 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 899 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 900 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 901 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 902 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 903 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 904 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 905 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 906 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 907 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 908 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 909 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 910 0x22, 0x85, 0x10, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x3d, 0x0a, 0x0b, 911 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 912 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 913 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 914 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x03, 0x74, 915 0x74, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 916 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 917 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x04, 0x48, 0x00, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 918 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 919 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 920 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3d, 0x0a, 921 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 922 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 923 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x54, 0x79, 0x70, 924 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x12, 925 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 926 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 927 0x79, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x6f, 928 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 929 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 930 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x12, 931 0x0a, 0x04, 0x67, 0x74, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x74, 932 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 933 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 934 0x65, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 935 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 936 0x06, 0x62, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x62, 937 0x72, 0x61, 0x6e, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 938 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 939 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 940 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 941 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x4f, 0x0a, 0x0a, 942 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 943 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 944 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 945 0x74, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 946 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 947 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 948 0x73, 0x12, 0x40, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 949 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 950 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 951 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x49, 952 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x06, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 953 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 954 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x61, 0x74, 955 0x69, 0x6e, 0x67, 0x52, 0x06, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x41, 0x0a, 0x0e, 0x61, 956 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 957 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 958 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 959 0x0d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x50, 960 0x0a, 0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x13, 961 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 962 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 963 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 964 0x74, 0x79, 0x52, 0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 965 0x12, 0x4a, 0x0a, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 966 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 967 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 968 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 969 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x52, 0x0a, 0x10, 970 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 971 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 972 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 973 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 974 0x0f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 975 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 976 0x72, 0x69, 0x12, 0x35, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x17, 0x20, 0x03, 977 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 978 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6d, 0x61, 0x67, 979 0x65, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x08, 0x61, 0x75, 0x64, 980 0x69, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 981 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 982 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x61, 983 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 984 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 985 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 986 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 987 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x69, 0x7a, 988 0x65, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x73, 0x69, 0x7a, 0x65, 0x73, 0x12, 989 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x1b, 0x20, 0x03, 990 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 991 0x08, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x09, 0x52, 992 0x08, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 993 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 994 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 995 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 996 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 997 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 998 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 999 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x21, 0x20, 0x01, 1000 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1001 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 1002 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x12, 0x72, 1003 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 1004 0x73, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1005 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 1006 0x61, 0x73, 0x6b, 0x52, 0x11, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x62, 0x6c, 0x65, 1007 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 1008 0x74, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1009 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 1010 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 1011 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x1a, 0x66, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 1012 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 1013 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3d, 0x0a, 1014 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 1015 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 1016 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 1017 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 1018 0x22, 0x46, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 1019 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 1020 0x0a, 0x07, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, 0x59, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x56, 1021 0x41, 0x52, 0x49, 0x41, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x4f, 0x4c, 0x4c, 1022 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x22, 0x69, 0x0a, 0x0c, 0x41, 0x76, 0x61, 0x69, 1023 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x56, 0x41, 0x49, 1024 0x4c, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 1025 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x5f, 0x53, 0x54, 0x4f, 1026 0x43, 0x4b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x53, 1027 0x54, 0x4f, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x52, 0x45, 0x4f, 0x52, 0x44, 1028 0x45, 0x52, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x43, 0x4b, 0x4f, 0x52, 0x44, 0x45, 1029 0x52, 0x10, 0x04, 0x3a, 0x84, 0x01, 0xea, 0x41, 0x80, 0x01, 0x0a, 0x1d, 0x72, 0x65, 0x74, 0x61, 1030 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 1031 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 1032 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 1033 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 1034 0x6e, 0x7d, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x7b, 0x63, 0x61, 0x74, 1035 0x61, 0x6c, 0x6f, 0x67, 0x7d, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 1036 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 1037 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x7d, 0x42, 0x0c, 0x0a, 0x0a, 0x65, 0x78, 1038 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0xb0, 0x02, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 1039 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 1040 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x42, 0x0c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 1041 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1042 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 1043 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 1044 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x3b, 0x72, 1045 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 1046 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 1047 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1048 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 1049 0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 1050 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0xea, 0x41, 0x6c, 0x0a, 1051 0x1c, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 1052 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x4c, 0x70, 1053 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 1054 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 1055 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 1056 0x7b, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x7d, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 1057 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x7d, 0x62, 0x06, 0x70, 0x72, 0x6f, 1058 0x74, 0x6f, 0x33, 1059} 1060 1061var ( 1062 file_google_cloud_retail_v2_product_proto_rawDescOnce sync.Once 1063 file_google_cloud_retail_v2_product_proto_rawDescData = file_google_cloud_retail_v2_product_proto_rawDesc 1064) 1065 1066func file_google_cloud_retail_v2_product_proto_rawDescGZIP() []byte { 1067 file_google_cloud_retail_v2_product_proto_rawDescOnce.Do(func() { 1068 file_google_cloud_retail_v2_product_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2_product_proto_rawDescData) 1069 }) 1070 return file_google_cloud_retail_v2_product_proto_rawDescData 1071} 1072 1073var file_google_cloud_retail_v2_product_proto_enumTypes = make([]protoimpl.EnumInfo, 2) 1074var file_google_cloud_retail_v2_product_proto_msgTypes = make([]protoimpl.MessageInfo, 2) 1075var file_google_cloud_retail_v2_product_proto_goTypes = []interface{}{ 1076 (Product_Type)(0), // 0: google.cloud.retail.v2.Product.Type 1077 (Product_Availability)(0), // 1: google.cloud.retail.v2.Product.Availability 1078 (*Product)(nil), // 2: google.cloud.retail.v2.Product 1079 nil, // 3: google.cloud.retail.v2.Product.AttributesEntry 1080 (*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp 1081 (*durationpb.Duration)(nil), // 5: google.protobuf.Duration 1082 (*PriceInfo)(nil), // 6: google.cloud.retail.v2.PriceInfo 1083 (*Rating)(nil), // 7: google.cloud.retail.v2.Rating 1084 (*wrapperspb.Int32Value)(nil), // 8: google.protobuf.Int32Value 1085 (*FulfillmentInfo)(nil), // 9: google.cloud.retail.v2.FulfillmentInfo 1086 (*Image)(nil), // 10: google.cloud.retail.v2.Image 1087 (*Audience)(nil), // 11: google.cloud.retail.v2.Audience 1088 (*ColorInfo)(nil), // 12: google.cloud.retail.v2.ColorInfo 1089 (*Promotion)(nil), // 13: google.cloud.retail.v2.Promotion 1090 (*fieldmaskpb.FieldMask)(nil), // 14: google.protobuf.FieldMask 1091 (*CustomAttribute)(nil), // 15: google.cloud.retail.v2.CustomAttribute 1092} 1093var file_google_cloud_retail_v2_product_proto_depIdxs = []int32{ 1094 4, // 0: google.cloud.retail.v2.Product.expire_time:type_name -> google.protobuf.Timestamp 1095 5, // 1: google.cloud.retail.v2.Product.ttl:type_name -> google.protobuf.Duration 1096 0, // 2: google.cloud.retail.v2.Product.type:type_name -> google.cloud.retail.v2.Product.Type 1097 3, // 3: google.cloud.retail.v2.Product.attributes:type_name -> google.cloud.retail.v2.Product.AttributesEntry 1098 6, // 4: google.cloud.retail.v2.Product.price_info:type_name -> google.cloud.retail.v2.PriceInfo 1099 7, // 5: google.cloud.retail.v2.Product.rating:type_name -> google.cloud.retail.v2.Rating 1100 4, // 6: google.cloud.retail.v2.Product.available_time:type_name -> google.protobuf.Timestamp 1101 1, // 7: google.cloud.retail.v2.Product.availability:type_name -> google.cloud.retail.v2.Product.Availability 1102 8, // 8: google.cloud.retail.v2.Product.available_quantity:type_name -> google.protobuf.Int32Value 1103 9, // 9: google.cloud.retail.v2.Product.fulfillment_info:type_name -> google.cloud.retail.v2.FulfillmentInfo 1104 10, // 10: google.cloud.retail.v2.Product.images:type_name -> google.cloud.retail.v2.Image 1105 11, // 11: google.cloud.retail.v2.Product.audience:type_name -> google.cloud.retail.v2.Audience 1106 12, // 12: google.cloud.retail.v2.Product.color_info:type_name -> google.cloud.retail.v2.ColorInfo 1107 13, // 13: google.cloud.retail.v2.Product.promotions:type_name -> google.cloud.retail.v2.Promotion 1108 4, // 14: google.cloud.retail.v2.Product.publish_time:type_name -> google.protobuf.Timestamp 1109 14, // 15: google.cloud.retail.v2.Product.retrievable_fields:type_name -> google.protobuf.FieldMask 1110 2, // 16: google.cloud.retail.v2.Product.variants:type_name -> google.cloud.retail.v2.Product 1111 15, // 17: google.cloud.retail.v2.Product.AttributesEntry.value:type_name -> google.cloud.retail.v2.CustomAttribute 1112 18, // [18:18] is the sub-list for method output_type 1113 18, // [18:18] is the sub-list for method input_type 1114 18, // [18:18] is the sub-list for extension type_name 1115 18, // [18:18] is the sub-list for extension extendee 1116 0, // [0:18] is the sub-list for field type_name 1117} 1118 1119func init() { file_google_cloud_retail_v2_product_proto_init() } 1120func file_google_cloud_retail_v2_product_proto_init() { 1121 if File_google_cloud_retail_v2_product_proto != nil { 1122 return 1123 } 1124 file_google_cloud_retail_v2_common_proto_init() 1125 if !protoimpl.UnsafeEnabled { 1126 file_google_cloud_retail_v2_product_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 1127 switch v := v.(*Product); i { 1128 case 0: 1129 return &v.state 1130 case 1: 1131 return &v.sizeCache 1132 case 2: 1133 return &v.unknownFields 1134 default: 1135 return nil 1136 } 1137 } 1138 } 1139 file_google_cloud_retail_v2_product_proto_msgTypes[0].OneofWrappers = []interface{}{ 1140 (*Product_ExpireTime)(nil), 1141 (*Product_Ttl)(nil), 1142 } 1143 type x struct{} 1144 out := protoimpl.TypeBuilder{ 1145 File: protoimpl.DescBuilder{ 1146 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1147 RawDescriptor: file_google_cloud_retail_v2_product_proto_rawDesc, 1148 NumEnums: 2, 1149 NumMessages: 2, 1150 NumExtensions: 0, 1151 NumServices: 0, 1152 }, 1153 GoTypes: file_google_cloud_retail_v2_product_proto_goTypes, 1154 DependencyIndexes: file_google_cloud_retail_v2_product_proto_depIdxs, 1155 EnumInfos: file_google_cloud_retail_v2_product_proto_enumTypes, 1156 MessageInfos: file_google_cloud_retail_v2_product_proto_msgTypes, 1157 }.Build() 1158 File_google_cloud_retail_v2_product_proto = out.File 1159 file_google_cloud_retail_v2_product_proto_rawDesc = nil 1160 file_google_cloud_retail_v2_product_proto_goTypes = nil 1161 file_google_cloud_retail_v2_product_proto_depIdxs = nil 1162} 1163