| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 // This is a generated file (see the discoveryapis_generator project). |  | 
| 2 |  | 
| 3 library googleapis.tracing.v2; |  | 
| 4 |  | 
| 5 import 'dart:core' as core; |  | 
| 6 import 'dart:async' as async; |  | 
| 7 import 'dart:convert' as convert; |  | 
| 8 |  | 
| 9 import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; |  | 
| 10 import 'package:http/http.dart' as http; |  | 
| 11 |  | 
| 12 export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' show |  | 
| 13     ApiRequestError, DetailedApiRequestError; |  | 
| 14 |  | 
| 15 const core.String USER_AGENT = 'dart-api-client tracing/v2'; |  | 
| 16 |  | 
| 17 /** Send and retrieve trace data from Google Stackdriver Trace. */ |  | 
| 18 class TracingApi { |  | 
| 19   /** View and manage your data across Google Cloud Platform services */ |  | 
| 20   static const CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platf
      orm"; |  | 
| 21 |  | 
| 22   /** Write Trace data for a project or application */ |  | 
| 23   static const TraceAppendScope = "https://www.googleapis.com/auth/trace.append"
      ; |  | 
| 24 |  | 
| 25   /** Read Trace data for a project or application */ |  | 
| 26   static const TraceReadonlyScope = "https://www.googleapis.com/auth/trace.reado
      nly"; |  | 
| 27 |  | 
| 28 |  | 
| 29   final commons.ApiRequester _requester; |  | 
| 30 |  | 
| 31   ProjectsResourceApi get projects => new ProjectsResourceApi(_requester); |  | 
| 32 |  | 
| 33   TracingApi(http.Client client, {core.String rootUrl: "https://tracing.googleap
      is.com/", core.String servicePath: ""}) : |  | 
| 34       _requester = new commons.ApiRequester(client, rootUrl, servicePath, USER_A
      GENT); |  | 
| 35 } |  | 
| 36 |  | 
| 37 |  | 
| 38 class ProjectsResourceApi { |  | 
| 39   final commons.ApiRequester _requester; |  | 
| 40 |  | 
| 41   ProjectsTracesResourceApi get traces => new ProjectsTracesResourceApi(_request
      er); |  | 
| 42 |  | 
| 43   ProjectsResourceApi(commons.ApiRequester client) : |  | 
| 44       _requester = client; |  | 
| 45 } |  | 
| 46 |  | 
| 47 |  | 
| 48 class ProjectsTracesResourceApi { |  | 
| 49   final commons.ApiRequester _requester; |  | 
| 50 |  | 
| 51   ProjectsTracesSpansResourceApi get spans => new ProjectsTracesSpansResourceApi
      (_requester); |  | 
| 52 |  | 
| 53   ProjectsTracesResourceApi(commons.ApiRequester client) : |  | 
| 54       _requester = client; |  | 
| 55 |  | 
| 56   /** |  | 
| 57    * Sends new spans to Stackdriver Trace or updates existing traces. If the |  | 
| 58    * name of a trace that you send matches that of an existing trace, new spans |  | 
| 59    * are added to the existing trace. Attempt to update existing spans results |  | 
| 60    * undefined behavior. If the name does not match, a new trace is created |  | 
| 61    * with given set of spans. |  | 
| 62    * |  | 
| 63    * [request] - The metadata request object. |  | 
| 64    * |  | 
| 65    * Request parameters: |  | 
| 66    * |  | 
| 67    * [name] - Name of the project where the spans belong to. Format is |  | 
| 68    * `projects/PROJECT_ID`. |  | 
| 69    * Value must have pattern "^projects/[^/]+$". |  | 
| 70    * |  | 
| 71    * Completes with a [Empty]. |  | 
| 72    * |  | 
| 73    * Completes with a [commons.ApiRequestError] if the API endpoint returned an |  | 
| 74    * error. |  | 
| 75    * |  | 
| 76    * If the used [http.Client] completes with an error when making a REST call, |  | 
| 77    * this method will complete with the same error. |  | 
| 78    */ |  | 
| 79   async.Future<Empty> batchWrite(BatchWriteSpansRequest request, core.String nam
      e) { |  | 
| 80     var _url = null; |  | 
| 81     var _queryParams = new core.Map(); |  | 
| 82     var _uploadMedia = null; |  | 
| 83     var _uploadOptions = null; |  | 
| 84     var _downloadOptions = commons.DownloadOptions.Metadata; |  | 
| 85     var _body = null; |  | 
| 86 |  | 
| 87     if (request != null) { |  | 
| 88       _body = convert.JSON.encode((request).toJson()); |  | 
| 89     } |  | 
| 90     if (name == null) { |  | 
| 91       throw new core.ArgumentError("Parameter name is required."); |  | 
| 92     } |  | 
| 93 |  | 
| 94     _url = 'v2/' + commons.Escaper.ecapeVariableReserved('$name') + '/traces:bat
      chWrite'; |  | 
| 95 |  | 
| 96     var _response = _requester.request(_url, |  | 
| 97                                        "POST", |  | 
| 98                                        body: _body, |  | 
| 99                                        queryParams: _queryParams, |  | 
| 100                                        uploadOptions: _uploadOptions, |  | 
| 101                                        uploadMedia: _uploadMedia, |  | 
| 102                                        downloadOptions: _downloadOptions); |  | 
| 103     return _response.then((data) => new Empty.fromJson(data)); |  | 
| 104   } |  | 
| 105 |  | 
| 106   /** |  | 
| 107    * Returns of a list of traces that match the specified filter conditions. |  | 
| 108    * |  | 
| 109    * Request parameters: |  | 
| 110    * |  | 
| 111    * [parent] - ID of the Cloud project where the trace data is stored which is |  | 
| 112    * `projects/PROJECT_ID`. |  | 
| 113    * Value must have pattern "^projects/[^/]+$". |  | 
| 114    * |  | 
| 115    * [orderBy] - Field used to sort the returned traces. Optional. |  | 
| 116    * Can be one of the following: |  | 
| 117    * |  | 
| 118    * *   `trace_id` |  | 
| 119    * *   `name` (`name` field of root span in the trace) |  | 
| 120    * *   `duration` (difference between `end_time` and `start_time` fields of |  | 
| 121    *      the root span) |  | 
| 122    * *   `start` (`start_time` field of the root span) |  | 
| 123    * |  | 
| 124    * Descending order can be specified by appending `desc` to the sort field |  | 
| 125    * (for example, `name desc`). |  | 
| 126    * |  | 
| 127    * Only one sort field is permitted. |  | 
| 128    * |  | 
| 129    * [filter] - An optional filter for the request. |  | 
| 130    * Example: |  | 
| 131    * `version_label_key:a some_label:some_label_key` |  | 
| 132    * returns traces from version `a` and has `some_label` with `some_label_key`. |  | 
| 133    * |  | 
| 134    * [endTime] - End of the time interval (inclusive) during which the trace |  | 
| 135    * data was |  | 
| 136    * collected from the application. |  | 
| 137    * |  | 
| 138    * [pageToken] - Token identifying the page of results to return. If provided, |  | 
| 139    * use the |  | 
| 140    * value of the `next_page_token` field from a previous request. Optional. |  | 
| 141    * |  | 
| 142    * [startTime] - Start of the time interval (inclusive) during which the trace |  | 
| 143    * data was |  | 
| 144    * collected from the application. |  | 
| 145    * |  | 
| 146    * [pageSize] - Maximum number of traces to return. If not specified or <= 0, |  | 
| 147    * the |  | 
| 148    * implementation selects a reasonable value. The implementation may |  | 
| 149    * return fewer traces than the requested page size. Optional. |  | 
| 150    * |  | 
| 151    * Completes with a [ListTracesResponse]. |  | 
| 152    * |  | 
| 153    * Completes with a [commons.ApiRequestError] if the API endpoint returned an |  | 
| 154    * error. |  | 
| 155    * |  | 
| 156    * If the used [http.Client] completes with an error when making a REST call, |  | 
| 157    * this method will complete with the same error. |  | 
| 158    */ |  | 
| 159   async.Future<ListTracesResponse> list(core.String parent, {core.String orderBy
      , core.String filter, core.String endTime, core.String pageToken, core.String st
      artTime, core.int pageSize}) { |  | 
| 160     var _url = null; |  | 
| 161     var _queryParams = new core.Map(); |  | 
| 162     var _uploadMedia = null; |  | 
| 163     var _uploadOptions = null; |  | 
| 164     var _downloadOptions = commons.DownloadOptions.Metadata; |  | 
| 165     var _body = null; |  | 
| 166 |  | 
| 167     if (parent == null) { |  | 
| 168       throw new core.ArgumentError("Parameter parent is required."); |  | 
| 169     } |  | 
| 170     if (orderBy != null) { |  | 
| 171       _queryParams["orderBy"] = [orderBy]; |  | 
| 172     } |  | 
| 173     if (filter != null) { |  | 
| 174       _queryParams["filter"] = [filter]; |  | 
| 175     } |  | 
| 176     if (endTime != null) { |  | 
| 177       _queryParams["endTime"] = [endTime]; |  | 
| 178     } |  | 
| 179     if (pageToken != null) { |  | 
| 180       _queryParams["pageToken"] = [pageToken]; |  | 
| 181     } |  | 
| 182     if (startTime != null) { |  | 
| 183       _queryParams["startTime"] = [startTime]; |  | 
| 184     } |  | 
| 185     if (pageSize != null) { |  | 
| 186       _queryParams["pageSize"] = ["${pageSize}"]; |  | 
| 187     } |  | 
| 188 |  | 
| 189     _url = 'v2/' + commons.Escaper.ecapeVariableReserved('$parent') + '/traces'; |  | 
| 190 |  | 
| 191     var _response = _requester.request(_url, |  | 
| 192                                        "GET", |  | 
| 193                                        body: _body, |  | 
| 194                                        queryParams: _queryParams, |  | 
| 195                                        uploadOptions: _uploadOptions, |  | 
| 196                                        uploadMedia: _uploadMedia, |  | 
| 197                                        downloadOptions: _downloadOptions); |  | 
| 198     return _response.then((data) => new ListTracesResponse.fromJson(data)); |  | 
| 199   } |  | 
| 200 |  | 
| 201   /** |  | 
| 202    * Returns a list of spans within a trace. |  | 
| 203    * |  | 
| 204    * Request parameters: |  | 
| 205    * |  | 
| 206    * [parent] - ID of the trace for which to list child spans. Format is |  | 
| 207    * `projects/PROJECT_ID/traces/TRACE_ID`. |  | 
| 208    * Value must have pattern "^projects/[^/]+/traces/[^/]+$". |  | 
| 209    * |  | 
| 210    * [pageToken] - Token identifying the page of results to return. If provided, |  | 
| 211    * use the |  | 
| 212    * value of the `nextPageToken` field from a previous request. Optional. |  | 
| 213    * |  | 
| 214    * Completes with a [ListSpansResponse]. |  | 
| 215    * |  | 
| 216    * Completes with a [commons.ApiRequestError] if the API endpoint returned an |  | 
| 217    * error. |  | 
| 218    * |  | 
| 219    * If the used [http.Client] completes with an error when making a REST call, |  | 
| 220    * this method will complete with the same error. |  | 
| 221    */ |  | 
| 222   async.Future<ListSpansResponse> listSpans(core.String parent, {core.String pag
      eToken}) { |  | 
| 223     var _url = null; |  | 
| 224     var _queryParams = new core.Map(); |  | 
| 225     var _uploadMedia = null; |  | 
| 226     var _uploadOptions = null; |  | 
| 227     var _downloadOptions = commons.DownloadOptions.Metadata; |  | 
| 228     var _body = null; |  | 
| 229 |  | 
| 230     if (parent == null) { |  | 
| 231       throw new core.ArgumentError("Parameter parent is required."); |  | 
| 232     } |  | 
| 233     if (pageToken != null) { |  | 
| 234       _queryParams["pageToken"] = [pageToken]; |  | 
| 235     } |  | 
| 236 |  | 
| 237     _url = 'v2/' + commons.Escaper.ecapeVariableReserved('$parent') + ':listSpan
      s'; |  | 
| 238 |  | 
| 239     var _response = _requester.request(_url, |  | 
| 240                                        "GET", |  | 
| 241                                        body: _body, |  | 
| 242                                        queryParams: _queryParams, |  | 
| 243                                        uploadOptions: _uploadOptions, |  | 
| 244                                        uploadMedia: _uploadMedia, |  | 
| 245                                        downloadOptions: _downloadOptions); |  | 
| 246     return _response.then((data) => new ListSpansResponse.fromJson(data)); |  | 
| 247   } |  | 
| 248 |  | 
| 249 } |  | 
| 250 |  | 
| 251 |  | 
| 252 class ProjectsTracesSpansResourceApi { |  | 
| 253   final commons.ApiRequester _requester; |  | 
| 254 |  | 
| 255   ProjectsTracesSpansResourceApi(commons.ApiRequester client) : |  | 
| 256       _requester = client; |  | 
| 257 |  | 
| 258   /** |  | 
| 259    * Creates a new Span. |  | 
| 260    * |  | 
| 261    * [request] - The metadata request object. |  | 
| 262    * |  | 
| 263    * Request parameters: |  | 
| 264    * |  | 
| 265    * [name] - The resource name of Span in the format |  | 
| 266    * `projects/PROJECT_ID/traces/TRACE_ID/spans/SPAN_ID`. |  | 
| 267    * `TRACE_ID` is a unique identifier for a trace within a project and is a |  | 
| 268    * base16-encoded, case-insensitive string and is required to be 32 char long. |  | 
| 269    * `SPAN_ID` is a unique identifier for a span within a trace. It is a |  | 
| 270    * base 16-encoded, case-insensitive string of a 8-bytes array and is required |  | 
| 271    * to be 16 char long. |  | 
| 272    * Value must have pattern "^projects/[^/]+/traces/[^/]+/spans/[^/]+$". |  | 
| 273    * |  | 
| 274    * Completes with a [Span]. |  | 
| 275    * |  | 
| 276    * Completes with a [commons.ApiRequestError] if the API endpoint returned an |  | 
| 277    * error. |  | 
| 278    * |  | 
| 279    * If the used [http.Client] completes with an error when making a REST call, |  | 
| 280    * this method will complete with the same error. |  | 
| 281    */ |  | 
| 282   async.Future<Span> create(Span request, core.String name) { |  | 
| 283     var _url = null; |  | 
| 284     var _queryParams = new core.Map(); |  | 
| 285     var _uploadMedia = null; |  | 
| 286     var _uploadOptions = null; |  | 
| 287     var _downloadOptions = commons.DownloadOptions.Metadata; |  | 
| 288     var _body = null; |  | 
| 289 |  | 
| 290     if (request != null) { |  | 
| 291       _body = convert.JSON.encode((request).toJson()); |  | 
| 292     } |  | 
| 293     if (name == null) { |  | 
| 294       throw new core.ArgumentError("Parameter name is required."); |  | 
| 295     } |  | 
| 296 |  | 
| 297     _url = 'v2/' + commons.Escaper.ecapeVariableReserved('$name'); |  | 
| 298 |  | 
| 299     var _response = _requester.request(_url, |  | 
| 300                                        "PUT", |  | 
| 301                                        body: _body, |  | 
| 302                                        queryParams: _queryParams, |  | 
| 303                                        uploadOptions: _uploadOptions, |  | 
| 304                                        uploadMedia: _uploadMedia, |  | 
| 305                                        downloadOptions: _downloadOptions); |  | 
| 306     return _response.then((data) => new Span.fromJson(data)); |  | 
| 307   } |  | 
| 308 |  | 
| 309 } |  | 
| 310 |  | 
| 311 |  | 
| 312 |  | 
| 313 /** |  | 
| 314  * Text annotation with a set of attributes. A maximum of 32 annotations are |  | 
| 315  * allowed per Span. |  | 
| 316  */ |  | 
| 317 class Annotation { |  | 
| 318   /** |  | 
| 319    * A set of attributes on the annotation. A maximum of 4 attributes are |  | 
| 320    * allowed per Annotation. |  | 
| 321    */ |  | 
| 322   Attributes attributes; |  | 
| 323   /** |  | 
| 324    * A user-supplied message describing the event. The maximum length for |  | 
| 325    * the description is 256 bytes. |  | 
| 326    */ |  | 
| 327   TruncatableString description; |  | 
| 328 |  | 
| 329   Annotation(); |  | 
| 330 |  | 
| 331   Annotation.fromJson(core.Map _json) { |  | 
| 332     if (_json.containsKey("attributes")) { |  | 
| 333       attributes = new Attributes.fromJson(_json["attributes"]); |  | 
| 334     } |  | 
| 335     if (_json.containsKey("description")) { |  | 
| 336       description = new TruncatableString.fromJson(_json["description"]); |  | 
| 337     } |  | 
| 338   } |  | 
| 339 |  | 
| 340   core.Map<core.String, core.Object> toJson() { |  | 
| 341     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 342     if (attributes != null) { |  | 
| 343       _json["attributes"] = (attributes).toJson(); |  | 
| 344     } |  | 
| 345     if (description != null) { |  | 
| 346       _json["description"] = (description).toJson(); |  | 
| 347     } |  | 
| 348     return _json; |  | 
| 349   } |  | 
| 350 } |  | 
| 351 |  | 
| 352 /** The allowed types for the value side of an attribute key:value pair. */ |  | 
| 353 class AttributeValue { |  | 
| 354   /** A boolean value. */ |  | 
| 355   core.bool boolValue; |  | 
| 356   /** An integer value. */ |  | 
| 357   core.String intValue; |  | 
| 358   /** A string value (up to 256 bytes). */ |  | 
| 359   TruncatableString stringValue; |  | 
| 360 |  | 
| 361   AttributeValue(); |  | 
| 362 |  | 
| 363   AttributeValue.fromJson(core.Map _json) { |  | 
| 364     if (_json.containsKey("boolValue")) { |  | 
| 365       boolValue = _json["boolValue"]; |  | 
| 366     } |  | 
| 367     if (_json.containsKey("intValue")) { |  | 
| 368       intValue = _json["intValue"]; |  | 
| 369     } |  | 
| 370     if (_json.containsKey("stringValue")) { |  | 
| 371       stringValue = new TruncatableString.fromJson(_json["stringValue"]); |  | 
| 372     } |  | 
| 373   } |  | 
| 374 |  | 
| 375   core.Map<core.String, core.Object> toJson() { |  | 
| 376     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 377     if (boolValue != null) { |  | 
| 378       _json["boolValue"] = boolValue; |  | 
| 379     } |  | 
| 380     if (intValue != null) { |  | 
| 381       _json["intValue"] = intValue; |  | 
| 382     } |  | 
| 383     if (stringValue != null) { |  | 
| 384       _json["stringValue"] = (stringValue).toJson(); |  | 
| 385     } |  | 
| 386     return _json; |  | 
| 387   } |  | 
| 388 } |  | 
| 389 |  | 
| 390 /** Attributes of a span with a key:value format. */ |  | 
| 391 class Attributes { |  | 
| 392   /** |  | 
| 393    * The maximum key length is 128 bytes (attributes are dropped if the |  | 
| 394    * key size is larger than the maximum allowed). The value can be a string |  | 
| 395    * (up to 256 bytes), integer, or boolean (true/false). Some common pair |  | 
| 396    * examples: |  | 
| 397    * |  | 
| 398    *     "/instance_id": "my-instance" |  | 
| 399    *     "/zone": "us-central1-a" |  | 
| 400    *     "/grpc/peer_address": "ip:port" (dns, etc.) |  | 
| 401    *     "/grpc/deadline": "Duration" |  | 
| 402    *     "/http/user_agent" |  | 
| 403    *     "/http/request_bytes": 300 |  | 
| 404    *     "/http/response_bytes": 1200 |  | 
| 405    *     "/http/url": google.com/apis |  | 
| 406    *     "abc.com/myattribute": true |  | 
| 407    */ |  | 
| 408   core.Map<core.String, AttributeValue> attributeMap; |  | 
| 409   /** |  | 
| 410    * The number of dropped attributes after the maximum size was enforced. If |  | 
| 411    * 0 then no attributes were dropped. |  | 
| 412    */ |  | 
| 413   core.int droppedAttributesCount; |  | 
| 414 |  | 
| 415   Attributes(); |  | 
| 416 |  | 
| 417   Attributes.fromJson(core.Map _json) { |  | 
| 418     if (_json.containsKey("attributeMap")) { |  | 
| 419       attributeMap = commons.mapMap<core.Map<core.String, core.Object>, Attribut
      eValue>(_json["attributeMap"], (core.Map<core.String, core.Object> item) => new 
      AttributeValue.fromJson(item)); |  | 
| 420     } |  | 
| 421     if (_json.containsKey("droppedAttributesCount")) { |  | 
| 422       droppedAttributesCount = _json["droppedAttributesCount"]; |  | 
| 423     } |  | 
| 424   } |  | 
| 425 |  | 
| 426   core.Map<core.String, core.Object> toJson() { |  | 
| 427     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 428     if (attributeMap != null) { |  | 
| 429       _json["attributeMap"] = commons.mapMap<AttributeValue, core.Map<core.Strin
      g, core.Object>>(attributeMap, (AttributeValue item) => (item).toJson()); |  | 
| 430     } |  | 
| 431     if (droppedAttributesCount != null) { |  | 
| 432       _json["droppedAttributesCount"] = droppedAttributesCount; |  | 
| 433     } |  | 
| 434     return _json; |  | 
| 435   } |  | 
| 436 } |  | 
| 437 |  | 
| 438 /** The request message for the `BatchWriteSpans` method. */ |  | 
| 439 class BatchWriteSpansRequest { |  | 
| 440   /** A collection of spans. */ |  | 
| 441   core.List<Span> spans; |  | 
| 442 |  | 
| 443   BatchWriteSpansRequest(); |  | 
| 444 |  | 
| 445   BatchWriteSpansRequest.fromJson(core.Map _json) { |  | 
| 446     if (_json.containsKey("spans")) { |  | 
| 447       spans = _json["spans"].map((value) => new Span.fromJson(value)).toList(); |  | 
| 448     } |  | 
| 449   } |  | 
| 450 |  | 
| 451   core.Map<core.String, core.Object> toJson() { |  | 
| 452     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 453     if (spans != null) { |  | 
| 454       _json["spans"] = spans.map((value) => (value).toJson()).toList(); |  | 
| 455     } |  | 
| 456     return _json; |  | 
| 457   } |  | 
| 458 } |  | 
| 459 |  | 
| 460 /** |  | 
| 461  * A generic empty message that you can re-use to avoid defining duplicated |  | 
| 462  * empty messages in your APIs. A typical example is to use it as the request |  | 
| 463  * or the response type of an API method. For instance: |  | 
| 464  * |  | 
| 465  *     service Foo { |  | 
| 466  *       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); |  | 
| 467  *     } |  | 
| 468  * |  | 
| 469  * The JSON representation for `Empty` is empty JSON object `{}`. |  | 
| 470  */ |  | 
| 471 class Empty { |  | 
| 472 |  | 
| 473   Empty(); |  | 
| 474 |  | 
| 475   Empty.fromJson(core.Map _json) { |  | 
| 476   } |  | 
| 477 |  | 
| 478   core.Map<core.String, core.Object> toJson() { |  | 
| 479     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 480     return _json; |  | 
| 481   } |  | 
| 482 } |  | 
| 483 |  | 
| 484 /** |  | 
| 485  * A pointer from this span to another span in a different `Trace` within |  | 
| 486  * the same service project or within a different service project. Used |  | 
| 487  * (for example) in batching operations, where a single batch handler |  | 
| 488  * processes multiple requests from different traces or when receives a |  | 
| 489  * request from a different service project. |  | 
| 490  */ |  | 
| 491 class Link { |  | 
| 492   /** |  | 
| 493    * `SPAN_ID` is a unique identifier for a span within a trace. It is a |  | 
| 494    * base16-encoded, case-insensitive string of a 8-bytes array and is |  | 
| 495    * required to be 16 char long. |  | 
| 496    */ |  | 
| 497   core.String spanId; |  | 
| 498   /** |  | 
| 499    * `TRACE_ID` is a unique identifier for a trace within a project. It is |  | 
| 500    * a base16-encoded, case-insensitive string of a 16-bytes array and is |  | 
| 501    * required to be 32 char long. |  | 
| 502    */ |  | 
| 503   core.String traceId; |  | 
| 504   /** |  | 
| 505    * The relationship of the current span relative to the linked span. |  | 
| 506    * Possible string values are: |  | 
| 507    * - "TYPE_UNSPECIFIED" : The relationship of the two spans is unknown. |  | 
| 508    * - "CHILD" : The current span is a child of the linked span. |  | 
| 509    * - "PARENT" : The current span is the parent of the linked span. |  | 
| 510    */ |  | 
| 511   core.String type; |  | 
| 512 |  | 
| 513   Link(); |  | 
| 514 |  | 
| 515   Link.fromJson(core.Map _json) { |  | 
| 516     if (_json.containsKey("spanId")) { |  | 
| 517       spanId = _json["spanId"]; |  | 
| 518     } |  | 
| 519     if (_json.containsKey("traceId")) { |  | 
| 520       traceId = _json["traceId"]; |  | 
| 521     } |  | 
| 522     if (_json.containsKey("type")) { |  | 
| 523       type = _json["type"]; |  | 
| 524     } |  | 
| 525   } |  | 
| 526 |  | 
| 527   core.Map<core.String, core.Object> toJson() { |  | 
| 528     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 529     if (spanId != null) { |  | 
| 530       _json["spanId"] = spanId; |  | 
| 531     } |  | 
| 532     if (traceId != null) { |  | 
| 533       _json["traceId"] = traceId; |  | 
| 534     } |  | 
| 535     if (type != null) { |  | 
| 536       _json["type"] = type; |  | 
| 537     } |  | 
| 538     return _json; |  | 
| 539   } |  | 
| 540 } |  | 
| 541 |  | 
| 542 /** |  | 
| 543  * A collection of links, which are references from this span to a span |  | 
| 544  * in the same or different trace. |  | 
| 545  */ |  | 
| 546 class Links { |  | 
| 547   /** |  | 
| 548    * The number of dropped links after the maximum size was enforced. If |  | 
| 549    * 0 then no links were dropped. |  | 
| 550    */ |  | 
| 551   core.int droppedLinksCount; |  | 
| 552   /** A collection of links. */ |  | 
| 553   core.List<Link> link; |  | 
| 554 |  | 
| 555   Links(); |  | 
| 556 |  | 
| 557   Links.fromJson(core.Map _json) { |  | 
| 558     if (_json.containsKey("droppedLinksCount")) { |  | 
| 559       droppedLinksCount = _json["droppedLinksCount"]; |  | 
| 560     } |  | 
| 561     if (_json.containsKey("link")) { |  | 
| 562       link = _json["link"].map((value) => new Link.fromJson(value)).toList(); |  | 
| 563     } |  | 
| 564   } |  | 
| 565 |  | 
| 566   core.Map<core.String, core.Object> toJson() { |  | 
| 567     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 568     if (droppedLinksCount != null) { |  | 
| 569       _json["droppedLinksCount"] = droppedLinksCount; |  | 
| 570     } |  | 
| 571     if (link != null) { |  | 
| 572       _json["link"] = link.map((value) => (value).toJson()).toList(); |  | 
| 573     } |  | 
| 574     return _json; |  | 
| 575   } |  | 
| 576 } |  | 
| 577 |  | 
| 578 /** The response message for the `ListSpans` method. */ |  | 
| 579 class ListSpansResponse { |  | 
| 580   /** |  | 
| 581    * If defined, indicates that there are more spans that match the request. |  | 
| 582    * Pass this as the value of `pageToken` in a subsequent request to retrieve |  | 
| 583    * additional spans. |  | 
| 584    */ |  | 
| 585   core.String nextPageToken; |  | 
| 586   /** The requested spans if there are any in the specified trace. */ |  | 
| 587   core.List<Span> spans; |  | 
| 588 |  | 
| 589   ListSpansResponse(); |  | 
| 590 |  | 
| 591   ListSpansResponse.fromJson(core.Map _json) { |  | 
| 592     if (_json.containsKey("nextPageToken")) { |  | 
| 593       nextPageToken = _json["nextPageToken"]; |  | 
| 594     } |  | 
| 595     if (_json.containsKey("spans")) { |  | 
| 596       spans = _json["spans"].map((value) => new Span.fromJson(value)).toList(); |  | 
| 597     } |  | 
| 598   } |  | 
| 599 |  | 
| 600   core.Map<core.String, core.Object> toJson() { |  | 
| 601     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 602     if (nextPageToken != null) { |  | 
| 603       _json["nextPageToken"] = nextPageToken; |  | 
| 604     } |  | 
| 605     if (spans != null) { |  | 
| 606       _json["spans"] = spans.map((value) => (value).toJson()).toList(); |  | 
| 607     } |  | 
| 608     return _json; |  | 
| 609   } |  | 
| 610 } |  | 
| 611 |  | 
| 612 /** The response message for the `ListTraces` method. */ |  | 
| 613 class ListTracesResponse { |  | 
| 614   /** |  | 
| 615    * If defined, indicates that there are more traces that match the request |  | 
| 616    * and that this value should be passed to the next request to continue |  | 
| 617    * retrieving additional traces. |  | 
| 618    */ |  | 
| 619   core.String nextPageToken; |  | 
| 620   /** List of trace records returned. */ |  | 
| 621   core.List<Trace> traces; |  | 
| 622 |  | 
| 623   ListTracesResponse(); |  | 
| 624 |  | 
| 625   ListTracesResponse.fromJson(core.Map _json) { |  | 
| 626     if (_json.containsKey("nextPageToken")) { |  | 
| 627       nextPageToken = _json["nextPageToken"]; |  | 
| 628     } |  | 
| 629     if (_json.containsKey("traces")) { |  | 
| 630       traces = _json["traces"].map((value) => new Trace.fromJson(value)).toList(
      ); |  | 
| 631     } |  | 
| 632   } |  | 
| 633 |  | 
| 634   core.Map<core.String, core.Object> toJson() { |  | 
| 635     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 636     if (nextPageToken != null) { |  | 
| 637       _json["nextPageToken"] = nextPageToken; |  | 
| 638     } |  | 
| 639     if (traces != null) { |  | 
| 640       _json["traces"] = traces.map((value) => (value).toJson()).toList(); |  | 
| 641     } |  | 
| 642     return _json; |  | 
| 643   } |  | 
| 644 } |  | 
| 645 |  | 
| 646 /** Binary module. */ |  | 
| 647 class Module { |  | 
| 648   /** |  | 
| 649    * Build_id is a unique identifier for the module, usually a hash of its |  | 
| 650    * contents (up to 128 characters). |  | 
| 651    */ |  | 
| 652   TruncatableString buildId; |  | 
| 653   /** |  | 
| 654    * E.g. main binary, kernel modules, and dynamic libraries |  | 
| 655    * such as libc.so, sharedlib.so (up to 256 characters). |  | 
| 656    */ |  | 
| 657   TruncatableString module; |  | 
| 658 |  | 
| 659   Module(); |  | 
| 660 |  | 
| 661   Module.fromJson(core.Map _json) { |  | 
| 662     if (_json.containsKey("buildId")) { |  | 
| 663       buildId = new TruncatableString.fromJson(_json["buildId"]); |  | 
| 664     } |  | 
| 665     if (_json.containsKey("module")) { |  | 
| 666       module = new TruncatableString.fromJson(_json["module"]); |  | 
| 667     } |  | 
| 668   } |  | 
| 669 |  | 
| 670   core.Map<core.String, core.Object> toJson() { |  | 
| 671     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 672     if (buildId != null) { |  | 
| 673       _json["buildId"] = (buildId).toJson(); |  | 
| 674     } |  | 
| 675     if (module != null) { |  | 
| 676       _json["module"] = (module).toJson(); |  | 
| 677     } |  | 
| 678     return _json; |  | 
| 679   } |  | 
| 680 } |  | 
| 681 |  | 
| 682 /** |  | 
| 683  * An event describing an RPC message sent/received on the network. A |  | 
| 684  * maximum of 128 network events are allowed per Span. |  | 
| 685  */ |  | 
| 686 class NetworkEvent { |  | 
| 687   /** An identifier for the message, which must be unique in this span. */ |  | 
| 688   core.String messageId; |  | 
| 689   /** The number of bytes sent or received. */ |  | 
| 690   core.String messageSize; |  | 
| 691   /** |  | 
| 692    * If available, this is the kernel time: |  | 
| 693    * |  | 
| 694    * *  For sent messages, this is the time at which the first bit was sent. |  | 
| 695    * *  For received messages, this is the time at which the last bit was |  | 
| 696    *    received. |  | 
| 697    */ |  | 
| 698   core.String time; |  | 
| 699   /** |  | 
| 700    * Type of NetworkEvent. Indicates whether the RPC message was sent or |  | 
| 701    * received. |  | 
| 702    * Possible string values are: |  | 
| 703    * - "TYPE_UNSPECIFIED" : Unknown event type. |  | 
| 704    * - "SENT" : Indicates a sent RPC message. |  | 
| 705    * - "RECV" : Indicates a received RPC message. |  | 
| 706    */ |  | 
| 707   core.String type; |  | 
| 708 |  | 
| 709   NetworkEvent(); |  | 
| 710 |  | 
| 711   NetworkEvent.fromJson(core.Map _json) { |  | 
| 712     if (_json.containsKey("messageId")) { |  | 
| 713       messageId = _json["messageId"]; |  | 
| 714     } |  | 
| 715     if (_json.containsKey("messageSize")) { |  | 
| 716       messageSize = _json["messageSize"]; |  | 
| 717     } |  | 
| 718     if (_json.containsKey("time")) { |  | 
| 719       time = _json["time"]; |  | 
| 720     } |  | 
| 721     if (_json.containsKey("type")) { |  | 
| 722       type = _json["type"]; |  | 
| 723     } |  | 
| 724   } |  | 
| 725 |  | 
| 726   core.Map<core.String, core.Object> toJson() { |  | 
| 727     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 728     if (messageId != null) { |  | 
| 729       _json["messageId"] = messageId; |  | 
| 730     } |  | 
| 731     if (messageSize != null) { |  | 
| 732       _json["messageSize"] = messageSize; |  | 
| 733     } |  | 
| 734     if (time != null) { |  | 
| 735       _json["time"] = time; |  | 
| 736     } |  | 
| 737     if (type != null) { |  | 
| 738       _json["type"] = type; |  | 
| 739     } |  | 
| 740     return _json; |  | 
| 741   } |  | 
| 742 } |  | 
| 743 |  | 
| 744 /** |  | 
| 745  * A span represents a single operation within a trace. Spans can be nested |  | 
| 746  * to form a trace tree. Often, a trace contains a root span that |  | 
| 747  * describes the end-to-end latency and, optionally, one or more subspans for |  | 
| 748  * its sub-operations. (A trace could alternatively contain multiple root spans, |  | 
| 749  * or none at all.) Spans do not need to be contiguous. There may be gaps |  | 
| 750  * and/or overlaps between spans in a trace. |  | 
| 751  */ |  | 
| 752 class Span { |  | 
| 753   /** |  | 
| 754    * A set of attributes on the span. A maximum of 32 attributes are allowed per |  | 
| 755    * Span. |  | 
| 756    */ |  | 
| 757   Attributes attributes; |  | 
| 758   /** |  | 
| 759    * Description of the operation in the span. It is sanitized and displayed in |  | 
| 760    * the Stackdriver Trace tool in the |  | 
| 761    * {% dynamic print site_values.console_name %}. |  | 
| 762    * The display_name may be a method name or some other per-call site |  | 
| 763    * name. For the same executable and the same call point, a best practice is |  | 
| 764    * to use a consistent operation name, which makes it easier to correlate |  | 
| 765    * cross-trace spans. |  | 
| 766    * The maximum length for the display_name is 128 bytes. |  | 
| 767    */ |  | 
| 768   TruncatableString displayName; |  | 
| 769   /** |  | 
| 770    * End time of the span. |  | 
| 771    * On the client side, this is the local machine clock time at which the span |  | 
| 772    * execution was ended; on the server |  | 
| 773    * side, this is the time at which the server application handler stopped |  | 
| 774    * running. |  | 
| 775    */ |  | 
| 776   core.String endTime; |  | 
| 777   /** A maximum of 128 links are allowed per Span. */ |  | 
| 778   Links links; |  | 
| 779   /** |  | 
| 780    * The resource name of Span in the format |  | 
| 781    * `projects/PROJECT_ID/traces/TRACE_ID/spans/SPAN_ID`. |  | 
| 782    * `TRACE_ID` is a unique identifier for a trace within a project and is a |  | 
| 783    * base16-encoded, case-insensitive string and is required to be 32 char long. |  | 
| 784    * `SPAN_ID` is a unique identifier for a span within a trace. It is a |  | 
| 785    * base 16-encoded, case-insensitive string of a 8-bytes array and is required |  | 
| 786    * to be 16 char long. |  | 
| 787    */ |  | 
| 788   core.String name; |  | 
| 789   /** |  | 
| 790    * ID of parent span which is a base 16-encoded, case-insensitive string of |  | 
| 791    * a 8-bytes array and is required to be 16 char long. If this is a root span, |  | 
| 792    * the value must be empty. |  | 
| 793    */ |  | 
| 794   core.String parentSpanId; |  | 
| 795   /** |  | 
| 796    * Unique identifier for a span within a trace. It is a base 16-encoded, |  | 
| 797    * case-insensitive string of a 8-bytes array and is required. |  | 
| 798    */ |  | 
| 799   core.String spanId; |  | 
| 800   /** Stack trace captured at the start of the span. */ |  | 
| 801   StackTrace stackTrace; |  | 
| 802   /** |  | 
| 803    * Start time of the span. |  | 
| 804    * On the client side, this is the local machine clock time at which the span |  | 
| 805    * execution was started; on the server |  | 
| 806    * side, this is the time at which the server application handler started |  | 
| 807    * running. |  | 
| 808    */ |  | 
| 809   core.String startTime; |  | 
| 810   /** An optional final status for this span. */ |  | 
| 811   Status status; |  | 
| 812   /** |  | 
| 813    * A maximum of 32 annotations and 128 network events are allowed per Span. |  | 
| 814    */ |  | 
| 815   TimeEvents timeEvents; |  | 
| 816 |  | 
| 817   Span(); |  | 
| 818 |  | 
| 819   Span.fromJson(core.Map _json) { |  | 
| 820     if (_json.containsKey("attributes")) { |  | 
| 821       attributes = new Attributes.fromJson(_json["attributes"]); |  | 
| 822     } |  | 
| 823     if (_json.containsKey("displayName")) { |  | 
| 824       displayName = new TruncatableString.fromJson(_json["displayName"]); |  | 
| 825     } |  | 
| 826     if (_json.containsKey("endTime")) { |  | 
| 827       endTime = _json["endTime"]; |  | 
| 828     } |  | 
| 829     if (_json.containsKey("links")) { |  | 
| 830       links = new Links.fromJson(_json["links"]); |  | 
| 831     } |  | 
| 832     if (_json.containsKey("name")) { |  | 
| 833       name = _json["name"]; |  | 
| 834     } |  | 
| 835     if (_json.containsKey("parentSpanId")) { |  | 
| 836       parentSpanId = _json["parentSpanId"]; |  | 
| 837     } |  | 
| 838     if (_json.containsKey("spanId")) { |  | 
| 839       spanId = _json["spanId"]; |  | 
| 840     } |  | 
| 841     if (_json.containsKey("stackTrace")) { |  | 
| 842       stackTrace = new StackTrace.fromJson(_json["stackTrace"]); |  | 
| 843     } |  | 
| 844     if (_json.containsKey("startTime")) { |  | 
| 845       startTime = _json["startTime"]; |  | 
| 846     } |  | 
| 847     if (_json.containsKey("status")) { |  | 
| 848       status = new Status.fromJson(_json["status"]); |  | 
| 849     } |  | 
| 850     if (_json.containsKey("timeEvents")) { |  | 
| 851       timeEvents = new TimeEvents.fromJson(_json["timeEvents"]); |  | 
| 852     } |  | 
| 853   } |  | 
| 854 |  | 
| 855   core.Map<core.String, core.Object> toJson() { |  | 
| 856     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 857     if (attributes != null) { |  | 
| 858       _json["attributes"] = (attributes).toJson(); |  | 
| 859     } |  | 
| 860     if (displayName != null) { |  | 
| 861       _json["displayName"] = (displayName).toJson(); |  | 
| 862     } |  | 
| 863     if (endTime != null) { |  | 
| 864       _json["endTime"] = endTime; |  | 
| 865     } |  | 
| 866     if (links != null) { |  | 
| 867       _json["links"] = (links).toJson(); |  | 
| 868     } |  | 
| 869     if (name != null) { |  | 
| 870       _json["name"] = name; |  | 
| 871     } |  | 
| 872     if (parentSpanId != null) { |  | 
| 873       _json["parentSpanId"] = parentSpanId; |  | 
| 874     } |  | 
| 875     if (spanId != null) { |  | 
| 876       _json["spanId"] = spanId; |  | 
| 877     } |  | 
| 878     if (stackTrace != null) { |  | 
| 879       _json["stackTrace"] = (stackTrace).toJson(); |  | 
| 880     } |  | 
| 881     if (startTime != null) { |  | 
| 882       _json["startTime"] = startTime; |  | 
| 883     } |  | 
| 884     if (status != null) { |  | 
| 885       _json["status"] = (status).toJson(); |  | 
| 886     } |  | 
| 887     if (timeEvents != null) { |  | 
| 888       _json["timeEvents"] = (timeEvents).toJson(); |  | 
| 889     } |  | 
| 890     return _json; |  | 
| 891   } |  | 
| 892 } |  | 
| 893 |  | 
| 894 /** Represents a single stack frame in a stack trace. */ |  | 
| 895 class StackFrame { |  | 
| 896   /** |  | 
| 897    * Column number is important in JavaScript (anonymous functions). |  | 
| 898    * May not be available in some languages. |  | 
| 899    */ |  | 
| 900   core.String columnNumber; |  | 
| 901   /** The filename of the file containing this frame (up to 256 characters). */ |  | 
| 902   TruncatableString fileName; |  | 
| 903   /** |  | 
| 904    * The fully-qualified name that uniquely identifies this function or |  | 
| 905    * method (up to 1024 characters). |  | 
| 906    */ |  | 
| 907   TruncatableString functionName; |  | 
| 908   /** Line number of the frame. */ |  | 
| 909   core.String lineNumber; |  | 
| 910   /** Binary module the code is loaded from. */ |  | 
| 911   Module loadModule; |  | 
| 912   /** |  | 
| 913    * Used when the function name is |  | 
| 914    * [mangled](http://www.avabodh.com/cxxin/namemangling.html). May be |  | 
| 915    * fully-qualified (up to 1024 characters). |  | 
| 916    */ |  | 
| 917   TruncatableString originalFunctionName; |  | 
| 918   /** The version of the deployed source code (up to 128 characters). */ |  | 
| 919   TruncatableString sourceVersion; |  | 
| 920 |  | 
| 921   StackFrame(); |  | 
| 922 |  | 
| 923   StackFrame.fromJson(core.Map _json) { |  | 
| 924     if (_json.containsKey("columnNumber")) { |  | 
| 925       columnNumber = _json["columnNumber"]; |  | 
| 926     } |  | 
| 927     if (_json.containsKey("fileName")) { |  | 
| 928       fileName = new TruncatableString.fromJson(_json["fileName"]); |  | 
| 929     } |  | 
| 930     if (_json.containsKey("functionName")) { |  | 
| 931       functionName = new TruncatableString.fromJson(_json["functionName"]); |  | 
| 932     } |  | 
| 933     if (_json.containsKey("lineNumber")) { |  | 
| 934       lineNumber = _json["lineNumber"]; |  | 
| 935     } |  | 
| 936     if (_json.containsKey("loadModule")) { |  | 
| 937       loadModule = new Module.fromJson(_json["loadModule"]); |  | 
| 938     } |  | 
| 939     if (_json.containsKey("originalFunctionName")) { |  | 
| 940       originalFunctionName = new TruncatableString.fromJson(_json["originalFunct
      ionName"]); |  | 
| 941     } |  | 
| 942     if (_json.containsKey("sourceVersion")) { |  | 
| 943       sourceVersion = new TruncatableString.fromJson(_json["sourceVersion"]); |  | 
| 944     } |  | 
| 945   } |  | 
| 946 |  | 
| 947   core.Map<core.String, core.Object> toJson() { |  | 
| 948     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 949     if (columnNumber != null) { |  | 
| 950       _json["columnNumber"] = columnNumber; |  | 
| 951     } |  | 
| 952     if (fileName != null) { |  | 
| 953       _json["fileName"] = (fileName).toJson(); |  | 
| 954     } |  | 
| 955     if (functionName != null) { |  | 
| 956       _json["functionName"] = (functionName).toJson(); |  | 
| 957     } |  | 
| 958     if (lineNumber != null) { |  | 
| 959       _json["lineNumber"] = lineNumber; |  | 
| 960     } |  | 
| 961     if (loadModule != null) { |  | 
| 962       _json["loadModule"] = (loadModule).toJson(); |  | 
| 963     } |  | 
| 964     if (originalFunctionName != null) { |  | 
| 965       _json["originalFunctionName"] = (originalFunctionName).toJson(); |  | 
| 966     } |  | 
| 967     if (sourceVersion != null) { |  | 
| 968       _json["sourceVersion"] = (sourceVersion).toJson(); |  | 
| 969     } |  | 
| 970     return _json; |  | 
| 971   } |  | 
| 972 } |  | 
| 973 |  | 
| 974 /** Represents collection of StackFrames that can be truncated. */ |  | 
| 975 class StackFrames { |  | 
| 976   /** |  | 
| 977    * The number of dropped stack frames after the maximum size was enforced. |  | 
| 978    * If 0 then no frames were dropped. |  | 
| 979    */ |  | 
| 980   core.int droppedFramesCount; |  | 
| 981   /** Stack frames in this stack trace. */ |  | 
| 982   core.List<StackFrame> frame; |  | 
| 983 |  | 
| 984   StackFrames(); |  | 
| 985 |  | 
| 986   StackFrames.fromJson(core.Map _json) { |  | 
| 987     if (_json.containsKey("droppedFramesCount")) { |  | 
| 988       droppedFramesCount = _json["droppedFramesCount"]; |  | 
| 989     } |  | 
| 990     if (_json.containsKey("frame")) { |  | 
| 991       frame = _json["frame"].map((value) => new StackFrame.fromJson(value)).toLi
      st(); |  | 
| 992     } |  | 
| 993   } |  | 
| 994 |  | 
| 995   core.Map<core.String, core.Object> toJson() { |  | 
| 996     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 997     if (droppedFramesCount != null) { |  | 
| 998       _json["droppedFramesCount"] = droppedFramesCount; |  | 
| 999     } |  | 
| 1000     if (frame != null) { |  | 
| 1001       _json["frame"] = frame.map((value) => (value).toJson()).toList(); |  | 
| 1002     } |  | 
| 1003     return _json; |  | 
| 1004   } |  | 
| 1005 } |  | 
| 1006 |  | 
| 1007 /** StackTrace collected in a trace. */ |  | 
| 1008 class StackTrace { |  | 
| 1009   /** Stack frames in this stack trace. A maximum of 128 frames are allowed. */ |  | 
| 1010   StackFrames stackFrames; |  | 
| 1011   /** |  | 
| 1012    * The hash ID is used to conserve network bandwidth for duplicate |  | 
| 1013    * stack traces within a single trace. |  | 
| 1014    * |  | 
| 1015    * Often multiple spans will have identical stack traces. |  | 
| 1016    * The first occurrence of a stack trace should contain both the |  | 
| 1017    * `stackFrame` content and a value in `stackTraceHashId`. |  | 
| 1018    * |  | 
| 1019    * Subsequent spans within the same request can refer |  | 
| 1020    * to that stack trace by only setting `stackTraceHashId`. |  | 
| 1021    */ |  | 
| 1022   core.String stackTraceHashId; |  | 
| 1023 |  | 
| 1024   StackTrace(); |  | 
| 1025 |  | 
| 1026   StackTrace.fromJson(core.Map _json) { |  | 
| 1027     if (_json.containsKey("stackFrames")) { |  | 
| 1028       stackFrames = new StackFrames.fromJson(_json["stackFrames"]); |  | 
| 1029     } |  | 
| 1030     if (_json.containsKey("stackTraceHashId")) { |  | 
| 1031       stackTraceHashId = _json["stackTraceHashId"]; |  | 
| 1032     } |  | 
| 1033   } |  | 
| 1034 |  | 
| 1035   core.Map<core.String, core.Object> toJson() { |  | 
| 1036     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 1037     if (stackFrames != null) { |  | 
| 1038       _json["stackFrames"] = (stackFrames).toJson(); |  | 
| 1039     } |  | 
| 1040     if (stackTraceHashId != null) { |  | 
| 1041       _json["stackTraceHashId"] = stackTraceHashId; |  | 
| 1042     } |  | 
| 1043     return _json; |  | 
| 1044   } |  | 
| 1045 } |  | 
| 1046 |  | 
| 1047 /** |  | 
| 1048  * The `Status` type defines a logical error model that is suitable for |  | 
| 1049  * different |  | 
| 1050  * programming environments, including REST APIs and RPC APIs. It is used by |  | 
| 1051  * [gRPC](https://github.com/grpc). The error model is designed to be: |  | 
| 1052  * |  | 
| 1053  * - Simple to use and understand for most users |  | 
| 1054  * - Flexible enough to meet unexpected needs |  | 
| 1055  * |  | 
| 1056  * # Overview |  | 
| 1057  * |  | 
| 1058  * The `Status` message contains three pieces of data: error code, error |  | 
| 1059  * message, |  | 
| 1060  * and error details. The error code should be an enum value of |  | 
| 1061  * google.rpc.Code, but it may accept additional error codes if needed.  The |  | 
| 1062  * error message should be a developer-facing English message that helps |  | 
| 1063  * developers *understand* and *resolve* the error. If a localized user-facing |  | 
| 1064  * error message is needed, put the localized message in the error details or |  | 
| 1065  * localize it in the client. The optional error details may contain arbitrary |  | 
| 1066  * information about the error. There is a predefined set of error detail types |  | 
| 1067  * in the package `google.rpc` that can be used for common error conditions. |  | 
| 1068  * |  | 
| 1069  * # Language mapping |  | 
| 1070  * |  | 
| 1071  * The `Status` message is the logical representation of the error model, but it |  | 
| 1072  * is not necessarily the actual wire format. When the `Status` message is |  | 
| 1073  * exposed in different client libraries and different wire protocols, it can be |  | 
| 1074  * mapped differently. For example, it will likely be mapped to some exceptions |  | 
| 1075  * in Java, but more likely mapped to some error codes in C. |  | 
| 1076  * |  | 
| 1077  * # Other uses |  | 
| 1078  * |  | 
| 1079  * The error model and the `Status` message can be used in a variety of |  | 
| 1080  * environments, either with or without APIs, to provide a |  | 
| 1081  * consistent developer experience across different environments. |  | 
| 1082  * |  | 
| 1083  * Example uses of this error model include: |  | 
| 1084  * |  | 
| 1085  * - Partial errors. If a service needs to return partial errors to the client, |  | 
| 1086  *     it may embed the `Status` in the normal response to indicate the partial |  | 
| 1087  *     errors. |  | 
| 1088  * |  | 
| 1089  * - Workflow errors. A typical workflow has multiple steps. Each step may |  | 
| 1090  *     have a `Status` message for error reporting. |  | 
| 1091  * |  | 
| 1092  * - Batch operations. If a client uses batch request and batch response, the |  | 
| 1093  *     `Status` message should be used directly inside batch response, one for |  | 
| 1094  *     each error sub-response. |  | 
| 1095  * |  | 
| 1096  * - Asynchronous operations. If an API call embeds asynchronous operation |  | 
| 1097  *     results in its response, the status of those operations should be |  | 
| 1098  *     represented directly using the `Status` message. |  | 
| 1099  * |  | 
| 1100  * - Logging. If some API errors are stored in logs, the message `Status` could |  | 
| 1101  * be used directly after any stripping needed for security/privacy reasons. |  | 
| 1102  */ |  | 
| 1103 class Status { |  | 
| 1104   /** The status code, which should be an enum value of google.rpc.Code. */ |  | 
| 1105   core.int code; |  | 
| 1106   /** |  | 
| 1107    * A list of messages that carry the error details.  There will be a |  | 
| 1108    * common set of message types for APIs to use. |  | 
| 1109    * |  | 
| 1110    * The values for Object must be JSON objects. It can consist of `num`, |  | 
| 1111    * `String`, `bool` and `null` as well as `Map` and `List` values. |  | 
| 1112    */ |  | 
| 1113   core.List<core.Map<core.String, core.Object>> details; |  | 
| 1114   /** |  | 
| 1115    * A developer-facing error message, which should be in English. Any |  | 
| 1116    * user-facing error message should be localized and sent in the |  | 
| 1117    * google.rpc.Status.details field, or localized by the client. |  | 
| 1118    */ |  | 
| 1119   core.String message; |  | 
| 1120 |  | 
| 1121   Status(); |  | 
| 1122 |  | 
| 1123   Status.fromJson(core.Map _json) { |  | 
| 1124     if (_json.containsKey("code")) { |  | 
| 1125       code = _json["code"]; |  | 
| 1126     } |  | 
| 1127     if (_json.containsKey("details")) { |  | 
| 1128       details = _json["details"]; |  | 
| 1129     } |  | 
| 1130     if (_json.containsKey("message")) { |  | 
| 1131       message = _json["message"]; |  | 
| 1132     } |  | 
| 1133   } |  | 
| 1134 |  | 
| 1135   core.Map<core.String, core.Object> toJson() { |  | 
| 1136     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 1137     if (code != null) { |  | 
| 1138       _json["code"] = code; |  | 
| 1139     } |  | 
| 1140     if (details != null) { |  | 
| 1141       _json["details"] = details; |  | 
| 1142     } |  | 
| 1143     if (message != null) { |  | 
| 1144       _json["message"] = message; |  | 
| 1145     } |  | 
| 1146     return _json; |  | 
| 1147   } |  | 
| 1148 } |  | 
| 1149 |  | 
| 1150 /** A time-stamped annotation in the Span. */ |  | 
| 1151 class TimeEvent { |  | 
| 1152   /** One or more key:value pairs. */ |  | 
| 1153   Annotation annotation; |  | 
| 1154   /** An event describing an RPC message sent/received on the network. */ |  | 
| 1155   NetworkEvent networkEvent; |  | 
| 1156   /** The timestamp indicating the time the event occurred. */ |  | 
| 1157   core.String time; |  | 
| 1158 |  | 
| 1159   TimeEvent(); |  | 
| 1160 |  | 
| 1161   TimeEvent.fromJson(core.Map _json) { |  | 
| 1162     if (_json.containsKey("annotation")) { |  | 
| 1163       annotation = new Annotation.fromJson(_json["annotation"]); |  | 
| 1164     } |  | 
| 1165     if (_json.containsKey("networkEvent")) { |  | 
| 1166       networkEvent = new NetworkEvent.fromJson(_json["networkEvent"]); |  | 
| 1167     } |  | 
| 1168     if (_json.containsKey("time")) { |  | 
| 1169       time = _json["time"]; |  | 
| 1170     } |  | 
| 1171   } |  | 
| 1172 |  | 
| 1173   core.Map<core.String, core.Object> toJson() { |  | 
| 1174     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 1175     if (annotation != null) { |  | 
| 1176       _json["annotation"] = (annotation).toJson(); |  | 
| 1177     } |  | 
| 1178     if (networkEvent != null) { |  | 
| 1179       _json["networkEvent"] = (networkEvent).toJson(); |  | 
| 1180     } |  | 
| 1181     if (time != null) { |  | 
| 1182       _json["time"] = time; |  | 
| 1183     } |  | 
| 1184     return _json; |  | 
| 1185   } |  | 
| 1186 } |  | 
| 1187 |  | 
| 1188 /** |  | 
| 1189  * A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation |  | 
| 1190  * on the span, consisting of either user-supplied key:value pairs, or |  | 
| 1191  * details of an RPC message sent/received on the network. |  | 
| 1192  */ |  | 
| 1193 class TimeEvents { |  | 
| 1194   /** |  | 
| 1195    * The number of dropped annotations after the maximum size was enforced. If |  | 
| 1196    * 0 then no annotations were dropped. |  | 
| 1197    */ |  | 
| 1198   core.int droppedAnnotationsCount; |  | 
| 1199   /** |  | 
| 1200    * The number of dropped network events after the maximum size was enforced. |  | 
| 1201    * If 0 then no annotations were dropped. |  | 
| 1202    */ |  | 
| 1203   core.int droppedNetworkEventsCount; |  | 
| 1204   /** A collection of `TimeEvent`s. */ |  | 
| 1205   core.List<TimeEvent> timeEvent; |  | 
| 1206 |  | 
| 1207   TimeEvents(); |  | 
| 1208 |  | 
| 1209   TimeEvents.fromJson(core.Map _json) { |  | 
| 1210     if (_json.containsKey("droppedAnnotationsCount")) { |  | 
| 1211       droppedAnnotationsCount = _json["droppedAnnotationsCount"]; |  | 
| 1212     } |  | 
| 1213     if (_json.containsKey("droppedNetworkEventsCount")) { |  | 
| 1214       droppedNetworkEventsCount = _json["droppedNetworkEventsCount"]; |  | 
| 1215     } |  | 
| 1216     if (_json.containsKey("timeEvent")) { |  | 
| 1217       timeEvent = _json["timeEvent"].map((value) => new TimeEvent.fromJson(value
      )).toList(); |  | 
| 1218     } |  | 
| 1219   } |  | 
| 1220 |  | 
| 1221   core.Map<core.String, core.Object> toJson() { |  | 
| 1222     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 1223     if (droppedAnnotationsCount != null) { |  | 
| 1224       _json["droppedAnnotationsCount"] = droppedAnnotationsCount; |  | 
| 1225     } |  | 
| 1226     if (droppedNetworkEventsCount != null) { |  | 
| 1227       _json["droppedNetworkEventsCount"] = droppedNetworkEventsCount; |  | 
| 1228     } |  | 
| 1229     if (timeEvent != null) { |  | 
| 1230       _json["timeEvent"] = timeEvent.map((value) => (value).toJson()).toList(); |  | 
| 1231     } |  | 
| 1232     return _json; |  | 
| 1233   } |  | 
| 1234 } |  | 
| 1235 |  | 
| 1236 /** |  | 
| 1237  * A trace describes how long it takes for an application to perform some |  | 
| 1238  * operations. It consists of a set of spans, each representing |  | 
| 1239  * an operation and including time information and operation details. |  | 
| 1240  */ |  | 
| 1241 class Trace { |  | 
| 1242   /** |  | 
| 1243    * The resource name of Trace in the format |  | 
| 1244    * `projects/PROJECT_ID/traces/TRACE_ID`. `TRACE_ID` is a unique identifier |  | 
| 1245    * for a trace within a project and is a base16-encoded, case-insensitive |  | 
| 1246    * string and is required to be 32 char long. |  | 
| 1247    */ |  | 
| 1248   core.String name; |  | 
| 1249 |  | 
| 1250   Trace(); |  | 
| 1251 |  | 
| 1252   Trace.fromJson(core.Map _json) { |  | 
| 1253     if (_json.containsKey("name")) { |  | 
| 1254       name = _json["name"]; |  | 
| 1255     } |  | 
| 1256   } |  | 
| 1257 |  | 
| 1258   core.Map<core.String, core.Object> toJson() { |  | 
| 1259     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 1260     if (name != null) { |  | 
| 1261       _json["name"] = name; |  | 
| 1262     } |  | 
| 1263     return _json; |  | 
| 1264   } |  | 
| 1265 } |  | 
| 1266 |  | 
| 1267 /** Represents a string value that might be truncated. */ |  | 
| 1268 class TruncatableString { |  | 
| 1269   /** |  | 
| 1270    * The number of characters truncated from the original string value. If 0 it |  | 
| 1271    * means that the string value was not truncated. |  | 
| 1272    */ |  | 
| 1273   core.int truncatedCharacterCount; |  | 
| 1274   /** |  | 
| 1275    * The truncated string value. E.g. for a string attribute this may have up to |  | 
| 1276    * 256 bytes. |  | 
| 1277    */ |  | 
| 1278   core.String value; |  | 
| 1279 |  | 
| 1280   TruncatableString(); |  | 
| 1281 |  | 
| 1282   TruncatableString.fromJson(core.Map _json) { |  | 
| 1283     if (_json.containsKey("truncatedCharacterCount")) { |  | 
| 1284       truncatedCharacterCount = _json["truncatedCharacterCount"]; |  | 
| 1285     } |  | 
| 1286     if (_json.containsKey("value")) { |  | 
| 1287       value = _json["value"]; |  | 
| 1288     } |  | 
| 1289   } |  | 
| 1290 |  | 
| 1291   core.Map<core.String, core.Object> toJson() { |  | 
| 1292     final core.Map<core.String, core.Object> _json = new core.Map<core.String, c
      ore.Object>(); |  | 
| 1293     if (truncatedCharacterCount != null) { |  | 
| 1294       _json["truncatedCharacterCount"] = truncatedCharacterCount; |  | 
| 1295     } |  | 
| 1296     if (value != null) { |  | 
| 1297       _json["value"] = value; |  | 
| 1298     } |  | 
| 1299     return _json; |  | 
| 1300   } |  | 
| 1301 } |  | 
| OLD | NEW | 
|---|