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, a NOT_FOUND 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 // a NOT_FOUND 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 AddFulfillmentPlacesRequest. 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 // a NOT_FOUND 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, 0x28, 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, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x67, 1232 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 1233 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 1234 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 1235 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 1236 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 1237 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 1238 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 1239 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x70, 0x72, 0x6f, 1240 0x64, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1241 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 1242 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x5f, 0x63, 0x6f, 1243 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 1244 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 1245 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 1246 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 1247 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 1248 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 1249 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 1250 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 1251 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 1252 0xbd, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 1253 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 1254 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 1255 0x0a, 0x1c, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 1256 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x06, 1257 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 1258 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1259 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 1260 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x42, 0x03, 0xe0, 1261 0x41, 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 1262 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 1263 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x22, 1264 0x4e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 1265 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 1266 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x72, 0x65, 0x74, 0x61, 1267 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 1268 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 1269 0xbd, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 1270 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 1271 0x75, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1272 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 1273 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x42, 1274 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x3b, 0x0a, 1275 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 1276 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1277 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 1278 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 1279 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 1280 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 1281 0x51, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 1282 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 1283 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x72, 1284 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 1285 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x04, 0x6e, 0x61, 1286 0x6d, 0x65, 0x22, 0x8e, 0x02, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 1287 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, 1288 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 1289 0x41, 0x1e, 0x0a, 0x1c, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1290 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 1291 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 1292 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 1293 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 1294 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 1295 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 1296 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x09, 1297 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 1298 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 1299 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x08, 0x72, 0x65, 0x61, 1300 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 1301 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 1302 0x08, 0x52, 0x10, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 1303 0x69, 0x7a, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 1304 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 1305 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 1306 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 1307 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f, 1308 0x64, 0x75, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x26, 1309 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 1310 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 1311 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 1312 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 1313 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xf1, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x76, 1314 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 1315 0x09, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 1316 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 1317 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 1318 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x76, 1319 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x35, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x61, 1320 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1321 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 1322 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x07, 0x73, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x35, 0x0a, 1323 0x08, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 1324 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 1325 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x73, 0x65, 0x74, 1326 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 1327 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 1328 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x65, 0x74, 1329 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 1330 0x61, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 1331 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf5, 0x01, 0x0a, 0x1b, 0x41, 0x64, 1332 0x64, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 1333 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x07, 0x70, 0x72, 0x6f, 1334 0x64, 0x75, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 1335 0x41, 0x1f, 0x0a, 0x1d, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1336 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 1337 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x79, 1338 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 1339 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x73, 1340 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x70, 0x6c, 0x61, 1341 0x63, 0x65, 0x49, 0x64, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x74, 0x69, 0x6d, 1342 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1343 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 1344 0x61, 0x6d, 0x70, 0x52, 0x07, 0x61, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 1345 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 1346 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 1347 0x67, 0x22, 0x1e, 0x0a, 0x1c, 0x41, 0x64, 0x64, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 1348 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 1349 0x61, 0x22, 0x1e, 0x0a, 0x1c, 0x41, 0x64, 0x64, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 1350 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 1351 0x65, 0x22, 0xfe, 0x01, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x75, 0x6c, 0x66, 1352 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 1353 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 1354 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x72, 1355 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 1356 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 1357 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 1358 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 1359 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 1360 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x49, 0x64, 0x73, 1361 0x12, 0x3b, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 1362 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 1363 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 1364 0x70, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 1365 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x05, 1366 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 1367 0x6e, 0x67, 0x22, 0x21, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x75, 0x6c, 0x66, 1368 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x4d, 0x65, 0x74, 1369 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x21, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 1370 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 1371 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xa5, 0x13, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 1372 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xde, 0x01, 0x0a, 0x0d, 1373 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x31, 0x2e, 1374 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 1375 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 1376 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 1377 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 1378 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 1379 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x22, 0x47, 1380 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 1381 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 1382 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 1383 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 1384 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x3a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 1385 0xda, 0x41, 0x19, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 1386 0x74, 0x2c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x12, 0xbb, 0x01, 0x0a, 1387 0x0a, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 1388 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 1389 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 1390 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 1391 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 1392 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 1393 0x74, 0x22, 0x57, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x12, 0x48, 0x2f, 0x76, 0x32, 0x61, 0x6c, 1394 0x70, 0x68, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 1395 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 1396 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 1397 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 1398 0x2a, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xcd, 0x01, 0x0a, 0x0c, 0x4c, 1399 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x30, 0x2e, 0x67, 0x6f, 1400 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 1401 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 1402 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 1403 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 1404 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 1405 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 1406 0x22, 0x58, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x12, 0x47, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 1407 0x68, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 1408 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 1409 0x2a, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 1410 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 1411 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xe1, 0x01, 0x0a, 0x0d, 0x55, 1412 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x31, 0x2e, 0x67, 1413 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 1414 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 1415 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 1416 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 1417 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x72, 1418 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0x77, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5b, 0x32, 0x50, 0x2f, 1419 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 1420 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 1421 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x61, 0x74, 1422 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 1423 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0x3a, 1424 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0xda, 0x41, 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 1425 0x63, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xb3, 1426 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 1427 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 1428 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 1429 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 1430 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 1431 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x57, 0x82, 0xd3, 0xe4, 1432 0x93, 0x02, 0x4a, 0x2a, 0x48, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x7b, 0x6e, 1433 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 1434 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 1435 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 1436 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0xda, 0x41, 0x04, 1437 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xa2, 0x02, 0x0a, 0x0e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 1438 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1439 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 1440 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 1441 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 1442 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 1443 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbc, 0x01, 0x82, 0xd3, 0xe4, 1444 0x93, 0x02, 0x53, 0x22, 0x4e, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x7b, 0x70, 1445 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 1446 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x61, 0x74, 1447 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 1448 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x3a, 0x69, 0x6d, 0x70, 1449 0x6f, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x60, 0x0a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1450 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 1451 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 1452 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x67, 1453 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 1454 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 1455 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xc8, 0x02, 0x0a, 0x0c, 0x53, 0x65, 1456 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 1457 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 1458 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x65, 1459 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 1460 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 1461 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe6, 0x01, 0x82, 0xd3, 1462 0xe4, 0x93, 0x02, 0x64, 0x22, 0x5f, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x7b, 1463 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 1464 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 1465 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 1466 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64, 1467 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x65, 1468 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x12, 0x69, 0x6e, 0x76, 0x65, 0x6e, 1469 0x74, 0x6f, 0x72, 0x79, 0x2c, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0xca, 0x41, 0x64, 1470 0x0a, 0x30, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 1471 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 1472 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 1473 0x73, 0x65, 0x12, 0x30, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1474 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 1475 0x53, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 1476 0x64, 0x61, 0x74, 0x61, 0x12, 0xde, 0x02, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x46, 0x75, 0x6c, 0x66, 1477 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x12, 0x38, 0x2e, 1478 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 1479 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x46, 1480 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 1481 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1482 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 1483 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xec, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x65, 0x22, 1484 0x60, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 1485 0x63, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 1486 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 1487 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 1488 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0x3a, 0x61, 0x64, 0x64, 1489 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 1490 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0xca, 0x41, 1491 0x74, 0x0a, 0x38, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 1492 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x41, 1493 0x64, 0x64, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 1494 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x67, 0x6f, 0x6f, 1495 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 1496 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x46, 0x75, 0x6c, 0x66, 1497 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x4d, 0x65, 0x74, 1498 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xed, 0x02, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 1499 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 1500 0x73, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1501 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 1502 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 1503 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 1504 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 1505 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf5, 0x01, 1506 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x68, 0x22, 0x63, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 1507 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 1508 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 1509 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 1510 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 1511 0x2a, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 1512 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 1513 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0xca, 0x41, 0x7a, 0x0a, 0x3b, 0x67, 0x6f, 0x6f, 1514 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 1515 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 1516 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 1517 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1518 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 1519 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x75, 0x6c, 0x66, 1520 0x69, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x4d, 0x65, 0x74, 1521 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x49, 0xca, 0x41, 0x15, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 1522 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 1523 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 1524 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 1525 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1526 0x42, 0xe1, 0x01, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1527 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x61, 1528 0x6c, 0x70, 0x68, 0x61, 0x42, 0x13, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x72, 1529 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 1530 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 1531 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 1532 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 1533 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 1534 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1535 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 1536 0x41, 0x6c, 0x70, 0x68, 0x61, 0xca, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 1537 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0x61, 0x6c, 1538 0x70, 0x68, 0x61, 0xea, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 1539 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x61, 1540 0x6c, 0x70, 0x68, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 1541} 1542 1543var ( 1544 file_google_cloud_retail_v2alpha_product_service_proto_rawDescOnce sync.Once 1545 file_google_cloud_retail_v2alpha_product_service_proto_rawDescData = file_google_cloud_retail_v2alpha_product_service_proto_rawDesc 1546) 1547 1548func file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP() []byte { 1549 file_google_cloud_retail_v2alpha_product_service_proto_rawDescOnce.Do(func() { 1550 file_google_cloud_retail_v2alpha_product_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2alpha_product_service_proto_rawDescData) 1551 }) 1552 return file_google_cloud_retail_v2alpha_product_service_proto_rawDescData 1553} 1554 1555var file_google_cloud_retail_v2alpha_product_service_proto_msgTypes = make([]protoimpl.MessageInfo, 15) 1556var file_google_cloud_retail_v2alpha_product_service_proto_goTypes = []interface{}{ 1557 (*CreateProductRequest)(nil), // 0: google.cloud.retail.v2alpha.CreateProductRequest 1558 (*GetProductRequest)(nil), // 1: google.cloud.retail.v2alpha.GetProductRequest 1559 (*UpdateProductRequest)(nil), // 2: google.cloud.retail.v2alpha.UpdateProductRequest 1560 (*DeleteProductRequest)(nil), // 3: google.cloud.retail.v2alpha.DeleteProductRequest 1561 (*ListProductsRequest)(nil), // 4: google.cloud.retail.v2alpha.ListProductsRequest 1562 (*ListProductsResponse)(nil), // 5: google.cloud.retail.v2alpha.ListProductsResponse 1563 (*SetInventoryRequest)(nil), // 6: google.cloud.retail.v2alpha.SetInventoryRequest 1564 (*SetInventoryMetadata)(nil), // 7: google.cloud.retail.v2alpha.SetInventoryMetadata 1565 (*SetInventoryResponse)(nil), // 8: google.cloud.retail.v2alpha.SetInventoryResponse 1566 (*AddFulfillmentPlacesRequest)(nil), // 9: google.cloud.retail.v2alpha.AddFulfillmentPlacesRequest 1567 (*AddFulfillmentPlacesMetadata)(nil), // 10: google.cloud.retail.v2alpha.AddFulfillmentPlacesMetadata 1568 (*AddFulfillmentPlacesResponse)(nil), // 11: google.cloud.retail.v2alpha.AddFulfillmentPlacesResponse 1569 (*RemoveFulfillmentPlacesRequest)(nil), // 12: google.cloud.retail.v2alpha.RemoveFulfillmentPlacesRequest 1570 (*RemoveFulfillmentPlacesMetadata)(nil), // 13: google.cloud.retail.v2alpha.RemoveFulfillmentPlacesMetadata 1571 (*RemoveFulfillmentPlacesResponse)(nil), // 14: google.cloud.retail.v2alpha.RemoveFulfillmentPlacesResponse 1572 (*Product)(nil), // 15: google.cloud.retail.v2alpha.Product 1573 (*fieldmaskpb.FieldMask)(nil), // 16: google.protobuf.FieldMask 1574 (*timestamppb.Timestamp)(nil), // 17: google.protobuf.Timestamp 1575 (*ImportProductsRequest)(nil), // 18: google.cloud.retail.v2alpha.ImportProductsRequest 1576 (*emptypb.Empty)(nil), // 19: google.protobuf.Empty 1577 (*longrunning.Operation)(nil), // 20: google.longrunning.Operation 1578} 1579var file_google_cloud_retail_v2alpha_product_service_proto_depIdxs = []int32{ 1580 15, // 0: google.cloud.retail.v2alpha.CreateProductRequest.product:type_name -> google.cloud.retail.v2alpha.Product 1581 15, // 1: google.cloud.retail.v2alpha.UpdateProductRequest.product:type_name -> google.cloud.retail.v2alpha.Product 1582 16, // 2: google.cloud.retail.v2alpha.UpdateProductRequest.update_mask:type_name -> google.protobuf.FieldMask 1583 16, // 3: google.cloud.retail.v2alpha.ListProductsRequest.read_mask:type_name -> google.protobuf.FieldMask 1584 15, // 4: google.cloud.retail.v2alpha.ListProductsResponse.products:type_name -> google.cloud.retail.v2alpha.Product 1585 15, // 5: google.cloud.retail.v2alpha.SetInventoryRequest.inventory:type_name -> google.cloud.retail.v2alpha.Product 1586 16, // 6: google.cloud.retail.v2alpha.SetInventoryRequest.set_mask:type_name -> google.protobuf.FieldMask 1587 17, // 7: google.cloud.retail.v2alpha.SetInventoryRequest.set_time:type_name -> google.protobuf.Timestamp 1588 17, // 8: google.cloud.retail.v2alpha.AddFulfillmentPlacesRequest.add_time:type_name -> google.protobuf.Timestamp 1589 17, // 9: google.cloud.retail.v2alpha.RemoveFulfillmentPlacesRequest.remove_time:type_name -> google.protobuf.Timestamp 1590 0, // 10: google.cloud.retail.v2alpha.ProductService.CreateProduct:input_type -> google.cloud.retail.v2alpha.CreateProductRequest 1591 1, // 11: google.cloud.retail.v2alpha.ProductService.GetProduct:input_type -> google.cloud.retail.v2alpha.GetProductRequest 1592 4, // 12: google.cloud.retail.v2alpha.ProductService.ListProducts:input_type -> google.cloud.retail.v2alpha.ListProductsRequest 1593 2, // 13: google.cloud.retail.v2alpha.ProductService.UpdateProduct:input_type -> google.cloud.retail.v2alpha.UpdateProductRequest 1594 3, // 14: google.cloud.retail.v2alpha.ProductService.DeleteProduct:input_type -> google.cloud.retail.v2alpha.DeleteProductRequest 1595 18, // 15: google.cloud.retail.v2alpha.ProductService.ImportProducts:input_type -> google.cloud.retail.v2alpha.ImportProductsRequest 1596 6, // 16: google.cloud.retail.v2alpha.ProductService.SetInventory:input_type -> google.cloud.retail.v2alpha.SetInventoryRequest 1597 9, // 17: google.cloud.retail.v2alpha.ProductService.AddFulfillmentPlaces:input_type -> google.cloud.retail.v2alpha.AddFulfillmentPlacesRequest 1598 12, // 18: google.cloud.retail.v2alpha.ProductService.RemoveFulfillmentPlaces:input_type -> google.cloud.retail.v2alpha.RemoveFulfillmentPlacesRequest 1599 15, // 19: google.cloud.retail.v2alpha.ProductService.CreateProduct:output_type -> google.cloud.retail.v2alpha.Product 1600 15, // 20: google.cloud.retail.v2alpha.ProductService.GetProduct:output_type -> google.cloud.retail.v2alpha.Product 1601 5, // 21: google.cloud.retail.v2alpha.ProductService.ListProducts:output_type -> google.cloud.retail.v2alpha.ListProductsResponse 1602 15, // 22: google.cloud.retail.v2alpha.ProductService.UpdateProduct:output_type -> google.cloud.retail.v2alpha.Product 1603 19, // 23: google.cloud.retail.v2alpha.ProductService.DeleteProduct:output_type -> google.protobuf.Empty 1604 20, // 24: google.cloud.retail.v2alpha.ProductService.ImportProducts:output_type -> google.longrunning.Operation 1605 20, // 25: google.cloud.retail.v2alpha.ProductService.SetInventory:output_type -> google.longrunning.Operation 1606 20, // 26: google.cloud.retail.v2alpha.ProductService.AddFulfillmentPlaces:output_type -> google.longrunning.Operation 1607 20, // 27: google.cloud.retail.v2alpha.ProductService.RemoveFulfillmentPlaces:output_type -> google.longrunning.Operation 1608 19, // [19:28] is the sub-list for method output_type 1609 10, // [10:19] is the sub-list for method input_type 1610 10, // [10:10] is the sub-list for extension type_name 1611 10, // [10:10] is the sub-list for extension extendee 1612 0, // [0:10] is the sub-list for field type_name 1613} 1614 1615func init() { file_google_cloud_retail_v2alpha_product_service_proto_init() } 1616func file_google_cloud_retail_v2alpha_product_service_proto_init() { 1617 if File_google_cloud_retail_v2alpha_product_service_proto != nil { 1618 return 1619 } 1620 file_google_cloud_retail_v2alpha_common_proto_init() 1621 file_google_cloud_retail_v2alpha_export_config_proto_init() 1622 file_google_cloud_retail_v2alpha_import_config_proto_init() 1623 file_google_cloud_retail_v2alpha_product_proto_init() 1624 file_google_cloud_retail_v2alpha_purge_config_proto_init() 1625 if !protoimpl.UnsafeEnabled { 1626 file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 1627 switch v := v.(*CreateProductRequest); i { 1628 case 0: 1629 return &v.state 1630 case 1: 1631 return &v.sizeCache 1632 case 2: 1633 return &v.unknownFields 1634 default: 1635 return nil 1636 } 1637 } 1638 file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 1639 switch v := v.(*GetProductRequest); i { 1640 case 0: 1641 return &v.state 1642 case 1: 1643 return &v.sizeCache 1644 case 2: 1645 return &v.unknownFields 1646 default: 1647 return nil 1648 } 1649 } 1650 file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 1651 switch v := v.(*UpdateProductRequest); i { 1652 case 0: 1653 return &v.state 1654 case 1: 1655 return &v.sizeCache 1656 case 2: 1657 return &v.unknownFields 1658 default: 1659 return nil 1660 } 1661 } 1662 file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 1663 switch v := v.(*DeleteProductRequest); i { 1664 case 0: 1665 return &v.state 1666 case 1: 1667 return &v.sizeCache 1668 case 2: 1669 return &v.unknownFields 1670 default: 1671 return nil 1672 } 1673 } 1674 file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 1675 switch v := v.(*ListProductsRequest); i { 1676 case 0: 1677 return &v.state 1678 case 1: 1679 return &v.sizeCache 1680 case 2: 1681 return &v.unknownFields 1682 default: 1683 return nil 1684 } 1685 } 1686 file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 1687 switch v := v.(*ListProductsResponse); i { 1688 case 0: 1689 return &v.state 1690 case 1: 1691 return &v.sizeCache 1692 case 2: 1693 return &v.unknownFields 1694 default: 1695 return nil 1696 } 1697 } 1698 file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 1699 switch v := v.(*SetInventoryRequest); i { 1700 case 0: 1701 return &v.state 1702 case 1: 1703 return &v.sizeCache 1704 case 2: 1705 return &v.unknownFields 1706 default: 1707 return nil 1708 } 1709 } 1710 file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 1711 switch v := v.(*SetInventoryMetadata); i { 1712 case 0: 1713 return &v.state 1714 case 1: 1715 return &v.sizeCache 1716 case 2: 1717 return &v.unknownFields 1718 default: 1719 return nil 1720 } 1721 } 1722 file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 1723 switch v := v.(*SetInventoryResponse); i { 1724 case 0: 1725 return &v.state 1726 case 1: 1727 return &v.sizeCache 1728 case 2: 1729 return &v.unknownFields 1730 default: 1731 return nil 1732 } 1733 } 1734 file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 1735 switch v := v.(*AddFulfillmentPlacesRequest); i { 1736 case 0: 1737 return &v.state 1738 case 1: 1739 return &v.sizeCache 1740 case 2: 1741 return &v.unknownFields 1742 default: 1743 return nil 1744 } 1745 } 1746 file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 1747 switch v := v.(*AddFulfillmentPlacesMetadata); i { 1748 case 0: 1749 return &v.state 1750 case 1: 1751 return &v.sizeCache 1752 case 2: 1753 return &v.unknownFields 1754 default: 1755 return nil 1756 } 1757 } 1758 file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 1759 switch v := v.(*AddFulfillmentPlacesResponse); i { 1760 case 0: 1761 return &v.state 1762 case 1: 1763 return &v.sizeCache 1764 case 2: 1765 return &v.unknownFields 1766 default: 1767 return nil 1768 } 1769 } 1770 file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 1771 switch v := v.(*RemoveFulfillmentPlacesRequest); i { 1772 case 0: 1773 return &v.state 1774 case 1: 1775 return &v.sizeCache 1776 case 2: 1777 return &v.unknownFields 1778 default: 1779 return nil 1780 } 1781 } 1782 file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 1783 switch v := v.(*RemoveFulfillmentPlacesMetadata); i { 1784 case 0: 1785 return &v.state 1786 case 1: 1787 return &v.sizeCache 1788 case 2: 1789 return &v.unknownFields 1790 default: 1791 return nil 1792 } 1793 } 1794 file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 1795 switch v := v.(*RemoveFulfillmentPlacesResponse); i { 1796 case 0: 1797 return &v.state 1798 case 1: 1799 return &v.sizeCache 1800 case 2: 1801 return &v.unknownFields 1802 default: 1803 return nil 1804 } 1805 } 1806 } 1807 type x struct{} 1808 out := protoimpl.TypeBuilder{ 1809 File: protoimpl.DescBuilder{ 1810 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1811 RawDescriptor: file_google_cloud_retail_v2alpha_product_service_proto_rawDesc, 1812 NumEnums: 0, 1813 NumMessages: 15, 1814 NumExtensions: 0, 1815 NumServices: 1, 1816 }, 1817 GoTypes: file_google_cloud_retail_v2alpha_product_service_proto_goTypes, 1818 DependencyIndexes: file_google_cloud_retail_v2alpha_product_service_proto_depIdxs, 1819 MessageInfos: file_google_cloud_retail_v2alpha_product_service_proto_msgTypes, 1820 }.Build() 1821 File_google_cloud_retail_v2alpha_product_service_proto = out.File 1822 file_google_cloud_retail_v2alpha_product_service_proto_rawDesc = nil 1823 file_google_cloud_retail_v2alpha_product_service_proto_goTypes = nil 1824 file_google_cloud_retail_v2alpha_product_service_proto_depIdxs = nil 1825} 1826 1827// Reference imports to suppress errors if they are not otherwise used. 1828var _ context.Context 1829var _ grpc.ClientConnInterface 1830 1831// This is a compile-time assertion to ensure that this generated file 1832// is compatible with the grpc package it is being compiled against. 1833const _ = grpc.SupportPackageIsVersion6 1834 1835// ProductServiceClient is the client API for ProductService service. 1836// 1837// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 1838type ProductServiceClient interface { 1839 // Creates a [Product][google.cloud.retail.v2alpha.Product]. 1840 CreateProduct(ctx context.Context, in *CreateProductRequest, opts ...grpc.CallOption) (*Product, error) 1841 // Gets a [Product][google.cloud.retail.v2alpha.Product]. 1842 GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error) 1843 // Gets a list of [Product][google.cloud.retail.v2alpha.Product]s. 1844 ListProducts(ctx context.Context, in *ListProductsRequest, opts ...grpc.CallOption) (*ListProductsResponse, error) 1845 // Updates a [Product][google.cloud.retail.v2alpha.Product]. 1846 UpdateProduct(ctx context.Context, in *UpdateProductRequest, opts ...grpc.CallOption) (*Product, error) 1847 // Deletes a [Product][google.cloud.retail.v2alpha.Product]. 1848 DeleteProduct(ctx context.Context, in *DeleteProductRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) 1849 // Bulk import of multiple [Product][google.cloud.retail.v2alpha.Product]s. 1850 // 1851 // Request processing may be synchronous. No partial updating is supported. 1852 // Non-existing items are created. 1853 // 1854 // Note that it is possible for a subset of the 1855 // [Product][google.cloud.retail.v2alpha.Product]s to be successfully updated. 1856 ImportProducts(ctx context.Context, in *ImportProductsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 1857 // Updates inventory information for a 1858 // [Product][google.cloud.retail.v2alpha.Product] while respecting the last 1859 // update timestamps of each inventory field. 1860 // 1861 // This process is asynchronous and does not require the 1862 // [Product][google.cloud.retail.v2alpha.Product] to exist before updating 1863 // fulfillment information. If the request is valid, the update will be 1864 // enqueued and processed downstream. As a consequence, when a response is 1865 // returned, updates are not immediately manifested in the 1866 // [Product][google.cloud.retail.v2alpha.Product] queried by 1867 // [GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] or 1868 // [ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]. 1869 // 1870 // When inventory is updated with 1871 // [CreateProduct][google.cloud.retail.v2alpha.ProductService.CreateProduct] 1872 // and 1873 // [UpdateProduct][google.cloud.retail.v2alpha.ProductService.UpdateProduct], 1874 // the specified inventory field value(s) will overwrite any existing value(s) 1875 // while ignoring the last update time for this field. Furthermore, the last 1876 // update time for the specified inventory fields will be overwritten to the 1877 // time of the 1878 // [CreateProduct][google.cloud.retail.v2alpha.ProductService.CreateProduct] 1879 // or 1880 // [UpdateProduct][google.cloud.retail.v2alpha.ProductService.UpdateProduct] 1881 // request. 1882 // 1883 // If no inventory fields are set in 1884 // [CreateProductRequest.product][google.cloud.retail.v2alpha.CreateProductRequest.product], 1885 // then any pre-existing inventory information for this product will be used. 1886 // 1887 // If no inventory fields are set in [UpdateProductRequest.set_mask][], 1888 // then any existing inventory information will be preserved. 1889 // 1890 // Pre-existing inventory information can only be updated with 1891 // [SetInventory][google.cloud.retail.v2alpha.ProductService.SetInventory], 1892 // [AddFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.AddFulfillmentPlaces], 1893 // and 1894 // [RemoveFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.RemoveFulfillmentPlaces]. 1895 // 1896 // This feature is only available for users who have Retail Search enabled. 1897 // Please submit a form [here](https://cloud.google.com/contact) to contact 1898 // cloud sales if you are interested in using Retail Search. 1899 SetInventory(ctx context.Context, in *SetInventoryRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 1900 // Incrementally adds place IDs to 1901 // [Product.fulfillment_info.place_ids][google.cloud.retail.v2alpha.FulfillmentInfo.place_ids]. 1902 // 1903 // This process is asynchronous and does not require the 1904 // [Product][google.cloud.retail.v2alpha.Product] to exist before updating 1905 // fulfillment information. If the request is valid, the update will be 1906 // enqueued and processed downstream. As a consequence, when a response is 1907 // returned, the added place IDs are not immediately manifested in the 1908 // [Product][google.cloud.retail.v2alpha.Product] queried by 1909 // [GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] or 1910 // [ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]. 1911 // 1912 // This feature is only available for users who have Retail Search enabled. 1913 // Please submit a form [here](https://cloud.google.com/contact) to contact 1914 // cloud sales if you are interested in using Retail Search. 1915 AddFulfillmentPlaces(ctx context.Context, in *AddFulfillmentPlacesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 1916 // Incrementally removes place IDs from a 1917 // [Product.fulfillment_info.place_ids][google.cloud.retail.v2alpha.FulfillmentInfo.place_ids]. 1918 // 1919 // This process is asynchronous and does not require the 1920 // [Product][google.cloud.retail.v2alpha.Product] to exist before updating 1921 // fulfillment information. If the request is valid, the update will be 1922 // enqueued and processed downstream. As a consequence, when a response is 1923 // returned, the removed place IDs are not immediately manifested in the 1924 // [Product][google.cloud.retail.v2alpha.Product] queried by 1925 // [GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] or 1926 // [ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]. 1927 // 1928 // This feature is only available for users who have Retail Search enabled. 1929 // Please submit a form [here](https://cloud.google.com/contact) to contact 1930 // cloud sales if you are interested in using Retail Search. 1931 RemoveFulfillmentPlaces(ctx context.Context, in *RemoveFulfillmentPlacesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 1932} 1933 1934type productServiceClient struct { 1935 cc grpc.ClientConnInterface 1936} 1937 1938func NewProductServiceClient(cc grpc.ClientConnInterface) ProductServiceClient { 1939 return &productServiceClient{cc} 1940} 1941 1942func (c *productServiceClient) CreateProduct(ctx context.Context, in *CreateProductRequest, opts ...grpc.CallOption) (*Product, error) { 1943 out := new(Product) 1944 err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.ProductService/CreateProduct", in, out, opts...) 1945 if err != nil { 1946 return nil, err 1947 } 1948 return out, nil 1949} 1950 1951func (c *productServiceClient) GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error) { 1952 out := new(Product) 1953 err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.ProductService/GetProduct", in, out, opts...) 1954 if err != nil { 1955 return nil, err 1956 } 1957 return out, nil 1958} 1959 1960func (c *productServiceClient) ListProducts(ctx context.Context, in *ListProductsRequest, opts ...grpc.CallOption) (*ListProductsResponse, error) { 1961 out := new(ListProductsResponse) 1962 err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.ProductService/ListProducts", in, out, opts...) 1963 if err != nil { 1964 return nil, err 1965 } 1966 return out, nil 1967} 1968 1969func (c *productServiceClient) UpdateProduct(ctx context.Context, in *UpdateProductRequest, opts ...grpc.CallOption) (*Product, error) { 1970 out := new(Product) 1971 err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.ProductService/UpdateProduct", in, out, opts...) 1972 if err != nil { 1973 return nil, err 1974 } 1975 return out, nil 1976} 1977 1978func (c *productServiceClient) DeleteProduct(ctx context.Context, in *DeleteProductRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { 1979 out := new(emptypb.Empty) 1980 err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.ProductService/DeleteProduct", in, out, opts...) 1981 if err != nil { 1982 return nil, err 1983 } 1984 return out, nil 1985} 1986 1987func (c *productServiceClient) ImportProducts(ctx context.Context, in *ImportProductsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 1988 out := new(longrunning.Operation) 1989 err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.ProductService/ImportProducts", in, out, opts...) 1990 if err != nil { 1991 return nil, err 1992 } 1993 return out, nil 1994} 1995 1996func (c *productServiceClient) SetInventory(ctx context.Context, in *SetInventoryRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 1997 out := new(longrunning.Operation) 1998 err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.ProductService/SetInventory", in, out, opts...) 1999 if err != nil { 2000 return nil, err 2001 } 2002 return out, nil 2003} 2004 2005func (c *productServiceClient) AddFulfillmentPlaces(ctx context.Context, in *AddFulfillmentPlacesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 2006 out := new(longrunning.Operation) 2007 err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.ProductService/AddFulfillmentPlaces", in, out, opts...) 2008 if err != nil { 2009 return nil, err 2010 } 2011 return out, nil 2012} 2013 2014func (c *productServiceClient) RemoveFulfillmentPlaces(ctx context.Context, in *RemoveFulfillmentPlacesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 2015 out := new(longrunning.Operation) 2016 err := c.cc.Invoke(ctx, "/google.cloud.retail.v2alpha.ProductService/RemoveFulfillmentPlaces", in, out, opts...) 2017 if err != nil { 2018 return nil, err 2019 } 2020 return out, nil 2021} 2022 2023// ProductServiceServer is the server API for ProductService service. 2024type ProductServiceServer interface { 2025 // Creates a [Product][google.cloud.retail.v2alpha.Product]. 2026 CreateProduct(context.Context, *CreateProductRequest) (*Product, error) 2027 // Gets a [Product][google.cloud.retail.v2alpha.Product]. 2028 GetProduct(context.Context, *GetProductRequest) (*Product, error) 2029 // Gets a list of [Product][google.cloud.retail.v2alpha.Product]s. 2030 ListProducts(context.Context, *ListProductsRequest) (*ListProductsResponse, error) 2031 // Updates a [Product][google.cloud.retail.v2alpha.Product]. 2032 UpdateProduct(context.Context, *UpdateProductRequest) (*Product, error) 2033 // Deletes a [Product][google.cloud.retail.v2alpha.Product]. 2034 DeleteProduct(context.Context, *DeleteProductRequest) (*emptypb.Empty, error) 2035 // Bulk import of multiple [Product][google.cloud.retail.v2alpha.Product]s. 2036 // 2037 // Request processing may be synchronous. No partial updating is supported. 2038 // Non-existing items are created. 2039 // 2040 // Note that it is possible for a subset of the 2041 // [Product][google.cloud.retail.v2alpha.Product]s to be successfully updated. 2042 ImportProducts(context.Context, *ImportProductsRequest) (*longrunning.Operation, error) 2043 // Updates inventory information for a 2044 // [Product][google.cloud.retail.v2alpha.Product] while respecting the last 2045 // update timestamps of each inventory field. 2046 // 2047 // This process is asynchronous and does not require the 2048 // [Product][google.cloud.retail.v2alpha.Product] to exist before updating 2049 // fulfillment information. If the request is valid, the update will be 2050 // enqueued and processed downstream. As a consequence, when a response is 2051 // returned, updates are not immediately manifested in the 2052 // [Product][google.cloud.retail.v2alpha.Product] queried by 2053 // [GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] or 2054 // [ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]. 2055 // 2056 // When inventory is updated with 2057 // [CreateProduct][google.cloud.retail.v2alpha.ProductService.CreateProduct] 2058 // and 2059 // [UpdateProduct][google.cloud.retail.v2alpha.ProductService.UpdateProduct], 2060 // the specified inventory field value(s) will overwrite any existing value(s) 2061 // while ignoring the last update time for this field. Furthermore, the last 2062 // update time for the specified inventory fields will be overwritten to the 2063 // time of the 2064 // [CreateProduct][google.cloud.retail.v2alpha.ProductService.CreateProduct] 2065 // or 2066 // [UpdateProduct][google.cloud.retail.v2alpha.ProductService.UpdateProduct] 2067 // request. 2068 // 2069 // If no inventory fields are set in 2070 // [CreateProductRequest.product][google.cloud.retail.v2alpha.CreateProductRequest.product], 2071 // then any pre-existing inventory information for this product will be used. 2072 // 2073 // If no inventory fields are set in [UpdateProductRequest.set_mask][], 2074 // then any existing inventory information will be preserved. 2075 // 2076 // Pre-existing inventory information can only be updated with 2077 // [SetInventory][google.cloud.retail.v2alpha.ProductService.SetInventory], 2078 // [AddFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.AddFulfillmentPlaces], 2079 // and 2080 // [RemoveFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.RemoveFulfillmentPlaces]. 2081 // 2082 // This feature is only available for users who have Retail Search enabled. 2083 // Please submit a form [here](https://cloud.google.com/contact) to contact 2084 // cloud sales if you are interested in using Retail Search. 2085 SetInventory(context.Context, *SetInventoryRequest) (*longrunning.Operation, error) 2086 // Incrementally adds place IDs to 2087 // [Product.fulfillment_info.place_ids][google.cloud.retail.v2alpha.FulfillmentInfo.place_ids]. 2088 // 2089 // This process is asynchronous and does not require the 2090 // [Product][google.cloud.retail.v2alpha.Product] to exist before updating 2091 // fulfillment information. If the request is valid, the update will be 2092 // enqueued and processed downstream. As a consequence, when a response is 2093 // returned, the added place IDs are not immediately manifested in the 2094 // [Product][google.cloud.retail.v2alpha.Product] queried by 2095 // [GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] or 2096 // [ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]. 2097 // 2098 // This feature is only available for users who have Retail Search enabled. 2099 // Please submit a form [here](https://cloud.google.com/contact) to contact 2100 // cloud sales if you are interested in using Retail Search. 2101 AddFulfillmentPlaces(context.Context, *AddFulfillmentPlacesRequest) (*longrunning.Operation, error) 2102 // Incrementally removes place IDs from a 2103 // [Product.fulfillment_info.place_ids][google.cloud.retail.v2alpha.FulfillmentInfo.place_ids]. 2104 // 2105 // This process is asynchronous and does not require the 2106 // [Product][google.cloud.retail.v2alpha.Product] to exist before updating 2107 // fulfillment information. If the request is valid, the update will be 2108 // enqueued and processed downstream. As a consequence, when a response is 2109 // returned, the removed place IDs are not immediately manifested in the 2110 // [Product][google.cloud.retail.v2alpha.Product] queried by 2111 // [GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct] or 2112 // [ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]. 2113 // 2114 // This feature is only available for users who have Retail Search enabled. 2115 // Please submit a form [here](https://cloud.google.com/contact) to contact 2116 // cloud sales if you are interested in using Retail Search. 2117 RemoveFulfillmentPlaces(context.Context, *RemoveFulfillmentPlacesRequest) (*longrunning.Operation, error) 2118} 2119 2120// UnimplementedProductServiceServer can be embedded to have forward compatible implementations. 2121type UnimplementedProductServiceServer struct { 2122} 2123 2124func (*UnimplementedProductServiceServer) CreateProduct(context.Context, *CreateProductRequest) (*Product, error) { 2125 return nil, status.Errorf(codes.Unimplemented, "method CreateProduct not implemented") 2126} 2127func (*UnimplementedProductServiceServer) GetProduct(context.Context, *GetProductRequest) (*Product, error) { 2128 return nil, status.Errorf(codes.Unimplemented, "method GetProduct not implemented") 2129} 2130func (*UnimplementedProductServiceServer) ListProducts(context.Context, *ListProductsRequest) (*ListProductsResponse, error) { 2131 return nil, status.Errorf(codes.Unimplemented, "method ListProducts not implemented") 2132} 2133func (*UnimplementedProductServiceServer) UpdateProduct(context.Context, *UpdateProductRequest) (*Product, error) { 2134 return nil, status.Errorf(codes.Unimplemented, "method UpdateProduct not implemented") 2135} 2136func (*UnimplementedProductServiceServer) DeleteProduct(context.Context, *DeleteProductRequest) (*emptypb.Empty, error) { 2137 return nil, status.Errorf(codes.Unimplemented, "method DeleteProduct not implemented") 2138} 2139func (*UnimplementedProductServiceServer) ImportProducts(context.Context, *ImportProductsRequest) (*longrunning.Operation, error) { 2140 return nil, status.Errorf(codes.Unimplemented, "method ImportProducts not implemented") 2141} 2142func (*UnimplementedProductServiceServer) SetInventory(context.Context, *SetInventoryRequest) (*longrunning.Operation, error) { 2143 return nil, status.Errorf(codes.Unimplemented, "method SetInventory not implemented") 2144} 2145func (*UnimplementedProductServiceServer) AddFulfillmentPlaces(context.Context, *AddFulfillmentPlacesRequest) (*longrunning.Operation, error) { 2146 return nil, status.Errorf(codes.Unimplemented, "method AddFulfillmentPlaces not implemented") 2147} 2148func (*UnimplementedProductServiceServer) RemoveFulfillmentPlaces(context.Context, *RemoveFulfillmentPlacesRequest) (*longrunning.Operation, error) { 2149 return nil, status.Errorf(codes.Unimplemented, "method RemoveFulfillmentPlaces not implemented") 2150} 2151 2152func RegisterProductServiceServer(s *grpc.Server, srv ProductServiceServer) { 2153 s.RegisterService(&_ProductService_serviceDesc, srv) 2154} 2155 2156func _ProductService_CreateProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2157 in := new(CreateProductRequest) 2158 if err := dec(in); err != nil { 2159 return nil, err 2160 } 2161 if interceptor == nil { 2162 return srv.(ProductServiceServer).CreateProduct(ctx, in) 2163 } 2164 info := &grpc.UnaryServerInfo{ 2165 Server: srv, 2166 FullMethod: "/google.cloud.retail.v2alpha.ProductService/CreateProduct", 2167 } 2168 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2169 return srv.(ProductServiceServer).CreateProduct(ctx, req.(*CreateProductRequest)) 2170 } 2171 return interceptor(ctx, in, info, handler) 2172} 2173 2174func _ProductService_GetProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2175 in := new(GetProductRequest) 2176 if err := dec(in); err != nil { 2177 return nil, err 2178 } 2179 if interceptor == nil { 2180 return srv.(ProductServiceServer).GetProduct(ctx, in) 2181 } 2182 info := &grpc.UnaryServerInfo{ 2183 Server: srv, 2184 FullMethod: "/google.cloud.retail.v2alpha.ProductService/GetProduct", 2185 } 2186 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2187 return srv.(ProductServiceServer).GetProduct(ctx, req.(*GetProductRequest)) 2188 } 2189 return interceptor(ctx, in, info, handler) 2190} 2191 2192func _ProductService_ListProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2193 in := new(ListProductsRequest) 2194 if err := dec(in); err != nil { 2195 return nil, err 2196 } 2197 if interceptor == nil { 2198 return srv.(ProductServiceServer).ListProducts(ctx, in) 2199 } 2200 info := &grpc.UnaryServerInfo{ 2201 Server: srv, 2202 FullMethod: "/google.cloud.retail.v2alpha.ProductService/ListProducts", 2203 } 2204 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2205 return srv.(ProductServiceServer).ListProducts(ctx, req.(*ListProductsRequest)) 2206 } 2207 return interceptor(ctx, in, info, handler) 2208} 2209 2210func _ProductService_UpdateProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2211 in := new(UpdateProductRequest) 2212 if err := dec(in); err != nil { 2213 return nil, err 2214 } 2215 if interceptor == nil { 2216 return srv.(ProductServiceServer).UpdateProduct(ctx, in) 2217 } 2218 info := &grpc.UnaryServerInfo{ 2219 Server: srv, 2220 FullMethod: "/google.cloud.retail.v2alpha.ProductService/UpdateProduct", 2221 } 2222 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2223 return srv.(ProductServiceServer).UpdateProduct(ctx, req.(*UpdateProductRequest)) 2224 } 2225 return interceptor(ctx, in, info, handler) 2226} 2227 2228func _ProductService_DeleteProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2229 in := new(DeleteProductRequest) 2230 if err := dec(in); err != nil { 2231 return nil, err 2232 } 2233 if interceptor == nil { 2234 return srv.(ProductServiceServer).DeleteProduct(ctx, in) 2235 } 2236 info := &grpc.UnaryServerInfo{ 2237 Server: srv, 2238 FullMethod: "/google.cloud.retail.v2alpha.ProductService/DeleteProduct", 2239 } 2240 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2241 return srv.(ProductServiceServer).DeleteProduct(ctx, req.(*DeleteProductRequest)) 2242 } 2243 return interceptor(ctx, in, info, handler) 2244} 2245 2246func _ProductService_ImportProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2247 in := new(ImportProductsRequest) 2248 if err := dec(in); err != nil { 2249 return nil, err 2250 } 2251 if interceptor == nil { 2252 return srv.(ProductServiceServer).ImportProducts(ctx, in) 2253 } 2254 info := &grpc.UnaryServerInfo{ 2255 Server: srv, 2256 FullMethod: "/google.cloud.retail.v2alpha.ProductService/ImportProducts", 2257 } 2258 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2259 return srv.(ProductServiceServer).ImportProducts(ctx, req.(*ImportProductsRequest)) 2260 } 2261 return interceptor(ctx, in, info, handler) 2262} 2263 2264func _ProductService_SetInventory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2265 in := new(SetInventoryRequest) 2266 if err := dec(in); err != nil { 2267 return nil, err 2268 } 2269 if interceptor == nil { 2270 return srv.(ProductServiceServer).SetInventory(ctx, in) 2271 } 2272 info := &grpc.UnaryServerInfo{ 2273 Server: srv, 2274 FullMethod: "/google.cloud.retail.v2alpha.ProductService/SetInventory", 2275 } 2276 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2277 return srv.(ProductServiceServer).SetInventory(ctx, req.(*SetInventoryRequest)) 2278 } 2279 return interceptor(ctx, in, info, handler) 2280} 2281 2282func _ProductService_AddFulfillmentPlaces_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2283 in := new(AddFulfillmentPlacesRequest) 2284 if err := dec(in); err != nil { 2285 return nil, err 2286 } 2287 if interceptor == nil { 2288 return srv.(ProductServiceServer).AddFulfillmentPlaces(ctx, in) 2289 } 2290 info := &grpc.UnaryServerInfo{ 2291 Server: srv, 2292 FullMethod: "/google.cloud.retail.v2alpha.ProductService/AddFulfillmentPlaces", 2293 } 2294 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2295 return srv.(ProductServiceServer).AddFulfillmentPlaces(ctx, req.(*AddFulfillmentPlacesRequest)) 2296 } 2297 return interceptor(ctx, in, info, handler) 2298} 2299 2300func _ProductService_RemoveFulfillmentPlaces_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2301 in := new(RemoveFulfillmentPlacesRequest) 2302 if err := dec(in); err != nil { 2303 return nil, err 2304 } 2305 if interceptor == nil { 2306 return srv.(ProductServiceServer).RemoveFulfillmentPlaces(ctx, in) 2307 } 2308 info := &grpc.UnaryServerInfo{ 2309 Server: srv, 2310 FullMethod: "/google.cloud.retail.v2alpha.ProductService/RemoveFulfillmentPlaces", 2311 } 2312 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2313 return srv.(ProductServiceServer).RemoveFulfillmentPlaces(ctx, req.(*RemoveFulfillmentPlacesRequest)) 2314 } 2315 return interceptor(ctx, in, info, handler) 2316} 2317 2318var _ProductService_serviceDesc = grpc.ServiceDesc{ 2319 ServiceName: "google.cloud.retail.v2alpha.ProductService", 2320 HandlerType: (*ProductServiceServer)(nil), 2321 Methods: []grpc.MethodDesc{ 2322 { 2323 MethodName: "CreateProduct", 2324 Handler: _ProductService_CreateProduct_Handler, 2325 }, 2326 { 2327 MethodName: "GetProduct", 2328 Handler: _ProductService_GetProduct_Handler, 2329 }, 2330 { 2331 MethodName: "ListProducts", 2332 Handler: _ProductService_ListProducts_Handler, 2333 }, 2334 { 2335 MethodName: "UpdateProduct", 2336 Handler: _ProductService_UpdateProduct_Handler, 2337 }, 2338 { 2339 MethodName: "DeleteProduct", 2340 Handler: _ProductService_DeleteProduct_Handler, 2341 }, 2342 { 2343 MethodName: "ImportProducts", 2344 Handler: _ProductService_ImportProducts_Handler, 2345 }, 2346 { 2347 MethodName: "SetInventory", 2348 Handler: _ProductService_SetInventory_Handler, 2349 }, 2350 { 2351 MethodName: "AddFulfillmentPlaces", 2352 Handler: _ProductService_AddFulfillmentPlaces_Handler, 2353 }, 2354 { 2355 MethodName: "RemoveFulfillmentPlaces", 2356 Handler: _ProductService_RemoveFulfillmentPlaces_Handler, 2357 }, 2358 }, 2359 Streams: []grpc.StreamDesc{}, 2360 Metadata: "google/cloud/retail/v2alpha/product_service.proto", 2361} 2362