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/prediction_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	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	structpb "google.golang.org/protobuf/types/known/structpb"
36)
37
38const (
39	// Verify that this generated code is sufficiently up-to-date.
40	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
41	// Verify that runtime/protoimpl is sufficiently up-to-date.
42	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
43)
44
45// This is a compile-time assertion that a sufficiently up-to-date version
46// of the legacy proto package is being used.
47const _ = proto.ProtoPackageIsVersion4
48
49// Request message for Predict method.
50type PredictRequest struct {
51	state         protoimpl.MessageState
52	sizeCache     protoimpl.SizeCache
53	unknownFields protoimpl.UnknownFields
54
55	// Required. Full resource name of the format:
56	// {name=projects/*/locations/global/catalogs/default_catalog/placements/*}
57	// The id of the recommendation engine placement. This id is used to identify
58	// the set of models that will be used to make the prediction.
59	//
60	// We currently support three placements with the following IDs by default:
61	//
62	// * `shopping_cart`: Predicts products frequently bought together with one or
63	//   more  products in the same shopping session. Commonly displayed after
64	//   `add-to-cart` events, on product detail pages, or on the shopping cart
65	//   page.
66	//
67	// * `home_page`: Predicts the next product that a user will most likely
68	//   engage with or purchase based on the shopping or viewing history of the
69	//   specified `userId` or `visitorId`. For example - Recommendations for you.
70	//
71	// * `product_detail`: Predicts the next product that a user will most likely
72	//   engage with or purchase. The prediction is based on the shopping or
73	//   viewing history of the specified `userId` or `visitorId` and its
74	//   relevance to a specified `CatalogItem`. Typically used on product detail
75	//   pages. For example - More products like this.
76	//
77	// * `recently_viewed_default`: Returns up to 75 products recently viewed by
78	//   the specified `userId` or `visitorId`, most recent ones first. Returns
79	//   nothing if neither of them has viewed any products yet. For example -
80	//   Recently viewed.
81	//
82	// The full list of available placements can be seen at
83	// https://console.cloud.google.com/recommendation/catalogs/default_catalog/placements
84	Placement string `protobuf:"bytes,1,opt,name=placement,proto3" json:"placement,omitempty"`
85	// Required. Context about the user, what they are looking at and what action
86	// they took to trigger the predict request. Note that this user event detail
87	// won't be ingested to userEvent logs. Thus, a separate userEvent write
88	// request is required for event logging.
89	UserEvent *UserEvent `protobuf:"bytes,2,opt,name=user_event,json=userEvent,proto3" json:"user_event,omitempty"`
90	// Maximum number of results to return per page. Set this property
91	// to the number of prediction results needed. If zero, the service will
92	// choose a reasonable default. The maximum allowed value is 100. Values
93	// above 100 will be coerced to 100.
94	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
95	// The previous PredictResponse.next_page_token.
96	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
97	// Filter for restricting prediction results with a length limit of 5,000
98	// characters. Accepts values for tags and the `filterOutOfStockItems` flag.
99	//
100	//  * Tag expressions. Restricts predictions to products that match all of the
101	//    specified tags. Boolean operators `OR` and `NOT` are supported if the
102	//    expression is enclosed in parentheses, and must be separated from the
103	//    tag values by a space. `-"tagA"` is also supported and is equivalent to
104	//    `NOT "tagA"`. Tag values must be double quoted UTF-8 encoded strings
105	//    with a size limit of 1,000 characters.
106	//
107	//  * filterOutOfStockItems. Restricts predictions to products that do not
108	//  have a
109	//    stockState value of OUT_OF_STOCK.
110	//
111	// Examples:
112	//
113	//  * tag=("Red" OR "Blue") tag="New-Arrival" tag=(NOT "promotional")
114	//  * filterOutOfStockItems  tag=(-"promotional")
115	//  * filterOutOfStockItems
116	//
117	// If your filter blocks all prediction results, nothing will be returned. If
118	// you want generic (unfiltered) popular products to be returned instead, set
119	// `strictFiltering` to false in `PredictRequest.params`.
120	Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
121	// Use validate only mode for this prediction query. If set to true, a
122	// dummy model will be used that returns arbitrary products.
123	// Note that the validate only mode should only be used for testing the API,
124	// or if the model is not ready.
125	ValidateOnly bool `protobuf:"varint,6,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"`
126	// Additional domain specific parameters for the predictions.
127	//
128	// Allowed values:
129	//
130	// * `returnProduct`: Boolean. If set to true, the associated product
131	//    object will be returned in the `results.metadata` field in the
132	//    prediction response.
133	// * `returnScore`: Boolean. If set to true, the prediction 'score'
134	//    corresponding to each returned product will be set in the
135	//    `results.metadata` field in the prediction response. The given
136	//    'score' indicates the probability of an product being clicked/purchased
137	//    given the user's context and history.
138	// * `strictFiltering`: Boolean. True by default. If set to false, the service
139	//    will return generic (unfiltered) popular products instead of empty if
140	//    your filter blocks all prediction results.
141	Params map[string]*structpb.Value `protobuf:"bytes,7,rep,name=params,proto3" json:"params,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
142	// The labels for the predict request.
143	//
144	//  * Label keys can contain lowercase letters, digits and hyphens, must start
145	//    with a letter, and must end with a letter or digit.
146	//  * Non-zero label values can contain lowercase letters, digits and hyphens,
147	//    must start with a letter, and must end with a letter or digit.
148	//  * No more than 64 labels can be associated with a given request.
149	//
150	// See https://goo.gl/xmQnxf for more information on and examples of labels.
151	Labels map[string]string `protobuf:"bytes,8,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
152}
153
154func (x *PredictRequest) Reset() {
155	*x = PredictRequest{}
156	if protoimpl.UnsafeEnabled {
157		mi := &file_google_cloud_retail_v2_prediction_service_proto_msgTypes[0]
158		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
159		ms.StoreMessageInfo(mi)
160	}
161}
162
163func (x *PredictRequest) String() string {
164	return protoimpl.X.MessageStringOf(x)
165}
166
167func (*PredictRequest) ProtoMessage() {}
168
169func (x *PredictRequest) ProtoReflect() protoreflect.Message {
170	mi := &file_google_cloud_retail_v2_prediction_service_proto_msgTypes[0]
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 PredictRequest.ProtoReflect.Descriptor instead.
182func (*PredictRequest) Descriptor() ([]byte, []int) {
183	return file_google_cloud_retail_v2_prediction_service_proto_rawDescGZIP(), []int{0}
184}
185
186func (x *PredictRequest) GetPlacement() string {
187	if x != nil {
188		return x.Placement
189	}
190	return ""
191}
192
193func (x *PredictRequest) GetUserEvent() *UserEvent {
194	if x != nil {
195		return x.UserEvent
196	}
197	return nil
198}
199
200func (x *PredictRequest) GetPageSize() int32 {
201	if x != nil {
202		return x.PageSize
203	}
204	return 0
205}
206
207func (x *PredictRequest) GetPageToken() string {
208	if x != nil {
209		return x.PageToken
210	}
211	return ""
212}
213
214func (x *PredictRequest) GetFilter() string {
215	if x != nil {
216		return x.Filter
217	}
218	return ""
219}
220
221func (x *PredictRequest) GetValidateOnly() bool {
222	if x != nil {
223		return x.ValidateOnly
224	}
225	return false
226}
227
228func (x *PredictRequest) GetParams() map[string]*structpb.Value {
229	if x != nil {
230		return x.Params
231	}
232	return nil
233}
234
235func (x *PredictRequest) GetLabels() map[string]string {
236	if x != nil {
237		return x.Labels
238	}
239	return nil
240}
241
242// Response message for predict method.
243type PredictResponse struct {
244	state         protoimpl.MessageState
245	sizeCache     protoimpl.SizeCache
246	unknownFields protoimpl.UnknownFields
247
248	// A list of recommended products. The order represents the ranking (from the
249	// most relevant product to the least).
250	Results []*PredictResponse_PredictionResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
251	// A unique attribution token. This should be included in the
252	// [UserEvent][google.cloud.retail.v2.UserEvent] logs resulting from this
253	// recommendation, which enables accurate attribution of recommendation model
254	// performance.
255	AttributionToken string `protobuf:"bytes,2,opt,name=attribution_token,json=attributionToken,proto3" json:"attribution_token,omitempty"`
256	// IDs of products in the request that were missing from the inventory.
257	MissingIds []string `protobuf:"bytes,3,rep,name=missing_ids,json=missingIds,proto3" json:"missing_ids,omitempty"`
258	// True if the validateOnly property was set in the request.
259	ValidateOnly bool `protobuf:"varint,4,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"`
260}
261
262func (x *PredictResponse) Reset() {
263	*x = PredictResponse{}
264	if protoimpl.UnsafeEnabled {
265		mi := &file_google_cloud_retail_v2_prediction_service_proto_msgTypes[1]
266		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
267		ms.StoreMessageInfo(mi)
268	}
269}
270
271func (x *PredictResponse) String() string {
272	return protoimpl.X.MessageStringOf(x)
273}
274
275func (*PredictResponse) ProtoMessage() {}
276
277func (x *PredictResponse) ProtoReflect() protoreflect.Message {
278	mi := &file_google_cloud_retail_v2_prediction_service_proto_msgTypes[1]
279	if protoimpl.UnsafeEnabled && x != nil {
280		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
281		if ms.LoadMessageInfo() == nil {
282			ms.StoreMessageInfo(mi)
283		}
284		return ms
285	}
286	return mi.MessageOf(x)
287}
288
289// Deprecated: Use PredictResponse.ProtoReflect.Descriptor instead.
290func (*PredictResponse) Descriptor() ([]byte, []int) {
291	return file_google_cloud_retail_v2_prediction_service_proto_rawDescGZIP(), []int{1}
292}
293
294func (x *PredictResponse) GetResults() []*PredictResponse_PredictionResult {
295	if x != nil {
296		return x.Results
297	}
298	return nil
299}
300
301func (x *PredictResponse) GetAttributionToken() string {
302	if x != nil {
303		return x.AttributionToken
304	}
305	return ""
306}
307
308func (x *PredictResponse) GetMissingIds() []string {
309	if x != nil {
310		return x.MissingIds
311	}
312	return nil
313}
314
315func (x *PredictResponse) GetValidateOnly() bool {
316	if x != nil {
317		return x.ValidateOnly
318	}
319	return false
320}
321
322// PredictionResult represents the recommendation prediction results.
323type PredictResponse_PredictionResult struct {
324	state         protoimpl.MessageState
325	sizeCache     protoimpl.SizeCache
326	unknownFields protoimpl.UnknownFields
327
328	// ID of the recommended product
329	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
330	// Additional product metadata / annotations.
331	//
332	// Possible values:
333	//
334	// * `product`: JSON representation of the product. Will be set if
335	//   `returnProduct` is set to true in `PredictRequest.params`.
336	// * `score`: Prediction score in double value. Will be set if
337	//   `returnScore` is set to true in `PredictRequest.params`.
338	Metadata map[string]*structpb.Value `protobuf:"bytes,2,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
339}
340
341func (x *PredictResponse_PredictionResult) Reset() {
342	*x = PredictResponse_PredictionResult{}
343	if protoimpl.UnsafeEnabled {
344		mi := &file_google_cloud_retail_v2_prediction_service_proto_msgTypes[4]
345		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
346		ms.StoreMessageInfo(mi)
347	}
348}
349
350func (x *PredictResponse_PredictionResult) String() string {
351	return protoimpl.X.MessageStringOf(x)
352}
353
354func (*PredictResponse_PredictionResult) ProtoMessage() {}
355
356func (x *PredictResponse_PredictionResult) ProtoReflect() protoreflect.Message {
357	mi := &file_google_cloud_retail_v2_prediction_service_proto_msgTypes[4]
358	if protoimpl.UnsafeEnabled && x != nil {
359		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
360		if ms.LoadMessageInfo() == nil {
361			ms.StoreMessageInfo(mi)
362		}
363		return ms
364	}
365	return mi.MessageOf(x)
366}
367
368// Deprecated: Use PredictResponse_PredictionResult.ProtoReflect.Descriptor instead.
369func (*PredictResponse_PredictionResult) Descriptor() ([]byte, []int) {
370	return file_google_cloud_retail_v2_prediction_service_proto_rawDescGZIP(), []int{1, 0}
371}
372
373func (x *PredictResponse_PredictionResult) GetId() string {
374	if x != nil {
375		return x.Id
376	}
377	return ""
378}
379
380func (x *PredictResponse_PredictionResult) GetMetadata() map[string]*structpb.Value {
381	if x != nil {
382		return x.Metadata
383	}
384	return nil
385}
386
387var File_google_cloud_retail_v2_prediction_service_proto protoreflect.FileDescriptor
388
389var file_google_cloud_retail_v2_prediction_service_proto_rawDesc = []byte{
390	0x0a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72,
391	0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74,
392	0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
393	0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
394	0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
395	0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
396	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
397	0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
398	0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65,
399	0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74,
400	0x6f, 0x1a, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f,
401	0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65,
402	0x76, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67,
403	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75,
404	0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x99, 0x04, 0x0a, 0x0e, 0x50, 0x72, 0x65,
405	0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x70,
406	0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
407	0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45,
408	0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
409	0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
410	0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72,
411	0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72,
412	0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69,
413	0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69,
414	0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
415	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65,
416	0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28,
417	0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61, 0x6c,
418	0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08,
419	0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x4a,
420	0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32,
421	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65,
422	0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52,
423	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74,
424	0x72, 0x79, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4a, 0x0a, 0x06, 0x6c, 0x61,
425	0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f,
426	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c,
427	0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
428	0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06,
429	0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x51, 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73,
430	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
431	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
432	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
433	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05,
434	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62,
435	0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
436	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
437	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
438	0x3a, 0x02, 0x38, 0x01, 0x22, 0xb6, 0x03, 0x0a, 0x0f, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74,
439	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75,
440	0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
441	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e,
442	0x76, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
443	0x73, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
444	0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11,
445	0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65,
446	0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
447	0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x69, 0x73,
448	0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a,
449	0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61,
450	0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28,
451	0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x1a,
452	0xdb, 0x01, 0x0a, 0x10, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
453	0x73, 0x75, 0x6c, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
454	0x52, 0x02, 0x69, 0x64, 0x12, 0x62, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
455	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
456	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e,
457	0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
458	0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
459	0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08,
460	0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x53, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61,
461	0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
462	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76,
463	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
464	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c,
465	0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x32, 0x8e, 0x02,
466	0x0a, 0x11, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76,
467	0x69, 0x63, 0x65, 0x12, 0xad, 0x01, 0x0a, 0x07, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12,
468	0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72,
469	0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74,
470	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
471	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32,
472	0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
473	0x22, 0x51, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x22, 0x46, 0x2f, 0x76, 0x32, 0x2f, 0x7b, 0x70,
474	0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
475	0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f,
476	0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x6c, 0x61, 0x63, 0x65,
477	0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74,
478	0x3a, 0x01, 0x2a, 0x1a, 0x49, 0xca, 0x41, 0x15, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x67,
479	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e,
480	0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
481	0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f,
482	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xcb,
483	0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
484	0x6f, 0x75, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x76, 0x32, 0x42, 0x16, 0x50,
485	0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
486	0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
487	0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72,
488	0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63,
489	0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x76, 0x32, 0x3b, 0x72,
490	0x65, 0x74, 0x61, 0x69, 0x6c, 0xa2, 0x02, 0x06, 0x52, 0x45, 0x54, 0x41, 0x49, 0x4c, 0xaa, 0x02,
491	0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x52, 0x65,
492	0x74, 0x61, 0x69, 0x6c, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
493	0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5c, 0x56, 0x32,
494	0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64,
495	0x3a, 0x3a, 0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72,
496	0x6f, 0x74, 0x6f, 0x33,
497}
498
499var (
500	file_google_cloud_retail_v2_prediction_service_proto_rawDescOnce sync.Once
501	file_google_cloud_retail_v2_prediction_service_proto_rawDescData = file_google_cloud_retail_v2_prediction_service_proto_rawDesc
502)
503
504func file_google_cloud_retail_v2_prediction_service_proto_rawDescGZIP() []byte {
505	file_google_cloud_retail_v2_prediction_service_proto_rawDescOnce.Do(func() {
506		file_google_cloud_retail_v2_prediction_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_retail_v2_prediction_service_proto_rawDescData)
507	})
508	return file_google_cloud_retail_v2_prediction_service_proto_rawDescData
509}
510
511var file_google_cloud_retail_v2_prediction_service_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
512var file_google_cloud_retail_v2_prediction_service_proto_goTypes = []interface{}{
513	(*PredictRequest)(nil),                   // 0: google.cloud.retail.v2.PredictRequest
514	(*PredictResponse)(nil),                  // 1: google.cloud.retail.v2.PredictResponse
515	nil,                                      // 2: google.cloud.retail.v2.PredictRequest.ParamsEntry
516	nil,                                      // 3: google.cloud.retail.v2.PredictRequest.LabelsEntry
517	(*PredictResponse_PredictionResult)(nil), // 4: google.cloud.retail.v2.PredictResponse.PredictionResult
518	nil,                                      // 5: google.cloud.retail.v2.PredictResponse.PredictionResult.MetadataEntry
519	(*UserEvent)(nil),                        // 6: google.cloud.retail.v2.UserEvent
520	(*structpb.Value)(nil),                   // 7: google.protobuf.Value
521}
522var file_google_cloud_retail_v2_prediction_service_proto_depIdxs = []int32{
523	6, // 0: google.cloud.retail.v2.PredictRequest.user_event:type_name -> google.cloud.retail.v2.UserEvent
524	2, // 1: google.cloud.retail.v2.PredictRequest.params:type_name -> google.cloud.retail.v2.PredictRequest.ParamsEntry
525	3, // 2: google.cloud.retail.v2.PredictRequest.labels:type_name -> google.cloud.retail.v2.PredictRequest.LabelsEntry
526	4, // 3: google.cloud.retail.v2.PredictResponse.results:type_name -> google.cloud.retail.v2.PredictResponse.PredictionResult
527	7, // 4: google.cloud.retail.v2.PredictRequest.ParamsEntry.value:type_name -> google.protobuf.Value
528	5, // 5: google.cloud.retail.v2.PredictResponse.PredictionResult.metadata:type_name -> google.cloud.retail.v2.PredictResponse.PredictionResult.MetadataEntry
529	7, // 6: google.cloud.retail.v2.PredictResponse.PredictionResult.MetadataEntry.value:type_name -> google.protobuf.Value
530	0, // 7: google.cloud.retail.v2.PredictionService.Predict:input_type -> google.cloud.retail.v2.PredictRequest
531	1, // 8: google.cloud.retail.v2.PredictionService.Predict:output_type -> google.cloud.retail.v2.PredictResponse
532	8, // [8:9] is the sub-list for method output_type
533	7, // [7:8] is the sub-list for method input_type
534	7, // [7:7] is the sub-list for extension type_name
535	7, // [7:7] is the sub-list for extension extendee
536	0, // [0:7] is the sub-list for field type_name
537}
538
539func init() { file_google_cloud_retail_v2_prediction_service_proto_init() }
540func file_google_cloud_retail_v2_prediction_service_proto_init() {
541	if File_google_cloud_retail_v2_prediction_service_proto != nil {
542		return
543	}
544	file_google_cloud_retail_v2_user_event_proto_init()
545	if !protoimpl.UnsafeEnabled {
546		file_google_cloud_retail_v2_prediction_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
547			switch v := v.(*PredictRequest); i {
548			case 0:
549				return &v.state
550			case 1:
551				return &v.sizeCache
552			case 2:
553				return &v.unknownFields
554			default:
555				return nil
556			}
557		}
558		file_google_cloud_retail_v2_prediction_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
559			switch v := v.(*PredictResponse); i {
560			case 0:
561				return &v.state
562			case 1:
563				return &v.sizeCache
564			case 2:
565				return &v.unknownFields
566			default:
567				return nil
568			}
569		}
570		file_google_cloud_retail_v2_prediction_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
571			switch v := v.(*PredictResponse_PredictionResult); i {
572			case 0:
573				return &v.state
574			case 1:
575				return &v.sizeCache
576			case 2:
577				return &v.unknownFields
578			default:
579				return nil
580			}
581		}
582	}
583	type x struct{}
584	out := protoimpl.TypeBuilder{
585		File: protoimpl.DescBuilder{
586			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
587			RawDescriptor: file_google_cloud_retail_v2_prediction_service_proto_rawDesc,
588			NumEnums:      0,
589			NumMessages:   6,
590			NumExtensions: 0,
591			NumServices:   1,
592		},
593		GoTypes:           file_google_cloud_retail_v2_prediction_service_proto_goTypes,
594		DependencyIndexes: file_google_cloud_retail_v2_prediction_service_proto_depIdxs,
595		MessageInfos:      file_google_cloud_retail_v2_prediction_service_proto_msgTypes,
596	}.Build()
597	File_google_cloud_retail_v2_prediction_service_proto = out.File
598	file_google_cloud_retail_v2_prediction_service_proto_rawDesc = nil
599	file_google_cloud_retail_v2_prediction_service_proto_goTypes = nil
600	file_google_cloud_retail_v2_prediction_service_proto_depIdxs = nil
601}
602
603// Reference imports to suppress errors if they are not otherwise used.
604var _ context.Context
605var _ grpc.ClientConnInterface
606
607// This is a compile-time assertion to ensure that this generated file
608// is compatible with the grpc package it is being compiled against.
609const _ = grpc.SupportPackageIsVersion6
610
611// PredictionServiceClient is the client API for PredictionService service.
612//
613// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
614type PredictionServiceClient interface {
615	// Makes a recommendation prediction.
616	Predict(ctx context.Context, in *PredictRequest, opts ...grpc.CallOption) (*PredictResponse, error)
617}
618
619type predictionServiceClient struct {
620	cc grpc.ClientConnInterface
621}
622
623func NewPredictionServiceClient(cc grpc.ClientConnInterface) PredictionServiceClient {
624	return &predictionServiceClient{cc}
625}
626
627func (c *predictionServiceClient) Predict(ctx context.Context, in *PredictRequest, opts ...grpc.CallOption) (*PredictResponse, error) {
628	out := new(PredictResponse)
629	err := c.cc.Invoke(ctx, "/google.cloud.retail.v2.PredictionService/Predict", in, out, opts...)
630	if err != nil {
631		return nil, err
632	}
633	return out, nil
634}
635
636// PredictionServiceServer is the server API for PredictionService service.
637type PredictionServiceServer interface {
638	// Makes a recommendation prediction.
639	Predict(context.Context, *PredictRequest) (*PredictResponse, error)
640}
641
642// UnimplementedPredictionServiceServer can be embedded to have forward compatible implementations.
643type UnimplementedPredictionServiceServer struct {
644}
645
646func (*UnimplementedPredictionServiceServer) Predict(context.Context, *PredictRequest) (*PredictResponse, error) {
647	return nil, status.Errorf(codes.Unimplemented, "method Predict not implemented")
648}
649
650func RegisterPredictionServiceServer(s *grpc.Server, srv PredictionServiceServer) {
651	s.RegisterService(&_PredictionService_serviceDesc, srv)
652}
653
654func _PredictionService_Predict_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
655	in := new(PredictRequest)
656	if err := dec(in); err != nil {
657		return nil, err
658	}
659	if interceptor == nil {
660		return srv.(PredictionServiceServer).Predict(ctx, in)
661	}
662	info := &grpc.UnaryServerInfo{
663		Server:     srv,
664		FullMethod: "/google.cloud.retail.v2.PredictionService/Predict",
665	}
666	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
667		return srv.(PredictionServiceServer).Predict(ctx, req.(*PredictRequest))
668	}
669	return interceptor(ctx, in, info, handler)
670}
671
672var _PredictionService_serviceDesc = grpc.ServiceDesc{
673	ServiceName: "google.cloud.retail.v2.PredictionService",
674	HandlerType: (*PredictionServiceServer)(nil),
675	Methods: []grpc.MethodDesc{
676		{
677			MethodName: "Predict",
678			Handler:    _PredictionService_Predict_Handler,
679		},
680	},
681	Streams:  []grpc.StreamDesc{},
682	Metadata: "google/cloud/retail/v2/prediction_service.proto",
683}
684