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/v2beta/product_service.proto 20 21package retail 22 23import ( 24 context "context" 25 reflect "reflect" 26 sync "sync" 27 28 _ "google.golang.org/genproto/googleapis/api/annotations" 29 longrunning "google.golang.org/genproto/googleapis/longrunning" 30 grpc "google.golang.org/grpc" 31 codes "google.golang.org/grpc/codes" 32 status "google.golang.org/grpc/status" 33 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 34 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 35 emptypb "google.golang.org/protobuf/types/known/emptypb" 36 fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" 37 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 38) 39 40const ( 41 // Verify that this generated code is sufficiently up-to-date. 42 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 43 // Verify that runtime/protoimpl is sufficiently up-to-date. 44 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 45) 46 47// Request message for [CreateProduct][] method. 48type CreateProductRequest struct { 49 state protoimpl.MessageState 50 sizeCache protoimpl.SizeCache 51 unknownFields protoimpl.UnknownFields 52 53 // Required. The parent catalog resource name, such as 54 // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch`. 55 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 56 // Required. The [Product][google.cloud.retail.v2beta.Product] to create. 57 Product *Product `protobuf:"bytes,2,opt,name=product,proto3" json:"product,omitempty"` 58 // Required. The ID to use for the 59 // [Product][google.cloud.retail.v2beta.Product], which will become the final 60 // component of the [Product.name][google.cloud.retail.v2beta.Product.name]. 61 // 62 // If the caller does not have permission to create the 63 // [Product][google.cloud.retail.v2beta.Product], regardless of whether or not 64 // it exists, a PERMISSION_DENIED error is returned. 65 // 66 // This field must be unique among all 67 // [Product][google.cloud.retail.v2beta.Product]s with the same 68 // [parent][google.cloud.retail.v2beta.CreateProductRequest.parent]. 69 // Otherwise, an ALREADY_EXISTS error is returned. 70 // 71 // This field must be a UTF-8 encoded string with a length limit of 128 72 // characters. Otherwise, an INVALID_ARGUMENT error is returned. 73 ProductId string `protobuf:"bytes,3,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"` 74} 75 76func (x *CreateProductRequest) Reset() { 77 *x = CreateProductRequest{} 78 if protoimpl.UnsafeEnabled { 79 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[0] 80 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 81 ms.StoreMessageInfo(mi) 82 } 83} 84 85func (x *CreateProductRequest) String() string { 86 return protoimpl.X.MessageStringOf(x) 87} 88 89func (*CreateProductRequest) ProtoMessage() {} 90 91func (x *CreateProductRequest) ProtoReflect() protoreflect.Message { 92 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[0] 93 if protoimpl.UnsafeEnabled && x != nil { 94 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 95 if ms.LoadMessageInfo() == nil { 96 ms.StoreMessageInfo(mi) 97 } 98 return ms 99 } 100 return mi.MessageOf(x) 101} 102 103// Deprecated: Use CreateProductRequest.ProtoReflect.Descriptor instead. 104func (*CreateProductRequest) Descriptor() ([]byte, []int) { 105 return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{0} 106} 107 108func (x *CreateProductRequest) GetParent() string { 109 if x != nil { 110 return x.Parent 111 } 112 return "" 113} 114 115func (x *CreateProductRequest) GetProduct() *Product { 116 if x != nil { 117 return x.Product 118 } 119 return nil 120} 121 122func (x *CreateProductRequest) GetProductId() string { 123 if x != nil { 124 return x.ProductId 125 } 126 return "" 127} 128 129// Request message for [GetProduct][] method. 130type GetProductRequest struct { 131 state protoimpl.MessageState 132 sizeCache protoimpl.SizeCache 133 unknownFields protoimpl.UnknownFields 134 135 // Required. Full resource name of 136 // [Product][google.cloud.retail.v2beta.Product], such as 137 // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. 138 // 139 // If the caller does not have permission to access the 140 // [Product][google.cloud.retail.v2beta.Product], regardless of whether or not 141 // it exists, a PERMISSION_DENIED error is returned. 142 // 143 // If the requested [Product][google.cloud.retail.v2beta.Product] does not 144 // exist, a NOT_FOUND error is returned. 145 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 146} 147 148func (x *GetProductRequest) Reset() { 149 *x = GetProductRequest{} 150 if protoimpl.UnsafeEnabled { 151 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[1] 152 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 153 ms.StoreMessageInfo(mi) 154 } 155} 156 157func (x *GetProductRequest) String() string { 158 return protoimpl.X.MessageStringOf(x) 159} 160 161func (*GetProductRequest) ProtoMessage() {} 162 163func (x *GetProductRequest) ProtoReflect() protoreflect.Message { 164 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[1] 165 if protoimpl.UnsafeEnabled && x != nil { 166 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 167 if ms.LoadMessageInfo() == nil { 168 ms.StoreMessageInfo(mi) 169 } 170 return ms 171 } 172 return mi.MessageOf(x) 173} 174 175// Deprecated: Use GetProductRequest.ProtoReflect.Descriptor instead. 176func (*GetProductRequest) Descriptor() ([]byte, []int) { 177 return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{1} 178} 179 180func (x *GetProductRequest) GetName() string { 181 if x != nil { 182 return x.Name 183 } 184 return "" 185} 186 187// Request message for [UpdateProduct][] method. 188type UpdateProductRequest struct { 189 state protoimpl.MessageState 190 sizeCache protoimpl.SizeCache 191 unknownFields protoimpl.UnknownFields 192 193 // Required. The product to update/create. 194 // 195 // If the caller does not have permission to update the 196 // [Product][google.cloud.retail.v2beta.Product], regardless of whether or not 197 // it exists, a PERMISSION_DENIED error is returned. 198 // 199 // If the [Product][google.cloud.retail.v2beta.Product] to update does not 200 // exist and 201 // [allow_missing][google.cloud.retail.v2beta.UpdateProductRequest.allow_missing] 202 // is not set, a NOT_FOUND error is returned. 203 Product *Product `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"` 204 // Indicates which fields in the provided 205 // [Product][google.cloud.retail.v2beta.Product] to update. The immutable and 206 // output only fields are NOT supported. If not set, all supported fields (the 207 // fields that are neither immutable nor output only) are updated. 208 // 209 // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error 210 // is returned. 211 UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 212 // If set to true, and the [Product][google.cloud.retail.v2beta.Product] is 213 // not found, a new [Product][google.cloud.retail.v2beta.Product] will be 214 // created. In this situation, `update_mask` is ignored. 215 AllowMissing bool `protobuf:"varint,3,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"` 216} 217 218func (x *UpdateProductRequest) Reset() { 219 *x = UpdateProductRequest{} 220 if protoimpl.UnsafeEnabled { 221 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[2] 222 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 223 ms.StoreMessageInfo(mi) 224 } 225} 226 227func (x *UpdateProductRequest) String() string { 228 return protoimpl.X.MessageStringOf(x) 229} 230 231func (*UpdateProductRequest) ProtoMessage() {} 232 233func (x *UpdateProductRequest) ProtoReflect() protoreflect.Message { 234 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[2] 235 if protoimpl.UnsafeEnabled && x != nil { 236 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 237 if ms.LoadMessageInfo() == nil { 238 ms.StoreMessageInfo(mi) 239 } 240 return ms 241 } 242 return mi.MessageOf(x) 243} 244 245// Deprecated: Use UpdateProductRequest.ProtoReflect.Descriptor instead. 246func (*UpdateProductRequest) Descriptor() ([]byte, []int) { 247 return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{2} 248} 249 250func (x *UpdateProductRequest) GetProduct() *Product { 251 if x != nil { 252 return x.Product 253 } 254 return nil 255} 256 257func (x *UpdateProductRequest) GetUpdateMask() *fieldmaskpb.FieldMask { 258 if x != nil { 259 return x.UpdateMask 260 } 261 return nil 262} 263 264func (x *UpdateProductRequest) GetAllowMissing() bool { 265 if x != nil { 266 return x.AllowMissing 267 } 268 return false 269} 270 271// Request message for [DeleteProduct][] method. 272type DeleteProductRequest struct { 273 state protoimpl.MessageState 274 sizeCache protoimpl.SizeCache 275 unknownFields protoimpl.UnknownFields 276 277 // Required. Full resource name of 278 // [Product][google.cloud.retail.v2beta.Product], such as 279 // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. 280 // 281 // If the caller does not have permission to delete the 282 // [Product][google.cloud.retail.v2beta.Product], regardless of whether or not 283 // it exists, a PERMISSION_DENIED error is returned. 284 // 285 // If the [Product][google.cloud.retail.v2beta.Product] to delete does not 286 // exist, a NOT_FOUND error is returned. 287 // 288 // The [Product][google.cloud.retail.v2beta.Product] to delete can neither be 289 // a 290 // [Product.Type.COLLECTION][google.cloud.retail.v2beta.Product.Type.COLLECTION] 291 // [Product][google.cloud.retail.v2beta.Product] member nor a 292 // [Product.Type.PRIMARY][google.cloud.retail.v2beta.Product.Type.PRIMARY] 293 // [Product][google.cloud.retail.v2beta.Product] with more than one 294 // [variants][google.cloud.retail.v2beta.Product.Type.VARIANT]. Otherwise, an 295 // INVALID_ARGUMENT error is returned. 296 // 297 // All inventory information for the named 298 // [Product][google.cloud.retail.v2beta.Product] will be deleted. 299 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 300} 301 302func (x *DeleteProductRequest) Reset() { 303 *x = DeleteProductRequest{} 304 if protoimpl.UnsafeEnabled { 305 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[3] 306 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 307 ms.StoreMessageInfo(mi) 308 } 309} 310 311func (x *DeleteProductRequest) String() string { 312 return protoimpl.X.MessageStringOf(x) 313} 314 315func (*DeleteProductRequest) ProtoMessage() {} 316 317func (x *DeleteProductRequest) ProtoReflect() protoreflect.Message { 318 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[3] 319 if protoimpl.UnsafeEnabled && x != nil { 320 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 321 if ms.LoadMessageInfo() == nil { 322 ms.StoreMessageInfo(mi) 323 } 324 return ms 325 } 326 return mi.MessageOf(x) 327} 328 329// Deprecated: Use DeleteProductRequest.ProtoReflect.Descriptor instead. 330func (*DeleteProductRequest) Descriptor() ([]byte, []int) { 331 return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{3} 332} 333 334func (x *DeleteProductRequest) GetName() string { 335 if x != nil { 336 return x.Name 337 } 338 return "" 339} 340 341// Request message for 342// [ProductService.ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts] 343// method. 344type ListProductsRequest struct { 345 state protoimpl.MessageState 346 sizeCache protoimpl.SizeCache 347 unknownFields protoimpl.UnknownFields 348 349 // Required. The parent branch resource name, such as 350 // `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use 351 // `default_branch` as the branch ID, to list products under the default 352 // branch. 353 // 354 // If the caller does not have permission to list 355 // [Product][google.cloud.retail.v2beta.Product]s under this branch, 356 // regardless of whether or not this branch exists, a PERMISSION_DENIED error 357 // is returned. 358 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 359 // Maximum number of [Product][google.cloud.retail.v2beta.Product]s to return. 360 // If unspecified, defaults to 100. The maximum allowed value is 1000. Values 361 // above 1000 will be coerced to 1000. 362 // 363 // If this field is negative, an INVALID_ARGUMENT error is returned. 364 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 365 // A page token 366 // [ListProductsResponse.next_page_token][google.cloud.retail.v2beta.ListProductsResponse.next_page_token], 367 // received from a previous 368 // [ProductService.ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts] 369 // call. Provide this to retrieve the subsequent page. 370 // 371 // When paginating, all other parameters provided to 372 // [ProductService.ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts] 373 // must match the call that provided the page token. Otherwise, an 374 // INVALID_ARGUMENT error is returned. 375 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 376 // A filter to apply on the list results. Supported features: 377 // 378 // * List all the products under the parent branch if 379 // [filter][google.cloud.retail.v2beta.ListProductsRequest.filter] is unset. 380 // * List 381 // [Product.Type.VARIANT][google.cloud.retail.v2beta.Product.Type.VARIANT] 382 // [Product][google.cloud.retail.v2beta.Product]s sharing the same 383 // [Product.Type.PRIMARY][google.cloud.retail.v2beta.Product.Type.PRIMARY] 384 // [Product][google.cloud.retail.v2beta.Product]. For example: 385 // `primary_product_id = "some_product_id"` 386 // * List [Product][google.cloud.retail.v2beta.Product]s bundled in a 387 // [Product.Type.COLLECTION][google.cloud.retail.v2beta.Product.Type.COLLECTION] 388 // [Product][google.cloud.retail.v2beta.Product]. 389 // For example: 390 // `collection_product_id = "some_product_id"` 391 // * List [Product][google.cloud.retail.v2beta.Product]s with a partibular 392 // type. For example: 393 // `type = "PRIMARY"` 394 // `type = "VARIANT"` 395 // `type = "COLLECTION"` 396 // 397 // If the field is unrecognizable, an INVALID_ARGUMENT error is returned. 398 // 399 // If the specified 400 // [Product.Type.PRIMARY][google.cloud.retail.v2beta.Product.Type.PRIMARY] 401 // [Product][google.cloud.retail.v2beta.Product] or 402 // [Product.Type.COLLECTION][google.cloud.retail.v2beta.Product.Type.COLLECTION] 403 // [Product][google.cloud.retail.v2beta.Product] does not exist, a NOT_FOUND 404 // error is returned. 405 Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` 406 // The fields of [Product][google.cloud.retail.v2beta.Product] to return in 407 // the responses. If not set or empty, the following fields are returned: 408 // 409 // * [Product.name][google.cloud.retail.v2beta.Product.name] 410 // * [Product.id][google.cloud.retail.v2beta.Product.id] 411 // * [Product.title][google.cloud.retail.v2beta.Product.title] 412 // * [Product.uri][google.cloud.retail.v2beta.Product.uri] 413 // * [Product.images][google.cloud.retail.v2beta.Product.images] 414 // * [Product.price_info][google.cloud.retail.v2beta.Product.price_info] 415 // * [Product.brands][google.cloud.retail.v2beta.Product.brands] 416 // 417 // If "*" is provided, all fields are returned. 418 // [Product.name][google.cloud.retail.v2beta.Product.name] is always returned 419 // no matter what mask is set. 420 // 421 // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error 422 // is returned. 423 ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,5,opt,name=read_mask,json=readMask,proto3" json:"read_mask,omitempty"` 424} 425 426func (x *ListProductsRequest) Reset() { 427 *x = ListProductsRequest{} 428 if protoimpl.UnsafeEnabled { 429 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[4] 430 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 431 ms.StoreMessageInfo(mi) 432 } 433} 434 435func (x *ListProductsRequest) String() string { 436 return protoimpl.X.MessageStringOf(x) 437} 438 439func (*ListProductsRequest) ProtoMessage() {} 440 441func (x *ListProductsRequest) ProtoReflect() protoreflect.Message { 442 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[4] 443 if protoimpl.UnsafeEnabled && x != nil { 444 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 445 if ms.LoadMessageInfo() == nil { 446 ms.StoreMessageInfo(mi) 447 } 448 return ms 449 } 450 return mi.MessageOf(x) 451} 452 453// Deprecated: Use ListProductsRequest.ProtoReflect.Descriptor instead. 454func (*ListProductsRequest) Descriptor() ([]byte, []int) { 455 return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{4} 456} 457 458func (x *ListProductsRequest) GetParent() string { 459 if x != nil { 460 return x.Parent 461 } 462 return "" 463} 464 465func (x *ListProductsRequest) GetPageSize() int32 { 466 if x != nil { 467 return x.PageSize 468 } 469 return 0 470} 471 472func (x *ListProductsRequest) GetPageToken() string { 473 if x != nil { 474 return x.PageToken 475 } 476 return "" 477} 478 479func (x *ListProductsRequest) GetFilter() string { 480 if x != nil { 481 return x.Filter 482 } 483 return "" 484} 485 486func (x *ListProductsRequest) GetReadMask() *fieldmaskpb.FieldMask { 487 if x != nil { 488 return x.ReadMask 489 } 490 return nil 491} 492 493// Response message for 494// [ProductService.ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts] 495// method. 496type ListProductsResponse struct { 497 state protoimpl.MessageState 498 sizeCache protoimpl.SizeCache 499 unknownFields protoimpl.UnknownFields 500 501 // The [Product][google.cloud.retail.v2beta.Product]s. 502 Products []*Product `protobuf:"bytes,1,rep,name=products,proto3" json:"products,omitempty"` 503 // A token that can be sent as 504 // [ListProductsRequest.page_token][google.cloud.retail.v2beta.ListProductsRequest.page_token] 505 // to retrieve the next page. If this field is omitted, there are no 506 // subsequent pages. 507 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 508} 509 510func (x *ListProductsResponse) Reset() { 511 *x = ListProductsResponse{} 512 if protoimpl.UnsafeEnabled { 513 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[5] 514 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 515 ms.StoreMessageInfo(mi) 516 } 517} 518 519func (x *ListProductsResponse) String() string { 520 return protoimpl.X.MessageStringOf(x) 521} 522 523func (*ListProductsResponse) ProtoMessage() {} 524 525func (x *ListProductsResponse) ProtoReflect() protoreflect.Message { 526 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[5] 527 if protoimpl.UnsafeEnabled && x != nil { 528 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 529 if ms.LoadMessageInfo() == nil { 530 ms.StoreMessageInfo(mi) 531 } 532 return ms 533 } 534 return mi.MessageOf(x) 535} 536 537// Deprecated: Use ListProductsResponse.ProtoReflect.Descriptor instead. 538func (*ListProductsResponse) Descriptor() ([]byte, []int) { 539 return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{5} 540} 541 542func (x *ListProductsResponse) GetProducts() []*Product { 543 if x != nil { 544 return x.Products 545 } 546 return nil 547} 548 549func (x *ListProductsResponse) GetNextPageToken() string { 550 if x != nil { 551 return x.NextPageToken 552 } 553 return "" 554} 555 556// Request message for [SetInventory][] method. 557type SetInventoryRequest struct { 558 state protoimpl.MessageState 559 sizeCache protoimpl.SizeCache 560 unknownFields protoimpl.UnknownFields 561 562 // Required. The inventory information to update. The allowable fields to 563 // update are: 564 // * [Product.price_info][google.cloud.retail.v2beta.Product.price_info] 565 // * [Product.availability][google.cloud.retail.v2beta.Product.availability] 566 // * [Product.available_quantity][google.cloud.retail.v2beta.Product.available_quantity] 567 // * [Product.fulfillment_info][google.cloud.retail.v2beta.Product.fulfillment_info] 568 // The updated inventory fields must be specified in 569 // [SetInventoryRequest.set_mask][google.cloud.retail.v2beta.SetInventoryRequest.set_mask]. 570 // 571 // If [SetInventoryRequest.inventory.name][] is empty or invalid, an 572 // INVALID_ARGUMENT error is returned. 573 // 574 // If the caller does not have permission to update the 575 // [Product][google.cloud.retail.v2beta.Product] named in 576 // [Product.name][google.cloud.retail.v2beta.Product.name], regardless of 577 // whether or not it exists, a PERMISSION_DENIED error is returned. 578 // 579 // If the [Product][google.cloud.retail.v2beta.Product] to update does not 580 // have existing inventory information, the provided inventory information 581 // will be inserted. 582 // 583 // If the [Product][google.cloud.retail.v2beta.Product] to update has existing 584 // inventory information, the provided inventory information will be merged 585 // while respecting the last update time for each inventory field, using the 586 // provided or default value for 587 // [SetInventoryRequest.set_time][google.cloud.retail.v2beta.SetInventoryRequest.set_time]. 588 // 589 // The last update time is recorded for the following inventory fields: 590 // * [Product.price_info][google.cloud.retail.v2beta.Product.price_info] 591 // * [Product.availability][google.cloud.retail.v2beta.Product.availability] 592 // * [Product.available_quantity][google.cloud.retail.v2beta.Product.available_quantity] 593 // * [Product.fulfillment_info][google.cloud.retail.v2beta.Product.fulfillment_info] 594 // 595 // If a full overwrite of inventory information while ignoring timestamps is 596 // needed, [UpdateProduct][] should be invoked instead. 597 Inventory *Product `protobuf:"bytes,1,opt,name=inventory,proto3" json:"inventory,omitempty"` 598 // Indicates which inventory fields in the provided 599 // [Product][google.cloud.retail.v2beta.Product] to update. If not set or set 600 // with empty paths, all inventory fields will be updated. 601 // 602 // If an unsupported or unknown field is provided, an INVALID_ARGUMENT error 603 // is returned and the entire update will be ignored. 604 SetMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=set_mask,json=setMask,proto3" json:"set_mask,omitempty"` 605 // The time when the request is issued, used to prevent 606 // out-of-order updates on inventory fields with the last update time 607 // recorded. If not provided, the internal system time will be used. 608 SetTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=set_time,json=setTime,proto3" json:"set_time,omitempty"` 609 // If set to true, and the [Product][google.cloud.retail.v2beta.Product] with 610 // name [Product.name][google.cloud.retail.v2beta.Product.name] is not found, 611 // the inventory update will still be processed and retained for at most 1 day 612 // until the [Product][google.cloud.retail.v2beta.Product] is created. If set 613 // to false, an INVALID_ARGUMENT error is returned if the 614 // [Product][google.cloud.retail.v2beta.Product] is not found. 615 AllowMissing bool `protobuf:"varint,4,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"` 616} 617 618func (x *SetInventoryRequest) Reset() { 619 *x = SetInventoryRequest{} 620 if protoimpl.UnsafeEnabled { 621 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[6] 622 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 623 ms.StoreMessageInfo(mi) 624 } 625} 626 627func (x *SetInventoryRequest) String() string { 628 return protoimpl.X.MessageStringOf(x) 629} 630 631func (*SetInventoryRequest) ProtoMessage() {} 632 633func (x *SetInventoryRequest) ProtoReflect() protoreflect.Message { 634 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[6] 635 if protoimpl.UnsafeEnabled && x != nil { 636 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 637 if ms.LoadMessageInfo() == nil { 638 ms.StoreMessageInfo(mi) 639 } 640 return ms 641 } 642 return mi.MessageOf(x) 643} 644 645// Deprecated: Use SetInventoryRequest.ProtoReflect.Descriptor instead. 646func (*SetInventoryRequest) Descriptor() ([]byte, []int) { 647 return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{6} 648} 649 650func (x *SetInventoryRequest) GetInventory() *Product { 651 if x != nil { 652 return x.Inventory 653 } 654 return nil 655} 656 657func (x *SetInventoryRequest) GetSetMask() *fieldmaskpb.FieldMask { 658 if x != nil { 659 return x.SetMask 660 } 661 return nil 662} 663 664func (x *SetInventoryRequest) GetSetTime() *timestamppb.Timestamp { 665 if x != nil { 666 return x.SetTime 667 } 668 return nil 669} 670 671func (x *SetInventoryRequest) GetAllowMissing() bool { 672 if x != nil { 673 return x.AllowMissing 674 } 675 return false 676} 677 678// Metadata related to the progress of the SetInventory operation. 679// Currently empty because there is no meaningful metadata populated from the 680// [SetInventory][] method. 681type SetInventoryMetadata struct { 682 state protoimpl.MessageState 683 sizeCache protoimpl.SizeCache 684 unknownFields protoimpl.UnknownFields 685} 686 687func (x *SetInventoryMetadata) Reset() { 688 *x = SetInventoryMetadata{} 689 if protoimpl.UnsafeEnabled { 690 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[7] 691 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 692 ms.StoreMessageInfo(mi) 693 } 694} 695 696func (x *SetInventoryMetadata) String() string { 697 return protoimpl.X.MessageStringOf(x) 698} 699 700func (*SetInventoryMetadata) ProtoMessage() {} 701 702func (x *SetInventoryMetadata) ProtoReflect() protoreflect.Message { 703 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[7] 704 if protoimpl.UnsafeEnabled && x != nil { 705 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 706 if ms.LoadMessageInfo() == nil { 707 ms.StoreMessageInfo(mi) 708 } 709 return ms 710 } 711 return mi.MessageOf(x) 712} 713 714// Deprecated: Use SetInventoryMetadata.ProtoReflect.Descriptor instead. 715func (*SetInventoryMetadata) Descriptor() ([]byte, []int) { 716 return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{7} 717} 718 719// Response of the SetInventoryRequest. Currently empty because 720// there is no meaningful response populated from the [SetInventory][] 721// method. 722type SetInventoryResponse struct { 723 state protoimpl.MessageState 724 sizeCache protoimpl.SizeCache 725 unknownFields protoimpl.UnknownFields 726} 727 728func (x *SetInventoryResponse) Reset() { 729 *x = SetInventoryResponse{} 730 if protoimpl.UnsafeEnabled { 731 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[8] 732 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 733 ms.StoreMessageInfo(mi) 734 } 735} 736 737func (x *SetInventoryResponse) String() string { 738 return protoimpl.X.MessageStringOf(x) 739} 740 741func (*SetInventoryResponse) ProtoMessage() {} 742 743func (x *SetInventoryResponse) ProtoReflect() protoreflect.Message { 744 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[8] 745 if protoimpl.UnsafeEnabled && x != nil { 746 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 747 if ms.LoadMessageInfo() == nil { 748 ms.StoreMessageInfo(mi) 749 } 750 return ms 751 } 752 return mi.MessageOf(x) 753} 754 755// Deprecated: Use SetInventoryResponse.ProtoReflect.Descriptor instead. 756func (*SetInventoryResponse) Descriptor() ([]byte, []int) { 757 return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{8} 758} 759 760// Request message for [AddFulfillmentPlaces][] method. 761type AddFulfillmentPlacesRequest struct { 762 state protoimpl.MessageState 763 sizeCache protoimpl.SizeCache 764 unknownFields protoimpl.UnknownFields 765 766 // Required. Full resource name of 767 // [Product][google.cloud.retail.v2beta.Product], such as 768 // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. 769 // 770 // If the caller does not have permission to access the 771 // [Product][google.cloud.retail.v2beta.Product], regardless of whether or not 772 // it exists, a PERMISSION_DENIED error is returned. 773 Product string `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"` 774 // Required. The fulfillment type, including commonly used types (such as 775 // pickup in store and same day delivery), and custom types. 776 // 777 // Supported values: 778 // 779 // * "pickup-in-store" 780 // * "ship-to-store" 781 // * "same-day-delivery" 782 // * "next-day-delivery" 783 // * "custom-type-1" 784 // * "custom-type-2" 785 // * "custom-type-3" 786 // * "custom-type-4" 787 // * "custom-type-5" 788 // 789 // If this field is set to an invalid value other than these, an 790 // INVALID_ARGUMENT error is returned. 791 // 792 // This field directly corresponds to [Product.fulfillment_info.type][]. 793 Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` 794 // Required. The IDs for this 795 // [type][google.cloud.retail.v2beta.AddFulfillmentPlacesRequest.type], such 796 // as the store IDs for "pickup-in-store" or the region IDs for 797 // "same-day-delivery" to be added for this 798 // [type][google.cloud.retail.v2beta.AddFulfillmentPlacesRequest.type]. 799 // Duplicate IDs will be automatically ignored. 800 // 801 // At least 1 value is required, and a maximum of 2000 values are allowed. 802 // Each value must be a string with a length limit of 10 characters, matching 803 // the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an 804 // INVALID_ARGUMENT error is returned. 805 // 806 // If the total number of place IDs exceeds 2000 for this 807 // [type][google.cloud.retail.v2beta.AddFulfillmentPlacesRequest.type] after 808 // adding, then the update will be rejected. 809 PlaceIds []string `protobuf:"bytes,3,rep,name=place_ids,json=placeIds,proto3" json:"place_ids,omitempty"` 810 // The time when the fulfillment updates are issued, used to prevent 811 // out-of-order updates on fulfillment information. If not provided, the 812 // internal system time will be used. 813 AddTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=add_time,json=addTime,proto3" json:"add_time,omitempty"` 814 // If set to true, and the [Product][google.cloud.retail.v2beta.Product] is 815 // not found, the fulfillment information will still be processed and retained 816 // for at most 1 day and processed once the 817 // [Product][google.cloud.retail.v2beta.Product] is created. If set to false, 818 // an INVALID_ARGUMENT error is returned if the 819 // [Product][google.cloud.retail.v2beta.Product] is not found. 820 AllowMissing bool `protobuf:"varint,5,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"` 821} 822 823func (x *AddFulfillmentPlacesRequest) Reset() { 824 *x = AddFulfillmentPlacesRequest{} 825 if protoimpl.UnsafeEnabled { 826 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[9] 827 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 828 ms.StoreMessageInfo(mi) 829 } 830} 831 832func (x *AddFulfillmentPlacesRequest) String() string { 833 return protoimpl.X.MessageStringOf(x) 834} 835 836func (*AddFulfillmentPlacesRequest) ProtoMessage() {} 837 838func (x *AddFulfillmentPlacesRequest) ProtoReflect() protoreflect.Message { 839 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[9] 840 if protoimpl.UnsafeEnabled && x != nil { 841 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 842 if ms.LoadMessageInfo() == nil { 843 ms.StoreMessageInfo(mi) 844 } 845 return ms 846 } 847 return mi.MessageOf(x) 848} 849 850// Deprecated: Use AddFulfillmentPlacesRequest.ProtoReflect.Descriptor instead. 851func (*AddFulfillmentPlacesRequest) Descriptor() ([]byte, []int) { 852 return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{9} 853} 854 855func (x *AddFulfillmentPlacesRequest) GetProduct() string { 856 if x != nil { 857 return x.Product 858 } 859 return "" 860} 861 862func (x *AddFulfillmentPlacesRequest) GetType() string { 863 if x != nil { 864 return x.Type 865 } 866 return "" 867} 868 869func (x *AddFulfillmentPlacesRequest) GetPlaceIds() []string { 870 if x != nil { 871 return x.PlaceIds 872 } 873 return nil 874} 875 876func (x *AddFulfillmentPlacesRequest) GetAddTime() *timestamppb.Timestamp { 877 if x != nil { 878 return x.AddTime 879 } 880 return nil 881} 882 883func (x *AddFulfillmentPlacesRequest) GetAllowMissing() bool { 884 if x != nil { 885 return x.AllowMissing 886 } 887 return false 888} 889 890// Metadata related to the progress of the AddFulfillmentPlaces operation. 891// Currently empty because there is no meaningful metadata populated from the 892// [AddFulfillmentPlaces][] method. 893type AddFulfillmentPlacesMetadata struct { 894 state protoimpl.MessageState 895 sizeCache protoimpl.SizeCache 896 unknownFields protoimpl.UnknownFields 897} 898 899func (x *AddFulfillmentPlacesMetadata) Reset() { 900 *x = AddFulfillmentPlacesMetadata{} 901 if protoimpl.UnsafeEnabled { 902 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[10] 903 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 904 ms.StoreMessageInfo(mi) 905 } 906} 907 908func (x *AddFulfillmentPlacesMetadata) String() string { 909 return protoimpl.X.MessageStringOf(x) 910} 911 912func (*AddFulfillmentPlacesMetadata) ProtoMessage() {} 913 914func (x *AddFulfillmentPlacesMetadata) ProtoReflect() protoreflect.Message { 915 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[10] 916 if protoimpl.UnsafeEnabled && x != nil { 917 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 918 if ms.LoadMessageInfo() == nil { 919 ms.StoreMessageInfo(mi) 920 } 921 return ms 922 } 923 return mi.MessageOf(x) 924} 925 926// Deprecated: Use AddFulfillmentPlacesMetadata.ProtoReflect.Descriptor instead. 927func (*AddFulfillmentPlacesMetadata) Descriptor() ([]byte, []int) { 928 return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{10} 929} 930 931// Response of the RemoveFulfillmentPlacesRequest. Currently empty because 932// there is no meaningful response populated from the [AddFulfillmentPlaces][] 933// method. 934type AddFulfillmentPlacesResponse struct { 935 state protoimpl.MessageState 936 sizeCache protoimpl.SizeCache 937 unknownFields protoimpl.UnknownFields 938} 939 940func (x *AddFulfillmentPlacesResponse) Reset() { 941 *x = AddFulfillmentPlacesResponse{} 942 if protoimpl.UnsafeEnabled { 943 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[11] 944 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 945 ms.StoreMessageInfo(mi) 946 } 947} 948 949func (x *AddFulfillmentPlacesResponse) String() string { 950 return protoimpl.X.MessageStringOf(x) 951} 952 953func (*AddFulfillmentPlacesResponse) ProtoMessage() {} 954 955func (x *AddFulfillmentPlacesResponse) ProtoReflect() protoreflect.Message { 956 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[11] 957 if protoimpl.UnsafeEnabled && x != nil { 958 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 959 if ms.LoadMessageInfo() == nil { 960 ms.StoreMessageInfo(mi) 961 } 962 return ms 963 } 964 return mi.MessageOf(x) 965} 966 967// Deprecated: Use AddFulfillmentPlacesResponse.ProtoReflect.Descriptor instead. 968func (*AddFulfillmentPlacesResponse) Descriptor() ([]byte, []int) { 969 return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{11} 970} 971 972// Request message for [RemoveFulfillmentPlaces][] method. 973type RemoveFulfillmentPlacesRequest struct { 974 state protoimpl.MessageState 975 sizeCache protoimpl.SizeCache 976 unknownFields protoimpl.UnknownFields 977 978 // Required. Full resource name of 979 // [Product][google.cloud.retail.v2beta.Product], such as 980 // `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. 981 // 982 // If the caller does not have permission to access the 983 // [Product][google.cloud.retail.v2beta.Product], regardless of whether or not 984 // it exists, a PERMISSION_DENIED error is returned. 985 Product string `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"` 986 // Required. The fulfillment type, including commonly used types (such as 987 // pickup in store and same day delivery), and custom types. 988 // 989 // Supported values: 990 // 991 // * "pickup-in-store" 992 // * "ship-to-store" 993 // * "same-day-delivery" 994 // * "next-day-delivery" 995 // * "custom-type-1" 996 // * "custom-type-2" 997 // * "custom-type-3" 998 // * "custom-type-4" 999 // * "custom-type-5" 1000 // 1001 // If this field is set to an invalid value other than these, an 1002 // INVALID_ARGUMENT error is returned. 1003 // 1004 // This field directly corresponds to [Product.fulfillment_info.type][]. 1005 Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` 1006 // Required. The IDs for this 1007 // [type][google.cloud.retail.v2beta.RemoveFulfillmentPlacesRequest.type], 1008 // such as the store IDs for "pickup-in-store" or the region IDs for 1009 // "same-day-delivery", to be removed for this 1010 // [type][google.cloud.retail.v2beta.RemoveFulfillmentPlacesRequest.type]. 1011 // 1012 // At least 1 value is required, and a maximum of 2000 values are allowed. 1013 // Each value must be a string with a length limit of 10 characters, matching 1014 // the pattern [a-zA-Z0-9_-]+, such as "store1" or "REGION-2". Otherwise, an 1015 // INVALID_ARGUMENT error is returned. 1016 PlaceIds []string `protobuf:"bytes,3,rep,name=place_ids,json=placeIds,proto3" json:"place_ids,omitempty"` 1017 // The time when the fulfillment updates are issued, used to prevent 1018 // out-of-order updates on fulfillment information. If not provided, the 1019 // internal system time will be used. 1020 RemoveTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=remove_time,json=removeTime,proto3" json:"remove_time,omitempty"` 1021 // If set to true, and the [Product][google.cloud.retail.v2beta.Product] is 1022 // not found, the fulfillment information will still be processed and retained 1023 // for at most 1 day and processed once the 1024 // [Product][google.cloud.retail.v2beta.Product] is created. If set to false, 1025 // an INVALID_ARGUMENT error is returned if the 1026 // [Product][google.cloud.retail.v2beta.Product] is not found. 1027 AllowMissing bool `protobuf:"varint,5,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"` 1028} 1029 1030func (x *RemoveFulfillmentPlacesRequest) Reset() { 1031 *x = RemoveFulfillmentPlacesRequest{} 1032 if protoimpl.UnsafeEnabled { 1033 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[12] 1034 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1035 ms.StoreMessageInfo(mi) 1036 } 1037} 1038 1039func (x *RemoveFulfillmentPlacesRequest) String() string { 1040 return protoimpl.X.MessageStringOf(x) 1041} 1042 1043func (*RemoveFulfillmentPlacesRequest) ProtoMessage() {} 1044 1045func (x *RemoveFulfillmentPlacesRequest) ProtoReflect() protoreflect.Message { 1046 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[12] 1047 if protoimpl.UnsafeEnabled && x != nil { 1048 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1049 if ms.LoadMessageInfo() == nil { 1050 ms.StoreMessageInfo(mi) 1051 } 1052 return ms 1053 } 1054 return mi.MessageOf(x) 1055} 1056 1057// Deprecated: Use RemoveFulfillmentPlacesRequest.ProtoReflect.Descriptor instead. 1058func (*RemoveFulfillmentPlacesRequest) Descriptor() ([]byte, []int) { 1059 return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{12} 1060} 1061 1062func (x *RemoveFulfillmentPlacesRequest) GetProduct() string { 1063 if x != nil { 1064 return x.Product 1065 } 1066 return "" 1067} 1068 1069func (x *RemoveFulfillmentPlacesRequest) GetType() string { 1070 if x != nil { 1071 return x.Type 1072 } 1073 return "" 1074} 1075 1076func (x *RemoveFulfillmentPlacesRequest) GetPlaceIds() []string { 1077 if x != nil { 1078 return x.PlaceIds 1079 } 1080 return nil 1081} 1082 1083func (x *RemoveFulfillmentPlacesRequest) GetRemoveTime() *timestamppb.Timestamp { 1084 if x != nil { 1085 return x.RemoveTime 1086 } 1087 return nil 1088} 1089 1090func (x *RemoveFulfillmentPlacesRequest) GetAllowMissing() bool { 1091 if x != nil { 1092 return x.AllowMissing 1093 } 1094 return false 1095} 1096 1097// Metadata related to the progress of the RemoveFulfillmentPlaces operation. 1098// Currently empty because there is no meaningful metadata populated from the 1099// [RemoveFulfillmentPlaces][] method. 1100type RemoveFulfillmentPlacesMetadata struct { 1101 state protoimpl.MessageState 1102 sizeCache protoimpl.SizeCache 1103 unknownFields protoimpl.UnknownFields 1104} 1105 1106func (x *RemoveFulfillmentPlacesMetadata) Reset() { 1107 *x = RemoveFulfillmentPlacesMetadata{} 1108 if protoimpl.UnsafeEnabled { 1109 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[13] 1110 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1111 ms.StoreMessageInfo(mi) 1112 } 1113} 1114 1115func (x *RemoveFulfillmentPlacesMetadata) String() string { 1116 return protoimpl.X.MessageStringOf(x) 1117} 1118 1119func (*RemoveFulfillmentPlacesMetadata) ProtoMessage() {} 1120 1121func (x *RemoveFulfillmentPlacesMetadata) ProtoReflect() protoreflect.Message { 1122 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[13] 1123 if protoimpl.UnsafeEnabled && x != nil { 1124 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1125 if ms.LoadMessageInfo() == nil { 1126 ms.StoreMessageInfo(mi) 1127 } 1128 return ms 1129 } 1130 return mi.MessageOf(x) 1131} 1132 1133// Deprecated: Use RemoveFulfillmentPlacesMetadata.ProtoReflect.Descriptor instead. 1134func (*RemoveFulfillmentPlacesMetadata) Descriptor() ([]byte, []int) { 1135 return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{13} 1136} 1137 1138// Response of the RemoveFulfillmentPlacesRequest. Currently empty because there 1139// is no meaningful response populated from the [RemoveFulfillmentPlaces][] 1140// method. 1141type RemoveFulfillmentPlacesResponse struct { 1142 state protoimpl.MessageState 1143 sizeCache protoimpl.SizeCache 1144 unknownFields protoimpl.UnknownFields 1145} 1146 1147func (x *RemoveFulfillmentPlacesResponse) Reset() { 1148 *x = RemoveFulfillmentPlacesResponse{} 1149 if protoimpl.UnsafeEnabled { 1150 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[14] 1151 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1152 ms.StoreMessageInfo(mi) 1153 } 1154} 1155 1156func (x *RemoveFulfillmentPlacesResponse) String() string { 1157 return protoimpl.X.MessageStringOf(x) 1158} 1159 1160func (*RemoveFulfillmentPlacesResponse) ProtoMessage() {} 1161 1162func (x *RemoveFulfillmentPlacesResponse) ProtoReflect() protoreflect.Message { 1163 mi := &file_google_cloud_retail_v2beta_product_service_proto_msgTypes[14] 1164 if protoimpl.UnsafeEnabled && x != nil { 1165 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1166 if ms.LoadMessageInfo() == nil { 1167 ms.StoreMessageInfo(mi) 1168 } 1169 return ms 1170 } 1171 return mi.MessageOf(x) 1172} 1173 1174// Deprecated: Use RemoveFulfillmentPlacesResponse.ProtoReflect.Descriptor instead. 1175func (*RemoveFulfillmentPlacesResponse) Descriptor() ([]byte, []int) { 1176 return file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP(), []int{14} 1177} 1178 1179var File_google_cloud_retail_v2beta_product_service_proto protoreflect.FileDescriptor 1180 1181var file_google_cloud_retail_v2beta_product_service_proto_rawDesc = []byte{ 1182 0x0a, 0x30, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 1183 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x70, 0x72, 0x6f, 1184 0x64, 0x75, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 1185 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1186 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x1a, 0x1c, 1187 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 1188 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 1189 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 1190 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 1191 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 1192 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 1193 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1194 0x6f, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 1195 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x65, 0x78, 1196 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1197 0x6f, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 1198 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x69, 0x6d, 1199 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1200 0x6f, 0x1a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 1201 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x70, 0x72, 1202 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x67, 0x6f, 0x6f, 1203 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 1204 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x5f, 0x63, 0x6f, 1205 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 1206 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 1207 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 1208 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 1209 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 1210 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 1211 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 1212 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 1213 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 1214 0xbc, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 1215 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 1216 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 1217 0x0a, 0x1c, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 1218 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x06, 1219 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 1220 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1221 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 1222 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 1223 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 1224 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 1225 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x22, 0x4e, 1226 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 1227 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 1228 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x72, 0x65, 0x74, 0x61, 0x69, 1229 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 1230 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xbc, 1231 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 1232 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 1233 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1234 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 1235 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x42, 0x03, 0xe0, 1236 0x41, 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 1237 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 1238 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 1239 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 1240 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 1241 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 1242 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0x51, 0x0a, 1243 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 1244 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 1245 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x72, 0x65, 0x74, 1246 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 1247 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 1248 0x22, 0xe0, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 1249 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 1250 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 1251 0x0a, 0x1c, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 1252 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x06, 1253 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 1254 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 1255 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 1256 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 1257 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 1258 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x09, 0x72, 0x65, 1259 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 1260 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 1261 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4d, 1262 0x61, 0x73, 0x6b, 0x22, 0x7f, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 1263 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x70, 1264 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 1265 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 1266 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 1267 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 1268 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 1269 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 1270 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xf0, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x65, 1271 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x09, 1272 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 1273 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 1274 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 1275 0x64, 0x75, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x65, 0x6e, 1276 0x74, 0x6f, 0x72, 0x79, 0x12, 0x35, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 1277 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1278 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 1279 0x73, 0x6b, 0x52, 0x07, 0x73, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x35, 0x0a, 0x08, 0x73, 1280 0x65, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 1281 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 1282 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x73, 0x65, 0x74, 0x54, 0x69, 1283 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 1284 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 1285 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x49, 0x6e, 1286 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 1287 0x16, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 1288 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf5, 0x01, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x46, 1289 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 1290 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 1291 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 1292 0x0a, 0x1d, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 1293 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 1294 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 1295 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 1296 0x65, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 1297 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x63, 0x65, 1298 0x49, 0x64, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 1299 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 1300 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 1301 0x70, 0x52, 0x07, 0x61, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 1302 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 1303 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 1304 0x1e, 0x0a, 0x1c, 0x41, 0x64, 0x64, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 1305 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 1306 0x1e, 0x0a, 0x1c, 0x41, 0x64, 0x64, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 1307 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 1308 0xfe, 0x01, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 1309 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 1310 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x01, 0x20, 1311 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x72, 0x65, 0x74, 1312 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 1313 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 1314 0x75, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 1315 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x09, 1316 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 1317 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x49, 0x64, 0x73, 0x12, 0x3b, 1318 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 1319 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 1320 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 1321 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 1322 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 1323 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 1324 0x22, 0x21, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 1325 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 1326 0x61, 0x74, 0x61, 0x22, 0x21, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x75, 0x6c, 1327 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 1328 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x87, 0x13, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x64, 0x75, 1329 0x63, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xdb, 0x01, 0x0a, 0x0d, 0x43, 0x72, 1330 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x30, 0x2e, 0x67, 0x6f, 1331 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 1332 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 1333 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 1334 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 1335 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 1336 0x63, 0x74, 0x22, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x22, 0x46, 0x2f, 0x76, 0x32, 0x62, 1337 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 1338 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 1339 0x2f, 0x2a, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 1340 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 1341 0x74, 0x73, 0x3a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0xda, 0x41, 0x19, 0x70, 0x61, 1342 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2c, 0x70, 0x72, 0x6f, 1343 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x12, 0xb8, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x50, 1344 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1345 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 1346 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 1347 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1348 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 1349 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0x56, 0x82, 0xd3, 0xe4, 0x93, 1350 0x02, 0x49, 0x12, 0x47, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 1351 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 1352 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 1353 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 1354 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 1355 0x6d, 0x65, 0x12, 0xca, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 1356 0x63, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 1357 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 1358 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 1359 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 1360 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 1361 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 1362 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x57, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x12, 0x46, 1363 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 1364 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 1365 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 1366 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 1367 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 1368 0xde, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 1369 0x74, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1370 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 1371 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 1372 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 1373 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 1374 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0x76, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5a, 1375 0x32, 0x4f, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 1376 0x63, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 1377 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 1378 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 1379 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 1380 0x7d, 0x3a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0xda, 0x41, 0x13, 0x70, 0x72, 0x6f, 1381 0x64, 0x75, 0x63, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 1382 0x12, 0xb1, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 1383 0x63, 0x74, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1384 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 1385 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 1386 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 1387 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x56, 0x82, 0xd3, 1388 0xe4, 0x93, 0x02, 0x49, 0x2a, 0x47, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x6e, 1389 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 1390 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 1391 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 1392 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0xda, 0x41, 0x04, 1393 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x9e, 0x02, 0x0a, 0x0e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 1394 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1395 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 1396 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 1397 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 1398 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 1399 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x01, 0x82, 0xd3, 0xe4, 0x93, 1400 0x02, 0x52, 0x22, 0x4d, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 1401 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 1402 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 1403 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 1404 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x3a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 1405 0x74, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x5e, 0x0a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1406 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 1407 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 1408 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x67, 0x6f, 0x6f, 0x67, 1409 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 1410 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 1411 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xc4, 0x02, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x76, 1412 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1413 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 1414 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 1415 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1416 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 1417 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe3, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x63, 0x22, 1418 0x5e, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 1419 0x6f, 0x72, 0x79, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 1420 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 1421 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 1422 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 1423 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x3a, 1424 0x01, 0x2a, 0xda, 0x41, 0x12, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2c, 0x73, 1425 0x65, 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0xca, 0x41, 0x62, 0x0a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 1426 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 1427 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 1428 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x67, 0x6f, 0x6f, 1429 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 1430 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 1431 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xda, 0x02, 0x0a, 1432 0x14, 0x41, 0x64, 0x64, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 1433 0x6c, 0x61, 0x63, 0x65, 0x73, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1434 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 1435 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 1436 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 1437 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 1438 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe9, 0x01, 1439 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x64, 0x22, 0x5f, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2f, 1440 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 1441 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 1442 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 1443 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 1444 0x2a, 0x7d, 0x3a, 0x61, 0x64, 0x64, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 1445 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x07, 0x70, 0x72, 0x6f, 1446 0x64, 0x75, 0x63, 0x74, 0xca, 0x41, 0x72, 0x0a, 0x37, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1447 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 1448 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 1449 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 1450 0x12, 0x37, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 1451 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 1452 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 1453 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xe9, 0x02, 0x0a, 0x17, 0x52, 0x65, 1454 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 1455 0x6c, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1456 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 1457 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 1458 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 1459 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 1460 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 1461 0x22, 0xf2, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x67, 0x22, 0x62, 0x2f, 0x76, 0x32, 0x62, 0x65, 1462 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 1463 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 1464 0x2f, 0x2a, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 1465 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 1466 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x75, 0x6c, 0x66, 1467 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x3a, 0x01, 0x2a, 1468 0xda, 0x41, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0xca, 0x41, 0x78, 0x0a, 0x3a, 0x67, 1469 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 1470 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 1471 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 1472 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1473 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 1474 0x32, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x75, 0x6c, 0x66, 1475 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x4d, 0x65, 0x74, 1476 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x49, 0xca, 0x41, 0x15, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 1477 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 1478 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 1479 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 1480 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1481 0x42, 0xdc, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1482 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x62, 1483 0x65, 0x74, 0x61, 0x42, 0x13, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x72, 0x76, 1484 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x6f, 0x6f, 0x67, 1485 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 1486 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 1487 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 1488 0x32, 0x62, 0x65, 0x74, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 1489 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 1490 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0x42, 0x65, 1491 0x74, 0x61, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 1492 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0xea, 1493 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 1494 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x62, 1495 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 1496} 1497 1498var ( 1499 file_google_cloud_retail_v2beta_product_service_proto_rawDescOnce sync.Once 1500 file_google_cloud_retail_v2beta_product_service_proto_rawDescData = file_google_cloud_retail_v2beta_product_service_proto_rawDesc 1501) 1502 1503func file_google_cloud_retail_v2beta_product_service_proto_rawDescGZIP() []byte { 1504 file_google_cloud_retail_v2beta_product_service_proto_rawDescOnce.Do(func() { 1505 file_google_cloud_retail_v2beta_product_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2beta_product_service_proto_rawDescData) 1506 }) 1507 return file_google_cloud_retail_v2beta_product_service_proto_rawDescData 1508} 1509 1510var file_google_cloud_retail_v2beta_product_service_proto_msgTypes = make([]protoimpl.MessageInfo, 15) 1511var file_google_cloud_retail_v2beta_product_service_proto_goTypes = []interface{}{ 1512 (*CreateProductRequest)(nil), // 0: google.cloud.retail.v2beta.CreateProductRequest 1513 (*GetProductRequest)(nil), // 1: google.cloud.retail.v2beta.GetProductRequest 1514 (*UpdateProductRequest)(nil), // 2: google.cloud.retail.v2beta.UpdateProductRequest 1515 (*DeleteProductRequest)(nil), // 3: google.cloud.retail.v2beta.DeleteProductRequest 1516 (*ListProductsRequest)(nil), // 4: google.cloud.retail.v2beta.ListProductsRequest 1517 (*ListProductsResponse)(nil), // 5: google.cloud.retail.v2beta.ListProductsResponse 1518 (*SetInventoryRequest)(nil), // 6: google.cloud.retail.v2beta.SetInventoryRequest 1519 (*SetInventoryMetadata)(nil), // 7: google.cloud.retail.v2beta.SetInventoryMetadata 1520 (*SetInventoryResponse)(nil), // 8: google.cloud.retail.v2beta.SetInventoryResponse 1521 (*AddFulfillmentPlacesRequest)(nil), // 9: google.cloud.retail.v2beta.AddFulfillmentPlacesRequest 1522 (*AddFulfillmentPlacesMetadata)(nil), // 10: google.cloud.retail.v2beta.AddFulfillmentPlacesMetadata 1523 (*AddFulfillmentPlacesResponse)(nil), // 11: google.cloud.retail.v2beta.AddFulfillmentPlacesResponse 1524 (*RemoveFulfillmentPlacesRequest)(nil), // 12: google.cloud.retail.v2beta.RemoveFulfillmentPlacesRequest 1525 (*RemoveFulfillmentPlacesMetadata)(nil), // 13: google.cloud.retail.v2beta.RemoveFulfillmentPlacesMetadata 1526 (*RemoveFulfillmentPlacesResponse)(nil), // 14: google.cloud.retail.v2beta.RemoveFulfillmentPlacesResponse 1527 (*Product)(nil), // 15: google.cloud.retail.v2beta.Product 1528 (*fieldmaskpb.FieldMask)(nil), // 16: google.protobuf.FieldMask 1529 (*timestamppb.Timestamp)(nil), // 17: google.protobuf.Timestamp 1530 (*ImportProductsRequest)(nil), // 18: google.cloud.retail.v2beta.ImportProductsRequest 1531 (*emptypb.Empty)(nil), // 19: google.protobuf.Empty 1532 (*longrunning.Operation)(nil), // 20: google.longrunning.Operation 1533} 1534var file_google_cloud_retail_v2beta_product_service_proto_depIdxs = []int32{ 1535 15, // 0: google.cloud.retail.v2beta.CreateProductRequest.product:type_name -> google.cloud.retail.v2beta.Product 1536 15, // 1: google.cloud.retail.v2beta.UpdateProductRequest.product:type_name -> google.cloud.retail.v2beta.Product 1537 16, // 2: google.cloud.retail.v2beta.UpdateProductRequest.update_mask:type_name -> google.protobuf.FieldMask 1538 16, // 3: google.cloud.retail.v2beta.ListProductsRequest.read_mask:type_name -> google.protobuf.FieldMask 1539 15, // 4: google.cloud.retail.v2beta.ListProductsResponse.products:type_name -> google.cloud.retail.v2beta.Product 1540 15, // 5: google.cloud.retail.v2beta.SetInventoryRequest.inventory:type_name -> google.cloud.retail.v2beta.Product 1541 16, // 6: google.cloud.retail.v2beta.SetInventoryRequest.set_mask:type_name -> google.protobuf.FieldMask 1542 17, // 7: google.cloud.retail.v2beta.SetInventoryRequest.set_time:type_name -> google.protobuf.Timestamp 1543 17, // 8: google.cloud.retail.v2beta.AddFulfillmentPlacesRequest.add_time:type_name -> google.protobuf.Timestamp 1544 17, // 9: google.cloud.retail.v2beta.RemoveFulfillmentPlacesRequest.remove_time:type_name -> google.protobuf.Timestamp 1545 0, // 10: google.cloud.retail.v2beta.ProductService.CreateProduct:input_type -> google.cloud.retail.v2beta.CreateProductRequest 1546 1, // 11: google.cloud.retail.v2beta.ProductService.GetProduct:input_type -> google.cloud.retail.v2beta.GetProductRequest 1547 4, // 12: google.cloud.retail.v2beta.ProductService.ListProducts:input_type -> google.cloud.retail.v2beta.ListProductsRequest 1548 2, // 13: google.cloud.retail.v2beta.ProductService.UpdateProduct:input_type -> google.cloud.retail.v2beta.UpdateProductRequest 1549 3, // 14: google.cloud.retail.v2beta.ProductService.DeleteProduct:input_type -> google.cloud.retail.v2beta.DeleteProductRequest 1550 18, // 15: google.cloud.retail.v2beta.ProductService.ImportProducts:input_type -> google.cloud.retail.v2beta.ImportProductsRequest 1551 6, // 16: google.cloud.retail.v2beta.ProductService.SetInventory:input_type -> google.cloud.retail.v2beta.SetInventoryRequest 1552 9, // 17: google.cloud.retail.v2beta.ProductService.AddFulfillmentPlaces:input_type -> google.cloud.retail.v2beta.AddFulfillmentPlacesRequest 1553 12, // 18: google.cloud.retail.v2beta.ProductService.RemoveFulfillmentPlaces:input_type -> google.cloud.retail.v2beta.RemoveFulfillmentPlacesRequest 1554 15, // 19: google.cloud.retail.v2beta.ProductService.CreateProduct:output_type -> google.cloud.retail.v2beta.Product 1555 15, // 20: google.cloud.retail.v2beta.ProductService.GetProduct:output_type -> google.cloud.retail.v2beta.Product 1556 5, // 21: google.cloud.retail.v2beta.ProductService.ListProducts:output_type -> google.cloud.retail.v2beta.ListProductsResponse 1557 15, // 22: google.cloud.retail.v2beta.ProductService.UpdateProduct:output_type -> google.cloud.retail.v2beta.Product 1558 19, // 23: google.cloud.retail.v2beta.ProductService.DeleteProduct:output_type -> google.protobuf.Empty 1559 20, // 24: google.cloud.retail.v2beta.ProductService.ImportProducts:output_type -> google.longrunning.Operation 1560 20, // 25: google.cloud.retail.v2beta.ProductService.SetInventory:output_type -> google.longrunning.Operation 1561 20, // 26: google.cloud.retail.v2beta.ProductService.AddFulfillmentPlaces:output_type -> google.longrunning.Operation 1562 20, // 27: google.cloud.retail.v2beta.ProductService.RemoveFulfillmentPlaces:output_type -> google.longrunning.Operation 1563 19, // [19:28] is the sub-list for method output_type 1564 10, // [10:19] is the sub-list for method input_type 1565 10, // [10:10] is the sub-list for extension type_name 1566 10, // [10:10] is the sub-list for extension extendee 1567 0, // [0:10] is the sub-list for field type_name 1568} 1569 1570func init() { file_google_cloud_retail_v2beta_product_service_proto_init() } 1571func file_google_cloud_retail_v2beta_product_service_proto_init() { 1572 if File_google_cloud_retail_v2beta_product_service_proto != nil { 1573 return 1574 } 1575 file_google_cloud_retail_v2beta_export_config_proto_init() 1576 file_google_cloud_retail_v2beta_import_config_proto_init() 1577 file_google_cloud_retail_v2beta_product_proto_init() 1578 file_google_cloud_retail_v2beta_purge_config_proto_init() 1579 if !protoimpl.UnsafeEnabled { 1580 file_google_cloud_retail_v2beta_product_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 1581 switch v := v.(*CreateProductRequest); i { 1582 case 0: 1583 return &v.state 1584 case 1: 1585 return &v.sizeCache 1586 case 2: 1587 return &v.unknownFields 1588 default: 1589 return nil 1590 } 1591 } 1592 file_google_cloud_retail_v2beta_product_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 1593 switch v := v.(*GetProductRequest); i { 1594 case 0: 1595 return &v.state 1596 case 1: 1597 return &v.sizeCache 1598 case 2: 1599 return &v.unknownFields 1600 default: 1601 return nil 1602 } 1603 } 1604 file_google_cloud_retail_v2beta_product_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 1605 switch v := v.(*UpdateProductRequest); i { 1606 case 0: 1607 return &v.state 1608 case 1: 1609 return &v.sizeCache 1610 case 2: 1611 return &v.unknownFields 1612 default: 1613 return nil 1614 } 1615 } 1616 file_google_cloud_retail_v2beta_product_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 1617 switch v := v.(*DeleteProductRequest); i { 1618 case 0: 1619 return &v.state 1620 case 1: 1621 return &v.sizeCache 1622 case 2: 1623 return &v.unknownFields 1624 default: 1625 return nil 1626 } 1627 } 1628 file_google_cloud_retail_v2beta_product_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 1629 switch v := v.(*ListProductsRequest); i { 1630 case 0: 1631 return &v.state 1632 case 1: 1633 return &v.sizeCache 1634 case 2: 1635 return &v.unknownFields 1636 default: 1637 return nil 1638 } 1639 } 1640 file_google_cloud_retail_v2beta_product_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 1641 switch v := v.(*ListProductsResponse); i { 1642 case 0: 1643 return &v.state 1644 case 1: 1645 return &v.sizeCache 1646 case 2: 1647 return &v.unknownFields 1648 default: 1649 return nil 1650 } 1651 } 1652 file_google_cloud_retail_v2beta_product_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 1653 switch v := v.(*SetInventoryRequest); i { 1654 case 0: 1655 return &v.state 1656 case 1: 1657 return &v.sizeCache 1658 case 2: 1659 return &v.unknownFields 1660 default: 1661 return nil 1662 } 1663 } 1664 file_google_cloud_retail_v2beta_product_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 1665 switch v := v.(*SetInventoryMetadata); i { 1666 case 0: 1667 return &v.state 1668 case 1: 1669 return &v.sizeCache 1670 case 2: 1671 return &v.unknownFields 1672 default: 1673 return nil 1674 } 1675 } 1676 file_google_cloud_retail_v2beta_product_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 1677 switch v := v.(*SetInventoryResponse); i { 1678 case 0: 1679 return &v.state 1680 case 1: 1681 return &v.sizeCache 1682 case 2: 1683 return &v.unknownFields 1684 default: 1685 return nil 1686 } 1687 } 1688 file_google_cloud_retail_v2beta_product_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 1689 switch v := v.(*AddFulfillmentPlacesRequest); i { 1690 case 0: 1691 return &v.state 1692 case 1: 1693 return &v.sizeCache 1694 case 2: 1695 return &v.unknownFields 1696 default: 1697 return nil 1698 } 1699 } 1700 file_google_cloud_retail_v2beta_product_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 1701 switch v := v.(*AddFulfillmentPlacesMetadata); i { 1702 case 0: 1703 return &v.state 1704 case 1: 1705 return &v.sizeCache 1706 case 2: 1707 return &v.unknownFields 1708 default: 1709 return nil 1710 } 1711 } 1712 file_google_cloud_retail_v2beta_product_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 1713 switch v := v.(*AddFulfillmentPlacesResponse); i { 1714 case 0: 1715 return &v.state 1716 case 1: 1717 return &v.sizeCache 1718 case 2: 1719 return &v.unknownFields 1720 default: 1721 return nil 1722 } 1723 } 1724 file_google_cloud_retail_v2beta_product_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 1725 switch v := v.(*RemoveFulfillmentPlacesRequest); i { 1726 case 0: 1727 return &v.state 1728 case 1: 1729 return &v.sizeCache 1730 case 2: 1731 return &v.unknownFields 1732 default: 1733 return nil 1734 } 1735 } 1736 file_google_cloud_retail_v2beta_product_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 1737 switch v := v.(*RemoveFulfillmentPlacesMetadata); i { 1738 case 0: 1739 return &v.state 1740 case 1: 1741 return &v.sizeCache 1742 case 2: 1743 return &v.unknownFields 1744 default: 1745 return nil 1746 } 1747 } 1748 file_google_cloud_retail_v2beta_product_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 1749 switch v := v.(*RemoveFulfillmentPlacesResponse); i { 1750 case 0: 1751 return &v.state 1752 case 1: 1753 return &v.sizeCache 1754 case 2: 1755 return &v.unknownFields 1756 default: 1757 return nil 1758 } 1759 } 1760 } 1761 type x struct{} 1762 out := protoimpl.TypeBuilder{ 1763 File: protoimpl.DescBuilder{ 1764 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1765 RawDescriptor: file_google_cloud_retail_v2beta_product_service_proto_rawDesc, 1766 NumEnums: 0, 1767 NumMessages: 15, 1768 NumExtensions: 0, 1769 NumServices: 1, 1770 }, 1771 GoTypes: file_google_cloud_retail_v2beta_product_service_proto_goTypes, 1772 DependencyIndexes: file_google_cloud_retail_v2beta_product_service_proto_depIdxs, 1773 MessageInfos: file_google_cloud_retail_v2beta_product_service_proto_msgTypes, 1774 }.Build() 1775 File_google_cloud_retail_v2beta_product_service_proto = out.File 1776 file_google_cloud_retail_v2beta_product_service_proto_rawDesc = nil 1777 file_google_cloud_retail_v2beta_product_service_proto_goTypes = nil 1778 file_google_cloud_retail_v2beta_product_service_proto_depIdxs = nil 1779} 1780 1781// Reference imports to suppress errors if they are not otherwise used. 1782var _ context.Context 1783var _ grpc.ClientConnInterface 1784 1785// This is a compile-time assertion to ensure that this generated file 1786// is compatible with the grpc package it is being compiled against. 1787const _ = grpc.SupportPackageIsVersion6 1788 1789// ProductServiceClient is the client API for ProductService service. 1790// 1791// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 1792type ProductServiceClient interface { 1793 // Creates a [Product][google.cloud.retail.v2beta.Product]. 1794 CreateProduct(ctx context.Context, in *CreateProductRequest, opts ...grpc.CallOption) (*Product, error) 1795 // Gets a [Product][google.cloud.retail.v2beta.Product]. 1796 GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error) 1797 // Gets a list of [Product][google.cloud.retail.v2beta.Product]s. 1798 ListProducts(ctx context.Context, in *ListProductsRequest, opts ...grpc.CallOption) (*ListProductsResponse, error) 1799 // Updates a [Product][google.cloud.retail.v2beta.Product]. 1800 UpdateProduct(ctx context.Context, in *UpdateProductRequest, opts ...grpc.CallOption) (*Product, error) 1801 // Deletes a [Product][google.cloud.retail.v2beta.Product]. 1802 DeleteProduct(ctx context.Context, in *DeleteProductRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) 1803 // Bulk import of multiple [Product][google.cloud.retail.v2beta.Product]s. 1804 // 1805 // Request processing may be synchronous. No partial updating is supported. 1806 // Non-existing items are created. 1807 // 1808 // Note that it is possible for a subset of the 1809 // [Product][google.cloud.retail.v2beta.Product]s to be successfully updated. 1810 ImportProducts(ctx context.Context, in *ImportProductsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 1811 // Updates inventory information for a 1812 // [Product][google.cloud.retail.v2beta.Product] while respecting the last 1813 // update timestamps of each inventory field. 1814 // 1815 // This process is asynchronous and does not require the 1816 // [Product][google.cloud.retail.v2beta.Product] to exist before updating 1817 // fulfillment information. If the request is valid, the update will be 1818 // enqueued and processed downstream. As a consequence, when a response is 1819 // returned, updates are not immediately manifested in the 1820 // [Product][google.cloud.retail.v2beta.Product] queried by 1821 // [GetProduct][google.cloud.retail.v2beta.ProductService.GetProduct] or 1822 // [ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts]. 1823 // 1824 // When inventory is updated with 1825 // [CreateProduct][google.cloud.retail.v2beta.ProductService.CreateProduct] 1826 // and 1827 // [UpdateProduct][google.cloud.retail.v2beta.ProductService.UpdateProduct], 1828 // the specified inventory field value(s) will overwrite any existing value(s) 1829 // while ignoring the last update time for this field. Furthermore, the last 1830 // update time for the specified inventory fields will be overwritten to the 1831 // time of the 1832 // [CreateProduct][google.cloud.retail.v2beta.ProductService.CreateProduct] or 1833 // [UpdateProduct][google.cloud.retail.v2beta.ProductService.UpdateProduct] 1834 // request. 1835 // 1836 // If no inventory fields are set in 1837 // [CreateProductRequest.product][google.cloud.retail.v2beta.CreateProductRequest.product], 1838 // then any pre-existing inventory information for this product will be used. 1839 // 1840 // If no inventory fields are set in [UpdateProductRequest.set_mask][], 1841 // then any existing inventory information will be preserved. 1842 // 1843 // Pre-existing inventory information can only be updated with 1844 // [SetInventory][google.cloud.retail.v2beta.ProductService.SetInventory], 1845 // [AddFulfillmentPlaces][google.cloud.retail.v2beta.ProductService.AddFulfillmentPlaces], 1846 // and 1847 // [RemoveFulfillmentPlaces][google.cloud.retail.v2beta.ProductService.RemoveFulfillmentPlaces]. 1848 // 1849 // This feature is only available for users who have Retail Search enabled. 1850 // Please submit a form [here](https://cloud.google.com/contact) to contact 1851 // cloud sales if you are interested in using Retail Search. 1852 SetInventory(ctx context.Context, in *SetInventoryRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 1853 // Incrementally adds place IDs to 1854 // [Product.fulfillment_info.place_ids][google.cloud.retail.v2beta.FulfillmentInfo.place_ids]. 1855 // 1856 // This process is asynchronous and does not require the 1857 // [Product][google.cloud.retail.v2beta.Product] to exist before updating 1858 // fulfillment information. If the request is valid, the update will be 1859 // enqueued and processed downstream. As a consequence, when a response is 1860 // returned, the added place IDs are not immediately manifested in the 1861 // [Product][google.cloud.retail.v2beta.Product] queried by 1862 // [GetProduct][google.cloud.retail.v2beta.ProductService.GetProduct] or 1863 // [ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts]. 1864 // 1865 // This feature is only available for users who have Retail Search enabled. 1866 // Please submit a form [here](https://cloud.google.com/contact) to contact 1867 // cloud sales if you are interested in using Retail Search. 1868 AddFulfillmentPlaces(ctx context.Context, in *AddFulfillmentPlacesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 1869 // Incrementally removes place IDs from a 1870 // [Product.fulfillment_info.place_ids][google.cloud.retail.v2beta.FulfillmentInfo.place_ids]. 1871 // 1872 // This process is asynchronous and does not require the 1873 // [Product][google.cloud.retail.v2beta.Product] to exist before updating 1874 // fulfillment information. If the request is valid, the update will be 1875 // enqueued and processed downstream. As a consequence, when a response is 1876 // returned, the removed place IDs are not immediately manifested in the 1877 // [Product][google.cloud.retail.v2beta.Product] queried by 1878 // [GetProduct][google.cloud.retail.v2beta.ProductService.GetProduct] or 1879 // [ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts]. 1880 // 1881 // This feature is only available for users who have Retail Search enabled. 1882 // Please submit a form [here](https://cloud.google.com/contact) to contact 1883 // cloud sales if you are interested in using Retail Search. 1884 RemoveFulfillmentPlaces(ctx context.Context, in *RemoveFulfillmentPlacesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 1885} 1886 1887type productServiceClient struct { 1888 cc grpc.ClientConnInterface 1889} 1890 1891func NewProductServiceClient(cc grpc.ClientConnInterface) ProductServiceClient { 1892 return &productServiceClient{cc} 1893} 1894 1895func (c *productServiceClient) CreateProduct(ctx context.Context, in *CreateProductRequest, opts ...grpc.CallOption) (*Product, error) { 1896 out := new(Product) 1897 err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.ProductService/CreateProduct", in, out, opts...) 1898 if err != nil { 1899 return nil, err 1900 } 1901 return out, nil 1902} 1903 1904func (c *productServiceClient) GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error) { 1905 out := new(Product) 1906 err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.ProductService/GetProduct", in, out, opts...) 1907 if err != nil { 1908 return nil, err 1909 } 1910 return out, nil 1911} 1912 1913func (c *productServiceClient) ListProducts(ctx context.Context, in *ListProductsRequest, opts ...grpc.CallOption) (*ListProductsResponse, error) { 1914 out := new(ListProductsResponse) 1915 err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.ProductService/ListProducts", in, out, opts...) 1916 if err != nil { 1917 return nil, err 1918 } 1919 return out, nil 1920} 1921 1922func (c *productServiceClient) UpdateProduct(ctx context.Context, in *UpdateProductRequest, opts ...grpc.CallOption) (*Product, error) { 1923 out := new(Product) 1924 err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.ProductService/UpdateProduct", in, out, opts...) 1925 if err != nil { 1926 return nil, err 1927 } 1928 return out, nil 1929} 1930 1931func (c *productServiceClient) DeleteProduct(ctx context.Context, in *DeleteProductRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { 1932 out := new(emptypb.Empty) 1933 err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.ProductService/DeleteProduct", in, out, opts...) 1934 if err != nil { 1935 return nil, err 1936 } 1937 return out, nil 1938} 1939 1940func (c *productServiceClient) ImportProducts(ctx context.Context, in *ImportProductsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 1941 out := new(longrunning.Operation) 1942 err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.ProductService/ImportProducts", in, out, opts...) 1943 if err != nil { 1944 return nil, err 1945 } 1946 return out, nil 1947} 1948 1949func (c *productServiceClient) SetInventory(ctx context.Context, in *SetInventoryRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 1950 out := new(longrunning.Operation) 1951 err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.ProductService/SetInventory", in, out, opts...) 1952 if err != nil { 1953 return nil, err 1954 } 1955 return out, nil 1956} 1957 1958func (c *productServiceClient) AddFulfillmentPlaces(ctx context.Context, in *AddFulfillmentPlacesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 1959 out := new(longrunning.Operation) 1960 err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.ProductService/AddFulfillmentPlaces", in, out, opts...) 1961 if err != nil { 1962 return nil, err 1963 } 1964 return out, nil 1965} 1966 1967func (c *productServiceClient) RemoveFulfillmentPlaces(ctx context.Context, in *RemoveFulfillmentPlacesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 1968 out := new(longrunning.Operation) 1969 err := c.cc.Invoke(ctx, "/google.cloud.retail.v2beta.ProductService/RemoveFulfillmentPlaces", in, out, opts...) 1970 if err != nil { 1971 return nil, err 1972 } 1973 return out, nil 1974} 1975 1976// ProductServiceServer is the server API for ProductService service. 1977type ProductServiceServer interface { 1978 // Creates a [Product][google.cloud.retail.v2beta.Product]. 1979 CreateProduct(context.Context, *CreateProductRequest) (*Product, error) 1980 // Gets a [Product][google.cloud.retail.v2beta.Product]. 1981 GetProduct(context.Context, *GetProductRequest) (*Product, error) 1982 // Gets a list of [Product][google.cloud.retail.v2beta.Product]s. 1983 ListProducts(context.Context, *ListProductsRequest) (*ListProductsResponse, error) 1984 // Updates a [Product][google.cloud.retail.v2beta.Product]. 1985 UpdateProduct(context.Context, *UpdateProductRequest) (*Product, error) 1986 // Deletes a [Product][google.cloud.retail.v2beta.Product]. 1987 DeleteProduct(context.Context, *DeleteProductRequest) (*emptypb.Empty, error) 1988 // Bulk import of multiple [Product][google.cloud.retail.v2beta.Product]s. 1989 // 1990 // Request processing may be synchronous. No partial updating is supported. 1991 // Non-existing items are created. 1992 // 1993 // Note that it is possible for a subset of the 1994 // [Product][google.cloud.retail.v2beta.Product]s to be successfully updated. 1995 ImportProducts(context.Context, *ImportProductsRequest) (*longrunning.Operation, error) 1996 // Updates inventory information for a 1997 // [Product][google.cloud.retail.v2beta.Product] while respecting the last 1998 // update timestamps of each inventory field. 1999 // 2000 // This process is asynchronous and does not require the 2001 // [Product][google.cloud.retail.v2beta.Product] to exist before updating 2002 // fulfillment information. If the request is valid, the update will be 2003 // enqueued and processed downstream. As a consequence, when a response is 2004 // returned, updates are not immediately manifested in the 2005 // [Product][google.cloud.retail.v2beta.Product] queried by 2006 // [GetProduct][google.cloud.retail.v2beta.ProductService.GetProduct] or 2007 // [ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts]. 2008 // 2009 // When inventory is updated with 2010 // [CreateProduct][google.cloud.retail.v2beta.ProductService.CreateProduct] 2011 // and 2012 // [UpdateProduct][google.cloud.retail.v2beta.ProductService.UpdateProduct], 2013 // the specified inventory field value(s) will overwrite any existing value(s) 2014 // while ignoring the last update time for this field. Furthermore, the last 2015 // update time for the specified inventory fields will be overwritten to the 2016 // time of the 2017 // [CreateProduct][google.cloud.retail.v2beta.ProductService.CreateProduct] or 2018 // [UpdateProduct][google.cloud.retail.v2beta.ProductService.UpdateProduct] 2019 // request. 2020 // 2021 // If no inventory fields are set in 2022 // [CreateProductRequest.product][google.cloud.retail.v2beta.CreateProductRequest.product], 2023 // then any pre-existing inventory information for this product will be used. 2024 // 2025 // If no inventory fields are set in [UpdateProductRequest.set_mask][], 2026 // then any existing inventory information will be preserved. 2027 // 2028 // Pre-existing inventory information can only be updated with 2029 // [SetInventory][google.cloud.retail.v2beta.ProductService.SetInventory], 2030 // [AddFulfillmentPlaces][google.cloud.retail.v2beta.ProductService.AddFulfillmentPlaces], 2031 // and 2032 // [RemoveFulfillmentPlaces][google.cloud.retail.v2beta.ProductService.RemoveFulfillmentPlaces]. 2033 // 2034 // This feature is only available for users who have Retail Search enabled. 2035 // Please submit a form [here](https://cloud.google.com/contact) to contact 2036 // cloud sales if you are interested in using Retail Search. 2037 SetInventory(context.Context, *SetInventoryRequest) (*longrunning.Operation, error) 2038 // Incrementally adds place IDs to 2039 // [Product.fulfillment_info.place_ids][google.cloud.retail.v2beta.FulfillmentInfo.place_ids]. 2040 // 2041 // This process is asynchronous and does not require the 2042 // [Product][google.cloud.retail.v2beta.Product] to exist before updating 2043 // fulfillment information. If the request is valid, the update will be 2044 // enqueued and processed downstream. As a consequence, when a response is 2045 // returned, the added place IDs are not immediately manifested in the 2046 // [Product][google.cloud.retail.v2beta.Product] queried by 2047 // [GetProduct][google.cloud.retail.v2beta.ProductService.GetProduct] or 2048 // [ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts]. 2049 // 2050 // This feature is only available for users who have Retail Search enabled. 2051 // Please submit a form [here](https://cloud.google.com/contact) to contact 2052 // cloud sales if you are interested in using Retail Search. 2053 AddFulfillmentPlaces(context.Context, *AddFulfillmentPlacesRequest) (*longrunning.Operation, error) 2054 // Incrementally removes place IDs from a 2055 // [Product.fulfillment_info.place_ids][google.cloud.retail.v2beta.FulfillmentInfo.place_ids]. 2056 // 2057 // This process is asynchronous and does not require the 2058 // [Product][google.cloud.retail.v2beta.Product] to exist before updating 2059 // fulfillment information. If the request is valid, the update will be 2060 // enqueued and processed downstream. As a consequence, when a response is 2061 // returned, the removed place IDs are not immediately manifested in the 2062 // [Product][google.cloud.retail.v2beta.Product] queried by 2063 // [GetProduct][google.cloud.retail.v2beta.ProductService.GetProduct] or 2064 // [ListProducts][google.cloud.retail.v2beta.ProductService.ListProducts]. 2065 // 2066 // This feature is only available for users who have Retail Search enabled. 2067 // Please submit a form [here](https://cloud.google.com/contact) to contact 2068 // cloud sales if you are interested in using Retail Search. 2069 RemoveFulfillmentPlaces(context.Context, *RemoveFulfillmentPlacesRequest) (*longrunning.Operation, error) 2070} 2071 2072// UnimplementedProductServiceServer can be embedded to have forward compatible implementations. 2073type UnimplementedProductServiceServer struct { 2074} 2075 2076func (*UnimplementedProductServiceServer) CreateProduct(context.Context, *CreateProductRequest) (*Product, error) { 2077 return nil, status.Errorf(codes.Unimplemented, "method CreateProduct not implemented") 2078} 2079func (*UnimplementedProductServiceServer) GetProduct(context.Context, *GetProductRequest) (*Product, error) { 2080 return nil, status.Errorf(codes.Unimplemented, "method GetProduct not implemented") 2081} 2082func (*UnimplementedProductServiceServer) ListProducts(context.Context, *ListProductsRequest) (*ListProductsResponse, error) { 2083 return nil, status.Errorf(codes.Unimplemented, "method ListProducts not implemented") 2084} 2085func (*UnimplementedProductServiceServer) UpdateProduct(context.Context, *UpdateProductRequest) (*Product, error) { 2086 return nil, status.Errorf(codes.Unimplemented, "method UpdateProduct not implemented") 2087} 2088func (*UnimplementedProductServiceServer) DeleteProduct(context.Context, *DeleteProductRequest) (*emptypb.Empty, error) { 2089 return nil, status.Errorf(codes.Unimplemented, "method DeleteProduct not implemented") 2090} 2091func (*UnimplementedProductServiceServer) ImportProducts(context.Context, *ImportProductsRequest) (*longrunning.Operation, error) { 2092 return nil, status.Errorf(codes.Unimplemented, "method ImportProducts not implemented") 2093} 2094func (*UnimplementedProductServiceServer) SetInventory(context.Context, *SetInventoryRequest) (*longrunning.Operation, error) { 2095 return nil, status.Errorf(codes.Unimplemented, "method SetInventory not implemented") 2096} 2097func (*UnimplementedProductServiceServer) AddFulfillmentPlaces(context.Context, *AddFulfillmentPlacesRequest) (*longrunning.Operation, error) { 2098 return nil, status.Errorf(codes.Unimplemented, "method AddFulfillmentPlaces not implemented") 2099} 2100func (*UnimplementedProductServiceServer) RemoveFulfillmentPlaces(context.Context, *RemoveFulfillmentPlacesRequest) (*longrunning.Operation, error) { 2101 return nil, status.Errorf(codes.Unimplemented, "method RemoveFulfillmentPlaces not implemented") 2102} 2103 2104func RegisterProductServiceServer(s *grpc.Server, srv ProductServiceServer) { 2105 s.RegisterService(&_ProductService_serviceDesc, srv) 2106} 2107 2108func _ProductService_CreateProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2109 in := new(CreateProductRequest) 2110 if err := dec(in); err != nil { 2111 return nil, err 2112 } 2113 if interceptor == nil { 2114 return srv.(ProductServiceServer).CreateProduct(ctx, in) 2115 } 2116 info := &grpc.UnaryServerInfo{ 2117 Server: srv, 2118 FullMethod: "/google.cloud.retail.v2beta.ProductService/CreateProduct", 2119 } 2120 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2121 return srv.(ProductServiceServer).CreateProduct(ctx, req.(*CreateProductRequest)) 2122 } 2123 return interceptor(ctx, in, info, handler) 2124} 2125 2126func _ProductService_GetProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2127 in := new(GetProductRequest) 2128 if err := dec(in); err != nil { 2129 return nil, err 2130 } 2131 if interceptor == nil { 2132 return srv.(ProductServiceServer).GetProduct(ctx, in) 2133 } 2134 info := &grpc.UnaryServerInfo{ 2135 Server: srv, 2136 FullMethod: "/google.cloud.retail.v2beta.ProductService/GetProduct", 2137 } 2138 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2139 return srv.(ProductServiceServer).GetProduct(ctx, req.(*GetProductRequest)) 2140 } 2141 return interceptor(ctx, in, info, handler) 2142} 2143 2144func _ProductService_ListProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2145 in := new(ListProductsRequest) 2146 if err := dec(in); err != nil { 2147 return nil, err 2148 } 2149 if interceptor == nil { 2150 return srv.(ProductServiceServer).ListProducts(ctx, in) 2151 } 2152 info := &grpc.UnaryServerInfo{ 2153 Server: srv, 2154 FullMethod: "/google.cloud.retail.v2beta.ProductService/ListProducts", 2155 } 2156 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2157 return srv.(ProductServiceServer).ListProducts(ctx, req.(*ListProductsRequest)) 2158 } 2159 return interceptor(ctx, in, info, handler) 2160} 2161 2162func _ProductService_UpdateProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2163 in := new(UpdateProductRequest) 2164 if err := dec(in); err != nil { 2165 return nil, err 2166 } 2167 if interceptor == nil { 2168 return srv.(ProductServiceServer).UpdateProduct(ctx, in) 2169 } 2170 info := &grpc.UnaryServerInfo{ 2171 Server: srv, 2172 FullMethod: "/google.cloud.retail.v2beta.ProductService/UpdateProduct", 2173 } 2174 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2175 return srv.(ProductServiceServer).UpdateProduct(ctx, req.(*UpdateProductRequest)) 2176 } 2177 return interceptor(ctx, in, info, handler) 2178} 2179 2180func _ProductService_DeleteProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2181 in := new(DeleteProductRequest) 2182 if err := dec(in); err != nil { 2183 return nil, err 2184 } 2185 if interceptor == nil { 2186 return srv.(ProductServiceServer).DeleteProduct(ctx, in) 2187 } 2188 info := &grpc.UnaryServerInfo{ 2189 Server: srv, 2190 FullMethod: "/google.cloud.retail.v2beta.ProductService/DeleteProduct", 2191 } 2192 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2193 return srv.(ProductServiceServer).DeleteProduct(ctx, req.(*DeleteProductRequest)) 2194 } 2195 return interceptor(ctx, in, info, handler) 2196} 2197 2198func _ProductService_ImportProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2199 in := new(ImportProductsRequest) 2200 if err := dec(in); err != nil { 2201 return nil, err 2202 } 2203 if interceptor == nil { 2204 return srv.(ProductServiceServer).ImportProducts(ctx, in) 2205 } 2206 info := &grpc.UnaryServerInfo{ 2207 Server: srv, 2208 FullMethod: "/google.cloud.retail.v2beta.ProductService/ImportProducts", 2209 } 2210 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2211 return srv.(ProductServiceServer).ImportProducts(ctx, req.(*ImportProductsRequest)) 2212 } 2213 return interceptor(ctx, in, info, handler) 2214} 2215 2216func _ProductService_SetInventory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2217 in := new(SetInventoryRequest) 2218 if err := dec(in); err != nil { 2219 return nil, err 2220 } 2221 if interceptor == nil { 2222 return srv.(ProductServiceServer).SetInventory(ctx, in) 2223 } 2224 info := &grpc.UnaryServerInfo{ 2225 Server: srv, 2226 FullMethod: "/google.cloud.retail.v2beta.ProductService/SetInventory", 2227 } 2228 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2229 return srv.(ProductServiceServer).SetInventory(ctx, req.(*SetInventoryRequest)) 2230 } 2231 return interceptor(ctx, in, info, handler) 2232} 2233 2234func _ProductService_AddFulfillmentPlaces_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2235 in := new(AddFulfillmentPlacesRequest) 2236 if err := dec(in); err != nil { 2237 return nil, err 2238 } 2239 if interceptor == nil { 2240 return srv.(ProductServiceServer).AddFulfillmentPlaces(ctx, in) 2241 } 2242 info := &grpc.UnaryServerInfo{ 2243 Server: srv, 2244 FullMethod: "/google.cloud.retail.v2beta.ProductService/AddFulfillmentPlaces", 2245 } 2246 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2247 return srv.(ProductServiceServer).AddFulfillmentPlaces(ctx, req.(*AddFulfillmentPlacesRequest)) 2248 } 2249 return interceptor(ctx, in, info, handler) 2250} 2251 2252func _ProductService_RemoveFulfillmentPlaces_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2253 in := new(RemoveFulfillmentPlacesRequest) 2254 if err := dec(in); err != nil { 2255 return nil, err 2256 } 2257 if interceptor == nil { 2258 return srv.(ProductServiceServer).RemoveFulfillmentPlaces(ctx, in) 2259 } 2260 info := &grpc.UnaryServerInfo{ 2261 Server: srv, 2262 FullMethod: "/google.cloud.retail.v2beta.ProductService/RemoveFulfillmentPlaces", 2263 } 2264 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2265 return srv.(ProductServiceServer).RemoveFulfillmentPlaces(ctx, req.(*RemoveFulfillmentPlacesRequest)) 2266 } 2267 return interceptor(ctx, in, info, handler) 2268} 2269 2270var _ProductService_serviceDesc = grpc.ServiceDesc{ 2271 ServiceName: "google.cloud.retail.v2beta.ProductService", 2272 HandlerType: (*ProductServiceServer)(nil), 2273 Methods: []grpc.MethodDesc{ 2274 { 2275 MethodName: "CreateProduct", 2276 Handler: _ProductService_CreateProduct_Handler, 2277 }, 2278 { 2279 MethodName: "GetProduct", 2280 Handler: _ProductService_GetProduct_Handler, 2281 }, 2282 { 2283 MethodName: "ListProducts", 2284 Handler: _ProductService_ListProducts_Handler, 2285 }, 2286 { 2287 MethodName: "UpdateProduct", 2288 Handler: _ProductService_UpdateProduct_Handler, 2289 }, 2290 { 2291 MethodName: "DeleteProduct", 2292 Handler: _ProductService_DeleteProduct_Handler, 2293 }, 2294 { 2295 MethodName: "ImportProducts", 2296 Handler: _ProductService_ImportProducts_Handler, 2297 }, 2298 { 2299 MethodName: "SetInventory", 2300 Handler: _ProductService_SetInventory_Handler, 2301 }, 2302 { 2303 MethodName: "AddFulfillmentPlaces", 2304 Handler: _ProductService_AddFulfillmentPlaces_Handler, 2305 }, 2306 { 2307 MethodName: "RemoveFulfillmentPlaces", 2308 Handler: _ProductService_RemoveFulfillmentPlaces_Handler, 2309 }, 2310 }, 2311 Streams: []grpc.StreamDesc{}, 2312 Metadata: "google/cloud/retail/v2beta/product_service.proto", 2313} 2314