--- /dev/null
+// Copyright 2016 Google Inc.
+//
+// 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.devtools.clouderrorreporting.v1beta1;
+
+import "google/api/annotations.proto";
+import "google/api/monitored_resource.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.ErrorReporting.V1Beta1";
+option go_package = "google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1;clouderrorreporting";
+option java_multiple_files = true;
+option java_outer_classname = "CommonProto";
+option java_package = "com.google.devtools.clouderrorreporting.v1beta1";
+option php_namespace = "Google\\Cloud\\ErrorReporting\\V1beta1";
+
+// Description of a group of similar error events.
+message ErrorGroup {
+ // The group resource name.
+ // Example: <code>projects/my-project-123/groups/my-groupid</code>
+ string name = 1;
+
+ // Group IDs are unique for a given project. If the same kind of error
+ // occurs in different service contexts, it will receive the same group ID.
+ string group_id = 2;
+
+ // Associated tracking issues.
+ repeated TrackingIssue tracking_issues = 3;
+}
+
+// Information related to tracking the progress on resolving the error.
+message TrackingIssue {
+ // A URL pointing to a related entry in an issue tracking system.
+ // Example: https://github.com/user/project/issues/4
+ string url = 1;
+}
+
+// An error event which is returned by the Error Reporting system.
+message ErrorEvent {
+ // Time when the event occurred as provided in the error report.
+ // If the report did not contain a timestamp, the time the error was received
+ // by the Error Reporting system is used.
+ google.protobuf.Timestamp event_time = 1;
+
+ // The `ServiceContext` for which this error was reported.
+ ServiceContext service_context = 2;
+
+ // The stack trace that was reported or logged by the service.
+ string message = 3;
+
+ // Data about the context in which the error occurred.
+ ErrorContext context = 5;
+}
+
+// Describes a running service that sends errors.
+// Its version changes over time and multiple versions can run in parallel.
+message ServiceContext {
+ // An identifier of the service, such as the name of the
+ // executable, job, or Google App Engine service name. This field is expected
+ // to have a low number of values that are relatively stable over time, as
+ // opposed to `version`, which can be changed whenever new code is deployed.
+ //
+ // Contains the service name for error reports extracted from Google
+ // App Engine logs or `default` if the App Engine default service is used.
+ string service = 2;
+
+ // Represents the source code version that the developer provided,
+ // which could represent a version label or a Git SHA-1 hash, for example.
+ string version = 3;
+
+ // Type of the MonitoredResource. List of possible values:
+ // https://cloud.google.com/monitoring/api/resources
+ //
+ // Value is set automatically for incoming errors and must not be set when
+ // reporting errors.
+ string resource_type = 4;
+}
+
+// A description of the context in which an error occurred.
+// This data should be provided by the application when reporting an error,
+// unless the
+// error report has been generated automatically from Google App Engine logs.
+message ErrorContext {
+ // The HTTP request which was processed when the error was
+ // triggered.
+ HttpRequestContext http_request = 1;
+
+ // The user who caused or was affected by the crash.
+ // This can be a user ID, an email address, or an arbitrary token that
+ // uniquely identifies the user.
+ // When sending an error report, leave this field empty if the user was not
+ // logged in. In this case the
+ // Error Reporting system will use other data, such as remote IP address, to
+ // distinguish affected users. See `affected_users_count` in
+ // `ErrorGroupStats`.
+ string user = 2;
+
+ // The location in the source code where the decision was made to
+ // report the error, usually the place where it was logged.
+ // For a logged exception this would be the source line where the
+ // exception is logged, usually close to the place where it was
+ // caught. This value is in contrast to `Exception.cause_location`,
+ // which describes the source line where the exception was thrown.
+ SourceLocation report_location = 3;
+}
+
+// HTTP request data that is related to a reported error.
+// This data should be provided by the application when reporting an error,
+// unless the
+// error report has been generated automatically from Google App Engine logs.
+message HttpRequestContext {
+ // The type of HTTP request, such as `GET`, `POST`, etc.
+ string method = 1;
+
+ // The URL of the request.
+ string url = 2;
+
+ // The user agent information that is provided with the request.
+ string user_agent = 3;
+
+ // The referrer information that is provided with the request.
+ string referrer = 4;
+
+ // The HTTP response status code for the request.
+ int32 response_status_code = 5;
+
+ // The IP address from which the request originated.
+ // This can be IPv4, IPv6, or a token which is derived from the
+ // IP address, depending on the data that has been provided
+ // in the error report.
+ string remote_ip = 6;
+}
+
+// Indicates a location in the source code of the service for which
+// errors are reported.
+// This data should be provided by the application when reporting an error,
+// unless the error report has been generated automatically from Google App
+// Engine logs. All fields are optional.
+message SourceLocation {
+ // The source code filename, which can include a truncated relative
+ // path, or a full path from a production machine.
+ string file_path = 1;
+
+ // 1-based. 0 indicates that the line number is unknown.
+ int32 line_number = 2;
+
+ // Human-readable name of a function or method.
+ // The value can include optional context like the class or package name.
+ // For example, `my.package.MyClass.method` in case of Java.
+ string function_name = 4;
+}