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