// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11-devel
// 	protoc        (unknown)
// source: resource/definitions/security/security.proto

package security

import (
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"

	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
)

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)
)

// ImageKeylessVerifierSpec represents a signature verification provider.
type ImageKeylessVerifierSpec struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Issuer        string                 `protobuf:"bytes,1,opt,name=issuer,proto3" json:"issuer,omitempty"`
	Subject       string                 `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"`
	SubjectRegex  string                 `protobuf:"bytes,3,opt,name=subject_regex,json=subjectRegex,proto3" json:"subject_regex,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ImageKeylessVerifierSpec) ProtoMessage() {}

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

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

func (x *ImageKeylessVerifierSpec) GetSubject() string {
	if x != nil {
		return x.Subject
	}
	return ""
}

func (x *ImageKeylessVerifierSpec) GetSubjectRegex() string {
	if x != nil {
		return x.SubjectRegex
	}
	return ""
}

// ImagePublicKeyVerifierSpec represents a signature verification provider with static public key.
type ImagePublicKeyVerifierSpec struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Certificate   string                 `protobuf:"bytes,1,opt,name=certificate,proto3" json:"certificate,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ImagePublicKeyVerifierSpec) ProtoMessage() {}

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

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

// ImageVerificationRuleSpec represents a verification rule.
type ImageVerificationRuleSpec struct {
	state             protoimpl.MessageState      `protogen:"open.v1"`
	ImagePattern      string                      `protobuf:"bytes,2,opt,name=image_pattern,json=imagePattern,proto3" json:"image_pattern,omitempty"`
	Skip              bool                        `protobuf:"varint,3,opt,name=skip,proto3" json:"skip,omitempty"`
	Deny              bool                        `protobuf:"varint,4,opt,name=deny,proto3" json:"deny,omitempty"`
	KeylessVerifier   *ImageKeylessVerifierSpec   `protobuf:"bytes,5,opt,name=keyless_verifier,json=keylessVerifier,proto3" json:"keyless_verifier,omitempty"`
	PublicKeyVerifier *ImagePublicKeyVerifierSpec `protobuf:"bytes,6,opt,name=public_key_verifier,json=publicKeyVerifier,proto3" json:"public_key_verifier,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

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

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

func (*ImageVerificationRuleSpec) ProtoMessage() {}

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

func (x *ImageVerificationRuleSpec) GetImagePattern() string {
	if x != nil {
		return x.ImagePattern
	}
	return ""
}

func (x *ImageVerificationRuleSpec) GetSkip() bool {
	if x != nil {
		return x.Skip
	}
	return false
}

func (x *ImageVerificationRuleSpec) GetDeny() bool {
	if x != nil {
		return x.Deny
	}
	return false
}

func (x *ImageVerificationRuleSpec) GetKeylessVerifier() *ImageKeylessVerifierSpec {
	if x != nil {
		return x.KeylessVerifier
	}
	return nil
}

func (x *ImageVerificationRuleSpec) GetPublicKeyVerifier() *ImagePublicKeyVerifierSpec {
	if x != nil {
		return x.PublicKeyVerifier
	}
	return nil
}

// TUFTrustedRootSpec represents a sigstore's TUF trusted root information.
type TUFTrustedRootSpec struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	LastRefreshTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=last_refresh_time,json=lastRefreshTime,proto3" json:"last_refresh_time,omitempty"`
	JsonData        string                 `protobuf:"bytes,2,opt,name=json_data,json=jsonData,proto3" json:"json_data,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*TUFTrustedRootSpec) ProtoMessage() {}

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

func (x *TUFTrustedRootSpec) GetLastRefreshTime() *timestamppb.Timestamp {
	if x != nil {
		return x.LastRefreshTime
	}
	return nil
}

func (x *TUFTrustedRootSpec) GetJsonData() string {
	if x != nil {
		return x.JsonData
	}
	return ""
}

var File_resource_definitions_security_security_proto protoreflect.FileDescriptor

const file_resource_definitions_security_security_proto_rawDesc = "" +
	"\n" +
	",resource/definitions/security/security.proto\x12#talos.resource.definitions.security\x1a\x1fgoogle/protobuf/timestamp.proto\"q\n" +
	"\x18ImageKeylessVerifierSpec\x12\x16\n" +
	"\x06issuer\x18\x01 \x01(\tR\x06issuer\x12\x18\n" +
	"\asubject\x18\x02 \x01(\tR\asubject\x12#\n" +
	"\rsubject_regex\x18\x03 \x01(\tR\fsubjectRegex\">\n" +
	"\x1aImagePublicKeyVerifierSpec\x12 \n" +
	"\vcertificate\x18\x01 \x01(\tR\vcertificate\"\xc3\x02\n" +
	"\x19ImageVerificationRuleSpec\x12#\n" +
	"\rimage_pattern\x18\x02 \x01(\tR\fimagePattern\x12\x12\n" +
	"\x04skip\x18\x03 \x01(\bR\x04skip\x12\x12\n" +
	"\x04deny\x18\x04 \x01(\bR\x04deny\x12h\n" +
	"\x10keyless_verifier\x18\x05 \x01(\v2=.talos.resource.definitions.security.ImageKeylessVerifierSpecR\x0fkeylessVerifier\x12o\n" +
	"\x13public_key_verifier\x18\x06 \x01(\v2?.talos.resource.definitions.security.ImagePublicKeyVerifierSpecR\x11publicKeyVerifier\"y\n" +
	"\x12TUFTrustedRootSpec\x12F\n" +
	"\x11last_refresh_time\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\x0flastRefreshTime\x12\x1b\n" +
	"\tjson_data\x18\x02 \x01(\tR\bjsonDataBz\n" +
	"+dev.talos.api.resource.definitions.securityZKgithub.com/siderolabs/talos/pkg/machinery/api/resource/definitions/securityb\x06proto3"

var (
	file_resource_definitions_security_security_proto_rawDescOnce sync.Once
	file_resource_definitions_security_security_proto_rawDescData []byte
)

func file_resource_definitions_security_security_proto_rawDescGZIP() []byte {
	file_resource_definitions_security_security_proto_rawDescOnce.Do(func() {
		file_resource_definitions_security_security_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_resource_definitions_security_security_proto_rawDesc), len(file_resource_definitions_security_security_proto_rawDesc)))
	})
	return file_resource_definitions_security_security_proto_rawDescData
}

var file_resource_definitions_security_security_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_resource_definitions_security_security_proto_goTypes = []any{
	(*ImageKeylessVerifierSpec)(nil),   // 0: talos.resource.definitions.security.ImageKeylessVerifierSpec
	(*ImagePublicKeyVerifierSpec)(nil), // 1: talos.resource.definitions.security.ImagePublicKeyVerifierSpec
	(*ImageVerificationRuleSpec)(nil),  // 2: talos.resource.definitions.security.ImageVerificationRuleSpec
	(*TUFTrustedRootSpec)(nil),         // 3: talos.resource.definitions.security.TUFTrustedRootSpec
	(*timestamppb.Timestamp)(nil),      // 4: google.protobuf.Timestamp
}
var file_resource_definitions_security_security_proto_depIdxs = []int32{
	0, // 0: talos.resource.definitions.security.ImageVerificationRuleSpec.keyless_verifier:type_name -> talos.resource.definitions.security.ImageKeylessVerifierSpec
	1, // 1: talos.resource.definitions.security.ImageVerificationRuleSpec.public_key_verifier:type_name -> talos.resource.definitions.security.ImagePublicKeyVerifierSpec
	4, // 2: talos.resource.definitions.security.TUFTrustedRootSpec.last_refresh_time:type_name -> google.protobuf.Timestamp
	3, // [3:3] is the sub-list for method output_type
	3, // [3:3] is the sub-list for method input_type
	3, // [3:3] is the sub-list for extension type_name
	3, // [3:3] is the sub-list for extension extendee
	0, // [0:3] is the sub-list for field type_name
}

func init() { file_resource_definitions_security_security_proto_init() }
func file_resource_definitions_security_security_proto_init() {
	if File_resource_definitions_security_security_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_resource_definitions_security_security_proto_rawDesc), len(file_resource_definitions_security_security_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   4,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_resource_definitions_security_security_proto_goTypes,
		DependencyIndexes: file_resource_definitions_security_security_proto_depIdxs,
		MessageInfos:      file_resource_definitions_security_security_proto_msgTypes,
	}.Build()
	File_resource_definitions_security_security_proto = out.File
	file_resource_definitions_security_security_proto_goTypes = nil
	file_resource_definitions_security_security_proto_depIdxs = nil
}
