// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v6.30.2
// source: api.proto

package broker

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

// The WorkloadReference message represents a single reference to a workload.
// The reference field contains one of the standard reference types or
// a vendor-specific extension type.
type WorkloadReference struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The reference to the workload.
	Reference     *anypb.Any `protobuf:"bytes,1,opt,name=reference,proto3" json:"reference,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*WorkloadReference) ProtoMessage() {}

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

func (x *WorkloadReference) GetReference() *anypb.Any {
	if x != nil {
		return x.Reference
	}
	return nil
}

// The WorkloadPIDReference message conveys a process id reference of a workload
// running in the same environment.
type WorkloadPIDReference struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The process id of the workload. MUST be a positive integer.
	// For workloads running inside container runtimes that maintain a separate
	// sandbox (e.g. the `pause` container in containerd or CRI-O), this MUST
	// be the PID of the workload's own process, not the sandbox PID.
	Pid           int32 `protobuf:"varint,1,opt,name=pid,proto3" json:"pid,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*WorkloadPIDReference) ProtoMessage() {}

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

func (x *WorkloadPIDReference) GetPid() int32 {
	if x != nil {
		return x.Pid
	}
	return 0
}

// The KubernetesObjectType message identifies the type of a Kubernetes object
// by its plural name and API group. This avoids ambiguity between plurals that
// happen to contain dots (e.g., the plural `myresource.example` in the `com`
// group vs. `myresource` in the `example.com` group) that arises when the
// `<plural>.<group>` shorthand is parsed as a single string.
type KubernetesObjectType struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The plural name of the Kubernetes resource, as registered with
	// the Kubernetes API server. For example, `pods`, `deployments`, or the
	// plural form declared by a `CustomResourceDefinition`.
	Plural string `protobuf:"bytes,1,opt,name=plural,proto3" json:"plural,omitempty"`
	// Required. The API group of the Kubernetes resource. For non-core
	// resources this is the API group name (e.g., `apps`, `example.com`).
	// For core resources this field MUST be set to the literal string `core`.
	Group         string `protobuf:"bytes,2,opt,name=group,proto3" json:"group,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*KubernetesObjectType) ProtoMessage() {}

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

func (x *KubernetesObjectType) GetPlural() string {
	if x != nil {
		return x.Plural
	}
	return ""
}

func (x *KubernetesObjectType) GetGroup() string {
	if x != nil {
		return x.Group
	}
	return ""
}

// The KubernetesObjectKey message identifies a specific Kubernetes object
// within its type by `namespace` and `name`.
type KubernetesObjectKey struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Optional. The namespace of the referenced Kubernetes object. MUST be set
	// for namespaced resources. MUST be empty when the resource is
	// cluster-scoped.
	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// Required. The name of the referenced Kubernetes object.
	Name          string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*KubernetesObjectKey) ProtoMessage() {}

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

func (x *KubernetesObjectKey) GetNamespace() string {
	if x != nil {
		return x.Namespace
	}
	return ""
}

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

// The KubernetesObjectReference message conveys a reference to an arbitrary
// Kubernetes object (built-in or custom) by which a workload is identified for
// the purpose of SVID issuance. The referenced object MUST exist and be accessible
// at the time of the request.
//
// The mapping from a Kubernetes object to a SPIFFE ID is implementation-defined;
// this specification does not mandate a particular SPIFFE ID format.
type KubernetesObjectReference struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The type of the referenced Kubernetes object.
	Type *KubernetesObjectType `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	// Optional. The namespaced name of the referenced Kubernetes object.
	// At least one of `key` or `uid` MUST be specified.
	Key *KubernetesObjectKey `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	// Optional. The UID of the referenced Kubernetes object. MUST be a valid
	// UUID string as assigned by Kubernetes. At least one of `key` or `uid`
	// MUST be specified. When both `key` and `uid` are specified, the server
	// MUST verify that the object resolved by `key` has the specified UID at
	// the time of issuing the SVIDs and MUST return an error otherwise.
	Uid           string `protobuf:"bytes,3,opt,name=uid,proto3" json:"uid,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*KubernetesObjectReference) ProtoMessage() {}

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

func (x *KubernetesObjectReference) GetType() *KubernetesObjectType {
	if x != nil {
		return x.Type
	}
	return nil
}

func (x *KubernetesObjectReference) GetKey() *KubernetesObjectKey {
	if x != nil {
		return x.Key
	}
	return nil
}

func (x *KubernetesObjectReference) GetUid() string {
	if x != nil {
		return x.Uid
	}
	return ""
}

// The SubscribeToX509SVIDRequest message conveys parameters for requesting an X.509-SVID.
type SubscribeToX509SVIDRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The reference identifying the workload.
	Reference     *WorkloadReference `protobuf:"bytes,1,opt,name=reference,proto3" json:"reference,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SubscribeToX509SVIDRequest) ProtoMessage() {}

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

func (x *SubscribeToX509SVIDRequest) GetReference() *WorkloadReference {
	if x != nil {
		return x.Reference
	}
	return nil
}

// The SubscribeToX509SVIDResponse message carries X.509-SVIDs and related information,
// including a list of bundles the workload may use for federating with foreign
// trust domains.
type SubscribeToX509SVIDResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. A list of X509SVID messages, each of which includes a single
	// X.509-SVID, its private key, and the bundle for the trust domain.
	Svids []*X509SVID `protobuf:"bytes,1,rep,name=svids,proto3" json:"svids,omitempty"`
	// Optional. ASN.1 DER encoded (not PEM) certificate revocation lists.
	Crl [][]byte `protobuf:"bytes,2,rep,name=crl,proto3" json:"crl,omitempty"`
	// Optional. CA certificate bundles belonging to foreign trust domains that
	// the workload should trust, keyed by the SPIFFE ID of the foreign trust
	// domain. Bundles are ASN.1 DER encoded (not PEM).
	FederatedBundles map[string][]byte `protobuf:"bytes,3,rep,name=federated_bundles,json=federatedBundles,proto3" json:"federated_bundles,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*SubscribeToX509SVIDResponse) ProtoMessage() {}

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

func (x *SubscribeToX509SVIDResponse) GetSvids() []*X509SVID {
	if x != nil {
		return x.Svids
	}
	return nil
}

func (x *SubscribeToX509SVIDResponse) GetCrl() [][]byte {
	if x != nil {
		return x.Crl
	}
	return nil
}

func (x *SubscribeToX509SVIDResponse) GetFederatedBundles() map[string][]byte {
	if x != nil {
		return x.FederatedBundles
	}
	return nil
}

// The X509SVID message carries a single SVID and all associated information,
// including the X.509 bundle for the trust domain.
type X509SVID struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The SPIFFE ID of the SVID in this entry
	SpiffeId string `protobuf:"bytes,1,opt,name=spiffe_id,json=spiffeId,proto3" json:"spiffe_id,omitempty"`
	// Required. ASN.1 DER encoded (not PEM) certificate chain. MAY include
	// intermediates, the leaf certificate (or SVID itself) MUST come first.
	X509Svid []byte `protobuf:"bytes,2,opt,name=x509_svid,json=x509Svid,proto3" json:"x509_svid,omitempty"`
	// Required. ASN.1 DER encoded (not PEM) PKCS#8 private key. MUST be unencrypted.
	X509SvidKey []byte `protobuf:"bytes,3,opt,name=x509_svid_key,json=x509SvidKey,proto3" json:"x509_svid_key,omitempty"`
	// Required. ASN.1 DER encoded (not PEM) X.509 bundle for the trust domain.
	Bundle []byte `protobuf:"bytes,4,opt,name=bundle,proto3" json:"bundle,omitempty"`
	// Optional. An operator-specified string used to provide guidance on how this
	// identity should be used by a broker or workload when more than one SVID is
	// returned. For example, `internal` and `external` to indicate an SVID for
	// internal or external use, respectively.
	Hint          string `protobuf:"bytes,5,opt,name=hint,proto3" json:"hint,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*X509SVID) ProtoMessage() {}

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

func (x *X509SVID) GetSpiffeId() string {
	if x != nil {
		return x.SpiffeId
	}
	return ""
}

func (x *X509SVID) GetX509Svid() []byte {
	if x != nil {
		return x.X509Svid
	}
	return nil
}

func (x *X509SVID) GetX509SvidKey() []byte {
	if x != nil {
		return x.X509SvidKey
	}
	return nil
}

func (x *X509SVID) GetBundle() []byte {
	if x != nil {
		return x.Bundle
	}
	return nil
}

func (x *X509SVID) GetHint() string {
	if x != nil {
		return x.Hint
	}
	return ""
}

// The SubscribeToX509BundlesRequest message conveys parameters for requesting X.509
// bundles.
type SubscribeToX509BundlesRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The reference identifying the workload.
	Reference     *WorkloadReference `protobuf:"bytes,1,opt,name=reference,proto3" json:"reference,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SubscribeToX509BundlesRequest) ProtoMessage() {}

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

func (x *SubscribeToX509BundlesRequest) GetReference() *WorkloadReference {
	if x != nil {
		return x.Reference
	}
	return nil
}

// The SubscribeToX509BundlesResponse message carries a map of trust bundles the workload
// should trust.
type SubscribeToX509BundlesResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Optional. ASN.1 DER encoded (not PEM) certificate revocation lists.
	Crl [][]byte `protobuf:"bytes,1,rep,name=crl,proto3" json:"crl,omitempty"`
	// Required. CA certificate bundles belonging to trust domains that the
	// workload should trust, keyed by the SPIFFE ID of the trust domain.
	// Bundles are ASN.1 DER encoded (not PEM).
	Bundles       map[string][]byte `protobuf:"bytes,2,rep,name=bundles,proto3" json:"bundles,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SubscribeToX509BundlesResponse) ProtoMessage() {}

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

func (x *SubscribeToX509BundlesResponse) GetCrl() [][]byte {
	if x != nil {
		return x.Crl
	}
	return nil
}

func (x *SubscribeToX509BundlesResponse) GetBundles() map[string][]byte {
	if x != nil {
		return x.Bundles
	}
	return nil
}

// The FetchJWTSVIDRequest message conveys parameters for requesting JWT-SVIDs.
type FetchJWTSVIDRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The reference identifying the workload.
	Reference *WorkloadReference `protobuf:"bytes,1,opt,name=reference,proto3" json:"reference,omitempty"`
	// Required. The audience(s) the workload intends to authenticate against.
	Audience []string `protobuf:"bytes,2,rep,name=audience,proto3" json:"audience,omitempty"`
	// Optional. The requested SPIFFE ID for the JWT-SVID. If unset, all
	// JWT-SVIDs to which the workload is entitled are requested.
	SpiffeId      string `protobuf:"bytes,3,opt,name=spiffe_id,json=spiffeId,proto3" json:"spiffe_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*FetchJWTSVIDRequest) ProtoMessage() {}

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

func (x *FetchJWTSVIDRequest) GetReference() *WorkloadReference {
	if x != nil {
		return x.Reference
	}
	return nil
}

func (x *FetchJWTSVIDRequest) GetAudience() []string {
	if x != nil {
		return x.Audience
	}
	return nil
}

func (x *FetchJWTSVIDRequest) GetSpiffeId() string {
	if x != nil {
		return x.SpiffeId
	}
	return ""
}

// The FetchJWTSVIDResponse message conveys JWT-SVIDs.
type FetchJWTSVIDResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The list of returned JWT-SVIDs.
	Svids         []*JWTSVID `protobuf:"bytes,1,rep,name=svids,proto3" json:"svids,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*FetchJWTSVIDResponse) ProtoMessage() {}

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

func (x *FetchJWTSVIDResponse) GetSvids() []*JWTSVID {
	if x != nil {
		return x.Svids
	}
	return nil
}

// The JWTSVID message carries the JWT-SVID token and associated metadata.
type JWTSVID struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The SPIFFE ID of the JWT-SVID.
	SpiffeId string `protobuf:"bytes,1,opt,name=spiffe_id,json=spiffeId,proto3" json:"spiffe_id,omitempty"`
	// Required. Encoded JWT using JWS Compact Serialization.
	Svid string `protobuf:"bytes,2,opt,name=svid,proto3" json:"svid,omitempty"`
	// Optional. An operator-specified string used to provide guidance on how this
	// identity should be used by a workload when more than one SVID is returned.
	// For example, `internal` and `external` to indicate an SVID for internal or
	// external use, respectively.
	Hint          string `protobuf:"bytes,3,opt,name=hint,proto3" json:"hint,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*JWTSVID) ProtoMessage() {}

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

func (x *JWTSVID) GetSpiffeId() string {
	if x != nil {
		return x.SpiffeId
	}
	return ""
}

func (x *JWTSVID) GetSvid() string {
	if x != nil {
		return x.Svid
	}
	return ""
}

func (x *JWTSVID) GetHint() string {
	if x != nil {
		return x.Hint
	}
	return ""
}

// The SubscribeToJWTBundlesRequest message conveys parameters for requesting JWT bundles.
type SubscribeToJWTBundlesRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The reference identifying the workload.
	Reference     *WorkloadReference `protobuf:"bytes,1,opt,name=reference,proto3" json:"reference,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SubscribeToJWTBundlesRequest) ProtoMessage() {}

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

func (x *SubscribeToJWTBundlesRequest) GetReference() *WorkloadReference {
	if x != nil {
		return x.Reference
	}
	return nil
}

// The SubscribeToJWTBundlesResponse message conveys JWT bundles.
type SubscribeToJWTBundlesResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. JWK encoded JWT bundles, keyed by the SPIFFE ID of the trust
	// domain.
	Bundles       map[string][]byte `protobuf:"bytes,1,rep,name=bundles,proto3" json:"bundles,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SubscribeToJWTBundlesResponse) ProtoMessage() {}

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

func (x *SubscribeToJWTBundlesResponse) GetBundles() map[string][]byte {
	if x != nil {
		return x.Bundles
	}
	return nil
}

var File_api_proto protoreflect.FileDescriptor

const file_api_proto_rawDesc = "" +
	"\n" +
	"\tapi.proto\x12\rspiffe.broker\x1a\x19google/protobuf/any.proto\"G\n" +
	"\x11WorkloadReference\x122\n" +
	"\treference\x18\x01 \x01(\v2\x14.google.protobuf.AnyR\treference\"(\n" +
	"\x14WorkloadPIDReference\x12\x10\n" +
	"\x03pid\x18\x01 \x01(\x05R\x03pid\"D\n" +
	"\x14KubernetesObjectType\x12\x16\n" +
	"\x06plural\x18\x01 \x01(\tR\x06plural\x12\x14\n" +
	"\x05group\x18\x02 \x01(\tR\x05group\"G\n" +
	"\x13KubernetesObjectKey\x12\x1c\n" +
	"\tnamespace\x18\x01 \x01(\tR\tnamespace\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\"\x9c\x01\n" +
	"\x19KubernetesObjectReference\x127\n" +
	"\x04type\x18\x01 \x01(\v2#.spiffe.broker.KubernetesObjectTypeR\x04type\x124\n" +
	"\x03key\x18\x02 \x01(\v2\".spiffe.broker.KubernetesObjectKeyR\x03key\x12\x10\n" +
	"\x03uid\x18\x03 \x01(\tR\x03uid\"\\\n" +
	"\x1aSubscribeToX509SVIDRequest\x12>\n" +
	"\treference\x18\x01 \x01(\v2 .spiffe.broker.WorkloadReferenceR\treference\"\x92\x02\n" +
	"\x1bSubscribeToX509SVIDResponse\x12-\n" +
	"\x05svids\x18\x01 \x03(\v2\x17.spiffe.broker.X509SVIDR\x05svids\x12\x10\n" +
	"\x03crl\x18\x02 \x03(\fR\x03crl\x12m\n" +
	"\x11federated_bundles\x18\x03 \x03(\v2@.spiffe.broker.SubscribeToX509SVIDResponse.FederatedBundlesEntryR\x10federatedBundles\x1aC\n" +
	"\x15FederatedBundlesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\"\x94\x01\n" +
	"\bX509SVID\x12\x1b\n" +
	"\tspiffe_id\x18\x01 \x01(\tR\bspiffeId\x12\x1b\n" +
	"\tx509_svid\x18\x02 \x01(\fR\bx509Svid\x12\"\n" +
	"\rx509_svid_key\x18\x03 \x01(\fR\vx509SvidKey\x12\x16\n" +
	"\x06bundle\x18\x04 \x01(\fR\x06bundle\x12\x12\n" +
	"\x04hint\x18\x05 \x01(\tR\x04hint\"_\n" +
	"\x1dSubscribeToX509BundlesRequest\x12>\n" +
	"\treference\x18\x01 \x01(\v2 .spiffe.broker.WorkloadReferenceR\treference\"\xc4\x01\n" +
	"\x1eSubscribeToX509BundlesResponse\x12\x10\n" +
	"\x03crl\x18\x01 \x03(\fR\x03crl\x12T\n" +
	"\abundles\x18\x02 \x03(\v2:.spiffe.broker.SubscribeToX509BundlesResponse.BundlesEntryR\abundles\x1a:\n" +
	"\fBundlesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\"\x8e\x01\n" +
	"\x13FetchJWTSVIDRequest\x12>\n" +
	"\treference\x18\x01 \x01(\v2 .spiffe.broker.WorkloadReferenceR\treference\x12\x1a\n" +
	"\baudience\x18\x02 \x03(\tR\baudience\x12\x1b\n" +
	"\tspiffe_id\x18\x03 \x01(\tR\bspiffeId\"D\n" +
	"\x14FetchJWTSVIDResponse\x12,\n" +
	"\x05svids\x18\x01 \x03(\v2\x16.spiffe.broker.JWTSVIDR\x05svids\"N\n" +
	"\aJWTSVID\x12\x1b\n" +
	"\tspiffe_id\x18\x01 \x01(\tR\bspiffeId\x12\x12\n" +
	"\x04svid\x18\x02 \x01(\tR\x04svid\x12\x12\n" +
	"\x04hint\x18\x03 \x01(\tR\x04hint\"^\n" +
	"\x1cSubscribeToJWTBundlesRequest\x12>\n" +
	"\treference\x18\x01 \x01(\v2 .spiffe.broker.WorkloadReferenceR\treference\"\xb0\x01\n" +
	"\x1dSubscribeToJWTBundlesResponse\x12S\n" +
	"\abundles\x18\x01 \x03(\v29.spiffe.broker.SubscribeToJWTBundlesResponse.BundlesEntryR\abundles\x1a:\n" +
	"\fBundlesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\fR\x05value:\x028\x012\xbd\x03\n" +
	"\x03API\x12n\n" +
	"\x13SubscribeToX509SVID\x12).spiffe.broker.SubscribeToX509SVIDRequest\x1a*.spiffe.broker.SubscribeToX509SVIDResponse0\x01\x12w\n" +
	"\x16SubscribeToX509Bundles\x12,.spiffe.broker.SubscribeToX509BundlesRequest\x1a-.spiffe.broker.SubscribeToX509BundlesResponse0\x01\x12W\n" +
	"\fFetchJWTSVID\x12\".spiffe.broker.FetchJWTSVIDRequest\x1a#.spiffe.broker.FetchJWTSVIDResponse\x12t\n" +
	"\x15SubscribeToJWTBundles\x12+.spiffe.broker.SubscribeToJWTBundlesRequest\x1a,.spiffe.broker.SubscribeToJWTBundlesResponse0\x01B?Z=github.com/spiffe/go-spiffe/v2/exp/proto/spiffe/broker;brokerb\x06proto3"

var (
	file_api_proto_rawDescOnce sync.Once
	file_api_proto_rawDescData []byte
)

func file_api_proto_rawDescGZIP() []byte {
	file_api_proto_rawDescOnce.Do(func() {
		file_api_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_api_proto_rawDesc), len(file_api_proto_rawDesc)))
	})
	return file_api_proto_rawDescData
}

var file_api_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
var file_api_proto_goTypes = []any{
	(*WorkloadReference)(nil),              // 0: spiffe.broker.WorkloadReference
	(*WorkloadPIDReference)(nil),           // 1: spiffe.broker.WorkloadPIDReference
	(*KubernetesObjectType)(nil),           // 2: spiffe.broker.KubernetesObjectType
	(*KubernetesObjectKey)(nil),            // 3: spiffe.broker.KubernetesObjectKey
	(*KubernetesObjectReference)(nil),      // 4: spiffe.broker.KubernetesObjectReference
	(*SubscribeToX509SVIDRequest)(nil),     // 5: spiffe.broker.SubscribeToX509SVIDRequest
	(*SubscribeToX509SVIDResponse)(nil),    // 6: spiffe.broker.SubscribeToX509SVIDResponse
	(*X509SVID)(nil),                       // 7: spiffe.broker.X509SVID
	(*SubscribeToX509BundlesRequest)(nil),  // 8: spiffe.broker.SubscribeToX509BundlesRequest
	(*SubscribeToX509BundlesResponse)(nil), // 9: spiffe.broker.SubscribeToX509BundlesResponse
	(*FetchJWTSVIDRequest)(nil),            // 10: spiffe.broker.FetchJWTSVIDRequest
	(*FetchJWTSVIDResponse)(nil),           // 11: spiffe.broker.FetchJWTSVIDResponse
	(*JWTSVID)(nil),                        // 12: spiffe.broker.JWTSVID
	(*SubscribeToJWTBundlesRequest)(nil),   // 13: spiffe.broker.SubscribeToJWTBundlesRequest
	(*SubscribeToJWTBundlesResponse)(nil),  // 14: spiffe.broker.SubscribeToJWTBundlesResponse
	nil,                                    // 15: spiffe.broker.SubscribeToX509SVIDResponse.FederatedBundlesEntry
	nil,                                    // 16: spiffe.broker.SubscribeToX509BundlesResponse.BundlesEntry
	nil,                                    // 17: spiffe.broker.SubscribeToJWTBundlesResponse.BundlesEntry
	(*anypb.Any)(nil),                      // 18: google.protobuf.Any
}
var file_api_proto_depIdxs = []int32{
	18, // 0: spiffe.broker.WorkloadReference.reference:type_name -> google.protobuf.Any
	2,  // 1: spiffe.broker.KubernetesObjectReference.type:type_name -> spiffe.broker.KubernetesObjectType
	3,  // 2: spiffe.broker.KubernetesObjectReference.key:type_name -> spiffe.broker.KubernetesObjectKey
	0,  // 3: spiffe.broker.SubscribeToX509SVIDRequest.reference:type_name -> spiffe.broker.WorkloadReference
	7,  // 4: spiffe.broker.SubscribeToX509SVIDResponse.svids:type_name -> spiffe.broker.X509SVID
	15, // 5: spiffe.broker.SubscribeToX509SVIDResponse.federated_bundles:type_name -> spiffe.broker.SubscribeToX509SVIDResponse.FederatedBundlesEntry
	0,  // 6: spiffe.broker.SubscribeToX509BundlesRequest.reference:type_name -> spiffe.broker.WorkloadReference
	16, // 7: spiffe.broker.SubscribeToX509BundlesResponse.bundles:type_name -> spiffe.broker.SubscribeToX509BundlesResponse.BundlesEntry
	0,  // 8: spiffe.broker.FetchJWTSVIDRequest.reference:type_name -> spiffe.broker.WorkloadReference
	12, // 9: spiffe.broker.FetchJWTSVIDResponse.svids:type_name -> spiffe.broker.JWTSVID
	0,  // 10: spiffe.broker.SubscribeToJWTBundlesRequest.reference:type_name -> spiffe.broker.WorkloadReference
	17, // 11: spiffe.broker.SubscribeToJWTBundlesResponse.bundles:type_name -> spiffe.broker.SubscribeToJWTBundlesResponse.BundlesEntry
	5,  // 12: spiffe.broker.API.SubscribeToX509SVID:input_type -> spiffe.broker.SubscribeToX509SVIDRequest
	8,  // 13: spiffe.broker.API.SubscribeToX509Bundles:input_type -> spiffe.broker.SubscribeToX509BundlesRequest
	10, // 14: spiffe.broker.API.FetchJWTSVID:input_type -> spiffe.broker.FetchJWTSVIDRequest
	13, // 15: spiffe.broker.API.SubscribeToJWTBundles:input_type -> spiffe.broker.SubscribeToJWTBundlesRequest
	6,  // 16: spiffe.broker.API.SubscribeToX509SVID:output_type -> spiffe.broker.SubscribeToX509SVIDResponse
	9,  // 17: spiffe.broker.API.SubscribeToX509Bundles:output_type -> spiffe.broker.SubscribeToX509BundlesResponse
	11, // 18: spiffe.broker.API.FetchJWTSVID:output_type -> spiffe.broker.FetchJWTSVIDResponse
	14, // 19: spiffe.broker.API.SubscribeToJWTBundles:output_type -> spiffe.broker.SubscribeToJWTBundlesResponse
	16, // [16:20] is the sub-list for method output_type
	12, // [12:16] 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_api_proto_init() }
func file_api_proto_init() {
	if File_api_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_api_proto_rawDesc), len(file_api_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   18,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_api_proto_goTypes,
		DependencyIndexes: file_api_proto_depIdxs,
		MessageInfos:      file_api_proto_msgTypes,
	}.Build()
	File_api_proto = out.File
	file_api_proto_goTypes = nil
	file_api_proto_depIdxs = nil
}
