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

package compressorv3

import (
	_ "github.com/cncf/xds/go/udpa/annotations"
	_ "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)
)

// All the values of this enumeration translate directly to zlib's compression strategies.
// For more information about each strategy, please refer to the
// `zlib manual <https://www.zlib.net/manual.html>`_.
type Gzip_CompressionStrategy int32

const (
	// Default compression strategy.
	Gzip_DEFAULT_STRATEGY Gzip_CompressionStrategy = 0
	// Filtered compression strategy, designed for data produced by a filter or predictor.
	Gzip_FILTERED Gzip_CompressionStrategy = 1
	// Huffman-only compression strategy, which uses Huffman encoding only.
	Gzip_HUFFMAN_ONLY Gzip_CompressionStrategy = 2
	// Run-length encoding (RLE) compression strategy, designed for image data.
	Gzip_RLE Gzip_CompressionStrategy = 3
	// Fixed compression strategy, which prevents the use of dynamic Huffman codes.
	Gzip_FIXED Gzip_CompressionStrategy = 4
)

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

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_compression_gzip_compressor_v3_gzip_proto_enumTypes[0].Descriptor()
}

func (Gzip_CompressionStrategy) Type() protoreflect.EnumType {
	return &file_envoy_extensions_compression_gzip_compressor_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_compression_gzip_compressor_v3_gzip_proto_rawDescGZIP(), []int{0, 0}
}

// Compression level values for zlib. Higher levels provide better compression at the cost of
// increased latency and CPU usage.
type Gzip_CompressionLevel int32

const (
	// Default compression level, equivalent to “COMPRESSION_LEVEL_6“.
	Gzip_DEFAULT_COMPRESSION Gzip_CompressionLevel = 0
	// Fastest compression with minimal compression ratio, equivalent to “COMPRESSION_LEVEL_1“.
	Gzip_BEST_SPEED Gzip_CompressionLevel = 1
	// Compression level 1 (fastest).
	Gzip_COMPRESSION_LEVEL_1 Gzip_CompressionLevel = 1
	// Compression level 2.
	Gzip_COMPRESSION_LEVEL_2 Gzip_CompressionLevel = 2
	// Compression level 3.
	Gzip_COMPRESSION_LEVEL_3 Gzip_CompressionLevel = 3
	// Compression level 4.
	Gzip_COMPRESSION_LEVEL_4 Gzip_CompressionLevel = 4
	// Compression level 5.
	Gzip_COMPRESSION_LEVEL_5 Gzip_CompressionLevel = 5
	// Compression level 6.
	Gzip_COMPRESSION_LEVEL_6 Gzip_CompressionLevel = 6
	// Compression level 7.
	Gzip_COMPRESSION_LEVEL_7 Gzip_CompressionLevel = 7
	// Compression level 8.
	Gzip_COMPRESSION_LEVEL_8 Gzip_CompressionLevel = 8
	// Compression level 9 (best compression).
	Gzip_COMPRESSION_LEVEL_9 Gzip_CompressionLevel = 9
	// Best compression ratio with highest latency, equivalent to “COMPRESSION_LEVEL_9“.
	Gzip_BEST_COMPRESSION Gzip_CompressionLevel = 9
)

// Enum value maps for Gzip_CompressionLevel.
var (
	Gzip_CompressionLevel_name = map[int32]string{
		0: "DEFAULT_COMPRESSION",
		1: "BEST_SPEED",
		// Duplicate value: 1: "COMPRESSION_LEVEL_1",
		2: "COMPRESSION_LEVEL_2",
		3: "COMPRESSION_LEVEL_3",
		4: "COMPRESSION_LEVEL_4",
		5: "COMPRESSION_LEVEL_5",
		6: "COMPRESSION_LEVEL_6",
		7: "COMPRESSION_LEVEL_7",
		8: "COMPRESSION_LEVEL_8",
		9: "COMPRESSION_LEVEL_9",
		// Duplicate value: 9: "BEST_COMPRESSION",
	}
	Gzip_CompressionLevel_value = map[string]int32{
		"DEFAULT_COMPRESSION": 0,
		"BEST_SPEED":          1,
		"COMPRESSION_LEVEL_1": 1,
		"COMPRESSION_LEVEL_2": 2,
		"COMPRESSION_LEVEL_3": 3,
		"COMPRESSION_LEVEL_4": 4,
		"COMPRESSION_LEVEL_5": 5,
		"COMPRESSION_LEVEL_6": 6,
		"COMPRESSION_LEVEL_7": 7,
		"COMPRESSION_LEVEL_8": 8,
		"COMPRESSION_LEVEL_9": 9,
		"BEST_COMPRESSION":    9,
	}
)

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

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

func (Gzip_CompressionLevel) Descriptor() protoreflect.EnumDescriptor {
	return file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_enumTypes[1].Descriptor()
}

func (Gzip_CompressionLevel) Type() protoreflect.EnumType {
	return &file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_enumTypes[1]
}

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

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

// [#next-free-field: 6]
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.
	//
	// Defaults to “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_COMPRESSION“ provides higher compression
	// at the cost of higher latency and is equal to “COMPRESSION_LEVEL_9“. “BEST_SPEED“ provides
	// lower compression with minimum impact on response time, the same as “COMPRESSION_LEVEL_1“.
	// “DEFAULT_COMPRESSION“ provides an optimal result between speed and compression. According
	// to zlib's manual, this level gives the same result as “COMPRESSION_LEVEL_6“.
	//
	// Defaults to “DEFAULT_COMPRESSION“.
	CompressionLevel Gzip_CompressionLevel `protobuf:"varint,2,opt,name=compression_level,json=compressionLevel,proto3,enum=envoy.extensions.compression.gzip.compressor.v3.Gzip_CompressionLevel" 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_STRATEGY“ will be the best choice,
	// though there are situations when changing this parameter might produce better results. For
	// example, run-length encoding (RLE) is typically used when the content is known for having
	// sequences in which the same data occurs many consecutive times. For more information about
	// each strategy, please refer to the `zlib manual <https://www.zlib.net/manual.html>`_.
	//
	// Defaults to “DEFAULT_STRATEGY“.
	CompressionStrategy Gzip_CompressionStrategy `protobuf:"varint,3,opt,name=compression_strategy,json=compressionStrategy,proto3,enum=envoy.extensions.compression.gzip.compressor.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. For more details
	// about this parameter, please refer to the
	// `zlib manual <https://www.zlib.net/manual.html>`_ for “deflateInit2“.
	//
	// Defaults to “12“, which will produce a 4096 bytes window.
	WindowBits *wrapperspb.UInt32Value `protobuf:"bytes,4,opt,name=window_bits,json=windowBits,proto3" json:"window_bits,omitempty"`
	// Value for zlib's next output buffer. See the
	// `zlib manual <https://www.zlib.net/manual.html>`_ for more details. Also see
	// `envoy#8448 <https://github.com/envoyproxy/envoy/issues/8448>`_ for context on this filter's
	// performance.
	//
	// Defaults to “4096“.
	ChunkSize     *wrapperspb.UInt32Value `protobuf:"bytes,5,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_compression_gzip_compressor_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_compression_gzip_compressor_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_compression_gzip_compressor_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 {
	if x != nil {
		return x.CompressionLevel
	}
	return Gzip_DEFAULT_COMPRESSION
}

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

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

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

var File_envoy_extensions_compression_gzip_compressor_v3_gzip_proto protoreflect.FileDescriptor

const file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_rawDesc = "" +
	"\n" +
	":envoy/extensions/compression/gzip/compressor/v3/gzip.proto\x12/envoy.extensions.compression.gzip.compressor.v3\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1dudpa/annotations/status.proto\x1a\x17validate/validate.proto\"\x89\a\n" +
	"\x04Gzip\x12J\n" +
	"\fmemory_level\x18\x01 \x01(\v2\x1c.google.protobuf.UInt32ValueB\t\xfaB\x06*\x04\x18\t(\x01R\vmemoryLevel\x12}\n" +
	"\x11compression_level\x18\x02 \x01(\x0e2F.envoy.extensions.compression.gzip.compressor.v3.Gzip.CompressionLevelB\b\xfaB\x05\x82\x01\x02\x10\x01R\x10compressionLevel\x12\x86\x01\n" +
	"\x14compression_strategy\x18\x03 \x01(\x0e2I.envoy.extensions.compression.gzip.compressor.v3.Gzip.CompressionStrategyB\b\xfaB\x05\x82\x01\x02\x10\x01R\x13compressionStrategy\x12H\n" +
	"\vwindow_bits\x18\x04 \x01(\v2\x1c.google.protobuf.UInt32ValueB\t\xfaB\x06*\x04\x18\x0f(\tR\n" +
	"windowBits\x12I\n" +
	"\n" +
	"chunk_size\x18\x05 \x01(\v2\x1c.google.protobuf.UInt32ValueB\f\xfaB\t*\a\x18\x80\x80\x04(\x80 R\tchunkSize\"_\n" +
	"\x13CompressionStrategy\x12\x14\n" +
	"\x10DEFAULT_STRATEGY\x10\x00\x12\f\n" +
	"\bFILTERED\x10\x01\x12\x10\n" +
	"\fHUFFMAN_ONLY\x10\x02\x12\a\n" +
	"\x03RLE\x10\x03\x12\t\n" +
	"\x05FIXED\x10\x04\"\xb6\x02\n" +
	"\x10CompressionLevel\x12\x17\n" +
	"\x13DEFAULT_COMPRESSION\x10\x00\x12\x0e\n" +
	"\n" +
	"BEST_SPEED\x10\x01\x12\x17\n" +
	"\x13COMPRESSION_LEVEL_1\x10\x01\x12\x17\n" +
	"\x13COMPRESSION_LEVEL_2\x10\x02\x12\x17\n" +
	"\x13COMPRESSION_LEVEL_3\x10\x03\x12\x17\n" +
	"\x13COMPRESSION_LEVEL_4\x10\x04\x12\x17\n" +
	"\x13COMPRESSION_LEVEL_5\x10\x05\x12\x17\n" +
	"\x13COMPRESSION_LEVEL_6\x10\x06\x12\x17\n" +
	"\x13COMPRESSION_LEVEL_7\x10\a\x12\x17\n" +
	"\x13COMPRESSION_LEVEL_8\x10\b\x12\x17\n" +
	"\x13COMPRESSION_LEVEL_9\x10\t\x12\x14\n" +
	"\x10BEST_COMPRESSION\x10\t\x1a\x02\x10\x01B\xb9\x01\xba\x80\xc8\xd1\x06\x02\x10\x02\n" +
	"=io.envoyproxy.envoy.extensions.compression.gzip.compressor.v3B\tGzipProtoP\x01Zcgithub.com/envoyproxy/go-control-plane/envoy/extensions/compression/gzip/compressor/v3;compressorv3b\x06proto3"

var (
	file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_rawDescOnce sync.Once
	file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_rawDescData []byte
)

func file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_rawDescGZIP() []byte {
	file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_rawDescOnce.Do(func() {
		file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_rawDesc), len(file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_rawDesc)))
	})
	return file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_rawDescData
}

var file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_goTypes = []any{
	(Gzip_CompressionStrategy)(0),  // 0: envoy.extensions.compression.gzip.compressor.v3.Gzip.CompressionStrategy
	(Gzip_CompressionLevel)(0),     // 1: envoy.extensions.compression.gzip.compressor.v3.Gzip.CompressionLevel
	(*Gzip)(nil),                   // 2: envoy.extensions.compression.gzip.compressor.v3.Gzip
	(*wrapperspb.UInt32Value)(nil), // 3: google.protobuf.UInt32Value
}
var file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_depIdxs = []int32{
	3, // 0: envoy.extensions.compression.gzip.compressor.v3.Gzip.memory_level:type_name -> google.protobuf.UInt32Value
	1, // 1: envoy.extensions.compression.gzip.compressor.v3.Gzip.compression_level:type_name -> envoy.extensions.compression.gzip.compressor.v3.Gzip.CompressionLevel
	0, // 2: envoy.extensions.compression.gzip.compressor.v3.Gzip.compression_strategy:type_name -> envoy.extensions.compression.gzip.compressor.v3.Gzip.CompressionStrategy
	3, // 3: envoy.extensions.compression.gzip.compressor.v3.Gzip.window_bits:type_name -> google.protobuf.UInt32Value
	3, // 4: envoy.extensions.compression.gzip.compressor.v3.Gzip.chunk_size:type_name -> google.protobuf.UInt32Value
	5, // [5:5] is the sub-list for method output_type
	5, // [5:5] is the sub-list for method input_type
	5, // [5:5] is the sub-list for extension type_name
	5, // [5:5] is the sub-list for extension extendee
	0, // [0:5] is the sub-list for field type_name
}

func init() { file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_init() }
func file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_init() {
	if File_envoy_extensions_compression_gzip_compressor_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_compression_gzip_compressor_v3_gzip_proto_rawDesc), len(file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_rawDesc)),
			NumEnums:      2,
			NumMessages:   1,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_goTypes,
		DependencyIndexes: file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_depIdxs,
		EnumInfos:         file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_enumTypes,
		MessageInfos:      file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_msgTypes,
	}.Build()
	File_envoy_extensions_compression_gzip_compressor_v3_gzip_proto = out.File
	file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_goTypes = nil
	file_envoy_extensions_compression_gzip_compressor_v3_gzip_proto_depIdxs = nil
}
