Index: generated/googleapis/lib/tracing/v2.dart |
diff --git a/generated/googleapis/lib/tracing/v2.dart b/generated/googleapis/lib/tracing/v2.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a1c7de0ca02fbdea853c3930f3a1dc20c78677f6 |
--- /dev/null |
+++ b/generated/googleapis/lib/tracing/v2.dart |
@@ -0,0 +1,1119 @@ |
+// This is a generated file (see the discoveryapis_generator project). |
+ |
+library googleapis.tracing.v2; |
+ |
+import 'dart:core' as core; |
+import 'dart:async' as async; |
+import 'dart:convert' as convert; |
+ |
+import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; |
+import 'package:http/http.dart' as http; |
+ |
+export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' show |
+ ApiRequestError, DetailedApiRequestError; |
+ |
+const core.String USER_AGENT = 'dart-api-client tracing/v2'; |
+ |
+/** Send and retrieve trace data from Google Stackdriver Trace. */ |
+class TracingApi { |
+ /** View and manage your data across Google Cloud Platform services */ |
+ static const CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"; |
+ |
+ /** Write Trace data for a project or application */ |
+ static const TraceAppendScope = "https://www.googleapis.com/auth/trace.append"; |
+ |
+ /** Read Trace data for a project or application */ |
+ static const TraceReadonlyScope = "https://www.googleapis.com/auth/trace.readonly"; |
+ |
+ |
+ final commons.ApiRequester _requester; |
+ |
+ ProjectsResourceApi get projects => new ProjectsResourceApi(_requester); |
+ |
+ TracingApi(http.Client client, {core.String rootUrl: "https://tracing.googleapis.com/", core.String servicePath: ""}) : |
+ _requester = new commons.ApiRequester(client, rootUrl, servicePath, USER_AGENT); |
+} |
+ |
+ |
+class ProjectsResourceApi { |
+ final commons.ApiRequester _requester; |
+ |
+ ProjectsTracesResourceApi get traces => new ProjectsTracesResourceApi(_requester); |
+ |
+ ProjectsResourceApi(commons.ApiRequester client) : |
+ _requester = client; |
+} |
+ |
+ |
+class ProjectsTracesResourceApi { |
+ final commons.ApiRequester _requester; |
+ |
+ ProjectsTracesSpansResourceApi get spans => new ProjectsTracesSpansResourceApi(_requester); |
+ |
+ ProjectsTracesResourceApi(commons.ApiRequester client) : |
+ _requester = client; |
+ |
+ /** |
+ * Sends new spans to Stackdriver Trace or updates existing traces. If the |
+ * name of a trace that you send matches that of an existing trace, new spans |
+ * are added to the existing trace. Attempt to update existing spans results |
+ * undefined behavior. If the name does not match, a new trace is created |
+ * with given set of spans. |
+ * |
+ * [request] - The metadata request object. |
+ * |
+ * Request parameters: |
+ * |
+ * [name] - Name of the project where the spans belong to. Format is |
+ * `projects/PROJECT_ID`. |
+ * Value must have pattern "^projects/[^/]+$". |
+ * |
+ * Completes with a [Empty]. |
+ * |
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
+ * error. |
+ * |
+ * If the used [http.Client] completes with an error when making a REST call, |
+ * this method will complete with the same error. |
+ */ |
+ async.Future<Empty> batchWrite(BatchWriteSpansRequest request, core.String name) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = commons.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (request != null) { |
+ _body = convert.JSON.encode((request).toJson()); |
+ } |
+ if (name == null) { |
+ throw new core.ArgumentError("Parameter name is required."); |
+ } |
+ |
+ _url = 'v2/' + commons.Escaper.ecapeVariableReserved('$name') + '/traces:batchWrite'; |
+ |
+ var _response = _requester.request(_url, |
+ "POST", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new Empty.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Returns of a list of traces that match the specified filter conditions. |
+ * |
+ * Request parameters: |
+ * |
+ * [parent] - ID of the Cloud project where the trace data is stored which is |
+ * `projects/PROJECT_ID`. |
+ * Value must have pattern "^projects/[^/]+$". |
+ * |
+ * [startTime] - Start of the time interval (inclusive) during which the trace |
+ * data was |
+ * collected from the application. |
+ * |
+ * [pageToken] - Token identifying the page of results to return. If provided, |
+ * use the |
+ * value of the `next_page_token` field from a previous request. Optional. |
+ * |
+ * [pageSize] - Maximum number of traces to return. If not specified or <= 0, |
+ * the |
+ * implementation selects a reasonable value. The implementation may |
+ * return fewer traces than the requested page size. Optional. |
+ * |
+ * [orderBy] - Field used to sort the returned traces. Optional. |
+ * Can be one of the following: |
+ * |
+ * * `trace_id` |
+ * * `name` (`name` field of root span in the trace) |
+ * * `duration` (difference between `end_time` and `start_time` fields of |
+ * the root span) |
+ * * `start` (`start_time` field of the root span) |
+ * |
+ * Descending order can be specified by appending `desc` to the sort field |
+ * (for example, `name desc`). |
+ * |
+ * Only one sort field is permitted. |
+ * |
+ * [filter] - An optional filter for the request. |
+ * Example: |
+ * `version_label_key:a some_label:some_label_key` |
+ * returns traces from version `a` and has `some_label` with `some_label_key`. |
+ * |
+ * [endTime] - End of the time interval (inclusive) during which the trace |
+ * data was |
+ * collected from the application. |
+ * |
+ * Completes with a [ListTracesResponse]. |
+ * |
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
+ * error. |
+ * |
+ * If the used [http.Client] completes with an error when making a REST call, |
+ * this method will complete with the same error. |
+ */ |
+ async.Future<ListTracesResponse> list(core.String parent, {core.String startTime, core.String pageToken, core.int pageSize, core.String orderBy, core.String filter, core.String endTime}) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = commons.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (parent == null) { |
+ throw new core.ArgumentError("Parameter parent is required."); |
+ } |
+ if (startTime != null) { |
+ _queryParams["startTime"] = [startTime]; |
+ } |
+ if (pageToken != null) { |
+ _queryParams["pageToken"] = [pageToken]; |
+ } |
+ if (pageSize != null) { |
+ _queryParams["pageSize"] = ["${pageSize}"]; |
+ } |
+ if (orderBy != null) { |
+ _queryParams["orderBy"] = [orderBy]; |
+ } |
+ if (filter != null) { |
+ _queryParams["filter"] = [filter]; |
+ } |
+ if (endTime != null) { |
+ _queryParams["endTime"] = [endTime]; |
+ } |
+ |
+ _url = 'v2/' + commons.Escaper.ecapeVariableReserved('$parent') + '/traces'; |
+ |
+ var _response = _requester.request(_url, |
+ "GET", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new ListTracesResponse.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Returns a list of spans within a trace. |
+ * |
+ * Request parameters: |
+ * |
+ * [parent] - ID of the trace for which to list child spans. Format is |
+ * `projects/PROJECT_ID/traces/TRACE_ID`. |
+ * Value must have pattern "^projects/[^/]+/traces/[^/]+$". |
+ * |
+ * [pageToken] - Token identifying the page of results to return. If provided, |
+ * use the |
+ * value of the `nextPageToken` field from a previous request. Optional. |
+ * |
+ * Completes with a [ListSpansResponse]. |
+ * |
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
+ * error. |
+ * |
+ * If the used [http.Client] completes with an error when making a REST call, |
+ * this method will complete with the same error. |
+ */ |
+ async.Future<ListSpansResponse> listSpans(core.String parent, {core.String pageToken}) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = commons.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (parent == null) { |
+ throw new core.ArgumentError("Parameter parent is required."); |
+ } |
+ if (pageToken != null) { |
+ _queryParams["pageToken"] = [pageToken]; |
+ } |
+ |
+ _url = 'v2/' + commons.Escaper.ecapeVariableReserved('$parent') + ':listSpans'; |
+ |
+ var _response = _requester.request(_url, |
+ "GET", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new ListSpansResponse.fromJson(data)); |
+ } |
+ |
+} |
+ |
+ |
+class ProjectsTracesSpansResourceApi { |
+ final commons.ApiRequester _requester; |
+ |
+ ProjectsTracesSpansResourceApi(commons.ApiRequester client) : |
+ _requester = client; |
+ |
+ /** |
+ * Creates a new Span. |
+ * |
+ * [request] - The metadata request object. |
+ * |
+ * Request parameters: |
+ * |
+ * [name] - The resource name of Span in the format |
+ * `projects/PROJECT_ID/traces/TRACE_ID/spans/SPAN_ID`. |
+ * `TRACE_ID` is a unique identifier for a trace within a project and is a |
+ * base16-encoded, case-insensitive string and is required to be 32 char long. |
+ * `SPAN_ID` is a unique identifier for a span within a trace. It is a |
+ * base 16-encoded, case-insensitive string of a 8-bytes array and is required |
+ * to be 16 char long. |
+ * Value must have pattern "^projects/[^/]+/traces/[^/]+/spans/[^/]+$". |
+ * |
+ * Completes with a [Span]. |
+ * |
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
+ * error. |
+ * |
+ * If the used [http.Client] completes with an error when making a REST call, |
+ * this method will complete with the same error. |
+ */ |
+ async.Future<Span> create(Span request, core.String name) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = commons.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (request != null) { |
+ _body = convert.JSON.encode((request).toJson()); |
+ } |
+ if (name == null) { |
+ throw new core.ArgumentError("Parameter name is required."); |
+ } |
+ |
+ _url = 'v2/' + commons.Escaper.ecapeVariableReserved('$name'); |
+ |
+ var _response = _requester.request(_url, |
+ "PUT", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new Span.fromJson(data)); |
+ } |
+ |
+} |
+ |
+ |
+ |
+/** |
+ * Text annotation with a set of attributes. A maximum of 32 annotations are |
+ * allowed per Span. |
+ */ |
+class Annotation { |
+ /** |
+ * A set of attributes on the annotation. A maximum of 4 attributes are |
+ * allowed per Annotation. The maximum key length is 128 bytes. The |
+ * value can be a string (up to 256 bytes), integer, or boolean |
+ * (true/false). |
+ */ |
+ core.Map<core.String, AttributeValue> attributes; |
+ /** |
+ * A user-supplied message describing the event. The maximum length for |
+ * the description is 256 characters. |
+ */ |
+ core.String description; |
+ |
+ Annotation(); |
+ |
+ Annotation.fromJson(core.Map _json) { |
+ if (_json.containsKey("attributes")) { |
+ attributes = commons.mapMap(_json["attributes"], (item) => new AttributeValue.fromJson(item)); |
+ } |
+ if (_json.containsKey("description")) { |
+ description = _json["description"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (attributes != null) { |
+ _json["attributes"] = commons.mapMap(attributes, (item) => (item).toJson()); |
+ } |
+ if (description != null) { |
+ _json["description"] = description; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** The allowed types for the value side of an attribute key:value pair. */ |
+class AttributeValue { |
+ /** A boolean value. */ |
+ core.bool boolValue; |
+ /** An integer value. */ |
+ core.String intValue; |
+ /** A string value. */ |
+ core.String stringValue; |
+ |
+ AttributeValue(); |
+ |
+ AttributeValue.fromJson(core.Map _json) { |
+ if (_json.containsKey("boolValue")) { |
+ boolValue = _json["boolValue"]; |
+ } |
+ if (_json.containsKey("intValue")) { |
+ intValue = _json["intValue"]; |
+ } |
+ if (_json.containsKey("stringValue")) { |
+ stringValue = _json["stringValue"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (boolValue != null) { |
+ _json["boolValue"] = boolValue; |
+ } |
+ if (intValue != null) { |
+ _json["intValue"] = intValue; |
+ } |
+ if (stringValue != null) { |
+ _json["stringValue"] = stringValue; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** The request message for the `BatchWriteSpans` method. */ |
+class BatchWriteSpansRequest { |
+ /** A collection of spans. */ |
+ core.List<Span> spans; |
+ |
+ BatchWriteSpansRequest(); |
+ |
+ BatchWriteSpansRequest.fromJson(core.Map _json) { |
+ if (_json.containsKey("spans")) { |
+ spans = _json["spans"].map((value) => new Span.fromJson(value)).toList(); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (spans != null) { |
+ _json["spans"] = spans.map((value) => (value).toJson()).toList(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** |
+ * A generic empty message that you can re-use to avoid defining duplicated |
+ * empty messages in your APIs. A typical example is to use it as the request |
+ * or the response type of an API method. For instance: |
+ * |
+ * service Foo { |
+ * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); |
+ * } |
+ * |
+ * The JSON representation for `Empty` is empty JSON object `{}`. |
+ */ |
+class Empty { |
+ |
+ Empty(); |
+ |
+ Empty.fromJson(core.Map _json) { |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ return _json; |
+ } |
+} |
+ |
+/** |
+ * A pointer from this span to another span in a different `Trace` within |
+ * the same service project or within a different service project. Used |
+ * (for example) in batching operations, where a single batch handler |
+ * processes multiple requests from different traces or when receives a |
+ * request from a different service project. |
+ */ |
+class Link { |
+ /** |
+ * `SPAN_ID` is a unique identifier for a span within a trace. It is a |
+ * base16-encoded, case-insensitive string of a 8-bytes array and is |
+ * required to be 16 char long. |
+ */ |
+ core.String spanId; |
+ /** |
+ * `TRACE_ID` is a unique identifier for a trace within a project. It is |
+ * a base16-encoded, case-insensitive string of a 16-bytes array and is |
+ * required to be 32 char long. |
+ */ |
+ core.String traceId; |
+ /** |
+ * The relationship of the current span relative to the linked span. |
+ * Possible string values are: |
+ * - "TYPE_UNSPECIFIED" : The relationship of the two spans is unknown. |
+ * - "CHILD" : The current span is a child of the linked span. |
+ * - "PARENT" : The current span is the parent of the linked span. |
+ */ |
+ core.String type; |
+ |
+ Link(); |
+ |
+ Link.fromJson(core.Map _json) { |
+ if (_json.containsKey("spanId")) { |
+ spanId = _json["spanId"]; |
+ } |
+ if (_json.containsKey("traceId")) { |
+ traceId = _json["traceId"]; |
+ } |
+ if (_json.containsKey("type")) { |
+ type = _json["type"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (spanId != null) { |
+ _json["spanId"] = spanId; |
+ } |
+ if (traceId != null) { |
+ _json["traceId"] = traceId; |
+ } |
+ if (type != null) { |
+ _json["type"] = type; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** The response message for the `ListSpans` method. */ |
+class ListSpansResponse { |
+ /** |
+ * If defined, indicates that there are more spans that match the request. |
+ * Pass this as the value of `pageToken` in a subsequent request to retrieve |
+ * additional spans. |
+ */ |
+ core.String nextPageToken; |
+ /** The requested spans if there are any in the specified trace. */ |
+ core.List<Span> spans; |
+ |
+ ListSpansResponse(); |
+ |
+ ListSpansResponse.fromJson(core.Map _json) { |
+ if (_json.containsKey("nextPageToken")) { |
+ nextPageToken = _json["nextPageToken"]; |
+ } |
+ if (_json.containsKey("spans")) { |
+ spans = _json["spans"].map((value) => new Span.fromJson(value)).toList(); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (nextPageToken != null) { |
+ _json["nextPageToken"] = nextPageToken; |
+ } |
+ if (spans != null) { |
+ _json["spans"] = spans.map((value) => (value).toJson()).toList(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** The response message for the `ListTraces` method. */ |
+class ListTracesResponse { |
+ /** |
+ * If defined, indicates that there are more traces that match the request |
+ * and that this value should be passed to the next request to continue |
+ * retrieving additional traces. |
+ */ |
+ core.String nextPageToken; |
+ /** List of trace records returned. */ |
+ core.List<Trace> traces; |
+ |
+ ListTracesResponse(); |
+ |
+ ListTracesResponse.fromJson(core.Map _json) { |
+ if (_json.containsKey("nextPageToken")) { |
+ nextPageToken = _json["nextPageToken"]; |
+ } |
+ if (_json.containsKey("traces")) { |
+ traces = _json["traces"].map((value) => new Trace.fromJson(value)).toList(); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (nextPageToken != null) { |
+ _json["nextPageToken"] = nextPageToken; |
+ } |
+ if (traces != null) { |
+ _json["traces"] = traces.map((value) => (value).toJson()).toList(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** Binary module. */ |
+class Module { |
+ /** |
+ * Build_id is a unique identifier for the module, usually a hash of its |
+ * contents (up to 128 characters). |
+ */ |
+ core.String buildId; |
+ /** |
+ * E.g. main binary, kernel modules, and dynamic libraries |
+ * such as libc.so, sharedlib.so (up to 256 characters). |
+ */ |
+ core.String module; |
+ |
+ Module(); |
+ |
+ Module.fromJson(core.Map _json) { |
+ if (_json.containsKey("buildId")) { |
+ buildId = _json["buildId"]; |
+ } |
+ if (_json.containsKey("module")) { |
+ module = _json["module"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (buildId != null) { |
+ _json["buildId"] = buildId; |
+ } |
+ if (module != null) { |
+ _json["module"] = module; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** |
+ * An event describing an RPC message sent/received on the network. A |
+ * maximum of 128 network events are allowed per Span. |
+ */ |
+class NetworkEvent { |
+ /** An identifier for the message, which must be unique in this span. */ |
+ core.String messageId; |
+ /** The number of bytes sent or received. */ |
+ core.String messageSize; |
+ /** |
+ * If available, this is the kernel time: |
+ * |
+ * * For sent messages, this is the time at which the first bit was sent. |
+ * * For received messages, this is the time at which the last bit was |
+ * received. |
+ */ |
+ core.String time; |
+ /** |
+ * Type of NetworkEvent. Indicates whether the RPC message was sent or |
+ * received. |
+ * Possible string values are: |
+ * - "TYPE_UNSPECIFIED" : Unknown event type. |
+ * - "SENT" : Indicates a sent RPC message. |
+ * - "RECV" : Indicates a received RPC message. |
+ */ |
+ core.String type; |
+ |
+ NetworkEvent(); |
+ |
+ NetworkEvent.fromJson(core.Map _json) { |
+ if (_json.containsKey("messageId")) { |
+ messageId = _json["messageId"]; |
+ } |
+ if (_json.containsKey("messageSize")) { |
+ messageSize = _json["messageSize"]; |
+ } |
+ if (_json.containsKey("time")) { |
+ time = _json["time"]; |
+ } |
+ if (_json.containsKey("type")) { |
+ type = _json["type"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (messageId != null) { |
+ _json["messageId"] = messageId; |
+ } |
+ if (messageSize != null) { |
+ _json["messageSize"] = messageSize; |
+ } |
+ if (time != null) { |
+ _json["time"] = time; |
+ } |
+ if (type != null) { |
+ _json["type"] = type; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** |
+ * A span represents a single operation within a trace. Spans can be nested |
+ * to form a trace tree. Often, a trace contains a root span that |
+ * describes the end-to-end latency and, optionally, one or more subspans for |
+ * its sub-operations. (A trace could alternatively contain multiple root spans, |
+ * or none at all.) Spans do not need to be contiguous. There may be gaps |
+ * and/or overlaps between spans in a trace. |
+ */ |
+class Span { |
+ /** |
+ * Attributes of a span with a key:value format. A maximum of 16 custom |
+ * attributes are allowed per Span. The maximum key length is 128 bytes. The |
+ * value can be a string (up to 256 bytes), integer, or boolean (true/false). |
+ * |
+ * Some common pair examples: |
+ * |
+ * "/instance_id": "my-instance" |
+ * "/zone": "us-central1-a" |
+ * "/grpc/peer_address": "ip:port" (dns, etc.) |
+ * "/grpc/deadline": "Duration" |
+ * "/http/user_agent" |
+ * "/http/request_bytes": 300 |
+ * "/http/response_bytes": 1200 |
+ * "/http/url": google.com/apis |
+ * "abc.com/myattribute": true |
+ */ |
+ core.Map<core.String, AttributeValue> attributes; |
+ /** |
+ * Description of the operation in the span. It is sanitized and displayed in |
+ * the Stackdriver Trace tool in the |
+ * {% dynamic print site_values.console_name %}. |
+ * The display_name may be a method name or some other per-call site |
+ * name. For the same executable and the same call point, a best practice is |
+ * to use a consistent operation name, which makes it easier to correlate |
+ * cross-trace spans. |
+ */ |
+ core.String displayName; |
+ /** |
+ * End time of the span. |
+ * On the client side, this is the local machine clock time at which the span |
+ * execution was ended; on the server |
+ * side, this is the time at which the server application handler stopped |
+ * running. |
+ */ |
+ core.String endTime; |
+ /** |
+ * A collection of links, which are references from this span to a span |
+ * in the same or different trace. |
+ */ |
+ core.List<Link> links; |
+ /** |
+ * The resource name of Span in the format |
+ * `projects/PROJECT_ID/traces/TRACE_ID/spans/SPAN_ID`. |
+ * `TRACE_ID` is a unique identifier for a trace within a project and is a |
+ * base16-encoded, case-insensitive string and is required to be 32 char long. |
+ * `SPAN_ID` is a unique identifier for a span within a trace. It is a |
+ * base 16-encoded, case-insensitive string of a 8-bytes array and is required |
+ * to be 16 char long. |
+ */ |
+ core.String name; |
+ /** |
+ * ID of parent span which is a base 16-encoded, case-insensitive string of |
+ * a 8-bytes array and is required to be 16 char long. If this is a root span, |
+ * the value must be empty. |
+ */ |
+ core.String parentSpanId; |
+ /** |
+ * Unique identifier for a span within a trace. It is a base 16-encoded, |
+ * case-insensitive string of a 8-bytes array and is required. |
+ */ |
+ core.String spanId; |
+ /** Stack trace captured at the start of the span. */ |
+ StackTrace stackTrace; |
+ /** |
+ * Start time of the span. |
+ * On the client side, this is the local machine clock time at which the span |
+ * execution was started; on the server |
+ * side, this is the time at which the server application handler started |
+ * running. |
+ */ |
+ core.String startTime; |
+ /** An optional final status for this span. */ |
+ Status status; |
+ /** |
+ * A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation |
+ * on the span, consisting of either user-supplied key:value pairs, or |
+ * details of an RPC message sent/received on the network. |
+ */ |
+ core.List<TimeEvent> timeEvents; |
+ |
+ Span(); |
+ |
+ Span.fromJson(core.Map _json) { |
+ if (_json.containsKey("attributes")) { |
+ attributes = commons.mapMap(_json["attributes"], (item) => new AttributeValue.fromJson(item)); |
+ } |
+ if (_json.containsKey("displayName")) { |
+ displayName = _json["displayName"]; |
+ } |
+ if (_json.containsKey("endTime")) { |
+ endTime = _json["endTime"]; |
+ } |
+ if (_json.containsKey("links")) { |
+ links = _json["links"].map((value) => new Link.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("name")) { |
+ name = _json["name"]; |
+ } |
+ if (_json.containsKey("parentSpanId")) { |
+ parentSpanId = _json["parentSpanId"]; |
+ } |
+ if (_json.containsKey("spanId")) { |
+ spanId = _json["spanId"]; |
+ } |
+ if (_json.containsKey("stackTrace")) { |
+ stackTrace = new StackTrace.fromJson(_json["stackTrace"]); |
+ } |
+ if (_json.containsKey("startTime")) { |
+ startTime = _json["startTime"]; |
+ } |
+ if (_json.containsKey("status")) { |
+ status = new Status.fromJson(_json["status"]); |
+ } |
+ if (_json.containsKey("timeEvents")) { |
+ timeEvents = _json["timeEvents"].map((value) => new TimeEvent.fromJson(value)).toList(); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (attributes != null) { |
+ _json["attributes"] = commons.mapMap(attributes, (item) => (item).toJson()); |
+ } |
+ if (displayName != null) { |
+ _json["displayName"] = displayName; |
+ } |
+ if (endTime != null) { |
+ _json["endTime"] = endTime; |
+ } |
+ if (links != null) { |
+ _json["links"] = links.map((value) => (value).toJson()).toList(); |
+ } |
+ if (name != null) { |
+ _json["name"] = name; |
+ } |
+ if (parentSpanId != null) { |
+ _json["parentSpanId"] = parentSpanId; |
+ } |
+ if (spanId != null) { |
+ _json["spanId"] = spanId; |
+ } |
+ if (stackTrace != null) { |
+ _json["stackTrace"] = (stackTrace).toJson(); |
+ } |
+ if (startTime != null) { |
+ _json["startTime"] = startTime; |
+ } |
+ if (status != null) { |
+ _json["status"] = (status).toJson(); |
+ } |
+ if (timeEvents != null) { |
+ _json["timeEvents"] = timeEvents.map((value) => (value).toJson()).toList(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** Represents a single stack frame in a stack trace. */ |
+class StackFrame { |
+ /** |
+ * Column number is important in JavaScript (anonymous functions). |
+ * May not be available in some languages. |
+ */ |
+ core.String columnNumber; |
+ /** The filename of the file containing this frame (up to 256 characters). */ |
+ core.String fileName; |
+ /** |
+ * The fully-qualified name that uniquely identifies this function or |
+ * method (up to 1024 characters). |
+ */ |
+ core.String functionName; |
+ /** Line number of the frame. */ |
+ core.String lineNumber; |
+ /** Binary module the code is loaded from. */ |
+ Module loadModule; |
+ /** |
+ * Used when the function name is |
+ * [mangled](http://www.avabodh.com/cxxin/namemangling.html). May be |
+ * fully-qualified (up to 1024 characters). |
+ */ |
+ core.String originalFunctionName; |
+ /** The version of the deployed source code (up to 128 characters). */ |
+ core.String sourceVersion; |
+ |
+ StackFrame(); |
+ |
+ StackFrame.fromJson(core.Map _json) { |
+ if (_json.containsKey("columnNumber")) { |
+ columnNumber = _json["columnNumber"]; |
+ } |
+ if (_json.containsKey("fileName")) { |
+ fileName = _json["fileName"]; |
+ } |
+ if (_json.containsKey("functionName")) { |
+ functionName = _json["functionName"]; |
+ } |
+ if (_json.containsKey("lineNumber")) { |
+ lineNumber = _json["lineNumber"]; |
+ } |
+ if (_json.containsKey("loadModule")) { |
+ loadModule = new Module.fromJson(_json["loadModule"]); |
+ } |
+ if (_json.containsKey("originalFunctionName")) { |
+ originalFunctionName = _json["originalFunctionName"]; |
+ } |
+ if (_json.containsKey("sourceVersion")) { |
+ sourceVersion = _json["sourceVersion"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (columnNumber != null) { |
+ _json["columnNumber"] = columnNumber; |
+ } |
+ if (fileName != null) { |
+ _json["fileName"] = fileName; |
+ } |
+ if (functionName != null) { |
+ _json["functionName"] = functionName; |
+ } |
+ if (lineNumber != null) { |
+ _json["lineNumber"] = lineNumber; |
+ } |
+ if (loadModule != null) { |
+ _json["loadModule"] = (loadModule).toJson(); |
+ } |
+ if (originalFunctionName != null) { |
+ _json["originalFunctionName"] = originalFunctionName; |
+ } |
+ if (sourceVersion != null) { |
+ _json["sourceVersion"] = sourceVersion; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** StackTrace collected in a trace. */ |
+class StackTrace { |
+ /** Stack frames in this stack trace. A maximum of 128 frames are allowed. */ |
+ core.List<StackFrame> stackFrame; |
+ /** |
+ * The hash ID is used to conserve network bandwidth for duplicate |
+ * stack traces within a single trace. |
+ * |
+ * Often multiple spans will have identical stack traces. |
+ * The first occurance of a stack trace should contain both the |
+ * `stackFrame` content and a value in `stackTraceHashId`. |
+ * |
+ * Subsequent spans within the same request can refer |
+ * to that stack trace by only setting `stackTraceHashId`. |
+ */ |
+ core.String stackTraceHashId; |
+ |
+ StackTrace(); |
+ |
+ StackTrace.fromJson(core.Map _json) { |
+ if (_json.containsKey("stackFrame")) { |
+ stackFrame = _json["stackFrame"].map((value) => new StackFrame.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("stackTraceHashId")) { |
+ stackTraceHashId = _json["stackTraceHashId"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (stackFrame != null) { |
+ _json["stackFrame"] = stackFrame.map((value) => (value).toJson()).toList(); |
+ } |
+ if (stackTraceHashId != null) { |
+ _json["stackTraceHashId"] = stackTraceHashId; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** |
+ * The `Status` type defines a logical error model that is suitable for |
+ * different |
+ * programming environments, including REST APIs and RPC APIs. It is used by |
+ * [gRPC](https://github.com/grpc). The error model is designed to be: |
+ * |
+ * - Simple to use and understand for most users |
+ * - Flexible enough to meet unexpected needs |
+ * |
+ * # Overview |
+ * |
+ * The `Status` message contains three pieces of data: error code, error |
+ * message, |
+ * and error details. The error code should be an enum value of |
+ * google.rpc.Code, but it may accept additional error codes if needed. The |
+ * error message should be a developer-facing English message that helps |
+ * developers *understand* and *resolve* the error. If a localized user-facing |
+ * error message is needed, put the localized message in the error details or |
+ * localize it in the client. The optional error details may contain arbitrary |
+ * information about the error. There is a predefined set of error detail types |
+ * in the package `google.rpc` which can be used for common error conditions. |
+ * |
+ * # Language mapping |
+ * |
+ * The `Status` message is the logical representation of the error model, but it |
+ * is not necessarily the actual wire format. When the `Status` message is |
+ * exposed in different client libraries and different wire protocols, it can be |
+ * mapped differently. For example, it will likely be mapped to some exceptions |
+ * in Java, but more likely mapped to some error codes in C. |
+ * |
+ * # Other uses |
+ * |
+ * The error model and the `Status` message can be used in a variety of |
+ * environments, either with or without APIs, to provide a |
+ * consistent developer experience across different environments. |
+ * |
+ * Example uses of this error model include: |
+ * |
+ * - Partial errors. If a service needs to return partial errors to the client, |
+ * it may embed the `Status` in the normal response to indicate the partial |
+ * errors. |
+ * |
+ * - Workflow errors. A typical workflow has multiple steps. Each step may |
+ * have a `Status` message for error reporting purpose. |
+ * |
+ * - Batch operations. If a client uses batch request and batch response, the |
+ * `Status` message should be used directly inside batch response, one for |
+ * each error sub-response. |
+ * |
+ * - Asynchronous operations. If an API call embeds asynchronous operation |
+ * results in its response, the status of those operations should be |
+ * represented directly using the `Status` message. |
+ * |
+ * - Logging. If some API errors are stored in logs, the message `Status` could |
+ * be used directly after any stripping needed for security/privacy reasons. |
+ */ |
+class Status { |
+ /** The status code, which should be an enum value of google.rpc.Code. */ |
+ core.int code; |
+ /** |
+ * A list of messages that carry the error details. There will be a |
+ * common set of message types for APIs to use. |
+ * |
+ * The values for Object must be JSON objects. It can consist of `num`, |
+ * `String`, `bool` and `null` as well as `Map` and `List` values. |
+ */ |
+ core.List<core.Map<core.String, core.Object>> details; |
+ /** |
+ * A developer-facing error message, which should be in English. Any |
+ * user-facing error message should be localized and sent in the |
+ * google.rpc.Status.details field, or localized by the client. |
+ */ |
+ core.String message; |
+ |
+ Status(); |
+ |
+ Status.fromJson(core.Map _json) { |
+ if (_json.containsKey("code")) { |
+ code = _json["code"]; |
+ } |
+ if (_json.containsKey("details")) { |
+ details = _json["details"]; |
+ } |
+ if (_json.containsKey("message")) { |
+ message = _json["message"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (code != null) { |
+ _json["code"] = code; |
+ } |
+ if (details != null) { |
+ _json["details"] = details; |
+ } |
+ if (message != null) { |
+ _json["message"] = message; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** A time-stamped annotation in the Span. */ |
+class TimeEvent { |
+ /** One or more key:value pairs. */ |
+ Annotation annotation; |
+ /** An event describing an RPC message sent/received on the network. */ |
+ NetworkEvent networkEvent; |
+ /** The timestamp indicating the time the event occurred. */ |
+ core.String time; |
+ |
+ TimeEvent(); |
+ |
+ TimeEvent.fromJson(core.Map _json) { |
+ if (_json.containsKey("annotation")) { |
+ annotation = new Annotation.fromJson(_json["annotation"]); |
+ } |
+ if (_json.containsKey("networkEvent")) { |
+ networkEvent = new NetworkEvent.fromJson(_json["networkEvent"]); |
+ } |
+ if (_json.containsKey("time")) { |
+ time = _json["time"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (annotation != null) { |
+ _json["annotation"] = (annotation).toJson(); |
+ } |
+ if (networkEvent != null) { |
+ _json["networkEvent"] = (networkEvent).toJson(); |
+ } |
+ if (time != null) { |
+ _json["time"] = time; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** |
+ * A trace describes how long it takes for an application to perform some |
+ * operations. It consists of a set of spans, each representing |
+ * an operation and including time information and operation details. |
+ */ |
+class Trace { |
+ /** |
+ * The resource name of Trace in the format |
+ * `projects/PROJECT_ID/traces/TRACE_ID`. `TRACE_ID` is a unique identifier |
+ * for a trace within a project and is a base16-encoded, case-insensitive |
+ * string and is required to be 32 char long. |
+ */ |
+ core.String name; |
+ |
+ Trace(); |
+ |
+ Trace.fromJson(core.Map _json) { |
+ if (_json.containsKey("name")) { |
+ name = _json["name"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (name != null) { |
+ _json["name"] = name; |
+ } |
+ return _json; |
+ } |
+} |