// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        v7.35.1
// source: envoy/config/accesslog/v3/accesslog.proto

package accesslogv3

import (
	_ "github.com/cncf/xds/go/udpa/annotations"
	v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
	v32 "github.com/envoyproxy/go-control-plane/envoy/config/route/v3"
	v34 "github.com/envoyproxy/go-control-plane/envoy/data/accesslog/v3"
	v33 "github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3"
	v31 "github.com/envoyproxy/go-control-plane/envoy/type/v3"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	anypb "google.golang.org/protobuf/types/known/anypb"
	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
	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 ComparisonFilter_Op int32

const (
	// =
	ComparisonFilter_EQ ComparisonFilter_Op = 0
	// >=
	ComparisonFilter_GE ComparisonFilter_Op = 1
	// <=
	ComparisonFilter_LE ComparisonFilter_Op = 2
	// !=
	ComparisonFilter_NE ComparisonFilter_Op = 3
)

// Enum value maps for ComparisonFilter_Op.
var (
	ComparisonFilter_Op_name = map[int32]string{
		0: "EQ",
		1: "GE",
		2: "LE",
		3: "NE",
	}
	ComparisonFilter_Op_value = map[string]int32{
		"EQ": 0,
		"GE": 1,
		"LE": 2,
		"NE": 3,
	}
)

func (x ComparisonFilter_Op) Enum() *ComparisonFilter_Op {
	p := new(ComparisonFilter_Op)
	*p = x
	return p
}

func (x ComparisonFilter_Op) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ComparisonFilter_Op) Descriptor() protoreflect.EnumDescriptor {
	return file_envoy_config_accesslog_v3_accesslog_proto_enumTypes[0].Descriptor()
}

func (ComparisonFilter_Op) Type() protoreflect.EnumType {
	return &file_envoy_config_accesslog_v3_accesslog_proto_enumTypes[0]
}

func (x ComparisonFilter_Op) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ComparisonFilter_Op.Descriptor instead.
func (ComparisonFilter_Op) EnumDescriptor() ([]byte, []int) {
	return file_envoy_config_accesslog_v3_accesslog_proto_rawDescGZIP(), []int{2, 0}
}

type GrpcStatusFilter_Status int32

const (
	GrpcStatusFilter_OK                  GrpcStatusFilter_Status = 0
	GrpcStatusFilter_CANCELED            GrpcStatusFilter_Status = 1
	GrpcStatusFilter_UNKNOWN             GrpcStatusFilter_Status = 2
	GrpcStatusFilter_INVALID_ARGUMENT    GrpcStatusFilter_Status = 3
	GrpcStatusFilter_DEADLINE_EXCEEDED   GrpcStatusFilter_Status = 4
	GrpcStatusFilter_NOT_FOUND           GrpcStatusFilter_Status = 5
	GrpcStatusFilter_ALREADY_EXISTS      GrpcStatusFilter_Status = 6
	GrpcStatusFilter_PERMISSION_DENIED   GrpcStatusFilter_Status = 7
	GrpcStatusFilter_RESOURCE_EXHAUSTED  GrpcStatusFilter_Status = 8
	GrpcStatusFilter_FAILED_PRECONDITION GrpcStatusFilter_Status = 9
	GrpcStatusFilter_ABORTED             GrpcStatusFilter_Status = 10
	GrpcStatusFilter_OUT_OF_RANGE        GrpcStatusFilter_Status = 11
	GrpcStatusFilter_UNIMPLEMENTED       GrpcStatusFilter_Status = 12
	GrpcStatusFilter_INTERNAL            GrpcStatusFilter_Status = 13
	GrpcStatusFilter_UNAVAILABLE         GrpcStatusFilter_Status = 14
	GrpcStatusFilter_DATA_LOSS           GrpcStatusFilter_Status = 15
	GrpcStatusFilter_UNAUTHENTICATED     GrpcStatusFilter_Status = 16
)

// Enum value maps for GrpcStatusFilter_Status.
var (
	GrpcStatusFilter_Status_name = map[int32]string{
		0:  "OK",
		1:  "CANCELED",
		2:  "UNKNOWN",
		3:  "INVALID_ARGUMENT",
		4:  "DEADLINE_EXCEEDED",
		5:  "NOT_FOUND",
		6:  "ALREADY_EXISTS",
		7:  "PERMISSION_DENIED",
		8:  "RESOURCE_EXHAUSTED",
		9:  "FAILED_PRECONDITION",
		10: "ABORTED",
		11: "OUT_OF_RANGE",
		12: "UNIMPLEMENTED",
		13: "INTERNAL",
		14: "UNAVAILABLE",
		15: "DATA_LOSS",
		16: "UNAUTHENTICATED",
	}
	GrpcStatusFilter_Status_value = map[string]int32{
		"OK":                  0,
		"CANCELED":            1,
		"UNKNOWN":             2,
		"INVALID_ARGUMENT":    3,
		"DEADLINE_EXCEEDED":   4,
		"NOT_FOUND":           5,
		"ALREADY_EXISTS":      6,
		"PERMISSION_DENIED":   7,
		"RESOURCE_EXHAUSTED":  8,
		"FAILED_PRECONDITION": 9,
		"ABORTED":             10,
		"OUT_OF_RANGE":        11,
		"UNIMPLEMENTED":       12,
		"INTERNAL":            13,
		"UNAVAILABLE":         14,
		"DATA_LOSS":           15,
		"UNAUTHENTICATED":     16,
	}
)

func (x GrpcStatusFilter_Status) Enum() *GrpcStatusFilter_Status {
	p := new(GrpcStatusFilter_Status)
	*p = x
	return p
}

func (x GrpcStatusFilter_Status) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (GrpcStatusFilter_Status) Descriptor() protoreflect.EnumDescriptor {
	return file_envoy_config_accesslog_v3_accesslog_proto_enumTypes[1].Descriptor()
}

func (GrpcStatusFilter_Status) Type() protoreflect.EnumType {
	return &file_envoy_config_accesslog_v3_accesslog_proto_enumTypes[1]
}

func (x GrpcStatusFilter_Status) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use GrpcStatusFilter_Status.Descriptor instead.
func (GrpcStatusFilter_Status) EnumDescriptor() ([]byte, []int) {
	return file_envoy_config_accesslog_v3_accesslog_proto_rawDescGZIP(), []int{12, 0}
}

type AccessLog struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The name of the access log extension configuration.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Filter which is used to determine if the access log needs to be written.
	Filter *AccessLogFilter `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
	// Custom configuration that must be set according to the access logger extension being instantiated.
	// [#extension-category: envoy.access_loggers]
	//
	// Types that are valid to be assigned to ConfigType:
	//
	//	*AccessLog_TypedConfig
	ConfigType    isAccessLog_ConfigType `protobuf_oneof:"config_type"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AccessLog) ProtoMessage() {}

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

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

func (x *AccessLog) GetFilter() *AccessLogFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (x *AccessLog) GetConfigType() isAccessLog_ConfigType {
	if x != nil {
		return x.ConfigType
	}
	return nil
}

func (x *AccessLog) GetTypedConfig() *anypb.Any {
	if x != nil {
		if x, ok := x.ConfigType.(*AccessLog_TypedConfig); ok {
			return x.TypedConfig
		}
	}
	return nil
}

type isAccessLog_ConfigType interface {
	isAccessLog_ConfigType()
}

type AccessLog_TypedConfig struct {
	TypedConfig *anypb.Any `protobuf:"bytes,4,opt,name=typed_config,json=typedConfig,proto3,oneof"`
}

func (*AccessLog_TypedConfig) isAccessLog_ConfigType() {}

// [#next-free-field: 14]
type AccessLogFilter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to FilterSpecifier:
	//
	//	*AccessLogFilter_StatusCodeFilter
	//	*AccessLogFilter_DurationFilter
	//	*AccessLogFilter_NotHealthCheckFilter
	//	*AccessLogFilter_TraceableFilter
	//	*AccessLogFilter_RuntimeFilter
	//	*AccessLogFilter_AndFilter
	//	*AccessLogFilter_OrFilter
	//	*AccessLogFilter_HeaderFilter
	//	*AccessLogFilter_ResponseFlagFilter
	//	*AccessLogFilter_GrpcStatusFilter
	//	*AccessLogFilter_ExtensionFilter
	//	*AccessLogFilter_MetadataFilter
	//	*AccessLogFilter_LogTypeFilter
	FilterSpecifier isAccessLogFilter_FilterSpecifier `protobuf_oneof:"filter_specifier"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*AccessLogFilter) ProtoMessage() {}

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

func (x *AccessLogFilter) GetFilterSpecifier() isAccessLogFilter_FilterSpecifier {
	if x != nil {
		return x.FilterSpecifier
	}
	return nil
}

func (x *AccessLogFilter) GetStatusCodeFilter() *StatusCodeFilter {
	if x != nil {
		if x, ok := x.FilterSpecifier.(*AccessLogFilter_StatusCodeFilter); ok {
			return x.StatusCodeFilter
		}
	}
	return nil
}

func (x *AccessLogFilter) GetDurationFilter() *DurationFilter {
	if x != nil {
		if x, ok := x.FilterSpecifier.(*AccessLogFilter_DurationFilter); ok {
			return x.DurationFilter
		}
	}
	return nil
}

func (x *AccessLogFilter) GetNotHealthCheckFilter() *NotHealthCheckFilter {
	if x != nil {
		if x, ok := x.FilterSpecifier.(*AccessLogFilter_NotHealthCheckFilter); ok {
			return x.NotHealthCheckFilter
		}
	}
	return nil
}

func (x *AccessLogFilter) GetTraceableFilter() *TraceableFilter {
	if x != nil {
		if x, ok := x.FilterSpecifier.(*AccessLogFilter_TraceableFilter); ok {
			return x.TraceableFilter
		}
	}
	return nil
}

func (x *AccessLogFilter) GetRuntimeFilter() *RuntimeFilter {
	if x != nil {
		if x, ok := x.FilterSpecifier.(*AccessLogFilter_RuntimeFilter); ok {
			return x.RuntimeFilter
		}
	}
	return nil
}

func (x *AccessLogFilter) GetAndFilter() *AndFilter {
	if x != nil {
		if x, ok := x.FilterSpecifier.(*AccessLogFilter_AndFilter); ok {
			return x.AndFilter
		}
	}
	return nil
}

func (x *AccessLogFilter) GetOrFilter() *OrFilter {
	if x != nil {
		if x, ok := x.FilterSpecifier.(*AccessLogFilter_OrFilter); ok {
			return x.OrFilter
		}
	}
	return nil
}

func (x *AccessLogFilter) GetHeaderFilter() *HeaderFilter {
	if x != nil {
		if x, ok := x.FilterSpecifier.(*AccessLogFilter_HeaderFilter); ok {
			return x.HeaderFilter
		}
	}
	return nil
}

func (x *AccessLogFilter) GetResponseFlagFilter() *ResponseFlagFilter {
	if x != nil {
		if x, ok := x.FilterSpecifier.(*AccessLogFilter_ResponseFlagFilter); ok {
			return x.ResponseFlagFilter
		}
	}
	return nil
}

func (x *AccessLogFilter) GetGrpcStatusFilter() *GrpcStatusFilter {
	if x != nil {
		if x, ok := x.FilterSpecifier.(*AccessLogFilter_GrpcStatusFilter); ok {
			return x.GrpcStatusFilter
		}
	}
	return nil
}

func (x *AccessLogFilter) GetExtensionFilter() *ExtensionFilter {
	if x != nil {
		if x, ok := x.FilterSpecifier.(*AccessLogFilter_ExtensionFilter); ok {
			return x.ExtensionFilter
		}
	}
	return nil
}

func (x *AccessLogFilter) GetMetadataFilter() *MetadataFilter {
	if x != nil {
		if x, ok := x.FilterSpecifier.(*AccessLogFilter_MetadataFilter); ok {
			return x.MetadataFilter
		}
	}
	return nil
}

func (x *AccessLogFilter) GetLogTypeFilter() *LogTypeFilter {
	if x != nil {
		if x, ok := x.FilterSpecifier.(*AccessLogFilter_LogTypeFilter); ok {
			return x.LogTypeFilter
		}
	}
	return nil
}

type isAccessLogFilter_FilterSpecifier interface {
	isAccessLogFilter_FilterSpecifier()
}

type AccessLogFilter_StatusCodeFilter struct {
	// Status code filter.
	StatusCodeFilter *StatusCodeFilter `protobuf:"bytes,1,opt,name=status_code_filter,json=statusCodeFilter,proto3,oneof"`
}

type AccessLogFilter_DurationFilter struct {
	// Duration filter.
	DurationFilter *DurationFilter `protobuf:"bytes,2,opt,name=duration_filter,json=durationFilter,proto3,oneof"`
}

type AccessLogFilter_NotHealthCheckFilter struct {
	// Not health check filter.
	NotHealthCheckFilter *NotHealthCheckFilter `protobuf:"bytes,3,opt,name=not_health_check_filter,json=notHealthCheckFilter,proto3,oneof"`
}

type AccessLogFilter_TraceableFilter struct {
	// Traceable filter.
	TraceableFilter *TraceableFilter `protobuf:"bytes,4,opt,name=traceable_filter,json=traceableFilter,proto3,oneof"`
}

type AccessLogFilter_RuntimeFilter struct {
	// Runtime filter.
	RuntimeFilter *RuntimeFilter `protobuf:"bytes,5,opt,name=runtime_filter,json=runtimeFilter,proto3,oneof"`
}

type AccessLogFilter_AndFilter struct {
	// And filter.
	AndFilter *AndFilter `protobuf:"bytes,6,opt,name=and_filter,json=andFilter,proto3,oneof"`
}

type AccessLogFilter_OrFilter struct {
	// Or filter.
	OrFilter *OrFilter `protobuf:"bytes,7,opt,name=or_filter,json=orFilter,proto3,oneof"`
}

type AccessLogFilter_HeaderFilter struct {
	// Header filter.
	HeaderFilter *HeaderFilter `protobuf:"bytes,8,opt,name=header_filter,json=headerFilter,proto3,oneof"`
}

type AccessLogFilter_ResponseFlagFilter struct {
	// Response flag filter.
	ResponseFlagFilter *ResponseFlagFilter `protobuf:"bytes,9,opt,name=response_flag_filter,json=responseFlagFilter,proto3,oneof"`
}

type AccessLogFilter_GrpcStatusFilter struct {
	// gRPC status filter.
	GrpcStatusFilter *GrpcStatusFilter `protobuf:"bytes,10,opt,name=grpc_status_filter,json=grpcStatusFilter,proto3,oneof"`
}

type AccessLogFilter_ExtensionFilter struct {
	// Extension filter.
	// [#extension-category: envoy.access_loggers.extension_filters]
	ExtensionFilter *ExtensionFilter `protobuf:"bytes,11,opt,name=extension_filter,json=extensionFilter,proto3,oneof"`
}

type AccessLogFilter_MetadataFilter struct {
	// Metadata Filter
	MetadataFilter *MetadataFilter `protobuf:"bytes,12,opt,name=metadata_filter,json=metadataFilter,proto3,oneof"`
}

type AccessLogFilter_LogTypeFilter struct {
	// Log Type Filter
	LogTypeFilter *LogTypeFilter `protobuf:"bytes,13,opt,name=log_type_filter,json=logTypeFilter,proto3,oneof"`
}

func (*AccessLogFilter_StatusCodeFilter) isAccessLogFilter_FilterSpecifier() {}

func (*AccessLogFilter_DurationFilter) isAccessLogFilter_FilterSpecifier() {}

func (*AccessLogFilter_NotHealthCheckFilter) isAccessLogFilter_FilterSpecifier() {}

func (*AccessLogFilter_TraceableFilter) isAccessLogFilter_FilterSpecifier() {}

func (*AccessLogFilter_RuntimeFilter) isAccessLogFilter_FilterSpecifier() {}

func (*AccessLogFilter_AndFilter) isAccessLogFilter_FilterSpecifier() {}

func (*AccessLogFilter_OrFilter) isAccessLogFilter_FilterSpecifier() {}

func (*AccessLogFilter_HeaderFilter) isAccessLogFilter_FilterSpecifier() {}

func (*AccessLogFilter_ResponseFlagFilter) isAccessLogFilter_FilterSpecifier() {}

func (*AccessLogFilter_GrpcStatusFilter) isAccessLogFilter_FilterSpecifier() {}

func (*AccessLogFilter_ExtensionFilter) isAccessLogFilter_FilterSpecifier() {}

func (*AccessLogFilter_MetadataFilter) isAccessLogFilter_FilterSpecifier() {}

func (*AccessLogFilter_LogTypeFilter) isAccessLogFilter_FilterSpecifier() {}

// Filter on an integer comparison.
type ComparisonFilter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Comparison operator.
	Op ComparisonFilter_Op `protobuf:"varint,1,opt,name=op,proto3,enum=envoy.config.accesslog.v3.ComparisonFilter_Op" json:"op,omitempty"`
	// Value to compare against.
	Value         *v3.RuntimeUInt32 `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ComparisonFilter) ProtoMessage() {}

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

func (x *ComparisonFilter) GetOp() ComparisonFilter_Op {
	if x != nil {
		return x.Op
	}
	return ComparisonFilter_EQ
}

func (x *ComparisonFilter) GetValue() *v3.RuntimeUInt32 {
	if x != nil {
		return x.Value
	}
	return nil
}

// Filters on HTTP response/status code.
type StatusCodeFilter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Comparison.
	Comparison    *ComparisonFilter `protobuf:"bytes,1,opt,name=comparison,proto3" json:"comparison,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*StatusCodeFilter) ProtoMessage() {}

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

func (x *StatusCodeFilter) GetComparison() *ComparisonFilter {
	if x != nil {
		return x.Comparison
	}
	return nil
}

// Filters based on the duration of the request or stream, in milliseconds.
// For end of stream access logs, the total duration of the stream will be used.
// For :ref:`periodic access logs<arch_overview_access_log_periodic>`,
// the duration of the stream at the time of log recording will be used.
type DurationFilter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Comparison.
	Comparison    *ComparisonFilter `protobuf:"bytes,1,opt,name=comparison,proto3" json:"comparison,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DurationFilter) ProtoMessage() {}

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

func (x *DurationFilter) GetComparison() *ComparisonFilter {
	if x != nil {
		return x.Comparison
	}
	return nil
}

// Filters for requests that are not health check requests. A health check
// request is marked by the health check filter.
type NotHealthCheckFilter struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*NotHealthCheckFilter) ProtoMessage() {}

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

// Filters for requests that are traceable. See the tracing overview for more
// information on how a request becomes traceable.
type TraceableFilter struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*TraceableFilter) ProtoMessage() {}

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

// Filters requests based on runtime-configurable sampling rates.
type RuntimeFilter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Specifies a key used to look up a custom sampling rate from the runtime configuration. If a value is found for this
	// key, it will override the default sampling rate specified in “percent_sampled“.
	RuntimeKey string `protobuf:"bytes,1,opt,name=runtime_key,json=runtimeKey,proto3" json:"runtime_key,omitempty"`
	// Defines the default sampling percentage when no runtime override is present. If not specified, the default is
	// **0%** (with a denominator of 100).
	PercentSampled *v31.FractionalPercent `protobuf:"bytes,2,opt,name=percent_sampled,json=percentSampled,proto3" json:"percent_sampled,omitempty"`
	// Controls how sampling decisions are made.
	//
	// - Default behavior (“false“):
	//
	//   - Uses the :ref:`x-request-id<config_http_conn_man_headers_x-request-id>` as a consistent sampling pivot.
	//   - When :ref:`x-request-id<config_http_conn_man_headers_x-request-id>` is present, sampling will be consistent
	//     across multiple hosts based on both the “runtime_key“ and
	//     :ref:`x-request-id<config_http_conn_man_headers_x-request-id>`.
	//   - Useful for tracking related requests across a distributed system.
	//
	// - When set to “true“ or :ref:`x-request-id<config_http_conn_man_headers_x-request-id>` is missing:
	//
	//   - Sampling decisions are made randomly based only on the “runtime_key“.
	//   - Useful in complex filter configurations (like nested
	//     :ref:`AndFilter<envoy_v3_api_msg_config.accesslog.v3.AndFilter>`/
	//     :ref:`OrFilter<envoy_v3_api_msg_config.accesslog.v3.OrFilter>` blocks) where independent probability
	//     calculations are desired.
	//   - Can be used to implement logging kill switches with predictable probability distributions.
	UseIndependentRandomness bool `protobuf:"varint,3,opt,name=use_independent_randomness,json=useIndependentRandomness,proto3" json:"use_independent_randomness,omitempty"`
	unknownFields            protoimpl.UnknownFields
	sizeCache                protoimpl.SizeCache
}

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

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

func (*RuntimeFilter) ProtoMessage() {}

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

func (x *RuntimeFilter) GetRuntimeKey() string {
	if x != nil {
		return x.RuntimeKey
	}
	return ""
}

func (x *RuntimeFilter) GetPercentSampled() *v31.FractionalPercent {
	if x != nil {
		return x.PercentSampled
	}
	return nil
}

func (x *RuntimeFilter) GetUseIndependentRandomness() bool {
	if x != nil {
		return x.UseIndependentRandomness
	}
	return false
}

// Performs a logical “and” operation on the result of each filter in filters.
// Filters are evaluated sequentially and if one of them returns false, the
// filter returns false immediately.
type AndFilter struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Filters       []*AccessLogFilter     `protobuf:"bytes,1,rep,name=filters,proto3" json:"filters,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AndFilter) ProtoMessage() {}

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

func (x *AndFilter) GetFilters() []*AccessLogFilter {
	if x != nil {
		return x.Filters
	}
	return nil
}

// Performs a logical “or” operation on the result of each individual filter.
// Filters are evaluated sequentially and if one of them returns true, the
// filter returns true immediately.
type OrFilter struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Filters       []*AccessLogFilter     `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*OrFilter) ProtoMessage() {}

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

func (x *OrFilter) GetFilters() []*AccessLogFilter {
	if x != nil {
		return x.Filters
	}
	return nil
}

// Filters requests based on the presence or value of a request header.
type HeaderFilter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Only requests with a header which matches the specified HeaderMatcher will
	// pass the filter check.
	Header        *v32.HeaderMatcher `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*HeaderFilter) ProtoMessage() {}

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

func (x *HeaderFilter) GetHeader() *v32.HeaderMatcher {
	if x != nil {
		return x.Header
	}
	return nil
}

// Filters requests that received responses with an Envoy response flag set.
// A list of the response flags can be found
// in the access log formatter
// :ref:`documentation<config_access_log_format_response_flags>`.
type ResponseFlagFilter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Only responses with the any of the flags listed in this field will be
	// logged. This field is optional. If it is not specified, then any response
	// flag will pass the filter check.
	Flags         []string `protobuf:"bytes,1,rep,name=flags,proto3" json:"flags,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ResponseFlagFilter) ProtoMessage() {}

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

func (x *ResponseFlagFilter) GetFlags() []string {
	if x != nil {
		return x.Flags
	}
	return nil
}

// Filters gRPC requests based on their response status. If a gRPC status is not
// provided, the filter will infer the status from the HTTP status code.
type GrpcStatusFilter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Logs only responses that have any one of the gRPC statuses in this field.
	Statuses []GrpcStatusFilter_Status `protobuf:"varint,1,rep,packed,name=statuses,proto3,enum=envoy.config.accesslog.v3.GrpcStatusFilter_Status" json:"statuses,omitempty"`
	// If included and set to true, the filter will instead block all responses
	// with a gRPC status or inferred gRPC status enumerated in statuses, and
	// allow all other responses.
	Exclude       bool `protobuf:"varint,2,opt,name=exclude,proto3" json:"exclude,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GrpcStatusFilter) ProtoMessage() {}

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

func (x *GrpcStatusFilter) GetStatuses() []GrpcStatusFilter_Status {
	if x != nil {
		return x.Statuses
	}
	return nil
}

func (x *GrpcStatusFilter) GetExclude() bool {
	if x != nil {
		return x.Exclude
	}
	return false
}

// Filters based on matching dynamic metadata.
// If the matcher path and key correspond to an existing key in dynamic
// metadata, the request is logged only if the matcher value is equal to the
// metadata value. If the matcher path and key *do not* correspond to an
// existing key in dynamic metadata, the request is logged only if
// match_if_key_not_found is "true" or unset.
type MetadataFilter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Matcher to check metadata for specified value. For example, to match on the
	// access_log_hint metadata, set the filter to "envoy.common" and the path to
	// "access_log_hint", and the value to "true".
	Matcher *v33.MetadataMatcher `protobuf:"bytes,1,opt,name=matcher,proto3" json:"matcher,omitempty"`
	// Default result if the key does not exist in dynamic metadata: if unset or
	// true, then log; if false, then don't log.
	MatchIfKeyNotFound *wrapperspb.BoolValue `protobuf:"bytes,2,opt,name=match_if_key_not_found,json=matchIfKeyNotFound,proto3" json:"match_if_key_not_found,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

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

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

func (*MetadataFilter) ProtoMessage() {}

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

func (x *MetadataFilter) GetMatcher() *v33.MetadataMatcher {
	if x != nil {
		return x.Matcher
	}
	return nil
}

func (x *MetadataFilter) GetMatchIfKeyNotFound() *wrapperspb.BoolValue {
	if x != nil {
		return x.MatchIfKeyNotFound
	}
	return nil
}

// Filters based on access log type.
type LogTypeFilter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Logs only records which their type is one of the types defined in this field.
	Types []v34.AccessLogType `protobuf:"varint,1,rep,packed,name=types,proto3,enum=envoy.data.accesslog.v3.AccessLogType" json:"types,omitempty"`
	// If this field is set to true, the filter will instead block all records
	// with a access log type in types field, and allow all other records.
	Exclude       bool `protobuf:"varint,2,opt,name=exclude,proto3" json:"exclude,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*LogTypeFilter) ProtoMessage() {}

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

func (x *LogTypeFilter) GetTypes() []v34.AccessLogType {
	if x != nil {
		return x.Types
	}
	return nil
}

func (x *LogTypeFilter) GetExclude() bool {
	if x != nil {
		return x.Exclude
	}
	return false
}

// Extension filter is statically registered at runtime.
type ExtensionFilter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The name of the filter implementation to instantiate. The name must
	// match a statically registered filter.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Custom configuration that depends on the filter being instantiated.
	//
	// Types that are valid to be assigned to ConfigType:
	//
	//	*ExtensionFilter_TypedConfig
	ConfigType    isExtensionFilter_ConfigType `protobuf_oneof:"config_type"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ExtensionFilter) ProtoMessage() {}

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

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

func (x *ExtensionFilter) GetConfigType() isExtensionFilter_ConfigType {
	if x != nil {
		return x.ConfigType
	}
	return nil
}

func (x *ExtensionFilter) GetTypedConfig() *anypb.Any {
	if x != nil {
		if x, ok := x.ConfigType.(*ExtensionFilter_TypedConfig); ok {
			return x.TypedConfig
		}
	}
	return nil
}

type isExtensionFilter_ConfigType interface {
	isExtensionFilter_ConfigType()
}

type ExtensionFilter_TypedConfig struct {
	TypedConfig *anypb.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"`
}

func (*ExtensionFilter_TypedConfig) isExtensionFilter_ConfigType() {}

var File_envoy_config_accesslog_v3_accesslog_proto protoreflect.FileDescriptor

const file_envoy_config_accesslog_v3_accesslog_proto_rawDesc = "" +
	"\n" +
	")envoy/config/accesslog/v3/accesslog.proto\x12\x19envoy.config.accesslog.v3\x1a\x1fenvoy/config/core/v3/base.proto\x1a,envoy/config/route/v3/route_components.proto\x1a'envoy/data/accesslog/v3/accesslog.proto\x1a$envoy/type/matcher/v3/metadata.proto\x1a\x1benvoy/type/v3/percent.proto\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1dudpa/annotations/status.proto\x1a!udpa/annotations/versioning.proto\x1a\x17validate/validate.proto\"\xee\x01\n" +
	"\tAccessLog\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12B\n" +
	"\x06filter\x18\x02 \x01(\v2*.envoy.config.accesslog.v3.AccessLogFilterR\x06filter\x129\n" +
	"\ftyped_config\x18\x04 \x01(\v2\x14.google.protobuf.AnyH\x00R\vtypedConfig:1\x9aň\x1e,\n" +
	"*envoy.config.filter.accesslog.v2.AccessLogB\r\n" +
	"\vconfig_typeJ\x04\b\x03\x10\x04R\x06config\"\xca\t\n" +
	"\x0fAccessLogFilter\x12[\n" +
	"\x12status_code_filter\x18\x01 \x01(\v2+.envoy.config.accesslog.v3.StatusCodeFilterH\x00R\x10statusCodeFilter\x12T\n" +
	"\x0fduration_filter\x18\x02 \x01(\v2).envoy.config.accesslog.v3.DurationFilterH\x00R\x0edurationFilter\x12h\n" +
	"\x17not_health_check_filter\x18\x03 \x01(\v2/.envoy.config.accesslog.v3.NotHealthCheckFilterH\x00R\x14notHealthCheckFilter\x12W\n" +
	"\x10traceable_filter\x18\x04 \x01(\v2*.envoy.config.accesslog.v3.TraceableFilterH\x00R\x0ftraceableFilter\x12Q\n" +
	"\x0eruntime_filter\x18\x05 \x01(\v2(.envoy.config.accesslog.v3.RuntimeFilterH\x00R\rruntimeFilter\x12E\n" +
	"\n" +
	"and_filter\x18\x06 \x01(\v2$.envoy.config.accesslog.v3.AndFilterH\x00R\tandFilter\x12B\n" +
	"\tor_filter\x18\a \x01(\v2#.envoy.config.accesslog.v3.OrFilterH\x00R\borFilter\x12N\n" +
	"\rheader_filter\x18\b \x01(\v2'.envoy.config.accesslog.v3.HeaderFilterH\x00R\fheaderFilter\x12a\n" +
	"\x14response_flag_filter\x18\t \x01(\v2-.envoy.config.accesslog.v3.ResponseFlagFilterH\x00R\x12responseFlagFilter\x12[\n" +
	"\x12grpc_status_filter\x18\n" +
	" \x01(\v2+.envoy.config.accesslog.v3.GrpcStatusFilterH\x00R\x10grpcStatusFilter\x12W\n" +
	"\x10extension_filter\x18\v \x01(\v2*.envoy.config.accesslog.v3.ExtensionFilterH\x00R\x0fextensionFilter\x12T\n" +
	"\x0fmetadata_filter\x18\f \x01(\v2).envoy.config.accesslog.v3.MetadataFilterH\x00R\x0emetadataFilter\x12R\n" +
	"\x0flog_type_filter\x18\r \x01(\v2(.envoy.config.accesslog.v3.LogTypeFilterH\x00R\rlogTypeFilter:7\x9aň\x1e2\n" +
	"0envoy.config.filter.accesslog.v2.AccessLogFilterB\x17\n" +
	"\x10filter_specifier\x12\x03\xf8B\x01\"\x81\x02\n" +
	"\x10ComparisonFilter\x12H\n" +
	"\x02op\x18\x01 \x01(\x0e2..envoy.config.accesslog.v3.ComparisonFilter.OpB\b\xfaB\x05\x82\x01\x02\x10\x01R\x02op\x12C\n" +
	"\x05value\x18\x02 \x01(\v2#.envoy.config.core.v3.RuntimeUInt32B\b\xfaB\x05\x8a\x01\x02\x10\x01R\x05value\"$\n" +
	"\x02Op\x12\x06\n" +
	"\x02EQ\x10\x00\x12\x06\n" +
	"\x02GE\x10\x01\x12\x06\n" +
	"\x02LE\x10\x02\x12\x06\n" +
	"\x02NE\x10\x03:8\x9aň\x1e3\n" +
	"1envoy.config.filter.accesslog.v2.ComparisonFilter\"\xa3\x01\n" +
	"\x10StatusCodeFilter\x12U\n" +
	"\n" +
	"comparison\x18\x01 \x01(\v2+.envoy.config.accesslog.v3.ComparisonFilterB\b\xfaB\x05\x8a\x01\x02\x10\x01R\n" +
	"comparison:8\x9aň\x1e3\n" +
	"1envoy.config.filter.accesslog.v2.StatusCodeFilter\"\x9f\x01\n" +
	"\x0eDurationFilter\x12U\n" +
	"\n" +
	"comparison\x18\x01 \x01(\v2+.envoy.config.accesslog.v3.ComparisonFilterB\b\xfaB\x05\x8a\x01\x02\x10\x01R\n" +
	"comparison:6\x9aň\x1e1\n" +
	"/envoy.config.filter.accesslog.v2.DurationFilter\"T\n" +
	"\x14NotHealthCheckFilter:<\x9aň\x1e7\n" +
	"5envoy.config.filter.accesslog.v2.NotHealthCheckFilter\"J\n" +
	"\x0fTraceableFilter:7\x9aň\x1e2\n" +
	"0envoy.config.filter.accesslog.v2.TraceableFilter\"\xf9\x01\n" +
	"\rRuntimeFilter\x12(\n" +
	"\vruntime_key\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\n" +
	"runtimeKey\x12I\n" +
	"\x0fpercent_sampled\x18\x02 \x01(\v2 .envoy.type.v3.FractionalPercentR\x0epercentSampled\x12<\n" +
	"\x1ause_independent_randomness\x18\x03 \x01(\bR\x18useIndependentRandomness:5\x9aň\x1e0\n" +
	".envoy.config.filter.accesslog.v2.RuntimeFilter\"\x8e\x01\n" +
	"\tAndFilter\x12N\n" +
	"\afilters\x18\x01 \x03(\v2*.envoy.config.accesslog.v3.AccessLogFilterB\b\xfaB\x05\x92\x01\x02\b\x02R\afilters:1\x9aň\x1e,\n" +
	"*envoy.config.filter.accesslog.v2.AndFilter\"\x8c\x01\n" +
	"\bOrFilter\x12N\n" +
	"\afilters\x18\x02 \x03(\v2*.envoy.config.accesslog.v3.AccessLogFilterB\b\xfaB\x05\x92\x01\x02\b\x02R\afilters:0\x9aň\x1e+\n" +
	")envoy.config.filter.accesslog.v2.OrFilter\"\x8c\x01\n" +
	"\fHeaderFilter\x12F\n" +
	"\x06header\x18\x01 \x01(\v2$.envoy.config.route.v3.HeaderMatcherB\b\xfaB\x05\x8a\x01\x02\x10\x01R\x06header:4\x9aň\x1e/\n" +
	"-envoy.config.filter.accesslog.v2.HeaderFilter\"\xff\x01\n" +
	"\x12ResponseFlagFilter\x12\xac\x01\n" +
	"\x05flags\x18\x01 \x03(\tB\x95\x01\xfaB\x91\x01\x92\x01\x8d\x01\"\x8a\x01r\x87\x01R\x02LHR\x02UHR\x02UTR\x02LRR\x02URR\x02UFR\x02UCR\x02UOR\x02NRR\x02DIR\x02FIR\x02RLR\x04UAEXR\x04RLSER\x02DCR\x03URXR\x02SIR\x02IHR\x03DPER\x05UMSDRR\x04RFCFR\x04NFCFR\x02DTR\x03UPER\x02NCR\x02OMR\x02DFR\x02DOR\x02DRR\x03UDOR\x05flags::\x9aň\x1e5\n" +
	"3envoy.config.filter.accesslog.v2.ResponseFlagFilter\"\x80\x04\n" +
	"\x10GrpcStatusFilter\x12]\n" +
	"\bstatuses\x18\x01 \x03(\x0e22.envoy.config.accesslog.v3.GrpcStatusFilter.StatusB\r\xfaB\n" +
	"\x92\x01\a\"\x05\x82\x01\x02\x10\x01R\bstatuses\x12\x18\n" +
	"\aexclude\x18\x02 \x01(\bR\aexclude\"\xb8\x02\n" +
	"\x06Status\x12\x06\n" +
	"\x02OK\x10\x00\x12\f\n" +
	"\bCANCELED\x10\x01\x12\v\n" +
	"\aUNKNOWN\x10\x02\x12\x14\n" +
	"\x10INVALID_ARGUMENT\x10\x03\x12\x15\n" +
	"\x11DEADLINE_EXCEEDED\x10\x04\x12\r\n" +
	"\tNOT_FOUND\x10\x05\x12\x12\n" +
	"\x0eALREADY_EXISTS\x10\x06\x12\x15\n" +
	"\x11PERMISSION_DENIED\x10\a\x12\x16\n" +
	"\x12RESOURCE_EXHAUSTED\x10\b\x12\x17\n" +
	"\x13FAILED_PRECONDITION\x10\t\x12\v\n" +
	"\aABORTED\x10\n" +
	"\x12\x10\n" +
	"\fOUT_OF_RANGE\x10\v\x12\x11\n" +
	"\rUNIMPLEMENTED\x10\f\x12\f\n" +
	"\bINTERNAL\x10\r\x12\x0f\n" +
	"\vUNAVAILABLE\x10\x0e\x12\r\n" +
	"\tDATA_LOSS\x10\x0f\x12\x13\n" +
	"\x0fUNAUTHENTICATED\x10\x10:8\x9aň\x1e3\n" +
	"1envoy.config.filter.accesslog.v2.GrpcStatusFilter\"\xda\x01\n" +
	"\x0eMetadataFilter\x12@\n" +
	"\amatcher\x18\x01 \x01(\v2&.envoy.type.matcher.v3.MetadataMatcherR\amatcher\x12N\n" +
	"\x16match_if_key_not_found\x18\x02 \x01(\v2\x1a.google.protobuf.BoolValueR\x12matchIfKeyNotFound:6\x9aň\x1e1\n" +
	"/envoy.config.filter.accesslog.v2.MetadataFilter\"v\n" +
	"\rLogTypeFilter\x12K\n" +
	"\x05types\x18\x01 \x03(\x0e2&.envoy.data.accesslog.v3.AccessLogTypeB\r\xfaB\n" +
	"\x92\x01\a\"\x05\x82\x01\x02\x10\x01R\x05types\x12\x18\n" +
	"\aexclude\x18\x02 \x01(\bR\aexclude\"\xb6\x01\n" +
	"\x0fExtensionFilter\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x129\n" +
	"\ftyped_config\x18\x03 \x01(\v2\x14.google.protobuf.AnyH\x00R\vtypedConfig:7\x9aň\x1e2\n" +
	"0envoy.config.filter.accesslog.v2.ExtensionFilterB\r\n" +
	"\vconfig_typeJ\x04\b\x02\x10\x03R\x06configB\x91\x01\xba\x80\xc8\xd1\x06\x02\x10\x02\n" +
	"'io.envoyproxy.envoy.config.accesslog.v3B\x0eAccesslogProtoP\x01ZLgithub.com/envoyproxy/go-control-plane/envoy/config/accesslog/v3;accesslogv3b\x06proto3"

var (
	file_envoy_config_accesslog_v3_accesslog_proto_rawDescOnce sync.Once
	file_envoy_config_accesslog_v3_accesslog_proto_rawDescData []byte
)

func file_envoy_config_accesslog_v3_accesslog_proto_rawDescGZIP() []byte {
	file_envoy_config_accesslog_v3_accesslog_proto_rawDescOnce.Do(func() {
		file_envoy_config_accesslog_v3_accesslog_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_envoy_config_accesslog_v3_accesslog_proto_rawDesc), len(file_envoy_config_accesslog_v3_accesslog_proto_rawDesc)))
	})
	return file_envoy_config_accesslog_v3_accesslog_proto_rawDescData
}

var file_envoy_config_accesslog_v3_accesslog_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_envoy_config_accesslog_v3_accesslog_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
var file_envoy_config_accesslog_v3_accesslog_proto_goTypes = []any{
	(ComparisonFilter_Op)(0),      // 0: envoy.config.accesslog.v3.ComparisonFilter.Op
	(GrpcStatusFilter_Status)(0),  // 1: envoy.config.accesslog.v3.GrpcStatusFilter.Status
	(*AccessLog)(nil),             // 2: envoy.config.accesslog.v3.AccessLog
	(*AccessLogFilter)(nil),       // 3: envoy.config.accesslog.v3.AccessLogFilter
	(*ComparisonFilter)(nil),      // 4: envoy.config.accesslog.v3.ComparisonFilter
	(*StatusCodeFilter)(nil),      // 5: envoy.config.accesslog.v3.StatusCodeFilter
	(*DurationFilter)(nil),        // 6: envoy.config.accesslog.v3.DurationFilter
	(*NotHealthCheckFilter)(nil),  // 7: envoy.config.accesslog.v3.NotHealthCheckFilter
	(*TraceableFilter)(nil),       // 8: envoy.config.accesslog.v3.TraceableFilter
	(*RuntimeFilter)(nil),         // 9: envoy.config.accesslog.v3.RuntimeFilter
	(*AndFilter)(nil),             // 10: envoy.config.accesslog.v3.AndFilter
	(*OrFilter)(nil),              // 11: envoy.config.accesslog.v3.OrFilter
	(*HeaderFilter)(nil),          // 12: envoy.config.accesslog.v3.HeaderFilter
	(*ResponseFlagFilter)(nil),    // 13: envoy.config.accesslog.v3.ResponseFlagFilter
	(*GrpcStatusFilter)(nil),      // 14: envoy.config.accesslog.v3.GrpcStatusFilter
	(*MetadataFilter)(nil),        // 15: envoy.config.accesslog.v3.MetadataFilter
	(*LogTypeFilter)(nil),         // 16: envoy.config.accesslog.v3.LogTypeFilter
	(*ExtensionFilter)(nil),       // 17: envoy.config.accesslog.v3.ExtensionFilter
	(*anypb.Any)(nil),             // 18: google.protobuf.Any
	(*v3.RuntimeUInt32)(nil),      // 19: envoy.config.core.v3.RuntimeUInt32
	(*v31.FractionalPercent)(nil), // 20: envoy.type.v3.FractionalPercent
	(*v32.HeaderMatcher)(nil),     // 21: envoy.config.route.v3.HeaderMatcher
	(*v33.MetadataMatcher)(nil),   // 22: envoy.type.matcher.v3.MetadataMatcher
	(*wrapperspb.BoolValue)(nil),  // 23: google.protobuf.BoolValue
	(v34.AccessLogType)(0),        // 24: envoy.data.accesslog.v3.AccessLogType
}
var file_envoy_config_accesslog_v3_accesslog_proto_depIdxs = []int32{
	3,  // 0: envoy.config.accesslog.v3.AccessLog.filter:type_name -> envoy.config.accesslog.v3.AccessLogFilter
	18, // 1: envoy.config.accesslog.v3.AccessLog.typed_config:type_name -> google.protobuf.Any
	5,  // 2: envoy.config.accesslog.v3.AccessLogFilter.status_code_filter:type_name -> envoy.config.accesslog.v3.StatusCodeFilter
	6,  // 3: envoy.config.accesslog.v3.AccessLogFilter.duration_filter:type_name -> envoy.config.accesslog.v3.DurationFilter
	7,  // 4: envoy.config.accesslog.v3.AccessLogFilter.not_health_check_filter:type_name -> envoy.config.accesslog.v3.NotHealthCheckFilter
	8,  // 5: envoy.config.accesslog.v3.AccessLogFilter.traceable_filter:type_name -> envoy.config.accesslog.v3.TraceableFilter
	9,  // 6: envoy.config.accesslog.v3.AccessLogFilter.runtime_filter:type_name -> envoy.config.accesslog.v3.RuntimeFilter
	10, // 7: envoy.config.accesslog.v3.AccessLogFilter.and_filter:type_name -> envoy.config.accesslog.v3.AndFilter
	11, // 8: envoy.config.accesslog.v3.AccessLogFilter.or_filter:type_name -> envoy.config.accesslog.v3.OrFilter
	12, // 9: envoy.config.accesslog.v3.AccessLogFilter.header_filter:type_name -> envoy.config.accesslog.v3.HeaderFilter
	13, // 10: envoy.config.accesslog.v3.AccessLogFilter.response_flag_filter:type_name -> envoy.config.accesslog.v3.ResponseFlagFilter
	14, // 11: envoy.config.accesslog.v3.AccessLogFilter.grpc_status_filter:type_name -> envoy.config.accesslog.v3.GrpcStatusFilter
	17, // 12: envoy.config.accesslog.v3.AccessLogFilter.extension_filter:type_name -> envoy.config.accesslog.v3.ExtensionFilter
	15, // 13: envoy.config.accesslog.v3.AccessLogFilter.metadata_filter:type_name -> envoy.config.accesslog.v3.MetadataFilter
	16, // 14: envoy.config.accesslog.v3.AccessLogFilter.log_type_filter:type_name -> envoy.config.accesslog.v3.LogTypeFilter
	0,  // 15: envoy.config.accesslog.v3.ComparisonFilter.op:type_name -> envoy.config.accesslog.v3.ComparisonFilter.Op
	19, // 16: envoy.config.accesslog.v3.ComparisonFilter.value:type_name -> envoy.config.core.v3.RuntimeUInt32
	4,  // 17: envoy.config.accesslog.v3.StatusCodeFilter.comparison:type_name -> envoy.config.accesslog.v3.ComparisonFilter
	4,  // 18: envoy.config.accesslog.v3.DurationFilter.comparison:type_name -> envoy.config.accesslog.v3.ComparisonFilter
	20, // 19: envoy.config.accesslog.v3.RuntimeFilter.percent_sampled:type_name -> envoy.type.v3.FractionalPercent
	3,  // 20: envoy.config.accesslog.v3.AndFilter.filters:type_name -> envoy.config.accesslog.v3.AccessLogFilter
	3,  // 21: envoy.config.accesslog.v3.OrFilter.filters:type_name -> envoy.config.accesslog.v3.AccessLogFilter
	21, // 22: envoy.config.accesslog.v3.HeaderFilter.header:type_name -> envoy.config.route.v3.HeaderMatcher
	1,  // 23: envoy.config.accesslog.v3.GrpcStatusFilter.statuses:type_name -> envoy.config.accesslog.v3.GrpcStatusFilter.Status
	22, // 24: envoy.config.accesslog.v3.MetadataFilter.matcher:type_name -> envoy.type.matcher.v3.MetadataMatcher
	23, // 25: envoy.config.accesslog.v3.MetadataFilter.match_if_key_not_found:type_name -> google.protobuf.BoolValue
	24, // 26: envoy.config.accesslog.v3.LogTypeFilter.types:type_name -> envoy.data.accesslog.v3.AccessLogType
	18, // 27: envoy.config.accesslog.v3.ExtensionFilter.typed_config:type_name -> google.protobuf.Any
	28, // [28:28] is the sub-list for method output_type
	28, // [28:28] is the sub-list for method input_type
	28, // [28:28] is the sub-list for extension type_name
	28, // [28:28] is the sub-list for extension extendee
	0,  // [0:28] is the sub-list for field type_name
}

func init() { file_envoy_config_accesslog_v3_accesslog_proto_init() }
func file_envoy_config_accesslog_v3_accesslog_proto_init() {
	if File_envoy_config_accesslog_v3_accesslog_proto != nil {
		return
	}
	file_envoy_config_accesslog_v3_accesslog_proto_msgTypes[0].OneofWrappers = []any{
		(*AccessLog_TypedConfig)(nil),
	}
	file_envoy_config_accesslog_v3_accesslog_proto_msgTypes[1].OneofWrappers = []any{
		(*AccessLogFilter_StatusCodeFilter)(nil),
		(*AccessLogFilter_DurationFilter)(nil),
		(*AccessLogFilter_NotHealthCheckFilter)(nil),
		(*AccessLogFilter_TraceableFilter)(nil),
		(*AccessLogFilter_RuntimeFilter)(nil),
		(*AccessLogFilter_AndFilter)(nil),
		(*AccessLogFilter_OrFilter)(nil),
		(*AccessLogFilter_HeaderFilter)(nil),
		(*AccessLogFilter_ResponseFlagFilter)(nil),
		(*AccessLogFilter_GrpcStatusFilter)(nil),
		(*AccessLogFilter_ExtensionFilter)(nil),
		(*AccessLogFilter_MetadataFilter)(nil),
		(*AccessLogFilter_LogTypeFilter)(nil),
	}
	file_envoy_config_accesslog_v3_accesslog_proto_msgTypes[15].OneofWrappers = []any{
		(*ExtensionFilter_TypedConfig)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_envoy_config_accesslog_v3_accesslog_proto_rawDesc), len(file_envoy_config_accesslog_v3_accesslog_proto_rawDesc)),
			NumEnums:      2,
			NumMessages:   16,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_envoy_config_accesslog_v3_accesslog_proto_goTypes,
		DependencyIndexes: file_envoy_config_accesslog_v3_accesslog_proto_depIdxs,
		EnumInfos:         file_envoy_config_accesslog_v3_accesslog_proto_enumTypes,
		MessageInfos:      file_envoy_config_accesslog_v3_accesslog_proto_msgTypes,
	}.Build()
	File_envoy_config_accesslog_v3_accesslog_proto = out.File
	file_envoy_config_accesslog_v3_accesslog_proto_goTypes = nil
	file_envoy_config_accesslog_v3_accesslog_proto_depIdxs = nil
}
