// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.retail.logging;
import "google/protobuf/struct.proto";
import "google/rpc/status.proto";
option csharp_namespace = "Google.Cloud.Retail.Logging";
option go_package = "google.golang.org/genproto/googleapis/cloud/retail/logging;logging";
option java_multiple_files = true;
option java_outer_classname = "ErrorLogProto";
option java_package = "com.google.cloud.retail.logging";
option objc_class_prefix = "RETAIL";
option php_namespace = "Google\\Cloud\\Retail\\Logging";
option ruby_package = "Google::Cloud::Retail::Logging";
// Describes a running service that sends errors.
message ServiceContext {
// An identifier of the service.
// For example, "retail.googleapis.com".
string service = 1;
}
// HTTP request data that is related to a reported error.
message HttpRequestContext {
// The HTTP response status code for the request.
int32 response_status_code = 1;
}
// Indicates a location in the source code of the service for which
// errors are reported.
message SourceLocation {
// Human-readable name of a function or method.
// For example, "google.cloud.retail.v2.UserEventService.ImportUserEvents".
string function_name = 1;
}
// A description of the context in which an error occurred.
message ErrorContext {
// The HTTP request which was processed when the error was triggered.
HttpRequestContext http_request = 1;
// The location in the source code where the decision was made to
// report the error, usually the place where it was logged.
SourceLocation report_location = 2;
}
// The error payload that is populated on LRO import APIs. Including:
// "google.cloud.retail.v2.ProductService.ImportProducts"
// "google.cloud.retail.v2.EventService.ImportUserEvents"
message ImportErrorContext {
// The operation resource name of the LRO.
string operation_name = 1;
// Cloud Storage file path of the import source.
// Can be set for batch operation error.
string gcs_path = 2;
// Line number of the content in file.
// Should be empty for permission or batch operation error.
string line_number = 3;
// Detailed content which caused the error.
// Should be empty for permission or batch operation error.
oneof line_content {
// The detailed content which caused the error on importing a catalog item.
string catalog_item = 4;
// The detailed content which caused the error on importing a product.
string product = 5;
// The detailed content which caused the error on importing a user event.
string user_event = 6;
}
}
// An error log which is reported to the Error Reporting system.
// This proto a superset of
// google.devtools.clouderrorreporting.v1beta1.ReportedErrorEvent.
message ErrorLog {
// The service context in which this error has occurred.
ServiceContext service_context = 1;
// A description of the context in which the error occurred.
ErrorContext context = 2;
// A message describing the error.
string message = 3;
// The RPC status associated with the error log.
google.rpc.Status status = 4;
// The API request payload, represented as a protocol buffer.
//
// Most API request types are supported. For example:
//
// "type.googleapis.com/google.cloud.retail.v2.ProductService.CreateProductRequest"
// "type.googleapis.com/google.cloud.retail.v2.UserEventService.WriteUserEventRequest"
google.protobuf.Struct request_payload = 5;
// The API response payload, represented as a protocol buffer.
//
// This is used to log some "soft errors", where the response is valid but we
// consider there are some quality issues like unjoined events.
//
// The following API responses are supported and no PII is included:
// "google.cloud.retail.v2.PredictionService.Predict"
// "google.cloud.retail.v2.UserEventService.WriteUserEvent"
// "google.cloud.retail.v2.UserEventService.CollectUserEvent"
google.protobuf.Struct response_payload = 6;
// The error payload that is populated on LRO import APIs.
ImportErrorContext import_payload = 7;
}