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