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

package workload

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	structpb "google.golang.org/protobuf/types/known/structpb"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// The X509SVIDRequest message conveys parameters for requesting an X.509-SVID.
// There are currently no request parameters.
type X509SVIDRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*X509SVIDRequest) ProtoMessage() {}

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

// The X509SVIDResponse message carries X.509-SVIDs and related information,
// including a set of global CRLs and a list of bundles the workload may use
// for federating with foreign trust domains.
type X509SVIDResponse 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 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.
	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 *X509SVIDResponse) Reset() {
	*x = X509SVIDResponse{}
	mi := &file_workload_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*X509SVIDResponse) ProtoMessage() {}

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

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

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

func (x *X509SVIDResponse) 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 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 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 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 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_workload_proto_msgTypes[2]
	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_workload_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 X509SVID.ProtoReflect.Descriptor instead.
func (*X509SVID) Descriptor() ([]byte, []int) {
	return file_workload_proto_rawDescGZIP(), []int{2}
}

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 X509BundlesRequest message conveys parameters for requesting X.509
// bundles. There are currently no such parameters.
type X509BundlesRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*X509BundlesRequest) ProtoMessage() {}

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

// The X509BundlesResponse message carries a set of global CRLs and a map of
// trust bundles the workload should trust.
type X509BundlesResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Optional. ASN.1 DER encoded 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.
	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 *X509BundlesResponse) Reset() {
	*x = X509BundlesResponse{}
	mi := &file_workload_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*X509BundlesResponse) ProtoMessage() {}

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

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

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

type JWTSVIDRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The audience(s) the workload intends to authenticate against.
	Audience []string `protobuf:"bytes,1,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,2,opt,name=spiffe_id,json=spiffeId,proto3" json:"spiffe_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*JWTSVIDRequest) ProtoMessage() {}

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

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

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

// The JWTSVIDResponse message conveys JWT-SVIDs.
type JWTSVIDResponse 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 *JWTSVIDResponse) Reset() {
	*x = JWTSVIDResponse{}
	mi := &file_workload_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*JWTSVIDResponse) ProtoMessage() {}

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

func (x *JWTSVIDResponse) 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_workload_proto_msgTypes[7]
	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_workload_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 JWTSVID.ProtoReflect.Descriptor instead.
func (*JWTSVID) Descriptor() ([]byte, []int) {
	return file_workload_proto_rawDescGZIP(), []int{7}
}

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 JWTBundlesRequest message conveys parameters for requesting JWT bundles.
// There are currently no such parameters.
type JWTBundlesRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*JWTBundlesRequest) ProtoMessage() {}

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

// The JWTBundlesReponse conveys JWT bundles.
type JWTBundlesResponse 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 *JWTBundlesResponse) Reset() {
	*x = JWTBundlesResponse{}
	mi := &file_workload_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*JWTBundlesResponse) ProtoMessage() {}

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

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

// The ValidateJWTSVIDRequest message conveys request parameters for
// JWT-SVID validation.
type ValidateJWTSVIDRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The audience of the validating party. The JWT-SVID must
	// contain an audience claim which contains this value in order to
	// succesfully validate.
	Audience string `protobuf:"bytes,1,opt,name=audience,proto3" json:"audience,omitempty"`
	// Required. The JWT-SVID to validate, encoded using JWS Compact
	// Serialization.
	Svid          string `protobuf:"bytes,2,opt,name=svid,proto3" json:"svid,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ValidateJWTSVIDRequest) ProtoMessage() {}

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

func (x *ValidateJWTSVIDRequest) GetAudience() string {
	if x != nil {
		return x.Audience
	}
	return ""
}

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

// The ValidateJWTSVIDReponse message conveys the JWT-SVID validation results.
type ValidateJWTSVIDResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The SPIFFE ID of the validated JWT-SVID.
	SpiffeId string `protobuf:"bytes,1,opt,name=spiffe_id,json=spiffeId,proto3" json:"spiffe_id,omitempty"`
	// Optional. Arbitrary claims contained within the payload of the validated
	// JWT-SVID.
	Claims        *structpb.Struct `protobuf:"bytes,2,opt,name=claims,proto3" json:"claims,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ValidateJWTSVIDResponse) ProtoMessage() {}

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

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

func (x *ValidateJWTSVIDResponse) GetClaims() *structpb.Struct {
	if x != nil {
		return x.Claims
	}
	return nil
}

// WITSVIDRequest conveys parameters for requesting WIT-SVIDs.
type WITSVIDRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Optional. The requested SPIFFE ID for the WIT-SVID. If unset, all
	// WIT-SVIDs to which the workload is entitled are requested.
	SpiffeId      string `protobuf:"bytes,1,opt,name=spiffe_id,json=spiffeId,proto3" json:"spiffe_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*WITSVIDRequest) ProtoMessage() {}

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

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

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

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

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

func (*WITSVIDResponse) ProtoMessage() {}

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

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

// WITSVID carries a single WIT-SVID and associated metadata.
type WITSVID struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The SPIFFE ID of the WIT-SVID.
	SpiffeId string `protobuf:"bytes,1,opt,name=spiffe_id,json=spiffeId,proto3" json:"spiffe_id,omitempty"`
	// Required. Encoded WIT-SVID using JWS Compact Serialization.
	WitSvid string `protobuf:"bytes,2,opt,name=wit_svid,json=witSvid,proto3" json:"wit_svid,omitempty"`
	// Required. JWK-encoded private key bound to this WIT-SVID.
	WitSvidKey string `protobuf:"bytes,3,opt,name=wit_svid_key,json=witSvidKey,proto3" json:"wit_svid_key,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.
	Hint          string `protobuf:"bytes,4,opt,name=hint,proto3" json:"hint,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*WITSVID) ProtoMessage() {}

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

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

func (x *WITSVID) GetWitSvid() string {
	if x != nil {
		return x.WitSvid
	}
	return ""
}

func (x *WITSVID) GetWitSvidKey() string {
	if x != nil {
		return x.WitSvidKey
	}
	return ""
}

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

// WITBundlesRequest conveys parameters for requesting WIT bundles.
// There are currently no such parameters.
type WITBundlesRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*WITBundlesRequest) ProtoMessage() {}

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

// WITBundlesResponse conveys WIT bundles.
type WITBundlesResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. JWK encoded WIT bundles, keyed by the SPIFFE ID of the trust
	// domain.
	Bundles       map[string]string `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 *WITBundlesResponse) Reset() {
	*x = WITBundlesResponse{}
	mi := &file_workload_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*WITBundlesResponse) ProtoMessage() {}

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

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

var File_workload_proto protoreflect.FileDescriptor

const file_workload_proto_rawDesc = "" +
	"\n" +
	"\x0eworkload.proto\x1a\x1cgoogle/protobuf/struct.proto\"\x11\n" +
	"\x0fX509SVIDRequest\"\xe0\x01\n" +
	"\x10X509SVIDResponse\x12\x1f\n" +
	"\x05svids\x18\x01 \x03(\v2\t.X509SVIDR\x05svids\x12\x10\n" +
	"\x03crl\x18\x02 \x03(\fR\x03crl\x12T\n" +
	"\x11federated_bundles\x18\x03 \x03(\v2'.X509SVIDResponse.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\"\x14\n" +
	"\x12X509BundlesRequest\"\xa0\x01\n" +
	"\x13X509BundlesResponse\x12\x10\n" +
	"\x03crl\x18\x01 \x03(\fR\x03crl\x12;\n" +
	"\abundles\x18\x02 \x03(\v2!.X509BundlesResponse.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\"I\n" +
	"\x0eJWTSVIDRequest\x12\x1a\n" +
	"\baudience\x18\x01 \x03(\tR\baudience\x12\x1b\n" +
	"\tspiffe_id\x18\x02 \x01(\tR\bspiffeId\"1\n" +
	"\x0fJWTSVIDResponse\x12\x1e\n" +
	"\x05svids\x18\x01 \x03(\v2\b.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\"\x13\n" +
	"\x11JWTBundlesRequest\"\x8c\x01\n" +
	"\x12JWTBundlesResponse\x12:\n" +
	"\abundles\x18\x01 \x03(\v2 .JWTBundlesResponse.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\"H\n" +
	"\x16ValidateJWTSVIDRequest\x12\x1a\n" +
	"\baudience\x18\x01 \x01(\tR\baudience\x12\x12\n" +
	"\x04svid\x18\x02 \x01(\tR\x04svid\"g\n" +
	"\x17ValidateJWTSVIDResponse\x12\x1b\n" +
	"\tspiffe_id\x18\x01 \x01(\tR\bspiffeId\x12/\n" +
	"\x06claims\x18\x02 \x01(\v2\x17.google.protobuf.StructR\x06claims\"-\n" +
	"\x0eWITSVIDRequest\x12\x1b\n" +
	"\tspiffe_id\x18\x01 \x01(\tR\bspiffeId\"1\n" +
	"\x0fWITSVIDResponse\x12\x1e\n" +
	"\x05svids\x18\x01 \x03(\v2\b.WITSVIDR\x05svids\"w\n" +
	"\aWITSVID\x12\x1b\n" +
	"\tspiffe_id\x18\x01 \x01(\tR\bspiffeId\x12\x19\n" +
	"\bwit_svid\x18\x02 \x01(\tR\awitSvid\x12 \n" +
	"\fwit_svid_key\x18\x03 \x01(\tR\n" +
	"witSvidKey\x12\x12\n" +
	"\x04hint\x18\x04 \x01(\tR\x04hint\"\x13\n" +
	"\x11WITBundlesRequest\"\x8c\x01\n" +
	"\x12WITBundlesResponse\x12:\n" +
	"\abundles\x18\x01 \x03(\v2 .WITBundlesResponse.BundlesEntryR\abundles\x1a:\n" +
	"\fBundlesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x012\xb6\x03\n" +
	"\x11SpiffeWorkloadAPI\x126\n" +
	"\rFetchX509SVID\x12\x10.X509SVIDRequest\x1a\x11.X509SVIDResponse0\x01\x12?\n" +
	"\x10FetchX509Bundles\x12\x13.X509BundlesRequest\x1a\x14.X509BundlesResponse0\x01\x121\n" +
	"\fFetchJWTSVID\x12\x0f.JWTSVIDRequest\x1a\x10.JWTSVIDResponse\x12<\n" +
	"\x0fFetchJWTBundles\x12\x12.JWTBundlesRequest\x1a\x13.JWTBundlesResponse0\x01\x12D\n" +
	"\x0fValidateJWTSVID\x12\x17.ValidateJWTSVIDRequest\x1a\x18.ValidateJWTSVIDResponse\x123\n" +
	"\fFetchWITSVID\x12\x0f.WITSVIDRequest\x1a\x10.WITSVIDResponse0\x01\x12<\n" +
	"\x0fFetchWITBundles\x12\x12.WITBundlesRequest\x1a\x13.WITBundlesResponse0\x01B?Z=github.com/spiffe/go-spiffe/v2/proto/spiffe/workload;workloadb\x06proto3"

var (
	file_workload_proto_rawDescOnce sync.Once
	file_workload_proto_rawDescData []byte
)

func file_workload_proto_rawDescGZIP() []byte {
	file_workload_proto_rawDescOnce.Do(func() {
		file_workload_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_workload_proto_rawDesc), len(file_workload_proto_rawDesc)))
	})
	return file_workload_proto_rawDescData
}

var file_workload_proto_msgTypes = make([]protoimpl.MessageInfo, 21)
var file_workload_proto_goTypes = []any{
	(*X509SVIDRequest)(nil),         // 0: X509SVIDRequest
	(*X509SVIDResponse)(nil),        // 1: X509SVIDResponse
	(*X509SVID)(nil),                // 2: X509SVID
	(*X509BundlesRequest)(nil),      // 3: X509BundlesRequest
	(*X509BundlesResponse)(nil),     // 4: X509BundlesResponse
	(*JWTSVIDRequest)(nil),          // 5: JWTSVIDRequest
	(*JWTSVIDResponse)(nil),         // 6: JWTSVIDResponse
	(*JWTSVID)(nil),                 // 7: JWTSVID
	(*JWTBundlesRequest)(nil),       // 8: JWTBundlesRequest
	(*JWTBundlesResponse)(nil),      // 9: JWTBundlesResponse
	(*ValidateJWTSVIDRequest)(nil),  // 10: ValidateJWTSVIDRequest
	(*ValidateJWTSVIDResponse)(nil), // 11: ValidateJWTSVIDResponse
	(*WITSVIDRequest)(nil),          // 12: WITSVIDRequest
	(*WITSVIDResponse)(nil),         // 13: WITSVIDResponse
	(*WITSVID)(nil),                 // 14: WITSVID
	(*WITBundlesRequest)(nil),       // 15: WITBundlesRequest
	(*WITBundlesResponse)(nil),      // 16: WITBundlesResponse
	nil,                             // 17: X509SVIDResponse.FederatedBundlesEntry
	nil,                             // 18: X509BundlesResponse.BundlesEntry
	nil,                             // 19: JWTBundlesResponse.BundlesEntry
	nil,                             // 20: WITBundlesResponse.BundlesEntry
	(*structpb.Struct)(nil),         // 21: google.protobuf.Struct
}
var file_workload_proto_depIdxs = []int32{
	2,  // 0: X509SVIDResponse.svids:type_name -> X509SVID
	17, // 1: X509SVIDResponse.federated_bundles:type_name -> X509SVIDResponse.FederatedBundlesEntry
	18, // 2: X509BundlesResponse.bundles:type_name -> X509BundlesResponse.BundlesEntry
	7,  // 3: JWTSVIDResponse.svids:type_name -> JWTSVID
	19, // 4: JWTBundlesResponse.bundles:type_name -> JWTBundlesResponse.BundlesEntry
	21, // 5: ValidateJWTSVIDResponse.claims:type_name -> google.protobuf.Struct
	14, // 6: WITSVIDResponse.svids:type_name -> WITSVID
	20, // 7: WITBundlesResponse.bundles:type_name -> WITBundlesResponse.BundlesEntry
	0,  // 8: SpiffeWorkloadAPI.FetchX509SVID:input_type -> X509SVIDRequest
	3,  // 9: SpiffeWorkloadAPI.FetchX509Bundles:input_type -> X509BundlesRequest
	5,  // 10: SpiffeWorkloadAPI.FetchJWTSVID:input_type -> JWTSVIDRequest
	8,  // 11: SpiffeWorkloadAPI.FetchJWTBundles:input_type -> JWTBundlesRequest
	10, // 12: SpiffeWorkloadAPI.ValidateJWTSVID:input_type -> ValidateJWTSVIDRequest
	12, // 13: SpiffeWorkloadAPI.FetchWITSVID:input_type -> WITSVIDRequest
	15, // 14: SpiffeWorkloadAPI.FetchWITBundles:input_type -> WITBundlesRequest
	1,  // 15: SpiffeWorkloadAPI.FetchX509SVID:output_type -> X509SVIDResponse
	4,  // 16: SpiffeWorkloadAPI.FetchX509Bundles:output_type -> X509BundlesResponse
	6,  // 17: SpiffeWorkloadAPI.FetchJWTSVID:output_type -> JWTSVIDResponse
	9,  // 18: SpiffeWorkloadAPI.FetchJWTBundles:output_type -> JWTBundlesResponse
	11, // 19: SpiffeWorkloadAPI.ValidateJWTSVID:output_type -> ValidateJWTSVIDResponse
	13, // 20: SpiffeWorkloadAPI.FetchWITSVID:output_type -> WITSVIDResponse
	16, // 21: SpiffeWorkloadAPI.FetchWITBundles:output_type -> WITBundlesResponse
	15, // [15:22] is the sub-list for method output_type
	8,  // [8:15] is the sub-list for method input_type
	8,  // [8:8] is the sub-list for extension type_name
	8,  // [8:8] is the sub-list for extension extendee
	0,  // [0:8] is the sub-list for field type_name
}

func init() { file_workload_proto_init() }
func file_workload_proto_init() {
	if File_workload_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_workload_proto_rawDesc), len(file_workload_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   21,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_workload_proto_goTypes,
		DependencyIndexes: file_workload_proto_depIdxs,
		MessageInfos:      file_workload_proto_msgTypes,
	}.Build()
	File_workload_proto = out.File
	file_workload_proto_goTypes = nil
	file_workload_proto_depIdxs = nil
}
