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