// This file was autogenerated by go-to-protobuf. Do not edit it manually!

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        (unknown)
// source: agntcy/identity/core/v1alpha1/id.proto

package identity_core_sdk_go

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

// ResolverMetadata represents a set of data describing the ID including mechanisms such as:
//   - cryptographic public keys - used to authenticate itself and prove
//     association with the ID
//   - service - ways of communicating with the node that published the document
//
// A ResolverMetadata can be retrieved by resolving an ID.
type ResolverMetadata struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The ID
	// The metadata below is related as claims to the ID
	Id *string `protobuf:"bytes,1,opt,name=id,proto3,oneof" json:"id,omitempty"`
	// VerificationMethod is a list of cryptographic public keys, which can be used
	// to authenticate or authorize interactions with the entities represented by the ID.
	VerificationMethod []*VerificationMethod `protobuf:"bytes,2,rep,name=verification_method,json=verificationMethod,proto3" json:"verification_method,omitempty"`
	// Service is used in ResolverMetadatas to express ways of communicating with
	// the node that published the document.
	Service []*Service `protobuf:"bytes,3,rep,name=service,proto3" json:"service,omitempty"`
	// AssertionMethod is used to specify how the entity represented by the ID
	// is expected to express claims, such as for the purposes of issuing a VCs.
	AssertionMethod []string `protobuf:"bytes,4,rep,name=assertion_method,json=assertionMethod,proto3" json:"assertion_method,omitempty"`
	// A controller is an entity that is authorized to make changes to a Resolver Metadata.
	Controller    *string `protobuf:"bytes,5,opt,name=controller,proto3,oneof" json:"controller,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ResolverMetadata) ProtoMessage() {}

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

func (x *ResolverMetadata) GetId() string {
	if x != nil && x.Id != nil {
		return *x.Id
	}
	return ""
}

func (x *ResolverMetadata) GetVerificationMethod() []*VerificationMethod {
	if x != nil {
		return x.VerificationMethod
	}
	return nil
}

func (x *ResolverMetadata) GetService() []*Service {
	if x != nil {
		return x.Service
	}
	return nil
}

func (x *ResolverMetadata) GetAssertionMethod() []string {
	if x != nil {
		return x.AssertionMethod
	}
	return nil
}

func (x *ResolverMetadata) GetController() string {
	if x != nil && x.Controller != nil {
		return *x.Controller
	}
	return ""
}

// Service is used in ResolverMetadata to express ways of communicating with
// the node that published the document.
type Service struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ServiceEndpoint is a network address, such as an HTTP URL, of the
	// node.
	ServiceEndpoint []string `protobuf:"bytes,1,rep,name=service_endpoint,json=serviceEndpoint,proto3" json:"service_endpoint,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*Service) ProtoMessage() {}

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

func (x *Service) GetServiceEndpoint() []string {
	if x != nil {
		return x.ServiceEndpoint
	}
	return nil
}

// VerificationMethod expresses verification methods, such as cryptographic
// public keys, which can be used to authenticate or authorize interactions
// with the entities represented by the ID. It is a part of the ResolverMetadata.
type VerificationMethod struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// A unique id of the verification method.
	Id *string `protobuf:"bytes,1,opt,name=id,proto3,oneof" json:"id,omitempty"`
	// The public key used for the verification method.
	PublicKeyJwk  *Jwk `protobuf:"bytes,2,opt,name=public_key_jwk,json=publicKeyJwk,proto3,oneof" json:"public_key_jwk,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*VerificationMethod) ProtoMessage() {}

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

func (x *VerificationMethod) GetId() string {
	if x != nil && x.Id != nil {
		return *x.Id
	}
	return ""
}

func (x *VerificationMethod) GetPublicKeyJwk() *Jwk {
	if x != nil {
		return x.PublicKeyJwk
	}
	return nil
}

var File_agntcy_identity_core_v1alpha1_id_proto protoreflect.FileDescriptor

const file_agntcy_identity_core_v1alpha1_id_proto_rawDesc = "" +
	"\n" +
	"&agntcy/identity/core/v1alpha1/id.proto\x12\x1dagntcy.identity.core.v1alpha1\x1a'agntcy/identity/core/v1alpha1/jwk.proto\"\xb3\x02\n" +
	"\x10ResolverMetadata\x12\x13\n" +
	"\x02id\x18\x01 \x01(\tH\x00R\x02id\x88\x01\x01\x12b\n" +
	"\x13verification_method\x18\x02 \x03(\v21.agntcy.identity.core.v1alpha1.VerificationMethodR\x12verificationMethod\x12@\n" +
	"\aservice\x18\x03 \x03(\v2&.agntcy.identity.core.v1alpha1.ServiceR\aservice\x12)\n" +
	"\x10assertion_method\x18\x04 \x03(\tR\x0fassertionMethod\x12#\n" +
	"\n" +
	"controller\x18\x05 \x01(\tH\x01R\n" +
	"controller\x88\x01\x01B\x05\n" +
	"\x03_idB\r\n" +
	"\v_controller\"4\n" +
	"\aService\x12)\n" +
	"\x10service_endpoint\x18\x01 \x03(\tR\x0fserviceEndpoint\"\x92\x01\n" +
	"\x12VerificationMethod\x12\x13\n" +
	"\x02id\x18\x01 \x01(\tH\x00R\x02id\x88\x01\x01\x12M\n" +
	"\x0epublic_key_jwk\x18\x02 \x01(\v2\".agntcy.identity.core.v1alpha1.JwkH\x01R\fpublicKeyJwk\x88\x01\x01B\x05\n" +
	"\x03_idB\x11\n" +
	"\x0f_public_key_jwkBZZXgithub.com/agntcy/identity/api/server/agntcy/identity/core/v1alpha1;identity_core_sdk_gob\x06proto3"

var (
	file_agntcy_identity_core_v1alpha1_id_proto_rawDescOnce sync.Once
	file_agntcy_identity_core_v1alpha1_id_proto_rawDescData []byte
)

func file_agntcy_identity_core_v1alpha1_id_proto_rawDescGZIP() []byte {
	file_agntcy_identity_core_v1alpha1_id_proto_rawDescOnce.Do(func() {
		file_agntcy_identity_core_v1alpha1_id_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_agntcy_identity_core_v1alpha1_id_proto_rawDesc), len(file_agntcy_identity_core_v1alpha1_id_proto_rawDesc)))
	})
	return file_agntcy_identity_core_v1alpha1_id_proto_rawDescData
}

var file_agntcy_identity_core_v1alpha1_id_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_agntcy_identity_core_v1alpha1_id_proto_goTypes = []any{
	(*ResolverMetadata)(nil),   // 0: agntcy.identity.core.v1alpha1.ResolverMetadata
	(*Service)(nil),            // 1: agntcy.identity.core.v1alpha1.Service
	(*VerificationMethod)(nil), // 2: agntcy.identity.core.v1alpha1.VerificationMethod
	(*Jwk)(nil),                // 3: agntcy.identity.core.v1alpha1.Jwk
}
var file_agntcy_identity_core_v1alpha1_id_proto_depIdxs = []int32{
	2, // 0: agntcy.identity.core.v1alpha1.ResolverMetadata.verification_method:type_name -> agntcy.identity.core.v1alpha1.VerificationMethod
	1, // 1: agntcy.identity.core.v1alpha1.ResolverMetadata.service:type_name -> agntcy.identity.core.v1alpha1.Service
	3, // 2: agntcy.identity.core.v1alpha1.VerificationMethod.public_key_jwk:type_name -> agntcy.identity.core.v1alpha1.Jwk
	3, // [3:3] is the sub-list for method output_type
	3, // [3:3] is the sub-list for method input_type
	3, // [3:3] is the sub-list for extension type_name
	3, // [3:3] is the sub-list for extension extendee
	0, // [0:3] is the sub-list for field type_name
}

func init() { file_agntcy_identity_core_v1alpha1_id_proto_init() }
func file_agntcy_identity_core_v1alpha1_id_proto_init() {
	if File_agntcy_identity_core_v1alpha1_id_proto != nil {
		return
	}
	file_agntcy_identity_core_v1alpha1_jwk_proto_init()
	file_agntcy_identity_core_v1alpha1_id_proto_msgTypes[0].OneofWrappers = []any{}
	file_agntcy_identity_core_v1alpha1_id_proto_msgTypes[2].OneofWrappers = []any{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_agntcy_identity_core_v1alpha1_id_proto_rawDesc), len(file_agntcy_identity_core_v1alpha1_id_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   3,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_agntcy_identity_core_v1alpha1_id_proto_goTypes,
		DependencyIndexes: file_agntcy_identity_core_v1alpha1_id_proto_depIdxs,
		MessageInfos:      file_agntcy_identity_core_v1alpha1_id_proto_msgTypes,
	}.Build()
	File_agntcy_identity_core_v1alpha1_id_proto = out.File
	file_agntcy_identity_core_v1alpha1_id_proto_goTypes = nil
	file_agntcy_identity_core_v1alpha1_id_proto_depIdxs = nil
}
