// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: hunt.trace.proto

module zipkin.proto3.zipkin;

import google.protobuf;

enum protocVersion = 3006001;

class Span
{
    @Proto(1) bytes traceId = protoDefaultValue!bytes;
    @Proto(2) bytes parentId = protoDefaultValue!bytes;
    @Proto(3) bytes id = protoDefaultValue!bytes;
    @Proto(4) Kind kind = protoDefaultValue!Kind;
    @Proto(5) string name = protoDefaultValue!string;
    @Proto(6, Wire.fixed) ulong timestamp = protoDefaultValue!ulong;
    @Proto(7) ulong duration = protoDefaultValue!ulong;
    @Proto(8) Endpoint localEndpoint = protoDefaultValue!Endpoint;
    @Proto(9) Endpoint remoteEndpoint = protoDefaultValue!Endpoint;
    @Proto(10) Annotation[] annotations = protoDefaultValue!(Annotation[]);
    @Proto(11) string[string] tags = protoDefaultValue!(string[string]);
    @Proto(12) bool debug_ = protoDefaultValue!bool;
    @Proto(13) bool shared_ = protoDefaultValue!bool;

    enum Kind
    {
        SPAN_KIND_UNSPECIFIED = 0,
        CLIENT = 1,
        SERVER = 2,
        PRODUCER = 3,
        CONSUMER = 4,
    }
}

class Endpoint
{
    @Proto(1) string serviceName = protoDefaultValue!string;
    @Proto(2) bytes ipv4 = protoDefaultValue!bytes;
    @Proto(3) bytes ipv6 = protoDefaultValue!bytes;
    @Proto(4) int port = protoDefaultValue!int;
}

class Annotation
{
    @Proto(1, Wire.fixed) ulong timestamp = protoDefaultValue!ulong;
    @Proto(2) string value = protoDefaultValue!string;
}

class ListOfSpans
{
    @Proto(1) Span[] spans = protoDefaultValue!(Span[]);
}