// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        v5.29.3
// source: path/qos/cosmos.proto

package qos

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

	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)

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)
)

// CosmosRequestObservations captures all observations made while serving a single Cosmos blockchain service request.
type CosmosRequestObservations struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// cosmos_chain_id is the blockchain identifier in the Cosmos ecosystem.
	CosmosChainId string `protobuf:"bytes,8,opt,name=cosmos_chain_id,json=cosmosChainId,proto3" json:"cosmos_chain_id,omitempty"`
	// evm_chain_id is the EVM blockchain identifier for the Cosmos chain that has native EVM support, e.g. XRPLEVM, etc...
	EvmChainId string `protobuf:"bytes,7,opt,name=evm_chain_id,json=evmChainId,proto3" json:"evm_chain_id,omitempty"`
	// service_id is the Pocket Network service identifier.
	ServiceId string `protobuf:"bytes,2,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"`
	// The origin of the request
	RequestOrigin RequestOrigin `protobuf:"varint,3,opt,name=request_origin,json=requestOrigin,proto3,enum=path.qos.RequestOrigin" json:"request_origin,omitempty"`
	// Profiles of the requests: backend service selection and format determination
	// This field supports batch requests where multiple request profiles can be processed
	RequestProfiles []*CosmosRequestProfile `protobuf:"bytes,9,rep,name=request_profiles,json=requestProfiles,proto3" json:"request_profiles,omitempty"`
	// Request-level error, i.e. failed without any endpoint responses.
	// Examples:
	//   - Failed to parse request
	//   - No endpoint response received, i.e. any protocol-level error.
	RequestLevelError *RequestError `protobuf:"bytes,5,opt,name=request_level_error,json=requestLevelError,proto3,oneof" json:"request_level_error,omitempty"`
	// Cosmos-specific observations from endpoint(s) that responded to the service request.
	EndpointObservations []*CosmosEndpointObservation `protobuf:"bytes,6,rep,name=endpoint_observations,json=endpointObservations,proto3" json:"endpoint_observations,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

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

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

func (*CosmosRequestObservations) ProtoMessage() {}

func (x *CosmosRequestObservations) ProtoReflect() protoreflect.Message {
	mi := &file_path_qos_cosmos_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 CosmosRequestObservations.ProtoReflect.Descriptor instead.
func (*CosmosRequestObservations) Descriptor() ([]byte, []int) {
	return file_path_qos_cosmos_proto_rawDescGZIP(), []int{0}
}

func (x *CosmosRequestObservations) GetCosmosChainId() string {
	if x != nil {
		return x.CosmosChainId
	}
	return ""
}

func (x *CosmosRequestObservations) GetEvmChainId() string {
	if x != nil {
		return x.EvmChainId
	}
	return ""
}

func (x *CosmosRequestObservations) GetServiceId() string {
	if x != nil {
		return x.ServiceId
	}
	return ""
}

func (x *CosmosRequestObservations) GetRequestOrigin() RequestOrigin {
	if x != nil {
		return x.RequestOrigin
	}
	return RequestOrigin_REQUEST_ORIGIN_UNSPECIFIED
}

func (x *CosmosRequestObservations) GetRequestProfiles() []*CosmosRequestProfile {
	if x != nil {
		return x.RequestProfiles
	}
	return nil
}

func (x *CosmosRequestObservations) GetRequestLevelError() *RequestError {
	if x != nil {
		return x.RequestLevelError
	}
	return nil
}

func (x *CosmosRequestObservations) GetEndpointObservations() []*CosmosEndpointObservation {
	if x != nil {
		return x.EndpointObservations
	}
	return nil
}

// CosmosEndpointObservation stores a single observation from an endpoint
type CosmosEndpointObservation struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Address of the endpoint handling the request
	EndpointAddr string `protobuf:"bytes,1,opt,name=endpoint_addr,json=endpointAddr,proto3" json:"endpoint_addr,omitempty"`
	// Result of validating the endpoint response.
	// Examples:
	//   - invalid JSONRPC response
	//   - unexpected format of response to REST request.
	EndpointResponseValidationResult *CosmosEndpointResponseValidationResult `protobuf:"bytes,2,opt,name=endpoint_response_validation_result,json=endpointResponseValidationResult,proto3" json:"endpoint_response_validation_result,omitempty"`
	unknownFields                    protoimpl.UnknownFields
	sizeCache                        protoimpl.SizeCache
}

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

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

func (*CosmosEndpointObservation) ProtoMessage() {}

func (x *CosmosEndpointObservation) ProtoReflect() protoreflect.Message {
	mi := &file_path_qos_cosmos_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 CosmosEndpointObservation.ProtoReflect.Descriptor instead.
func (*CosmosEndpointObservation) Descriptor() ([]byte, []int) {
	return file_path_qos_cosmos_proto_rawDescGZIP(), []int{1}
}

func (x *CosmosEndpointObservation) GetEndpointAddr() string {
	if x != nil {
		return x.EndpointAddr
	}
	return ""
}

func (x *CosmosEndpointObservation) GetEndpointResponseValidationResult() *CosmosEndpointResponseValidationResult {
	if x != nil {
		return x.EndpointResponseValidationResult
	}
	return nil
}

var File_path_qos_cosmos_proto protoreflect.FileDescriptor

const file_path_qos_cosmos_proto_rawDesc = "" +
	"\n" +
	"\x15path/qos/cosmos.proto\x12\bpath.qos\x1a\x1dpath/qos/cosmos_request.proto\x1a\x1epath/qos/cosmos_response.proto\x1a\x1dpath/qos/request_origin.proto\x1a\x1cpath/qos/request_error.proto\"\xf5\x03\n" +
	"\x19CosmosRequestObservations\x12&\n" +
	"\x0fcosmos_chain_id\x18\b \x01(\tR\rcosmosChainId\x12 \n" +
	"\fevm_chain_id\x18\a \x01(\tR\n" +
	"evmChainId\x12\x1d\n" +
	"\n" +
	"service_id\x18\x02 \x01(\tR\tserviceId\x12>\n" +
	"\x0erequest_origin\x18\x03 \x01(\x0e2\x17.path.qos.RequestOriginR\rrequestOrigin\x12I\n" +
	"\x10request_profiles\x18\t \x03(\v2\x1e.path.qos.CosmosRequestProfileR\x0frequestProfiles\x12K\n" +
	"\x13request_level_error\x18\x05 \x01(\v2\x16.path.qos.RequestErrorH\x00R\x11requestLevelError\x88\x01\x01\x12X\n" +
	"\x15endpoint_observations\x18\x06 \x03(\v2#.path.qos.CosmosEndpointObservationR\x14endpointObservationsB\x16\n" +
	"\x14_request_level_errorJ\x04\b\x01\x10\x02J\x04\b\x04\x10\x05R\bchain_idR\x0frequest_profile\"\xc1\x01\n" +
	"\x19CosmosEndpointObservation\x12#\n" +
	"\rendpoint_addr\x18\x01 \x01(\tR\fendpointAddr\x12\x7f\n" +
	"#endpoint_response_validation_result\x18\x02 \x01(\v20.path.qos.CosmosEndpointResponseValidationResultR endpointResponseValidationResultB0Z.github.com/buildwithgrove/path/observation/qosb\x06proto3"

var (
	file_path_qos_cosmos_proto_rawDescOnce sync.Once
	file_path_qos_cosmos_proto_rawDescData []byte
)

func file_path_qos_cosmos_proto_rawDescGZIP() []byte {
	file_path_qos_cosmos_proto_rawDescOnce.Do(func() {
		file_path_qos_cosmos_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_path_qos_cosmos_proto_rawDesc), len(file_path_qos_cosmos_proto_rawDesc)))
	})
	return file_path_qos_cosmos_proto_rawDescData
}

var file_path_qos_cosmos_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_path_qos_cosmos_proto_goTypes = []any{
	(*CosmosRequestObservations)(nil),              // 0: path.qos.CosmosRequestObservations
	(*CosmosEndpointObservation)(nil),              // 1: path.qos.CosmosEndpointObservation
	(RequestOrigin)(0),                             // 2: path.qos.RequestOrigin
	(*CosmosRequestProfile)(nil),                   // 3: path.qos.CosmosRequestProfile
	(*RequestError)(nil),                           // 4: path.qos.RequestError
	(*CosmosEndpointResponseValidationResult)(nil), // 5: path.qos.CosmosEndpointResponseValidationResult
}
var file_path_qos_cosmos_proto_depIdxs = []int32{
	2, // 0: path.qos.CosmosRequestObservations.request_origin:type_name -> path.qos.RequestOrigin
	3, // 1: path.qos.CosmosRequestObservations.request_profiles:type_name -> path.qos.CosmosRequestProfile
	4, // 2: path.qos.CosmosRequestObservations.request_level_error:type_name -> path.qos.RequestError
	1, // 3: path.qos.CosmosRequestObservations.endpoint_observations:type_name -> path.qos.CosmosEndpointObservation
	5, // 4: path.qos.CosmosEndpointObservation.endpoint_response_validation_result:type_name -> path.qos.CosmosEndpointResponseValidationResult
	5, // [5:5] is the sub-list for method output_type
	5, // [5:5] is the sub-list for method input_type
	5, // [5:5] is the sub-list for extension type_name
	5, // [5:5] is the sub-list for extension extendee
	0, // [0:5] is the sub-list for field type_name
}

func init() { file_path_qos_cosmos_proto_init() }
func file_path_qos_cosmos_proto_init() {
	if File_path_qos_cosmos_proto != nil {
		return
	}
	file_path_qos_cosmos_request_proto_init()
	file_path_qos_cosmos_response_proto_init()
	file_path_qos_request_origin_proto_init()
	file_path_qos_request_error_proto_init()
	file_path_qos_cosmos_proto_msgTypes[0].OneofWrappers = []any{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_path_qos_cosmos_proto_rawDesc), len(file_path_qos_cosmos_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   2,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_path_qos_cosmos_proto_goTypes,
		DependencyIndexes: file_path_qos_cosmos_proto_depIdxs,
		MessageInfos:      file_path_qos_cosmos_proto_msgTypes,
	}.Build()
	File_path_qos_cosmos_proto = out.File
	file_path_qos_cosmos_proto_goTypes = nil
	file_path_qos_cosmos_proto_depIdxs = nil
}
