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

package linkedca

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	structpb "google.golang.org/protobuf/types/known/structpb"
	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 Authority_Type int32

const (
	Authority_DEFAULT  Authority_Type = 0
	Authority_SOFTCAS  Authority_Type = 1
	Authority_CLOUDCAS Authority_Type = 2
	Authority_STEPCAS  Authority_Type = 3
)

// Enum value maps for Authority_Type.
var (
	Authority_Type_name = map[int32]string{
		0: "DEFAULT",
		1: "SOFTCAS",
		2: "CLOUDCAS",
		3: "STEPCAS",
	}
	Authority_Type_value = map[string]int32{
		"DEFAULT":  0,
		"SOFTCAS":  1,
		"CLOUDCAS": 2,
		"STEPCAS":  3,
	}
)

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

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

func (Authority_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_linkedca_config_proto_enumTypes[0].Descriptor()
}

func (Authority_Type) Type() protoreflect.EnumType {
	return &file_linkedca_config_proto_enumTypes[0]
}

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

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

type CertificateIssuer_Type int32

const (
	CertificateIssuer_UNKNOWN CertificateIssuer_Type = 0
	CertificateIssuer_JWK     CertificateIssuer_Type = 1
	CertificateIssuer_X5C     CertificateIssuer_Type = 2
)

// Enum value maps for CertificateIssuer_Type.
var (
	CertificateIssuer_Type_name = map[int32]string{
		0: "UNKNOWN",
		1: "JWK",
		2: "X5C",
	}
	CertificateIssuer_Type_value = map[string]int32{
		"UNKNOWN": 0,
		"JWK":     1,
		"X5C":     2,
	}
)

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

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

func (CertificateIssuer_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_linkedca_config_proto_enumTypes[1].Descriptor()
}

func (CertificateIssuer_Type) Type() protoreflect.EnumType {
	return &file_linkedca_config_proto_enumTypes[1]
}

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

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

type SSHPublicKey_Type int32

const (
	SSHPublicKey_UNKNOWN SSHPublicKey_Type = 0
	SSHPublicKey_USER    SSHPublicKey_Type = 1
	SSHPublicKey_HOST    SSHPublicKey_Type = 2
)

// Enum value maps for SSHPublicKey_Type.
var (
	SSHPublicKey_Type_name = map[int32]string{
		0: "UNKNOWN",
		1: "USER",
		2: "HOST",
	}
	SSHPublicKey_Type_value = map[string]int32{
		"UNKNOWN": 0,
		"USER":    1,
		"HOST":    2,
	}
)

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

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

func (SSHPublicKey_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_linkedca_config_proto_enumTypes[2].Descriptor()
}

func (SSHPublicKey_Type) Type() protoreflect.EnumType {
	return &file_linkedca_config_proto_enumTypes[2]
}

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

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

type KMS_Type int32

const (
	KMS_DEFAULT     KMS_Type = 0
	KMS_SOFTKMS     KMS_Type = 1
	KMS_CLOUDKMS    KMS_Type = 2
	KMS_AMAZONKMS   KMS_Type = 3
	KMS_PKCS11      KMS_Type = 4
	KMS_YUBIKEY     KMS_Type = 5
	KMS_SSHAGENTKMS KMS_Type = 6
	KMS_AZUREKMS    KMS_Type = 7
)

// Enum value maps for KMS_Type.
var (
	KMS_Type_name = map[int32]string{
		0: "DEFAULT",
		1: "SOFTKMS",
		2: "CLOUDKMS",
		3: "AMAZONKMS",
		4: "PKCS11",
		5: "YUBIKEY",
		6: "SSHAGENTKMS",
		7: "AZUREKMS",
	}
	KMS_Type_value = map[string]int32{
		"DEFAULT":     0,
		"SOFTKMS":     1,
		"CLOUDKMS":    2,
		"AMAZONKMS":   3,
		"PKCS11":      4,
		"YUBIKEY":     5,
		"SSHAGENTKMS": 6,
		"AZUREKMS":    7,
	}
)

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

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

func (KMS_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_linkedca_config_proto_enumTypes[3].Descriptor()
}

func (KMS_Type) Type() protoreflect.EnumType {
	return &file_linkedca_config_proto_enumTypes[3]
}

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

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

type TLS_CiperSuite int32

const (
	TLS_UNKNOWN TLS_CiperSuite = 0
	// TLS 1.0 - 1.2 cipher suites.
	TLS_TLS_RSA_WITH_RC4_128_SHA                      TLS_CiperSuite = 5
	TLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA                 TLS_CiperSuite = 10
	TLS_TLS_RSA_WITH_AES_128_CBC_SHA                  TLS_CiperSuite = 47
	TLS_TLS_RSA_WITH_AES_256_CBC_SHA                  TLS_CiperSuite = 53
	TLS_TLS_RSA_WITH_AES_128_CBC_SHA256               TLS_CiperSuite = 60
	TLS_TLS_RSA_WITH_AES_128_GCM_SHA256               TLS_CiperSuite = 156
	TLS_TLS_RSA_WITH_AES_256_GCM_SHA384               TLS_CiperSuite = 157
	TLS_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA              TLS_CiperSuite = 49159
	TLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA          TLS_CiperSuite = 49161
	TLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA          TLS_CiperSuite = 49162
	TLS_TLS_ECDHE_RSA_WITH_RC4_128_SHA                TLS_CiperSuite = 49169
	TLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA           TLS_CiperSuite = 49170
	TLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA            TLS_CiperSuite = 49171
	TLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA            TLS_CiperSuite = 49172
	TLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256       TLS_CiperSuite = 49187
	TLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256         TLS_CiperSuite = 49191
	TLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256         TLS_CiperSuite = 49199
	TLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256       TLS_CiperSuite = 49195
	TLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384         TLS_CiperSuite = 49200
	TLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384       TLS_CiperSuite = 49196
	TLS_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256   TLS_CiperSuite = 52392
	TLS_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 TLS_CiperSuite = 52393
	// TLS 1.3 cipher suites.
	TLS_TLS_AES_128_GCM_SHA256       TLS_CiperSuite = 4865
	TLS_TLS_AES_256_GCM_SHA384       TLS_CiperSuite = 4866
	TLS_TLS_CHACHA20_POLY1305_SHA256 TLS_CiperSuite = 4867
)

// Enum value maps for TLS_CiperSuite.
var (
	TLS_CiperSuite_name = map[int32]string{
		0:     "UNKNOWN",
		5:     "TLS_RSA_WITH_RC4_128_SHA",
		10:    "TLS_RSA_WITH_3DES_EDE_CBC_SHA",
		47:    "TLS_RSA_WITH_AES_128_CBC_SHA",
		53:    "TLS_RSA_WITH_AES_256_CBC_SHA",
		60:    "TLS_RSA_WITH_AES_128_CBC_SHA256",
		156:   "TLS_RSA_WITH_AES_128_GCM_SHA256",
		157:   "TLS_RSA_WITH_AES_256_GCM_SHA384",
		49159: "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
		49161: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
		49162: "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
		49169: "TLS_ECDHE_RSA_WITH_RC4_128_SHA",
		49170: "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
		49171: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
		49172: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
		49187: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
		49191: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
		49199: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
		49195: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
		49200: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
		49196: "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
		52392: "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
		52393: "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
		4865:  "TLS_AES_128_GCM_SHA256",
		4866:  "TLS_AES_256_GCM_SHA384",
		4867:  "TLS_CHACHA20_POLY1305_SHA256",
	}
	TLS_CiperSuite_value = map[string]int32{
		"UNKNOWN":                                       0,
		"TLS_RSA_WITH_RC4_128_SHA":                      5,
		"TLS_RSA_WITH_3DES_EDE_CBC_SHA":                 10,
		"TLS_RSA_WITH_AES_128_CBC_SHA":                  47,
		"TLS_RSA_WITH_AES_256_CBC_SHA":                  53,
		"TLS_RSA_WITH_AES_128_CBC_SHA256":               60,
		"TLS_RSA_WITH_AES_128_GCM_SHA256":               156,
		"TLS_RSA_WITH_AES_256_GCM_SHA384":               157,
		"TLS_ECDHE_ECDSA_WITH_RC4_128_SHA":              49159,
		"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA":          49161,
		"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA":          49162,
		"TLS_ECDHE_RSA_WITH_RC4_128_SHA":                49169,
		"TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA":           49170,
		"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA":            49171,
		"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA":            49172,
		"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256":       49187,
		"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256":         49191,
		"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256":         49199,
		"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256":       49195,
		"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384":         49200,
		"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384":       49196,
		"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256":   52392,
		"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256": 52393,
		"TLS_AES_128_GCM_SHA256":                        4865,
		"TLS_AES_256_GCM_SHA384":                        4866,
		"TLS_CHACHA20_POLY1305_SHA256":                  4867,
	}
)

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

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

func (TLS_CiperSuite) Descriptor() protoreflect.EnumDescriptor {
	return file_linkedca_config_proto_enumTypes[4].Descriptor()
}

func (TLS_CiperSuite) Type() protoreflect.EnumType {
	return &file_linkedca_config_proto_enumTypes[4]
}

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

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

type ConfigTemplate_Type int32

const (
	ConfigTemplate_UNKNOWN   ConfigTemplate_Type = 0
	ConfigTemplate_SNIPPET   ConfigTemplate_Type = 1
	ConfigTemplate_FILE      ConfigTemplate_Type = 2
	ConfigTemplate_DIRECTORY ConfigTemplate_Type = 3
)

// Enum value maps for ConfigTemplate_Type.
var (
	ConfigTemplate_Type_name = map[int32]string{
		0: "UNKNOWN",
		1: "SNIPPET",
		2: "FILE",
		3: "DIRECTORY",
	}
	ConfigTemplate_Type_value = map[string]int32{
		"UNKNOWN":   0,
		"SNIPPET":   1,
		"FILE":      2,
		"DIRECTORY": 3,
	}
)

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

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

func (ConfigTemplate_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_linkedca_config_proto_enumTypes[5].Descriptor()
}

func (ConfigTemplate_Type) Type() protoreflect.EnumType {
	return &file_linkedca_config_proto_enumTypes[5]
}

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

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

// Configuration is the proto representation of a ca.json. Root keys and SSH
// public keys are not present in the ca.json but have been added here to be
// used in the initialization of a PKI.
type Configuration struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	Version         string                 `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
	Root            []string               `protobuf:"bytes,2,rep,name=root,proto3" json:"root,omitempty"`                                              // pem representation in files
	RootKey         []string               `protobuf:"bytes,3,rep,name=root_key,json=rootKey,proto3" json:"root_key,omitempty"`                         // pem representation in files
	FederatedRoots  []string               `protobuf:"bytes,4,rep,name=federated_roots,json=federatedRoots,proto3" json:"federated_roots,omitempty"`    // pem representation in files
	Intermediate    string                 `protobuf:"bytes,5,opt,name=intermediate,proto3" json:"intermediate,omitempty"`                              // pem representation in files
	IntermediateKey string                 `protobuf:"bytes,6,opt,name=intermediate_key,json=intermediateKey,proto3" json:"intermediate_key,omitempty"` // pem representation in files
	Address         string                 `protobuf:"bytes,7,opt,name=address,proto3" json:"address,omitempty"`
	InsecureAddress string                 `protobuf:"bytes,8,opt,name=insecure_address,json=insecureAddress,proto3" json:"insecure_address,omitempty"`
	DnsNames        []string               `protobuf:"bytes,9,rep,name=dns_names,json=dnsNames,proto3" json:"dns_names,omitempty"`
	Ssh             *SSH                   `protobuf:"bytes,10,opt,name=ssh,proto3" json:"ssh,omitempty"`
	Kms             *KMS                   `protobuf:"bytes,11,opt,name=kms,proto3" json:"kms,omitempty"`
	Logger          *structpb.Struct       `protobuf:"bytes,12,opt,name=logger,proto3" json:"logger,omitempty"`         // json representation
	Db              *structpb.Struct       `protobuf:"bytes,13,opt,name=db,proto3" json:"db,omitempty"`                 // json representation
	Monitoring      *structpb.Struct       `protobuf:"bytes,14,opt,name=monitoring,proto3" json:"monitoring,omitempty"` // json representation
	Authority       *Authority             `protobuf:"bytes,15,opt,name=authority,proto3" json:"authority,omitempty"`
	Tls             *TLS                   `protobuf:"bytes,16,opt,name=tls,proto3" json:"tls,omitempty"`
	Templates       *ConfigTemplates       `protobuf:"bytes,17,opt,name=templates,proto3" json:"templates,omitempty"`
	Password        []byte                 `protobuf:"bytes,18,opt,name=password,proto3" json:"password,omitempty"`
	Files           map[string][]byte      `protobuf:"bytes,19,rep,name=files,proto3" json:"files,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*Configuration) ProtoMessage() {}

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

func (x *Configuration) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

func (x *Configuration) GetRoot() []string {
	if x != nil {
		return x.Root
	}
	return nil
}

func (x *Configuration) GetRootKey() []string {
	if x != nil {
		return x.RootKey
	}
	return nil
}

func (x *Configuration) GetFederatedRoots() []string {
	if x != nil {
		return x.FederatedRoots
	}
	return nil
}

func (x *Configuration) GetIntermediate() string {
	if x != nil {
		return x.Intermediate
	}
	return ""
}

func (x *Configuration) GetIntermediateKey() string {
	if x != nil {
		return x.IntermediateKey
	}
	return ""
}

func (x *Configuration) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *Configuration) GetInsecureAddress() string {
	if x != nil {
		return x.InsecureAddress
	}
	return ""
}

func (x *Configuration) GetDnsNames() []string {
	if x != nil {
		return x.DnsNames
	}
	return nil
}

func (x *Configuration) GetSsh() *SSH {
	if x != nil {
		return x.Ssh
	}
	return nil
}

func (x *Configuration) GetKms() *KMS {
	if x != nil {
		return x.Kms
	}
	return nil
}

func (x *Configuration) GetLogger() *structpb.Struct {
	if x != nil {
		return x.Logger
	}
	return nil
}

func (x *Configuration) GetDb() *structpb.Struct {
	if x != nil {
		return x.Db
	}
	return nil
}

func (x *Configuration) GetMonitoring() *structpb.Struct {
	if x != nil {
		return x.Monitoring
	}
	return nil
}

func (x *Configuration) GetAuthority() *Authority {
	if x != nil {
		return x.Authority
	}
	return nil
}

func (x *Configuration) GetTls() *TLS {
	if x != nil {
		return x.Tls
	}
	return nil
}

func (x *Configuration) GetTemplates() *ConfigTemplates {
	if x != nil {
		return x.Templates
	}
	return nil
}

func (x *Configuration) GetPassword() []byte {
	if x != nil {
		return x.Password
	}
	return nil
}

func (x *Configuration) GetFiles() map[string][]byte {
	if x != nil {
		return x.Files
	}
	return nil
}

// Defaults is the proto representation of the defaults.json, this file can be
// extended, so it will only contain the default fields.
type Defaults struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	CaUrl         string                 `protobuf:"bytes,1,opt,name=ca_url,json=caUrl,proto3" json:"ca_url,omitempty"`
	CaConfig      string                 `protobuf:"bytes,2,opt,name=ca_config,json=caConfig,proto3" json:"ca_config,omitempty"`
	Fingerprint   string                 `protobuf:"bytes,3,opt,name=fingerprint,proto3" json:"fingerprint,omitempty"`
	Root          string                 `protobuf:"bytes,4,opt,name=root,proto3" json:"root,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Defaults) ProtoMessage() {}

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

func (x *Defaults) GetCaUrl() string {
	if x != nil {
		return x.CaUrl
	}
	return ""
}

func (x *Defaults) GetCaConfig() string {
	if x != nil {
		return x.CaConfig
	}
	return ""
}

func (x *Defaults) GetFingerprint() string {
	if x != nil {
		return x.Fingerprint
	}
	return ""
}

func (x *Defaults) GetRoot() string {
	if x != nil {
		return x.Root
	}
	return ""
}

type Authority struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Authority id.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// CAS specific properties.
	Type                            Authority_Type     `protobuf:"varint,2,opt,name=type,proto3,enum=linkedca.Authority_Type" json:"type,omitempty"`
	CertificateAuthority            string             `protobuf:"bytes,3,opt,name=certificate_authority,json=certificateAuthority,proto3" json:"certificate_authority,omitempty"`
	CertificateAuthorityFingerprint string             `protobuf:"bytes,4,opt,name=certificate_authority_fingerprint,json=certificateAuthorityFingerprint,proto3" json:"certificate_authority_fingerprint,omitempty"`
	CertificateIssuer               *CertificateIssuer `protobuf:"bytes,5,opt,name=certificate_issuer,json=certificateIssuer,proto3" json:"certificate_issuer,omitempty"`
	CredentialsFile                 string             `protobuf:"bytes,6,opt,name=credentials_file,json=credentialsFile,proto3" json:"credentials_file,omitempty"`
	// Authority configuration.
	EnableAdmin          bool               `protobuf:"varint,7,opt,name=enable_admin,json=enableAdmin,proto3" json:"enable_admin,omitempty"`
	Provisioners         []*Provisioner     `protobuf:"bytes,8,rep,name=provisioners,proto3" json:"provisioners,omitempty"`
	Admins               []*Admin           `protobuf:"bytes,9,rep,name=admins,proto3" json:"admins,omitempty"`
	Template             *DistinguishedName `protobuf:"bytes,10,opt,name=template,proto3" json:"template,omitempty"`
	Claims               *Claims            `protobuf:"bytes,11,opt,name=claims,proto3" json:"claims,omitempty"`
	DisableIssuedAtCheck bool               `protobuf:"varint,12,opt,name=disable_issued_at_check,json=disableIssuedAtCheck,proto3" json:"disable_issued_at_check,omitempty"`
	Backdate             string             `protobuf:"bytes,13,opt,name=backdate,proto3" json:"backdate,omitempty"`
	DeploymentType       string             `protobuf:"bytes,14,opt,name=deployment_type,json=deploymentType,proto3" json:"deployment_type,omitempty"`
	Policy               *Policy            `protobuf:"bytes,15,opt,name=policy,proto3" json:"policy,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

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

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

func (*Authority) ProtoMessage() {}

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

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

func (x *Authority) GetType() Authority_Type {
	if x != nil {
		return x.Type
	}
	return Authority_DEFAULT
}

func (x *Authority) GetCertificateAuthority() string {
	if x != nil {
		return x.CertificateAuthority
	}
	return ""
}

func (x *Authority) GetCertificateAuthorityFingerprint() string {
	if x != nil {
		return x.CertificateAuthorityFingerprint
	}
	return ""
}

func (x *Authority) GetCertificateIssuer() *CertificateIssuer {
	if x != nil {
		return x.CertificateIssuer
	}
	return nil
}

func (x *Authority) GetCredentialsFile() string {
	if x != nil {
		return x.CredentialsFile
	}
	return ""
}

func (x *Authority) GetEnableAdmin() bool {
	if x != nil {
		return x.EnableAdmin
	}
	return false
}

func (x *Authority) GetProvisioners() []*Provisioner {
	if x != nil {
		return x.Provisioners
	}
	return nil
}

func (x *Authority) GetAdmins() []*Admin {
	if x != nil {
		return x.Admins
	}
	return nil
}

func (x *Authority) GetTemplate() *DistinguishedName {
	if x != nil {
		return x.Template
	}
	return nil
}

func (x *Authority) GetClaims() *Claims {
	if x != nil {
		return x.Claims
	}
	return nil
}

func (x *Authority) GetDisableIssuedAtCheck() bool {
	if x != nil {
		return x.DisableIssuedAtCheck
	}
	return false
}

func (x *Authority) GetBackdate() string {
	if x != nil {
		return x.Backdate
	}
	return ""
}

func (x *Authority) GetDeploymentType() string {
	if x != nil {
		return x.DeploymentType
	}
	return ""
}

func (x *Authority) GetPolicy() *Policy {
	if x != nil {
		return x.Policy
	}
	return nil
}

type DistinguishedName struct {
	state              protoimpl.MessageState `protogen:"open.v1"`
	Country            string                 `protobuf:"bytes,1,opt,name=country,proto3" json:"country,omitempty"`
	Organization       string                 `protobuf:"bytes,2,opt,name=organization,proto3" json:"organization,omitempty"`
	OrganizationalUnit string                 `protobuf:"bytes,3,opt,name=organizational_unit,json=organizationalUnit,proto3" json:"organizational_unit,omitempty"`
	Locality           string                 `protobuf:"bytes,4,opt,name=locality,proto3" json:"locality,omitempty"`
	Province           string                 `protobuf:"bytes,5,opt,name=province,proto3" json:"province,omitempty"`
	StreetAddress      string                 `protobuf:"bytes,6,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"`
	SerialNumber       string                 `protobuf:"bytes,7,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
	CommonName         string                 `protobuf:"bytes,8,opt,name=common_name,json=commonName,proto3" json:"common_name,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

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

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

func (*DistinguishedName) ProtoMessage() {}

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

func (x *DistinguishedName) GetCountry() string {
	if x != nil {
		return x.Country
	}
	return ""
}

func (x *DistinguishedName) GetOrganization() string {
	if x != nil {
		return x.Organization
	}
	return ""
}

func (x *DistinguishedName) GetOrganizationalUnit() string {
	if x != nil {
		return x.OrganizationalUnit
	}
	return ""
}

func (x *DistinguishedName) GetLocality() string {
	if x != nil {
		return x.Locality
	}
	return ""
}

func (x *DistinguishedName) GetProvince() string {
	if x != nil {
		return x.Province
	}
	return ""
}

func (x *DistinguishedName) GetStreetAddress() string {
	if x != nil {
		return x.StreetAddress
	}
	return ""
}

func (x *DistinguishedName) GetSerialNumber() string {
	if x != nil {
		return x.SerialNumber
	}
	return ""
}

func (x *DistinguishedName) GetCommonName() string {
	if x != nil {
		return x.CommonName
	}
	return ""
}

type CertificateIssuer struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Type          CertificateIssuer_Type `protobuf:"varint,1,opt,name=type,proto3,enum=linkedca.CertificateIssuer_Type" json:"type,omitempty"`
	Provisioner   string                 `protobuf:"bytes,2,opt,name=provisioner,proto3" json:"provisioner,omitempty"`
	Certificate   string                 `protobuf:"bytes,3,opt,name=certificate,proto3" json:"certificate,omitempty"`
	Key           string                 `protobuf:"bytes,4,opt,name=key,proto3" json:"key,omitempty"`
	Password      []byte                 `protobuf:"bytes,5,opt,name=password,proto3" json:"password,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CertificateIssuer) ProtoMessage() {}

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

func (x *CertificateIssuer) GetType() CertificateIssuer_Type {
	if x != nil {
		return x.Type
	}
	return CertificateIssuer_UNKNOWN
}

func (x *CertificateIssuer) GetProvisioner() string {
	if x != nil {
		return x.Provisioner
	}
	return ""
}

func (x *CertificateIssuer) GetCertificate() string {
	if x != nil {
		return x.Certificate
	}
	return ""
}

func (x *CertificateIssuer) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *CertificateIssuer) GetPassword() []byte {
	if x != nil {
		return x.Password
	}
	return nil
}

type SSH struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	HostKey          string                 `protobuf:"bytes,1,opt,name=host_key,json=hostKey,proto3" json:"host_key,omitempty"`                     // pem representation in files
	UserKey          string                 `protobuf:"bytes,2,opt,name=user_key,json=userKey,proto3" json:"user_key,omitempty"`                     // pem representation in files
	HostPublicKey    string                 `protobuf:"bytes,3,opt,name=host_public_key,json=hostPublicKey,proto3" json:"host_public_key,omitempty"` // ssh representation in files
	UserPublicKey    string                 `protobuf:"bytes,4,opt,name=user_public_key,json=userPublicKey,proto3" json:"user_public_key,omitempty"` // ssh representation in files
	Keys             []*SSHPublicKey        `protobuf:"bytes,5,rep,name=keys,proto3" json:"keys,omitempty"`
	AddUserPrincipal string                 `protobuf:"bytes,6,opt,name=add_user_principal,json=addUserPrincipal,proto3" json:"add_user_principal,omitempty"`
	AddUserCommand   string                 `protobuf:"bytes,7,opt,name=add_user_command,json=addUserCommand,proto3" json:"add_user_command,omitempty"`
	Bastion          *Bastion               `protobuf:"bytes,8,opt,name=bastion,proto3" json:"bastion,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*SSH) ProtoMessage() {}

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

func (x *SSH) GetHostKey() string {
	if x != nil {
		return x.HostKey
	}
	return ""
}

func (x *SSH) GetUserKey() string {
	if x != nil {
		return x.UserKey
	}
	return ""
}

func (x *SSH) GetHostPublicKey() string {
	if x != nil {
		return x.HostPublicKey
	}
	return ""
}

func (x *SSH) GetUserPublicKey() string {
	if x != nil {
		return x.UserPublicKey
	}
	return ""
}

func (x *SSH) GetKeys() []*SSHPublicKey {
	if x != nil {
		return x.Keys
	}
	return nil
}

func (x *SSH) GetAddUserPrincipal() string {
	if x != nil {
		return x.AddUserPrincipal
	}
	return ""
}

func (x *SSH) GetAddUserCommand() string {
	if x != nil {
		return x.AddUserCommand
	}
	return ""
}

func (x *SSH) GetBastion() *Bastion {
	if x != nil {
		return x.Bastion
	}
	return nil
}

type SSHPublicKey struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Type          SSHPublicKey_Type      `protobuf:"varint,1,opt,name=type,proto3,enum=linkedca.SSHPublicKey_Type" json:"type,omitempty"`
	Federated     bool                   `protobuf:"varint,2,opt,name=federated,proto3" json:"federated,omitempty"`
	Key           *structpb.Struct       `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SSHPublicKey) ProtoMessage() {}

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

func (x *SSHPublicKey) GetType() SSHPublicKey_Type {
	if x != nil {
		return x.Type
	}
	return SSHPublicKey_UNKNOWN
}

func (x *SSHPublicKey) GetFederated() bool {
	if x != nil {
		return x.Federated
	}
	return false
}

func (x *SSHPublicKey) GetKey() *structpb.Struct {
	if x != nil {
		return x.Key
	}
	return nil
}

type Bastion struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Hostname      string                 `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
	User          string                 `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
	Port          string                 `protobuf:"bytes,3,opt,name=port,proto3" json:"port,omitempty"`
	Command       string                 `protobuf:"bytes,4,opt,name=command,proto3" json:"command,omitempty"`
	Flags         string                 `protobuf:"bytes,5,opt,name=flags,proto3" json:"flags,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Bastion) ProtoMessage() {}

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

func (x *Bastion) GetHostname() string {
	if x != nil {
		return x.Hostname
	}
	return ""
}

func (x *Bastion) GetUser() string {
	if x != nil {
		return x.User
	}
	return ""
}

func (x *Bastion) GetPort() string {
	if x != nil {
		return x.Port
	}
	return ""
}

func (x *Bastion) GetCommand() string {
	if x != nil {
		return x.Command
	}
	return ""
}

func (x *Bastion) GetFlags() string {
	if x != nil {
		return x.Flags
	}
	return ""
}

type KMS struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	Type            KMS_Type               `protobuf:"varint,1,opt,name=type,proto3,enum=linkedca.KMS_Type" json:"type,omitempty"`
	CredentialsFile string                 `protobuf:"bytes,2,opt,name=credentialsFile,proto3" json:"credentialsFile,omitempty"`
	Uri             string                 `protobuf:"bytes,3,opt,name=uri,proto3" json:"uri,omitempty"`
	Pin             string                 `protobuf:"bytes,4,opt,name=pin,proto3" json:"pin,omitempty"`
	ManagementKey   string                 `protobuf:"bytes,5,opt,name=managementKey,proto3" json:"managementKey,omitempty"`
	Region          string                 `protobuf:"bytes,6,opt,name=region,proto3" json:"region,omitempty"`
	Profile         string                 `protobuf:"bytes,7,opt,name=profile,proto3" json:"profile,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*KMS) ProtoMessage() {}

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

func (x *KMS) GetType() KMS_Type {
	if x != nil {
		return x.Type
	}
	return KMS_DEFAULT
}

func (x *KMS) GetCredentialsFile() string {
	if x != nil {
		return x.CredentialsFile
	}
	return ""
}

func (x *KMS) GetUri() string {
	if x != nil {
		return x.Uri
	}
	return ""
}

func (x *KMS) GetPin() string {
	if x != nil {
		return x.Pin
	}
	return ""
}

func (x *KMS) GetManagementKey() string {
	if x != nil {
		return x.ManagementKey
	}
	return ""
}

func (x *KMS) GetRegion() string {
	if x != nil {
		return x.Region
	}
	return ""
}

func (x *KMS) GetProfile() string {
	if x != nil {
		return x.Profile
	}
	return ""
}

type TLS struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	CipherSuites  []TLS_CiperSuite       `protobuf:"varint,1,rep,packed,name=cipher_suites,json=cipherSuites,proto3,enum=linkedca.TLS_CiperSuite" json:"cipher_suites,omitempty"`
	MinVersion    string                 `protobuf:"bytes,2,opt,name=min_version,json=minVersion,proto3" json:"min_version,omitempty"`
	MaxVersion    string                 `protobuf:"bytes,3,opt,name=max_version,json=maxVersion,proto3" json:"max_version,omitempty"`
	Renegotiation bool                   `protobuf:"varint,4,opt,name=renegotiation,proto3" json:"renegotiation,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*TLS) ProtoMessage() {}

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

func (x *TLS) GetCipherSuites() []TLS_CiperSuite {
	if x != nil {
		return x.CipherSuites
	}
	return nil
}

func (x *TLS) GetMinVersion() string {
	if x != nil {
		return x.MinVersion
	}
	return ""
}

func (x *TLS) GetMaxVersion() string {
	if x != nil {
		return x.MaxVersion
	}
	return ""
}

func (x *TLS) GetRenegotiation() bool {
	if x != nil {
		return x.Renegotiation
	}
	return false
}

type ConfigTemplates struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Ssh           *SSHConfigTemplate     `protobuf:"bytes,1,opt,name=ssh,proto3" json:"ssh,omitempty"`
	Data          *structpb.Struct       `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ConfigTemplates) Reset() {
	*x = ConfigTemplates{}
	mi := &file_linkedca_config_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ConfigTemplates) ProtoMessage() {}

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

func (x *ConfigTemplates) GetSsh() *SSHConfigTemplate {
	if x != nil {
		return x.Ssh
	}
	return nil
}

func (x *ConfigTemplates) GetData() *structpb.Struct {
	if x != nil {
		return x.Data
	}
	return nil
}

type SSHConfigTemplate struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Users         []*ConfigTemplate      `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
	Hosts         []*ConfigTemplate      `protobuf:"bytes,2,rep,name=hosts,proto3" json:"hosts,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SSHConfigTemplate) ProtoMessage() {}

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

func (x *SSHConfigTemplate) GetUsers() []*ConfigTemplate {
	if x != nil {
		return x.Users
	}
	return nil
}

func (x *SSHConfigTemplate) GetHosts() []*ConfigTemplate {
	if x != nil {
		return x.Hosts
	}
	return nil
}

type ConfigTemplate struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Type          ConfigTemplate_Type    `protobuf:"varint,1,opt,name=type,proto3,enum=linkedca.ConfigTemplate_Type" json:"type,omitempty"`
	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Template      string                 `protobuf:"bytes,3,opt,name=template,proto3" json:"template,omitempty"`
	Path          string                 `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"`
	Comment       string                 `protobuf:"bytes,5,opt,name=comment,proto3" json:"comment,omitempty"`
	Requires      []string               `protobuf:"bytes,6,rep,name=requires,proto3" json:"requires,omitempty"`
	Content       []byte                 `protobuf:"bytes,7,opt,name=content,proto3" json:"content,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ConfigTemplate) ProtoMessage() {}

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

func (x *ConfigTemplate) GetType() ConfigTemplate_Type {
	if x != nil {
		return x.Type
	}
	return ConfigTemplate_UNKNOWN
}

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

func (x *ConfigTemplate) GetTemplate() string {
	if x != nil {
		return x.Template
	}
	return ""
}

func (x *ConfigTemplate) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *ConfigTemplate) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *ConfigTemplate) GetRequires() []string {
	if x != nil {
		return x.Requires
	}
	return nil
}

func (x *ConfigTemplate) GetContent() []byte {
	if x != nil {
		return x.Content
	}
	return nil
}

var File_linkedca_config_proto protoreflect.FileDescriptor

const file_linkedca_config_proto_rawDesc = "" +
	"\n" +
	"\x15linkedca/config.proto\x12\blinkedca\x1a\x1cgoogle/protobuf/struct.proto\x1a\x14linkedca/admin.proto\x1a\x1blinkedca/provisioners.proto\x1a\x15linkedca/policy.proto\"\xa4\x06\n" +
	"\rConfiguration\x12\x18\n" +
	"\aversion\x18\x01 \x01(\tR\aversion\x12\x12\n" +
	"\x04root\x18\x02 \x03(\tR\x04root\x12\x19\n" +
	"\broot_key\x18\x03 \x03(\tR\arootKey\x12'\n" +
	"\x0ffederated_roots\x18\x04 \x03(\tR\x0efederatedRoots\x12\"\n" +
	"\fintermediate\x18\x05 \x01(\tR\fintermediate\x12)\n" +
	"\x10intermediate_key\x18\x06 \x01(\tR\x0fintermediateKey\x12\x18\n" +
	"\aaddress\x18\a \x01(\tR\aaddress\x12)\n" +
	"\x10insecure_address\x18\b \x01(\tR\x0finsecureAddress\x12\x1b\n" +
	"\tdns_names\x18\t \x03(\tR\bdnsNames\x12\x1f\n" +
	"\x03ssh\x18\n" +
	" \x01(\v2\r.linkedca.SSHR\x03ssh\x12\x1f\n" +
	"\x03kms\x18\v \x01(\v2\r.linkedca.KMSR\x03kms\x12/\n" +
	"\x06logger\x18\f \x01(\v2\x17.google.protobuf.StructR\x06logger\x12'\n" +
	"\x02db\x18\r \x01(\v2\x17.google.protobuf.StructR\x02db\x127\n" +
	"\n" +
	"monitoring\x18\x0e \x01(\v2\x17.google.protobuf.StructR\n" +
	"monitoring\x121\n" +
	"\tauthority\x18\x0f \x01(\v2\x13.linkedca.AuthorityR\tauthority\x12\x1f\n" +
	"\x03tls\x18\x10 \x01(\v2\r.linkedca.TLSR\x03tls\x127\n" +
	"\ttemplates\x18\x11 \x01(\v2\x19.linkedca.ConfigTemplatesR\ttemplates\x12\x1a\n" +
	"\bpassword\x18\x12 \x01(\fR\bpassword\x128\n" +
	"\x05files\x18\x13 \x03(\v2\".linkedca.Configuration.FilesEntryR\x05files\x1a8\n" +
	"\n" +
	"FilesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\"t\n" +
	"\bDefaults\x12\x15\n" +
	"\x06ca_url\x18\x01 \x01(\tR\x05caUrl\x12\x1b\n" +
	"\tca_config\x18\x02 \x01(\tR\bcaConfig\x12 \n" +
	"\vfingerprint\x18\x03 \x01(\tR\vfingerprint\x12\x12\n" +
	"\x04root\x18\x04 \x01(\tR\x04root\"\x8e\x06\n" +
	"\tAuthority\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12,\n" +
	"\x04type\x18\x02 \x01(\x0e2\x18.linkedca.Authority.TypeR\x04type\x123\n" +
	"\x15certificate_authority\x18\x03 \x01(\tR\x14certificateAuthority\x12J\n" +
	"!certificate_authority_fingerprint\x18\x04 \x01(\tR\x1fcertificateAuthorityFingerprint\x12J\n" +
	"\x12certificate_issuer\x18\x05 \x01(\v2\x1b.linkedca.CertificateIssuerR\x11certificateIssuer\x12)\n" +
	"\x10credentials_file\x18\x06 \x01(\tR\x0fcredentialsFile\x12!\n" +
	"\fenable_admin\x18\a \x01(\bR\venableAdmin\x129\n" +
	"\fprovisioners\x18\b \x03(\v2\x15.linkedca.ProvisionerR\fprovisioners\x12'\n" +
	"\x06admins\x18\t \x03(\v2\x0f.linkedca.AdminR\x06admins\x127\n" +
	"\btemplate\x18\n" +
	" \x01(\v2\x1b.linkedca.DistinguishedNameR\btemplate\x12(\n" +
	"\x06claims\x18\v \x01(\v2\x10.linkedca.ClaimsR\x06claims\x125\n" +
	"\x17disable_issued_at_check\x18\f \x01(\bR\x14disableIssuedAtCheck\x12\x1a\n" +
	"\bbackdate\x18\r \x01(\tR\bbackdate\x12'\n" +
	"\x0fdeployment_type\x18\x0e \x01(\tR\x0edeploymentType\x12(\n" +
	"\x06policy\x18\x0f \x01(\v2\x10.linkedca.PolicyR\x06policy\";\n" +
	"\x04Type\x12\v\n" +
	"\aDEFAULT\x10\x00\x12\v\n" +
	"\aSOFTCAS\x10\x01\x12\f\n" +
	"\bCLOUDCAS\x10\x02\x12\v\n" +
	"\aSTEPCAS\x10\x03\"\xa7\x02\n" +
	"\x11DistinguishedName\x12\x18\n" +
	"\acountry\x18\x01 \x01(\tR\acountry\x12\"\n" +
	"\forganization\x18\x02 \x01(\tR\forganization\x12/\n" +
	"\x13organizational_unit\x18\x03 \x01(\tR\x12organizationalUnit\x12\x1a\n" +
	"\blocality\x18\x04 \x01(\tR\blocality\x12\x1a\n" +
	"\bprovince\x18\x05 \x01(\tR\bprovince\x12%\n" +
	"\x0estreet_address\x18\x06 \x01(\tR\rstreetAddress\x12#\n" +
	"\rserial_number\x18\a \x01(\tR\fserialNumber\x12\x1f\n" +
	"\vcommon_name\x18\b \x01(\tR\n" +
	"commonName\"\xe2\x01\n" +
	"\x11CertificateIssuer\x124\n" +
	"\x04type\x18\x01 \x01(\x0e2 .linkedca.CertificateIssuer.TypeR\x04type\x12 \n" +
	"\vprovisioner\x18\x02 \x01(\tR\vprovisioner\x12 \n" +
	"\vcertificate\x18\x03 \x01(\tR\vcertificate\x12\x10\n" +
	"\x03key\x18\x04 \x01(\tR\x03key\x12\x1a\n" +
	"\bpassword\x18\x05 \x01(\fR\bpassword\"%\n" +
	"\x04Type\x12\v\n" +
	"\aUNKNOWN\x10\x00\x12\a\n" +
	"\x03JWK\x10\x01\x12\a\n" +
	"\x03X5C\x10\x02\"\xbc\x02\n" +
	"\x03SSH\x12\x19\n" +
	"\bhost_key\x18\x01 \x01(\tR\ahostKey\x12\x19\n" +
	"\buser_key\x18\x02 \x01(\tR\auserKey\x12&\n" +
	"\x0fhost_public_key\x18\x03 \x01(\tR\rhostPublicKey\x12&\n" +
	"\x0fuser_public_key\x18\x04 \x01(\tR\ruserPublicKey\x12*\n" +
	"\x04keys\x18\x05 \x03(\v2\x16.linkedca.SSHPublicKeyR\x04keys\x12,\n" +
	"\x12add_user_principal\x18\x06 \x01(\tR\x10addUserPrincipal\x12(\n" +
	"\x10add_user_command\x18\a \x01(\tR\x0eaddUserCommand\x12+\n" +
	"\abastion\x18\b \x01(\v2\x11.linkedca.BastionR\abastion\"\xb1\x01\n" +
	"\fSSHPublicKey\x12/\n" +
	"\x04type\x18\x01 \x01(\x0e2\x1b.linkedca.SSHPublicKey.TypeR\x04type\x12\x1c\n" +
	"\tfederated\x18\x02 \x01(\bR\tfederated\x12)\n" +
	"\x03key\x18\x03 \x01(\v2\x17.google.protobuf.StructR\x03key\"'\n" +
	"\x04Type\x12\v\n" +
	"\aUNKNOWN\x10\x00\x12\b\n" +
	"\x04USER\x10\x01\x12\b\n" +
	"\x04HOST\x10\x02\"}\n" +
	"\aBastion\x12\x1a\n" +
	"\bhostname\x18\x01 \x01(\tR\bhostname\x12\x12\n" +
	"\x04user\x18\x02 \x01(\tR\x04user\x12\x12\n" +
	"\x04port\x18\x03 \x01(\tR\x04port\x12\x18\n" +
	"\acommand\x18\x04 \x01(\tR\acommand\x12\x14\n" +
	"\x05flags\x18\x05 \x01(\tR\x05flags\"\xca\x02\n" +
	"\x03KMS\x12&\n" +
	"\x04type\x18\x01 \x01(\x0e2\x12.linkedca.KMS.TypeR\x04type\x12(\n" +
	"\x0fcredentialsFile\x18\x02 \x01(\tR\x0fcredentialsFile\x12\x10\n" +
	"\x03uri\x18\x03 \x01(\tR\x03uri\x12\x10\n" +
	"\x03pin\x18\x04 \x01(\tR\x03pin\x12$\n" +
	"\rmanagementKey\x18\x05 \x01(\tR\rmanagementKey\x12\x16\n" +
	"\x06region\x18\x06 \x01(\tR\x06region\x12\x18\n" +
	"\aprofile\x18\a \x01(\tR\aprofile\"u\n" +
	"\x04Type\x12\v\n" +
	"\aDEFAULT\x10\x00\x12\v\n" +
	"\aSOFTKMS\x10\x01\x12\f\n" +
	"\bCLOUDKMS\x10\x02\x12\r\n" +
	"\tAMAZONKMS\x10\x03\x12\n" +
	"\n" +
	"\x06PKCS11\x10\x04\x12\v\n" +
	"\aYUBIKEY\x10\x05\x12\x0f\n" +
	"\vSSHAGENTKMS\x10\x06\x12\f\n" +
	"\bAZUREKMS\x10\a\"\xbc\t\n" +
	"\x03TLS\x12=\n" +
	"\rcipher_suites\x18\x01 \x03(\x0e2\x18.linkedca.TLS.CiperSuiteR\fcipherSuites\x12\x1f\n" +
	"\vmin_version\x18\x02 \x01(\tR\n" +
	"minVersion\x12\x1f\n" +
	"\vmax_version\x18\x03 \x01(\tR\n" +
	"maxVersion\x12$\n" +
	"\rrenegotiation\x18\x04 \x01(\bR\rrenegotiation\"\x8d\b\n" +
	"\n" +
	"CiperSuite\x12\v\n" +
	"\aUNKNOWN\x10\x00\x12\x1c\n" +
	"\x18TLS_RSA_WITH_RC4_128_SHA\x10\x05\x12!\n" +
	"\x1dTLS_RSA_WITH_3DES_EDE_CBC_SHA\x10\n" +
	"\x12 \n" +
	"\x1cTLS_RSA_WITH_AES_128_CBC_SHA\x10/\x12 \n" +
	"\x1cTLS_RSA_WITH_AES_256_CBC_SHA\x105\x12#\n" +
	"\x1fTLS_RSA_WITH_AES_128_CBC_SHA256\x10<\x12$\n" +
	"\x1fTLS_RSA_WITH_AES_128_GCM_SHA256\x10\x9c\x01\x12$\n" +
	"\x1fTLS_RSA_WITH_AES_256_GCM_SHA384\x10\x9d\x01\x12&\n" +
	" TLS_ECDHE_ECDSA_WITH_RC4_128_SHA\x10\x87\x80\x03\x12*\n" +
	"$TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\x10\x89\x80\x03\x12*\n" +
	"$TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\x10\x8a\x80\x03\x12$\n" +
	"\x1eTLS_ECDHE_RSA_WITH_RC4_128_SHA\x10\x91\x80\x03\x12)\n" +
	"#TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA\x10\x92\x80\x03\x12(\n" +
	"\"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\x10\x93\x80\x03\x12(\n" +
	"\"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\x10\x94\x80\x03\x12-\n" +
	"'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256\x10\xa3\x80\x03\x12+\n" +
	"%TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256\x10\xa7\x80\x03\x12+\n" +
	"%TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\x10\xaf\x80\x03\x12-\n" +
	"'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\x10\xab\x80\x03\x12+\n" +
	"%TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\x10\xb0\x80\x03\x12-\n" +
	"'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\x10\xac\x80\x03\x121\n" +
	"+TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\x10\xa8\x99\x03\x123\n" +
	"-TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\x10\xa9\x99\x03\x12\x1b\n" +
	"\x16TLS_AES_128_GCM_SHA256\x10\x81&\x12\x1b\n" +
	"\x16TLS_AES_256_GCM_SHA384\x10\x82&\x12!\n" +
	"\x1cTLS_CHACHA20_POLY1305_SHA256\x10\x83&\"m\n" +
	"\x0fConfigTemplates\x12-\n" +
	"\x03ssh\x18\x01 \x01(\v2\x1b.linkedca.SSHConfigTemplateR\x03ssh\x12+\n" +
	"\x04data\x18\x02 \x01(\v2\x17.google.protobuf.StructR\x04data\"s\n" +
	"\x11SSHConfigTemplate\x12.\n" +
	"\x05users\x18\x01 \x03(\v2\x18.linkedca.ConfigTemplateR\x05users\x12.\n" +
	"\x05hosts\x18\x02 \x03(\v2\x18.linkedca.ConfigTemplateR\x05hosts\"\x92\x02\n" +
	"\x0eConfigTemplate\x121\n" +
	"\x04type\x18\x01 \x01(\x0e2\x1d.linkedca.ConfigTemplate.TypeR\x04type\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\x12\x1a\n" +
	"\btemplate\x18\x03 \x01(\tR\btemplate\x12\x12\n" +
	"\x04path\x18\x04 \x01(\tR\x04path\x12\x18\n" +
	"\acomment\x18\x05 \x01(\tR\acomment\x12\x1a\n" +
	"\brequires\x18\x06 \x03(\tR\brequires\x12\x18\n" +
	"\acontent\x18\a \x01(\fR\acontent\"9\n" +
	"\x04Type\x12\v\n" +
	"\aUNKNOWN\x10\x00\x12\v\n" +
	"\aSNIPPET\x10\x01\x12\b\n" +
	"\x04FILE\x10\x02\x12\r\n" +
	"\tDIRECTORY\x10\x03B\x1fZ\x1dgithub.com/smallstep/linkedcab\x06proto3"

var (
	file_linkedca_config_proto_rawDescOnce sync.Once
	file_linkedca_config_proto_rawDescData []byte
)

func file_linkedca_config_proto_rawDescGZIP() []byte {
	file_linkedca_config_proto_rawDescOnce.Do(func() {
		file_linkedca_config_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_linkedca_config_proto_rawDesc), len(file_linkedca_config_proto_rawDesc)))
	})
	return file_linkedca_config_proto_rawDescData
}

var file_linkedca_config_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
var file_linkedca_config_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
var file_linkedca_config_proto_goTypes = []any{
	(Authority_Type)(0),         // 0: linkedca.Authority.Type
	(CertificateIssuer_Type)(0), // 1: linkedca.CertificateIssuer.Type
	(SSHPublicKey_Type)(0),      // 2: linkedca.SSHPublicKey.Type
	(KMS_Type)(0),               // 3: linkedca.KMS.Type
	(TLS_CiperSuite)(0),         // 4: linkedca.TLS.CiperSuite
	(ConfigTemplate_Type)(0),    // 5: linkedca.ConfigTemplate.Type
	(*Configuration)(nil),       // 6: linkedca.Configuration
	(*Defaults)(nil),            // 7: linkedca.Defaults
	(*Authority)(nil),           // 8: linkedca.Authority
	(*DistinguishedName)(nil),   // 9: linkedca.DistinguishedName
	(*CertificateIssuer)(nil),   // 10: linkedca.CertificateIssuer
	(*SSH)(nil),                 // 11: linkedca.SSH
	(*SSHPublicKey)(nil),        // 12: linkedca.SSHPublicKey
	(*Bastion)(nil),             // 13: linkedca.Bastion
	(*KMS)(nil),                 // 14: linkedca.KMS
	(*TLS)(nil),                 // 15: linkedca.TLS
	(*ConfigTemplates)(nil),     // 16: linkedca.ConfigTemplates
	(*SSHConfigTemplate)(nil),   // 17: linkedca.SSHConfigTemplate
	(*ConfigTemplate)(nil),      // 18: linkedca.ConfigTemplate
	nil,                         // 19: linkedca.Configuration.FilesEntry
	(*structpb.Struct)(nil),     // 20: google.protobuf.Struct
	(*Provisioner)(nil),         // 21: linkedca.Provisioner
	(*Admin)(nil),               // 22: linkedca.Admin
	(*Claims)(nil),              // 23: linkedca.Claims
	(*Policy)(nil),              // 24: linkedca.Policy
}
var file_linkedca_config_proto_depIdxs = []int32{
	11, // 0: linkedca.Configuration.ssh:type_name -> linkedca.SSH
	14, // 1: linkedca.Configuration.kms:type_name -> linkedca.KMS
	20, // 2: linkedca.Configuration.logger:type_name -> google.protobuf.Struct
	20, // 3: linkedca.Configuration.db:type_name -> google.protobuf.Struct
	20, // 4: linkedca.Configuration.monitoring:type_name -> google.protobuf.Struct
	8,  // 5: linkedca.Configuration.authority:type_name -> linkedca.Authority
	15, // 6: linkedca.Configuration.tls:type_name -> linkedca.TLS
	16, // 7: linkedca.Configuration.templates:type_name -> linkedca.ConfigTemplates
	19, // 8: linkedca.Configuration.files:type_name -> linkedca.Configuration.FilesEntry
	0,  // 9: linkedca.Authority.type:type_name -> linkedca.Authority.Type
	10, // 10: linkedca.Authority.certificate_issuer:type_name -> linkedca.CertificateIssuer
	21, // 11: linkedca.Authority.provisioners:type_name -> linkedca.Provisioner
	22, // 12: linkedca.Authority.admins:type_name -> linkedca.Admin
	9,  // 13: linkedca.Authority.template:type_name -> linkedca.DistinguishedName
	23, // 14: linkedca.Authority.claims:type_name -> linkedca.Claims
	24, // 15: linkedca.Authority.policy:type_name -> linkedca.Policy
	1,  // 16: linkedca.CertificateIssuer.type:type_name -> linkedca.CertificateIssuer.Type
	12, // 17: linkedca.SSH.keys:type_name -> linkedca.SSHPublicKey
	13, // 18: linkedca.SSH.bastion:type_name -> linkedca.Bastion
	2,  // 19: linkedca.SSHPublicKey.type:type_name -> linkedca.SSHPublicKey.Type
	20, // 20: linkedca.SSHPublicKey.key:type_name -> google.protobuf.Struct
	3,  // 21: linkedca.KMS.type:type_name -> linkedca.KMS.Type
	4,  // 22: linkedca.TLS.cipher_suites:type_name -> linkedca.TLS.CiperSuite
	17, // 23: linkedca.ConfigTemplates.ssh:type_name -> linkedca.SSHConfigTemplate
	20, // 24: linkedca.ConfigTemplates.data:type_name -> google.protobuf.Struct
	18, // 25: linkedca.SSHConfigTemplate.users:type_name -> linkedca.ConfigTemplate
	18, // 26: linkedca.SSHConfigTemplate.hosts:type_name -> linkedca.ConfigTemplate
	5,  // 27: linkedca.ConfigTemplate.type:type_name -> linkedca.ConfigTemplate.Type
	28, // [28:28] is the sub-list for method output_type
	28, // [28:28] is the sub-list for method input_type
	28, // [28:28] is the sub-list for extension type_name
	28, // [28:28] is the sub-list for extension extendee
	0,  // [0:28] is the sub-list for field type_name
}

func init() { file_linkedca_config_proto_init() }
func file_linkedca_config_proto_init() {
	if File_linkedca_config_proto != nil {
		return
	}
	file_linkedca_admin_proto_init()
	file_linkedca_provisioners_proto_init()
	file_linkedca_policy_proto_init()
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_linkedca_config_proto_rawDesc), len(file_linkedca_config_proto_rawDesc)),
			NumEnums:      6,
			NumMessages:   14,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_linkedca_config_proto_goTypes,
		DependencyIndexes: file_linkedca_config_proto_depIdxs,
		EnumInfos:         file_linkedca_config_proto_enumTypes,
		MessageInfos:      file_linkedca_config_proto_msgTypes,
	}.Build()
	File_linkedca_config_proto = out.File
	file_linkedca_config_proto_goTypes = nil
	file_linkedca_config_proto_depIdxs = nil
}
