Regen all docs. (#700)

* Stop recursing if discovery == {}

* Generate docs with 'make docs'.
diff --git a/docs/dyn/cloudtrace_v2.projects.traces.spans.html b/docs/dyn/cloudtrace_v2.projects.traces.spans.html
new file mode 100644
index 0000000..debd270
--- /dev/null
+++ b/docs/dyn/cloudtrace_v2.projects.traces.spans.html
@@ -0,0 +1,715 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudtrace_v2.html">Stackdriver Trace API</a> . <a href="cloudtrace_v2.projects.html">projects</a> . <a href="cloudtrace_v2.projects.traces.html">traces</a> . <a href="cloudtrace_v2.projects.traces.spans.html">spans</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#createSpan">createSpan(name, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new span.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="createSpan">createSpan(name, body, x__xgafv=None)</code>
+  <pre>Creates a new span.
+
+Args:
+  name: string, 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;
+it is a 32-character hexadecimal encoding of a 16-byte array.
+
+[SPAN_ID] is a unique identifier for a span within a trace; it
+is a 16-character hexadecimal encoding of an 8-byte array. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # 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&mdash;there may be
+    # gaps or overlaps between spans in a trace.
+  "status": { # The `Status` type defines a logical error model that is suitable for # An optional final status for this span.
+      # different programming environments, including REST APIs and RPC APIs. It is
+      # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+      # three pieces of data: error code, error message, and error details.
+      #
+      # You can find out more about this error model and how to work with it in the
+      # [API Design Guide](https://cloud.google.com/apis/design/errors).
+    "message": "A String", # 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.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details.  There is a common set of
+        # message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+  },
+  "stackTrace": { # A call stack appearing in a trace. # Stack trace captured at the start of the span.
+    "stackTraceHashId": "A String", # 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`.
+    "stackFrames": { # A collection of stack frames, which can be truncated. # Stack frames in this stack trace. A maximum of 128 frames are allowed.
+      "frame": [ # Stack frames in this call stack.
+        { # Represents a single stack frame in a stack trace.
+          "columnNumber": "A String", # The column number where the function call appears, if available.
+              # This is important in JavaScript because of its anonymous functions.
+          "functionName": { # Represents a string that might be shortened to a specified length. # The fully-qualified name that uniquely identifies the function or
+              # method that is active in this frame (up to 1024 bytes).
+            "value": "A String", # The shortened string. For example, if the original string is 500
+                # bytes long and the limit of the string is 128 bytes, then
+                # `value` contains the first 128 bytes of the 500-byte string.
+                #
+                # Truncation always happens on a UTF8 character boundary. If there
+                # are multi-byte characters in the string, then the length of the
+                # shortened string might be less than the size limit.
+            "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                # value is 0, then the string was not shortened.
+          },
+          "fileName": { # Represents a string that might be shortened to a specified length. # The name of the source file where the function call appears (up to 256
+              # bytes).
+            "value": "A String", # The shortened string. For example, if the original string is 500
+                # bytes long and the limit of the string is 128 bytes, then
+                # `value` contains the first 128 bytes of the 500-byte string.
+                #
+                # Truncation always happens on a UTF8 character boundary. If there
+                # are multi-byte characters in the string, then the length of the
+                # shortened string might be less than the size limit.
+            "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                # value is 0, then the string was not shortened.
+          },
+          "sourceVersion": { # Represents a string that might be shortened to a specified length. # The version of the deployed source code (up to 128 bytes).
+            "value": "A String", # The shortened string. For example, if the original string is 500
+                # bytes long and the limit of the string is 128 bytes, then
+                # `value` contains the first 128 bytes of the 500-byte string.
+                #
+                # Truncation always happens on a UTF8 character boundary. If there
+                # are multi-byte characters in the string, then the length of the
+                # shortened string might be less than the size limit.
+            "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                # value is 0, then the string was not shortened.
+          },
+          "loadModule": { # Binary module. # The binary module from where the code was loaded.
+            "buildId": { # Represents a string that might be shortened to a specified length. # A unique identifier for the module, usually a hash of its
+                # contents (up to 128 bytes).
+              "value": "A String", # The shortened string. For example, if the original string is 500
+                  # bytes long and the limit of the string is 128 bytes, then
+                  # `value` contains the first 128 bytes of the 500-byte string.
+                  #
+                  # Truncation always happens on a UTF8 character boundary. If there
+                  # are multi-byte characters in the string, then the length of the
+                  # shortened string might be less than the size limit.
+              "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                  # value is 0, then the string was not shortened.
+            },
+            "module": { # Represents a string that might be shortened to a specified length. # For example: main binary, kernel modules, and dynamic libraries
+                # such as libc.so, sharedlib.so (up to 256 bytes).
+              "value": "A String", # The shortened string. For example, if the original string is 500
+                  # bytes long and the limit of the string is 128 bytes, then
+                  # `value` contains the first 128 bytes of the 500-byte string.
+                  #
+                  # Truncation always happens on a UTF8 character boundary. If there
+                  # are multi-byte characters in the string, then the length of the
+                  # shortened string might be less than the size limit.
+              "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                  # value is 0, then the string was not shortened.
+            },
+          },
+          "lineNumber": "A String", # The line number in `file_name` where the function call appears.
+          "originalFunctionName": { # Represents a string that might be shortened to a specified length. # 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).
+            "value": "A String", # The shortened string. For example, if the original string is 500
+                # bytes long and the limit of the string is 128 bytes, then
+                # `value` contains the first 128 bytes of the 500-byte string.
+                #
+                # Truncation always happens on a UTF8 character boundary. If there
+                # are multi-byte characters in the string, then the length of the
+                # shortened string might be less than the size limit.
+            "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                # value is 0, then the string was not shortened.
+          },
+        },
+      ],
+      "droppedFramesCount": 42, # 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.
+    },
+  },
+  "displayName": { # Represents a string that might be shortened to a specified length. # A description of the span's operation (up to 128 bytes).
+      # Stackdriver Trace displays the description in the
+      # Google Cloud Platform Console.
+      # 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.
+    "value": "A String", # The shortened string. For example, if the original string is 500
+        # bytes long and the limit of the string is 128 bytes, then
+        # `value` contains the first 128 bytes of the 500-byte string.
+        #
+        # Truncation always happens on a UTF8 character boundary. If there
+        # are multi-byte characters in the string, then the length of the
+        # shortened string might be less than the size limit.
+    "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+        # value is 0, then the string was not shortened.
+  },
+  "name": "A String", # 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;
+      # it is a 32-character hexadecimal encoding of a 16-byte array.
+      # 
+      # [SPAN_ID] is a unique identifier for a span within a trace; it
+      # is a 16-character hexadecimal encoding of an 8-byte array.
+  "links": { # A collection of links, which are references from this span to a span # Links associated with the span. You can have up to 128 links per Span.
+      # in the same or different trace.
+    "droppedLinksCount": 42, # The number of dropped links after the maximum size was enforced. If
+        # this value is 0, then no links were dropped.
+    "link": [ # A collection of links.
+      { # 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.
+        "attributes": { # A set of attributes, each in the format `[KEY]:[VALUE]`. # A set of attributes on the link. You have have up to  32 attributes per
+            # link.
+          "droppedAttributesCount": 42, # 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.
+          "attributeMap": { # 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, a signed 64-bit 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
+            "a_key": { # The allowed types for [VALUE] in a `[KEY]:[VALUE]` attribute.
+              "stringValue": { # Represents a string that might be shortened to a specified length. # A string up to 256 bytes long.
+                "value": "A String", # The shortened string. For example, if the original string is 500
+                    # bytes long and the limit of the string is 128 bytes, then
+                    # `value` contains the first 128 bytes of the 500-byte string.
+                    #
+                    # Truncation always happens on a UTF8 character boundary. If there
+                    # are multi-byte characters in the string, then the length of the
+                    # shortened string might be less than the size limit.
+                "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                    # value is 0, then the string was not shortened.
+              },
+              "boolValue": True or False, # A Boolean value represented by `true` or `false`.
+              "intValue": "A String", # A 64-bit signed integer.
+            },
+          },
+        },
+        "traceId": "A String", # The [TRACE_ID] for a trace within a project.
+        "type": "A String", # The relationship of the current span relative to the linked span.
+        "spanId": "A String", # The [SPAN_ID] for a span within a trace.
+      },
+    ],
+  },
+  "childSpanCount": 42, # An optional number of child spans that were generated while this span
+      # was active. If set, allows implementation to detect missing child spans.
+  "parentSpanId": "A String", # The [SPAN_ID] of this span's parent span. If this is a root span,
+      # then this field must be empty.
+  "startTime": "A String", # 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.
+  "attributes": { # A set of attributes, each in the format `[KEY]:[VALUE]`. # A set of attributes on the span. You can have up to 32 attributes per
+      # span.
+    "droppedAttributesCount": 42, # 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.
+    "attributeMap": { # 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, a signed 64-bit 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
+      "a_key": { # The allowed types for [VALUE] in a `[KEY]:[VALUE]` attribute.
+        "stringValue": { # Represents a string that might be shortened to a specified length. # A string up to 256 bytes long.
+          "value": "A String", # The shortened string. For example, if the original string is 500
+              # bytes long and the limit of the string is 128 bytes, then
+              # `value` contains the first 128 bytes of the 500-byte string.
+              #
+              # Truncation always happens on a UTF8 character boundary. If there
+              # are multi-byte characters in the string, then the length of the
+              # shortened string might be less than the size limit.
+          "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+              # value is 0, then the string was not shortened.
+        },
+        "boolValue": True or False, # A Boolean value represented by `true` or `false`.
+        "intValue": "A String", # A 64-bit signed integer.
+      },
+    },
+  },
+  "spanId": "A String", # The [SPAN_ID] portion of the span's resource name.
+  "timeEvents": { # A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation # A set of time events. You can have up to 32 annotations and 128 message
+      # events per span.
+      # on the span, consisting of either user-supplied key:value pairs, or
+      # details of a message sent/received between Spans.
+    "droppedMessageEventsCount": 42, # The number of dropped message events in all the included time events.
+        # If the value is 0, then no message events were dropped.
+    "timeEvent": [ # A collection of `TimeEvent`s.
+      { # A time-stamped annotation or message event in the Span.
+        "messageEvent": { # An event describing a message sent/received between Spans. # An event describing a message sent/received between Spans.
+          "uncompressedSizeBytes": "A String", # The number of uncompressed bytes sent or received.
+          "type": "A String", # Type of MessageEvent. Indicates whether the message was sent or
+              # received.
+          "id": "A String", # An identifier for the MessageEvent's message that can be used to match
+              # SENT and RECEIVED MessageEvents. It is recommended to be unique within
+              # a Span.
+          "compressedSizeBytes": "A String", # The number of compressed bytes sent or received. If missing assumed to
+              # be the same size as uncompressed.
+        },
+        "annotation": { # Text annotation with a set of attributes. # Text annotation with a set of attributes.
+          "attributes": { # A set of attributes, each in the format `[KEY]:[VALUE]`. # A set of attributes on the annotation. You can have up to 4 attributes
+              # per Annotation.
+            "droppedAttributesCount": 42, # 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.
+            "attributeMap": { # 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, a signed 64-bit 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
+              "a_key": { # The allowed types for [VALUE] in a `[KEY]:[VALUE]` attribute.
+                "stringValue": { # Represents a string that might be shortened to a specified length. # A string up to 256 bytes long.
+                  "value": "A String", # The shortened string. For example, if the original string is 500
+                      # bytes long and the limit of the string is 128 bytes, then
+                      # `value` contains the first 128 bytes of the 500-byte string.
+                      #
+                      # Truncation always happens on a UTF8 character boundary. If there
+                      # are multi-byte characters in the string, then the length of the
+                      # shortened string might be less than the size limit.
+                  "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                      # value is 0, then the string was not shortened.
+                },
+                "boolValue": True or False, # A Boolean value represented by `true` or `false`.
+                "intValue": "A String", # A 64-bit signed integer.
+              },
+            },
+          },
+          "description": { # Represents a string that might be shortened to a specified length. # A user-supplied message describing the event. The maximum length for
+              # the description is 256 bytes.
+            "value": "A String", # The shortened string. For example, if the original string is 500
+                # bytes long and the limit of the string is 128 bytes, then
+                # `value` contains the first 128 bytes of the 500-byte string.
+                #
+                # Truncation always happens on a UTF8 character boundary. If there
+                # are multi-byte characters in the string, then the length of the
+                # shortened string might be less than the size limit.
+            "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                # value is 0, then the string was not shortened.
+          },
+        },
+        "time": "A String", # The timestamp indicating the time the event occurred.
+      },
+    ],
+    "droppedAnnotationsCount": 42, # The number of dropped annotations in all the included time events.
+        # If the value is 0, then no annotations were dropped.
+  },
+  "endTime": "A String", # 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.
+  "sameProcessAsParentSpan": True or False, # (Optional) Set this parameter to indicate whether this span is in
+      # the same process as its parent. If you do not set this parameter,
+      # Stackdriver Trace is unable to take advantage of this helpful
+      # information.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # 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&mdash;there may be
+      # gaps or overlaps between spans in a trace.
+    "status": { # The `Status` type defines a logical error model that is suitable for # An optional final status for this span.
+        # different programming environments, including REST APIs and RPC APIs. It is
+        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+        # three pieces of data: error code, error message, and error details.
+        #
+        # You can find out more about this error model and how to work with it in the
+        # [API Design Guide](https://cloud.google.com/apis/design/errors).
+      "message": "A String", # 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.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There is a common set of
+          # message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "stackTrace": { # A call stack appearing in a trace. # Stack trace captured at the start of the span.
+      "stackTraceHashId": "A String", # 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`.
+      "stackFrames": { # A collection of stack frames, which can be truncated. # Stack frames in this stack trace. A maximum of 128 frames are allowed.
+        "frame": [ # Stack frames in this call stack.
+          { # Represents a single stack frame in a stack trace.
+            "columnNumber": "A String", # The column number where the function call appears, if available.
+                # This is important in JavaScript because of its anonymous functions.
+            "functionName": { # Represents a string that might be shortened to a specified length. # The fully-qualified name that uniquely identifies the function or
+                # method that is active in this frame (up to 1024 bytes).
+              "value": "A String", # The shortened string. For example, if the original string is 500
+                  # bytes long and the limit of the string is 128 bytes, then
+                  # `value` contains the first 128 bytes of the 500-byte string.
+                  #
+                  # Truncation always happens on a UTF8 character boundary. If there
+                  # are multi-byte characters in the string, then the length of the
+                  # shortened string might be less than the size limit.
+              "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                  # value is 0, then the string was not shortened.
+            },
+            "fileName": { # Represents a string that might be shortened to a specified length. # The name of the source file where the function call appears (up to 256
+                # bytes).
+              "value": "A String", # The shortened string. For example, if the original string is 500
+                  # bytes long and the limit of the string is 128 bytes, then
+                  # `value` contains the first 128 bytes of the 500-byte string.
+                  #
+                  # Truncation always happens on a UTF8 character boundary. If there
+                  # are multi-byte characters in the string, then the length of the
+                  # shortened string might be less than the size limit.
+              "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                  # value is 0, then the string was not shortened.
+            },
+            "sourceVersion": { # Represents a string that might be shortened to a specified length. # The version of the deployed source code (up to 128 bytes).
+              "value": "A String", # The shortened string. For example, if the original string is 500
+                  # bytes long and the limit of the string is 128 bytes, then
+                  # `value` contains the first 128 bytes of the 500-byte string.
+                  #
+                  # Truncation always happens on a UTF8 character boundary. If there
+                  # are multi-byte characters in the string, then the length of the
+                  # shortened string might be less than the size limit.
+              "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                  # value is 0, then the string was not shortened.
+            },
+            "loadModule": { # Binary module. # The binary module from where the code was loaded.
+              "buildId": { # Represents a string that might be shortened to a specified length. # A unique identifier for the module, usually a hash of its
+                  # contents (up to 128 bytes).
+                "value": "A String", # The shortened string. For example, if the original string is 500
+                    # bytes long and the limit of the string is 128 bytes, then
+                    # `value` contains the first 128 bytes of the 500-byte string.
+                    #
+                    # Truncation always happens on a UTF8 character boundary. If there
+                    # are multi-byte characters in the string, then the length of the
+                    # shortened string might be less than the size limit.
+                "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                    # value is 0, then the string was not shortened.
+              },
+              "module": { # Represents a string that might be shortened to a specified length. # For example: main binary, kernel modules, and dynamic libraries
+                  # such as libc.so, sharedlib.so (up to 256 bytes).
+                "value": "A String", # The shortened string. For example, if the original string is 500
+                    # bytes long and the limit of the string is 128 bytes, then
+                    # `value` contains the first 128 bytes of the 500-byte string.
+                    #
+                    # Truncation always happens on a UTF8 character boundary. If there
+                    # are multi-byte characters in the string, then the length of the
+                    # shortened string might be less than the size limit.
+                "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                    # value is 0, then the string was not shortened.
+              },
+            },
+            "lineNumber": "A String", # The line number in `file_name` where the function call appears.
+            "originalFunctionName": { # Represents a string that might be shortened to a specified length. # 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).
+              "value": "A String", # The shortened string. For example, if the original string is 500
+                  # bytes long and the limit of the string is 128 bytes, then
+                  # `value` contains the first 128 bytes of the 500-byte string.
+                  #
+                  # Truncation always happens on a UTF8 character boundary. If there
+                  # are multi-byte characters in the string, then the length of the
+                  # shortened string might be less than the size limit.
+              "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                  # value is 0, then the string was not shortened.
+            },
+          },
+        ],
+        "droppedFramesCount": 42, # 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.
+      },
+    },
+    "displayName": { # Represents a string that might be shortened to a specified length. # A description of the span's operation (up to 128 bytes).
+        # Stackdriver Trace displays the description in the
+        # Google Cloud Platform Console.
+        # 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.
+      "value": "A String", # The shortened string. For example, if the original string is 500
+          # bytes long and the limit of the string is 128 bytes, then
+          # `value` contains the first 128 bytes of the 500-byte string.
+          #
+          # Truncation always happens on a UTF8 character boundary. If there
+          # are multi-byte characters in the string, then the length of the
+          # shortened string might be less than the size limit.
+      "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+          # value is 0, then the string was not shortened.
+    },
+    "name": "A String", # 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;
+        # it is a 32-character hexadecimal encoding of a 16-byte array.
+        #
+        # [SPAN_ID] is a unique identifier for a span within a trace; it
+        # is a 16-character hexadecimal encoding of an 8-byte array.
+    "links": { # A collection of links, which are references from this span to a span # Links associated with the span. You can have up to 128 links per Span.
+        # in the same or different trace.
+      "droppedLinksCount": 42, # The number of dropped links after the maximum size was enforced. If
+          # this value is 0, then no links were dropped.
+      "link": [ # A collection of links.
+        { # 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.
+          "attributes": { # A set of attributes, each in the format `[KEY]:[VALUE]`. # A set of attributes on the link. You have have up to  32 attributes per
+              # link.
+            "droppedAttributesCount": 42, # 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.
+            "attributeMap": { # 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, a signed 64-bit 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
+              "a_key": { # The allowed types for [VALUE] in a `[KEY]:[VALUE]` attribute.
+                "stringValue": { # Represents a string that might be shortened to a specified length. # A string up to 256 bytes long.
+                  "value": "A String", # The shortened string. For example, if the original string is 500
+                      # bytes long and the limit of the string is 128 bytes, then
+                      # `value` contains the first 128 bytes of the 500-byte string.
+                      #
+                      # Truncation always happens on a UTF8 character boundary. If there
+                      # are multi-byte characters in the string, then the length of the
+                      # shortened string might be less than the size limit.
+                  "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                      # value is 0, then the string was not shortened.
+                },
+                "boolValue": True or False, # A Boolean value represented by `true` or `false`.
+                "intValue": "A String", # A 64-bit signed integer.
+              },
+            },
+          },
+          "traceId": "A String", # The [TRACE_ID] for a trace within a project.
+          "type": "A String", # The relationship of the current span relative to the linked span.
+          "spanId": "A String", # The [SPAN_ID] for a span within a trace.
+        },
+      ],
+    },
+    "childSpanCount": 42, # An optional number of child spans that were generated while this span
+        # was active. If set, allows implementation to detect missing child spans.
+    "parentSpanId": "A String", # The [SPAN_ID] of this span's parent span. If this is a root span,
+        # then this field must be empty.
+    "startTime": "A String", # 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.
+    "attributes": { # A set of attributes, each in the format `[KEY]:[VALUE]`. # A set of attributes on the span. You can have up to 32 attributes per
+        # span.
+      "droppedAttributesCount": 42, # 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.
+      "attributeMap": { # 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, a signed 64-bit 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
+        "a_key": { # The allowed types for [VALUE] in a `[KEY]:[VALUE]` attribute.
+          "stringValue": { # Represents a string that might be shortened to a specified length. # A string up to 256 bytes long.
+            "value": "A String", # The shortened string. For example, if the original string is 500
+                # bytes long and the limit of the string is 128 bytes, then
+                # `value` contains the first 128 bytes of the 500-byte string.
+                #
+                # Truncation always happens on a UTF8 character boundary. If there
+                # are multi-byte characters in the string, then the length of the
+                # shortened string might be less than the size limit.
+            "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                # value is 0, then the string was not shortened.
+          },
+          "boolValue": True or False, # A Boolean value represented by `true` or `false`.
+          "intValue": "A String", # A 64-bit signed integer.
+        },
+      },
+    },
+    "spanId": "A String", # The [SPAN_ID] portion of the span's resource name.
+    "timeEvents": { # A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation # A set of time events. You can have up to 32 annotations and 128 message
+        # events per span.
+        # on the span, consisting of either user-supplied key:value pairs, or
+        # details of a message sent/received between Spans.
+      "droppedMessageEventsCount": 42, # The number of dropped message events in all the included time events.
+          # If the value is 0, then no message events were dropped.
+      "timeEvent": [ # A collection of `TimeEvent`s.
+        { # A time-stamped annotation or message event in the Span.
+          "messageEvent": { # An event describing a message sent/received between Spans. # An event describing a message sent/received between Spans.
+            "uncompressedSizeBytes": "A String", # The number of uncompressed bytes sent or received.
+            "type": "A String", # Type of MessageEvent. Indicates whether the message was sent or
+                # received.
+            "id": "A String", # An identifier for the MessageEvent's message that can be used to match
+                # SENT and RECEIVED MessageEvents. It is recommended to be unique within
+                # a Span.
+            "compressedSizeBytes": "A String", # The number of compressed bytes sent or received. If missing assumed to
+                # be the same size as uncompressed.
+          },
+          "annotation": { # Text annotation with a set of attributes. # Text annotation with a set of attributes.
+            "attributes": { # A set of attributes, each in the format `[KEY]:[VALUE]`. # A set of attributes on the annotation. You can have up to 4 attributes
+                # per Annotation.
+              "droppedAttributesCount": 42, # 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.
+              "attributeMap": { # 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, a signed 64-bit 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
+                "a_key": { # The allowed types for [VALUE] in a `[KEY]:[VALUE]` attribute.
+                  "stringValue": { # Represents a string that might be shortened to a specified length. # A string up to 256 bytes long.
+                    "value": "A String", # The shortened string. For example, if the original string is 500
+                        # bytes long and the limit of the string is 128 bytes, then
+                        # `value` contains the first 128 bytes of the 500-byte string.
+                        #
+                        # Truncation always happens on a UTF8 character boundary. If there
+                        # are multi-byte characters in the string, then the length of the
+                        # shortened string might be less than the size limit.
+                    "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                        # value is 0, then the string was not shortened.
+                  },
+                  "boolValue": True or False, # A Boolean value represented by `true` or `false`.
+                  "intValue": "A String", # A 64-bit signed integer.
+                },
+              },
+            },
+            "description": { # Represents a string that might be shortened to a specified length. # A user-supplied message describing the event. The maximum length for
+                # the description is 256 bytes.
+              "value": "A String", # The shortened string. For example, if the original string is 500
+                  # bytes long and the limit of the string is 128 bytes, then
+                  # `value` contains the first 128 bytes of the 500-byte string.
+                  #
+                  # Truncation always happens on a UTF8 character boundary. If there
+                  # are multi-byte characters in the string, then the length of the
+                  # shortened string might be less than the size limit.
+              "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
+                  # value is 0, then the string was not shortened.
+            },
+          },
+          "time": "A String", # The timestamp indicating the time the event occurred.
+        },
+      ],
+      "droppedAnnotationsCount": 42, # The number of dropped annotations in all the included time events.
+          # If the value is 0, then no annotations were dropped.
+    },
+    "endTime": "A String", # 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.
+    "sameProcessAsParentSpan": True or False, # (Optional) Set this parameter to indicate whether this span is in
+        # the same process as its parent. If you do not set this parameter,
+        # Stackdriver Trace is unable to take advantage of this helpful
+        # information.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file