// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        v7.35.1
// source: envoy/extensions/access_loggers/open_telemetry/v3/logs_service.proto

package open_telemetryv3

import (
	_ "github.com/cncf/xds/go/udpa/annotations"
	_ "github.com/envoyproxy/go-control-plane/envoy/annotations"
	v31 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
	v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/access_loggers/grpc/v3"
	v32 "github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3"
	v1 "go.opentelemetry.io/proto/otlp/common/v1"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	durationpb "google.golang.org/protobuf/types/known/durationpb"
	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)
)

// Configuration for the built-in “envoy.access_loggers.open_telemetry“
// :ref:`AccessLog <envoy_v3_api_msg_config.accesslog.v3.AccessLog>`. This configuration will
// populate `opentelemetry.proto.collector.v1.logs.ExportLogsServiceRequest.resource_logs <https://github.com/open-telemetry/opentelemetry-proto/blob/main/opentelemetry/proto/collector/logs/v1/logs_service.proto>`_.
// In addition, the request start time is set in the dedicated field.
// [#extension: envoy.access_loggers.open_telemetry]
// [#next-free-field: 15]
type OpenTelemetryAccessLogConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [#comment:TODO(itamarkam): add 'filter_state_objects_to_log' to logs.]
	// Deprecated. Use “grpc_service“ or “http_service“ instead.
	//
	// Deprecated: Marked as deprecated in envoy/extensions/access_loggers/open_telemetry/v3/logs_service.proto.
	CommonConfig *v3.CommonGrpcAccessLogConfig `protobuf:"bytes,1,opt,name=common_config,json=commonConfig,proto3" json:"common_config,omitempty"`
	// The upstream HTTP cluster that will receive OTLP logs via
	// `OTLP/HTTP <https://opentelemetry.io/docs/specs/otlp/#otlphttp>`_.
	// Note: Only one of “common_config“, “grpc_service“, or “http_service“ may be used.
	//
	// .. note::
	//
	//	The ``request_headers_to_add`` property in the OTLP HTTP exporter service supports
	//	substitution formatters. The formatters cannot access any HTTP or connection properties, but
	//	can load content such as environment variables or files or secrets.
	HttpService *v31.HttpService `protobuf:"bytes,8,opt,name=http_service,json=httpService,proto3" json:"http_service,omitempty"`
	// The upstream gRPC cluster that will receive OTLP logs.
	// Note: Only one of “common_config“, “grpc_service“, or “http_service“ may be used.
	// This field is preferred over “common_config.grpc_service“.
	GrpcService *v31.GrpcService `protobuf:"bytes,9,opt,name=grpc_service,json=grpcService,proto3" json:"grpc_service,omitempty"`
	// If specified, Envoy will not generate built-in resource labels
	// like “log_name“, “zone_name“, “cluster_name“, “node_name“.
	DisableBuiltinLabels bool `protobuf:"varint,5,opt,name=disable_builtin_labels,json=disableBuiltinLabels,proto3" json:"disable_builtin_labels,omitempty"`
	// OpenTelemetry `Resource <https://github.com/open-telemetry/opentelemetry-proto/blob/main/opentelemetry/proto/logs/v1/logs.proto#L51>`_
	// attributes are filled with Envoy node info.
	// Example: “resource_attributes { values { key: "region" value { string_value: "cn-north-7" } } }“.
	ResourceAttributes *v1.KeyValueList `protobuf:"bytes,4,opt,name=resource_attributes,json=resourceAttributes,proto3" json:"resource_attributes,omitempty"`
	// OpenTelemetry `LogResource <https://github.com/open-telemetry/opentelemetry-proto/blob/main/opentelemetry/proto/logs/v1/logs.proto>`_
	// fields, following `Envoy access logging formatting <https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage>`_.
	//
	// See 'body' in the LogResource proto for more details.
	// Example: “body { string_value: "%PROTOCOL%" }“.
	Body *v1.AnyValue `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"`
	// See 'attributes' in the LogResource proto for more details.
	// Example: “attributes { values { key: "user_agent" value { string_value: "%REQ(USER-AGENT)%" } } }“.
	Attributes *v1.KeyValueList `protobuf:"bytes,3,opt,name=attributes,proto3" json:"attributes,omitempty"`
	// Optional. Additional prefix to use on OpenTelemetry access logger stats. If empty, the stats will be rooted at
	// “access_logs.open_telemetry_access_log.“. If non-empty, stats will be rooted at
	// “access_logs.open_telemetry_access_log.<stat_prefix>.“.
	StatPrefix string `protobuf:"bytes,6,opt,name=stat_prefix,json=statPrefix,proto3" json:"stat_prefix,omitempty"`
	// Specifies a collection of Formatter plugins that can be called from the access log configuration.
	// See the formatters extensions documentation for details.
	// [#extension-category: envoy.formatter]
	Formatters []*v31.TypedExtensionConfig `protobuf:"bytes,7,rep,name=formatters,proto3" json:"formatters,omitempty"`
	LogName    string                      `protobuf:"bytes,10,opt,name=log_name,json=logName,proto3" json:"log_name,omitempty"`
	// The interval for flushing access logs to the transport. Default: 1 second.
	BufferFlushInterval *durationpb.Duration `protobuf:"bytes,11,opt,name=buffer_flush_interval,json=bufferFlushInterval,proto3" json:"buffer_flush_interval,omitempty"`
	// Soft size limit in bytes for the access log buffer. When the buffer exceeds
	// this limit, logs will be flushed. Default: 16KB.
	BufferSizeBytes *wrapperspb.UInt32Value `protobuf:"bytes,12,opt,name=buffer_size_bytes,json=bufferSizeBytes,proto3" json:"buffer_size_bytes,omitempty"`
	// Additional filter state objects to log as attributes.
	FilterStateObjectsToLog []string `protobuf:"bytes,13,rep,name=filter_state_objects_to_log,json=filterStateObjectsToLog,proto3" json:"filter_state_objects_to_log,omitempty"`
	// Custom tags to include as log attributes.
	CustomTags    []*v32.CustomTag `protobuf:"bytes,14,rep,name=custom_tags,json=customTags,proto3" json:"custom_tags,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*OpenTelemetryAccessLogConfig) ProtoMessage() {}

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

// Deprecated: Marked as deprecated in envoy/extensions/access_loggers/open_telemetry/v3/logs_service.proto.
func (x *OpenTelemetryAccessLogConfig) GetCommonConfig() *v3.CommonGrpcAccessLogConfig {
	if x != nil {
		return x.CommonConfig
	}
	return nil
}

func (x *OpenTelemetryAccessLogConfig) GetHttpService() *v31.HttpService {
	if x != nil {
		return x.HttpService
	}
	return nil
}

func (x *OpenTelemetryAccessLogConfig) GetGrpcService() *v31.GrpcService {
	if x != nil {
		return x.GrpcService
	}
	return nil
}

func (x *OpenTelemetryAccessLogConfig) GetDisableBuiltinLabels() bool {
	if x != nil {
		return x.DisableBuiltinLabels
	}
	return false
}

func (x *OpenTelemetryAccessLogConfig) GetResourceAttributes() *v1.KeyValueList {
	if x != nil {
		return x.ResourceAttributes
	}
	return nil
}

func (x *OpenTelemetryAccessLogConfig) GetBody() *v1.AnyValue {
	if x != nil {
		return x.Body
	}
	return nil
}

func (x *OpenTelemetryAccessLogConfig) GetAttributes() *v1.KeyValueList {
	if x != nil {
		return x.Attributes
	}
	return nil
}

func (x *OpenTelemetryAccessLogConfig) GetStatPrefix() string {
	if x != nil {
		return x.StatPrefix
	}
	return ""
}

func (x *OpenTelemetryAccessLogConfig) GetFormatters() []*v31.TypedExtensionConfig {
	if x != nil {
		return x.Formatters
	}
	return nil
}

func (x *OpenTelemetryAccessLogConfig) GetLogName() string {
	if x != nil {
		return x.LogName
	}
	return ""
}

func (x *OpenTelemetryAccessLogConfig) GetBufferFlushInterval() *durationpb.Duration {
	if x != nil {
		return x.BufferFlushInterval
	}
	return nil
}

func (x *OpenTelemetryAccessLogConfig) GetBufferSizeBytes() *wrapperspb.UInt32Value {
	if x != nil {
		return x.BufferSizeBytes
	}
	return nil
}

func (x *OpenTelemetryAccessLogConfig) GetFilterStateObjectsToLog() []string {
	if x != nil {
		return x.FilterStateObjectsToLog
	}
	return nil
}

func (x *OpenTelemetryAccessLogConfig) GetCustomTags() []*v32.CustomTag {
	if x != nil {
		return x.CustomTags
	}
	return nil
}

var File_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto protoreflect.FileDescriptor

const file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_rawDesc = "" +
	"\n" +
	"Denvoy/extensions/access_loggers/open_telemetry/v3/logs_service.proto\x121envoy.extensions.access_loggers.open_telemetry.v3\x1a$envoy/config/core/v3/extension.proto\x1a'envoy/config/core/v3/grpc_service.proto\x1a'envoy/config/core/v3/http_service.proto\x1a1envoy/extensions/access_loggers/grpc/v3/als.proto\x1a&envoy/type/tracing/v3/custom_tag.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a*opentelemetry/proto/common/v1/common.proto\x1a#envoy/annotations/deprecation.proto\x1a\x1dudpa/annotations/status.proto\"\xe0\a\n" +
	"\x1cOpenTelemetryAccessLogConfig\x12t\n" +
	"\rcommon_config\x18\x01 \x01(\v2B.envoy.extensions.access_loggers.grpc.v3.CommonGrpcAccessLogConfigB\v\x92ǆ\xd8\x04\x033.0\x18\x01R\fcommonConfig\x12D\n" +
	"\fhttp_service\x18\b \x01(\v2!.envoy.config.core.v3.HttpServiceR\vhttpService\x12D\n" +
	"\fgrpc_service\x18\t \x01(\v2!.envoy.config.core.v3.GrpcServiceR\vgrpcService\x124\n" +
	"\x16disable_builtin_labels\x18\x05 \x01(\bR\x14disableBuiltinLabels\x12\\\n" +
	"\x13resource_attributes\x18\x04 \x01(\v2+.opentelemetry.proto.common.v1.KeyValueListR\x12resourceAttributes\x12;\n" +
	"\x04body\x18\x02 \x01(\v2'.opentelemetry.proto.common.v1.AnyValueR\x04body\x12K\n" +
	"\n" +
	"attributes\x18\x03 \x01(\v2+.opentelemetry.proto.common.v1.KeyValueListR\n" +
	"attributes\x12\x1f\n" +
	"\vstat_prefix\x18\x06 \x01(\tR\n" +
	"statPrefix\x12J\n" +
	"\n" +
	"formatters\x18\a \x03(\v2*.envoy.config.core.v3.TypedExtensionConfigR\n" +
	"formatters\x12\x19\n" +
	"\blog_name\x18\n" +
	" \x01(\tR\alogName\x12M\n" +
	"\x15buffer_flush_interval\x18\v \x01(\v2\x19.google.protobuf.DurationR\x13bufferFlushInterval\x12H\n" +
	"\x11buffer_size_bytes\x18\f \x01(\v2\x1c.google.protobuf.UInt32ValueR\x0fbufferSizeBytes\x12<\n" +
	"\x1bfilter_state_objects_to_log\x18\r \x03(\tR\x17filterStateObjectsToLog\x12A\n" +
	"\vcustom_tags\x18\x0e \x03(\v2 .envoy.type.tracing.v3.CustomTagR\n" +
	"customTagsB\xc8\x01\xba\x80\xc8\xd1\x06\x02\x10\x02\n" +
	"?io.envoyproxy.envoy.extensions.access_loggers.open_telemetry.v3B\x10LogsServiceProtoP\x01Zigithub.com/envoyproxy/go-control-plane/envoy/extensions/access_loggers/open_telemetry/v3;open_telemetryv3b\x06proto3"

var (
	file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_rawDescOnce sync.Once
	file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_rawDescData []byte
)

func file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_rawDescGZIP() []byte {
	file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_rawDescOnce.Do(func() {
		file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_rawDesc), len(file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_rawDesc)))
	})
	return file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_rawDescData
}

var file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_goTypes = []any{
	(*OpenTelemetryAccessLogConfig)(nil), // 0: envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig
	(*v3.CommonGrpcAccessLogConfig)(nil), // 1: envoy.extensions.access_loggers.grpc.v3.CommonGrpcAccessLogConfig
	(*v31.HttpService)(nil),              // 2: envoy.config.core.v3.HttpService
	(*v31.GrpcService)(nil),              // 3: envoy.config.core.v3.GrpcService
	(*v1.KeyValueList)(nil),              // 4: opentelemetry.proto.common.v1.KeyValueList
	(*v1.AnyValue)(nil),                  // 5: opentelemetry.proto.common.v1.AnyValue
	(*v31.TypedExtensionConfig)(nil),     // 6: envoy.config.core.v3.TypedExtensionConfig
	(*durationpb.Duration)(nil),          // 7: google.protobuf.Duration
	(*wrapperspb.UInt32Value)(nil),       // 8: google.protobuf.UInt32Value
	(*v32.CustomTag)(nil),                // 9: envoy.type.tracing.v3.CustomTag
}
var file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_depIdxs = []int32{
	1,  // 0: envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig.common_config:type_name -> envoy.extensions.access_loggers.grpc.v3.CommonGrpcAccessLogConfig
	2,  // 1: envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig.http_service:type_name -> envoy.config.core.v3.HttpService
	3,  // 2: envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig.grpc_service:type_name -> envoy.config.core.v3.GrpcService
	4,  // 3: envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig.resource_attributes:type_name -> opentelemetry.proto.common.v1.KeyValueList
	5,  // 4: envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig.body:type_name -> opentelemetry.proto.common.v1.AnyValue
	4,  // 5: envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig.attributes:type_name -> opentelemetry.proto.common.v1.KeyValueList
	6,  // 6: envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig.formatters:type_name -> envoy.config.core.v3.TypedExtensionConfig
	7,  // 7: envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig.buffer_flush_interval:type_name -> google.protobuf.Duration
	8,  // 8: envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig.buffer_size_bytes:type_name -> google.protobuf.UInt32Value
	9,  // 9: envoy.extensions.access_loggers.open_telemetry.v3.OpenTelemetryAccessLogConfig.custom_tags:type_name -> envoy.type.tracing.v3.CustomTag
	10, // [10:10] is the sub-list for method output_type
	10, // [10:10] is the sub-list for method input_type
	10, // [10:10] is the sub-list for extension type_name
	10, // [10:10] is the sub-list for extension extendee
	0,  // [0:10] is the sub-list for field type_name
}

func init() { file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_init() }
func file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_init() {
	if File_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_rawDesc), len(file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   1,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_goTypes,
		DependencyIndexes: file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_depIdxs,
		MessageInfos:      file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_msgTypes,
	}.Build()
	File_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto = out.File
	file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_goTypes = nil
	file_envoy_extensions_access_loggers_open_telemetry_v3_logs_service_proto_depIdxs = nil
}
