// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.9
// 	protoc        v6.32.1
// source: linkedca/policy.proto

package linkedca

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

type Policy struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	X509          *X509Policy            `protobuf:"bytes,1,opt,name=x509,proto3" json:"x509,omitempty"`
	Ssh           *SSHPolicy             `protobuf:"bytes,2,opt,name=ssh,proto3" json:"ssh,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Policy) ProtoMessage() {}

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

func (x *Policy) GetX509() *X509Policy {
	if x != nil {
		return x.X509
	}
	return nil
}

func (x *Policy) GetSsh() *SSHPolicy {
	if x != nil {
		return x.Ssh
	}
	return nil
}

type X509Policy struct {
	state              protoimpl.MessageState `protogen:"open.v1"`
	Allow              *X509Names             `protobuf:"bytes,1,opt,name=allow,proto3" json:"allow,omitempty"`
	Deny               *X509Names             `protobuf:"bytes,2,opt,name=deny,proto3" json:"deny,omitempty"`
	AllowWildcardNames bool                   `protobuf:"varint,3,opt,name=allow_wildcard_names,json=allowWildcardNames,proto3" json:"allow_wildcard_names,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

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

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

func (*X509Policy) ProtoMessage() {}

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

func (x *X509Policy) GetAllow() *X509Names {
	if x != nil {
		return x.Allow
	}
	return nil
}

func (x *X509Policy) GetDeny() *X509Names {
	if x != nil {
		return x.Deny
	}
	return nil
}

func (x *X509Policy) GetAllowWildcardNames() bool {
	if x != nil {
		return x.AllowWildcardNames
	}
	return false
}

type SSHPolicy struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Host          *SSHHostPolicy         `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
	User          *SSHUserPolicy         `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SSHPolicy) ProtoMessage() {}

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

func (x *SSHPolicy) GetHost() *SSHHostPolicy {
	if x != nil {
		return x.Host
	}
	return nil
}

func (x *SSHPolicy) GetUser() *SSHUserPolicy {
	if x != nil {
		return x.User
	}
	return nil
}

type SSHHostPolicy struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Allow         *SSHHostNames          `protobuf:"bytes,1,opt,name=allow,proto3" json:"allow,omitempty"`
	Deny          *SSHHostNames          `protobuf:"bytes,2,opt,name=deny,proto3" json:"deny,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SSHHostPolicy) ProtoMessage() {}

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

func (x *SSHHostPolicy) GetAllow() *SSHHostNames {
	if x != nil {
		return x.Allow
	}
	return nil
}

func (x *SSHHostPolicy) GetDeny() *SSHHostNames {
	if x != nil {
		return x.Deny
	}
	return nil
}

type SSHUserPolicy struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Allow         *SSHUserNames          `protobuf:"bytes,1,opt,name=allow,proto3" json:"allow,omitempty"`
	Deny          *SSHUserNames          `protobuf:"bytes,2,opt,name=deny,proto3" json:"deny,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SSHUserPolicy) ProtoMessage() {}

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

func (x *SSHUserPolicy) GetAllow() *SSHUserNames {
	if x != nil {
		return x.Allow
	}
	return nil
}

func (x *SSHUserPolicy) GetDeny() *SSHUserNames {
	if x != nil {
		return x.Deny
	}
	return nil
}

type X509Names struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Dns           []string               `protobuf:"bytes,1,rep,name=dns,proto3" json:"dns,omitempty"`
	Ips           []string               `protobuf:"bytes,2,rep,name=ips,proto3" json:"ips,omitempty"`
	Emails        []string               `protobuf:"bytes,3,rep,name=emails,proto3" json:"emails,omitempty"`
	Uris          []string               `protobuf:"bytes,4,rep,name=uris,proto3" json:"uris,omitempty"`
	CommonNames   []string               `protobuf:"bytes,5,rep,name=common_names,json=commonNames,proto3" json:"common_names,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*X509Names) ProtoMessage() {}

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

func (x *X509Names) GetDns() []string {
	if x != nil {
		return x.Dns
	}
	return nil
}

func (x *X509Names) GetIps() []string {
	if x != nil {
		return x.Ips
	}
	return nil
}

func (x *X509Names) GetEmails() []string {
	if x != nil {
		return x.Emails
	}
	return nil
}

func (x *X509Names) GetUris() []string {
	if x != nil {
		return x.Uris
	}
	return nil
}

func (x *X509Names) GetCommonNames() []string {
	if x != nil {
		return x.CommonNames
	}
	return nil
}

type SSHHostNames struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Dns           []string               `protobuf:"bytes,1,rep,name=dns,proto3" json:"dns,omitempty"`
	Ips           []string               `protobuf:"bytes,2,rep,name=ips,proto3" json:"ips,omitempty"`
	Principals    []string               `protobuf:"bytes,3,rep,name=principals,proto3" json:"principals,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SSHHostNames) ProtoMessage() {}

func (x *SSHHostNames) ProtoReflect() protoreflect.Message {
	mi := &file_linkedca_policy_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 SSHHostNames.ProtoReflect.Descriptor instead.
func (*SSHHostNames) Descriptor() ([]byte, []int) {
	return file_linkedca_policy_proto_rawDescGZIP(), []int{6}
}

func (x *SSHHostNames) GetDns() []string {
	if x != nil {
		return x.Dns
	}
	return nil
}

func (x *SSHHostNames) GetIps() []string {
	if x != nil {
		return x.Ips
	}
	return nil
}

func (x *SSHHostNames) GetPrincipals() []string {
	if x != nil {
		return x.Principals
	}
	return nil
}

type SSHUserNames struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Emails        []string               `protobuf:"bytes,1,rep,name=emails,proto3" json:"emails,omitempty"`
	Principals    []string               `protobuf:"bytes,2,rep,name=principals,proto3" json:"principals,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SSHUserNames) ProtoMessage() {}

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

func (x *SSHUserNames) GetEmails() []string {
	if x != nil {
		return x.Emails
	}
	return nil
}

func (x *SSHUserNames) GetPrincipals() []string {
	if x != nil {
		return x.Principals
	}
	return nil
}

var File_linkedca_policy_proto protoreflect.FileDescriptor

const file_linkedca_policy_proto_rawDesc = "" +
	"\n" +
	"\x15linkedca/policy.proto\x12\blinkedca\"Y\n" +
	"\x06Policy\x12(\n" +
	"\x04x509\x18\x01 \x01(\v2\x14.linkedca.X509PolicyR\x04x509\x12%\n" +
	"\x03ssh\x18\x02 \x01(\v2\x13.linkedca.SSHPolicyR\x03ssh\"\x92\x01\n" +
	"\n" +
	"X509Policy\x12)\n" +
	"\x05allow\x18\x01 \x01(\v2\x13.linkedca.X509NamesR\x05allow\x12'\n" +
	"\x04deny\x18\x02 \x01(\v2\x13.linkedca.X509NamesR\x04deny\x120\n" +
	"\x14allow_wildcard_names\x18\x03 \x01(\bR\x12allowWildcardNames\"e\n" +
	"\tSSHPolicy\x12+\n" +
	"\x04host\x18\x01 \x01(\v2\x17.linkedca.SSHHostPolicyR\x04host\x12+\n" +
	"\x04user\x18\x02 \x01(\v2\x17.linkedca.SSHUserPolicyR\x04user\"i\n" +
	"\rSSHHostPolicy\x12,\n" +
	"\x05allow\x18\x01 \x01(\v2\x16.linkedca.SSHHostNamesR\x05allow\x12*\n" +
	"\x04deny\x18\x02 \x01(\v2\x16.linkedca.SSHHostNamesR\x04deny\"i\n" +
	"\rSSHUserPolicy\x12,\n" +
	"\x05allow\x18\x01 \x01(\v2\x16.linkedca.SSHUserNamesR\x05allow\x12*\n" +
	"\x04deny\x18\x02 \x01(\v2\x16.linkedca.SSHUserNamesR\x04deny\"~\n" +
	"\tX509Names\x12\x10\n" +
	"\x03dns\x18\x01 \x03(\tR\x03dns\x12\x10\n" +
	"\x03ips\x18\x02 \x03(\tR\x03ips\x12\x16\n" +
	"\x06emails\x18\x03 \x03(\tR\x06emails\x12\x12\n" +
	"\x04uris\x18\x04 \x03(\tR\x04uris\x12!\n" +
	"\fcommon_names\x18\x05 \x03(\tR\vcommonNames\"R\n" +
	"\fSSHHostNames\x12\x10\n" +
	"\x03dns\x18\x01 \x03(\tR\x03dns\x12\x10\n" +
	"\x03ips\x18\x02 \x03(\tR\x03ips\x12\x1e\n" +
	"\n" +
	"principals\x18\x03 \x03(\tR\n" +
	"principals\"F\n" +
	"\fSSHUserNames\x12\x16\n" +
	"\x06emails\x18\x01 \x03(\tR\x06emails\x12\x1e\n" +
	"\n" +
	"principals\x18\x02 \x03(\tR\n" +
	"principalsB\x1fZ\x1dgithub.com/smallstep/linkedcab\x06proto3"

var (
	file_linkedca_policy_proto_rawDescOnce sync.Once
	file_linkedca_policy_proto_rawDescData []byte
)

func file_linkedca_policy_proto_rawDescGZIP() []byte {
	file_linkedca_policy_proto_rawDescOnce.Do(func() {
		file_linkedca_policy_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_linkedca_policy_proto_rawDesc), len(file_linkedca_policy_proto_rawDesc)))
	})
	return file_linkedca_policy_proto_rawDescData
}

var file_linkedca_policy_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
var file_linkedca_policy_proto_goTypes = []any{
	(*Policy)(nil),        // 0: linkedca.Policy
	(*X509Policy)(nil),    // 1: linkedca.X509Policy
	(*SSHPolicy)(nil),     // 2: linkedca.SSHPolicy
	(*SSHHostPolicy)(nil), // 3: linkedca.SSHHostPolicy
	(*SSHUserPolicy)(nil), // 4: linkedca.SSHUserPolicy
	(*X509Names)(nil),     // 5: linkedca.X509Names
	(*SSHHostNames)(nil),  // 6: linkedca.SSHHostNames
	(*SSHUserNames)(nil),  // 7: linkedca.SSHUserNames
}
var file_linkedca_policy_proto_depIdxs = []int32{
	1,  // 0: linkedca.Policy.x509:type_name -> linkedca.X509Policy
	2,  // 1: linkedca.Policy.ssh:type_name -> linkedca.SSHPolicy
	5,  // 2: linkedca.X509Policy.allow:type_name -> linkedca.X509Names
	5,  // 3: linkedca.X509Policy.deny:type_name -> linkedca.X509Names
	3,  // 4: linkedca.SSHPolicy.host:type_name -> linkedca.SSHHostPolicy
	4,  // 5: linkedca.SSHPolicy.user:type_name -> linkedca.SSHUserPolicy
	6,  // 6: linkedca.SSHHostPolicy.allow:type_name -> linkedca.SSHHostNames
	6,  // 7: linkedca.SSHHostPolicy.deny:type_name -> linkedca.SSHHostNames
	7,  // 8: linkedca.SSHUserPolicy.allow:type_name -> linkedca.SSHUserNames
	7,  // 9: linkedca.SSHUserPolicy.deny:type_name -> linkedca.SSHUserNames
	10, // [10:10] is the sub-list for method output_type
	10, // [10:10] is the sub-list for method input_type
	10, // [10:10] is the sub-list for extension type_name
	10, // [10:10] is the sub-list for extension extendee
	0,  // [0:10] is the sub-list for field type_name
}

func init() { file_linkedca_policy_proto_init() }
func file_linkedca_policy_proto_init() {
	if File_linkedca_policy_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_linkedca_policy_proto_rawDesc), len(file_linkedca_policy_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   8,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_linkedca_policy_proto_goTypes,
		DependencyIndexes: file_linkedca_policy_proto_depIdxs,
		MessageInfos:      file_linkedca_policy_proto_msgTypes,
	}.Build()
	File_linkedca_policy_proto = out.File
	file_linkedca_policy_proto_goTypes = nil
	file_linkedca_policy_proto_depIdxs = nil
}
