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

package types

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

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

type Entry struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Globally unique ID for the entry.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// The SPIFFE ID of the identity described by this entry.
	SpiffeId *SPIFFEID `protobuf:"bytes,2,opt,name=spiffe_id,json=spiffeId,proto3" json:"spiffe_id,omitempty"`
	// Who the entry is delegated to. If the entry describes a node, this is
	// set to the SPIFFE ID of the SPIRE server of the trust domain (e.g.
	// spiffe://example.org/spire/server). Otherwise, it will be set to a node
	// SPIFFE ID.
	ParentId *SPIFFEID `protobuf:"bytes,3,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"`
	// The selectors which identify which entities match this entry. If this is
	// an entry for a node, these selectors represent selectors produced by
	// node attestation. Otherwise, these selectors represent those produced by
	// workload attestation.
	Selectors []*Selector `protobuf:"bytes,4,rep,name=selectors,proto3" json:"selectors,omitempty"`
	// The time to live for X509-SVID identities issued for this entry (in seconds).
	// Previously called ttl
	X509SvidTtl int32 `protobuf:"varint,5,opt,name=x509_svid_ttl,json=x509SvidTtl,proto3" json:"x509_svid_ttl,omitempty"`
	// The names of trust domains the identity described by this entry
	// federates with.
	FederatesWith []string `protobuf:"bytes,6,rep,name=federates_with,json=federatesWith,proto3" json:"federates_with,omitempty"`
	// Whether or not the identity described by this entry is an administrative
	// workload. Administrative workloads are granted additional access to
	// various managerial server APIs, such as entry registration.
	Admin bool `protobuf:"varint,7,opt,name=admin,proto3" json:"admin,omitempty"`
	// Whether or not the identity described by this entry represents a
	// downstream SPIRE server. Downstream SPIRE servers have additional access
	// to various signing APIs, such as those used to sign X.509 CA
	// certificates and publish JWT signing keys.
	Downstream bool `protobuf:"varint,8,opt,name=downstream,proto3" json:"downstream,omitempty"`
	// When the entry expires (seconds since Unix epoch).
	ExpiresAt int64 `protobuf:"varint,9,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
	// A list of DNS names associated with the identity described by this entry.
	DnsNames []string `protobuf:"bytes,10,rep,name=dns_names,json=dnsNames,proto3" json:"dns_names,omitempty"`
	// Revision number is bumped every time the entry is updated
	RevisionNumber int64 `protobuf:"varint,11,opt,name=revision_number,json=revisionNumber,proto3" json:"revision_number,omitempty"`
	// Determines if the issued identity is exportable to a store
	StoreSvid bool `protobuf:"varint,12,opt,name=store_svid,json=storeSvid,proto3" json:"store_svid,omitempty"`
	// The time to live for JWT-SVID identities issued for this entry (in seconds), overrides ttl if set.
	JwtSvidTtl int32 `protobuf:"varint,13,opt,name=jwt_svid_ttl,json=jwtSvidTtl,proto3" json:"jwt_svid_ttl,omitempty"`
	// 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,14,opt,name=hint,proto3" json:"hint,omitempty"`
	// When the entry was created (seconds since Unix epoch).
	CreatedAt            int64                       `protobuf:"varint,15,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	AdditionalAttributes *Entry_AdditionalAttributes `protobuf:"bytes,16,opt,name=additional_attributes,json=additionalAttributes,proto3,oneof" json:"additional_attributes,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

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

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

func (*Entry) ProtoMessage() {}

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

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

func (x *Entry) GetSpiffeId() *SPIFFEID {
	if x != nil {
		return x.SpiffeId
	}
	return nil
}

func (x *Entry) GetParentId() *SPIFFEID {
	if x != nil {
		return x.ParentId
	}
	return nil
}

func (x *Entry) GetSelectors() []*Selector {
	if x != nil {
		return x.Selectors
	}
	return nil
}

func (x *Entry) GetX509SvidTtl() int32 {
	if x != nil {
		return x.X509SvidTtl
	}
	return 0
}

func (x *Entry) GetFederatesWith() []string {
	if x != nil {
		return x.FederatesWith
	}
	return nil
}

func (x *Entry) GetAdmin() bool {
	if x != nil {
		return x.Admin
	}
	return false
}

func (x *Entry) GetDownstream() bool {
	if x != nil {
		return x.Downstream
	}
	return false
}

func (x *Entry) GetExpiresAt() int64 {
	if x != nil {
		return x.ExpiresAt
	}
	return 0
}

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

func (x *Entry) GetRevisionNumber() int64 {
	if x != nil {
		return x.RevisionNumber
	}
	return 0
}

func (x *Entry) GetStoreSvid() bool {
	if x != nil {
		return x.StoreSvid
	}
	return false
}

func (x *Entry) GetJwtSvidTtl() int32 {
	if x != nil {
		return x.JwtSvidTtl
	}
	return 0
}

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

func (x *Entry) GetCreatedAt() int64 {
	if x != nil {
		return x.CreatedAt
	}
	return 0
}

func (x *Entry) GetAdditionalAttributes() *Entry_AdditionalAttributes {
	if x != nil {
		return x.AdditionalAttributes
	}
	return nil
}

// Field mask for Entry fields
type EntryMask struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// spiffe_id field mask
	SpiffeId bool `protobuf:"varint,2,opt,name=spiffe_id,json=spiffeId,proto3" json:"spiffe_id,omitempty"`
	// parent_id field mask
	ParentId bool `protobuf:"varint,3,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"`
	// selectors field mask
	Selectors bool `protobuf:"varint,4,opt,name=selectors,proto3" json:"selectors,omitempty"`
	// x509_svid_ttl field mask
	X509SvidTtl bool `protobuf:"varint,5,opt,name=x509_svid_ttl,json=x509SvidTtl,proto3" json:"x509_svid_ttl,omitempty"`
	// federates_with field mask
	FederatesWith bool `protobuf:"varint,6,opt,name=federates_with,json=federatesWith,proto3" json:"federates_with,omitempty"`
	// admin field mask
	Admin bool `protobuf:"varint,7,opt,name=admin,proto3" json:"admin,omitempty"`
	// downstream field mask
	Downstream bool `protobuf:"varint,8,opt,name=downstream,proto3" json:"downstream,omitempty"`
	// expires_at field mask
	ExpiresAt bool `protobuf:"varint,9,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
	// dns_names field mask
	DnsNames bool `protobuf:"varint,10,opt,name=dns_names,json=dnsNames,proto3" json:"dns_names,omitempty"`
	// revision_number field mask
	RevisionNumber bool `protobuf:"varint,11,opt,name=revision_number,json=revisionNumber,proto3" json:"revision_number,omitempty"`
	// store_svid field mask
	StoreSvid bool `protobuf:"varint,12,opt,name=store_svid,json=storeSvid,proto3" json:"store_svid,omitempty"`
	// jwt_svid_ttl field mask
	JwtSvidTtl bool `protobuf:"varint,13,opt,name=jwt_svid_ttl,json=jwtSvidTtl,proto3" json:"jwt_svid_ttl,omitempty"`
	// hint field mask
	Hint bool `protobuf:"varint,14,opt,name=hint,proto3" json:"hint,omitempty"`
	// created_at field mask
	CreatedAt bool `protobuf:"varint,15,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// additional_attributes field mask
	AdditionalAttributes bool `protobuf:"varint,16,opt,name=additional_attributes,json=additionalAttributes,proto3" json:"additional_attributes,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

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

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

func (*EntryMask) ProtoMessage() {}

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

func (x *EntryMask) GetSpiffeId() bool {
	if x != nil {
		return x.SpiffeId
	}
	return false
}

func (x *EntryMask) GetParentId() bool {
	if x != nil {
		return x.ParentId
	}
	return false
}

func (x *EntryMask) GetSelectors() bool {
	if x != nil {
		return x.Selectors
	}
	return false
}

func (x *EntryMask) GetX509SvidTtl() bool {
	if x != nil {
		return x.X509SvidTtl
	}
	return false
}

func (x *EntryMask) GetFederatesWith() bool {
	if x != nil {
		return x.FederatesWith
	}
	return false
}

func (x *EntryMask) GetAdmin() bool {
	if x != nil {
		return x.Admin
	}
	return false
}

func (x *EntryMask) GetDownstream() bool {
	if x != nil {
		return x.Downstream
	}
	return false
}

func (x *EntryMask) GetExpiresAt() bool {
	if x != nil {
		return x.ExpiresAt
	}
	return false
}

func (x *EntryMask) GetDnsNames() bool {
	if x != nil {
		return x.DnsNames
	}
	return false
}

func (x *EntryMask) GetRevisionNumber() bool {
	if x != nil {
		return x.RevisionNumber
	}
	return false
}

func (x *EntryMask) GetStoreSvid() bool {
	if x != nil {
		return x.StoreSvid
	}
	return false
}

func (x *EntryMask) GetJwtSvidTtl() bool {
	if x != nil {
		return x.JwtSvidTtl
	}
	return false
}

func (x *EntryMask) GetHint() bool {
	if x != nil {
		return x.Hint
	}
	return false
}

func (x *EntryMask) GetCreatedAt() bool {
	if x != nil {
		return x.CreatedAt
	}
	return false
}

func (x *EntryMask) GetAdditionalAttributes() bool {
	if x != nil {
		return x.AdditionalAttributes
	}
	return false
}

// * This nested message is reserved to contain a number of optional fields
// controlling the various aspects of the agent's behaviour with respect to a
// given registration entry. It serves to enable introducing and testing out new
// tunables, without having to modify the datastore schema. Over time, some of
// the fields contained therein may be considered eligible for their dedicated
// attributes in the datastore.
type Entry_AdditionalAttributes struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// * Flag indicating whether the agent should prefetch and cache X509 SVID.
	// Can be set to `true` if the workload is unlikely to request an X509 SVID.
	// This is meant to prevent unnecessary effort spent on generating SVIDs of types,
	// which are unlikely to be needed.
	DisableX509SvidPrefetch bool `protobuf:"varint,1,opt,name=disable_x509_svid_prefetch,json=disableX509SvidPrefetch,proto3" json:"disable_x509_svid_prefetch,omitempty"`
	// * Flag indicating whether SPIRE should include a unique JTI (JWT ID) claim
	// in JWT-SVIDs issued for this entry. When set, each JWT-SVID minted for this
	// entry contains a freshly generated UUID in the `jti` claim, and the agent
	// bypasses its JWT-SVID cache so every request yields a new token. This
	// supports use cases that require per-token uniqueness, such as replay
	// protection or auditing.
	JwtSvidIncludeJti bool `protobuf:"varint,2,opt,name=jwt_svid_include_jti,json=jwtSvidIncludeJti,proto3" json:"jwt_svid_include_jti,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

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

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

func (*Entry_AdditionalAttributes) ProtoMessage() {}

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

func (x *Entry_AdditionalAttributes) GetDisableX509SvidPrefetch() bool {
	if x != nil {
		return x.DisableX509SvidPrefetch
	}
	return false
}

func (x *Entry_AdditionalAttributes) GetJwtSvidIncludeJti() bool {
	if x != nil {
		return x.JwtSvidIncludeJti
	}
	return false
}

var File_spire_api_types_entry_proto protoreflect.FileDescriptor

const file_spire_api_types_entry_proto_rawDesc = "" +
	"\n" +
	"\x1bspire/api/types/entry.proto\x12\x0fspire.api.types\x1a\x1espire/api/types/selector.proto\x1a\x1espire/api/types/spiffeid.proto\"\xa2\x06\n" +
	"\x05Entry\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x126\n" +
	"\tspiffe_id\x18\x02 \x01(\v2\x19.spire.api.types.SPIFFEIDR\bspiffeId\x126\n" +
	"\tparent_id\x18\x03 \x01(\v2\x19.spire.api.types.SPIFFEIDR\bparentId\x127\n" +
	"\tselectors\x18\x04 \x03(\v2\x19.spire.api.types.SelectorR\tselectors\x12\"\n" +
	"\rx509_svid_ttl\x18\x05 \x01(\x05R\vx509SvidTtl\x12%\n" +
	"\x0efederates_with\x18\x06 \x03(\tR\rfederatesWith\x12\x14\n" +
	"\x05admin\x18\a \x01(\bR\x05admin\x12\x1e\n" +
	"\n" +
	"downstream\x18\b \x01(\bR\n" +
	"downstream\x12\x1d\n" +
	"\n" +
	"expires_at\x18\t \x01(\x03R\texpiresAt\x12\x1b\n" +
	"\tdns_names\x18\n" +
	" \x03(\tR\bdnsNames\x12'\n" +
	"\x0frevision_number\x18\v \x01(\x03R\x0erevisionNumber\x12\x1d\n" +
	"\n" +
	"store_svid\x18\f \x01(\bR\tstoreSvid\x12 \n" +
	"\fjwt_svid_ttl\x18\r \x01(\x05R\n" +
	"jwtSvidTtl\x12\x12\n" +
	"\x04hint\x18\x0e \x01(\tR\x04hint\x12\x1d\n" +
	"\n" +
	"created_at\x18\x0f \x01(\x03R\tcreatedAt\x12e\n" +
	"\x15additional_attributes\x18\x10 \x01(\v2+.spire.api.types.Entry.AdditionalAttributesH\x00R\x14additionalAttributes\x88\x01\x01\x1a\x84\x01\n" +
	"\x14AdditionalAttributes\x12;\n" +
	"\x1adisable_x509_svid_prefetch\x18\x01 \x01(\bR\x17disableX509SvidPrefetch\x12/\n" +
	"\x14jwt_svid_include_jti\x18\x02 \x01(\bR\x11jwtSvidIncludeJtiB\x18\n" +
	"\x16_additional_attributes\"\xf2\x03\n" +
	"\tEntryMask\x12\x1b\n" +
	"\tspiffe_id\x18\x02 \x01(\bR\bspiffeId\x12\x1b\n" +
	"\tparent_id\x18\x03 \x01(\bR\bparentId\x12\x1c\n" +
	"\tselectors\x18\x04 \x01(\bR\tselectors\x12\"\n" +
	"\rx509_svid_ttl\x18\x05 \x01(\bR\vx509SvidTtl\x12%\n" +
	"\x0efederates_with\x18\x06 \x01(\bR\rfederatesWith\x12\x14\n" +
	"\x05admin\x18\a \x01(\bR\x05admin\x12\x1e\n" +
	"\n" +
	"downstream\x18\b \x01(\bR\n" +
	"downstream\x12\x1d\n" +
	"\n" +
	"expires_at\x18\t \x01(\bR\texpiresAt\x12\x1b\n" +
	"\tdns_names\x18\n" +
	" \x01(\bR\bdnsNames\x12'\n" +
	"\x0frevision_number\x18\v \x01(\bR\x0erevisionNumber\x12\x1d\n" +
	"\n" +
	"store_svid\x18\f \x01(\bR\tstoreSvid\x12 \n" +
	"\fjwt_svid_ttl\x18\r \x01(\bR\n" +
	"jwtSvidTtl\x12\x12\n" +
	"\x04hint\x18\x0e \x01(\bR\x04hint\x12\x1d\n" +
	"\n" +
	"created_at\x18\x0f \x01(\bR\tcreatedAt\x123\n" +
	"\x15additional_attributes\x18\x10 \x01(\bR\x14additionalAttributesB7Z5github.com/spiffe/spire-api-sdk/proto/spire/api/typesb\x06proto3"

var (
	file_spire_api_types_entry_proto_rawDescOnce sync.Once
	file_spire_api_types_entry_proto_rawDescData []byte
)

func file_spire_api_types_entry_proto_rawDescGZIP() []byte {
	file_spire_api_types_entry_proto_rawDescOnce.Do(func() {
		file_spire_api_types_entry_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_spire_api_types_entry_proto_rawDesc), len(file_spire_api_types_entry_proto_rawDesc)))
	})
	return file_spire_api_types_entry_proto_rawDescData
}

var file_spire_api_types_entry_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_spire_api_types_entry_proto_goTypes = []any{
	(*Entry)(nil),                      // 0: spire.api.types.Entry
	(*EntryMask)(nil),                  // 1: spire.api.types.EntryMask
	(*Entry_AdditionalAttributes)(nil), // 2: spire.api.types.Entry.AdditionalAttributes
	(*SPIFFEID)(nil),                   // 3: spire.api.types.SPIFFEID
	(*Selector)(nil),                   // 4: spire.api.types.Selector
}
var file_spire_api_types_entry_proto_depIdxs = []int32{
	3, // 0: spire.api.types.Entry.spiffe_id:type_name -> spire.api.types.SPIFFEID
	3, // 1: spire.api.types.Entry.parent_id:type_name -> spire.api.types.SPIFFEID
	4, // 2: spire.api.types.Entry.selectors:type_name -> spire.api.types.Selector
	2, // 3: spire.api.types.Entry.additional_attributes:type_name -> spire.api.types.Entry.AdditionalAttributes
	4, // [4:4] is the sub-list for method output_type
	4, // [4:4] is the sub-list for method input_type
	4, // [4:4] is the sub-list for extension type_name
	4, // [4:4] is the sub-list for extension extendee
	0, // [0:4] is the sub-list for field type_name
}

func init() { file_spire_api_types_entry_proto_init() }
func file_spire_api_types_entry_proto_init() {
	if File_spire_api_types_entry_proto != nil {
		return
	}
	file_spire_api_types_selector_proto_init()
	file_spire_api_types_spiffeid_proto_init()
	file_spire_api_types_entry_proto_msgTypes[0].OneofWrappers = []any{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_spire_api_types_entry_proto_rawDesc), len(file_spire_api_types_entry_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   3,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_spire_api_types_entry_proto_goTypes,
		DependencyIndexes: file_spire_api_types_entry_proto_depIdxs,
		MessageInfos:      file_spire_api_types_entry_proto_msgTypes,
	}.Build()
	File_spire_api_types_entry_proto = out.File
	file_spire_api_types_entry_proto_goTypes = nil
	file_spire_api_types_entry_proto_depIdxs = nil
}
