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