# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/devtools/cloudtrace/v2/trace.proto

require 'google/protobuf'

require 'google/api/field_behavior_pb'
require 'google/api/resource_pb'
require 'google/protobuf/timestamp_pb'
require 'google/protobuf/wrappers_pb'
require 'google/rpc/status_pb'
require 'google/api/annotations_pb'

Google::Protobuf::DescriptorPool.generated_pool.build do
  add_file("google/devtools/cloudtrace/v2/trace.proto", :syntax => :proto3) do
    add_message "google.devtools.cloudtrace.v2.Span" do
      optional :name, :string, 1
      optional :span_id, :string, 2
      optional :parent_span_id, :string, 3
      optional :display_name, :message, 4, "google.devtools.cloudtrace.v2.TruncatableString"
      optional :start_time, :message, 5, "google.protobuf.Timestamp"
      optional :end_time, :message, 6, "google.protobuf.Timestamp"
      optional :attributes, :message, 7, "google.devtools.cloudtrace.v2.Span.Attributes"
      optional :stack_trace, :message, 8, "google.devtools.cloudtrace.v2.StackTrace"
      optional :time_events, :message, 9, "google.devtools.cloudtrace.v2.Span.TimeEvents"
      optional :links, :message, 10, "google.devtools.cloudtrace.v2.Span.Links"
      optional :status, :message, 11, "google.rpc.Status"
      optional :same_process_as_parent_span, :message, 12, "google.protobuf.BoolValue"
      optional :child_span_count, :message, 13, "google.protobuf.Int32Value"
      optional :span_kind, :enum, 14, "google.devtools.cloudtrace.v2.Span.SpanKind"
    end
    add_message "google.devtools.cloudtrace.v2.Span.Attributes" do
      map :attribute_map, :string, :message, 1, "google.devtools.cloudtrace.v2.AttributeValue"
      optional :dropped_attributes_count, :int32, 2
    end
    add_message "google.devtools.cloudtrace.v2.Span.TimeEvent" do
      optional :time, :message, 1, "google.protobuf.Timestamp"
      oneof :value do
        optional :annotation, :message, 2, "google.devtools.cloudtrace.v2.Span.TimeEvent.Annotation"
        optional :message_event, :message, 3, "google.devtools.cloudtrace.v2.Span.TimeEvent.MessageEvent"
      end
    end
    add_message "google.devtools.cloudtrace.v2.Span.TimeEvent.Annotation" do
      optional :description, :message, 1, "google.devtools.cloudtrace.v2.TruncatableString"
      optional :attributes, :message, 2, "google.devtools.cloudtrace.v2.Span.Attributes"
    end
    add_message "google.devtools.cloudtrace.v2.Span.TimeEvent.MessageEvent" do
      optional :type, :enum, 1, "google.devtools.cloudtrace.v2.Span.TimeEvent.MessageEvent.Type"
      optional :id, :int64, 2
      optional :uncompressed_size_bytes, :int64, 3
      optional :compressed_size_bytes, :int64, 4
    end
    add_enum "google.devtools.cloudtrace.v2.Span.TimeEvent.MessageEvent.Type" do
      value :TYPE_UNSPECIFIED, 0
      value :SENT, 1
      value :RECEIVED, 2
    end
    add_message "google.devtools.cloudtrace.v2.Span.TimeEvents" do
      repeated :time_event, :message, 1, "google.devtools.cloudtrace.v2.Span.TimeEvent"
      optional :dropped_annotations_count, :int32, 2
      optional :dropped_message_events_count, :int32, 3
    end
    add_message "google.devtools.cloudtrace.v2.Span.Link" do
      optional :trace_id, :string, 1
      optional :span_id, :string, 2
      optional :type, :enum, 3, "google.devtools.cloudtrace.v2.Span.Link.Type"
      optional :attributes, :message, 4, "google.devtools.cloudtrace.v2.Span.Attributes"
    end
    add_enum "google.devtools.cloudtrace.v2.Span.Link.Type" do
      value :TYPE_UNSPECIFIED, 0
      value :CHILD_LINKED_SPAN, 1
      value :PARENT_LINKED_SPAN, 2
    end
    add_message "google.devtools.cloudtrace.v2.Span.Links" do
      repeated :link, :message, 1, "google.devtools.cloudtrace.v2.Span.Link"
      optional :dropped_links_count, :int32, 2
    end
    add_enum "google.devtools.cloudtrace.v2.Span.SpanKind" do
      value :SPAN_KIND_UNSPECIFIED, 0
      value :INTERNAL, 1
      value :SERVER, 2
      value :CLIENT, 3
      value :PRODUCER, 4
      value :CONSUMER, 5
    end
    add_message "google.devtools.cloudtrace.v2.AttributeValue" do
      oneof :value do
        optional :string_value, :message, 1, "google.devtools.cloudtrace.v2.TruncatableString"
        optional :int_value, :int64, 2
        optional :bool_value, :bool, 3
      end
    end
    add_message "google.devtools.cloudtrace.v2.StackTrace" do
      optional :stack_frames, :message, 1, "google.devtools.cloudtrace.v2.StackTrace.StackFrames"
      optional :stack_trace_hash_id, :int64, 2
    end
    add_message "google.devtools.cloudtrace.v2.StackTrace.StackFrame" do
      optional :function_name, :message, 1, "google.devtools.cloudtrace.v2.TruncatableString"
      optional :original_function_name, :message, 2, "google.devtools.cloudtrace.v2.TruncatableString"
      optional :file_name, :message, 3, "google.devtools.cloudtrace.v2.TruncatableString"
      optional :line_number, :int64, 4
      optional :column_number, :int64, 5
      optional :load_module, :message, 6, "google.devtools.cloudtrace.v2.Module"
      optional :source_version, :message, 7, "google.devtools.cloudtrace.v2.TruncatableString"
    end
    add_message "google.devtools.cloudtrace.v2.StackTrace.StackFrames" do
      repeated :frame, :message, 1, "google.devtools.cloudtrace.v2.StackTrace.StackFrame"
      optional :dropped_frames_count, :int32, 2
    end
    add_message "google.devtools.cloudtrace.v2.Module" do
      optional :module, :message, 1, "google.devtools.cloudtrace.v2.TruncatableString"
      optional :build_id, :message, 2, "google.devtools.cloudtrace.v2.TruncatableString"
    end
    add_message "google.devtools.cloudtrace.v2.TruncatableString" do
      optional :value, :string, 1
      optional :truncated_byte_count, :int32, 2
    end
  end
end

module Google
  module Cloud
    module Trace
      module V2
        Span = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.devtools.cloudtrace.v2.Span").msgclass
        Span::Attributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.devtools.cloudtrace.v2.Span.Attributes").msgclass
        Span::TimeEvent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.devtools.cloudtrace.v2.Span.TimeEvent").msgclass
        Span::TimeEvent::Annotation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.devtools.cloudtrace.v2.Span.TimeEvent.Annotation").msgclass
        Span::TimeEvent::MessageEvent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.devtools.cloudtrace.v2.Span.TimeEvent.MessageEvent").msgclass
        Span::TimeEvent::MessageEvent::Type = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.devtools.cloudtrace.v2.Span.TimeEvent.MessageEvent.Type").enummodule
        Span::TimeEvents = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.devtools.cloudtrace.v2.Span.TimeEvents").msgclass
        Span::Link = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.devtools.cloudtrace.v2.Span.Link").msgclass
        Span::Link::Type = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.devtools.cloudtrace.v2.Span.Link.Type").enummodule
        Span::Links = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.devtools.cloudtrace.v2.Span.Links").msgclass
        Span::SpanKind = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.devtools.cloudtrace.v2.Span.SpanKind").enummodule
        AttributeValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.devtools.cloudtrace.v2.AttributeValue").msgclass
        StackTrace = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.devtools.cloudtrace.v2.StackTrace").msgclass
        StackTrace::StackFrame = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.devtools.cloudtrace.v2.StackTrace.StackFrame").msgclass
        StackTrace::StackFrames = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.devtools.cloudtrace.v2.StackTrace.StackFrames").msgclass
        Module = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.devtools.cloudtrace.v2.Module").msgclass
        TruncatableString = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.devtools.cloudtrace.v2.TruncatableString").msgclass
      end
    end
  end
end
