// Copyright 2025 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v6.33.2
// source: google/devtools/cloudtrace/v2/trace.proto

package tracepb

import (
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"

	_ "google.golang.org/genproto/googleapis/api/annotations"
	status "google.golang.org/genproto/googleapis/rpc/status"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// Type of span. Can be used to specify additional relationships between spans
// in addition to a parent/child relationship.
type Span_SpanKind int32

const (
	// Unspecified. Do NOT use as default.
	// Implementations MAY assume SpanKind.INTERNAL to be default.
	Span_SPAN_KIND_UNSPECIFIED Span_SpanKind = 0
	// Indicates that the span is used internally. Default value.
	Span_INTERNAL Span_SpanKind = 1
	// Indicates that the span covers server-side handling of an RPC or other
	// remote network request.
	Span_SERVER Span_SpanKind = 2
	// Indicates that the span covers the client-side wrapper around an RPC or
	// other remote request.
	Span_CLIENT Span_SpanKind = 3
	// Indicates that the span describes producer sending a message to a broker.
	// Unlike client and  server, there is no direct critical path latency
	// relationship between producer and consumer spans (e.g. publishing a
	// message to a pubsub service).
	Span_PRODUCER Span_SpanKind = 4
	// Indicates that the span describes consumer receiving a message from a
	// broker. Unlike client and  server, there is no direct critical path
	// latency relationship between producer and consumer spans (e.g. receiving
	// a message from a pubsub service subscription).
	Span_CONSUMER Span_SpanKind = 5
)

// Enum value maps for Span_SpanKind.
var (
	Span_SpanKind_name = map[int32]string{
		0: "SPAN_KIND_UNSPECIFIED",
		1: "INTERNAL",
		2: "SERVER",
		3: "CLIENT",
		4: "PRODUCER",
		5: "CONSUMER",
	}
	Span_SpanKind_value = map[string]int32{
		"SPAN_KIND_UNSPECIFIED": 0,
		"INTERNAL":              1,
		"SERVER":                2,
		"CLIENT":                3,
		"PRODUCER":              4,
		"CONSUMER":              5,
	}
)

func (x Span_SpanKind) Enum() *Span_SpanKind {
	p := new(Span_SpanKind)
	*p = x
	return p
}

func (x Span_SpanKind) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Span_SpanKind) Descriptor() protoreflect.EnumDescriptor {
	return file_google_devtools_cloudtrace_v2_trace_proto_enumTypes[0].Descriptor()
}

func (Span_SpanKind) Type() protoreflect.EnumType {
	return &file_google_devtools_cloudtrace_v2_trace_proto_enumTypes[0]
}

func (x Span_SpanKind) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Span_SpanKind.Descriptor instead.
func (Span_SpanKind) EnumDescriptor() ([]byte, []int) {
	return file_google_devtools_cloudtrace_v2_trace_proto_rawDescGZIP(), []int{0, 0}
}

// Indicates whether the message was sent or received.
type Span_TimeEvent_MessageEvent_Type int32

const (
	// Unknown event type.
	Span_TimeEvent_MessageEvent_TYPE_UNSPECIFIED Span_TimeEvent_MessageEvent_Type = 0
	// Indicates a sent message.
	Span_TimeEvent_MessageEvent_SENT Span_TimeEvent_MessageEvent_Type = 1
	// Indicates a received message.
	Span_TimeEvent_MessageEvent_RECEIVED Span_TimeEvent_MessageEvent_Type = 2
)

// Enum value maps for Span_TimeEvent_MessageEvent_Type.
var (
	Span_TimeEvent_MessageEvent_Type_name = map[int32]string{
		0: "TYPE_UNSPECIFIED",
		1: "SENT",
		2: "RECEIVED",
	}
	Span_TimeEvent_MessageEvent_Type_value = map[string]int32{
		"TYPE_UNSPECIFIED": 0,
		"SENT":             1,
		"RECEIVED":         2,
	}
)

func (x Span_TimeEvent_MessageEvent_Type) Enum() *Span_TimeEvent_MessageEvent_Type {
	p := new(Span_TimeEvent_MessageEvent_Type)
	*p = x
	return p
}

func (x Span_TimeEvent_MessageEvent_Type) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Span_TimeEvent_MessageEvent_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_google_devtools_cloudtrace_v2_trace_proto_enumTypes[1].Descriptor()
}

func (Span_TimeEvent_MessageEvent_Type) Type() protoreflect.EnumType {
	return &file_google_devtools_cloudtrace_v2_trace_proto_enumTypes[1]
}

func (x Span_TimeEvent_MessageEvent_Type) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Span_TimeEvent_MessageEvent_Type.Descriptor instead.
func (Span_TimeEvent_MessageEvent_Type) EnumDescriptor() ([]byte, []int) {
	return file_google_devtools_cloudtrace_v2_trace_proto_rawDescGZIP(), []int{0, 1, 1, 0}
}

// The relationship of the current span relative to the linked span: child,
// parent, or unspecified.
type Span_Link_Type int32

const (
	// The relationship of the two spans is unknown.
	Span_Link_TYPE_UNSPECIFIED Span_Link_Type = 0
	// The linked span is a child of the current span.
	Span_Link_CHILD_LINKED_SPAN Span_Link_Type = 1
	// The linked span is a parent of the current span.
	Span_Link_PARENT_LINKED_SPAN Span_Link_Type = 2
)

// Enum value maps for Span_Link_Type.
var (
	Span_Link_Type_name = map[int32]string{
		0: "TYPE_UNSPECIFIED",
		1: "CHILD_LINKED_SPAN",
		2: "PARENT_LINKED_SPAN",
	}
	Span_Link_Type_value = map[string]int32{
		"TYPE_UNSPECIFIED":   0,
		"CHILD_LINKED_SPAN":  1,
		"PARENT_LINKED_SPAN": 2,
	}
)

func (x Span_Link_Type) Enum() *Span_Link_Type {
	p := new(Span_Link_Type)
	*p = x
	return p
}

func (x Span_Link_Type) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Span_Link_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_google_devtools_cloudtrace_v2_trace_proto_enumTypes[2].Descriptor()
}

func (Span_Link_Type) Type() protoreflect.EnumType {
	return &file_google_devtools_cloudtrace_v2_trace_proto_enumTypes[2]
}

func (x Span_Link_Type) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Span_Link_Type.Descriptor instead.
func (Span_Link_Type) EnumDescriptor() ([]byte, []int) {
	return file_google_devtools_cloudtrace_v2_trace_proto_rawDescGZIP(), []int{0, 3, 0}
}

// 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. There might be
// gaps or overlaps between spans in a trace.
type Span struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The resource name of the span in the following format:
	//
	//   - `projects/[PROJECT_ID]/traces/[TRACE_ID]/spans/[SPAN_ID]`
	//
	// `[TRACE_ID]` is a unique identifier for a trace within a project;
	// it is a 32-character hexadecimal encoding of a 16-byte array. It should
	// not be zero.
	//
	// `[SPAN_ID]` is a unique identifier for a span within a trace; it
	// is a 16-character hexadecimal encoding of an 8-byte array. It should not
	// be zero.
	// .
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Required. The `[SPAN_ID]` portion of the span's resource name.
	SpanId string `protobuf:"bytes,2,opt,name=span_id,json=spanId,proto3" json:"span_id,omitempty"`
	// The `[SPAN_ID]` of this span's parent span. If this is a root span,
	// then this field must be empty.
	ParentSpanId string `protobuf:"bytes,3,opt,name=parent_span_id,json=parentSpanId,proto3" json:"parent_span_id,omitempty"`
	// Required. A description of the span's operation (up to 128 bytes).
	// Cloud Trace displays the description in the
	// Cloud 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.
	DisplayName *TruncatableString `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Required. 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.
	StartTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	// Required. 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.
	EndTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
	// A set of attributes on the span. You can have up to 32 attributes per
	// span.
	Attributes *Span_Attributes `protobuf:"bytes,7,opt,name=attributes,proto3" json:"attributes,omitempty"`
	// Stack trace captured at the start of the span.
	StackTrace *StackTrace `protobuf:"bytes,8,opt,name=stack_trace,json=stackTrace,proto3" json:"stack_trace,omitempty"`
	// A set of time events. You can have up to 32 annotations and 128 message
	// events per span.
	TimeEvents *Span_TimeEvents `protobuf:"bytes,9,opt,name=time_events,json=timeEvents,proto3" json:"time_events,omitempty"`
	// Links associated with the span. You can have up to 128 links per Span.
	Links *Span_Links `protobuf:"bytes,10,opt,name=links,proto3" json:"links,omitempty"`
	// Optional. The final status for this span.
	Status *status.Status `protobuf:"bytes,11,opt,name=status,proto3" json:"status,omitempty"`
	// Optional. Set this parameter to indicate whether this span is in
	// the same process as its parent. If you do not set this parameter,
	// Trace is unable to take advantage of this helpful information.
	SameProcessAsParentSpan *wrapperspb.BoolValue `protobuf:"bytes,12,opt,name=same_process_as_parent_span,json=sameProcessAsParentSpan,proto3" json:"same_process_as_parent_span,omitempty"`
	// Optional. The number of child spans that were generated while this span
	// was active. If set, allows implementation to detect missing child spans.
	ChildSpanCount *wrapperspb.Int32Value `protobuf:"bytes,13,opt,name=child_span_count,json=childSpanCount,proto3" json:"child_span_count,omitempty"`
	// Optional. Distinguishes between spans generated in a particular context.
	// For example, two spans with the same name may be distinguished using
	// `CLIENT` (caller) and `SERVER` (callee) to identify an RPC call.
	SpanKind      Span_SpanKind `protobuf:"varint,14,opt,name=span_kind,json=spanKind,proto3,enum=google.devtools.cloudtrace.v2.Span_SpanKind" json:"span_kind,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Span) Reset() {
	*x = Span{}
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Span) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Span) ProtoMessage() {}

func (x *Span) ProtoReflect() protoreflect.Message {
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Span.ProtoReflect.Descriptor instead.
func (*Span) Descriptor() ([]byte, []int) {
	return file_google_devtools_cloudtrace_v2_trace_proto_rawDescGZIP(), []int{0}
}

func (x *Span) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Span) GetSpanId() string {
	if x != nil {
		return x.SpanId
	}
	return ""
}

func (x *Span) GetParentSpanId() string {
	if x != nil {
		return x.ParentSpanId
	}
	return ""
}

func (x *Span) GetDisplayName() *TruncatableString {
	if x != nil {
		return x.DisplayName
	}
	return nil
}

func (x *Span) GetStartTime() *timestamppb.Timestamp {
	if x != nil {
		return x.StartTime
	}
	return nil
}

func (x *Span) GetEndTime() *timestamppb.Timestamp {
	if x != nil {
		return x.EndTime
	}
	return nil
}

func (x *Span) GetAttributes() *Span_Attributes {
	if x != nil {
		return x.Attributes
	}
	return nil
}

func (x *Span) GetStackTrace() *StackTrace {
	if x != nil {
		return x.StackTrace
	}
	return nil
}

func (x *Span) GetTimeEvents() *Span_TimeEvents {
	if x != nil {
		return x.TimeEvents
	}
	return nil
}

func (x *Span) GetLinks() *Span_Links {
	if x != nil {
		return x.Links
	}
	return nil
}

func (x *Span) GetStatus() *status.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *Span) GetSameProcessAsParentSpan() *wrapperspb.BoolValue {
	if x != nil {
		return x.SameProcessAsParentSpan
	}
	return nil
}

func (x *Span) GetChildSpanCount() *wrapperspb.Int32Value {
	if x != nil {
		return x.ChildSpanCount
	}
	return nil
}

func (x *Span) GetSpanKind() Span_SpanKind {
	if x != nil {
		return x.SpanKind
	}
	return Span_SPAN_KIND_UNSPECIFIED
}

// The allowed types for `[VALUE]` in a `[KEY]:[VALUE]` attribute.
type AttributeValue struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The type of the value.
	//
	// Types that are valid to be assigned to Value:
	//
	//	*AttributeValue_StringValue
	//	*AttributeValue_IntValue
	//	*AttributeValue_BoolValue
	Value         isAttributeValue_Value `protobuf_oneof:"value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AttributeValue) Reset() {
	*x = AttributeValue{}
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AttributeValue) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AttributeValue) ProtoMessage() {}

func (x *AttributeValue) ProtoReflect() protoreflect.Message {
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AttributeValue.ProtoReflect.Descriptor instead.
func (*AttributeValue) Descriptor() ([]byte, []int) {
	return file_google_devtools_cloudtrace_v2_trace_proto_rawDescGZIP(), []int{1}
}

func (x *AttributeValue) GetValue() isAttributeValue_Value {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *AttributeValue) GetStringValue() *TruncatableString {
	if x != nil {
		if x, ok := x.Value.(*AttributeValue_StringValue); ok {
			return x.StringValue
		}
	}
	return nil
}

func (x *AttributeValue) GetIntValue() int64 {
	if x != nil {
		if x, ok := x.Value.(*AttributeValue_IntValue); ok {
			return x.IntValue
		}
	}
	return 0
}

func (x *AttributeValue) GetBoolValue() bool {
	if x != nil {
		if x, ok := x.Value.(*AttributeValue_BoolValue); ok {
			return x.BoolValue
		}
	}
	return false
}

type isAttributeValue_Value interface {
	isAttributeValue_Value()
}

type AttributeValue_StringValue struct {
	// A string up to 256 bytes long.
	StringValue *TruncatableString `protobuf:"bytes,1,opt,name=string_value,json=stringValue,proto3,oneof"`
}

type AttributeValue_IntValue struct {
	// A 64-bit signed integer.
	IntValue int64 `protobuf:"varint,2,opt,name=int_value,json=intValue,proto3,oneof"`
}

type AttributeValue_BoolValue struct {
	// A Boolean value represented by `true` or `false`.
	BoolValue bool `protobuf:"varint,3,opt,name=bool_value,json=boolValue,proto3,oneof"`
}

func (*AttributeValue_StringValue) isAttributeValue_Value() {}

func (*AttributeValue_IntValue) isAttributeValue_Value() {}

func (*AttributeValue_BoolValue) isAttributeValue_Value() {}

// A call stack appearing in a trace.
type StackTrace struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Stack frames in this stack trace. A maximum of 128 frames are allowed.
	StackFrames *StackTrace_StackFrames `protobuf:"bytes,1,opt,name=stack_frames,json=stackFrames,proto3" json:"stack_frames,omitempty"`
	// 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`.
	StackTraceHashId int64 `protobuf:"varint,2,opt,name=stack_trace_hash_id,json=stackTraceHashId,proto3" json:"stack_trace_hash_id,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *StackTrace) Reset() {
	*x = StackTrace{}
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *StackTrace) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StackTrace) ProtoMessage() {}

func (x *StackTrace) ProtoReflect() protoreflect.Message {
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StackTrace.ProtoReflect.Descriptor instead.
func (*StackTrace) Descriptor() ([]byte, []int) {
	return file_google_devtools_cloudtrace_v2_trace_proto_rawDescGZIP(), []int{2}
}

func (x *StackTrace) GetStackFrames() *StackTrace_StackFrames {
	if x != nil {
		return x.StackFrames
	}
	return nil
}

func (x *StackTrace) GetStackTraceHashId() int64 {
	if x != nil {
		return x.StackTraceHashId
	}
	return 0
}

// Binary module.
type Module struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// For example: main binary, kernel modules, and dynamic libraries
	// such as libc.so, sharedlib.so (up to 256 bytes).
	Module *TruncatableString `protobuf:"bytes,1,opt,name=module,proto3" json:"module,omitempty"`
	// A unique identifier for the module, usually a hash of its
	// contents (up to 128 bytes).
	BuildId       *TruncatableString `protobuf:"bytes,2,opt,name=build_id,json=buildId,proto3" json:"build_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Module) Reset() {
	*x = Module{}
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Module) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Module) ProtoMessage() {}

func (x *Module) ProtoReflect() protoreflect.Message {
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Module.ProtoReflect.Descriptor instead.
func (*Module) Descriptor() ([]byte, []int) {
	return file_google_devtools_cloudtrace_v2_trace_proto_rawDescGZIP(), []int{3}
}

func (x *Module) GetModule() *TruncatableString {
	if x != nil {
		return x.Module
	}
	return nil
}

func (x *Module) GetBuildId() *TruncatableString {
	if x != nil {
		return x.BuildId
	}
	return nil
}

// Represents a string that might be shortened to a specified length.
type TruncatableString struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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.
	Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
	// The number of bytes removed from the original string. If this
	// value is 0, then the string was not shortened.
	TruncatedByteCount int32 `protobuf:"varint,2,opt,name=truncated_byte_count,json=truncatedByteCount,proto3" json:"truncated_byte_count,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *TruncatableString) Reset() {
	*x = TruncatableString{}
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TruncatableString) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TruncatableString) ProtoMessage() {}

func (x *TruncatableString) ProtoReflect() protoreflect.Message {
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TruncatableString.ProtoReflect.Descriptor instead.
func (*TruncatableString) Descriptor() ([]byte, []int) {
	return file_google_devtools_cloudtrace_v2_trace_proto_rawDescGZIP(), []int{4}
}

func (x *TruncatableString) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

func (x *TruncatableString) GetTruncatedByteCount() int32 {
	if x != nil {
		return x.TruncatedByteCount
	}
	return 0
}

// A set of attributes as key-value pairs.
type Span_Attributes struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// A 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` or `false`. For example:
	//
	//	"/instance_id": { "string_value": { "value": "my-instance" } }
	//	"/http/request_bytes": { "int_value": 300 }
	//	"abc.com/myattribute": { "bool_value": false }
	AttributeMap map[string]*AttributeValue `protobuf:"bytes,1,rep,name=attribute_map,json=attributeMap,proto3" json:"attribute_map,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// 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.
	DroppedAttributesCount int32 `protobuf:"varint,2,opt,name=dropped_attributes_count,json=droppedAttributesCount,proto3" json:"dropped_attributes_count,omitempty"`
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

func (x *Span_Attributes) Reset() {
	*x = Span_Attributes{}
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Span_Attributes) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Span_Attributes) ProtoMessage() {}

func (x *Span_Attributes) ProtoReflect() protoreflect.Message {
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Span_Attributes.ProtoReflect.Descriptor instead.
func (*Span_Attributes) Descriptor() ([]byte, []int) {
	return file_google_devtools_cloudtrace_v2_trace_proto_rawDescGZIP(), []int{0, 0}
}

func (x *Span_Attributes) GetAttributeMap() map[string]*AttributeValue {
	if x != nil {
		return x.AttributeMap
	}
	return nil
}

func (x *Span_Attributes) GetDroppedAttributesCount() int32 {
	if x != nil {
		return x.DroppedAttributesCount
	}
	return 0
}

// A time-stamped annotation or message event in the Span.
type Span_TimeEvent struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The timestamp indicating the time the event occurred.
	Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"`
	// A `TimeEvent` can contain either an `Annotation` object or a
	// `MessageEvent` object, but not both.
	//
	// Types that are valid to be assigned to Value:
	//
	//	*Span_TimeEvent_Annotation_
	//	*Span_TimeEvent_MessageEvent_
	Value         isSpan_TimeEvent_Value `protobuf_oneof:"value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Span_TimeEvent) Reset() {
	*x = Span_TimeEvent{}
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Span_TimeEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Span_TimeEvent) ProtoMessage() {}

func (x *Span_TimeEvent) ProtoReflect() protoreflect.Message {
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Span_TimeEvent.ProtoReflect.Descriptor instead.
func (*Span_TimeEvent) Descriptor() ([]byte, []int) {
	return file_google_devtools_cloudtrace_v2_trace_proto_rawDescGZIP(), []int{0, 1}
}

func (x *Span_TimeEvent) GetTime() *timestamppb.Timestamp {
	if x != nil {
		return x.Time
	}
	return nil
}

func (x *Span_TimeEvent) GetValue() isSpan_TimeEvent_Value {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *Span_TimeEvent) GetAnnotation() *Span_TimeEvent_Annotation {
	if x != nil {
		if x, ok := x.Value.(*Span_TimeEvent_Annotation_); ok {
			return x.Annotation
		}
	}
	return nil
}

func (x *Span_TimeEvent) GetMessageEvent() *Span_TimeEvent_MessageEvent {
	if x != nil {
		if x, ok := x.Value.(*Span_TimeEvent_MessageEvent_); ok {
			return x.MessageEvent
		}
	}
	return nil
}

type isSpan_TimeEvent_Value interface {
	isSpan_TimeEvent_Value()
}

type Span_TimeEvent_Annotation_ struct {
	// Text annotation with a set of attributes.
	Annotation *Span_TimeEvent_Annotation `protobuf:"bytes,2,opt,name=annotation,proto3,oneof"`
}

type Span_TimeEvent_MessageEvent_ struct {
	// An event describing a message sent/received between Spans.
	MessageEvent *Span_TimeEvent_MessageEvent `protobuf:"bytes,3,opt,name=message_event,json=messageEvent,proto3,oneof"`
}

func (*Span_TimeEvent_Annotation_) isSpan_TimeEvent_Value() {}

func (*Span_TimeEvent_MessageEvent_) isSpan_TimeEvent_Value() {}

// A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation
// on the span, consisting of either user-supplied key:value pairs, or
// details of a message sent/received between Spans.
type Span_TimeEvents struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// A collection of `TimeEvent`s.
	TimeEvent []*Span_TimeEvent `protobuf:"bytes,1,rep,name=time_event,json=timeEvent,proto3" json:"time_event,omitempty"`
	// The number of dropped annotations in all the included time events.
	// If the value is 0, then no annotations were dropped.
	DroppedAnnotationsCount int32 `protobuf:"varint,2,opt,name=dropped_annotations_count,json=droppedAnnotationsCount,proto3" json:"dropped_annotations_count,omitempty"`
	// The number of dropped message events in all the included time events.
	// If the value is 0, then no message events were dropped.
	DroppedMessageEventsCount int32 `protobuf:"varint,3,opt,name=dropped_message_events_count,json=droppedMessageEventsCount,proto3" json:"dropped_message_events_count,omitempty"`
	unknownFields             protoimpl.UnknownFields
	sizeCache                 protoimpl.SizeCache
}

func (x *Span_TimeEvents) Reset() {
	*x = Span_TimeEvents{}
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Span_TimeEvents) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Span_TimeEvents) ProtoMessage() {}

func (x *Span_TimeEvents) ProtoReflect() protoreflect.Message {
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Span_TimeEvents.ProtoReflect.Descriptor instead.
func (*Span_TimeEvents) Descriptor() ([]byte, []int) {
	return file_google_devtools_cloudtrace_v2_trace_proto_rawDescGZIP(), []int{0, 2}
}

func (x *Span_TimeEvents) GetTimeEvent() []*Span_TimeEvent {
	if x != nil {
		return x.TimeEvent
	}
	return nil
}

func (x *Span_TimeEvents) GetDroppedAnnotationsCount() int32 {
	if x != nil {
		return x.DroppedAnnotationsCount
	}
	return 0
}

func (x *Span_TimeEvents) GetDroppedMessageEventsCount() int32 {
	if x != nil {
		return x.DroppedMessageEventsCount
	}
	return 0
}

// 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.
type Span_Link struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The `[TRACE_ID]` for a trace within a project.
	TraceId string `protobuf:"bytes,1,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"`
	// The `[SPAN_ID]` for a span within a trace.
	SpanId string `protobuf:"bytes,2,opt,name=span_id,json=spanId,proto3" json:"span_id,omitempty"`
	// The relationship of the current span relative to the linked span.
	Type Span_Link_Type `protobuf:"varint,3,opt,name=type,proto3,enum=google.devtools.cloudtrace.v2.Span_Link_Type" json:"type,omitempty"`
	// A set of attributes on the link. Up to 32 attributes can be
	// specified per link.
	Attributes    *Span_Attributes `protobuf:"bytes,4,opt,name=attributes,proto3" json:"attributes,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Span_Link) Reset() {
	*x = Span_Link{}
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Span_Link) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Span_Link) ProtoMessage() {}

func (x *Span_Link) ProtoReflect() protoreflect.Message {
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Span_Link.ProtoReflect.Descriptor instead.
func (*Span_Link) Descriptor() ([]byte, []int) {
	return file_google_devtools_cloudtrace_v2_trace_proto_rawDescGZIP(), []int{0, 3}
}

func (x *Span_Link) GetTraceId() string {
	if x != nil {
		return x.TraceId
	}
	return ""
}

func (x *Span_Link) GetSpanId() string {
	if x != nil {
		return x.SpanId
	}
	return ""
}

func (x *Span_Link) GetType() Span_Link_Type {
	if x != nil {
		return x.Type
	}
	return Span_Link_TYPE_UNSPECIFIED
}

func (x *Span_Link) GetAttributes() *Span_Attributes {
	if x != nil {
		return x.Attributes
	}
	return nil
}

// A collection of links, which are references from this span to a span
// in the same or different trace.
type Span_Links struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// A collection of links.
	Link []*Span_Link `protobuf:"bytes,1,rep,name=link,proto3" json:"link,omitempty"`
	// The number of dropped links after the maximum size was enforced. If
	// this value is 0, then no links were dropped.
	DroppedLinksCount int32 `protobuf:"varint,2,opt,name=dropped_links_count,json=droppedLinksCount,proto3" json:"dropped_links_count,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *Span_Links) Reset() {
	*x = Span_Links{}
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Span_Links) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Span_Links) ProtoMessage() {}

func (x *Span_Links) ProtoReflect() protoreflect.Message {
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Span_Links.ProtoReflect.Descriptor instead.
func (*Span_Links) Descriptor() ([]byte, []int) {
	return file_google_devtools_cloudtrace_v2_trace_proto_rawDescGZIP(), []int{0, 4}
}

func (x *Span_Links) GetLink() []*Span_Link {
	if x != nil {
		return x.Link
	}
	return nil
}

func (x *Span_Links) GetDroppedLinksCount() int32 {
	if x != nil {
		return x.DroppedLinksCount
	}
	return 0
}

// Text annotation with a set of attributes.
type Span_TimeEvent_Annotation struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// A user-supplied message describing the event. The maximum length for
	// the description is 256 bytes.
	Description *TruncatableString `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
	// A set of attributes on the annotation. You can have up to 4 attributes
	// per Annotation.
	Attributes    *Span_Attributes `protobuf:"bytes,2,opt,name=attributes,proto3" json:"attributes,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Span_TimeEvent_Annotation) Reset() {
	*x = Span_TimeEvent_Annotation{}
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Span_TimeEvent_Annotation) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Span_TimeEvent_Annotation) ProtoMessage() {}

func (x *Span_TimeEvent_Annotation) ProtoReflect() protoreflect.Message {
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Span_TimeEvent_Annotation.ProtoReflect.Descriptor instead.
func (*Span_TimeEvent_Annotation) Descriptor() ([]byte, []int) {
	return file_google_devtools_cloudtrace_v2_trace_proto_rawDescGZIP(), []int{0, 1, 0}
}

func (x *Span_TimeEvent_Annotation) GetDescription() *TruncatableString {
	if x != nil {
		return x.Description
	}
	return nil
}

func (x *Span_TimeEvent_Annotation) GetAttributes() *Span_Attributes {
	if x != nil {
		return x.Attributes
	}
	return nil
}

// An event describing a message sent/received between Spans.
type Span_TimeEvent_MessageEvent struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Type of MessageEvent. Indicates whether the message was sent or
	// received.
	Type Span_TimeEvent_MessageEvent_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.devtools.cloudtrace.v2.Span_TimeEvent_MessageEvent_Type" json:"type,omitempty"`
	// An identifier for the MessageEvent's message that can be used to match
	// `SENT` and `RECEIVED` MessageEvents.
	Id int64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"`
	// The number of uncompressed bytes sent or received.
	UncompressedSizeBytes int64 `protobuf:"varint,3,opt,name=uncompressed_size_bytes,json=uncompressedSizeBytes,proto3" json:"uncompressed_size_bytes,omitempty"`
	// The number of compressed bytes sent or received. If missing, the
	// compressed size is assumed to be the same size as the uncompressed
	// size.
	CompressedSizeBytes int64 `protobuf:"varint,4,opt,name=compressed_size_bytes,json=compressedSizeBytes,proto3" json:"compressed_size_bytes,omitempty"`
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

func (x *Span_TimeEvent_MessageEvent) Reset() {
	*x = Span_TimeEvent_MessageEvent{}
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Span_TimeEvent_MessageEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Span_TimeEvent_MessageEvent) ProtoMessage() {}

func (x *Span_TimeEvent_MessageEvent) ProtoReflect() protoreflect.Message {
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Span_TimeEvent_MessageEvent.ProtoReflect.Descriptor instead.
func (*Span_TimeEvent_MessageEvent) Descriptor() ([]byte, []int) {
	return file_google_devtools_cloudtrace_v2_trace_proto_rawDescGZIP(), []int{0, 1, 1}
}

func (x *Span_TimeEvent_MessageEvent) GetType() Span_TimeEvent_MessageEvent_Type {
	if x != nil {
		return x.Type
	}
	return Span_TimeEvent_MessageEvent_TYPE_UNSPECIFIED
}

func (x *Span_TimeEvent_MessageEvent) GetId() int64 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *Span_TimeEvent_MessageEvent) GetUncompressedSizeBytes() int64 {
	if x != nil {
		return x.UncompressedSizeBytes
	}
	return 0
}

func (x *Span_TimeEvent_MessageEvent) GetCompressedSizeBytes() int64 {
	if x != nil {
		return x.CompressedSizeBytes
	}
	return 0
}

// Represents a single stack frame in a stack trace.
type StackTrace_StackFrame struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The fully-qualified name that uniquely identifies the function or
	// method that is active in this frame (up to 1024 bytes).
	FunctionName *TruncatableString `protobuf:"bytes,1,opt,name=function_name,json=functionName,proto3" json:"function_name,omitempty"`
	// An un-mangled function name, if `function_name` is mangled.
	// To get information about name mangling, run
	// [this search](https://www.google.com/search?q=cxx+name+mangling).
	// The name can be fully-qualified (up to 1024 bytes).
	OriginalFunctionName *TruncatableString `protobuf:"bytes,2,opt,name=original_function_name,json=originalFunctionName,proto3" json:"original_function_name,omitempty"`
	// The name of the source file where the function call appears (up to 256
	// bytes).
	FileName *TruncatableString `protobuf:"bytes,3,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"`
	// The line number in `file_name` where the function call appears.
	LineNumber int64 `protobuf:"varint,4,opt,name=line_number,json=lineNumber,proto3" json:"line_number,omitempty"`
	// The column number where the function call appears, if available.
	// This is important in JavaScript because of its anonymous functions.
	ColumnNumber int64 `protobuf:"varint,5,opt,name=column_number,json=columnNumber,proto3" json:"column_number,omitempty"`
	// The binary module from where the code was loaded.
	LoadModule *Module `protobuf:"bytes,6,opt,name=load_module,json=loadModule,proto3" json:"load_module,omitempty"`
	// The version of the deployed source code (up to 128 bytes).
	SourceVersion *TruncatableString `protobuf:"bytes,7,opt,name=source_version,json=sourceVersion,proto3" json:"source_version,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StackTrace_StackFrame) Reset() {
	*x = StackTrace_StackFrame{}
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *StackTrace_StackFrame) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StackTrace_StackFrame) ProtoMessage() {}

func (x *StackTrace_StackFrame) ProtoReflect() protoreflect.Message {
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StackTrace_StackFrame.ProtoReflect.Descriptor instead.
func (*StackTrace_StackFrame) Descriptor() ([]byte, []int) {
	return file_google_devtools_cloudtrace_v2_trace_proto_rawDescGZIP(), []int{2, 0}
}

func (x *StackTrace_StackFrame) GetFunctionName() *TruncatableString {
	if x != nil {
		return x.FunctionName
	}
	return nil
}

func (x *StackTrace_StackFrame) GetOriginalFunctionName() *TruncatableString {
	if x != nil {
		return x.OriginalFunctionName
	}
	return nil
}

func (x *StackTrace_StackFrame) GetFileName() *TruncatableString {
	if x != nil {
		return x.FileName
	}
	return nil
}

func (x *StackTrace_StackFrame) GetLineNumber() int64 {
	if x != nil {
		return x.LineNumber
	}
	return 0
}

func (x *StackTrace_StackFrame) GetColumnNumber() int64 {
	if x != nil {
		return x.ColumnNumber
	}
	return 0
}

func (x *StackTrace_StackFrame) GetLoadModule() *Module {
	if x != nil {
		return x.LoadModule
	}
	return nil
}

func (x *StackTrace_StackFrame) GetSourceVersion() *TruncatableString {
	if x != nil {
		return x.SourceVersion
	}
	return nil
}

// A collection of stack frames, which can be truncated.
type StackTrace_StackFrames struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Stack frames in this call stack.
	Frame []*StackTrace_StackFrame `protobuf:"bytes,1,rep,name=frame,proto3" json:"frame,omitempty"`
	// 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.
	DroppedFramesCount int32 `protobuf:"varint,2,opt,name=dropped_frames_count,json=droppedFramesCount,proto3" json:"dropped_frames_count,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *StackTrace_StackFrames) Reset() {
	*x = StackTrace_StackFrames{}
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *StackTrace_StackFrames) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StackTrace_StackFrames) ProtoMessage() {}

func (x *StackTrace_StackFrames) ProtoReflect() protoreflect.Message {
	mi := &file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StackTrace_StackFrames.ProtoReflect.Descriptor instead.
func (*StackTrace_StackFrames) Descriptor() ([]byte, []int) {
	return file_google_devtools_cloudtrace_v2_trace_proto_rawDescGZIP(), []int{2, 1}
}

func (x *StackTrace_StackFrames) GetFrame() []*StackTrace_StackFrame {
	if x != nil {
		return x.Frame
	}
	return nil
}

func (x *StackTrace_StackFrames) GetDroppedFramesCount() int32 {
	if x != nil {
		return x.DroppedFramesCount
	}
	return 0
}

var File_google_devtools_cloudtrace_v2_trace_proto protoreflect.FileDescriptor

const file_google_devtools_cloudtrace_v2_trace_proto_rawDesc = "" +
	"\n" +
	")google/devtools/cloudtrace/v2/trace.proto\x12\x1dgoogle.devtools.cloudtrace.v2\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x17google/rpc/status.proto\"\xb0\x15\n" +
	"\x04Span\x12\x17\n" +
	"\x04name\x18\x01 \x01(\tB\x03\xe0A\x02R\x04name\x12\x1c\n" +
	"\aspan_id\x18\x02 \x01(\tB\x03\xe0A\x02R\x06spanId\x12$\n" +
	"\x0eparent_span_id\x18\x03 \x01(\tR\fparentSpanId\x12X\n" +
	"\fdisplay_name\x18\x04 \x01(\v20.google.devtools.cloudtrace.v2.TruncatableStringB\x03\xe0A\x02R\vdisplayName\x12>\n" +
	"\n" +
	"start_time\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampB\x03\xe0A\x02R\tstartTime\x12:\n" +
	"\bend_time\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampB\x03\xe0A\x02R\aendTime\x12N\n" +
	"\n" +
	"attributes\x18\a \x01(\v2..google.devtools.cloudtrace.v2.Span.AttributesR\n" +
	"attributes\x12J\n" +
	"\vstack_trace\x18\b \x01(\v2).google.devtools.cloudtrace.v2.StackTraceR\n" +
	"stackTrace\x12O\n" +
	"\vtime_events\x18\t \x01(\v2..google.devtools.cloudtrace.v2.Span.TimeEventsR\n" +
	"timeEvents\x12?\n" +
	"\x05links\x18\n" +
	" \x01(\v2).google.devtools.cloudtrace.v2.Span.LinksR\x05links\x12/\n" +
	"\x06status\x18\v \x01(\v2\x12.google.rpc.StatusB\x03\xe0A\x01R\x06status\x12]\n" +
	"\x1bsame_process_as_parent_span\x18\f \x01(\v2\x1a.google.protobuf.BoolValueB\x03\xe0A\x01R\x17sameProcessAsParentSpan\x12J\n" +
	"\x10child_span_count\x18\r \x01(\v2\x1b.google.protobuf.Int32ValueB\x03\xe0A\x01R\x0echildSpanCount\x12N\n" +
	"\tspan_kind\x18\x0e \x01(\x0e2,.google.devtools.cloudtrace.v2.Span.SpanKindB\x03\xe0A\x01R\bspanKind\x1a\x9d\x02\n" +
	"\n" +
	"Attributes\x12e\n" +
	"\rattribute_map\x18\x01 \x03(\v2@.google.devtools.cloudtrace.v2.Span.Attributes.AttributeMapEntryR\fattributeMap\x128\n" +
	"\x18dropped_attributes_count\x18\x02 \x01(\x05R\x16droppedAttributesCount\x1an\n" +
	"\x11AttributeMapEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12C\n" +
	"\x05value\x18\x02 \x01(\v2-.google.devtools.cloudtrace.v2.AttributeValueR\x05value:\x028\x01\x1a\xce\x05\n" +
	"\tTimeEvent\x12.\n" +
	"\x04time\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\x04time\x12Z\n" +
	"\n" +
	"annotation\x18\x02 \x01(\v28.google.devtools.cloudtrace.v2.Span.TimeEvent.AnnotationH\x00R\n" +
	"annotation\x12a\n" +
	"\rmessage_event\x18\x03 \x01(\v2:.google.devtools.cloudtrace.v2.Span.TimeEvent.MessageEventH\x00R\fmessageEvent\x1a\xb0\x01\n" +
	"\n" +
	"Annotation\x12R\n" +
	"\vdescription\x18\x01 \x01(\v20.google.devtools.cloudtrace.v2.TruncatableStringR\vdescription\x12N\n" +
	"\n" +
	"attributes\x18\x02 \x01(\v2..google.devtools.cloudtrace.v2.Span.AttributesR\n" +
	"attributes\x1a\x95\x02\n" +
	"\fMessageEvent\x12S\n" +
	"\x04type\x18\x01 \x01(\x0e2?.google.devtools.cloudtrace.v2.Span.TimeEvent.MessageEvent.TypeR\x04type\x12\x0e\n" +
	"\x02id\x18\x02 \x01(\x03R\x02id\x126\n" +
	"\x17uncompressed_size_bytes\x18\x03 \x01(\x03R\x15uncompressedSizeBytes\x122\n" +
	"\x15compressed_size_bytes\x18\x04 \x01(\x03R\x13compressedSizeBytes\"4\n" +
	"\x04Type\x12\x14\n" +
	"\x10TYPE_UNSPECIFIED\x10\x00\x12\b\n" +
	"\x04SENT\x10\x01\x12\f\n" +
	"\bRECEIVED\x10\x02B\a\n" +
	"\x05value\x1a\xd7\x01\n" +
	"\n" +
	"TimeEvents\x12L\n" +
	"\n" +
	"time_event\x18\x01 \x03(\v2-.google.devtools.cloudtrace.v2.Span.TimeEventR\ttimeEvent\x12:\n" +
	"\x19dropped_annotations_count\x18\x02 \x01(\x05R\x17droppedAnnotationsCount\x12?\n" +
	"\x1cdropped_message_events_count\x18\x03 \x01(\x05R\x19droppedMessageEventsCount\x1a\x9a\x02\n" +
	"\x04Link\x12\x19\n" +
	"\btrace_id\x18\x01 \x01(\tR\atraceId\x12\x17\n" +
	"\aspan_id\x18\x02 \x01(\tR\x06spanId\x12A\n" +
	"\x04type\x18\x03 \x01(\x0e2-.google.devtools.cloudtrace.v2.Span.Link.TypeR\x04type\x12N\n" +
	"\n" +
	"attributes\x18\x04 \x01(\v2..google.devtools.cloudtrace.v2.Span.AttributesR\n" +
	"attributes\"K\n" +
	"\x04Type\x12\x14\n" +
	"\x10TYPE_UNSPECIFIED\x10\x00\x12\x15\n" +
	"\x11CHILD_LINKED_SPAN\x10\x01\x12\x16\n" +
	"\x12PARENT_LINKED_SPAN\x10\x02\x1au\n" +
	"\x05Links\x12<\n" +
	"\x04link\x18\x01 \x03(\v2(.google.devtools.cloudtrace.v2.Span.LinkR\x04link\x12.\n" +
	"\x13dropped_links_count\x18\x02 \x01(\x05R\x11droppedLinksCount\"g\n" +
	"\bSpanKind\x12\x19\n" +
	"\x15SPAN_KIND_UNSPECIFIED\x10\x00\x12\f\n" +
	"\bINTERNAL\x10\x01\x12\n" +
	"\n" +
	"\x06SERVER\x10\x02\x12\n" +
	"\n" +
	"\x06CLIENT\x10\x03\x12\f\n" +
	"\bPRODUCER\x10\x04\x12\f\n" +
	"\bCONSUMER\x10\x05:S\xeaAP\n" +
	"\x1ecloudtrace.googleapis.com/Span\x12.projects/{project}/traces/{trace}/spans/{span}\"\xb0\x01\n" +
	"\x0eAttributeValue\x12U\n" +
	"\fstring_value\x18\x01 \x01(\v20.google.devtools.cloudtrace.v2.TruncatableStringH\x00R\vstringValue\x12\x1d\n" +
	"\tint_value\x18\x02 \x01(\x03H\x00R\bintValue\x12\x1f\n" +
	"\n" +
	"bool_value\x18\x03 \x01(\bH\x00R\tboolValueB\a\n" +
	"\x05value\"\xa7\x06\n" +
	"\n" +
	"StackTrace\x12X\n" +
	"\fstack_frames\x18\x01 \x01(\v25.google.devtools.cloudtrace.v2.StackTrace.StackFramesR\vstackFrames\x12-\n" +
	"\x13stack_trace_hash_id\x18\x02 \x01(\x03R\x10stackTraceHashId\x1a\x81\x04\n" +
	"\n" +
	"StackFrame\x12U\n" +
	"\rfunction_name\x18\x01 \x01(\v20.google.devtools.cloudtrace.v2.TruncatableStringR\ffunctionName\x12f\n" +
	"\x16original_function_name\x18\x02 \x01(\v20.google.devtools.cloudtrace.v2.TruncatableStringR\x14originalFunctionName\x12M\n" +
	"\tfile_name\x18\x03 \x01(\v20.google.devtools.cloudtrace.v2.TruncatableStringR\bfileName\x12\x1f\n" +
	"\vline_number\x18\x04 \x01(\x03R\n" +
	"lineNumber\x12#\n" +
	"\rcolumn_number\x18\x05 \x01(\x03R\fcolumnNumber\x12F\n" +
	"\vload_module\x18\x06 \x01(\v2%.google.devtools.cloudtrace.v2.ModuleR\n" +
	"loadModule\x12W\n" +
	"\x0esource_version\x18\a \x01(\v20.google.devtools.cloudtrace.v2.TruncatableStringR\rsourceVersion\x1a\x8b\x01\n" +
	"\vStackFrames\x12J\n" +
	"\x05frame\x18\x01 \x03(\v24.google.devtools.cloudtrace.v2.StackTrace.StackFrameR\x05frame\x120\n" +
	"\x14dropped_frames_count\x18\x02 \x01(\x05R\x12droppedFramesCount\"\x9f\x01\n" +
	"\x06Module\x12H\n" +
	"\x06module\x18\x01 \x01(\v20.google.devtools.cloudtrace.v2.TruncatableStringR\x06module\x12K\n" +
	"\bbuild_id\x18\x02 \x01(\v20.google.devtools.cloudtrace.v2.TruncatableStringR\abuildId\"[\n" +
	"\x11TruncatableString\x12\x14\n" +
	"\x05value\x18\x01 \x01(\tR\x05value\x120\n" +
	"\x14truncated_byte_count\x18\x02 \x01(\x05R\x12truncatedByteCountB\xad\x01\n" +
	"!com.google.devtools.cloudtrace.v2B\n" +
	"TraceProtoP\x01Z/cloud.google.com/go/trace/apiv2/tracepb;tracepb\xaa\x02\x15Google.Cloud.Trace.V2\xca\x02\x15Google\\Cloud\\Trace\\V2\xea\x02\x18Google::Cloud::Trace::V2b\x06proto3"

var (
	file_google_devtools_cloudtrace_v2_trace_proto_rawDescOnce sync.Once
	file_google_devtools_cloudtrace_v2_trace_proto_rawDescData []byte
)

func file_google_devtools_cloudtrace_v2_trace_proto_rawDescGZIP() []byte {
	file_google_devtools_cloudtrace_v2_trace_proto_rawDescOnce.Do(func() {
		file_google_devtools_cloudtrace_v2_trace_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_devtools_cloudtrace_v2_trace_proto_rawDesc), len(file_google_devtools_cloudtrace_v2_trace_proto_rawDesc)))
	})
	return file_google_devtools_cloudtrace_v2_trace_proto_rawDescData
}

var file_google_devtools_cloudtrace_v2_trace_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_google_devtools_cloudtrace_v2_trace_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
var file_google_devtools_cloudtrace_v2_trace_proto_goTypes = []any{
	(Span_SpanKind)(0),                    // 0: google.devtools.cloudtrace.v2.Span.SpanKind
	(Span_TimeEvent_MessageEvent_Type)(0), // 1: google.devtools.cloudtrace.v2.Span.TimeEvent.MessageEvent.Type
	(Span_Link_Type)(0),                   // 2: google.devtools.cloudtrace.v2.Span.Link.Type
	(*Span)(nil),                          // 3: google.devtools.cloudtrace.v2.Span
	(*AttributeValue)(nil),                // 4: google.devtools.cloudtrace.v2.AttributeValue
	(*StackTrace)(nil),                    // 5: google.devtools.cloudtrace.v2.StackTrace
	(*Module)(nil),                        // 6: google.devtools.cloudtrace.v2.Module
	(*TruncatableString)(nil),             // 7: google.devtools.cloudtrace.v2.TruncatableString
	(*Span_Attributes)(nil),               // 8: google.devtools.cloudtrace.v2.Span.Attributes
	(*Span_TimeEvent)(nil),                // 9: google.devtools.cloudtrace.v2.Span.TimeEvent
	(*Span_TimeEvents)(nil),               // 10: google.devtools.cloudtrace.v2.Span.TimeEvents
	(*Span_Link)(nil),                     // 11: google.devtools.cloudtrace.v2.Span.Link
	(*Span_Links)(nil),                    // 12: google.devtools.cloudtrace.v2.Span.Links
	nil,                                   // 13: google.devtools.cloudtrace.v2.Span.Attributes.AttributeMapEntry
	(*Span_TimeEvent_Annotation)(nil),     // 14: google.devtools.cloudtrace.v2.Span.TimeEvent.Annotation
	(*Span_TimeEvent_MessageEvent)(nil),   // 15: google.devtools.cloudtrace.v2.Span.TimeEvent.MessageEvent
	(*StackTrace_StackFrame)(nil),         // 16: google.devtools.cloudtrace.v2.StackTrace.StackFrame
	(*StackTrace_StackFrames)(nil),        // 17: google.devtools.cloudtrace.v2.StackTrace.StackFrames
	(*timestamppb.Timestamp)(nil),         // 18: google.protobuf.Timestamp
	(*status.Status)(nil),                 // 19: google.rpc.Status
	(*wrapperspb.BoolValue)(nil),          // 20: google.protobuf.BoolValue
	(*wrapperspb.Int32Value)(nil),         // 21: google.protobuf.Int32Value
}
var file_google_devtools_cloudtrace_v2_trace_proto_depIdxs = []int32{
	7,  // 0: google.devtools.cloudtrace.v2.Span.display_name:type_name -> google.devtools.cloudtrace.v2.TruncatableString
	18, // 1: google.devtools.cloudtrace.v2.Span.start_time:type_name -> google.protobuf.Timestamp
	18, // 2: google.devtools.cloudtrace.v2.Span.end_time:type_name -> google.protobuf.Timestamp
	8,  // 3: google.devtools.cloudtrace.v2.Span.attributes:type_name -> google.devtools.cloudtrace.v2.Span.Attributes
	5,  // 4: google.devtools.cloudtrace.v2.Span.stack_trace:type_name -> google.devtools.cloudtrace.v2.StackTrace
	10, // 5: google.devtools.cloudtrace.v2.Span.time_events:type_name -> google.devtools.cloudtrace.v2.Span.TimeEvents
	12, // 6: google.devtools.cloudtrace.v2.Span.links:type_name -> google.devtools.cloudtrace.v2.Span.Links
	19, // 7: google.devtools.cloudtrace.v2.Span.status:type_name -> google.rpc.Status
	20, // 8: google.devtools.cloudtrace.v2.Span.same_process_as_parent_span:type_name -> google.protobuf.BoolValue
	21, // 9: google.devtools.cloudtrace.v2.Span.child_span_count:type_name -> google.protobuf.Int32Value
	0,  // 10: google.devtools.cloudtrace.v2.Span.span_kind:type_name -> google.devtools.cloudtrace.v2.Span.SpanKind
	7,  // 11: google.devtools.cloudtrace.v2.AttributeValue.string_value:type_name -> google.devtools.cloudtrace.v2.TruncatableString
	17, // 12: google.devtools.cloudtrace.v2.StackTrace.stack_frames:type_name -> google.devtools.cloudtrace.v2.StackTrace.StackFrames
	7,  // 13: google.devtools.cloudtrace.v2.Module.module:type_name -> google.devtools.cloudtrace.v2.TruncatableString
	7,  // 14: google.devtools.cloudtrace.v2.Module.build_id:type_name -> google.devtools.cloudtrace.v2.TruncatableString
	13, // 15: google.devtools.cloudtrace.v2.Span.Attributes.attribute_map:type_name -> google.devtools.cloudtrace.v2.Span.Attributes.AttributeMapEntry
	18, // 16: google.devtools.cloudtrace.v2.Span.TimeEvent.time:type_name -> google.protobuf.Timestamp
	14, // 17: google.devtools.cloudtrace.v2.Span.TimeEvent.annotation:type_name -> google.devtools.cloudtrace.v2.Span.TimeEvent.Annotation
	15, // 18: google.devtools.cloudtrace.v2.Span.TimeEvent.message_event:type_name -> google.devtools.cloudtrace.v2.Span.TimeEvent.MessageEvent
	9,  // 19: google.devtools.cloudtrace.v2.Span.TimeEvents.time_event:type_name -> google.devtools.cloudtrace.v2.Span.TimeEvent
	2,  // 20: google.devtools.cloudtrace.v2.Span.Link.type:type_name -> google.devtools.cloudtrace.v2.Span.Link.Type
	8,  // 21: google.devtools.cloudtrace.v2.Span.Link.attributes:type_name -> google.devtools.cloudtrace.v2.Span.Attributes
	11, // 22: google.devtools.cloudtrace.v2.Span.Links.link:type_name -> google.devtools.cloudtrace.v2.Span.Link
	4,  // 23: google.devtools.cloudtrace.v2.Span.Attributes.AttributeMapEntry.value:type_name -> google.devtools.cloudtrace.v2.AttributeValue
	7,  // 24: google.devtools.cloudtrace.v2.Span.TimeEvent.Annotation.description:type_name -> google.devtools.cloudtrace.v2.TruncatableString
	8,  // 25: google.devtools.cloudtrace.v2.Span.TimeEvent.Annotation.attributes:type_name -> google.devtools.cloudtrace.v2.Span.Attributes
	1,  // 26: google.devtools.cloudtrace.v2.Span.TimeEvent.MessageEvent.type:type_name -> google.devtools.cloudtrace.v2.Span.TimeEvent.MessageEvent.Type
	7,  // 27: google.devtools.cloudtrace.v2.StackTrace.StackFrame.function_name:type_name -> google.devtools.cloudtrace.v2.TruncatableString
	7,  // 28: google.devtools.cloudtrace.v2.StackTrace.StackFrame.original_function_name:type_name -> google.devtools.cloudtrace.v2.TruncatableString
	7,  // 29: google.devtools.cloudtrace.v2.StackTrace.StackFrame.file_name:type_name -> google.devtools.cloudtrace.v2.TruncatableString
	6,  // 30: google.devtools.cloudtrace.v2.StackTrace.StackFrame.load_module:type_name -> google.devtools.cloudtrace.v2.Module
	7,  // 31: google.devtools.cloudtrace.v2.StackTrace.StackFrame.source_version:type_name -> google.devtools.cloudtrace.v2.TruncatableString
	16, // 32: google.devtools.cloudtrace.v2.StackTrace.StackFrames.frame:type_name -> google.devtools.cloudtrace.v2.StackTrace.StackFrame
	33, // [33:33] is the sub-list for method output_type
	33, // [33:33] is the sub-list for method input_type
	33, // [33:33] is the sub-list for extension type_name
	33, // [33:33] is the sub-list for extension extendee
	0,  // [0:33] is the sub-list for field type_name
}

func init() { file_google_devtools_cloudtrace_v2_trace_proto_init() }
func file_google_devtools_cloudtrace_v2_trace_proto_init() {
	if File_google_devtools_cloudtrace_v2_trace_proto != nil {
		return
	}
	file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[1].OneofWrappers = []any{
		(*AttributeValue_StringValue)(nil),
		(*AttributeValue_IntValue)(nil),
		(*AttributeValue_BoolValue)(nil),
	}
	file_google_devtools_cloudtrace_v2_trace_proto_msgTypes[6].OneofWrappers = []any{
		(*Span_TimeEvent_Annotation_)(nil),
		(*Span_TimeEvent_MessageEvent_)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_devtools_cloudtrace_v2_trace_proto_rawDesc), len(file_google_devtools_cloudtrace_v2_trace_proto_rawDesc)),
			NumEnums:      3,
			NumMessages:   15,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_google_devtools_cloudtrace_v2_trace_proto_goTypes,
		DependencyIndexes: file_google_devtools_cloudtrace_v2_trace_proto_depIdxs,
		EnumInfos:         file_google_devtools_cloudtrace_v2_trace_proto_enumTypes,
		MessageInfos:      file_google_devtools_cloudtrace_v2_trace_proto_msgTypes,
	}.Build()
	File_google_devtools_cloudtrace_v2_trace_proto = out.File
	file_google_devtools_cloudtrace_v2_trace_proto_goTypes = nil
	file_google_devtools_cloudtrace_v2_trace_proto_depIdxs = nil
}
