--- /dev/null
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package wire
+
+type ExportTraceServiceRequest struct {
+ Node *Node `json:"node,omitempty"`
+ Spans []*Span `json:"spans,omitempty"`
+ Resource *Resource `json:"resource,omitempty"`
+}
+
+type Span struct {
+ TraceID []byte `json:"trace_id,omitempty"`
+ SpanID []byte `json:"span_id,omitempty"`
+ TraceState *TraceState `json:"tracestate,omitempty"`
+ ParentSpanID []byte `json:"parent_span_id,omitempty"`
+ Name *TruncatableString `json:"name,omitempty"`
+ Kind SpanKind `json:"kind,omitempty"`
+ StartTime Timestamp `json:"start_time,omitempty"`
+ EndTime Timestamp `json:"end_time,omitempty"`
+ Attributes *Attributes `json:"attributes,omitempty"`
+ StackTrace *StackTrace `json:"stack_trace,omitempty"`
+ TimeEvents *TimeEvents `json:"time_events,omitempty"`
+ Links *Links `json:"links,omitempty"`
+ Status *Status `json:"status,omitempty"`
+ Resource *Resource `json:"resource,omitempty"`
+ SameProcessAsParentSpan bool `json:"same_process_as_parent_span,omitempty"`
+ ChildSpanCount bool `json:"child_span_count,omitempty"`
+}
+
+type TraceState struct {
+ Entries []*TraceStateEntry `json:"entries,omitempty"`
+}
+
+type TraceStateEntry struct {
+ Key string `json:"key,omitempty"`
+ Value string `json:"value,omitempty"`
+}
+
+type SpanKind int32
+
+const (
+ UnspecifiedSpanKind SpanKind = 0
+ ServerSpanKind SpanKind = 1
+ ClientSpanKind SpanKind = 2
+)
+
+type TimeEvents struct {
+ TimeEvent []TimeEvent `json:"timeEvent,omitempty"`
+ DroppedAnnotationsCount int32 `json:"dropped_annotations_count,omitempty"`
+ DroppedMessageEventsCount int32 `json:"dropped_message_events_count,omitempty"`
+}
+
+type TimeEvent struct {
+ Time Timestamp `json:"time,omitempty"`
+ MessageEvent *MessageEvent `json:"messageEvent,omitempty"`
+ Annotation *Annotation `json:"annotation,omitempty"`
+}
+
+type Annotation struct {
+ Description *TruncatableString `json:"description,omitempty"`
+ Attributes *Attributes `json:"attributes,omitempty"`
+}
+
+type MessageEvent struct {
+ Type MessageEventType `json:"type,omitempty"`
+ ID uint64 `json:"id,omitempty"`
+ UncompressedSize uint64 `json:"uncompressed_size,omitempty"`
+ CompressedSize uint64 `json:"compressed_size,omitempty"`
+}
+
+type MessageEventType int32
+
+const (
+ UnspecifiedMessageEvent MessageEventType = iota
+ SentMessageEvent
+ ReceivedMessageEvent
+)
+
+type TimeEventValue interface {
+ labelTimeEventValue()
+}
+
+func (Annotation) labelTimeEventValue() {}
+func (MessageEvent) labelTimeEventValue() {}
+
+type Links struct {
+ Link []*Link `json:"link,omitempty"`
+ DroppedLinksCount int32 `json:"dropped_links_count,omitempty"`
+}
+
+type Link struct {
+ TraceID []byte `json:"trace_id,omitempty"`
+ SpanID []byte `json:"span_id,omitempty"`
+ Type LinkType `json:"type,omitempty"`
+ Attributes *Attributes `json:"attributes,omitempty"`
+ TraceState *TraceState `json:"tracestate,omitempty"`
+}
+
+type LinkType int32
+
+const (
+ UnspecifiedLinkType LinkType = 0
+ ChildLinkType LinkType = 1
+ ParentLinkType LinkType = 2
+)
+
+type Status struct {
+ Code int32 `json:"code,omitempty"`
+ Message string `json:"message,omitempty"`
+}