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

package qos

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

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

// CosmosResponseValidationError defines why an endpoint response was rejected.
type CosmosResponseValidationError int32

const (
	CosmosResponseValidationError_COSMOS_RESPONSE_VALIDATION_ERROR_UNSPECIFIED     CosmosResponseValidationError = 0
	CosmosResponseValidationError_COSMOS_RESPONSE_VALIDATION_ERROR_EMPTY           CosmosResponseValidationError = 1 // Response with no data.
	CosmosResponseValidationError_COSMOS_RESPONSE_VALIDATION_ERROR_UNMARSHAL       CosmosResponseValidationError = 2 // Response parsing failed
	CosmosResponseValidationError_COSMOS_RESPONSE_VALIDATION_ERROR_FORMAT_MISMATCH CosmosResponseValidationError = 3 // Expected JSON-RPC but got JSON, etc.
)

// Enum value maps for CosmosResponseValidationError.
var (
	CosmosResponseValidationError_name = map[int32]string{
		0: "COSMOS_RESPONSE_VALIDATION_ERROR_UNSPECIFIED",
		1: "COSMOS_RESPONSE_VALIDATION_ERROR_EMPTY",
		2: "COSMOS_RESPONSE_VALIDATION_ERROR_UNMARSHAL",
		3: "COSMOS_RESPONSE_VALIDATION_ERROR_FORMAT_MISMATCH",
	}
	CosmosResponseValidationError_value = map[string]int32{
		"COSMOS_RESPONSE_VALIDATION_ERROR_UNSPECIFIED":     0,
		"COSMOS_RESPONSE_VALIDATION_ERROR_EMPTY":           1,
		"COSMOS_RESPONSE_VALIDATION_ERROR_UNMARSHAL":       2,
		"COSMOS_RESPONSE_VALIDATION_ERROR_FORMAT_MISMATCH": 3,
	}
)

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

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

func (CosmosResponseValidationError) Descriptor() protoreflect.EnumDescriptor {
	return file_path_qos_cosmos_response_proto_enumTypes[0].Descriptor()
}

func (CosmosResponseValidationError) Type() protoreflect.EnumType {
	return &file_path_qos_cosmos_response_proto_enumTypes[0]
}

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

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

// CosmosResponseValidationType determines the format/protocol of the endpoint response
type CosmosResponseValidationType int32

const (
	CosmosResponseValidationType_COSMOS_RESPONSE_VALIDATION_TYPE_UNSPECIFIED  CosmosResponseValidationType = 0
	CosmosResponseValidationType_COSMOS_RESPONSE_VALIDATION_TYPE_JSONRPC      CosmosResponseValidationType = 1 // JSONRPC response
	CosmosResponseValidationType_COSMOS_RESPONSE_VALIDATION_TYPE_JSON         CosmosResponseValidationType = 2 // JSON response
	CosmosResponseValidationType_COSMOS_RESPONSE_VALIDATION_TYPE_UNSTRUCTURED CosmosResponseValidationType = 3 // Unrecognized response format: no validation is performed.
)

// Enum value maps for CosmosResponseValidationType.
var (
	CosmosResponseValidationType_name = map[int32]string{
		0: "COSMOS_RESPONSE_VALIDATION_TYPE_UNSPECIFIED",
		1: "COSMOS_RESPONSE_VALIDATION_TYPE_JSONRPC",
		2: "COSMOS_RESPONSE_VALIDATION_TYPE_JSON",
		3: "COSMOS_RESPONSE_VALIDATION_TYPE_UNSTRUCTURED",
	}
	CosmosResponseValidationType_value = map[string]int32{
		"COSMOS_RESPONSE_VALIDATION_TYPE_UNSPECIFIED":  0,
		"COSMOS_RESPONSE_VALIDATION_TYPE_JSONRPC":      1,
		"COSMOS_RESPONSE_VALIDATION_TYPE_JSON":         2,
		"COSMOS_RESPONSE_VALIDATION_TYPE_UNSTRUCTURED": 3,
	}
)

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

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

func (CosmosResponseValidationType) Descriptor() protoreflect.EnumDescriptor {
	return file_path_qos_cosmos_response_proto_enumTypes[1].Descriptor()
}

func (CosmosResponseValidationType) Type() protoreflect.EnumType {
	return &file_path_qos_cosmos_response_proto_enumTypes[1]
}

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

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

// CosmosEndpointResponseValidationResult contains the outcome of contacting an endpoint
type CosmosEndpointResponseValidationResult struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The type of response expected.
	// Examples: JSONRPC, JSON, integer, etc.
	ResponseValidationType CosmosResponseValidationType `protobuf:"varint,1,opt,name=response_validation_type,json=responseValidationType,proto3,enum=path.qos.CosmosResponseValidationType" json:"response_validation_type,omitempty"`
	// HTTP status code returned to the user.
	// It is derived from the endpoint response payload and/or HTTP status code.
	// e.g. for JSONRPC, it is based on the error code of the JSONRPC response.
	HttpStatusCode int32 `protobuf:"varint,2,opt,name=http_status_code,json=httpStatusCode,proto3" json:"http_status_code,omitempty"`
	// Validation error, if any.
	// This is set if parsing the endpoint response fails.
	ValidationError *CosmosResponseValidationError `protobuf:"varint,3,opt,name=validation_error,json=validationError,proto3,enum=path.qos.CosmosResponseValidationError,oneof" json:"validation_error,omitempty"`
	// The parsed response; JSON, JSONRPC, REST, unstructured, etc..
	// Only set if validation succeeded.
	//
	// Types that are valid to be assigned to ParsedResponse:
	//
	//	*CosmosEndpointResponseValidationResult_ResponseJsonrpc
	//	*CosmosEndpointResponseValidationResult_ResponseUnrecognized
	//	*CosmosEndpointResponseValidationResult_ResponseCometBftHealth
	//	*CosmosEndpointResponseValidationResult_ResponseCometBftStatus
	//	*CosmosEndpointResponseValidationResult_ResponseCosmosSdkStatus
	//	*CosmosEndpointResponseValidationResult_ResponseEvmJsonrpcChainId
	ParsedResponse isCosmosEndpointResponseValidationResult_ParsedResponse `protobuf_oneof:"parsed_response"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*CosmosEndpointResponseValidationResult) ProtoMessage() {}

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

func (x *CosmosEndpointResponseValidationResult) GetResponseValidationType() CosmosResponseValidationType {
	if x != nil {
		return x.ResponseValidationType
	}
	return CosmosResponseValidationType_COSMOS_RESPONSE_VALIDATION_TYPE_UNSPECIFIED
}

func (x *CosmosEndpointResponseValidationResult) GetHttpStatusCode() int32 {
	if x != nil {
		return x.HttpStatusCode
	}
	return 0
}

func (x *CosmosEndpointResponseValidationResult) GetValidationError() CosmosResponseValidationError {
	if x != nil && x.ValidationError != nil {
		return *x.ValidationError
	}
	return CosmosResponseValidationError_COSMOS_RESPONSE_VALIDATION_ERROR_UNSPECIFIED
}

func (x *CosmosEndpointResponseValidationResult) GetParsedResponse() isCosmosEndpointResponseValidationResult_ParsedResponse {
	if x != nil {
		return x.ParsedResponse
	}
	return nil
}

func (x *CosmosEndpointResponseValidationResult) GetResponseJsonrpc() *JsonRpcResponse {
	if x != nil {
		if x, ok := x.ParsedResponse.(*CosmosEndpointResponseValidationResult_ResponseJsonrpc); ok {
			return x.ResponseJsonrpc
		}
	}
	return nil
}

func (x *CosmosEndpointResponseValidationResult) GetResponseUnrecognized() *UnrecognizedResponse {
	if x != nil {
		if x, ok := x.ParsedResponse.(*CosmosEndpointResponseValidationResult_ResponseUnrecognized); ok {
			return x.ResponseUnrecognized
		}
	}
	return nil
}

func (x *CosmosEndpointResponseValidationResult) GetResponseCometBftHealth() *CosmosResponseCometBFTHealth {
	if x != nil {
		if x, ok := x.ParsedResponse.(*CosmosEndpointResponseValidationResult_ResponseCometBftHealth); ok {
			return x.ResponseCometBftHealth
		}
	}
	return nil
}

func (x *CosmosEndpointResponseValidationResult) GetResponseCometBftStatus() *CosmosResponseCometBFTStatus {
	if x != nil {
		if x, ok := x.ParsedResponse.(*CosmosEndpointResponseValidationResult_ResponseCometBftStatus); ok {
			return x.ResponseCometBftStatus
		}
	}
	return nil
}

func (x *CosmosEndpointResponseValidationResult) GetResponseCosmosSdkStatus() *CosmosResponseCosmosSDKStatus {
	if x != nil {
		if x, ok := x.ParsedResponse.(*CosmosEndpointResponseValidationResult_ResponseCosmosSdkStatus); ok {
			return x.ResponseCosmosSdkStatus
		}
	}
	return nil
}

func (x *CosmosEndpointResponseValidationResult) GetResponseEvmJsonrpcChainId() *CosmosResponseEVMJSONRPCChainID {
	if x != nil {
		if x, ok := x.ParsedResponse.(*CosmosEndpointResponseValidationResult_ResponseEvmJsonrpcChainId); ok {
			return x.ResponseEvmJsonrpcChainId
		}
	}
	return nil
}

type isCosmosEndpointResponseValidationResult_ParsedResponse interface {
	isCosmosEndpointResponseValidationResult_ParsedResponse()
}

type CosmosEndpointResponseValidationResult_ResponseJsonrpc struct {
	// JSONRPC response
	ResponseJsonrpc *JsonRpcResponse `protobuf:"bytes,4,opt,name=response_jsonrpc,json=responseJsonrpc,proto3,oneof"`
}

type CosmosEndpointResponseValidationResult_ResponseUnrecognized struct {
	// For unrecognized responses.
	// These are returned as-is to the user.
	ResponseUnrecognized *UnrecognizedResponse `protobuf:"bytes,7,opt,name=response_unrecognized,json=responseUnrecognized,proto3,oneof"`
}

type CosmosEndpointResponseValidationResult_ResponseCometBftHealth struct {
	// Response to CometBFT request using method `health`
	// Reference: https://docs.cometbft.com/v1.0/spec/rpc/#health
	ResponseCometBftHealth *CosmosResponseCometBFTHealth `protobuf:"bytes,8,opt,name=response_comet_bft_health,json=responseCometBftHealth,proto3,oneof"`
}

type CosmosEndpointResponseValidationResult_ResponseCometBftStatus struct {
	// Response to CometBFT request using method `status`
	// Reference: https://docs.cometbft.com/v1.0/spec/rpc/#status
	ResponseCometBftStatus *CosmosResponseCometBFTStatus `protobuf:"bytes,9,opt,name=response_comet_bft_status,json=responseCometBftStatus,proto3,oneof"`
}

type CosmosEndpointResponseValidationResult_ResponseCosmosSdkStatus struct {
	// Response to CosmosSDK request against API path `/cosmos/base/node/v1beta1/status`
	// Reference: https://docs.cosmos.network/api#tag/Service/operation/Status
	ResponseCosmosSdkStatus *CosmosResponseCosmosSDKStatus `protobuf:"bytes,10,opt,name=response_cosmos_sdk_status,json=responseCosmosSdkStatus,proto3,oneof"`
}

type CosmosEndpointResponseValidationResult_ResponseEvmJsonrpcChainId struct {
	// Response to Ethereum JSONRPC request using method `eth_chainId`
	// Reference: https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_chainid
	ResponseEvmJsonrpcChainId *CosmosResponseEVMJSONRPCChainID `protobuf:"bytes,11,opt,name=response_evm_jsonrpc_chain_id,json=responseEvmJsonrpcChainId,proto3,oneof"`
}

func (*CosmosEndpointResponseValidationResult_ResponseJsonrpc) isCosmosEndpointResponseValidationResult_ParsedResponse() {
}

func (*CosmosEndpointResponseValidationResult_ResponseUnrecognized) isCosmosEndpointResponseValidationResult_ParsedResponse() {
}

func (*CosmosEndpointResponseValidationResult_ResponseCometBftHealth) isCosmosEndpointResponseValidationResult_ParsedResponse() {
}

func (*CosmosEndpointResponseValidationResult_ResponseCometBftStatus) isCosmosEndpointResponseValidationResult_ParsedResponse() {
}

func (*CosmosEndpointResponseValidationResult_ResponseCosmosSdkStatus) isCosmosEndpointResponseValidationResult_ParsedResponse() {
}

func (*CosmosEndpointResponseValidationResult_ResponseEvmJsonrpcChainId) isCosmosEndpointResponseValidationResult_ParsedResponse() {
}

// CosmosResponseCometBFTHealth stores the response to a CometBFT `health` method request
type CosmosResponseCometBFTHealth struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	HealthStatus  bool                   `protobuf:"varint,1,opt,name=health_status,json=healthStatus,proto3" json:"health_status,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CosmosResponseCometBFTHealth) ProtoMessage() {}

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

func (x *CosmosResponseCometBFTHealth) GetHealthStatus() bool {
	if x != nil {
		return x.HealthStatus
	}
	return false
}

// CosmosResponseCometBFTStatus stores the response to a CometBFT `status` method request
type CosmosResponseCometBFTStatus struct {
	state             protoimpl.MessageState `protogen:"open.v1"`
	ChainId           string                 `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	CatchingUp        bool                   `protobuf:"varint,2,opt,name=catching_up,json=catchingUp,proto3" json:"catching_up,omitempty"`
	LatestBlockHeight string                 `protobuf:"bytes,3,opt,name=latest_block_height,json=latestBlockHeight,proto3" json:"latest_block_height,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

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

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

func (*CosmosResponseCometBFTStatus) ProtoMessage() {}

func (x *CosmosResponseCometBFTStatus) ProtoReflect() protoreflect.Message {
	mi := &file_path_qos_cosmos_response_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 CosmosResponseCometBFTStatus.ProtoReflect.Descriptor instead.
func (*CosmosResponseCometBFTStatus) Descriptor() ([]byte, []int) {
	return file_path_qos_cosmos_response_proto_rawDescGZIP(), []int{2}
}

func (x *CosmosResponseCometBFTStatus) GetChainId() string {
	if x != nil {
		return x.ChainId
	}
	return ""
}

func (x *CosmosResponseCometBFTStatus) GetCatchingUp() bool {
	if x != nil {
		return x.CatchingUp
	}
	return false
}

func (x *CosmosResponseCometBFTStatus) GetLatestBlockHeight() string {
	if x != nil {
		return x.LatestBlockHeight
	}
	return ""
}

// CosmosResponseCosmosSDKStatus stores the response to a CosmosSDK `/cosmos/base/node/v1beta1/status` request
type CosmosResponseCosmosSDKStatus struct {
	state             protoimpl.MessageState `protogen:"open.v1"`
	LatestBlockHeight uint64                 `protobuf:"varint,1,opt,name=latest_block_height,json=latestBlockHeight,proto3" json:"latest_block_height,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

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

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

func (*CosmosResponseCosmosSDKStatus) ProtoMessage() {}

func (x *CosmosResponseCosmosSDKStatus) ProtoReflect() protoreflect.Message {
	mi := &file_path_qos_cosmos_response_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 CosmosResponseCosmosSDKStatus.ProtoReflect.Descriptor instead.
func (*CosmosResponseCosmosSDKStatus) Descriptor() ([]byte, []int) {
	return file_path_qos_cosmos_response_proto_rawDescGZIP(), []int{3}
}

func (x *CosmosResponseCosmosSDKStatus) GetLatestBlockHeight() uint64 {
	if x != nil {
		return x.LatestBlockHeight
	}
	return 0
}

// CosmosResponseEVMJSONRPCChainID stores the response to an `eth_chainId` request
// https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_chainid
type CosmosResponseEVMJSONRPCChainID struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The HTTP status code received from the endpoint
	HttpStatusCode int32 `protobuf:"varint,1,opt,name=http_status_code,json=httpStatusCode,proto3" json:"http_status_code,omitempty"`
	// The chain ID value returned in the response
	EvmChainId    string `protobuf:"bytes,2,opt,name=evm_chain_id,json=evmChainId,proto3" json:"evm_chain_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CosmosResponseEVMJSONRPCChainID) ProtoMessage() {}

func (x *CosmosResponseEVMJSONRPCChainID) ProtoReflect() protoreflect.Message {
	mi := &file_path_qos_cosmos_response_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 CosmosResponseEVMJSONRPCChainID.ProtoReflect.Descriptor instead.
func (*CosmosResponseEVMJSONRPCChainID) Descriptor() ([]byte, []int) {
	return file_path_qos_cosmos_response_proto_rawDescGZIP(), []int{4}
}

func (x *CosmosResponseEVMJSONRPCChainID) GetHttpStatusCode() int32 {
	if x != nil {
		return x.HttpStatusCode
	}
	return 0
}

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

// UnrecognizedResponse handles responses that are not validated before being returned to the user.
type UnrecognizedResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Length of payload received from the endpoint.
	EndpointPayloadLength uint32 `protobuf:"varint,1,opt,name=endpoint_payload_length,json=endpointPayloadLength,proto3" json:"endpoint_payload_length,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

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

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

func (*UnrecognizedResponse) ProtoMessage() {}

func (x *UnrecognizedResponse) ProtoReflect() protoreflect.Message {
	mi := &file_path_qos_cosmos_response_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 UnrecognizedResponse.ProtoReflect.Descriptor instead.
func (*UnrecognizedResponse) Descriptor() ([]byte, []int) {
	return file_path_qos_cosmos_response_proto_rawDescGZIP(), []int{5}
}

func (x *UnrecognizedResponse) GetEndpointPayloadLength() uint32 {
	if x != nil {
		return x.EndpointPayloadLength
	}
	return 0
}

var File_path_qos_cosmos_response_proto protoreflect.FileDescriptor

const file_path_qos_cosmos_response_proto_rawDesc = "" +
	"\n" +
	"\x1epath/qos/cosmos_response.proto\x12\bpath.qos\x1a\x16path/qos/jsonrpc.proto\"\xa3\a\n" +
	"&CosmosEndpointResponseValidationResult\x12`\n" +
	"\x18response_validation_type\x18\x01 \x01(\x0e2&.path.qos.CosmosResponseValidationTypeR\x16responseValidationType\x12(\n" +
	"\x10http_status_code\x18\x02 \x01(\x05R\x0ehttpStatusCode\x12W\n" +
	"\x10validation_error\x18\x03 \x01(\x0e2'.path.qos.CosmosResponseValidationErrorH\x01R\x0fvalidationError\x88\x01\x01\x12F\n" +
	"\x10response_jsonrpc\x18\x04 \x01(\v2\x19.path.qos.JsonRpcResponseH\x00R\x0fresponseJsonrpc\x12U\n" +
	"\x15response_unrecognized\x18\a \x01(\v2\x1e.path.qos.UnrecognizedResponseH\x00R\x14responseUnrecognized\x12c\n" +
	"\x19response_comet_bft_health\x18\b \x01(\v2&.path.qos.CosmosResponseCometBFTHealthH\x00R\x16responseCometBftHealth\x12c\n" +
	"\x19response_comet_bft_status\x18\t \x01(\v2&.path.qos.CosmosResponseCometBFTStatusH\x00R\x16responseCometBftStatus\x12f\n" +
	"\x1aresponse_cosmos_sdk_status\x18\n" +
	" \x01(\v2'.path.qos.CosmosResponseCosmosSDKStatusH\x00R\x17responseCosmosSdkStatus\x12m\n" +
	"\x1dresponse_evm_jsonrpc_chain_id\x18\v \x01(\v2).path.qos.CosmosResponseEVMJSONRPCChainIDH\x00R\x19responseEvmJsonrpcChainIdB\x11\n" +
	"\x0fparsed_responseB\x13\n" +
	"\x11_validation_errorJ\x04\b\x05\x10\x06J\x04\b\x06\x10\aR\x0fresponse_healthR\x0fresponse_status\"C\n" +
	"\x1cCosmosResponseCometBFTHealth\x12#\n" +
	"\rhealth_status\x18\x01 \x01(\bR\fhealthStatus\"\x8a\x01\n" +
	"\x1cCosmosResponseCometBFTStatus\x12\x19\n" +
	"\bchain_id\x18\x01 \x01(\tR\achainId\x12\x1f\n" +
	"\vcatching_up\x18\x02 \x01(\bR\n" +
	"catchingUp\x12.\n" +
	"\x13latest_block_height\x18\x03 \x01(\tR\x11latestBlockHeight\"O\n" +
	"\x1dCosmosResponseCosmosSDKStatus\x12.\n" +
	"\x13latest_block_height\x18\x01 \x01(\x04R\x11latestBlockHeight\"m\n" +
	"\x1fCosmosResponseEVMJSONRPCChainID\x12(\n" +
	"\x10http_status_code\x18\x01 \x01(\x05R\x0ehttpStatusCode\x12 \n" +
	"\fevm_chain_id\x18\x02 \x01(\tR\n" +
	"evmChainId\"N\n" +
	"\x14UnrecognizedResponse\x126\n" +
	"\x17endpoint_payload_length\x18\x01 \x01(\rR\x15endpointPayloadLength*\xe3\x01\n" +
	"\x1dCosmosResponseValidationError\x120\n" +
	",COSMOS_RESPONSE_VALIDATION_ERROR_UNSPECIFIED\x10\x00\x12*\n" +
	"&COSMOS_RESPONSE_VALIDATION_ERROR_EMPTY\x10\x01\x12.\n" +
	"*COSMOS_RESPONSE_VALIDATION_ERROR_UNMARSHAL\x10\x02\x124\n" +
	"0COSMOS_RESPONSE_VALIDATION_ERROR_FORMAT_MISMATCH\x10\x03*\xd8\x01\n" +
	"\x1cCosmosResponseValidationType\x12/\n" +
	"+COSMOS_RESPONSE_VALIDATION_TYPE_UNSPECIFIED\x10\x00\x12+\n" +
	"'COSMOS_RESPONSE_VALIDATION_TYPE_JSONRPC\x10\x01\x12(\n" +
	"$COSMOS_RESPONSE_VALIDATION_TYPE_JSON\x10\x02\x120\n" +
	",COSMOS_RESPONSE_VALIDATION_TYPE_UNSTRUCTURED\x10\x03B0Z.github.com/buildwithgrove/path/observation/qosb\x06proto3"

var (
	file_path_qos_cosmos_response_proto_rawDescOnce sync.Once
	file_path_qos_cosmos_response_proto_rawDescData []byte
)

func file_path_qos_cosmos_response_proto_rawDescGZIP() []byte {
	file_path_qos_cosmos_response_proto_rawDescOnce.Do(func() {
		file_path_qos_cosmos_response_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_path_qos_cosmos_response_proto_rawDesc), len(file_path_qos_cosmos_response_proto_rawDesc)))
	})
	return file_path_qos_cosmos_response_proto_rawDescData
}

var file_path_qos_cosmos_response_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_path_qos_cosmos_response_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_path_qos_cosmos_response_proto_goTypes = []any{
	(CosmosResponseValidationError)(0),             // 0: path.qos.CosmosResponseValidationError
	(CosmosResponseValidationType)(0),              // 1: path.qos.CosmosResponseValidationType
	(*CosmosEndpointResponseValidationResult)(nil), // 2: path.qos.CosmosEndpointResponseValidationResult
	(*CosmosResponseCometBFTHealth)(nil),           // 3: path.qos.CosmosResponseCometBFTHealth
	(*CosmosResponseCometBFTStatus)(nil),           // 4: path.qos.CosmosResponseCometBFTStatus
	(*CosmosResponseCosmosSDKStatus)(nil),          // 5: path.qos.CosmosResponseCosmosSDKStatus
	(*CosmosResponseEVMJSONRPCChainID)(nil),        // 6: path.qos.CosmosResponseEVMJSONRPCChainID
	(*UnrecognizedResponse)(nil),                   // 7: path.qos.UnrecognizedResponse
	(*JsonRpcResponse)(nil),                        // 8: path.qos.JsonRpcResponse
}
var file_path_qos_cosmos_response_proto_depIdxs = []int32{
	1, // 0: path.qos.CosmosEndpointResponseValidationResult.response_validation_type:type_name -> path.qos.CosmosResponseValidationType
	0, // 1: path.qos.CosmosEndpointResponseValidationResult.validation_error:type_name -> path.qos.CosmosResponseValidationError
	8, // 2: path.qos.CosmosEndpointResponseValidationResult.response_jsonrpc:type_name -> path.qos.JsonRpcResponse
	7, // 3: path.qos.CosmosEndpointResponseValidationResult.response_unrecognized:type_name -> path.qos.UnrecognizedResponse
	3, // 4: path.qos.CosmosEndpointResponseValidationResult.response_comet_bft_health:type_name -> path.qos.CosmosResponseCometBFTHealth
	4, // 5: path.qos.CosmosEndpointResponseValidationResult.response_comet_bft_status:type_name -> path.qos.CosmosResponseCometBFTStatus
	5, // 6: path.qos.CosmosEndpointResponseValidationResult.response_cosmos_sdk_status:type_name -> path.qos.CosmosResponseCosmosSDKStatus
	6, // 7: path.qos.CosmosEndpointResponseValidationResult.response_evm_jsonrpc_chain_id:type_name -> path.qos.CosmosResponseEVMJSONRPCChainID
	8, // [8:8] is the sub-list for method output_type
	8, // [8:8] is the sub-list for method input_type
	8, // [8:8] is the sub-list for extension type_name
	8, // [8:8] is the sub-list for extension extendee
	0, // [0:8] is the sub-list for field type_name
}

func init() { file_path_qos_cosmos_response_proto_init() }
func file_path_qos_cosmos_response_proto_init() {
	if File_path_qos_cosmos_response_proto != nil {
		return
	}
	file_path_qos_jsonrpc_proto_init()
	file_path_qos_cosmos_response_proto_msgTypes[0].OneofWrappers = []any{
		(*CosmosEndpointResponseValidationResult_ResponseJsonrpc)(nil),
		(*CosmosEndpointResponseValidationResult_ResponseUnrecognized)(nil),
		(*CosmosEndpointResponseValidationResult_ResponseCometBftHealth)(nil),
		(*CosmosEndpointResponseValidationResult_ResponseCometBftStatus)(nil),
		(*CosmosEndpointResponseValidationResult_ResponseCosmosSdkStatus)(nil),
		(*CosmosEndpointResponseValidationResult_ResponseEvmJsonrpcChainId)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_path_qos_cosmos_response_proto_rawDesc), len(file_path_qos_cosmos_response_proto_rawDesc)),
			NumEnums:      2,
			NumMessages:   6,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_path_qos_cosmos_response_proto_goTypes,
		DependencyIndexes: file_path_qos_cosmos_response_proto_depIdxs,
		EnumInfos:         file_path_qos_cosmos_response_proto_enumTypes,
		MessageInfos:      file_path_qos_cosmos_response_proto_msgTypes,
	}.Build()
	File_path_qos_cosmos_response_proto = out.File
	file_path_qos_cosmos_response_proto_goTypes = nil
	file_path_qos_cosmos_response_proto_depIdxs = nil
}
