// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        v6.33.2
// source: envoy/extensions/transport_sockets/tls/v3/secret.proto

package tlsv3

import (
	_ "github.com/cncf/xds/go/udpa/annotations"
	v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	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 GenericSecret struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Secret of generic type and is available to filters. It is expected
	// that only only one of secret and secrets is set.
	Secret *v3.DataSource `protobuf:"bytes,1,opt,name=secret,proto3" json:"secret,omitempty"`
	// For cases where multiple associated secrets need to be distributed together. It is expected
	// that only only one of secret and secrets is set.
	Secrets       map[string]*v3.DataSource `protobuf:"bytes,2,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GenericSecret) ProtoMessage() {}

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

func (x *GenericSecret) GetSecret() *v3.DataSource {
	if x != nil {
		return x.Secret
	}
	return nil
}

func (x *GenericSecret) GetSecrets() map[string]*v3.DataSource {
	if x != nil {
		return x.Secrets
	}
	return nil
}

type SdsSecretConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Name by which the secret can be uniquely referred to. When both name and config are specified,
	// then secret can be fetched and/or reloaded via SDS. When only name is specified, then secret
	// will be loaded from static resources.
	Name          string           `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	SdsConfig     *v3.ConfigSource `protobuf:"bytes,2,opt,name=sds_config,json=sdsConfig,proto3" json:"sds_config,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SdsSecretConfig) ProtoMessage() {}

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

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

func (x *SdsSecretConfig) GetSdsConfig() *v3.ConfigSource {
	if x != nil {
		return x.SdsConfig
	}
	return nil
}

// [#next-free-field: 6]
type Secret struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Name (FQDN, UUID, SPKI, SHA256, etc.) by which the secret can be uniquely referred to.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Types that are valid to be assigned to Type:
	//
	//	*Secret_TlsCertificate
	//	*Secret_SessionTicketKeys
	//	*Secret_ValidationContext
	//	*Secret_GenericSecret
	Type          isSecret_Type `protobuf_oneof:"type"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Secret) ProtoMessage() {}

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

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

func (x *Secret) GetType() isSecret_Type {
	if x != nil {
		return x.Type
	}
	return nil
}

func (x *Secret) GetTlsCertificate() *TlsCertificate {
	if x != nil {
		if x, ok := x.Type.(*Secret_TlsCertificate); ok {
			return x.TlsCertificate
		}
	}
	return nil
}

func (x *Secret) GetSessionTicketKeys() *TlsSessionTicketKeys {
	if x != nil {
		if x, ok := x.Type.(*Secret_SessionTicketKeys); ok {
			return x.SessionTicketKeys
		}
	}
	return nil
}

func (x *Secret) GetValidationContext() *CertificateValidationContext {
	if x != nil {
		if x, ok := x.Type.(*Secret_ValidationContext); ok {
			return x.ValidationContext
		}
	}
	return nil
}

func (x *Secret) GetGenericSecret() *GenericSecret {
	if x != nil {
		if x, ok := x.Type.(*Secret_GenericSecret); ok {
			return x.GenericSecret
		}
	}
	return nil
}

type isSecret_Type interface {
	isSecret_Type()
}

type Secret_TlsCertificate struct {
	TlsCertificate *TlsCertificate `protobuf:"bytes,2,opt,name=tls_certificate,json=tlsCertificate,proto3,oneof"`
}

type Secret_SessionTicketKeys struct {
	SessionTicketKeys *TlsSessionTicketKeys `protobuf:"bytes,3,opt,name=session_ticket_keys,json=sessionTicketKeys,proto3,oneof"`
}

type Secret_ValidationContext struct {
	ValidationContext *CertificateValidationContext `protobuf:"bytes,4,opt,name=validation_context,json=validationContext,proto3,oneof"`
}

type Secret_GenericSecret struct {
	GenericSecret *GenericSecret `protobuf:"bytes,5,opt,name=generic_secret,json=genericSecret,proto3,oneof"`
}

func (*Secret_TlsCertificate) isSecret_Type() {}

func (*Secret_SessionTicketKeys) isSecret_Type() {}

func (*Secret_ValidationContext) isSecret_Type() {}

func (*Secret_GenericSecret) isSecret_Type() {}

var File_envoy_extensions_transport_sockets_tls_v3_secret_proto protoreflect.FileDescriptor

const file_envoy_extensions_transport_sockets_tls_v3_secret_proto_rawDesc = "" +
	"\n" +
	"6envoy/extensions/transport_sockets/tls/v3/secret.proto\x12)envoy.extensions.transport_sockets.tls.v3\x1a\x1fenvoy/config/core/v3/base.proto\x1a(envoy/config/core/v3/config_source.proto\x1a6envoy/extensions/transport_sockets/tls/v3/common.proto\x1a udpa/annotations/sensitive.proto\x1a\x1dudpa/annotations/status.proto\x1a!udpa/annotations/versioning.proto\x1a\x17validate/validate.proto\"\xc0\x02\n" +
	"\rGenericSecret\x12@\n" +
	"\x06secret\x18\x01 \x01(\v2 .envoy.config.core.v3.DataSourceB\x06\xb8\xb7\x8b\xa4\x02\x01R\x06secret\x12g\n" +
	"\asecrets\x18\x02 \x03(\v2E.envoy.extensions.transport_sockets.tls.v3.GenericSecret.SecretsEntryB\x06\xb8\xb7\x8b\xa4\x02\x01R\asecrets\x1a\\\n" +
	"\fSecretsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x126\n" +
	"\x05value\x18\x02 \x01(\v2 .envoy.config.core.v3.DataSourceR\x05value:\x028\x01:&\x9aň\x1e!\n" +
	"\x1fenvoy.api.v2.auth.GenericSecret\"\x9b\x01\n" +
	"\x0fSdsSecretConfig\x12\x1b\n" +
	"\x04name\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\x04name\x12A\n" +
	"\n" +
	"sds_config\x18\x02 \x01(\v2\".envoy.config.core.v3.ConfigSourceR\tsdsConfig:(\x9aň\x1e#\n" +
	"!envoy.api.v2.auth.SdsSecretConfig\"\xfb\x03\n" +
	"\x06Secret\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12d\n" +
	"\x0ftls_certificate\x18\x02 \x01(\v29.envoy.extensions.transport_sockets.tls.v3.TlsCertificateH\x00R\x0etlsCertificate\x12q\n" +
	"\x13session_ticket_keys\x18\x03 \x01(\v2?.envoy.extensions.transport_sockets.tls.v3.TlsSessionTicketKeysH\x00R\x11sessionTicketKeys\x12x\n" +
	"\x12validation_context\x18\x04 \x01(\v2G.envoy.extensions.transport_sockets.tls.v3.CertificateValidationContextH\x00R\x11validationContext\x12a\n" +
	"\x0egeneric_secret\x18\x05 \x01(\v28.envoy.extensions.transport_sockets.tls.v3.GenericSecretH\x00R\rgenericSecret:\x1f\x9aň\x1e\x1a\n" +
	"\x18envoy.api.v2.auth.SecretB\x06\n" +
	"\x04typeB\xa8\x01\xba\x80\xc8\xd1\x06\x02\x10\x02\n" +
	"7io.envoyproxy.envoy.extensions.transport_sockets.tls.v3B\vSecretProtoP\x01ZVgithub.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3;tlsv3b\x06proto3"

var (
	file_envoy_extensions_transport_sockets_tls_v3_secret_proto_rawDescOnce sync.Once
	file_envoy_extensions_transport_sockets_tls_v3_secret_proto_rawDescData []byte
)

func file_envoy_extensions_transport_sockets_tls_v3_secret_proto_rawDescGZIP() []byte {
	file_envoy_extensions_transport_sockets_tls_v3_secret_proto_rawDescOnce.Do(func() {
		file_envoy_extensions_transport_sockets_tls_v3_secret_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_envoy_extensions_transport_sockets_tls_v3_secret_proto_rawDesc), len(file_envoy_extensions_transport_sockets_tls_v3_secret_proto_rawDesc)))
	})
	return file_envoy_extensions_transport_sockets_tls_v3_secret_proto_rawDescData
}

var file_envoy_extensions_transport_sockets_tls_v3_secret_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_envoy_extensions_transport_sockets_tls_v3_secret_proto_goTypes = []any{
	(*GenericSecret)(nil),                // 0: envoy.extensions.transport_sockets.tls.v3.GenericSecret
	(*SdsSecretConfig)(nil),              // 1: envoy.extensions.transport_sockets.tls.v3.SdsSecretConfig
	(*Secret)(nil),                       // 2: envoy.extensions.transport_sockets.tls.v3.Secret
	nil,                                  // 3: envoy.extensions.transport_sockets.tls.v3.GenericSecret.SecretsEntry
	(*v3.DataSource)(nil),                // 4: envoy.config.core.v3.DataSource
	(*v3.ConfigSource)(nil),              // 5: envoy.config.core.v3.ConfigSource
	(*TlsCertificate)(nil),               // 6: envoy.extensions.transport_sockets.tls.v3.TlsCertificate
	(*TlsSessionTicketKeys)(nil),         // 7: envoy.extensions.transport_sockets.tls.v3.TlsSessionTicketKeys
	(*CertificateValidationContext)(nil), // 8: envoy.extensions.transport_sockets.tls.v3.CertificateValidationContext
}
var file_envoy_extensions_transport_sockets_tls_v3_secret_proto_depIdxs = []int32{
	4, // 0: envoy.extensions.transport_sockets.tls.v3.GenericSecret.secret:type_name -> envoy.config.core.v3.DataSource
	3, // 1: envoy.extensions.transport_sockets.tls.v3.GenericSecret.secrets:type_name -> envoy.extensions.transport_sockets.tls.v3.GenericSecret.SecretsEntry
	5, // 2: envoy.extensions.transport_sockets.tls.v3.SdsSecretConfig.sds_config:type_name -> envoy.config.core.v3.ConfigSource
	6, // 3: envoy.extensions.transport_sockets.tls.v3.Secret.tls_certificate:type_name -> envoy.extensions.transport_sockets.tls.v3.TlsCertificate
	7, // 4: envoy.extensions.transport_sockets.tls.v3.Secret.session_ticket_keys:type_name -> envoy.extensions.transport_sockets.tls.v3.TlsSessionTicketKeys
	8, // 5: envoy.extensions.transport_sockets.tls.v3.Secret.validation_context:type_name -> envoy.extensions.transport_sockets.tls.v3.CertificateValidationContext
	0, // 6: envoy.extensions.transport_sockets.tls.v3.Secret.generic_secret:type_name -> envoy.extensions.transport_sockets.tls.v3.GenericSecret
	4, // 7: envoy.extensions.transport_sockets.tls.v3.GenericSecret.SecretsEntry.value:type_name -> envoy.config.core.v3.DataSource
	8, // [8:8] is the sub-list for method output_type
	8, // [8:8] 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_envoy_extensions_transport_sockets_tls_v3_secret_proto_init() }
func file_envoy_extensions_transport_sockets_tls_v3_secret_proto_init() {
	if File_envoy_extensions_transport_sockets_tls_v3_secret_proto != nil {
		return
	}
	file_envoy_extensions_transport_sockets_tls_v3_common_proto_init()
	file_envoy_extensions_transport_sockets_tls_v3_secret_proto_msgTypes[2].OneofWrappers = []any{
		(*Secret_TlsCertificate)(nil),
		(*Secret_SessionTicketKeys)(nil),
		(*Secret_ValidationContext)(nil),
		(*Secret_GenericSecret)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_envoy_extensions_transport_sockets_tls_v3_secret_proto_rawDesc), len(file_envoy_extensions_transport_sockets_tls_v3_secret_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   4,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_envoy_extensions_transport_sockets_tls_v3_secret_proto_goTypes,
		DependencyIndexes: file_envoy_extensions_transport_sockets_tls_v3_secret_proto_depIdxs,
		MessageInfos:      file_envoy_extensions_transport_sockets_tls_v3_secret_proto_msgTypes,
	}.Build()
	File_envoy_extensions_transport_sockets_tls_v3_secret_proto = out.File
	file_envoy_extensions_transport_sockets_tls_v3_secret_proto_goTypes = nil
	file_envoy_extensions_transport_sockets_tls_v3_secret_proto_depIdxs = nil
}
