// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        v7.35.1
// source: envoy/extensions/filters/http/gzip/v3/gzip.proto

package gzipv3

import (
	_ "github.com/cncf/xds/go/udpa/annotations"
	v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/compressor/v3"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	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 Gzip_CompressionStrategy int32

const (
	Gzip_DEFAULT  Gzip_CompressionStrategy = 0
	Gzip_FILTERED Gzip_CompressionStrategy = 1
	Gzip_HUFFMAN  Gzip_CompressionStrategy = 2
	Gzip_RLE      Gzip_CompressionStrategy = 3
)

// Enum value maps for Gzip_CompressionStrategy.
var (
	Gzip_CompressionStrategy_name = map[int32]string{
		0: "DEFAULT",
		1: "FILTERED",
		2: "HUFFMAN",
		3: "RLE",
	}
	Gzip_CompressionStrategy_value = map[string]int32{
		"DEFAULT":  0,
		"FILTERED": 1,
		"HUFFMAN":  2,
		"RLE":      3,
	}
)

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

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

func (Gzip_CompressionStrategy) Descriptor() protoreflect.EnumDescriptor {
	return file_envoy_extensions_filters_http_gzip_v3_gzip_proto_enumTypes[0].Descriptor()
}

func (Gzip_CompressionStrategy) Type() protoreflect.EnumType {
	return &file_envoy_extensions_filters_http_gzip_v3_gzip_proto_enumTypes[0]
}

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

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

type Gzip_CompressionLevel_Enum int32

const (
	Gzip_CompressionLevel_DEFAULT Gzip_CompressionLevel_Enum = 0
	Gzip_CompressionLevel_BEST    Gzip_CompressionLevel_Enum = 1
	Gzip_CompressionLevel_SPEED   Gzip_CompressionLevel_Enum = 2
)

// Enum value maps for Gzip_CompressionLevel_Enum.
var (
	Gzip_CompressionLevel_Enum_name = map[int32]string{
		0: "DEFAULT",
		1: "BEST",
		2: "SPEED",
	}
	Gzip_CompressionLevel_Enum_value = map[string]int32{
		"DEFAULT": 0,
		"BEST":    1,
		"SPEED":   2,
	}
)

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

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

func (Gzip_CompressionLevel_Enum) Descriptor() protoreflect.EnumDescriptor {
	return file_envoy_extensions_filters_http_gzip_v3_gzip_proto_enumTypes[1].Descriptor()
}

func (Gzip_CompressionLevel_Enum) Type() protoreflect.EnumType {
	return &file_envoy_extensions_filters_http_gzip_v3_gzip_proto_enumTypes[1]
}

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

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

// [#next-free-field: 12]
type Gzip struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Value from 1 to 9 that controls the amount of internal memory used by zlib. Higher values
	// use more memory, but are faster and produce better compression results. The default value is 5.
	MemoryLevel *wrapperspb.UInt32Value `protobuf:"bytes,1,opt,name=memory_level,json=memoryLevel,proto3" json:"memory_level,omitempty"`
	// A value used for selecting the zlib compression level. This setting will affect speed and
	// amount of compression applied to the content. "BEST" provides higher compression at the cost of
	// higher latency, "SPEED" provides lower compression with minimum impact on response time.
	// "DEFAULT" provides an optimal result between speed and compression. This field will be set to
	// "DEFAULT" if not specified.
	CompressionLevel Gzip_CompressionLevel_Enum `protobuf:"varint,3,opt,name=compression_level,json=compressionLevel,proto3,enum=envoy.extensions.filters.http.gzip.v3.Gzip_CompressionLevel_Enum" json:"compression_level,omitempty"`
	// A value used for selecting the zlib compression strategy which is directly related to the
	// characteristics of the content. Most of the time "DEFAULT" will be the best choice, though
	// there are situations which changing this parameter might produce better results. For example,
	// run-length encoding (RLE) is typically used when the content is known for having sequences
	// which same data occurs many consecutive times. For more information about each strategy, please
	// refer to zlib manual.
	CompressionStrategy Gzip_CompressionStrategy `protobuf:"varint,4,opt,name=compression_strategy,json=compressionStrategy,proto3,enum=envoy.extensions.filters.http.gzip.v3.Gzip_CompressionStrategy" json:"compression_strategy,omitempty"`
	// Value from 9 to 15 that represents the base two logarithmic of the compressor's window size.
	// Larger window results in better compression at the expense of memory usage. The default is 12
	// which will produce a 4096 bytes window. For more details about this parameter, please refer to
	// zlib manual > deflateInit2.
	WindowBits *wrapperspb.UInt32Value `protobuf:"bytes,9,opt,name=window_bits,json=windowBits,proto3" json:"window_bits,omitempty"`
	// Set of configuration parameters common for all compression filters. You can define
	// “content_length“, “content_type“ and other parameters in this field.
	Compressor *v3.Compressor `protobuf:"bytes,10,opt,name=compressor,proto3" json:"compressor,omitempty"`
	// Value for Zlib's next output buffer. If not set, defaults to 4096.
	// See https://www.zlib.net/manual.html for more details. Also see
	// https://github.com/envoyproxy/envoy/issues/8448 for context on this filter's performance.
	ChunkSize     *wrapperspb.UInt32Value `protobuf:"bytes,11,opt,name=chunk_size,json=chunkSize,proto3" json:"chunk_size,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Gzip) ProtoMessage() {}

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

func (x *Gzip) GetMemoryLevel() *wrapperspb.UInt32Value {
	if x != nil {
		return x.MemoryLevel
	}
	return nil
}

func (x *Gzip) GetCompressionLevel() Gzip_CompressionLevel_Enum {
	if x != nil {
		return x.CompressionLevel
	}
	return Gzip_CompressionLevel_DEFAULT
}

func (x *Gzip) GetCompressionStrategy() Gzip_CompressionStrategy {
	if x != nil {
		return x.CompressionStrategy
	}
	return Gzip_DEFAULT
}

func (x *Gzip) GetWindowBits() *wrapperspb.UInt32Value {
	if x != nil {
		return x.WindowBits
	}
	return nil
}

func (x *Gzip) GetCompressor() *v3.Compressor {
	if x != nil {
		return x.Compressor
	}
	return nil
}

func (x *Gzip) GetChunkSize() *wrapperspb.UInt32Value {
	if x != nil {
		return x.ChunkSize
	}
	return nil
}

type Gzip_CompressionLevel struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Gzip_CompressionLevel) ProtoMessage() {}

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

var File_envoy_extensions_filters_http_gzip_v3_gzip_proto protoreflect.FileDescriptor

const file_envoy_extensions_filters_http_gzip_v3_gzip_proto_rawDesc = "" +
	"\n" +
	"0envoy/extensions/filters/http/gzip/v3/gzip.proto\x12%envoy.extensions.filters.http.gzip.v3\x1a<envoy/extensions/filters/http/compressor/v3/compressor.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1dudpa/annotations/status.proto\x1a!udpa/annotations/versioning.proto\x1a\x17validate/validate.proto\"\x98\a\n" +
	"\x04Gzip\x12J\n" +
	"\fmemory_level\x18\x01 \x01(\v2\x1c.google.protobuf.UInt32ValueB\t\xfaB\x06*\x04\x18\t(\x01R\vmemoryLevel\x12x\n" +
	"\x11compression_level\x18\x03 \x01(\x0e2A.envoy.extensions.filters.http.gzip.v3.Gzip.CompressionLevel.EnumB\b\xfaB\x05\x82\x01\x02\x10\x01R\x10compressionLevel\x12|\n" +
	"\x14compression_strategy\x18\x04 \x01(\x0e2?.envoy.extensions.filters.http.gzip.v3.Gzip.CompressionStrategyB\b\xfaB\x05\x82\x01\x02\x10\x01R\x13compressionStrategy\x12H\n" +
	"\vwindow_bits\x18\t \x01(\v2\x1c.google.protobuf.UInt32ValueB\t\xfaB\x06*\x04\x18\x0f(\tR\n" +
	"windowBits\x12W\n" +
	"\n" +
	"compressor\x18\n" +
	" \x01(\v27.envoy.extensions.filters.http.compressor.v3.CompressorR\n" +
	"compressor\x12I\n" +
	"\n" +
	"chunk_size\x18\v \x01(\v2\x1c.google.protobuf.UInt32ValueB\f\xfaB\t*\a\x18\x80\x80\x04(\x80 R\tchunkSize\x1a{\n" +
	"\x10CompressionLevel\"(\n" +
	"\x04Enum\x12\v\n" +
	"\aDEFAULT\x10\x00\x12\b\n" +
	"\x04BEST\x10\x01\x12\t\n" +
	"\x05SPEED\x10\x02:=\x9aň\x1e8\n" +
	"6envoy.config.filter.http.gzip.v2.Gzip.CompressionLevel\"F\n" +
	"\x13CompressionStrategy\x12\v\n" +
	"\aDEFAULT\x10\x00\x12\f\n" +
	"\bFILTERED\x10\x01\x12\v\n" +
	"\aHUFFMAN\x10\x02\x12\a\n" +
	"\x03RLE\x10\x03:,\x9aň\x1e'\n" +
	"%envoy.config.filter.http.gzip.v2.GzipJ\x04\b\x02\x10\x03J\x04\b\x06\x10\aJ\x04\b\a\x10\bJ\x04\b\b\x10\tR\x0econtent_lengthR\fcontent_typeR\x16disable_on_etag_headerR\x1dremove_accept_encoding_headerB\x9f\x01\xba\x80\xc8\xd1\x06\x02\x10\x02\n" +
	"3io.envoyproxy.envoy.extensions.filters.http.gzip.v3B\tGzipProtoP\x01ZSgithub.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/gzip/v3;gzipv3b\x06proto3"

var (
	file_envoy_extensions_filters_http_gzip_v3_gzip_proto_rawDescOnce sync.Once
	file_envoy_extensions_filters_http_gzip_v3_gzip_proto_rawDescData []byte
)

func file_envoy_extensions_filters_http_gzip_v3_gzip_proto_rawDescGZIP() []byte {
	file_envoy_extensions_filters_http_gzip_v3_gzip_proto_rawDescOnce.Do(func() {
		file_envoy_extensions_filters_http_gzip_v3_gzip_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_envoy_extensions_filters_http_gzip_v3_gzip_proto_rawDesc), len(file_envoy_extensions_filters_http_gzip_v3_gzip_proto_rawDesc)))
	})
	return file_envoy_extensions_filters_http_gzip_v3_gzip_proto_rawDescData
}

var file_envoy_extensions_filters_http_gzip_v3_gzip_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_envoy_extensions_filters_http_gzip_v3_gzip_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_envoy_extensions_filters_http_gzip_v3_gzip_proto_goTypes = []any{
	(Gzip_CompressionStrategy)(0),   // 0: envoy.extensions.filters.http.gzip.v3.Gzip.CompressionStrategy
	(Gzip_CompressionLevel_Enum)(0), // 1: envoy.extensions.filters.http.gzip.v3.Gzip.CompressionLevel.Enum
	(*Gzip)(nil),                    // 2: envoy.extensions.filters.http.gzip.v3.Gzip
	(*Gzip_CompressionLevel)(nil),   // 3: envoy.extensions.filters.http.gzip.v3.Gzip.CompressionLevel
	(*wrapperspb.UInt32Value)(nil),  // 4: google.protobuf.UInt32Value
	(*v3.Compressor)(nil),           // 5: envoy.extensions.filters.http.compressor.v3.Compressor
}
var file_envoy_extensions_filters_http_gzip_v3_gzip_proto_depIdxs = []int32{
	4, // 0: envoy.extensions.filters.http.gzip.v3.Gzip.memory_level:type_name -> google.protobuf.UInt32Value
	1, // 1: envoy.extensions.filters.http.gzip.v3.Gzip.compression_level:type_name -> envoy.extensions.filters.http.gzip.v3.Gzip.CompressionLevel.Enum
	0, // 2: envoy.extensions.filters.http.gzip.v3.Gzip.compression_strategy:type_name -> envoy.extensions.filters.http.gzip.v3.Gzip.CompressionStrategy
	4, // 3: envoy.extensions.filters.http.gzip.v3.Gzip.window_bits:type_name -> google.protobuf.UInt32Value
	5, // 4: envoy.extensions.filters.http.gzip.v3.Gzip.compressor:type_name -> envoy.extensions.filters.http.compressor.v3.Compressor
	4, // 5: envoy.extensions.filters.http.gzip.v3.Gzip.chunk_size:type_name -> google.protobuf.UInt32Value
	6, // [6:6] is the sub-list for method output_type
	6, // [6:6] is the sub-list for method input_type
	6, // [6:6] is the sub-list for extension type_name
	6, // [6:6] is the sub-list for extension extendee
	0, // [0:6] is the sub-list for field type_name
}

func init() { file_envoy_extensions_filters_http_gzip_v3_gzip_proto_init() }
func file_envoy_extensions_filters_http_gzip_v3_gzip_proto_init() {
	if File_envoy_extensions_filters_http_gzip_v3_gzip_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_filters_http_gzip_v3_gzip_proto_rawDesc), len(file_envoy_extensions_filters_http_gzip_v3_gzip_proto_rawDesc)),
			NumEnums:      2,
			NumMessages:   2,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_envoy_extensions_filters_http_gzip_v3_gzip_proto_goTypes,
		DependencyIndexes: file_envoy_extensions_filters_http_gzip_v3_gzip_proto_depIdxs,
		EnumInfos:         file_envoy_extensions_filters_http_gzip_v3_gzip_proto_enumTypes,
		MessageInfos:      file_envoy_extensions_filters_http_gzip_v3_gzip_proto_msgTypes,
	}.Build()
	File_envoy_extensions_filters_http_gzip_v3_gzip_proto = out.File
	file_envoy_extensions_filters_http_gzip_v3_gzip_proto_goTypes = nil
	file_envoy_extensions_filters_http_gzip_v3_gzip_proto_depIdxs = nil
}
