// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v6.32.1
// source: proto/metacrypt/v2/ca.proto

package metacryptv2

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	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 ImportRootRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Mount string                 `protobuf:"bytes,1,opt,name=mount,proto3" json:"mount,omitempty"`
	// cert_pem is the PEM-encoded root CA certificate.
	CertPem []byte `protobuf:"bytes,2,opt,name=cert_pem,json=certPem,proto3" json:"cert_pem,omitempty"`
	// key_pem is the PEM-encoded private key for the root CA.
	KeyPem        []byte `protobuf:"bytes,3,opt,name=key_pem,json=keyPem,proto3" json:"key_pem,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ImportRootRequest) ProtoMessage() {}

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

func (x *ImportRootRequest) GetMount() string {
	if x != nil {
		return x.Mount
	}
	return ""
}

func (x *ImportRootRequest) GetCertPem() []byte {
	if x != nil {
		return x.CertPem
	}
	return nil
}

func (x *ImportRootRequest) GetKeyPem() []byte {
	if x != nil {
		return x.KeyPem
	}
	return nil
}

type ImportRootResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	CommonName    string                 `protobuf:"bytes,1,opt,name=common_name,json=commonName,proto3" json:"common_name,omitempty"`
	ExpiresAt     *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ImportRootResponse) ProtoMessage() {}

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

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

func (x *ImportRootResponse) GetExpiresAt() *timestamppb.Timestamp {
	if x != nil {
		return x.ExpiresAt
	}
	return nil
}

type GetRootRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Mount         string                 `protobuf:"bytes,1,opt,name=mount,proto3" json:"mount,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetRootRequest) ProtoMessage() {}

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

func (x *GetRootRequest) GetMount() string {
	if x != nil {
		return x.Mount
	}
	return ""
}

type GetRootResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	CertPem       []byte                 `protobuf:"bytes,1,opt,name=cert_pem,json=certPem,proto3" json:"cert_pem,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetRootResponse) ProtoMessage() {}

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

func (x *GetRootResponse) GetCertPem() []byte {
	if x != nil {
		return x.CertPem
	}
	return nil
}

type CreateIssuerRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Mount string                 `protobuf:"bytes,1,opt,name=mount,proto3" json:"mount,omitempty"`
	// name is the unique identifier for this issuer within the mount.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// key_algorithm overrides the mount-level default (e.g. "ecdsa", "rsa").
	KeyAlgorithm string `protobuf:"bytes,3,opt,name=key_algorithm,json=keyAlgorithm,proto3" json:"key_algorithm,omitempty"`
	// key_size overrides the mount-level default (e.g. 256, 2048).
	KeySize int32 `protobuf:"varint,4,opt,name=key_size,json=keySize,proto3" json:"key_size,omitempty"`
	// expiry is the lifetime of the issuer certificate (e.g. "26280h").
	// Defaults to 3 years if empty.
	Expiry string `protobuf:"bytes,5,opt,name=expiry,proto3" json:"expiry,omitempty"`
	// max_ttl is the maximum TTL for leaf certificates issued by this issuer
	// (e.g. "2160h"). Defaults to 90 days if empty.
	MaxTtl        string `protobuf:"bytes,6,opt,name=max_ttl,json=maxTtl,proto3" json:"max_ttl,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CreateIssuerRequest) ProtoMessage() {}

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

func (x *CreateIssuerRequest) GetMount() string {
	if x != nil {
		return x.Mount
	}
	return ""
}

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

func (x *CreateIssuerRequest) GetKeyAlgorithm() string {
	if x != nil {
		return x.KeyAlgorithm
	}
	return ""
}

func (x *CreateIssuerRequest) GetKeySize() int32 {
	if x != nil {
		return x.KeySize
	}
	return 0
}

func (x *CreateIssuerRequest) GetExpiry() string {
	if x != nil {
		return x.Expiry
	}
	return ""
}

func (x *CreateIssuerRequest) GetMaxTtl() string {
	if x != nil {
		return x.MaxTtl
	}
	return ""
}

type CreateIssuerResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Name  string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// cert_pem is the PEM-encoded issuer certificate.
	CertPem       []byte `protobuf:"bytes,2,opt,name=cert_pem,json=certPem,proto3" json:"cert_pem,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CreateIssuerResponse) ProtoMessage() {}

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

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

func (x *CreateIssuerResponse) GetCertPem() []byte {
	if x != nil {
		return x.CertPem
	}
	return nil
}

type DeleteIssuerRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Mount         string                 `protobuf:"bytes,1,opt,name=mount,proto3" json:"mount,omitempty"`
	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DeleteIssuerRequest) ProtoMessage() {}

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

func (x *DeleteIssuerRequest) GetMount() string {
	if x != nil {
		return x.Mount
	}
	return ""
}

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

type DeleteIssuerResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DeleteIssuerResponse) ProtoMessage() {}

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

type ListIssuersRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Mount         string                 `protobuf:"bytes,1,opt,name=mount,proto3" json:"mount,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ListIssuersRequest) ProtoMessage() {}

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

func (x *ListIssuersRequest) GetMount() string {
	if x != nil {
		return x.Mount
	}
	return ""
}

type ListIssuersResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Issuers       []string               `protobuf:"bytes,1,rep,name=issuers,proto3" json:"issuers,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ListIssuersResponse) ProtoMessage() {}

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

func (x *ListIssuersResponse) GetIssuers() []string {
	if x != nil {
		return x.Issuers
	}
	return nil
}

type GetIssuerRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Mount         string                 `protobuf:"bytes,1,opt,name=mount,proto3" json:"mount,omitempty"`
	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetIssuerRequest) ProtoMessage() {}

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

func (x *GetIssuerRequest) GetMount() string {
	if x != nil {
		return x.Mount
	}
	return ""
}

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

type GetIssuerResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	CertPem       []byte                 `protobuf:"bytes,1,opt,name=cert_pem,json=certPem,proto3" json:"cert_pem,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetIssuerResponse) ProtoMessage() {}

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

func (x *GetIssuerResponse) GetCertPem() []byte {
	if x != nil {
		return x.CertPem
	}
	return nil
}

type CAServiceGetChainRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Mount         string                 `protobuf:"bytes,1,opt,name=mount,proto3" json:"mount,omitempty"`
	Issuer        string                 `protobuf:"bytes,2,opt,name=issuer,proto3" json:"issuer,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CAServiceGetChainRequest) ProtoMessage() {}

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

func (x *CAServiceGetChainRequest) GetMount() string {
	if x != nil {
		return x.Mount
	}
	return ""
}

func (x *CAServiceGetChainRequest) GetIssuer() string {
	if x != nil {
		return x.Issuer
	}
	return ""
}

type CAServiceGetChainResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// chain_pem contains the issuer certificate followed by the root certificate,
	// PEM-encoded and concatenated.
	ChainPem      []byte `protobuf:"bytes,1,opt,name=chain_pem,json=chainPem,proto3" json:"chain_pem,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CAServiceGetChainResponse) Reset() {
	*x = CAServiceGetChainResponse{}
	mi := &file_proto_metacrypt_v2_ca_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*CAServiceGetChainResponse) ProtoMessage() {}

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

func (x *CAServiceGetChainResponse) GetChainPem() []byte {
	if x != nil {
		return x.ChainPem
	}
	return nil
}

type IssueCertRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Mount string                 `protobuf:"bytes,1,opt,name=mount,proto3" json:"mount,omitempty"`
	// issuer is the name of the issuer to sign the certificate.
	Issuer string `protobuf:"bytes,2,opt,name=issuer,proto3" json:"issuer,omitempty"`
	// profile selects the certificate profile (e.g. "server", "client").
	// Defaults to "server" if empty.
	Profile     string   `protobuf:"bytes,3,opt,name=profile,proto3" json:"profile,omitempty"`
	CommonName  string   `protobuf:"bytes,4,opt,name=common_name,json=commonName,proto3" json:"common_name,omitempty"`
	DnsNames    []string `protobuf:"bytes,5,rep,name=dns_names,json=dnsNames,proto3" json:"dns_names,omitempty"`
	IpAddresses []string `protobuf:"bytes,6,rep,name=ip_addresses,json=ipAddresses,proto3" json:"ip_addresses,omitempty"`
	// ttl overrides the profile's default validity period (e.g. "8760h").
	Ttl string `protobuf:"bytes,7,opt,name=ttl,proto3" json:"ttl,omitempty"`
	// key_algorithm overrides the issuer-level default.
	KeyAlgorithm string `protobuf:"bytes,8,opt,name=key_algorithm,json=keyAlgorithm,proto3" json:"key_algorithm,omitempty"`
	// key_size overrides the issuer-level default.
	KeySize       int32    `protobuf:"varint,9,opt,name=key_size,json=keySize,proto3" json:"key_size,omitempty"`
	KeyUsages     []string `protobuf:"bytes,10,rep,name=key_usages,json=keyUsages,proto3" json:"key_usages,omitempty"`
	ExtKeyUsages  []string `protobuf:"bytes,11,rep,name=ext_key_usages,json=extKeyUsages,proto3" json:"ext_key_usages,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *IssueCertRequest) Reset() {
	*x = IssueCertRequest{}
	mi := &file_proto_metacrypt_v2_ca_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*IssueCertRequest) ProtoMessage() {}

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

func (x *IssueCertRequest) GetMount() string {
	if x != nil {
		return x.Mount
	}
	return ""
}

func (x *IssueCertRequest) GetIssuer() string {
	if x != nil {
		return x.Issuer
	}
	return ""
}

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

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

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

func (x *IssueCertRequest) GetIpAddresses() []string {
	if x != nil {
		return x.IpAddresses
	}
	return nil
}

func (x *IssueCertRequest) GetTtl() string {
	if x != nil {
		return x.Ttl
	}
	return ""
}

func (x *IssueCertRequest) GetKeyAlgorithm() string {
	if x != nil {
		return x.KeyAlgorithm
	}
	return ""
}

func (x *IssueCertRequest) GetKeySize() int32 {
	if x != nil {
		return x.KeySize
	}
	return 0
}

func (x *IssueCertRequest) GetKeyUsages() []string {
	if x != nil {
		return x.KeyUsages
	}
	return nil
}

func (x *IssueCertRequest) GetExtKeyUsages() []string {
	if x != nil {
		return x.ExtKeyUsages
	}
	return nil
}

type IssueCertResponse struct {
	state      protoimpl.MessageState `protogen:"open.v1"`
	Serial     string                 `protobuf:"bytes,1,opt,name=serial,proto3" json:"serial,omitempty"`
	CommonName string                 `protobuf:"bytes,2,opt,name=common_name,json=commonName,proto3" json:"common_name,omitempty"`
	Sans       []string               `protobuf:"bytes,3,rep,name=sans,proto3" json:"sans,omitempty"`
	IssuedBy   string                 `protobuf:"bytes,4,opt,name=issued_by,json=issuedBy,proto3" json:"issued_by,omitempty"`
	ExpiresAt  *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
	// cert_pem is the PEM-encoded leaf certificate.
	CertPem []byte `protobuf:"bytes,6,opt,name=cert_pem,json=certPem,proto3" json:"cert_pem,omitempty"`
	// key_pem is the PEM-encoded private key for the leaf certificate.
	// This is the only time the private key is returned; it is not stored.
	KeyPem []byte `protobuf:"bytes,7,opt,name=key_pem,json=keyPem,proto3" json:"key_pem,omitempty"`
	// chain_pem contains the full chain: leaf + issuer + root, PEM-concatenated.
	ChainPem      []byte `protobuf:"bytes,8,opt,name=chain_pem,json=chainPem,proto3" json:"chain_pem,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *IssueCertResponse) Reset() {
	*x = IssueCertResponse{}
	mi := &file_proto_metacrypt_v2_ca_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*IssueCertResponse) ProtoMessage() {}

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

func (x *IssueCertResponse) GetSerial() string {
	if x != nil {
		return x.Serial
	}
	return ""
}

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

func (x *IssueCertResponse) GetSans() []string {
	if x != nil {
		return x.Sans
	}
	return nil
}

func (x *IssueCertResponse) GetIssuedBy() string {
	if x != nil {
		return x.IssuedBy
	}
	return ""
}

func (x *IssueCertResponse) GetExpiresAt() *timestamppb.Timestamp {
	if x != nil {
		return x.ExpiresAt
	}
	return nil
}

func (x *IssueCertResponse) GetCertPem() []byte {
	if x != nil {
		return x.CertPem
	}
	return nil
}

func (x *IssueCertResponse) GetKeyPem() []byte {
	if x != nil {
		return x.KeyPem
	}
	return nil
}

func (x *IssueCertResponse) GetChainPem() []byte {
	if x != nil {
		return x.ChainPem
	}
	return nil
}

type GetCertRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Mount         string                 `protobuf:"bytes,1,opt,name=mount,proto3" json:"mount,omitempty"`
	Serial        string                 `protobuf:"bytes,2,opt,name=serial,proto3" json:"serial,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetCertRequest) Reset() {
	*x = GetCertRequest{}
	mi := &file_proto_metacrypt_v2_ca_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*GetCertRequest) ProtoMessage() {}

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

func (x *GetCertRequest) GetMount() string {
	if x != nil {
		return x.Mount
	}
	return ""
}

func (x *GetCertRequest) GetSerial() string {
	if x != nil {
		return x.Serial
	}
	return ""
}

type GetCertResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Cert          *CertRecord            `protobuf:"bytes,1,opt,name=cert,proto3" json:"cert,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetCertResponse) Reset() {
	*x = GetCertResponse{}
	mi := &file_proto_metacrypt_v2_ca_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*GetCertResponse) ProtoMessage() {}

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

func (x *GetCertResponse) GetCert() *CertRecord {
	if x != nil {
		return x.Cert
	}
	return nil
}

type ListCertsRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Mount         string                 `protobuf:"bytes,1,opt,name=mount,proto3" json:"mount,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListCertsRequest) Reset() {
	*x = ListCertsRequest{}
	mi := &file_proto_metacrypt_v2_ca_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListCertsRequest) ProtoMessage() {}

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

func (x *ListCertsRequest) GetMount() string {
	if x != nil {
		return x.Mount
	}
	return ""
}

type ListCertsResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Certs         []*CertSummary         `protobuf:"bytes,1,rep,name=certs,proto3" json:"certs,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListCertsResponse) Reset() {
	*x = ListCertsResponse{}
	mi := &file_proto_metacrypt_v2_ca_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListCertsResponse) ProtoMessage() {}

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

func (x *ListCertsResponse) GetCerts() []*CertSummary {
	if x != nil {
		return x.Certs
	}
	return nil
}

type RenewCertRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Mount         string                 `protobuf:"bytes,1,opt,name=mount,proto3" json:"mount,omitempty"`
	Serial        string                 `protobuf:"bytes,2,opt,name=serial,proto3" json:"serial,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RenewCertRequest) Reset() {
	*x = RenewCertRequest{}
	mi := &file_proto_metacrypt_v2_ca_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RenewCertRequest) ProtoMessage() {}

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

func (x *RenewCertRequest) GetMount() string {
	if x != nil {
		return x.Mount
	}
	return ""
}

func (x *RenewCertRequest) GetSerial() string {
	if x != nil {
		return x.Serial
	}
	return ""
}

type RenewCertResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Serial        string                 `protobuf:"bytes,1,opt,name=serial,proto3" json:"serial,omitempty"`
	CommonName    string                 `protobuf:"bytes,2,opt,name=common_name,json=commonName,proto3" json:"common_name,omitempty"`
	Sans          []string               `protobuf:"bytes,3,rep,name=sans,proto3" json:"sans,omitempty"`
	IssuedBy      string                 `protobuf:"bytes,4,opt,name=issued_by,json=issuedBy,proto3" json:"issued_by,omitempty"`
	ExpiresAt     *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
	CertPem       []byte                 `protobuf:"bytes,6,opt,name=cert_pem,json=certPem,proto3" json:"cert_pem,omitempty"`
	KeyPem        []byte                 `protobuf:"bytes,7,opt,name=key_pem,json=keyPem,proto3" json:"key_pem,omitempty"`
	ChainPem      []byte                 `protobuf:"bytes,8,opt,name=chain_pem,json=chainPem,proto3" json:"chain_pem,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RenewCertResponse) Reset() {
	*x = RenewCertResponse{}
	mi := &file_proto_metacrypt_v2_ca_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RenewCertResponse) ProtoMessage() {}

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

func (x *RenewCertResponse) GetSerial() string {
	if x != nil {
		return x.Serial
	}
	return ""
}

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

func (x *RenewCertResponse) GetSans() []string {
	if x != nil {
		return x.Sans
	}
	return nil
}

func (x *RenewCertResponse) GetIssuedBy() string {
	if x != nil {
		return x.IssuedBy
	}
	return ""
}

func (x *RenewCertResponse) GetExpiresAt() *timestamppb.Timestamp {
	if x != nil {
		return x.ExpiresAt
	}
	return nil
}

func (x *RenewCertResponse) GetCertPem() []byte {
	if x != nil {
		return x.CertPem
	}
	return nil
}

func (x *RenewCertResponse) GetKeyPem() []byte {
	if x != nil {
		return x.KeyPem
	}
	return nil
}

func (x *RenewCertResponse) GetChainPem() []byte {
	if x != nil {
		return x.ChainPem
	}
	return nil
}

type SignCSRRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Mount string                 `protobuf:"bytes,1,opt,name=mount,proto3" json:"mount,omitempty"`
	// issuer is the name of the issuer to sign with.
	Issuer string `protobuf:"bytes,2,opt,name=issuer,proto3" json:"issuer,omitempty"`
	// csr_pem is the PEM-encoded PKCS#10 certificate signing request.
	CsrPem []byte `protobuf:"bytes,3,opt,name=csr_pem,json=csrPem,proto3" json:"csr_pem,omitempty"`
	// profile selects key usage defaults (e.g. "server", "client", "peer").
	// Defaults to "server" if empty.
	Profile string `protobuf:"bytes,4,opt,name=profile,proto3" json:"profile,omitempty"`
	// ttl overrides the profile's default validity period (e.g. "8760h").
	Ttl           string `protobuf:"bytes,5,opt,name=ttl,proto3" json:"ttl,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignCSRRequest) Reset() {
	*x = SignCSRRequest{}
	mi := &file_proto_metacrypt_v2_ca_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*SignCSRRequest) ProtoMessage() {}

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

func (x *SignCSRRequest) GetMount() string {
	if x != nil {
		return x.Mount
	}
	return ""
}

func (x *SignCSRRequest) GetIssuer() string {
	if x != nil {
		return x.Issuer
	}
	return ""
}

func (x *SignCSRRequest) GetCsrPem() []byte {
	if x != nil {
		return x.CsrPem
	}
	return nil
}

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

func (x *SignCSRRequest) GetTtl() string {
	if x != nil {
		return x.Ttl
	}
	return ""
}

type SignCSRResponse struct {
	state      protoimpl.MessageState `protogen:"open.v1"`
	Serial     string                 `protobuf:"bytes,1,opt,name=serial,proto3" json:"serial,omitempty"`
	CommonName string                 `protobuf:"bytes,2,opt,name=common_name,json=commonName,proto3" json:"common_name,omitempty"`
	Sans       []string               `protobuf:"bytes,3,rep,name=sans,proto3" json:"sans,omitempty"`
	IssuedBy   string                 `protobuf:"bytes,4,opt,name=issued_by,json=issuedBy,proto3" json:"issued_by,omitempty"`
	ExpiresAt  *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
	// cert_pem is the signed leaf certificate. No private key is returned
	// because the caller already holds it.
	CertPem []byte `protobuf:"bytes,6,opt,name=cert_pem,json=certPem,proto3" json:"cert_pem,omitempty"`
	// chain_pem contains the full chain: leaf + issuer + root, PEM-concatenated.
	ChainPem      []byte `protobuf:"bytes,7,opt,name=chain_pem,json=chainPem,proto3" json:"chain_pem,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignCSRResponse) Reset() {
	*x = SignCSRResponse{}
	mi := &file_proto_metacrypt_v2_ca_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*SignCSRResponse) ProtoMessage() {}

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

func (x *SignCSRResponse) GetSerial() string {
	if x != nil {
		return x.Serial
	}
	return ""
}

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

func (x *SignCSRResponse) GetSans() []string {
	if x != nil {
		return x.Sans
	}
	return nil
}

func (x *SignCSRResponse) GetIssuedBy() string {
	if x != nil {
		return x.IssuedBy
	}
	return ""
}

func (x *SignCSRResponse) GetExpiresAt() *timestamppb.Timestamp {
	if x != nil {
		return x.ExpiresAt
	}
	return nil
}

func (x *SignCSRResponse) GetCertPem() []byte {
	if x != nil {
		return x.CertPem
	}
	return nil
}

func (x *SignCSRResponse) GetChainPem() []byte {
	if x != nil {
		return x.ChainPem
	}
	return nil
}

type RevokeCertRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Mount         string                 `protobuf:"bytes,1,opt,name=mount,proto3" json:"mount,omitempty"`
	Serial        string                 `protobuf:"bytes,2,opt,name=serial,proto3" json:"serial,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RevokeCertRequest) Reset() {
	*x = RevokeCertRequest{}
	mi := &file_proto_metacrypt_v2_ca_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RevokeCertRequest) ProtoMessage() {}

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

func (x *RevokeCertRequest) GetMount() string {
	if x != nil {
		return x.Mount
	}
	return ""
}

func (x *RevokeCertRequest) GetSerial() string {
	if x != nil {
		return x.Serial
	}
	return ""
}

type RevokeCertResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Serial        string                 `protobuf:"bytes,1,opt,name=serial,proto3" json:"serial,omitempty"`
	RevokedAt     *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=revoked_at,json=revokedAt,proto3" json:"revoked_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RevokeCertResponse) Reset() {
	*x = RevokeCertResponse{}
	mi := &file_proto_metacrypt_v2_ca_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RevokeCertResponse) ProtoMessage() {}

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

func (x *RevokeCertResponse) GetSerial() string {
	if x != nil {
		return x.Serial
	}
	return ""
}

func (x *RevokeCertResponse) GetRevokedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.RevokedAt
	}
	return nil
}

type DeleteCertRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Mount         string                 `protobuf:"bytes,1,opt,name=mount,proto3" json:"mount,omitempty"`
	Serial        string                 `protobuf:"bytes,2,opt,name=serial,proto3" json:"serial,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteCertRequest) Reset() {
	*x = DeleteCertRequest{}
	mi := &file_proto_metacrypt_v2_ca_proto_msgTypes[26]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*DeleteCertRequest) ProtoMessage() {}

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

func (x *DeleteCertRequest) GetMount() string {
	if x != nil {
		return x.Mount
	}
	return ""
}

func (x *DeleteCertRequest) GetSerial() string {
	if x != nil {
		return x.Serial
	}
	return ""
}

type DeleteCertResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteCertResponse) Reset() {
	*x = DeleteCertResponse{}
	mi := &file_proto_metacrypt_v2_ca_proto_msgTypes[27]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*DeleteCertResponse) ProtoMessage() {}

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

// CertRecord is the full certificate record including the PEM-encoded cert.
type CertRecord struct {
	state      protoimpl.MessageState `protogen:"open.v1"`
	Serial     string                 `protobuf:"bytes,1,opt,name=serial,proto3" json:"serial,omitempty"`
	Issuer     string                 `protobuf:"bytes,2,opt,name=issuer,proto3" json:"issuer,omitempty"`
	CommonName string                 `protobuf:"bytes,3,opt,name=common_name,json=commonName,proto3" json:"common_name,omitempty"`
	Sans       []string               `protobuf:"bytes,4,rep,name=sans,proto3" json:"sans,omitempty"`
	Profile    string                 `protobuf:"bytes,5,opt,name=profile,proto3" json:"profile,omitempty"`
	IssuedBy   string                 `protobuf:"bytes,6,opt,name=issued_by,json=issuedBy,proto3" json:"issued_by,omitempty"`
	IssuedAt   *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=issued_at,json=issuedAt,proto3" json:"issued_at,omitempty"`
	ExpiresAt  *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
	// cert_pem is the PEM-encoded certificate.
	CertPem []byte `protobuf:"bytes,9,opt,name=cert_pem,json=certPem,proto3" json:"cert_pem,omitempty"`
	// revoked indicates whether the certificate has been revoked.
	Revoked bool `protobuf:"varint,10,opt,name=revoked,proto3" json:"revoked,omitempty"`
	// revoked_at is the time the certificate was revoked, if applicable.
	RevokedAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=revoked_at,json=revokedAt,proto3" json:"revoked_at,omitempty"`
	// revoked_by is the username of the admin who revoked the certificate.
	RevokedBy     string `protobuf:"bytes,12,opt,name=revoked_by,json=revokedBy,proto3" json:"revoked_by,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CertRecord) Reset() {
	*x = CertRecord{}
	mi := &file_proto_metacrypt_v2_ca_proto_msgTypes[28]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*CertRecord) ProtoMessage() {}

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

func (x *CertRecord) GetSerial() string {
	if x != nil {
		return x.Serial
	}
	return ""
}

func (x *CertRecord) GetIssuer() string {
	if x != nil {
		return x.Issuer
	}
	return ""
}

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

func (x *CertRecord) GetSans() []string {
	if x != nil {
		return x.Sans
	}
	return nil
}

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

func (x *CertRecord) GetIssuedBy() string {
	if x != nil {
		return x.IssuedBy
	}
	return ""
}

func (x *CertRecord) GetIssuedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.IssuedAt
	}
	return nil
}

func (x *CertRecord) GetExpiresAt() *timestamppb.Timestamp {
	if x != nil {
		return x.ExpiresAt
	}
	return nil
}

func (x *CertRecord) GetCertPem() []byte {
	if x != nil {
		return x.CertPem
	}
	return nil
}

func (x *CertRecord) GetRevoked() bool {
	if x != nil {
		return x.Revoked
	}
	return false
}

func (x *CertRecord) GetRevokedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.RevokedAt
	}
	return nil
}

func (x *CertRecord) GetRevokedBy() string {
	if x != nil {
		return x.RevokedBy
	}
	return ""
}

// CertSummary is a lightweight certificate record without the PEM data,
// suitable for list responses.
type CertSummary struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Serial        string                 `protobuf:"bytes,1,opt,name=serial,proto3" json:"serial,omitempty"`
	Issuer        string                 `protobuf:"bytes,2,opt,name=issuer,proto3" json:"issuer,omitempty"`
	CommonName    string                 `protobuf:"bytes,3,opt,name=common_name,json=commonName,proto3" json:"common_name,omitempty"`
	Profile       string                 `protobuf:"bytes,4,opt,name=profile,proto3" json:"profile,omitempty"`
	IssuedBy      string                 `protobuf:"bytes,5,opt,name=issued_by,json=issuedBy,proto3" json:"issued_by,omitempty"`
	IssuedAt      *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=issued_at,json=issuedAt,proto3" json:"issued_at,omitempty"`
	ExpiresAt     *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CertSummary) Reset() {
	*x = CertSummary{}
	mi := &file_proto_metacrypt_v2_ca_proto_msgTypes[29]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*CertSummary) ProtoMessage() {}

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

func (x *CertSummary) GetSerial() string {
	if x != nil {
		return x.Serial
	}
	return ""
}

func (x *CertSummary) GetIssuer() string {
	if x != nil {
		return x.Issuer
	}
	return ""
}

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

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

func (x *CertSummary) GetIssuedBy() string {
	if x != nil {
		return x.IssuedBy
	}
	return ""
}

func (x *CertSummary) GetIssuedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.IssuedAt
	}
	return nil
}

func (x *CertSummary) GetExpiresAt() *timestamppb.Timestamp {
	if x != nil {
		return x.ExpiresAt
	}
	return nil
}

var File_proto_metacrypt_v2_ca_proto protoreflect.FileDescriptor

const file_proto_metacrypt_v2_ca_proto_rawDesc = "" +
	"\n" +
	"\x1bproto/metacrypt/v2/ca.proto\x12\fmetacrypt.v2\x1a\x1fgoogle/protobuf/timestamp.proto\"]\n" +
	"\x11ImportRootRequest\x12\x14\n" +
	"\x05mount\x18\x01 \x01(\tR\x05mount\x12\x19\n" +
	"\bcert_pem\x18\x02 \x01(\fR\acertPem\x12\x17\n" +
	"\akey_pem\x18\x03 \x01(\fR\x06keyPem\"p\n" +
	"\x12ImportRootResponse\x12\x1f\n" +
	"\vcommon_name\x18\x01 \x01(\tR\n" +
	"commonName\x129\n" +
	"\n" +
	"expires_at\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\texpiresAt\"&\n" +
	"\x0eGetRootRequest\x12\x14\n" +
	"\x05mount\x18\x01 \x01(\tR\x05mount\",\n" +
	"\x0fGetRootResponse\x12\x19\n" +
	"\bcert_pem\x18\x01 \x01(\fR\acertPem\"\xb0\x01\n" +
	"\x13CreateIssuerRequest\x12\x14\n" +
	"\x05mount\x18\x01 \x01(\tR\x05mount\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\x12#\n" +
	"\rkey_algorithm\x18\x03 \x01(\tR\fkeyAlgorithm\x12\x19\n" +
	"\bkey_size\x18\x04 \x01(\x05R\akeySize\x12\x16\n" +
	"\x06expiry\x18\x05 \x01(\tR\x06expiry\x12\x17\n" +
	"\amax_ttl\x18\x06 \x01(\tR\x06maxTtl\"E\n" +
	"\x14CreateIssuerResponse\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x19\n" +
	"\bcert_pem\x18\x02 \x01(\fR\acertPem\"?\n" +
	"\x13DeleteIssuerRequest\x12\x14\n" +
	"\x05mount\x18\x01 \x01(\tR\x05mount\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\"\x16\n" +
	"\x14DeleteIssuerResponse\"*\n" +
	"\x12ListIssuersRequest\x12\x14\n" +
	"\x05mount\x18\x01 \x01(\tR\x05mount\"/\n" +
	"\x13ListIssuersResponse\x12\x18\n" +
	"\aissuers\x18\x01 \x03(\tR\aissuers\"<\n" +
	"\x10GetIssuerRequest\x12\x14\n" +
	"\x05mount\x18\x01 \x01(\tR\x05mount\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\".\n" +
	"\x11GetIssuerResponse\x12\x19\n" +
	"\bcert_pem\x18\x01 \x01(\fR\acertPem\"H\n" +
	"\x18CAServiceGetChainRequest\x12\x14\n" +
	"\x05mount\x18\x01 \x01(\tR\x05mount\x12\x16\n" +
	"\x06issuer\x18\x02 \x01(\tR\x06issuer\"8\n" +
	"\x19CAServiceGetChainResponse\x12\x1b\n" +
	"\tchain_pem\x18\x01 \x01(\fR\bchainPem\"\xd2\x02\n" +
	"\x10IssueCertRequest\x12\x14\n" +
	"\x05mount\x18\x01 \x01(\tR\x05mount\x12\x16\n" +
	"\x06issuer\x18\x02 \x01(\tR\x06issuer\x12\x18\n" +
	"\aprofile\x18\x03 \x01(\tR\aprofile\x12\x1f\n" +
	"\vcommon_name\x18\x04 \x01(\tR\n" +
	"commonName\x12\x1b\n" +
	"\tdns_names\x18\x05 \x03(\tR\bdnsNames\x12!\n" +
	"\fip_addresses\x18\x06 \x03(\tR\vipAddresses\x12\x10\n" +
	"\x03ttl\x18\a \x01(\tR\x03ttl\x12#\n" +
	"\rkey_algorithm\x18\b \x01(\tR\fkeyAlgorithm\x12\x19\n" +
	"\bkey_size\x18\t \x01(\x05R\akeySize\x12\x1d\n" +
	"\n" +
	"key_usages\x18\n" +
	" \x03(\tR\tkeyUsages\x12$\n" +
	"\x0eext_key_usages\x18\v \x03(\tR\fextKeyUsages\"\x89\x02\n" +
	"\x11IssueCertResponse\x12\x16\n" +
	"\x06serial\x18\x01 \x01(\tR\x06serial\x12\x1f\n" +
	"\vcommon_name\x18\x02 \x01(\tR\n" +
	"commonName\x12\x12\n" +
	"\x04sans\x18\x03 \x03(\tR\x04sans\x12\x1b\n" +
	"\tissued_by\x18\x04 \x01(\tR\bissuedBy\x129\n" +
	"\n" +
	"expires_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\texpiresAt\x12\x19\n" +
	"\bcert_pem\x18\x06 \x01(\fR\acertPem\x12\x17\n" +
	"\akey_pem\x18\a \x01(\fR\x06keyPem\x12\x1b\n" +
	"\tchain_pem\x18\b \x01(\fR\bchainPem\">\n" +
	"\x0eGetCertRequest\x12\x14\n" +
	"\x05mount\x18\x01 \x01(\tR\x05mount\x12\x16\n" +
	"\x06serial\x18\x02 \x01(\tR\x06serial\"?\n" +
	"\x0fGetCertResponse\x12,\n" +
	"\x04cert\x18\x01 \x01(\v2\x18.metacrypt.v2.CertRecordR\x04cert\"(\n" +
	"\x10ListCertsRequest\x12\x14\n" +
	"\x05mount\x18\x01 \x01(\tR\x05mount\"D\n" +
	"\x11ListCertsResponse\x12/\n" +
	"\x05certs\x18\x01 \x03(\v2\x19.metacrypt.v2.CertSummaryR\x05certs\"@\n" +
	"\x10RenewCertRequest\x12\x14\n" +
	"\x05mount\x18\x01 \x01(\tR\x05mount\x12\x16\n" +
	"\x06serial\x18\x02 \x01(\tR\x06serial\"\x89\x02\n" +
	"\x11RenewCertResponse\x12\x16\n" +
	"\x06serial\x18\x01 \x01(\tR\x06serial\x12\x1f\n" +
	"\vcommon_name\x18\x02 \x01(\tR\n" +
	"commonName\x12\x12\n" +
	"\x04sans\x18\x03 \x03(\tR\x04sans\x12\x1b\n" +
	"\tissued_by\x18\x04 \x01(\tR\bissuedBy\x129\n" +
	"\n" +
	"expires_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\texpiresAt\x12\x19\n" +
	"\bcert_pem\x18\x06 \x01(\fR\acertPem\x12\x17\n" +
	"\akey_pem\x18\a \x01(\fR\x06keyPem\x12\x1b\n" +
	"\tchain_pem\x18\b \x01(\fR\bchainPem\"\x83\x01\n" +
	"\x0eSignCSRRequest\x12\x14\n" +
	"\x05mount\x18\x01 \x01(\tR\x05mount\x12\x16\n" +
	"\x06issuer\x18\x02 \x01(\tR\x06issuer\x12\x17\n" +
	"\acsr_pem\x18\x03 \x01(\fR\x06csrPem\x12\x18\n" +
	"\aprofile\x18\x04 \x01(\tR\aprofile\x12\x10\n" +
	"\x03ttl\x18\x05 \x01(\tR\x03ttl\"\xee\x01\n" +
	"\x0fSignCSRResponse\x12\x16\n" +
	"\x06serial\x18\x01 \x01(\tR\x06serial\x12\x1f\n" +
	"\vcommon_name\x18\x02 \x01(\tR\n" +
	"commonName\x12\x12\n" +
	"\x04sans\x18\x03 \x03(\tR\x04sans\x12\x1b\n" +
	"\tissued_by\x18\x04 \x01(\tR\bissuedBy\x129\n" +
	"\n" +
	"expires_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\texpiresAt\x12\x19\n" +
	"\bcert_pem\x18\x06 \x01(\fR\acertPem\x12\x1b\n" +
	"\tchain_pem\x18\a \x01(\fR\bchainPem\"A\n" +
	"\x11RevokeCertRequest\x12\x14\n" +
	"\x05mount\x18\x01 \x01(\tR\x05mount\x12\x16\n" +
	"\x06serial\x18\x02 \x01(\tR\x06serial\"g\n" +
	"\x12RevokeCertResponse\x12\x16\n" +
	"\x06serial\x18\x01 \x01(\tR\x06serial\x129\n" +
	"\n" +
	"revoked_at\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\trevokedAt\"A\n" +
	"\x11DeleteCertRequest\x12\x14\n" +
	"\x05mount\x18\x01 \x01(\tR\x05mount\x12\x16\n" +
	"\x06serial\x18\x02 \x01(\tR\x06serial\"\x14\n" +
	"\x12DeleteCertResponse\"\xab\x03\n" +
	"\n" +
	"CertRecord\x12\x16\n" +
	"\x06serial\x18\x01 \x01(\tR\x06serial\x12\x16\n" +
	"\x06issuer\x18\x02 \x01(\tR\x06issuer\x12\x1f\n" +
	"\vcommon_name\x18\x03 \x01(\tR\n" +
	"commonName\x12\x12\n" +
	"\x04sans\x18\x04 \x03(\tR\x04sans\x12\x18\n" +
	"\aprofile\x18\x05 \x01(\tR\aprofile\x12\x1b\n" +
	"\tissued_by\x18\x06 \x01(\tR\bissuedBy\x127\n" +
	"\tissued_at\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\bissuedAt\x129\n" +
	"\n" +
	"expires_at\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\texpiresAt\x12\x19\n" +
	"\bcert_pem\x18\t \x01(\fR\acertPem\x12\x18\n" +
	"\arevoked\x18\n" +
	" \x01(\bR\arevoked\x129\n" +
	"\n" +
	"revoked_at\x18\v \x01(\v2\x1a.google.protobuf.TimestampR\trevokedAt\x12\x1d\n" +
	"\n" +
	"revoked_by\x18\f \x01(\tR\trevokedBy\"\x89\x02\n" +
	"\vCertSummary\x12\x16\n" +
	"\x06serial\x18\x01 \x01(\tR\x06serial\x12\x16\n" +
	"\x06issuer\x18\x02 \x01(\tR\x06issuer\x12\x1f\n" +
	"\vcommon_name\x18\x03 \x01(\tR\n" +
	"commonName\x12\x18\n" +
	"\aprofile\x18\x04 \x01(\tR\aprofile\x12\x1b\n" +
	"\tissued_by\x18\x05 \x01(\tR\bissuedBy\x127\n" +
	"\tissued_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\bissuedAt\x129\n" +
	"\n" +
	"expires_at\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\texpiresAt2\xed\b\n" +
	"\tCAService\x12O\n" +
	"\n" +
	"ImportRoot\x12\x1f.metacrypt.v2.ImportRootRequest\x1a .metacrypt.v2.ImportRootResponse\x12F\n" +
	"\aGetRoot\x12\x1c.metacrypt.v2.GetRootRequest\x1a\x1d.metacrypt.v2.GetRootResponse\x12U\n" +
	"\fCreateIssuer\x12!.metacrypt.v2.CreateIssuerRequest\x1a\".metacrypt.v2.CreateIssuerResponse\x12U\n" +
	"\fDeleteIssuer\x12!.metacrypt.v2.DeleteIssuerRequest\x1a\".metacrypt.v2.DeleteIssuerResponse\x12R\n" +
	"\vListIssuers\x12 .metacrypt.v2.ListIssuersRequest\x1a!.metacrypt.v2.ListIssuersResponse\x12L\n" +
	"\tGetIssuer\x12\x1e.metacrypt.v2.GetIssuerRequest\x1a\x1f.metacrypt.v2.GetIssuerResponse\x12[\n" +
	"\bGetChain\x12&.metacrypt.v2.CAServiceGetChainRequest\x1a'.metacrypt.v2.CAServiceGetChainResponse\x12L\n" +
	"\tIssueCert\x12\x1e.metacrypt.v2.IssueCertRequest\x1a\x1f.metacrypt.v2.IssueCertResponse\x12F\n" +
	"\aGetCert\x12\x1c.metacrypt.v2.GetCertRequest\x1a\x1d.metacrypt.v2.GetCertResponse\x12L\n" +
	"\tListCerts\x12\x1e.metacrypt.v2.ListCertsRequest\x1a\x1f.metacrypt.v2.ListCertsResponse\x12L\n" +
	"\tRenewCert\x12\x1e.metacrypt.v2.RenewCertRequest\x1a\x1f.metacrypt.v2.RenewCertResponse\x12F\n" +
	"\aSignCSR\x12\x1c.metacrypt.v2.SignCSRRequest\x1a\x1d.metacrypt.v2.SignCSRResponse\x12O\n" +
	"\n" +
	"RevokeCert\x12\x1f.metacrypt.v2.RevokeCertRequest\x1a .metacrypt.v2.RevokeCertResponse\x12O\n" +
	"\n" +
	"DeleteCert\x12\x1f.metacrypt.v2.DeleteCertRequest\x1a .metacrypt.v2.DeleteCertResponseB<Z:git.wntrmute.dev/mc/metacrypt/gen/metacrypt/v2;metacryptv2b\x06proto3"

var (
	file_proto_metacrypt_v2_ca_proto_rawDescOnce sync.Once
	file_proto_metacrypt_v2_ca_proto_rawDescData []byte
)

func file_proto_metacrypt_v2_ca_proto_rawDescGZIP() []byte {
	file_proto_metacrypt_v2_ca_proto_rawDescOnce.Do(func() {
		file_proto_metacrypt_v2_ca_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_proto_metacrypt_v2_ca_proto_rawDesc), len(file_proto_metacrypt_v2_ca_proto_rawDesc)))
	})
	return file_proto_metacrypt_v2_ca_proto_rawDescData
}

var file_proto_metacrypt_v2_ca_proto_msgTypes = make([]protoimpl.MessageInfo, 30)
var file_proto_metacrypt_v2_ca_proto_goTypes = []any{
	(*ImportRootRequest)(nil),         // 0: metacrypt.v2.ImportRootRequest
	(*ImportRootResponse)(nil),        // 1: metacrypt.v2.ImportRootResponse
	(*GetRootRequest)(nil),            // 2: metacrypt.v2.GetRootRequest
	(*GetRootResponse)(nil),           // 3: metacrypt.v2.GetRootResponse
	(*CreateIssuerRequest)(nil),       // 4: metacrypt.v2.CreateIssuerRequest
	(*CreateIssuerResponse)(nil),      // 5: metacrypt.v2.CreateIssuerResponse
	(*DeleteIssuerRequest)(nil),       // 6: metacrypt.v2.DeleteIssuerRequest
	(*DeleteIssuerResponse)(nil),      // 7: metacrypt.v2.DeleteIssuerResponse
	(*ListIssuersRequest)(nil),        // 8: metacrypt.v2.ListIssuersRequest
	(*ListIssuersResponse)(nil),       // 9: metacrypt.v2.ListIssuersResponse
	(*GetIssuerRequest)(nil),          // 10: metacrypt.v2.GetIssuerRequest
	(*GetIssuerResponse)(nil),         // 11: metacrypt.v2.GetIssuerResponse
	(*CAServiceGetChainRequest)(nil),  // 12: metacrypt.v2.CAServiceGetChainRequest
	(*CAServiceGetChainResponse)(nil), // 13: metacrypt.v2.CAServiceGetChainResponse
	(*IssueCertRequest)(nil),          // 14: metacrypt.v2.IssueCertRequest
	(*IssueCertResponse)(nil),         // 15: metacrypt.v2.IssueCertResponse
	(*GetCertRequest)(nil),            // 16: metacrypt.v2.GetCertRequest
	(*GetCertResponse)(nil),           // 17: metacrypt.v2.GetCertResponse
	(*ListCertsRequest)(nil),          // 18: metacrypt.v2.ListCertsRequest
	(*ListCertsResponse)(nil),         // 19: metacrypt.v2.ListCertsResponse
	(*RenewCertRequest)(nil),          // 20: metacrypt.v2.RenewCertRequest
	(*RenewCertResponse)(nil),         // 21: metacrypt.v2.RenewCertResponse
	(*SignCSRRequest)(nil),            // 22: metacrypt.v2.SignCSRRequest
	(*SignCSRResponse)(nil),           // 23: metacrypt.v2.SignCSRResponse
	(*RevokeCertRequest)(nil),         // 24: metacrypt.v2.RevokeCertRequest
	(*RevokeCertResponse)(nil),        // 25: metacrypt.v2.RevokeCertResponse
	(*DeleteCertRequest)(nil),         // 26: metacrypt.v2.DeleteCertRequest
	(*DeleteCertResponse)(nil),        // 27: metacrypt.v2.DeleteCertResponse
	(*CertRecord)(nil),                // 28: metacrypt.v2.CertRecord
	(*CertSummary)(nil),               // 29: metacrypt.v2.CertSummary
	(*timestamppb.Timestamp)(nil),     // 30: google.protobuf.Timestamp
}
var file_proto_metacrypt_v2_ca_proto_depIdxs = []int32{
	30, // 0: metacrypt.v2.ImportRootResponse.expires_at:type_name -> google.protobuf.Timestamp
	30, // 1: metacrypt.v2.IssueCertResponse.expires_at:type_name -> google.protobuf.Timestamp
	28, // 2: metacrypt.v2.GetCertResponse.cert:type_name -> metacrypt.v2.CertRecord
	29, // 3: metacrypt.v2.ListCertsResponse.certs:type_name -> metacrypt.v2.CertSummary
	30, // 4: metacrypt.v2.RenewCertResponse.expires_at:type_name -> google.protobuf.Timestamp
	30, // 5: metacrypt.v2.SignCSRResponse.expires_at:type_name -> google.protobuf.Timestamp
	30, // 6: metacrypt.v2.RevokeCertResponse.revoked_at:type_name -> google.protobuf.Timestamp
	30, // 7: metacrypt.v2.CertRecord.issued_at:type_name -> google.protobuf.Timestamp
	30, // 8: metacrypt.v2.CertRecord.expires_at:type_name -> google.protobuf.Timestamp
	30, // 9: metacrypt.v2.CertRecord.revoked_at:type_name -> google.protobuf.Timestamp
	30, // 10: metacrypt.v2.CertSummary.issued_at:type_name -> google.protobuf.Timestamp
	30, // 11: metacrypt.v2.CertSummary.expires_at:type_name -> google.protobuf.Timestamp
	0,  // 12: metacrypt.v2.CAService.ImportRoot:input_type -> metacrypt.v2.ImportRootRequest
	2,  // 13: metacrypt.v2.CAService.GetRoot:input_type -> metacrypt.v2.GetRootRequest
	4,  // 14: metacrypt.v2.CAService.CreateIssuer:input_type -> metacrypt.v2.CreateIssuerRequest
	6,  // 15: metacrypt.v2.CAService.DeleteIssuer:input_type -> metacrypt.v2.DeleteIssuerRequest
	8,  // 16: metacrypt.v2.CAService.ListIssuers:input_type -> metacrypt.v2.ListIssuersRequest
	10, // 17: metacrypt.v2.CAService.GetIssuer:input_type -> metacrypt.v2.GetIssuerRequest
	12, // 18: metacrypt.v2.CAService.GetChain:input_type -> metacrypt.v2.CAServiceGetChainRequest
	14, // 19: metacrypt.v2.CAService.IssueCert:input_type -> metacrypt.v2.IssueCertRequest
	16, // 20: metacrypt.v2.CAService.GetCert:input_type -> metacrypt.v2.GetCertRequest
	18, // 21: metacrypt.v2.CAService.ListCerts:input_type -> metacrypt.v2.ListCertsRequest
	20, // 22: metacrypt.v2.CAService.RenewCert:input_type -> metacrypt.v2.RenewCertRequest
	22, // 23: metacrypt.v2.CAService.SignCSR:input_type -> metacrypt.v2.SignCSRRequest
	24, // 24: metacrypt.v2.CAService.RevokeCert:input_type -> metacrypt.v2.RevokeCertRequest
	26, // 25: metacrypt.v2.CAService.DeleteCert:input_type -> metacrypt.v2.DeleteCertRequest
	1,  // 26: metacrypt.v2.CAService.ImportRoot:output_type -> metacrypt.v2.ImportRootResponse
	3,  // 27: metacrypt.v2.CAService.GetRoot:output_type -> metacrypt.v2.GetRootResponse
	5,  // 28: metacrypt.v2.CAService.CreateIssuer:output_type -> metacrypt.v2.CreateIssuerResponse
	7,  // 29: metacrypt.v2.CAService.DeleteIssuer:output_type -> metacrypt.v2.DeleteIssuerResponse
	9,  // 30: metacrypt.v2.CAService.ListIssuers:output_type -> metacrypt.v2.ListIssuersResponse
	11, // 31: metacrypt.v2.CAService.GetIssuer:output_type -> metacrypt.v2.GetIssuerResponse
	13, // 32: metacrypt.v2.CAService.GetChain:output_type -> metacrypt.v2.CAServiceGetChainResponse
	15, // 33: metacrypt.v2.CAService.IssueCert:output_type -> metacrypt.v2.IssueCertResponse
	17, // 34: metacrypt.v2.CAService.GetCert:output_type -> metacrypt.v2.GetCertResponse
	19, // 35: metacrypt.v2.CAService.ListCerts:output_type -> metacrypt.v2.ListCertsResponse
	21, // 36: metacrypt.v2.CAService.RenewCert:output_type -> metacrypt.v2.RenewCertResponse
	23, // 37: metacrypt.v2.CAService.SignCSR:output_type -> metacrypt.v2.SignCSRResponse
	25, // 38: metacrypt.v2.CAService.RevokeCert:output_type -> metacrypt.v2.RevokeCertResponse
	27, // 39: metacrypt.v2.CAService.DeleteCert:output_type -> metacrypt.v2.DeleteCertResponse
	26, // [26:40] is the sub-list for method output_type
	12, // [12:26] is the sub-list for method input_type
	12, // [12:12] is the sub-list for extension type_name
	12, // [12:12] is the sub-list for extension extendee
	0,  // [0:12] is the sub-list for field type_name
}

func init() { file_proto_metacrypt_v2_ca_proto_init() }
func file_proto_metacrypt_v2_ca_proto_init() {
	if File_proto_metacrypt_v2_ca_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_proto_metacrypt_v2_ca_proto_rawDesc), len(file_proto_metacrypt_v2_ca_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   30,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_proto_metacrypt_v2_ca_proto_goTypes,
		DependencyIndexes: file_proto_metacrypt_v2_ca_proto_depIdxs,
		MessageInfos:      file_proto_metacrypt_v2_ca_proto_msgTypes,
	}.Build()
	File_proto_metacrypt_v2_ca_proto = out.File
	file_proto_metacrypt_v2_ca_proto_goTypes = nil
	file_proto_metacrypt_v2_ca_proto_depIdxs = nil
}
