# Copyright 2015 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. require 'date' require 'google/apis/core/base_service' require 'google/apis/core/json_representation' require 'google/apis/core/hashable' require 'google/apis/errors' module Google module Apis module ClouderrorreportingV1beta1 # Response message for deleting error events. class DeleteEventsResponse include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # 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. class ErrorContext include Google::Apis::Core::Hashable # 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. # Corresponds to the JSON property `httpRequest` # @return [Google::Apis::ClouderrorreportingV1beta1::HttpRequestContext] attr_accessor :http_request # Indicates a location in the source code of the service for which errors are # reported. `functionName` must be provided by the application when reporting an # error, unless the error report contains a `message` with a supported exception # stack trace. All fields are optional for the later case. # Corresponds to the JSON property `reportLocation` # @return [Google::Apis::ClouderrorreportingV1beta1::SourceLocation] attr_accessor :report_location # Source code that was used to build the executable which has caused the given # error message. # Corresponds to the JSON property `sourceReferences` # @return [Array] attr_accessor :source_references # 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`. # Corresponds to the JSON property `user` # @return [String] attr_accessor :user def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @http_request = args[:http_request] if args.key?(:http_request) @report_location = args[:report_location] if args.key?(:report_location) @source_references = args[:source_references] if args.key?(:source_references) @user = args[:user] if args.key?(:user) end end # An error event which is returned by the Error Reporting system. class ErrorEvent include Google::Apis::Core::Hashable # 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. # Corresponds to the JSON property `context` # @return [Google::Apis::ClouderrorreportingV1beta1::ErrorContext] attr_accessor :context # 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. # Corresponds to the JSON property `eventTime` # @return [String] attr_accessor :event_time # The stack trace that was reported or logged by the service. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message # Describes a running service that sends errors. Its version changes over time # and multiple versions can run in parallel. # Corresponds to the JSON property `serviceContext` # @return [Google::Apis::ClouderrorreportingV1beta1::ServiceContext] attr_accessor :service_context def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @context = args[:context] if args.key?(:context) @event_time = args[:event_time] if args.key?(:event_time) @message = args[:message] if args.key?(:message) @service_context = args[:service_context] if args.key?(:service_context) end end # Description of a group of similar error events. class ErrorGroup include Google::Apis::Core::Hashable # 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. # Corresponds to the JSON property `groupId` # @return [String] attr_accessor :group_id # The group resource name. Example: projects/my-project-123/groups/ # CNSgkpnppqKCUw # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Error group's resolution status. An unspecified resolution status will be # interpreted as OPEN # Corresponds to the JSON property `resolutionStatus` # @return [String] attr_accessor :resolution_status # Associated tracking issues. # Corresponds to the JSON property `trackingIssues` # @return [Array] attr_accessor :tracking_issues def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @group_id = args[:group_id] if args.key?(:group_id) @name = args[:name] if args.key?(:name) @resolution_status = args[:resolution_status] if args.key?(:resolution_status) @tracking_issues = args[:tracking_issues] if args.key?(:tracking_issues) end end # Data extracted for a specific group based on certain filter criteria, such as # a given time period and/or service filter. class ErrorGroupStats include Google::Apis::Core::Hashable # Service contexts with a non-zero error count for the given filter criteria. # This list can be truncated if multiple services are affected. Refer to ` # num_affected_services` for the total count. # Corresponds to the JSON property `affectedServices` # @return [Array] attr_accessor :affected_services # Approximate number of affected users in the given group that match the filter # criteria. Users are distinguished by data in the `ErrorContext` of the # individual error events, such as their login name or their remote IP address # in case of HTTP requests. The number of affected users can be zero even if the # number of errors is non-zero if no data was provided from which the affected # user could be deduced. Users are counted based on data in the request context # that was provided in the error report. If more users are implicitly affected, # such as due to a crash of the whole service, this is not reflected here. # Corresponds to the JSON property `affectedUsersCount` # @return [Fixnum] attr_accessor :affected_users_count # Approximate total number of events in the given group that match the filter # criteria. # Corresponds to the JSON property `count` # @return [Fixnum] attr_accessor :count # Approximate first occurrence that was ever seen for this group and which # matches the given filter criteria, ignoring the time_range that was specified # in the request. # Corresponds to the JSON property `firstSeenTime` # @return [String] attr_accessor :first_seen_time # Description of a group of similar error events. # Corresponds to the JSON property `group` # @return [Google::Apis::ClouderrorreportingV1beta1::ErrorGroup] attr_accessor :group # Approximate last occurrence that was ever seen for this group and which # matches the given filter criteria, ignoring the time_range that was specified # in the request. # Corresponds to the JSON property `lastSeenTime` # @return [String] attr_accessor :last_seen_time # The total number of services with a non-zero error count for the given filter # criteria. # Corresponds to the JSON property `numAffectedServices` # @return [Fixnum] attr_accessor :num_affected_services # An error event which is returned by the Error Reporting system. # Corresponds to the JSON property `representative` # @return [Google::Apis::ClouderrorreportingV1beta1::ErrorEvent] attr_accessor :representative # Approximate number of occurrences over time. Timed counts returned by # ListGroups are guaranteed to be: - Inside the requested time interval - Non- # overlapping, and - Ordered by ascending time. # Corresponds to the JSON property `timedCounts` # @return [Array] attr_accessor :timed_counts def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @affected_services = args[:affected_services] if args.key?(:affected_services) @affected_users_count = args[:affected_users_count] if args.key?(:affected_users_count) @count = args[:count] if args.key?(:count) @first_seen_time = args[:first_seen_time] if args.key?(:first_seen_time) @group = args[:group] if args.key?(:group) @last_seen_time = args[:last_seen_time] if args.key?(:last_seen_time) @num_affected_services = args[:num_affected_services] if args.key?(:num_affected_services) @representative = args[:representative] if args.key?(:representative) @timed_counts = args[:timed_counts] if args.key?(:timed_counts) end end # 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. class HttpRequestContext include Google::Apis::Core::Hashable # The type of HTTP request, such as `GET`, `POST`, etc. # Corresponds to the JSON property `method` # @return [String] attr_accessor :method_prop # The referrer information that is provided with the request. # Corresponds to the JSON property `referrer` # @return [String] attr_accessor :referrer # 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. # Corresponds to the JSON property `remoteIp` # @return [String] attr_accessor :remote_ip # The HTTP response status code for the request. # Corresponds to the JSON property `responseStatusCode` # @return [Fixnum] attr_accessor :response_status_code # The URL of the request. # Corresponds to the JSON property `url` # @return [String] attr_accessor :url # The user agent information that is provided with the request. # Corresponds to the JSON property `userAgent` # @return [String] attr_accessor :user_agent def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @method_prop = args[:method_prop] if args.key?(:method_prop) @referrer = args[:referrer] if args.key?(:referrer) @remote_ip = args[:remote_ip] if args.key?(:remote_ip) @response_status_code = args[:response_status_code] if args.key?(:response_status_code) @url = args[:url] if args.key?(:url) @user_agent = args[:user_agent] if args.key?(:user_agent) end end # Contains a set of requested error events. class ListEventsResponse include Google::Apis::Core::Hashable # The error events which match the given request. # Corresponds to the JSON property `errorEvents` # @return [Array] attr_accessor :error_events # If non-empty, more results are available. Pass this token, along with the same # query parameters as the first request, to view the next page of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The timestamp specifies the start time to which the request was restricted. # Corresponds to the JSON property `timeRangeBegin` # @return [String] attr_accessor :time_range_begin def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @error_events = args[:error_events] if args.key?(:error_events) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @time_range_begin = args[:time_range_begin] if args.key?(:time_range_begin) end end # Contains a set of requested error group stats. class ListGroupStatsResponse include Google::Apis::Core::Hashable # The error group stats which match the given request. # Corresponds to the JSON property `errorGroupStats` # @return [Array] attr_accessor :error_group_stats # If non-empty, more results are available. Pass this token, along with the same # query parameters as the first request, to view the next page of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The timestamp specifies the start time to which the request was restricted. # The start time is set based on the requested time range. It may be adjusted to # a later time if a project has exceeded the storage quota and older data has # been deleted. # Corresponds to the JSON property `timeRangeBegin` # @return [String] attr_accessor :time_range_begin def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @error_group_stats = args[:error_group_stats] if args.key?(:error_group_stats) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @time_range_begin = args[:time_range_begin] if args.key?(:time_range_begin) end end # Response for reporting an individual error event. Data may be added to this # message in the future. class ReportErrorEventResponse include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # An error event which is reported to the Error Reporting system. class ReportedErrorEvent include Google::Apis::Core::Hashable # 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. # Corresponds to the JSON property `context` # @return [Google::Apis::ClouderrorreportingV1beta1::ErrorContext] attr_accessor :context # Optional. Time when the event occurred. If not provided, the time when the # event was received by the Error Reporting system will be used. # Corresponds to the JSON property `eventTime` # @return [String] attr_accessor :event_time # Required. The error message. If no `context.reportLocation` is provided, the # message must contain a header (typically consisting of the exception type name # and an error message) and an exception stack trace in one of the supported # programming languages and formats. Supported languages are Java, Python, # JavaScript, Ruby, C#, PHP, and Go. Supported stack trace formats are: * **Java* # *: Must be the return value of [`Throwable.printStackTrace()`](https://docs. # oracle.com/javase/7/docs/api/java/lang/Throwable.html#printStackTrace%28%29). * # **Python**: Must be the return value of [`traceback.format_exc()`](https:// # docs.python.org/2/library/traceback.html#traceback.format_exc). * **JavaScript* # *: Must be the value of [`error.stack`](https://github.com/v8/v8/wiki/Stack- # Trace-API) as returned by V8. * **Ruby**: Must contain frames returned by [` # Exception.backtrace`](https://ruby-doc.org/core-2.2.0/Exception.html#method-i- # backtrace). * **C#**: Must be the return value of [`Exception.ToString()`]( # https://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx). * ** # PHP**: Must start with `PHP (Notice|Parse error|Fatal error|Warning)` and # contain the result of [`(string)$exception`](http://php.net/manual/en/ # exception.tostring.php). * **Go**: Must be the return value of [`runtime.Stack( # )`](https://golang.org/pkg/runtime/debug/#Stack). # Corresponds to the JSON property `message` # @return [String] attr_accessor :message # Describes a running service that sends errors. Its version changes over time # and multiple versions can run in parallel. # Corresponds to the JSON property `serviceContext` # @return [Google::Apis::ClouderrorreportingV1beta1::ServiceContext] attr_accessor :service_context def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @context = args[:context] if args.key?(:context) @event_time = args[:event_time] if args.key?(:event_time) @message = args[:message] if args.key?(:message) @service_context = args[:service_context] if args.key?(:service_context) end end # Describes a running service that sends errors. Its version changes over time # and multiple versions can run in parallel. class ServiceContext include Google::Apis::Core::Hashable # 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. # Corresponds to the JSON property `resourceType` # @return [String] attr_accessor :resource_type # 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. # Corresponds to the JSON property `service` # @return [String] attr_accessor :service # Represents the source code version that the developer provided, which could # represent a version label or a Git SHA-1 hash, for example. For App Engine # standard environment, the version is set to the version of the app. # Corresponds to the JSON property `version` # @return [String] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @resource_type = args[:resource_type] if args.key?(:resource_type) @service = args[:service] if args.key?(:service) @version = args[:version] if args.key?(:version) end end # Indicates a location in the source code of the service for which errors are # reported. `functionName` must be provided by the application when reporting an # error, unless the error report contains a `message` with a supported exception # stack trace. All fields are optional for the later case. class SourceLocation include Google::Apis::Core::Hashable # The source code filename, which can include a truncated relative path, or a # full path from a production machine. # Corresponds to the JSON property `filePath` # @return [String] attr_accessor :file_path # 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. # Corresponds to the JSON property `functionName` # @return [String] attr_accessor :function_name # 1-based. 0 indicates that the line number is unknown. # Corresponds to the JSON property `lineNumber` # @return [Fixnum] attr_accessor :line_number def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @file_path = args[:file_path] if args.key?(:file_path) @function_name = args[:function_name] if args.key?(:function_name) @line_number = args[:line_number] if args.key?(:line_number) end end # A reference to a particular snapshot of the source tree used to build and # deploy an application. class SourceReference include Google::Apis::Core::Hashable # Optional. A URI string identifying the repository. Example: "https://github. # com/GoogleCloudPlatform/kubernetes.git" # Corresponds to the JSON property `repository` # @return [String] attr_accessor :repository # The canonical and persistent identifier of the deployed revision. Example (git) # : "0035781c50ec7aa23385dc841529ce8a4b70db1b" # Corresponds to the JSON property `revisionId` # @return [String] attr_accessor :revision_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @repository = args[:repository] if args.key?(:repository) @revision_id = args[:revision_id] if args.key?(:revision_id) end end # The number of errors in a given time period. All numbers are approximate since # the error events are sampled before counting them. class TimedCount include Google::Apis::Core::Hashable # Approximate number of occurrences in the given time period. # Corresponds to the JSON property `count` # @return [Fixnum] attr_accessor :count # End of the time period to which `count` refers (excluded). # Corresponds to the JSON property `endTime` # @return [String] attr_accessor :end_time # Start of the time period to which `count` refers (included). # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @count = args[:count] if args.key?(:count) @end_time = args[:end_time] if args.key?(:end_time) @start_time = args[:start_time] if args.key?(:start_time) end end # Information related to tracking the progress on resolving the error. class TrackingIssue include Google::Apis::Core::Hashable # A URL pointing to a related entry in an issue tracking system. Example: `https: # //github.com/user/project/issues/4` # Corresponds to the JSON property `url` # @return [String] attr_accessor :url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @url = args[:url] if args.key?(:url) end end end end end