| 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;
|
| + }
|
| +}
|
|
|