1// Copyright 2020 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.25.0
18// 	protoc        v3.13.0
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	proto "github.com/golang/protobuf/proto"
29	_ "google.golang.org/genproto/googleapis/api/annotations"
30	longrunning "google.golang.org/genproto/googleapis/longrunning"
31	grpc "google.golang.org/grpc"
32	codes "google.golang.org/grpc/codes"
33	status "google.golang.org/grpc/status"
34	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
35	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
36	emptypb "google.golang.org/protobuf/types/known/emptypb"
37	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
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// This is a compile-time assertion that a sufficiently up-to-date version
48// of the legacy proto package is being used.
49const _ = proto.ProtoPackageIsVersion4
50
51// Request message for [CreateProduct][] method.
52type CreateProductRequest struct {
53	state         protoimpl.MessageState
54	sizeCache     protoimpl.SizeCache
55	unknownFields protoimpl.UnknownFields
56
57	// Required. The parent catalog resource name, such as
58	//
59	// "projects/*/locations/global/catalogs/default_catalog/branches/default_branch".
60	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
61	// Required. The [Product][google.cloud.retail.v2.Product] to create.
62	Product *Product `protobuf:"bytes,2,opt,name=product,proto3" json:"product,omitempty"`
63	// Required. The ID to use for the [Product][google.cloud.retail.v2.Product],
64	// which will become the final component of the
65	// [Product.name][google.cloud.retail.v2.Product.name].
66	//
67	// If the caller does not have permission to create the
68	// [Product][google.cloud.retail.v2.Product], regardless of whether or not it
69	// exists, a PERMISSION_DENIED error is returned.
70	//
71	// This field must be unique among all
72	// [Product][google.cloud.retail.v2.Product]s with the same
73	// [parent][google.cloud.retail.v2.CreateProductRequest.parent]. Otherwise, an
74	// ALREADY_EXISTS error is returned.
75	//
76	// This field must be a UTF-8 encoded string with a length limit of 128
77	// characters. Otherwise, an INVALID_ARGUMENT error is returned.
78	ProductId string `protobuf:"bytes,3,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"`
79}
80
81func (x *CreateProductRequest) Reset() {
82	*x = CreateProductRequest{}
83	if protoimpl.UnsafeEnabled {
84		mi := &file_google_cloud_retail_v2_product_service_proto_msgTypes[0]
85		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
86		ms.StoreMessageInfo(mi)
87	}
88}
89
90func (x *CreateProductRequest) String() string {
91	return protoimpl.X.MessageStringOf(x)
92}
93
94func (*CreateProductRequest) ProtoMessage() {}
95
96func (x *CreateProductRequest) ProtoReflect() protoreflect.Message {
97	mi := &file_google_cloud_retail_v2_product_service_proto_msgTypes[0]
98	if protoimpl.UnsafeEnabled && x != nil {
99		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
100		if ms.LoadMessageInfo() == nil {
101			ms.StoreMessageInfo(mi)
102		}
103		return ms
104	}
105	return mi.MessageOf(x)
106}
107
108// Deprecated: Use CreateProductRequest.ProtoReflect.Descriptor instead.
109func (*CreateProductRequest) Descriptor() ([]byte, []int) {
110	return file_google_cloud_retail_v2_product_service_proto_rawDescGZIP(), []int{0}
111}
112
113func (x *CreateProductRequest) GetParent() string {
114	if x != nil {
115		return x.Parent
116	}
117	return ""
118}
119
120func (x *CreateProductRequest) GetProduct() *Product {
121	if x != nil {
122		return x.Product
123	}
124	return nil
125}
126
127func (x *CreateProductRequest) GetProductId() string {
128	if x != nil {
129		return x.ProductId
130	}
131	return ""
132}
133
134// Request message for [GetProduct][] method.
135type GetProductRequest struct {
136	state         protoimpl.MessageState
137	sizeCache     protoimpl.SizeCache
138	unknownFields protoimpl.UnknownFields
139
140	// Required. Full resource name of [Product][google.cloud.retail.v2.Product],
141	// such as
142	//
143	// "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id".
144	//
145	// If the caller does not have permission to access the
146	// [Product][google.cloud.retail.v2.Product], regardless of whether or not it
147	// exists, a PERMISSION_DENIED error is returned.
148	//
149	// If the requested [Product][google.cloud.retail.v2.Product] does not exist,
150	// a NOT_FOUND error is returned.
151	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
152}
153
154func (x *GetProductRequest) Reset() {
155	*x = GetProductRequest{}
156	if protoimpl.UnsafeEnabled {
157		mi := &file_google_cloud_retail_v2_product_service_proto_msgTypes[1]
158		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
159		ms.StoreMessageInfo(mi)
160	}
161}
162
163func (x *GetProductRequest) String() string {
164	return protoimpl.X.MessageStringOf(x)
165}
166
167func (*GetProductRequest) ProtoMessage() {}
168
169func (x *GetProductRequest) ProtoReflect() protoreflect.Message {
170	mi := &file_google_cloud_retail_v2_product_service_proto_msgTypes[1]
171	if protoimpl.UnsafeEnabled && x != nil {
172		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
173		if ms.LoadMessageInfo() == nil {
174			ms.StoreMessageInfo(mi)
175		}
176		return ms
177	}
178	return mi.MessageOf(x)
179}
180
181// Deprecated: Use GetProductRequest.ProtoReflect.Descriptor instead.
182func (*GetProductRequest) Descriptor() ([]byte, []int) {
183	return file_google_cloud_retail_v2_product_service_proto_rawDescGZIP(), []int{1}
184}
185
186func (x *GetProductRequest) GetName() string {
187	if x != nil {
188		return x.Name
189	}
190	return ""
191}
192
193// Request message for [UpdateProduct][] method.
194type UpdateProductRequest struct {
195	state         protoimpl.MessageState
196	sizeCache     protoimpl.SizeCache
197	unknownFields protoimpl.UnknownFields
198
199	// Required. The product to update/create.
200	//
201	// If the caller does not have permission to update the
202	// [Product][google.cloud.retail.v2.Product], regardless of whether or not it
203	// exists, a PERMISSION_DENIED error is returned.
204	//
205	// If the [Product][google.cloud.retail.v2.Product] to update does not exist,
206	// a NOT_FOUND error is returned.
207	Product *Product `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"`
208	// Indicates which fields in the provided
209	// [Product][google.cloud.retail.v2.Product] to update. The immutable and
210	// output only fields are NOT supported. If not set, all supported fields (the
211	// fields that are neither immutable nor output only) are updated.
212	//
213	// If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
214	// is returned.
215	UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,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
264// Request message for [DeleteProduct][] method.
265type DeleteProductRequest struct {
266	state         protoimpl.MessageState
267	sizeCache     protoimpl.SizeCache
268	unknownFields protoimpl.UnknownFields
269
270	// Required. Full resource name of [Product][google.cloud.retail.v2.Product],
271	// such as
272	//
273	// "projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id".
274	//
275	// If the caller does not have permission to delete the
276	// [Product][google.cloud.retail.v2.Product], regardless of whether or not it
277	// exists, a PERMISSION_DENIED error is returned.
278	//
279	// If the [Product][google.cloud.retail.v2.Product] to delete does not exist,
280	// a NOT_FOUND error is returned.
281	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
282}
283
284func (x *DeleteProductRequest) Reset() {
285	*x = DeleteProductRequest{}
286	if protoimpl.UnsafeEnabled {
287		mi := &file_google_cloud_retail_v2_product_service_proto_msgTypes[3]
288		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
289		ms.StoreMessageInfo(mi)
290	}
291}
292
293func (x *DeleteProductRequest) String() string {
294	return protoimpl.X.MessageStringOf(x)
295}
296
297func (*DeleteProductRequest) ProtoMessage() {}
298
299func (x *DeleteProductRequest) ProtoReflect() protoreflect.Message {
300	mi := &file_google_cloud_retail_v2_product_service_proto_msgTypes[3]
301	if protoimpl.UnsafeEnabled && x != nil {
302		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
303		if ms.LoadMessageInfo() == nil {
304			ms.StoreMessageInfo(mi)
305		}
306		return ms
307	}
308	return mi.MessageOf(x)
309}
310
311// Deprecated: Use DeleteProductRequest.ProtoReflect.Descriptor instead.
312func (*DeleteProductRequest) Descriptor() ([]byte, []int) {
313	return file_google_cloud_retail_v2_product_service_proto_rawDescGZIP(), []int{3}
314}
315
316func (x *DeleteProductRequest) GetName() string {
317	if x != nil {
318		return x.Name
319	}
320	return ""
321}
322
323var File_google_cloud_retail_v2_product_service_proto protoreflect.FileDescriptor
324
325var file_google_cloud_retail_v2_product_service_proto_rawDesc = []byte{
326	0x0a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
327	0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
328	0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16,
329	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
330	0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61,
331	0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70,
332	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69,
333	0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67,
334	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f,
335	0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19,
336	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75,
337	0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
338	0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76,
339	0x32, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
340	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c,
341	0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72,
342	0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x67, 0x6f, 0x6f,
343	0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
344	0x2f, 0x76, 0x32, 0x2f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
345	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c,
346	0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61,
347	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f,
348	0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70,
349	0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
350	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f,
351	0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb8, 0x01, 0x0a, 0x14, 0x43,
352	0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75,
353	0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20,
354	0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x72, 0x65, 0x74,
355	0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63,
356	0x6f, 0x6d, 0x2f, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
357	0x74, 0x12, 0x3e, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01,
358	0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
359	0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64,
360	0x75, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63,
361	0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18,
362	0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64,
363	0x75, 0x63, 0x74, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64,
364	0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61,
365	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f,
366	0x0a, 0x1d, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
367	0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52,
368	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
369	0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e,
370	0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
371	0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
372	0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
373	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x3b,
374	0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20,
375	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
376	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52,
377	0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x51, 0x0a, 0x14, 0x44,
378	0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75,
379	0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
380	0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x72, 0x65, 0x74, 0x61, 0x69,
381	0x6c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
382	0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0xee,
383	0x08, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
384	0x65, 0x12, 0xcf, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64,
385	0x75, 0x63, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
386	0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65,
387	0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
388	0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
389	0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75,
390	0x63, 0x74, 0x22, 0x6f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x22, 0x42, 0x2f, 0x76, 0x32, 0x2f,
391	0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73,
392	0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63,
393	0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68,
394	0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x3a, 0x07,
395	0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0xda, 0x41, 0x19, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
396	0x2c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
397	0x5f, 0x69, 0x64, 0x12, 0xac, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75,
398	0x63, 0x74, 0x12, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
399	0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x50,
400	0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e,
401	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
402	0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0x52,
403	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x12, 0x43, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61, 0x6d,
404	0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63,
405	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
406	0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x70,
407	0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61,
408	0x6d, 0x65, 0x12, 0xd2, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f,
409	0x64, 0x75, 0x63, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
410	0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70,
411	0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
412	0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
413	0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x64,
414	0x75, 0x63, 0x74, 0x22, 0x72, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x32, 0x4b, 0x2f, 0x76, 0x32,
415	0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70,
416	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
417	0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a,
418	0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x64,
419	0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0x3a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63,
420	0x74, 0xda, 0x41, 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61,
421	0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xa9, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65,
422	0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
423	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
424	0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
425	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
426	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22,
427	0x52, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x2a, 0x43, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x6e, 0x61,
428	0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f,
429	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f,
430	0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x2f,
431	0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e,
432	0x61, 0x6d, 0x65, 0x12, 0x8e, 0x02, 0x0a, 0x0e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72,
433	0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
434	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e,
435	0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65,
436	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c,
437	0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61,
438	0x74, 0x69, 0x6f, 0x6e, 0x22, 0xad, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x22, 0x49, 0x2f,
439	0x76, 0x32, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65,
440	0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f,
441	0x2a, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x72, 0x61,
442	0x6e, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
443	0x73, 0x3a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x56, 0x0a, 0x2d,
444	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74,
445	0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f,
446	0x64, 0x75, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x67,
447	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61,
448	0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61,
449	0x64, 0x61, 0x74, 0x61, 0x1a, 0x49, 0xca, 0x41, 0x15, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
450	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41,
451	0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f,
452	0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68,
453	0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42,
454	0xc8, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
455	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x42, 0x13,
456	0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72,
457	0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f,
458	0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74,
459	0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f,
460	0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x3b, 0x72, 0x65, 0x74,
461	0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02, 0x16, 0x47,
462	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65, 0x74, 0x61,
463	0x69, 0x6c, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43,
464	0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32, 0xea, 0x02,
465	0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a,
466	0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
467	0x6f, 0x33,
468}
469
470var (
471	file_google_cloud_retail_v2_product_service_proto_rawDescOnce sync.Once
472	file_google_cloud_retail_v2_product_service_proto_rawDescData = file_google_cloud_retail_v2_product_service_proto_rawDesc
473)
474
475func file_google_cloud_retail_v2_product_service_proto_rawDescGZIP() []byte {
476	file_google_cloud_retail_v2_product_service_proto_rawDescOnce.Do(func() {
477		file_google_cloud_retail_v2_product_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2_product_service_proto_rawDescData)
478	})
479	return file_google_cloud_retail_v2_product_service_proto_rawDescData
480}
481
482var file_google_cloud_retail_v2_product_service_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
483var file_google_cloud_retail_v2_product_service_proto_goTypes = []interface{}{
484	(*CreateProductRequest)(nil),  // 0: google.cloud.retail.v2.CreateProductRequest
485	(*GetProductRequest)(nil),     // 1: google.cloud.retail.v2.GetProductRequest
486	(*UpdateProductRequest)(nil),  // 2: google.cloud.retail.v2.UpdateProductRequest
487	(*DeleteProductRequest)(nil),  // 3: google.cloud.retail.v2.DeleteProductRequest
488	(*Product)(nil),               // 4: google.cloud.retail.v2.Product
489	(*fieldmaskpb.FieldMask)(nil), // 5: google.protobuf.FieldMask
490	(*ImportProductsRequest)(nil), // 6: google.cloud.retail.v2.ImportProductsRequest
491	(*emptypb.Empty)(nil),         // 7: google.protobuf.Empty
492	(*longrunning.Operation)(nil), // 8: google.longrunning.Operation
493}
494var file_google_cloud_retail_v2_product_service_proto_depIdxs = []int32{
495	4, // 0: google.cloud.retail.v2.CreateProductRequest.product:type_name -> google.cloud.retail.v2.Product
496	4, // 1: google.cloud.retail.v2.UpdateProductRequest.product:type_name -> google.cloud.retail.v2.Product
497	5, // 2: google.cloud.retail.v2.UpdateProductRequest.update_mask:type_name -> google.protobuf.FieldMask
498	0, // 3: google.cloud.retail.v2.ProductService.CreateProduct:input_type -> google.cloud.retail.v2.CreateProductRequest
499	1, // 4: google.cloud.retail.v2.ProductService.GetProduct:input_type -> google.cloud.retail.v2.GetProductRequest
500	2, // 5: google.cloud.retail.v2.ProductService.UpdateProduct:input_type -> google.cloud.retail.v2.UpdateProductRequest
501	3, // 6: google.cloud.retail.v2.ProductService.DeleteProduct:input_type -> google.cloud.retail.v2.DeleteProductRequest
502	6, // 7: google.cloud.retail.v2.ProductService.ImportProducts:input_type -> google.cloud.retail.v2.ImportProductsRequest
503	4, // 8: google.cloud.retail.v2.ProductService.CreateProduct:output_type -> google.cloud.retail.v2.Product
504	4, // 9: google.cloud.retail.v2.ProductService.GetProduct:output_type -> google.cloud.retail.v2.Product
505	4, // 10: google.cloud.retail.v2.ProductService.UpdateProduct:output_type -> google.cloud.retail.v2.Product
506	7, // 11: google.cloud.retail.v2.ProductService.DeleteProduct:output_type -> google.protobuf.Empty
507	8, // 12: google.cloud.retail.v2.ProductService.ImportProducts:output_type -> google.longrunning.Operation
508	8, // [8:13] is the sub-list for method output_type
509	3, // [3:8] is the sub-list for method input_type
510	3, // [3:3] is the sub-list for extension type_name
511	3, // [3:3] is the sub-list for extension extendee
512	0, // [0:3] is the sub-list for field type_name
513}
514
515func init() { file_google_cloud_retail_v2_product_service_proto_init() }
516func file_google_cloud_retail_v2_product_service_proto_init() {
517	if File_google_cloud_retail_v2_product_service_proto != nil {
518		return
519	}
520	file_google_cloud_retail_v2_import_config_proto_init()
521	file_google_cloud_retail_v2_product_proto_init()
522	file_google_cloud_retail_v2_purge_config_proto_init()
523	if !protoimpl.UnsafeEnabled {
524		file_google_cloud_retail_v2_product_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
525			switch v := v.(*CreateProductRequest); i {
526			case 0:
527				return &v.state
528			case 1:
529				return &v.sizeCache
530			case 2:
531				return &v.unknownFields
532			default:
533				return nil
534			}
535		}
536		file_google_cloud_retail_v2_product_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
537			switch v := v.(*GetProductRequest); i {
538			case 0:
539				return &v.state
540			case 1:
541				return &v.sizeCache
542			case 2:
543				return &v.unknownFields
544			default:
545				return nil
546			}
547		}
548		file_google_cloud_retail_v2_product_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
549			switch v := v.(*UpdateProductRequest); i {
550			case 0:
551				return &v.state
552			case 1:
553				return &v.sizeCache
554			case 2:
555				return &v.unknownFields
556			default:
557				return nil
558			}
559		}
560		file_google_cloud_retail_v2_product_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
561			switch v := v.(*DeleteProductRequest); i {
562			case 0:
563				return &v.state
564			case 1:
565				return &v.sizeCache
566			case 2:
567				return &v.unknownFields
568			default:
569				return nil
570			}
571		}
572	}
573	type x struct{}
574	out := protoimpl.TypeBuilder{
575		File: protoimpl.DescBuilder{
576			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
577			RawDescriptor: file_google_cloud_retail_v2_product_service_proto_rawDesc,
578			NumEnums:      0,
579			NumMessages:   4,
580			NumExtensions: 0,
581			NumServices:   1,
582		},
583		GoTypes:           file_google_cloud_retail_v2_product_service_proto_goTypes,
584		DependencyIndexes: file_google_cloud_retail_v2_product_service_proto_depIdxs,
585		MessageInfos:      file_google_cloud_retail_v2_product_service_proto_msgTypes,
586	}.Build()
587	File_google_cloud_retail_v2_product_service_proto = out.File
588	file_google_cloud_retail_v2_product_service_proto_rawDesc = nil
589	file_google_cloud_retail_v2_product_service_proto_goTypes = nil
590	file_google_cloud_retail_v2_product_service_proto_depIdxs = nil
591}
592
593// Reference imports to suppress errors if they are not otherwise used.
594var _ context.Context
595var _ grpc.ClientConnInterface
596
597// This is a compile-time assertion to ensure that this generated file
598// is compatible with the grpc package it is being compiled against.
599const _ = grpc.SupportPackageIsVersion6
600
601// ProductServiceClient is the client API for ProductService service.
602//
603// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
604type ProductServiceClient interface {
605	// Creates a [Product][google.cloud.retail.v2.Product].
606	CreateProduct(ctx context.Context, in *CreateProductRequest, opts ...grpc.CallOption) (*Product, error)
607	// Gets a [Product][google.cloud.retail.v2.Product].
608	GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error)
609	// Updates a [Product][google.cloud.retail.v2.Product]. Non-existing items
610	// will be created.
611	UpdateProduct(ctx context.Context, in *UpdateProductRequest, opts ...grpc.CallOption) (*Product, error)
612	// Deletes a [Product][google.cloud.retail.v2.Product].
613	DeleteProduct(ctx context.Context, in *DeleteProductRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
614	// Bulk import of multiple [Product][google.cloud.retail.v2.Product]s.
615	//
616	// Request processing may be synchronous. No partial updating is supported.
617	// Non-existing items are created.
618	//
619	// Note that it is possible for a subset of the
620	// [Product][google.cloud.retail.v2.Product]s to be successfully updated.
621	ImportProducts(ctx context.Context, in *ImportProductsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
622}
623
624type productServiceClient struct {
625	cc grpc.ClientConnInterface
626}
627
628func NewProductServiceClient(cc grpc.ClientConnInterface) ProductServiceClient {
629	return &productServiceClient{cc}
630}
631
632func (c *productServiceClient) CreateProduct(ctx context.Context, in *CreateProductRequest, opts ...grpc.CallOption) (*Product, error) {
633	out := new(Product)
634	err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.ProductService/CreateProduct", in, out, opts...)
635	if err != nil {
636		return nil, err
637	}
638	return out, nil
639}
640
641func (c *productServiceClient) GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error) {
642	out := new(Product)
643	err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.ProductService/GetProduct", in, out, opts...)
644	if err != nil {
645		return nil, err
646	}
647	return out, nil
648}
649
650func (c *productServiceClient) UpdateProduct(ctx context.Context, in *UpdateProductRequest, opts ...grpc.CallOption) (*Product, error) {
651	out := new(Product)
652	err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.ProductService/UpdateProduct", in, out, opts...)
653	if err != nil {
654		return nil, err
655	}
656	return out, nil
657}
658
659func (c *productServiceClient) DeleteProduct(ctx context.Context, in *DeleteProductRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
660	out := new(emptypb.Empty)
661	err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.ProductService/DeleteProduct", in, out, opts...)
662	if err != nil {
663		return nil, err
664	}
665	return out, nil
666}
667
668func (c *productServiceClient) ImportProducts(ctx context.Context, in *ImportProductsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
669	out := new(longrunning.Operation)
670	err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.ProductService/ImportProducts", in, out, opts...)
671	if err != nil {
672		return nil, err
673	}
674	return out, nil
675}
676
677// ProductServiceServer is the server API for ProductService service.
678type ProductServiceServer interface {
679	// Creates a [Product][google.cloud.retail.v2.Product].
680	CreateProduct(context.Context, *CreateProductRequest) (*Product, error)
681	// Gets a [Product][google.cloud.retail.v2.Product].
682	GetProduct(context.Context, *GetProductRequest) (*Product, error)
683	// Updates a [Product][google.cloud.retail.v2.Product]. Non-existing items
684	// will be created.
685	UpdateProduct(context.Context, *UpdateProductRequest) (*Product, error)
686	// Deletes a [Product][google.cloud.retail.v2.Product].
687	DeleteProduct(context.Context, *DeleteProductRequest) (*emptypb.Empty, error)
688	// Bulk import of multiple [Product][google.cloud.retail.v2.Product]s.
689	//
690	// Request processing may be synchronous. No partial updating is supported.
691	// Non-existing items are created.
692	//
693	// Note that it is possible for a subset of the
694	// [Product][google.cloud.retail.v2.Product]s to be successfully updated.
695	ImportProducts(context.Context, *ImportProductsRequest) (*longrunning.Operation, error)
696}
697
698// UnimplementedProductServiceServer can be embedded to have forward compatible implementations.
699type UnimplementedProductServiceServer struct {
700}
701
702func (*UnimplementedProductServiceServer) CreateProduct(context.Context, *CreateProductRequest) (*Product, error) {
703	return nil, status.Errorf(codes.Unimplemented, "method CreateProduct not implemented")
704}
705func (*UnimplementedProductServiceServer) GetProduct(context.Context, *GetProductRequest) (*Product, error) {
706	return nil, status.Errorf(codes.Unimplemented, "method GetProduct not implemented")
707}
708func (*UnimplementedProductServiceServer) UpdateProduct(context.Context, *UpdateProductRequest) (*Product, error) {
709	return nil, status.Errorf(codes.Unimplemented, "method UpdateProduct not implemented")
710}
711func (*UnimplementedProductServiceServer) DeleteProduct(context.Context, *DeleteProductRequest) (*emptypb.Empty, error) {
712	return nil, status.Errorf(codes.Unimplemented, "method DeleteProduct not implemented")
713}
714func (*UnimplementedProductServiceServer) ImportProducts(context.Context, *ImportProductsRequest) (*longrunning.Operation, error) {
715	return nil, status.Errorf(codes.Unimplemented, "method ImportProducts not implemented")
716}
717
718func RegisterProductServiceServer(s *grpc.Server, srv ProductServiceServer) {
719	s.RegisterService(&_ProductService_serviceDesc, srv)
720}
721
722func _ProductService_CreateProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
723	in := new(CreateProductRequest)
724	if err := dec(in); err != nil {
725		return nil, err
726	}
727	if interceptor == nil {
728		return srv.(ProductServiceServer).CreateProduct(ctx, in)
729	}
730	info := &grpc.UnaryServerInfo{
731		Server:     srv,
732		FullMethod: "/google.cloud.retail.v2.ProductService/CreateProduct",
733	}
734	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
735		return srv.(ProductServiceServer).CreateProduct(ctx, req.(*CreateProductRequest))
736	}
737	return interceptor(ctx, in, info, handler)
738}
739
740func _ProductService_GetProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
741	in := new(GetProductRequest)
742	if err := dec(in); err != nil {
743		return nil, err
744	}
745	if interceptor == nil {
746		return srv.(ProductServiceServer).GetProduct(ctx, in)
747	}
748	info := &grpc.UnaryServerInfo{
749		Server:     srv,
750		FullMethod: "/google.cloud.retail.v2.ProductService/GetProduct",
751	}
752	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
753		return srv.(ProductServiceServer).GetProduct(ctx, req.(*GetProductRequest))
754	}
755	return interceptor(ctx, in, info, handler)
756}
757
758func _ProductService_UpdateProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
759	in := new(UpdateProductRequest)
760	if err := dec(in); err != nil {
761		return nil, err
762	}
763	if interceptor == nil {
764		return srv.(ProductServiceServer).UpdateProduct(ctx, in)
765	}
766	info := &grpc.UnaryServerInfo{
767		Server:     srv,
768		FullMethod: "/google.cloud.retail.v2.ProductService/UpdateProduct",
769	}
770	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
771		return srv.(ProductServiceServer).UpdateProduct(ctx, req.(*UpdateProductRequest))
772	}
773	return interceptor(ctx, in, info, handler)
774}
775
776func _ProductService_DeleteProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
777	in := new(DeleteProductRequest)
778	if err := dec(in); err != nil {
779		return nil, err
780	}
781	if interceptor == nil {
782		return srv.(ProductServiceServer).DeleteProduct(ctx, in)
783	}
784	info := &grpc.UnaryServerInfo{
785		Server:     srv,
786		FullMethod: "/google.cloud.retail.v2.ProductService/DeleteProduct",
787	}
788	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
789		return srv.(ProductServiceServer).DeleteProduct(ctx, req.(*DeleteProductRequest))
790	}
791	return interceptor(ctx, in, info, handler)
792}
793
794func _ProductService_ImportProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
795	in := new(ImportProductsRequest)
796	if err := dec(in); err != nil {
797		return nil, err
798	}
799	if interceptor == nil {
800		return srv.(ProductServiceServer).ImportProducts(ctx, in)
801	}
802	info := &grpc.UnaryServerInfo{
803		Server:     srv,
804		FullMethod: "/google.cloud.retail.v2.ProductService/ImportProducts",
805	}
806	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
807		return srv.(ProductServiceServer).ImportProducts(ctx, req.(*ImportProductsRequest))
808	}
809	return interceptor(ctx, in, info, handler)
810}
811
812var _ProductService_serviceDesc = grpc.ServiceDesc{
813	ServiceName: "google.cloud.retail.v2.ProductService",
814	HandlerType: (*ProductServiceServer)(nil),
815	Methods: []grpc.MethodDesc{
816		{
817			MethodName: "CreateProduct",
818			Handler:    _ProductService_CreateProduct_Handler,
819		},
820		{
821			MethodName: "GetProduct",
822			Handler:    _ProductService_GetProduct_Handler,
823		},
824		{
825			MethodName: "UpdateProduct",
826			Handler:    _ProductService_UpdateProduct_Handler,
827		},
828		{
829			MethodName: "DeleteProduct",
830			Handler:    _ProductService_DeleteProduct_Handler,
831		},
832		{
833			MethodName: "ImportProducts",
834			Handler:    _ProductService_ImportProducts_Handler,
835		},
836	},
837	Streams:  []grpc.StreamDesc{},
838	Metadata: "google/cloud/retail/v2/product_service.proto",
839}
840