Index: generated/googleapis/lib/cloudtrace/v2.dart |
diff --git a/generated/googleapis/lib/cloudtrace/v2.dart b/generated/googleapis/lib/cloudtrace/v2.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..901b4a03653e1986ee752d0187a2bfc34e3ee0b1 |
--- /dev/null |
+++ b/generated/googleapis/lib/cloudtrace/v2.dart |
@@ -0,0 +1,1321 @@ |
+// This is a generated file (see the discoveryapis_generator project). |
+ |
+library googleapis.cloudtrace.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 cloudtrace/v2'; |
+ |
+/** |
+ * Send and retrieve trace data from Stackdriver Trace. Data is generated and |
+ * available by default for all App Engine applications. Data from other |
+ * applications can be written to Stackdriver Trace for display, reporting, and |
+ * analysis. |
+ */ |
+class CloudtraceApi { |
+ /** 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); |
+ |
+ CloudtraceApi(http.Client client, {core.String rootUrl: "https://cloudtrace.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] - Required. Name of the project where the spans belong. The 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] - Required. The project where the trace data is stored. The format |
+ * is `projects/PROJECT_ID`. |
+ * Value must have pattern "^projects/[^/]+$". |
+ * |
+ * [pageSize] - Optional. The maximum number of results to return from this |
+ * request. |
+ * Non-positive values are ignored. The presence of `next_page_token` in the |
+ * response indicates that more results might be available, even if fewer than |
+ * the maximum number of results is returned by this request. |
+ * |
+ * [orderBy] - Optional. A single field used to sort the returned traces. |
+ * Only the following field names can be used: |
+ * |
+ * * `trace_id`: the trace's ID field |
+ * * `name`: the root span's resource name |
+ * * `duration`: the difference between the root span's start time and end |
+ * time |
+ * * `start`: the start time of the root span |
+ * |
+ * Sorting is in ascending order unless `desc` is appended to the sort field |
+ * name. |
+ * Example: `"name desc"`). |
+ * |
+ * [filter] - Opional. Return only traces that match this |
+ * [trace filter](/trace/docs/trace-filters). Example: |
+ * |
+ * "label:/http/url root:/_ah/background my_label:17" |
+ * |
+ * [endTime] - Optional. Do not return traces whose start time is later than |
+ * this time. |
+ * |
+ * [pageToken] - Optional. If present, then retrieve the next batch of results |
+ * from the |
+ * preceding call to this method. `page_token` must be the value of |
+ * `next_page_token` from the previous response. The values of other method |
+ * parameters should be identical to those in the previous call. |
+ * |
+ * [startTime] - Optional. Do not return traces whose end time is earlier than |
+ * this time. |
+ * |
+ * 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.int pageSize, core.String orderBy, core.String filter, core.String endTime, core.String pageToken, core.String startTime}) { |
+ 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 (pageSize != null) { |
+ _queryParams["pageSize"] = ["${pageSize}"]; |
+ } |
+ if (orderBy != null) { |
+ _queryParams["orderBy"] = [orderBy]; |
+ } |
+ if (filter != null) { |
+ _queryParams["filter"] = [filter]; |
+ } |
+ if (endTime != null) { |
+ _queryParams["endTime"] = [endTime]; |
+ } |
+ if (pageToken != null) { |
+ _queryParams["pageToken"] = [pageToken]; |
+ } |
+ if (startTime != null) { |
+ _queryParams["startTime"] = [startTime]; |
+ } |
+ |
+ _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] - Required: The resource name of the trace containing the spans to |
+ * list. |
+ * The format is `projects/PROJECT_ID/traces/TRACE_ID`. |
+ * Value must have pattern "^projects/[^/]+/traces/[^/]+$". |
+ * |
+ * [pageToken] - Optional. If present, then retrieve the next batch of results |
+ * from the |
+ * preceding call to this method. `page_token` must be the value of |
+ * `next_page_token` from the previous response. The values of other method |
+ * parameters should be identical to those in the previous call. |
+ * |
+ * 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 the span in the following format: |
+ * |
+ * projects/[PROJECT_ID]traces/[TRACE_ID]/spans/SPAN_ID is a unique identifier |
+ * for a trace within a project. |
+ * [SPAN_ID] is a unique identifier for a span within a trace, |
+ * assigned when the span is created. |
+ * 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. */ |
+class Annotation { |
+ /** |
+ * A set of attributes on the annotation. There is a limit of 4 attributes |
+ * per Annotation. |
+ */ |
+ Attributes attributes; |
+ /** |
+ * A user-supplied message describing the event. The maximum length for |
+ * the description is 256 bytes. |
+ */ |
+ TruncatableString description; |
+ |
+ Annotation(); |
+ |
+ Annotation.fromJson(core.Map _json) { |
+ if (_json.containsKey("attributes")) { |
+ attributes = new Attributes.fromJson(_json["attributes"]); |
+ } |
+ if (_json.containsKey("description")) { |
+ description = new TruncatableString.fromJson(_json["description"]); |
+ } |
+ } |
+ |
+ core.Map<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ if (attributes != null) { |
+ _json["attributes"] = (attributes).toJson(); |
+ } |
+ if (description != null) { |
+ _json["description"] = (description).toJson(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** The allowed types for [VALUE] in a `[KEY]:[VALUE]` attribute. */ |
+class AttributeValue { |
+ /** A Boolean value represented by `true` or `false`. */ |
+ core.bool boolValue; |
+ /** A 64-bit signed integer. */ |
+ core.String intValue; |
+ /** A string up to 256 bytes long. */ |
+ TruncatableString 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 = new TruncatableString.fromJson(_json["stringValue"]); |
+ } |
+ } |
+ |
+ core.Map<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ if (boolValue != null) { |
+ _json["boolValue"] = boolValue; |
+ } |
+ if (intValue != null) { |
+ _json["intValue"] = intValue; |
+ } |
+ if (stringValue != null) { |
+ _json["stringValue"] = (stringValue).toJson(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** A set of attributes, each in the format `[KEY]:[VALUE]`. */ |
+class Attributes { |
+ /** |
+ * The set of attributes. Each attribute's key can be up to 128 bytes |
+ * long. The value can be a string up to 256 bytes, an integer, or the |
+ * Boolean values `true` and `false`. For example: |
+ * |
+ * "/instance_id": "my-instance" |
+ * "/http/user_agent": "" |
+ * "/http/request_bytes": 300 |
+ * "abc.com/myattribute": true |
+ */ |
+ core.Map<core.String, AttributeValue> attributeMap; |
+ /** |
+ * The number of attributes that were discarded. Attributes can be discarded |
+ * because their keys are too long or because there are too many attributes. |
+ * If this value is 0 then all attributes are valid. |
+ */ |
+ core.int droppedAttributesCount; |
+ |
+ Attributes(); |
+ |
+ Attributes.fromJson(core.Map _json) { |
+ if (_json.containsKey("attributeMap")) { |
+ attributeMap = commons.mapMap<core.Map<core.String, core.Object>, AttributeValue>(_json["attributeMap"], (core.Map<core.String, core.Object> item) => new AttributeValue.fromJson(item)); |
+ } |
+ if (_json.containsKey("droppedAttributesCount")) { |
+ droppedAttributesCount = _json["droppedAttributesCount"]; |
+ } |
+ } |
+ |
+ core.Map<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ if (attributeMap != null) { |
+ _json["attributeMap"] = commons.mapMap<AttributeValue, core.Map<core.String, core.Object>>(attributeMap, (AttributeValue item) => (item).toJson()); |
+ } |
+ if (droppedAttributesCount != null) { |
+ _json["droppedAttributesCount"] = droppedAttributesCount; |
+ } |
+ 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<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ 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<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ return _json; |
+ } |
+} |
+ |
+/** |
+ * A pointer from the current span to another span in the same trace or in a |
+ * different trace. For example, this can be used in batching operations, |
+ * where a single batch handler processes multiple requests from different |
+ * traces or when the handler receives a request from a different project. |
+ */ |
+class Link { |
+ /** |
+ * A set of attributes on the link. There is a limit of 32 attributes per |
+ * link. |
+ */ |
+ Attributes attributes; |
+ /** `SPAN_ID` identifies a span within a trace. */ |
+ core.String spanId; |
+ /** `TRACE_ID` identifies a trace within a project. */ |
+ 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_LINKED_SPAN" : The linked span is a child of the current span. |
+ * - "PARENT_LINKED_SPAN" : The linked span is a parent of the current span. |
+ */ |
+ core.String type; |
+ |
+ Link(); |
+ |
+ Link.fromJson(core.Map _json) { |
+ if (_json.containsKey("attributes")) { |
+ attributes = new Attributes.fromJson(_json["attributes"]); |
+ } |
+ if (_json.containsKey("spanId")) { |
+ spanId = _json["spanId"]; |
+ } |
+ if (_json.containsKey("traceId")) { |
+ traceId = _json["traceId"]; |
+ } |
+ if (_json.containsKey("type")) { |
+ type = _json["type"]; |
+ } |
+ } |
+ |
+ core.Map<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ if (attributes != null) { |
+ _json["attributes"] = (attributes).toJson(); |
+ } |
+ if (spanId != null) { |
+ _json["spanId"] = spanId; |
+ } |
+ if (traceId != null) { |
+ _json["traceId"] = traceId; |
+ } |
+ if (type != null) { |
+ _json["type"] = type; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** |
+ * A collection of links, which are references from this span to a span |
+ * in the same or different trace. |
+ */ |
+class Links { |
+ /** |
+ * The number of dropped links after the maximum size was enforced. If |
+ * this value is 0, then no links were dropped. |
+ */ |
+ core.int droppedLinksCount; |
+ /** A collection of links. */ |
+ core.List<Link> link; |
+ |
+ Links(); |
+ |
+ Links.fromJson(core.Map _json) { |
+ if (_json.containsKey("droppedLinksCount")) { |
+ droppedLinksCount = _json["droppedLinksCount"]; |
+ } |
+ if (_json.containsKey("link")) { |
+ link = _json["link"].map((value) => new Link.fromJson(value)).toList(); |
+ } |
+ } |
+ |
+ core.Map<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ if (droppedLinksCount != null) { |
+ _json["droppedLinksCount"] = droppedLinksCount; |
+ } |
+ if (link != null) { |
+ _json["link"] = link.map((value) => (value).toJson()).toList(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** The response message for the `ListSpans` method. */ |
+class ListSpansResponse { |
+ /** |
+ * If defined, indicates that there might be 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<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ 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 there might be more results than those appearing in this response, then |
+ * `next_page_token` is included. To get the next set of results, call this |
+ * method again using the value of `next_page_token` as `page_token`. |
+ */ |
+ 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<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ if (nextPageToken != null) { |
+ _json["nextPageToken"] = nextPageToken; |
+ } |
+ if (traces != null) { |
+ _json["traces"] = traces.map((value) => (value).toJson()).toList(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** Binary module. */ |
+class Module { |
+ /** |
+ * A unique identifier for the module, usually a hash of its |
+ * contents (up to 128 bytes). |
+ */ |
+ TruncatableString buildId; |
+ /** |
+ * For example: main binary, kernel modules, and dynamic libraries |
+ * such as libc.so, sharedlib.so (up to 256 bytes). |
+ */ |
+ TruncatableString module; |
+ |
+ Module(); |
+ |
+ Module.fromJson(core.Map _json) { |
+ if (_json.containsKey("buildId")) { |
+ buildId = new TruncatableString.fromJson(_json["buildId"]); |
+ } |
+ if (_json.containsKey("module")) { |
+ module = new TruncatableString.fromJson(_json["module"]); |
+ } |
+ } |
+ |
+ core.Map<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ if (buildId != null) { |
+ _json["buildId"] = (buildId).toJson(); |
+ } |
+ if (module != null) { |
+ _json["module"] = (module).toJson(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** An event describing an RPC message sent or received on the network. */ |
+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; |
+ /** |
+ * 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<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ 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 one or more subspans for |
+ * its sub-operations. A trace can also contain multiple root spans, |
+ * or none at all. Spans do not need to be contiguous—there may be |
+ * gaps or overlaps between spans in a trace. |
+ */ |
+class Span { |
+ /** |
+ * A set of attributes on the span. There is a limit of 32 attributes per |
+ * span. |
+ */ |
+ Attributes attributes; |
+ /** |
+ * An optional number of child spans that were generated while this span |
+ * was active. If set, allows implementation to detect missing child spans. |
+ */ |
+ core.int childSpanCount; |
+ /** |
+ * A description of the span's operation (up to 128 bytes). |
+ * Stackdriver Trace displays the description in the |
+ * {% dynamic print site_values.console_name %}. |
+ * For example, the display name can be a qualified method name or a file name |
+ * and a line number where the operation is called. A best practice is to use |
+ * the same display name within an application and at the same call point. |
+ * This makes it easier to correlate spans in different traces. |
+ */ |
+ TruncatableString displayName; |
+ /** |
+ * The end time of the span. On the client side, this is the time kept by |
+ * the local machine where the span execution ends. On the server side, this |
+ * is the time when the server application handler stops running. |
+ */ |
+ core.String endTime; |
+ /** A maximum of 128 links are allowed per Span. */ |
+ Links links; |
+ /** |
+ * The resource name of the span in the following format: |
+ * |
+ * projects/[PROJECT_ID]traces/[TRACE_ID]/spans/SPAN_ID is a unique identifier |
+ * for a trace within a project. |
+ * [SPAN_ID] is a unique identifier for a span within a trace, |
+ * assigned when the span is created. |
+ */ |
+ core.String name; |
+ /** |
+ * The [SPAN_ID] of this span's parent span. If this is a root span, |
+ * then this field must be empty. |
+ */ |
+ core.String parentSpanId; |
+ /** |
+ * A highly recommended but not required flag that identifies when a trace |
+ * crosses a process boundary. True when the parent_span belongs to the |
+ * same process as the current span. |
+ */ |
+ core.bool sameProcessAsParentSpan; |
+ /** The [SPAN_ID] portion of the span's resource name. */ |
+ core.String spanId; |
+ /** Stack trace captured at the start of the span. */ |
+ StackTrace stackTrace; |
+ /** |
+ * The start time of the span. On the client side, this is the time kept by |
+ * the local machine where the span execution starts. On the server side, this |
+ * is the time when the server's application handler starts running. |
+ */ |
+ core.String startTime; |
+ /** An optional final status for this span. */ |
+ Status status; |
+ /** |
+ * The included time events. There can be up to 32 annotations and 128 network |
+ * events per span. |
+ */ |
+ TimeEvents timeEvents; |
+ |
+ Span(); |
+ |
+ Span.fromJson(core.Map _json) { |
+ if (_json.containsKey("attributes")) { |
+ attributes = new Attributes.fromJson(_json["attributes"]); |
+ } |
+ if (_json.containsKey("childSpanCount")) { |
+ childSpanCount = _json["childSpanCount"]; |
+ } |
+ if (_json.containsKey("displayName")) { |
+ displayName = new TruncatableString.fromJson(_json["displayName"]); |
+ } |
+ if (_json.containsKey("endTime")) { |
+ endTime = _json["endTime"]; |
+ } |
+ if (_json.containsKey("links")) { |
+ links = new Links.fromJson(_json["links"]); |
+ } |
+ if (_json.containsKey("name")) { |
+ name = _json["name"]; |
+ } |
+ if (_json.containsKey("parentSpanId")) { |
+ parentSpanId = _json["parentSpanId"]; |
+ } |
+ if (_json.containsKey("sameProcessAsParentSpan")) { |
+ sameProcessAsParentSpan = _json["sameProcessAsParentSpan"]; |
+ } |
+ 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 = new TimeEvents.fromJson(_json["timeEvents"]); |
+ } |
+ } |
+ |
+ core.Map<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ if (attributes != null) { |
+ _json["attributes"] = (attributes).toJson(); |
+ } |
+ if (childSpanCount != null) { |
+ _json["childSpanCount"] = childSpanCount; |
+ } |
+ if (displayName != null) { |
+ _json["displayName"] = (displayName).toJson(); |
+ } |
+ if (endTime != null) { |
+ _json["endTime"] = endTime; |
+ } |
+ if (links != null) { |
+ _json["links"] = (links).toJson(); |
+ } |
+ if (name != null) { |
+ _json["name"] = name; |
+ } |
+ if (parentSpanId != null) { |
+ _json["parentSpanId"] = parentSpanId; |
+ } |
+ if (sameProcessAsParentSpan != null) { |
+ _json["sameProcessAsParentSpan"] = sameProcessAsParentSpan; |
+ } |
+ 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).toJson(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** Represents a single stack frame in a stack trace. */ |
+class StackFrame { |
+ /** |
+ * The column number where the function call appears, if available. |
+ * This is important in JavaScript because of its anonymous functions. |
+ */ |
+ core.String columnNumber; |
+ /** |
+ * The name of the source file where the function call appears (up to 256 |
+ * bytes). |
+ */ |
+ TruncatableString fileName; |
+ /** |
+ * The fully-qualified name that uniquely identifies the function or |
+ * method that is active in this frame (up to 1024 bytes). |
+ */ |
+ TruncatableString functionName; |
+ /** The line number in `file_name` where the function call appears. */ |
+ core.String lineNumber; |
+ /** The binary module from where the code was loaded. */ |
+ Module loadModule; |
+ /** |
+ * An un-mangled function name, if `function_name` is |
+ * [mangled](http://www.avabodh.com/cxxin/namemangling.html). The name can |
+ * be fully-qualified (up to 1024 bytes). |
+ */ |
+ TruncatableString originalFunctionName; |
+ /** The version of the deployed source code (up to 128 bytes). */ |
+ TruncatableString sourceVersion; |
+ |
+ StackFrame(); |
+ |
+ StackFrame.fromJson(core.Map _json) { |
+ if (_json.containsKey("columnNumber")) { |
+ columnNumber = _json["columnNumber"]; |
+ } |
+ if (_json.containsKey("fileName")) { |
+ fileName = new TruncatableString.fromJson(_json["fileName"]); |
+ } |
+ if (_json.containsKey("functionName")) { |
+ functionName = new TruncatableString.fromJson(_json["functionName"]); |
+ } |
+ if (_json.containsKey("lineNumber")) { |
+ lineNumber = _json["lineNumber"]; |
+ } |
+ if (_json.containsKey("loadModule")) { |
+ loadModule = new Module.fromJson(_json["loadModule"]); |
+ } |
+ if (_json.containsKey("originalFunctionName")) { |
+ originalFunctionName = new TruncatableString.fromJson(_json["originalFunctionName"]); |
+ } |
+ if (_json.containsKey("sourceVersion")) { |
+ sourceVersion = new TruncatableString.fromJson(_json["sourceVersion"]); |
+ } |
+ } |
+ |
+ core.Map<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ if (columnNumber != null) { |
+ _json["columnNumber"] = columnNumber; |
+ } |
+ if (fileName != null) { |
+ _json["fileName"] = (fileName).toJson(); |
+ } |
+ if (functionName != null) { |
+ _json["functionName"] = (functionName).toJson(); |
+ } |
+ if (lineNumber != null) { |
+ _json["lineNumber"] = lineNumber; |
+ } |
+ if (loadModule != null) { |
+ _json["loadModule"] = (loadModule).toJson(); |
+ } |
+ if (originalFunctionName != null) { |
+ _json["originalFunctionName"] = (originalFunctionName).toJson(); |
+ } |
+ if (sourceVersion != null) { |
+ _json["sourceVersion"] = (sourceVersion).toJson(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** A collection of stack frames, which can be truncated. */ |
+class StackFrames { |
+ /** |
+ * The number of stack frames that were dropped because there |
+ * were too many stack frames. |
+ * If this value is 0, then no stack frames were dropped. |
+ */ |
+ core.int droppedFramesCount; |
+ /** Stack frames in this call stack. */ |
+ core.List<StackFrame> frame; |
+ |
+ StackFrames(); |
+ |
+ StackFrames.fromJson(core.Map _json) { |
+ if (_json.containsKey("droppedFramesCount")) { |
+ droppedFramesCount = _json["droppedFramesCount"]; |
+ } |
+ if (_json.containsKey("frame")) { |
+ frame = _json["frame"].map((value) => new StackFrame.fromJson(value)).toList(); |
+ } |
+ } |
+ |
+ core.Map<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ if (droppedFramesCount != null) { |
+ _json["droppedFramesCount"] = droppedFramesCount; |
+ } |
+ if (frame != null) { |
+ _json["frame"] = frame.map((value) => (value).toJson()).toList(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** A call stack appearing in a trace. */ |
+class StackTrace { |
+ /** Stack frames in this stack trace. A maximum of 128 frames are allowed. */ |
+ StackFrames stackFrames; |
+ /** |
+ * 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 occurrence 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("stackFrames")) { |
+ stackFrames = new StackFrames.fromJson(_json["stackFrames"]); |
+ } |
+ if (_json.containsKey("stackTraceHashId")) { |
+ stackTraceHashId = _json["stackTraceHashId"]; |
+ } |
+ } |
+ |
+ core.Map<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ if (stackFrames != null) { |
+ _json["stackFrames"] = (stackFrames).toJson(); |
+ } |
+ 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` that 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. |
+ * |
+ * - 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<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ if (code != null) { |
+ _json["code"] = code; |
+ } |
+ if (details != null) { |
+ _json["details"] = details; |
+ } |
+ if (message != null) { |
+ _json["message"] = message; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** A time-stamped annotation or network event 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<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ if (annotation != null) { |
+ _json["annotation"] = (annotation).toJson(); |
+ } |
+ if (networkEvent != null) { |
+ _json["networkEvent"] = (networkEvent).toJson(); |
+ } |
+ if (time != null) { |
+ _json["time"] = time; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** |
+ * 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. |
+ */ |
+class TimeEvents { |
+ /** |
+ * The number of dropped annotations in all the included time events. |
+ * If the value is 0, then no annotations were dropped. |
+ */ |
+ core.int droppedAnnotationsCount; |
+ /** |
+ * The number of dropped network events in all the included time events. |
+ * If the value is 0, then no network events were dropped. |
+ */ |
+ core.int droppedNetworkEventsCount; |
+ /** A collection of `TimeEvent`s. */ |
+ core.List<TimeEvent> timeEvent; |
+ |
+ TimeEvents(); |
+ |
+ TimeEvents.fromJson(core.Map _json) { |
+ if (_json.containsKey("droppedAnnotationsCount")) { |
+ droppedAnnotationsCount = _json["droppedAnnotationsCount"]; |
+ } |
+ if (_json.containsKey("droppedNetworkEventsCount")) { |
+ droppedNetworkEventsCount = _json["droppedNetworkEventsCount"]; |
+ } |
+ if (_json.containsKey("timeEvent")) { |
+ timeEvent = _json["timeEvent"].map((value) => new TimeEvent.fromJson(value)).toList(); |
+ } |
+ } |
+ |
+ core.Map<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ if (droppedAnnotationsCount != null) { |
+ _json["droppedAnnotationsCount"] = droppedAnnotationsCount; |
+ } |
+ if (droppedNetworkEventsCount != null) { |
+ _json["droppedNetworkEventsCount"] = droppedNetworkEventsCount; |
+ } |
+ if (timeEvent != null) { |
+ _json["timeEvent"] = timeEvent.map((value) => (value).toJson()).toList(); |
+ } |
+ 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 the trace in the following format: |
+ * |
+ * projects/[PROJECT_ID]/traces/TRACE_ID is a unique identifier for a trace |
+ * within a project. |
+ * The ID is assigned when the trace is created. |
+ */ |
+ core.String name; |
+ |
+ Trace(); |
+ |
+ Trace.fromJson(core.Map _json) { |
+ if (_json.containsKey("name")) { |
+ name = _json["name"]; |
+ } |
+ } |
+ |
+ core.Map<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ if (name != null) { |
+ _json["name"] = name; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+/** Represents a string that might be shortened to a specified length. */ |
+class TruncatableString { |
+ /** |
+ * The number of bytes removed from the original string. If this |
+ * value is 0, then the string was not shortened. |
+ */ |
+ core.int truncatedByteCount; |
+ /** |
+ * The shortened string. For example, if the original string was 500 |
+ * bytes long and the limit of the string was 128 bytes, then this |
+ * value contains the first 128 bytes of the 500-byte string. Note that |
+ * truncation always happens on the character boundary, to ensure that |
+ * truncated string is still valid UTF8. In case of multi-byte characters, |
+ * size of truncated string can be less than truncation limit. |
+ */ |
+ core.String value; |
+ |
+ TruncatableString(); |
+ |
+ TruncatableString.fromJson(core.Map _json) { |
+ if (_json.containsKey("truncatedByteCount")) { |
+ truncatedByteCount = _json["truncatedByteCount"]; |
+ } |
+ if (_json.containsKey("value")) { |
+ value = _json["value"]; |
+ } |
+ } |
+ |
+ core.Map<core.String, core.Object> toJson() { |
+ final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>(); |
+ if (truncatedByteCount != null) { |
+ _json["truncatedByteCount"] = truncatedByteCount; |
+ } |
+ if (value != null) { |
+ _json["value"] = value; |
+ } |
+ return _json; |
+ } |
+} |