googleapis
Version:
Google APIs Client Library for Node.js
536 lines (535 loc) • 25 kB
TypeScript
/**
* Copyright 2015 Google Inc. All Rights Reserved.
*
* 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.
*/
import { AxiosPromise } from 'axios';
import { GoogleApis } from '../..';
import { BodyResponseCallback, GlobalOptions, MethodOptions } from '../../lib/api';
/**
* Stackdriver Error Reporting API
*
* Groups and counts similar errors from cloud services and applications,
* reports new errors, and provides access to error groups and their associated
* errors.
*
* @example
* const google = require('googleapis');
* const clouderrorreporting = google.clouderrorreporting('v1beta1');
*
* @namespace clouderrorreporting
* @type {Function}
* @version v1beta1
* @variation v1beta1
* @param {object=} options Options for Clouderrorreporting
*/
export declare class Clouderrorreporting {
_options: GlobalOptions;
google: GoogleApis;
root: this;
projects: Resource$Projects;
constructor(options: GlobalOptions, google: GoogleApis);
getRoot(): this;
}
/**
* Response message for deleting error events.
*/
export interface Schema$DeleteEventsResponse {
}
/**
* 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.
*/
export interface Schema$ErrorContext {
/**
* The HTTP request which was processed when the error was triggered.
*/
httpRequest: Schema$HttpRequestContext;
/**
* 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.
*/
reportLocation: Schema$SourceLocation;
/**
* Source code that was used to build the executable which has caused the
* given error message.
*/
sourceReferences: Schema$SourceReference[];
/**
* 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`.
*/
user: string;
}
/**
* An error event which is returned by the Error Reporting system.
*/
export interface Schema$ErrorEvent {
/**
* Data about the context in which the error occurred.
*/
context: Schema$ErrorContext;
/**
* 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.
*/
eventTime: string;
/**
* The stack trace that was reported or logged by the service.
*/
message: string;
/**
* The `ServiceContext` for which this error was reported.
*/
serviceContext: Schema$ServiceContext;
}
/**
* Description of a group of similar error events.
*/
export interface Schema$ErrorGroup {
/**
* 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.
*/
groupId: string;
/**
* The group resource name. Example:
* <code>projects/my-project-123/groups/my-groupid</code>
*/
name: string;
/**
* Associated tracking issues.
*/
trackingIssues: Schema$TrackingIssue[];
}
/**
* Data extracted for a specific group based on certain filter criteria, such as
* a given time period and/or service filter.
*/
export interface Schema$ErrorGroupStats {
/**
* 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.
*/
affectedServices: Schema$ServiceContext[];
/**
* 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.
*/
affectedUsersCount: string;
/**
* Approximate total number of events in the given group that match the filter
* criteria.
*/
count: string;
/**
* 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.
*/
firstSeenTime: string;
/**
* Group data that is independent of the filter criteria.
*/
group: Schema$ErrorGroup;
/**
* 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.
*/
lastSeenTime: string;
/**
* The total number of services with a non-zero error count for the given
* filter criteria.
*/
numAffectedServices: number;
/**
* An arbitrary event that is chosen as representative for the whole group.
* The representative event is intended to be used as a quick preview for the
* whole group. Events in the group are usually sufficiently similar to each
* other such that showing an arbitrary representative provides insight into
* the characteristics of the group as a whole.
*/
representative: Schema$ErrorEvent;
/**
* 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.
*/
timedCounts: Schema$TimedCount[];
}
/**
* 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.
*/
export interface Schema$HttpRequestContext {
/**
* The type of HTTP request, such as `GET`, `POST`, etc.
*/
method: string;
/**
* The referrer information that is provided with the request.
*/
referrer: string;
/**
* 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.
*/
remoteIp: string;
/**
* The HTTP response status code for the request.
*/
responseStatusCode: number;
/**
* The URL of the request.
*/
url: string;
/**
* The user agent information that is provided with the request.
*/
userAgent: string;
}
/**
* Contains a set of requested error events.
*/
export interface Schema$ListEventsResponse {
/**
* The error events which match the given request.
*/
errorEvents: Schema$ErrorEvent[];
/**
* 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.
*/
nextPageToken: string;
/**
* The timestamp specifies the start time to which the request was restricted.
*/
timeRangeBegin: string;
}
/**
* Contains a set of requested error group stats.
*/
export interface Schema$ListGroupStatsResponse {
/**
* The error group stats which match the given request.
*/
errorGroupStats: Schema$ErrorGroupStats[];
/**
* 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.
*/
nextPageToken: string;
/**
* 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.
*/
timeRangeBegin: string;
}
/**
* An error event which is reported to the Error Reporting system.
*/
export interface Schema$ReportedErrorEvent {
/**
* [Optional] A description of the context in which the error occurred.
*/
context: Schema$ErrorContext;
/**
* [Optional] Time when the event occurred. If not provided, the time when the
* event was received by the Error Reporting system will be used.
*/
eventTime: string;
/**
* [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).
*/
message: string;
/**
* [Required] The service context in which this error has occurred.
*/
serviceContext: Schema$ServiceContext;
}
/**
* Response for reporting an individual error event. Data may be added to this
* message in the future.
*/
export interface Schema$ReportErrorEventResponse {
}
/**
* Describes a running service that sends errors. Its version changes over time
* and multiple versions can run in parallel.
*/
export interface Schema$ServiceContext {
/**
* 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.
*/
resourceType: string;
/**
* 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.
*/
service: string;
/**
* 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.
*/
version: string;
}
/**
* 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.
*/
export interface Schema$SourceLocation {
/**
* The source code filename, which can include a truncated relative path, or a
* full path from a production machine.
*/
filePath: string;
/**
* 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.
*/
functionName: string;
/**
* 1-based. 0 indicates that the line number is unknown.
*/
lineNumber: number;
}
/**
* A reference to a particular snapshot of the source tree used to build and
* deploy an application.
*/
export interface Schema$SourceReference {
/**
* Optional. A URI string identifying the repository. Example:
* "https://github.com/GoogleCloudPlatform/kubernetes.git"
*/
repository: string;
/**
* The canonical and persistent identifier of the deployed revision. Example
* (git): "0035781c50ec7aa23385dc841529ce8a4b70db1b"
*/
revisionId: string;
}
/**
* The number of errors in a given time period. All numbers are approximate
* since the error events are sampled before counting them.
*/
export interface Schema$TimedCount {
/**
* Approximate number of occurrences in the given time period.
*/
count: string;
/**
* End of the time period to which `count` refers (excluded).
*/
endTime: string;
/**
* Start of the time period to which `count` refers (included).
*/
startTime: string;
}
/**
* Information related to tracking the progress on resolving the error.
*/
export interface Schema$TrackingIssue {
/**
* A URL pointing to a related entry in an issue tracking system. Example:
* https://github.com/user/project/issues/4
*/
url: string;
}
export declare class Resource$Projects {
root: Clouderrorreporting;
events: Resource$Projects$Events;
groups: Resource$Projects$Groups;
groupStats: Resource$Projects$Groupstats;
constructor(root: Clouderrorreporting);
getRoot(): Clouderrorreporting;
/**
* clouderrorreporting.projects.deleteEvents
* @desc Deletes all error events of a given project.
* @alias clouderrorreporting.projects.deleteEvents
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.projectName [Required] The resource name of the Google Cloud Platform project. Written as `projects/` plus the [Google Cloud Platform project ID](https://support.google.com/cloud/answer/6158840). Example: `projects/my-project-123`.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
deleteEvents(params?: any, options?: MethodOptions): AxiosPromise<Schema$DeleteEventsResponse>;
deleteEvents(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$DeleteEventsResponse>, callback?: BodyResponseCallback<Schema$DeleteEventsResponse>): void;
}
export declare class Resource$Projects$Events {
root: Clouderrorreporting;
constructor(root: Clouderrorreporting);
getRoot(): Clouderrorreporting;
/**
* clouderrorreporting.projects.events.list
* @desc Lists the specified events.
* @alias clouderrorreporting.projects.events.list
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string=} params.groupId [Required] The group for which events shall be returned.
* @param {integer=} params.pageSize [Optional] The maximum number of results to return per response.
* @param {string=} params.pageToken [Optional] A `next_page_token` provided by a previous response.
* @param {string} params.projectName [Required] The resource name of the Google Cloud Platform project. Written as `projects/` plus the [Google Cloud Platform project ID](https://support.google.com/cloud/answer/6158840). Example: `projects/my-project-123`.
* @param {string=} params.serviceFilter.resourceType [Optional] The exact value to match against [`ServiceContext.resource_type`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type).
* @param {string=} params.serviceFilter.service [Optional] The exact value to match against [`ServiceContext.service`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.service).
* @param {string=} params.serviceFilter.version [Optional] The exact value to match against [`ServiceContext.version`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version).
* @param {string=} params.timeRange.period Restricts the query to the specified time range.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
list(params?: any, options?: MethodOptions): AxiosPromise<Schema$ListEventsResponse>;
list(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$ListEventsResponse>, callback?: BodyResponseCallback<Schema$ListEventsResponse>): void;
/**
* clouderrorreporting.projects.events.report
* @desc Report an individual error event. This endpoint accepts
* <strong>either</strong> an OAuth token, <strong>or</strong> an <a
* href="https://support.google.com/cloud/answer/6158862">API key</a> for
* authentication. To use an API key, append it to the URL as the value of a
* `key` parameter. For example: <pre>POST
* https://clouderrorreporting.googleapis.com/v1beta1/projects/example-project/events:report?key=123ABC456</pre>
* @alias clouderrorreporting.projects.events.report
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.projectName [Required] The resource name of the Google Cloud Platform project. Written as `projects/` plus the [Google Cloud Platform project ID](https://support.google.com/cloud/answer/6158840). Example: `projects/my-project-123`.
* @param {().ReportedErrorEvent} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
report(params?: any, options?: MethodOptions): AxiosPromise<Schema$ReportErrorEventResponse>;
report(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$ReportErrorEventResponse>, callback?: BodyResponseCallback<Schema$ReportErrorEventResponse>): void;
}
export declare class Resource$Projects$Groups {
root: Clouderrorreporting;
constructor(root: Clouderrorreporting);
getRoot(): Clouderrorreporting;
/**
* clouderrorreporting.projects.groups.get
* @desc Get the specified group.
* @alias clouderrorreporting.projects.groups.get
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.groupName [Required] The group resource name. Written as <code>projects/<var>projectID</var>/groups/<var>group_name</var></code>. Call <a href="/error-reporting/reference/rest/v1beta1/projects.groupStats/list"> <code>groupStats.list</code></a> to return a list of groups belonging to this project. Example: <code>projects/my-project-123/groups/my-group</code>
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
get(params?: any, options?: MethodOptions): AxiosPromise<Schema$ErrorGroup>;
get(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$ErrorGroup>, callback?: BodyResponseCallback<Schema$ErrorGroup>): void;
/**
* clouderrorreporting.projects.groups.update
* @desc Replace the data for the specified group. Fails if the group does not
* exist.
* @alias clouderrorreporting.projects.groups.update
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.name The group resource name. Example: <code>projects/my-project-123/groups/my-groupid</code>
* @param {().ErrorGroup} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
update(params?: any, options?: MethodOptions): AxiosPromise<Schema$ErrorGroup>;
update(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$ErrorGroup>, callback?: BodyResponseCallback<Schema$ErrorGroup>): void;
}
export declare class Resource$Projects$Groupstats {
root: Clouderrorreporting;
constructor(root: Clouderrorreporting);
getRoot(): Clouderrorreporting;
/**
* clouderrorreporting.projects.groupStats.list
* @desc Lists the specified groups.
* @alias clouderrorreporting.projects.groupStats.list
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string=} params.alignment [Optional] The alignment of the timed counts to be returned. Default is `ALIGNMENT_EQUAL_AT_END`.
* @param {string=} params.alignmentTime [Optional] Time where the timed counts shall be aligned if rounded alignment is chosen. Default is 00:00 UTC.
* @param {string=} params.groupId [Optional] List all <code>ErrorGroupStats</code> with these IDs.
* @param {string=} params.order [Optional] The sort order in which the results are returned. Default is `COUNT_DESC`.
* @param {integer=} params.pageSize [Optional] The maximum number of results to return per response. Default is 20.
* @param {string=} params.pageToken [Optional] A `next_page_token` provided by a previous response. To view additional results, pass this token along with the identical query parameters as the first request.
* @param {string} params.projectName [Required] The resource name of the Google Cloud Platform project. Written as <code>projects/</code> plus the <a href="https://support.google.com/cloud/answer/6158840">Google Cloud Platform project ID</a>. Example: <code>projects/my-project-123</code>.
* @param {string=} params.serviceFilter.resourceType [Optional] The exact value to match against [`ServiceContext.resource_type`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type).
* @param {string=} params.serviceFilter.service [Optional] The exact value to match against [`ServiceContext.service`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.service).
* @param {string=} params.serviceFilter.version [Optional] The exact value to match against [`ServiceContext.version`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version).
* @param {string=} params.timedCountDuration [Optional] The preferred duration for a single returned `TimedCount`. If not set, no timed counts are returned.
* @param {string=} params.timeRange.period Restricts the query to the specified time range.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
list(params?: any, options?: MethodOptions): AxiosPromise<Schema$ListGroupStatsResponse>;
list(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$ListGroupStatsResponse>, callback?: BodyResponseCallback<Schema$ListGroupStatsResponse>): void;
}