From 33249a1d2109930a109da9a6a3e57edd230af7e0 Mon Sep 17 00:00:00 2001 From: John Howard Date: Tue, 8 Feb 2022 14:39:06 -0800 Subject: [PATCH] Add controls around injected headers This PR adds controls to which headers should be added to requests/responses. This solves (most of) https://github.com/istio/istio/issues/17635, a common feature request. A prototype is implemented in https://github.com/istio/istio/pull/37215. Open questions: * Naming bikeshed * Mesh config or proxy config or something else? Currently its in proxy config * Is a list of ENUMs the best way to represent this? it does allow a strange config like `[REQUEST_ID, REQUEST_ID]` but that can just rejected --- mesh/v1alpha1/istio.mesh.v1alpha1.gen.json | 18 + mesh/v1alpha1/istio.mesh.v1alpha1.pb.html | 67 ++- mesh/v1alpha1/proxy.pb.go | 454 +++++++++++++------- mesh/v1alpha1/proxy.proto | 18 + python/istio_api/mesh/v1alpha1/proxy_pb2.py | 83 +++- 5 files changed, 476 insertions(+), 164 deletions(-) diff --git a/mesh/v1alpha1/istio.mesh.v1alpha1.gen.json b/mesh/v1alpha1/istio.mesh.v1alpha1.gen.json index db4d4d7c81f..19832ad03a6 100644 --- a/mesh/v1alpha1/istio.mesh.v1alpha1.gen.json +++ b/mesh/v1alpha1/istio.mesh.v1alpha1.gen.json @@ -1483,6 +1483,13 @@ }, "image": { "$ref": "#/components/schemas/istio.networking.v1beta1.ProxyImage" + }, + "proxyHeaders": { + "description": "Define the set of headers to add to HTTP request/responses. If an empty list is provided, all are enabled.", + "type": "array", + "items": { + "$ref": "#/components/schemas/istio.mesh.v1alpha1.ProxyConfig.HeaderSpecifier" + } } }, "oneOf": [ @@ -1536,6 +1543,17 @@ } ] }, + "istio.mesh.v1alpha1.ProxyConfig.HeaderSpecifier": { + "type": "string", + "enum": [ + "NO_HEADERS", + "FORWARDED_CLIENT_CERT", + "REQUEST_ID", + "ATTEMPT_COUNT", + "ENVOY_HEADERS", + "SERVER" + ] + }, "istio.mesh.v1alpha1.ProxyConfig.InboundInterceptionMode": { "description": "The mode used to redirect inbound traffic to Envoy. This setting has no effect on outbound traffic: iptables `REDIRECT` is always used for outbound connections.", "type": "string", diff --git a/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html b/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html index 91b4e453240..e0c7ff949f3 100644 --- a/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html +++ b/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html @@ -5,7 +5,7 @@ layout: protoc-gen-docs generator: protoc-gen-docs weight: 20 -number_of_entries: 54 +number_of_entries: 55 ---

Configuration affecting the service mesh as a whole.

@@ -2985,6 +2985,18 @@

ProxyConfig

Specifies the details of the proxy image.

+ + +No + + + +proxyHeaders +HeaderSpecifier[] + +

Define the set of headers to add to HTTP request/responses. If an empty list is provided, +all are enabled.

+ No @@ -3886,6 +3898,59 @@

ProxyConfig.InboundInterceptionMode

The NONE mode does not configure redirect to Envoy at all. This is an advanced configuration that typically requires changes to user applications.

+ + + + + +

ProxyConfig.HeaderSpecifier

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mesh/v1alpha1/proxy.pb.go b/mesh/v1alpha1/proxy.pb.go index 7745a717c09..0a53bbe1a3f 100644 --- a/mesh/v1alpha1/proxy.pb.go +++ b/mesh/v1alpha1/proxy.pb.go @@ -236,6 +236,48 @@ func (ProxyConfig_InboundInterceptionMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor_5efecd978cf3d28d, []int{3, 1} } +type ProxyConfig_HeaderSpecifier int32 + +const ( + ProxyConfig_NO_HEADERS ProxyConfig_HeaderSpecifier = 0 + // Specify to set the `X-Forwarded-Client-Cert` header for mTLS connections + ProxyConfig_FORWARDED_CLIENT_CERT ProxyConfig_HeaderSpecifier = 1 + // Specify to generate a `X-Request-Id` header for a request, if one is not already set + ProxyConfig_REQUEST_ID ProxyConfig_HeaderSpecifier = 2 + // Specify to include the `X-Envoy-Attempt-Count` header for requests. + ProxyConfig_ATTEMPT_COUNT ProxyConfig_HeaderSpecifier = 3 + // Specify to include various `X-Envoy-*` headers, such as `X-Envoy-Overloaded` and `X-Envoy-Upstream-Service-Time. + ProxyConfig_ENVOY_HEADERS ProxyConfig_HeaderSpecifier = 4 + // Specify to include a `Server: envoy` header. + ProxyConfig_SERVER ProxyConfig_HeaderSpecifier = 5 +) + +var ProxyConfig_HeaderSpecifier_name = map[int32]string{ + 0: "NO_HEADERS", + 1: "FORWARDED_CLIENT_CERT", + 2: "REQUEST_ID", + 3: "ATTEMPT_COUNT", + 4: "ENVOY_HEADERS", + 5: "SERVER", +} + +var ProxyConfig_HeaderSpecifier_value = map[string]int32{ + "NO_HEADERS": 0, + "FORWARDED_CLIENT_CERT": 1, + "REQUEST_ID": 2, + "ATTEMPT_COUNT": 3, + "ENVOY_HEADERS": 4, + "SERVER": 5, +} + +func (x ProxyConfig_HeaderSpecifier) String() string { + return proto.EnumName(ProxyConfig_HeaderSpecifier_name, int32(x)) +} + +func (ProxyConfig_HeaderSpecifier) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_5efecd978cf3d28d, []int{3, 2} +} + // Tracing defines configuration for the tracing performed by Envoy instances. type Tracing struct { // The tracer implementation to be used by Envoy. @@ -1306,10 +1348,13 @@ type ProxyConfig struct { // are added automatically by Istiod. CaCertificatesPem []string `protobuf:"bytes,34,rep,name=ca_certificates_pem,json=caCertificatesPem,proto3" json:"caCertificatesPem,omitempty"` // Specifies the details of the proxy image. - Image *v1beta1.ProxyImage `protobuf:"bytes,35,opt,name=image,proto3" json:"image,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Image *v1beta1.ProxyImage `protobuf:"bytes,35,opt,name=image,proto3" json:"image,omitempty"` + // Define the set of headers to add to HTTP request/responses. If an empty list is provided, + // all are enabled. + ProxyHeaders []ProxyConfig_HeaderSpecifier `protobuf:"varint,37,rep,packed,name=proxy_headers,json=proxyHeaders,proto3,enum=istio.mesh.v1alpha1.ProxyConfig_HeaderSpecifier" json:"proxyHeaders,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ProxyConfig) Reset() { *m = ProxyConfig{} } @@ -1610,6 +1655,13 @@ func (m *ProxyConfig) GetImage() *v1beta1.ProxyImage { return nil } +func (m *ProxyConfig) GetProxyHeaders() []ProxyConfig_HeaderSpecifier { + if m != nil { + return m.ProxyHeaders + } + return nil +} + // XXX_OneofWrappers is for the internal use of the proto package. func (*ProxyConfig) XXX_OneofWrappers() []interface{} { return []interface{}{ @@ -1762,6 +1814,7 @@ func init() { proto.RegisterEnum("istio.mesh.v1alpha1.Topology_ForwardClientCertDetails", Topology_ForwardClientCertDetails_name, Topology_ForwardClientCertDetails_value) proto.RegisterEnum("istio.mesh.v1alpha1.ProxyConfig_TracingServiceName", ProxyConfig_TracingServiceName_name, ProxyConfig_TracingServiceName_value) proto.RegisterEnum("istio.mesh.v1alpha1.ProxyConfig_InboundInterceptionMode", ProxyConfig_InboundInterceptionMode_name, ProxyConfig_InboundInterceptionMode_value) + proto.RegisterEnum("istio.mesh.v1alpha1.ProxyConfig_HeaderSpecifier", ProxyConfig_HeaderSpecifier_name, ProxyConfig_HeaderSpecifier_value) proto.RegisterType((*Tracing)(nil), "istio.mesh.v1alpha1.Tracing") proto.RegisterMapType((map[string]*Tracing_CustomTag)(nil), "istio.mesh.v1alpha1.Tracing.CustomTagsEntry") proto.RegisterType((*Tracing_Zipkin)(nil), "istio.mesh.v1alpha1.Tracing.Zipkin") @@ -1784,151 +1837,158 @@ func init() { func init() { proto.RegisterFile("mesh/v1alpha1/proxy.proto", fileDescriptor_5efecd978cf3d28d) } var fileDescriptor_5efecd978cf3d28d = []byte{ - // 2295 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0xdd, 0x52, 0x1b, 0xc9, - 0x15, 0x46, 0xe2, 0x57, 0x07, 0x10, 0xa2, 0x01, 0x33, 0x96, 0xff, 0x58, 0xd9, 0xbb, 0x85, 0x9d, - 0x5d, 0x51, 0x6b, 0x52, 0x2e, 0x67, 0x2b, 0x4e, 0x59, 0x48, 0x22, 0x92, 0x23, 0x84, 0x6a, 0x24, - 0xec, 0x5d, 0xf6, 0xa2, 0xab, 0x35, 0xd3, 0x92, 0x26, 0xcc, 0x4c, 0x4f, 0x7a, 0x7a, 0x00, 0xed, - 0x13, 0xe4, 0x29, 0x72, 0x97, 0xdb, 0x3c, 0x41, 0x1e, 0x20, 0x97, 0x79, 0x83, 0xa4, 0x7c, 0x93, - 0xa4, 0xf2, 0x12, 0xa9, 0xee, 0x9e, 0x11, 0x12, 0x60, 0xe1, 0x24, 0x77, 0x9a, 0x73, 0xbe, 0xef, - 0x9b, 0xee, 0x33, 0xe7, 0x9c, 0x3e, 0x2d, 0xb8, 0xef, 0xd1, 0x70, 0xb0, 0x77, 0xfe, 0x2d, 0x71, - 0x83, 0x01, 0xf9, 0x76, 0x2f, 0xe0, 0xec, 0x72, 0x58, 0x0c, 0x38, 0x13, 0x0c, 0x6d, 0x38, 0xa1, - 0x70, 0x58, 0x51, 0x02, 0x8a, 0x09, 0x20, 0xff, 0xb8, 0xcf, 0x58, 0xdf, 0xa5, 0x7b, 0x0a, 0xd2, - 0x8d, 0x7a, 0x7b, 0x76, 0xc4, 0x89, 0x70, 0x98, 0xaf, 0x49, 0x37, 0xfd, 0x17, 0x9c, 0x04, 0x01, - 0xe5, 0x61, 0xec, 0x7f, 0xe1, 0x53, 0x71, 0xc1, 0xf8, 0x99, 0xe3, 0xf7, 0x93, 0xb7, 0xee, 0xef, - 0xd9, 0x34, 0x14, 0x8e, 0xaf, 0x64, 0x30, 0x8f, 0x5c, 0x1a, 0x63, 0x77, 0x6f, 0xc3, 0x4a, 0x83, - 0xcb, 0x88, 0x8d, 0xfb, 0x9c, 0x45, 0x41, 0x8c, 0xfc, 0x72, 0x02, 0xd9, 0xa5, 0x22, 0xd9, 0x0a, - 0xb6, 0x98, 0xdf, 0x73, 0xfa, 0x1a, 0x56, 0xf8, 0x63, 0x16, 0x16, 0x3b, 0x9c, 0x58, 0x8e, 0xdf, - 0x47, 0x6f, 0x60, 0xe1, 0x27, 0x27, 0x38, 0x73, 0x7c, 0x23, 0xb5, 0x93, 0xda, 0x5d, 0x7e, 0xf9, - 0xb4, 0x78, 0xcb, 0x76, 0x8b, 0x31, 0xba, 0x78, 0xaa, 0xa0, 0xb5, 0x19, 0x33, 0x26, 0xa1, 0x43, - 0xc8, 0xb8, 0x4e, 0x7f, 0x20, 0x42, 0x41, 0x03, 0x23, 0xad, 0x14, 0xbe, 0x9a, 0xaa, 0xd0, 0x48, - 0xd0, 0xb5, 0x19, 0xf3, 0x8a, 0x8a, 0xde, 0xc2, 0xa2, 0x4d, 0x04, 0xb1, 0x59, 0xdf, 0x98, 0x55, - 0x2a, 0xcf, 0xa6, 0xaa, 0x54, 0x34, 0xb6, 0x36, 0x63, 0x26, 0x34, 0xd4, 0x80, 0xe5, 0x50, 0x10, - 0xeb, 0xcc, 0xe6, 0xce, 0x39, 0xe5, 0xc6, 0x9c, 0x52, 0xd9, 0x9d, 0xaa, 0xd2, 0xbe, 0xc2, 0xd7, - 0x66, 0xcc, 0x71, 0x3a, 0x3a, 0x85, 0x75, 0x16, 0x50, 0x1f, 0x5b, 0xd4, 0x0f, 0xa3, 0x10, 0x93, - 0x3e, 0xf5, 0x85, 0x91, 0x51, 0x9a, 0x5f, 0x4f, 0xd5, 0x3c, 0x0e, 0xa8, 0x5f, 0x56, 0xa4, 0x92, - 0xe4, 0xd4, 0x66, 0xcc, 0x35, 0x36, 0x69, 0x42, 0x47, 0xb0, 0x6c, 0x45, 0xa1, 0x60, 0x1e, 0x16, - 0xa4, 0x1f, 0x1a, 0xf3, 0x3b, 0xb3, 0x77, 0xaa, 0x96, 0x15, 0xbe, 0x43, 0xfa, 0x61, 0xd5, 0x17, - 0x7c, 0x68, 0x82, 0x35, 0x32, 0xa0, 0x6f, 0x60, 0xc3, 0x23, 0x97, 0x38, 0x20, 0x62, 0x20, 0x05, - 0xb1, 0x4b, 0xfd, 0xbe, 0x18, 0x18, 0x0b, 0x3b, 0xa9, 0xdd, 0x55, 0x33, 0xe7, 0x91, 0xcb, 0x16, - 0x11, 0x83, 0x0e, 0xe9, 0x37, 0x94, 0x1d, 0xe5, 0x61, 0x29, 0x24, 0x5e, 0xe0, 0x3a, 0x7e, 0xdf, - 0x58, 0xdc, 0x49, 0xed, 0xa6, 0xcc, 0xd1, 0x33, 0x3a, 0x86, 0x15, 0xe1, 0x86, 0x38, 0xa4, 0x42, - 0x38, 0x7e, 0x3f, 0x34, 0x96, 0x26, 0x36, 0x7c, 0x95, 0x5c, 0xc9, 0x02, 0xf7, 0x8b, 0x65, 0xd7, - 0xa1, 0xbe, 0xe8, 0x34, 0xda, 0xed, 0x98, 0x63, 0x2e, 0x0b, 0x37, 0x4c, 0x1e, 0xf2, 0x05, 0x58, - 0xd0, 0x29, 0x83, 0x0c, 0x58, 0x24, 0xb6, 0xcd, 0x69, 0x18, 0xaa, 0x44, 0xcb, 0x98, 0xc9, 0x63, - 0xbe, 0x06, 0x99, 0x51, 0x52, 0x7c, 0x1a, 0x86, 0xbe, 0x80, 0x15, 0x62, 0x59, 0x34, 0x0c, 0xb1, - 0x60, 0x67, 0xd4, 0x57, 0xc9, 0x96, 0x31, 0x97, 0xb5, 0xad, 0x23, 0x4d, 0xf9, 0xa7, 0xb0, 0x18, - 0x27, 0xc6, 0x94, 0xd7, 0xfd, 0x29, 0x0d, 0xcb, 0x63, 0x1f, 0x1e, 0x6d, 0xc2, 0xbc, 0x4d, 0xbb, - 0x51, 0x5f, 0xe1, 0x96, 0x4c, 0xfd, 0x80, 0x3a, 0x60, 0xc8, 0xa0, 0xfa, 0x91, 0xd7, 0xa5, 0x1c, - 0xb3, 0x1e, 0x26, 0x42, 0x70, 0xa7, 0x1b, 0x09, 0x1a, 0xc6, 0x69, 0xfe, 0xa0, 0xa8, 0x4b, 0xbc, - 0x98, 0x94, 0x78, 0xb1, 0xee, 0x8b, 0x57, 0x3f, 0x7f, 0x4f, 0xdc, 0x88, 0x9a, 0x5b, 0x1e, 0xb9, - 0x6c, 0x2a, 0xee, 0x71, 0xaf, 0x34, 0x62, 0xa2, 0xf7, 0x70, 0xff, 0x9a, 0xaa, 0xef, 0x33, 0xa1, - 0x0a, 0x3e, 0x8c, 0xf3, 0x7e, 0xaa, 0xec, 0xbd, 0x71, 0xd9, 0x2b, 0x2a, 0xfa, 0x11, 0x1e, 0x4e, - 0xea, 0x7a, 0x34, 0x0c, 0x49, 0x9f, 0x62, 0x7a, 0x4e, 0x7d, 0x11, 0xc6, 0xc5, 0x30, 0x55, 0xda, - 0x18, 0x93, 0x3e, 0xd2, 0xec, 0xaa, 0x22, 0xe7, 0xff, 0x91, 0x82, 0xb5, 0x6b, 0x59, 0x3d, 0xe5, - 0x33, 0xb5, 0x61, 0xd1, 0x62, 0xbe, 0xa0, 0x97, 0xc2, 0x48, 0xef, 0xcc, 0xee, 0x66, 0x5f, 0xfe, - 0xe2, 0xbf, 0x29, 0x17, 0x65, 0xa7, 0x65, 0x2d, 0x60, 0x26, 0x4a, 0x05, 0x0a, 0x2b, 0xe3, 0x0e, - 0xb4, 0x06, 0xcb, 0x27, 0xcd, 0x76, 0xab, 0x5a, 0xae, 0x1f, 0xd6, 0xab, 0x95, 0xdc, 0x0c, 0xda, - 0x82, 0xf5, 0x0f, 0xfb, 0x65, 0xdc, 0x31, 0x4b, 0xe5, 0x2a, 0x2e, 0x1f, 0x37, 0x3b, 0xd5, 0xef, - 0x3b, 0xb9, 0x14, 0x5a, 0x81, 0xa5, 0x5f, 0x9b, 0xad, 0x32, 0x3e, 0xa8, 0x37, 0x73, 0x69, 0xb4, - 0x0d, 0x1b, 0xe5, 0xc6, 0xf1, 0x49, 0xe5, 0x1a, 0x6c, 0x16, 0x2d, 0x40, 0xfa, 0x60, 0x3f, 0x37, - 0x97, 0xff, 0x57, 0x0a, 0x32, 0xa3, 0x4a, 0x93, 0x2d, 0xc9, 0x75, 0x04, 0xe5, 0xc4, 0x8d, 0x5b, - 0xe3, 0xb3, 0x3b, 0x1a, 0x9b, 0xc2, 0xca, 0x96, 0x14, 0xd3, 0x64, 0x4b, 0xa2, 0xfe, 0xb9, 0xc3, - 0x99, 0xef, 0xc9, 0xf6, 0x91, 0xfe, 0x8c, 0x96, 0x54, 0xbd, 0xc2, 0xcb, 0x96, 0x34, 0x46, 0x47, - 0x15, 0x58, 0x18, 0x50, 0x62, 0x53, 0x1e, 0x67, 0xca, 0x8b, 0xa9, 0x42, 0x26, 0xfd, 0x5d, 0x44, - 0x43, 0x51, 0x53, 0x0c, 0xd9, 0xb0, 0x35, 0xf7, 0x60, 0x01, 0xe6, 0xc4, 0x30, 0xa0, 0xf9, 0x27, - 0xb0, 0x18, 0xaf, 0x58, 0x56, 0xc0, 0xb9, 0xcc, 0x81, 0xf8, 0x53, 0xea, 0x87, 0xfc, 0x21, 0x2c, - 0x8f, 0x2d, 0x06, 0x21, 0x98, 0xf3, 0x89, 0x97, 0x60, 0xd4, 0x6f, 0xf4, 0x14, 0x56, 0x6d, 0xda, - 0x23, 0x91, 0x2b, 0xb0, 0x16, 0xd0, 0x35, 0xb9, 0x12, 0x1b, 0x55, 0x62, 0xe5, 0x6b, 0xb0, 0x3a, - 0xb1, 0x96, 0xff, 0x5d, 0x89, 0xc2, 0xda, 0xb5, 0x3e, 0x88, 0x72, 0x30, 0x7b, 0x46, 0x87, 0xb1, - 0x94, 0xfc, 0x89, 0x7e, 0x99, 0x6c, 0xe6, 0x73, 0x0e, 0xa3, 0x91, 0x5c, 0xbc, 0xe9, 0xef, 0xd2, - 0xaf, 0x53, 0x07, 0x4b, 0xb0, 0x20, 0x64, 0xb2, 0xf1, 0xc2, 0x21, 0xcc, 0xb6, 0x2b, 0x6d, 0x99, - 0xec, 0xd4, 0x27, 0x5d, 0x97, 0xda, 0x71, 0x8f, 0x48, 0x1e, 0xd1, 0x97, 0xb0, 0x76, 0xf6, 0x3a, - 0xc4, 0x21, 0xc1, 0xbf, 0xbd, 0x10, 0xaa, 0x03, 0x27, 0x0b, 0x3f, 0x7b, 0x1d, 0xb6, 0xc9, 0xbb, - 0x0b, 0x21, 0x7b, 0x6f, 0xe1, 0xcf, 0x69, 0x58, 0xea, 0xb0, 0x80, 0xb9, 0xac, 0x3f, 0x44, 0x45, - 0xd8, 0xf0, 0x23, 0x0f, 0x0b, 0x1e, 0x85, 0x82, 0xda, 0x58, 0x1e, 0xcf, 0x0e, 0xd5, 0x65, 0xb4, - 0x6a, 0xae, 0xfb, 0x91, 0xd7, 0xd1, 0x9e, 0x96, 0x76, 0xa0, 0x08, 0x1e, 0xf4, 0x18, 0xbf, 0x20, - 0xdc, 0xc6, 0x96, 0x6a, 0xb6, 0xd8, 0xa2, 0x5c, 0x60, 0x9b, 0x0a, 0xe2, 0xb8, 0xba, 0x19, 0x65, - 0x5f, 0xbe, 0xba, 0x7d, 0x9b, 0xf1, 0x3b, 0x8b, 0x87, 0x5a, 0x40, 0x37, 0xeb, 0x32, 0xe5, 0xa2, - 0xa2, 0xd9, 0xa6, 0xd1, 0xfb, 0x84, 0xa7, 0xf0, 0xfb, 0x14, 0x18, 0x9f, 0xa2, 0xa1, 0x55, 0xc8, - 0x9c, 0x34, 0x2b, 0xd5, 0xc3, 0x7a, 0x53, 0x55, 0xdf, 0x0a, 0x2c, 0xb5, 0x4b, 0xcd, 0x7a, 0xa7, - 0x7e, 0x5a, 0xcd, 0xa5, 0x50, 0x0e, 0x56, 0x0e, 0x8f, 0xcd, 0x0f, 0x25, 0xb3, 0x82, 0x8f, 0x9b, - 0x8d, 0x1f, 0x72, 0x69, 0x84, 0x20, 0x5b, 0x6a, 0xb5, 0xaa, 0xcd, 0x0a, 0x8e, 0x1d, 0xb9, 0x59, - 0x89, 0x4a, 0x38, 0xb8, 0x5d, 0xed, 0xe4, 0xe6, 0x64, 0x79, 0x96, 0x1a, 0x1f, 0x4a, 0x3f, 0xb4, - 0xf1, 0x04, 0x7d, 0xbe, 0xf0, 0xb7, 0x4d, 0x58, 0x96, 0xd1, 0x18, 0x96, 0xd5, 0x10, 0x83, 0x9e, - 0xc0, 0xb2, 0x1e, 0x67, 0x74, 0xc4, 0xf5, 0xc7, 0x07, 0x6d, 0x92, 0xf1, 0x96, 0x80, 0xae, 0xe3, - 0x13, 0x3e, 0x1c, 0xff, 0x24, 0xa0, 0x4d, 0x0a, 0xf0, 0x1c, 0xd6, 0x42, 0xca, 0xcf, 0x1d, 0x8b, - 0x62, 0xcb, 0x95, 0xd1, 0xd6, 0x35, 0x95, 0xa9, 0xcd, 0x98, 0xd9, 0xd8, 0x51, 0xd6, 0x76, 0xd4, - 0x87, 0x4d, 0xa1, 0xb3, 0x05, 0x27, 0x14, 0x95, 0xbd, 0xcf, 0x54, 0xdc, 0xf7, 0x6f, 0x8d, 0xfb, - 0xd8, 0x62, 0x93, 0x54, 0x6b, 0x6b, 0x6e, 0x93, 0x78, 0xb4, 0x36, 0x63, 0x22, 0x71, 0xc3, 0x8a, - 0xde, 0x42, 0xd6, 0xe6, 0xc4, 0xf1, 0x71, 0x32, 0x49, 0xc6, 0x5d, 0xfb, 0xfe, 0x8d, 0xae, 0x5d, - 0x89, 0x01, 0xe6, 0xaa, 0x22, 0x24, 0x8f, 0xa8, 0x0d, 0x46, 0x40, 0xb8, 0xcc, 0x90, 0x70, 0x10, - 0x09, 0x9b, 0x5d, 0x8c, 0x69, 0xcd, 0xdf, 0xa5, 0x75, 0x4f, 0x53, 0xdb, 0x31, 0x73, 0x24, 0xfa, - 0x33, 0x58, 0xb7, 0x9d, 0xd0, 0x62, 0xe7, 0x94, 0x0f, 0x71, 0xd2, 0xf3, 0x17, 0x54, 0x44, 0x73, - 0x23, 0x47, 0x29, 0x6e, 0xfe, 0x27, 0xb0, 0x7d, 0x05, 0xe6, 0xb4, 0xc7, 0x69, 0x38, 0xc0, 0x36, - 0x75, 0xc9, 0x50, 0x8d, 0x1a, 0xd3, 0x16, 0x70, 0x90, 0x36, 0x52, 0xe6, 0xd6, 0x88, 0x6d, 0x6a, - 0x72, 0x45, 0x72, 0xd1, 0x73, 0xc8, 0xea, 0x71, 0x73, 0xb4, 0x00, 0x39, 0x98, 0x64, 0x14, 0x65, - 0x55, 0x7b, 0x92, 0x15, 0x7c, 0x0d, 0x28, 0x14, 0x44, 0x84, 0x36, 0x8e, 0xec, 0x60, 0x04, 0x07, - 0xbd, 0x5e, 0xed, 0x39, 0xb1, 0x83, 0x04, 0x5d, 0x85, 0x47, 0xd4, 0x3f, 0x67, 0x43, 0xec, 0x51, - 0xc1, 0x1d, 0x2b, 0x1c, 0x7d, 0xe2, 0x84, 0xb8, 0x39, 0x7a, 0x4f, 0x5e, 0x01, 0x8f, 0x34, 0x2e, - 0xfe, 0x6e, 0x89, 0xcc, 0x2e, 0xe4, 0xf4, 0x94, 0x4d, 0x6c, 0xcf, 0xf1, 0x71, 0xc0, 0xb8, 0x30, - 0x96, 0x77, 0x52, 0xbb, 0xf3, 0x66, 0x56, 0xd9, 0x4b, 0xd2, 0xdc, 0x62, 0x5c, 0xa0, 0x3d, 0x58, - 0x27, 0xe7, 0xc4, 0x71, 0x49, 0xd7, 0x71, 0x1d, 0x31, 0xc4, 0x3f, 0x31, 0x9f, 0x1a, 0x2b, 0xa3, - 0x97, 0xe4, 0xc6, 0x9d, 0xa7, 0xcc, 0xa7, 0xc8, 0x86, 0xfb, 0xf2, 0x10, 0xe4, 0xcc, 0xc5, 0x81, - 0x4b, 0x7c, 0x8a, 0x49, 0x24, 0x06, 0x38, 0x60, 0xae, 0x63, 0x0d, 0x8d, 0x55, 0x95, 0x83, 0xcf, - 0x6f, 0xcd, 0xc1, 0x52, 0x24, 0x06, 0xd4, 0x17, 0x8e, 0xa5, 0xa2, 0xdb, 0x52, 0x04, 0xf3, 0x5e, - 0xac, 0xd5, 0x92, 0x52, 0x12, 0xa1, 0xed, 0x32, 0x6a, 0xf1, 0x44, 0x1a, 0x17, 0x56, 0xcf, 0x71, - 0xa9, 0x91, 0xd5, 0x51, 0xd3, 0x1e, 0x9d, 0xce, 0x87, 0x8e, 0x4b, 0xe5, 0x76, 0x65, 0x24, 0x55, - 0x1d, 0x24, 0xd3, 0xe6, 0x9a, 0xde, 0xae, 0xb4, 0xcb, 0x6c, 0x8e, 0x67, 0xcd, 0x37, 0xaa, 0x52, - 0xad, 0x88, 0x73, 0xea, 0x5b, 0x43, 0x23, 0xf7, 0xe9, 0x31, 0x64, 0xff, 0xa5, 0x1e, 0x43, 0xc6, - 0xf1, 0xa8, 0x04, 0x8f, 0x74, 0x5c, 0xbb, 0x8c, 0x89, 0x50, 0x70, 0x12, 0x60, 0x41, 0xbd, 0xc0, - 0x25, 0x82, 0xea, 0xca, 0x5e, 0x57, 0x2b, 0xcc, 0x2b, 0xd0, 0x41, 0x82, 0xe9, 0xc4, 0x10, 0x55, - 0xe9, 0x14, 0xd6, 0x1d, 0x5f, 0x50, 0x6e, 0xd1, 0x40, 0x5d, 0xab, 0x3c, 0x66, 0x53, 0x03, 0xa9, - 0xb8, 0xbd, 0xbe, 0xb3, 0x76, 0xeb, 0x7e, 0x97, 0x45, 0xbe, 0x5d, 0x1f, 0x13, 0x38, 0x62, 0x36, - 0x35, 0x73, 0xce, 0x35, 0x0b, 0x7a, 0x05, 0x8b, 0x71, 0x49, 0x1b, 0x1b, 0x6a, 0x93, 0x0f, 0xa7, - 0x9d, 0x3b, 0x66, 0x02, 0x46, 0x2f, 0x60, 0x36, 0xb4, 0x43, 0x63, 0x4b, 0x71, 0x8c, 0x5b, 0x39, - 0xed, 0x4a, 0xdb, 0x94, 0x20, 0xf4, 0x23, 0x18, 0x3a, 0x59, 0xe3, 0x31, 0xd8, 0x65, 0xa3, 0x96, - 0x64, 0xdc, 0x53, 0x02, 0x85, 0x5b, 0x05, 0x4c, 0xea, 0x31, 0x41, 0xe3, 0x94, 0x35, 0xb7, 0x94, - 0x46, 0x49, 0x49, 0x34, 0x58, 0xd2, 0x81, 0xd0, 0x7b, 0xd8, 0xba, 0xb5, 0x12, 0x8c, 0xed, 0xcf, - 0x56, 0xde, 0xb8, 0xa5, 0x42, 0xd0, 0x29, 0xe8, 0x12, 0x90, 0xba, 0x44, 0x5e, 0xd5, 0x0c, 0x43, - 0x5d, 0x77, 0xee, 0x6e, 0x9c, 0xea, 0xf7, 0x51, 0xcc, 0xd2, 0xb7, 0x9e, 0xd5, 0x60, 0xdc, 0x26, - 0xdb, 0xbc, 0xcc, 0xb7, 0x28, 0xd4, 0x15, 0x97, 0x57, 0x29, 0x08, 0xda, 0xa4, 0xaa, 0xed, 0x2b, - 0x58, 0xa3, 0x97, 0x82, 0x13, 0xac, 0xd2, 0x55, 0x5d, 0xb6, 0x1e, 0xec, 0xcc, 0xee, 0x66, 0xcc, - 0x55, 0x65, 0x6e, 0x0b, 0x22, 0xd4, 0x0d, 0xaa, 0x06, 0xb9, 0x3e, 0x11, 0xf4, 0x82, 0x0c, 0xb1, - 0x88, 0x8f, 0x4c, 0xe3, 0xa1, 0xda, 0xf7, 0xa3, 0xa9, 0xe7, 0xaa, 0xb9, 0x16, 0xd3, 0x46, 0x87, - 0xfb, 0x07, 0xc8, 0x0b, 0xca, 0xbd, 0xe4, 0x12, 0x7f, 0xad, 0xa1, 0x3f, 0xba, 0xab, 0x09, 0x1b, - 0x63, 0xe4, 0xca, 0x44, 0x6f, 0xdf, 0x86, 0x45, 0xb9, 0x06, 0xec, 0xd8, 0xc6, 0x63, 0x95, 0xf4, - 0x0b, 0xf2, 0xb1, 0x6e, 0x23, 0x13, 0xd6, 0x38, 0x25, 0xb6, 0xe3, 0xcb, 0x94, 0x08, 0x38, 0xeb, - 0x52, 0xe3, 0x89, 0x7a, 0xcd, 0xf3, 0x29, 0xb7, 0x36, 0x33, 0x61, 0xb4, 0x24, 0xc1, 0xcc, 0xf2, - 0x89, 0x67, 0xd4, 0x85, 0x0d, 0xfd, 0xd1, 0x54, 0xc3, 0xc4, 0x1e, 0x11, 0xd6, 0x80, 0x72, 0x63, - 0x47, 0xe9, 0xbe, 0xfc, 0xbc, 0x2f, 0x27, 0x83, 0x1b, 0x1e, 0x69, 0xa6, 0xb9, 0x1e, 0x5c, 0x37, - 0xa1, 0x01, 0x3c, 0x1d, 0x30, 0xd7, 0xc6, 0x24, 0x08, 0xdc, 0xb8, 0x49, 0xe1, 0xc8, 0x17, 0x8e, - 0x8b, 0x47, 0xaf, 0xe6, 0x22, 0x34, 0xbe, 0x50, 0xef, 0xcc, 0xdf, 0x08, 0xd9, 0x01, 0x63, 0xae, - 0xee, 0x18, 0x4f, 0xa4, 0x4c, 0xe9, 0x4a, 0xe5, 0x44, 0x8a, 0x24, 0x4b, 0xe0, 0x22, 0x94, 0x03, - 0x97, 0x45, 0xd4, 0xd0, 0xe4, 0xf4, 0x24, 0x86, 0x86, 0x38, 0xa0, 0x9e, 0x51, 0x50, 0x99, 0xb0, - 0x6e, 0x91, 0xf2, 0x98, 0xa7, 0x45, 0x3d, 0xf4, 0x1d, 0xcc, 0x3b, 0x1e, 0xe9, 0x53, 0xe3, 0xe9, - 0xc4, 0xd4, 0x3f, 0x11, 0x47, 0xf5, 0xd7, 0x8a, 0xde, 0x68, 0x5d, 0x62, 0x4d, 0x4d, 0xc9, 0xbf, - 0x05, 0x74, 0x33, 0x6f, 0x6f, 0x99, 0x52, 0x37, 0xc7, 0xa7, 0xd4, 0xcc, 0xd8, 0xf4, 0x99, 0xff, - 0x43, 0x0a, 0xd6, 0x6f, 0x04, 0x10, 0x7d, 0x03, 0xc8, 0xf1, 0xe5, 0xa8, 0x22, 0xc3, 0x14, 0x70, - 0xda, 0x73, 0x2e, 0xd5, 0xcc, 0xa8, 0xb6, 0x30, 0xf2, 0xb4, 0x62, 0xc7, 0x24, 0x3c, 0x8c, 0x7a, - 0x1a, 0x9e, 0xbe, 0x06, 0x6f, 0xc7, 0x0e, 0x79, 0xc6, 0x5f, 0xc1, 0x39, 0xed, 0xd3, 0xcb, 0x40, - 0x5e, 0x47, 0x25, 0x3a, 0x37, 0x72, 0x98, 0xda, 0x5e, 0x70, 0x01, 0xdd, 0x9c, 0x69, 0xd0, 0x03, - 0xd8, 0x2e, 0xb5, 0x5a, 0xb8, 0x51, 0x3a, 0xa8, 0x36, 0x70, 0xa9, 0x59, 0xc1, 0xcd, 0xd2, 0x51, - 0xb5, 0xdd, 0x2a, 0x95, 0xab, 0xb9, 0x19, 0x75, 0xf1, 0x2a, 0x35, 0x8f, 0x9b, 0xf5, 0x72, 0xa9, - 0xa1, 0x1c, 0x7a, 0xb2, 0x4b, 0xa1, 0x1d, 0x78, 0x78, 0xcd, 0x31, 0x49, 0x4d, 0x17, 0xde, 0xc0, - 0xf6, 0x27, 0xba, 0xb0, 0x9c, 0x3a, 0xcd, 0x6a, 0xa5, 0x6e, 0x56, 0xcb, 0x9d, 0xdc, 0x0c, 0x02, - 0x58, 0xe8, 0xb4, 0xcc, 0xe3, 0xef, 0xa5, 0xec, 0x12, 0xcc, 0x35, 0x8f, 0x9b, 0xd5, 0x5c, 0xfa, - 0x20, 0x0b, 0x2b, 0xf1, 0x80, 0xa7, 0x4e, 0xab, 0x77, 0x73, 0x4b, 0x99, 0x1c, 0x98, 0x6b, 0x16, - 0xf3, 0x7d, 0x6a, 0x09, 0x2c, 0x1c, 0x8f, 0xb2, 0x48, 0x14, 0xfe, 0x9d, 0x92, 0x97, 0x94, 0xb1, - 0x66, 0x36, 0xe5, 0x82, 0x7b, 0xfd, 0x3f, 0x92, 0xf4, 0xff, 0xf9, 0x1f, 0x09, 0x62, 0xb0, 0x2a, - 0xac, 0x00, 0x9f, 0x51, 0x1a, 0x10, 0xd7, 0x39, 0xa7, 0xf1, 0xf5, 0xee, 0xdd, 0x34, 0x45, 0xbd, - 0x7e, 0x75, 0xb0, 0x33, 0x37, 0x51, 0x2a, 0x76, 0xca, 0xad, 0xab, 0xdf, 0x56, 0xf0, 0x9b, 0x44, - 0xd1, 0x5c, 0x11, 0x63, 0x4f, 0x2f, 0x7e, 0x05, 0x9b, 0xb7, 0x4d, 0x07, 0xa3, 0xb0, 0xcd, 0xa0, - 0x2c, 0xc0, 0xd1, 0x49, 0xe7, 0xa4, 0xd4, 0xc0, 0x9d, 0x46, 0x5b, 0xdd, 0xa3, 0x17, 0xeb, 0xcd, - 0x5a, 0xd5, 0xac, 0x77, 0x72, 0xff, 0x5c, 0x3c, 0xd8, 0xfd, 0xcb, 0xc7, 0xc7, 0xa9, 0xbf, 0x7e, - 0x7c, 0x9c, 0xfa, 0xfb, 0xc7, 0xc7, 0xa9, 0xd3, 0xbc, 0x5e, 0xa6, 0xc3, 0xf6, 0x48, 0xe0, 0xec, - 0x4d, 0xfc, 0x8d, 0xda, 0x5d, 0x50, 0xf5, 0xba, 0xff, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0d, - 0xa4, 0x26, 0xa6, 0x5e, 0x15, 0x00, 0x00, + // 2412 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0xcf, 0x72, 0xe3, 0xc6, + 0xf1, 0x16, 0xa9, 0xff, 0x2d, 0x91, 0xa2, 0x46, 0xab, 0x5d, 0x2c, 0xf7, 0x9f, 0xac, 0xb5, 0x5d, + 0xda, 0xfd, 0xd9, 0xd4, 0xcf, 0xab, 0x94, 0x6b, 0xe3, 0x8a, 0x53, 0xa6, 0x48, 0x28, 0xa4, 0x43, + 0x91, 0xcc, 0x10, 0xda, 0xb5, 0xe5, 0xc3, 0xd4, 0x10, 0x18, 0x92, 0x88, 0x40, 0x00, 0x19, 0x0c, + 0x24, 0xd1, 0x87, 0x9c, 0xf3, 0x14, 0xb9, 0xe5, 0x9a, 0x63, 0x4e, 0x79, 0x80, 0x1c, 0xf3, 0x08, + 0xa9, 0xbd, 0x24, 0xa9, 0xbc, 0x44, 0x6a, 0x66, 0x00, 0x8a, 0x94, 0xb4, 0xd4, 0x26, 0xb9, 0x11, + 0xdd, 0xdf, 0xf7, 0x61, 0xa6, 0xa7, 0xbb, 0xd1, 0x43, 0x78, 0x38, 0x64, 0xd1, 0x60, 0xff, 0xfc, + 0x0b, 0xea, 0x85, 0x03, 0xfa, 0xc5, 0x7e, 0xc8, 0x83, 0xcb, 0x51, 0x29, 0xe4, 0x81, 0x08, 0xd0, + 0x96, 0x1b, 0x09, 0x37, 0x28, 0x49, 0x40, 0x29, 0x05, 0x14, 0x9f, 0xf6, 0x83, 0xa0, 0xef, 0xb1, + 0x7d, 0x05, 0xe9, 0xc6, 0xbd, 0x7d, 0x27, 0xe6, 0x54, 0xb8, 0x81, 0xaf, 0x49, 0x37, 0xfd, 0x17, + 0x9c, 0x86, 0x21, 0xe3, 0x51, 0xe2, 0x7f, 0xe9, 0x33, 0x71, 0x11, 0xf0, 0x33, 0xd7, 0xef, 0xa7, + 0x6f, 0x3d, 0xd8, 0x77, 0x58, 0x24, 0x5c, 0x5f, 0xc9, 0x10, 0x1e, 0x7b, 0x2c, 0xc1, 0xee, 0xdd, + 0x86, 0x95, 0x06, 0x2f, 0xa0, 0x0e, 0xe9, 0xf3, 0x20, 0x0e, 0x13, 0xe4, 0x27, 0x53, 0xc8, 0x2e, + 0x13, 0xe9, 0x56, 0x88, 0x1d, 0xf8, 0x3d, 0xb7, 0xaf, 0x61, 0xbb, 0x7f, 0xc8, 0xc3, 0xb2, 0xc5, + 0xa9, 0xed, 0xfa, 0x7d, 0xf4, 0x35, 0x2c, 0xfd, 0xe8, 0x86, 0x67, 0xae, 0x6f, 0x64, 0x76, 0x32, + 0x7b, 0x6b, 0xaf, 0x9e, 0x97, 0x6e, 0xd9, 0x6e, 0x29, 0x41, 0x97, 0x4e, 0x15, 0xb4, 0x36, 0x87, + 0x13, 0x12, 0x3a, 0x82, 0x55, 0xcf, 0xed, 0x0f, 0x44, 0x24, 0x58, 0x68, 0x64, 0x95, 0xc2, 0xa7, + 0x33, 0x15, 0x1a, 0x29, 0xba, 0x36, 0x87, 0xaf, 0xa8, 0xe8, 0x1b, 0x58, 0x76, 0xa8, 0xa0, 0x4e, + 0xd0, 0x37, 0xe6, 0x95, 0xca, 0xc7, 0x33, 0x55, 0xaa, 0x1a, 0x5b, 0x9b, 0xc3, 0x29, 0x0d, 0x35, + 0x60, 0x2d, 0x12, 0xd4, 0x3e, 0x73, 0xb8, 0x7b, 0xce, 0xb8, 0xb1, 0xa0, 0x54, 0xf6, 0x66, 0xaa, + 0x74, 0xae, 0xf0, 0xb5, 0x39, 0x3c, 0x49, 0x47, 0xa7, 0xb0, 0x19, 0x84, 0xcc, 0x27, 0x36, 0xf3, + 0xa3, 0x38, 0x22, 0xb4, 0xcf, 0x7c, 0x61, 0xac, 0x2a, 0xcd, 0xcf, 0x66, 0x6a, 0xb6, 0x42, 0xe6, + 0x57, 0x14, 0xa9, 0x2c, 0x39, 0xb5, 0x39, 0xbc, 0x11, 0x4c, 0x9b, 0xd0, 0x31, 0xac, 0xd9, 0x71, + 0x24, 0x82, 0x21, 0x11, 0xb4, 0x1f, 0x19, 0x8b, 0x3b, 0xf3, 0x77, 0xaa, 0x56, 0x14, 0xde, 0xa2, + 0xfd, 0xc8, 0xf4, 0x05, 0x1f, 0x61, 0xb0, 0xc7, 0x06, 0xf4, 0x39, 0x6c, 0x0d, 0xe9, 0x25, 0x09, + 0xa9, 0x18, 0x48, 0x41, 0xe2, 0x31, 0xbf, 0x2f, 0x06, 0xc6, 0xd2, 0x4e, 0x66, 0x2f, 0x87, 0x0b, + 0x43, 0x7a, 0xd9, 0xa6, 0x62, 0x60, 0xd1, 0x7e, 0x43, 0xd9, 0x51, 0x11, 0x56, 0x22, 0x3a, 0x0c, + 0x3d, 0xd7, 0xef, 0x1b, 0xcb, 0x3b, 0x99, 0xbd, 0x0c, 0x1e, 0x3f, 0xa3, 0x16, 0xac, 0x0b, 0x2f, + 0x22, 0x11, 0x13, 0xc2, 0xf5, 0xfb, 0x91, 0xb1, 0x32, 0xb5, 0xe1, 0xab, 0xe4, 0x4a, 0x17, 0x78, + 0x50, 0xaa, 0x78, 0x2e, 0xf3, 0x85, 0xd5, 0xe8, 0x74, 0x12, 0x0e, 0x5e, 0x13, 0x5e, 0x94, 0x3e, + 0x14, 0x77, 0x61, 0x49, 0xa7, 0x0c, 0x32, 0x60, 0x99, 0x3a, 0x0e, 0x67, 0x51, 0xa4, 0x12, 0x6d, + 0x15, 0xa7, 0x8f, 0xc5, 0x1a, 0xac, 0x8e, 0x93, 0xe2, 0xfd, 0x30, 0xf4, 0x11, 0xac, 0x53, 0xdb, + 0x66, 0x51, 0x44, 0x44, 0x70, 0xc6, 0x7c, 0x95, 0x6c, 0xab, 0x78, 0x4d, 0xdb, 0x2c, 0x69, 0x2a, + 0x3e, 0x87, 0xe5, 0x24, 0x31, 0x66, 0xbc, 0xee, 0x8f, 0x59, 0x58, 0x9b, 0x38, 0x78, 0x74, 0x0f, + 0x16, 0x1d, 0xd6, 0x8d, 0xfb, 0x0a, 0xb7, 0x82, 0xf5, 0x03, 0xb2, 0xc0, 0x90, 0x41, 0xf5, 0xe3, + 0x61, 0x97, 0x71, 0x12, 0xf4, 0x08, 0x15, 0x82, 0xbb, 0xdd, 0x58, 0xb0, 0x28, 0x49, 0xf3, 0x47, + 0x25, 0x5d, 0xe2, 0xa5, 0xb4, 0xc4, 0x4b, 0x75, 0x5f, 0x7c, 0xf9, 0x93, 0x37, 0xd4, 0x8b, 0x19, + 0xde, 0x1e, 0xd2, 0xcb, 0xa6, 0xe2, 0xb6, 0x7a, 0xe5, 0x31, 0x13, 0xbd, 0x81, 0x87, 0xd7, 0x54, + 0x7d, 0x3f, 0x10, 0xaa, 0xe0, 0xa3, 0x24, 0xef, 0x67, 0xca, 0xde, 0x9f, 0x94, 0xbd, 0xa2, 0xa2, + 0x1f, 0xe0, 0xf1, 0xb4, 0xee, 0x90, 0x45, 0x11, 0xed, 0x33, 0xc2, 0xce, 0x99, 0x2f, 0xa2, 0xa4, + 0x18, 0x66, 0x4a, 0x1b, 0x13, 0xd2, 0xc7, 0x9a, 0x6d, 0x2a, 0x72, 0xf1, 0xef, 0x19, 0xd8, 0xb8, + 0x96, 0xd5, 0x33, 0x8e, 0xa9, 0x03, 0xcb, 0x76, 0xe0, 0x0b, 0x76, 0x29, 0x8c, 0xec, 0xce, 0xfc, + 0x5e, 0xfe, 0xd5, 0x4f, 0xff, 0x93, 0x72, 0x51, 0x76, 0x56, 0xd1, 0x02, 0x38, 0x55, 0xda, 0x65, + 0xb0, 0x3e, 0xe9, 0x40, 0x1b, 0xb0, 0x76, 0xd2, 0xec, 0xb4, 0xcd, 0x4a, 0xfd, 0xa8, 0x6e, 0x56, + 0x0b, 0x73, 0x68, 0x1b, 0x36, 0xdf, 0x1e, 0x54, 0x88, 0x85, 0xcb, 0x15, 0x93, 0x54, 0x5a, 0x4d, + 0xcb, 0xfc, 0xce, 0x2a, 0x64, 0xd0, 0x3a, 0xac, 0xfc, 0x02, 0xb7, 0x2b, 0xe4, 0xb0, 0xde, 0x2c, + 0x64, 0xd1, 0x03, 0xd8, 0xaa, 0x34, 0x5a, 0x27, 0xd5, 0x6b, 0xb0, 0x79, 0xb4, 0x04, 0xd9, 0xc3, + 0x83, 0xc2, 0x42, 0xf1, 0x9f, 0x19, 0x58, 0x1d, 0x57, 0x9a, 0x6c, 0x49, 0x9e, 0x2b, 0x18, 0xa7, + 0x5e, 0xd2, 0x1a, 0x3f, 0xbe, 0xa3, 0xb1, 0x29, 0xac, 0x6c, 0x49, 0x09, 0x4d, 0xb6, 0x24, 0xe6, + 0x9f, 0xbb, 0x3c, 0xf0, 0x87, 0xb2, 0x7d, 0x64, 0x3f, 0xa0, 0x25, 0x99, 0x57, 0x78, 0xd9, 0x92, + 0x26, 0xe8, 0xa8, 0x0a, 0x4b, 0x03, 0x46, 0x1d, 0xc6, 0x93, 0x4c, 0x79, 0x39, 0x53, 0x08, 0xb3, + 0xdf, 0xc4, 0x2c, 0x12, 0x35, 0xc5, 0x90, 0x0d, 0x5b, 0x73, 0x0f, 0x97, 0x60, 0x41, 0x8c, 0x42, + 0x56, 0x7c, 0x06, 0xcb, 0xc9, 0x8a, 0x65, 0x05, 0x9c, 0xcb, 0x1c, 0x48, 0x8e, 0x52, 0x3f, 0x14, + 0x8f, 0x60, 0x6d, 0x62, 0x31, 0x08, 0xc1, 0x82, 0x4f, 0x87, 0x29, 0x46, 0xfd, 0x46, 0xcf, 0x21, + 0xe7, 0xb0, 0x1e, 0x8d, 0x3d, 0x41, 0xb4, 0x80, 0xae, 0xc9, 0xf5, 0xc4, 0xa8, 0x12, 0xab, 0x58, + 0x83, 0xdc, 0xd4, 0x5a, 0xfe, 0x7b, 0x25, 0x06, 0x1b, 0xd7, 0xfa, 0x20, 0x2a, 0xc0, 0xfc, 0x19, + 0x1b, 0x25, 0x52, 0xf2, 0x27, 0xfa, 0x59, 0xba, 0x99, 0x0f, 0xf9, 0x18, 0x8d, 0xe5, 0x92, 0x4d, + 0x7f, 0x95, 0x7d, 0x9d, 0x39, 0x5c, 0x81, 0x25, 0x21, 0x93, 0x8d, 0xef, 0x1e, 0xc1, 0x7c, 0xa7, + 0xda, 0x91, 0xc9, 0xce, 0x7c, 0xda, 0xf5, 0x98, 0x93, 0xf4, 0x88, 0xf4, 0x11, 0x7d, 0x02, 0x1b, + 0x67, 0xaf, 0x23, 0x12, 0x51, 0xf2, 0xeb, 0x0b, 0xa1, 0x3a, 0x70, 0xba, 0xf0, 0xb3, 0xd7, 0x51, + 0x87, 0x7e, 0x7b, 0x21, 0x64, 0xef, 0xdd, 0xfd, 0x73, 0x16, 0x56, 0xac, 0x20, 0x0c, 0xbc, 0xa0, + 0x3f, 0x42, 0x25, 0xd8, 0xf2, 0xe3, 0x21, 0x11, 0x3c, 0x8e, 0x04, 0x73, 0x88, 0xfc, 0x3c, 0xbb, + 0x4c, 0x97, 0x51, 0x0e, 0x6f, 0xfa, 0xf1, 0xd0, 0xd2, 0x9e, 0xb6, 0x76, 0xa0, 0x18, 0x1e, 0xf5, + 0x02, 0x7e, 0x41, 0xb9, 0x43, 0x6c, 0xd5, 0x6c, 0x89, 0xcd, 0xb8, 0x20, 0x0e, 0x13, 0xd4, 0xf5, + 0x74, 0x33, 0xca, 0xbf, 0xfa, 0xf2, 0xf6, 0x6d, 0x26, 0xef, 0x2c, 0x1d, 0x69, 0x01, 0xdd, 0xac, + 0x2b, 0x8c, 0x8b, 0xaa, 0x66, 0x63, 0xa3, 0xf7, 0x1e, 0xcf, 0xee, 0xef, 0x32, 0x60, 0xbc, 0x8f, + 0x86, 0x72, 0xb0, 0x7a, 0xd2, 0xac, 0x9a, 0x47, 0xf5, 0xa6, 0xaa, 0xbe, 0x75, 0x58, 0xe9, 0x94, + 0x9b, 0x75, 0xab, 0x7e, 0x6a, 0x16, 0x32, 0xa8, 0x00, 0xeb, 0x47, 0x2d, 0xfc, 0xb6, 0x8c, 0xab, + 0xa4, 0xd5, 0x6c, 0x7c, 0x5f, 0xc8, 0x22, 0x04, 0xf9, 0x72, 0xbb, 0x6d, 0x36, 0xab, 0x24, 0x71, + 0x14, 0xe6, 0x25, 0x2a, 0xe5, 0x90, 0x8e, 0x69, 0x15, 0x16, 0x64, 0x79, 0x96, 0x1b, 0x6f, 0xcb, + 0xdf, 0x77, 0xc8, 0x14, 0x7d, 0x71, 0xf7, 0x4f, 0xf7, 0x61, 0x4d, 0x46, 0x63, 0x54, 0x51, 0x43, + 0x0c, 0x7a, 0x06, 0x6b, 0x7a, 0x9c, 0xd1, 0x11, 0xd7, 0x87, 0x0f, 0xda, 0x24, 0xe3, 0x2d, 0x01, + 0x5d, 0xd7, 0xa7, 0x7c, 0x34, 0x79, 0x24, 0xa0, 0x4d, 0x0a, 0xf0, 0x02, 0x36, 0x22, 0xc6, 0xcf, + 0x5d, 0x9b, 0x11, 0xdb, 0x93, 0xd1, 0xd6, 0x35, 0xb5, 0x5a, 0x9b, 0xc3, 0xf9, 0xc4, 0x51, 0xd1, + 0x76, 0xd4, 0x87, 0x7b, 0x42, 0x67, 0x0b, 0x49, 0x29, 0x2a, 0x7b, 0x3f, 0x56, 0x71, 0x3f, 0xb8, + 0x35, 0xee, 0x13, 0x8b, 0x4d, 0x53, 0xad, 0xa3, 0xb9, 0x4d, 0x3a, 0x64, 0xb5, 0x39, 0x8c, 0xc4, + 0x0d, 0x2b, 0xfa, 0x06, 0xf2, 0x0e, 0xa7, 0xae, 0x4f, 0xd2, 0x49, 0x32, 0xe9, 0xda, 0x0f, 0x6f, + 0x74, 0xed, 0x6a, 0x02, 0xc0, 0x39, 0x45, 0x48, 0x1f, 0x51, 0x07, 0x8c, 0x90, 0x72, 0x99, 0x21, + 0xd1, 0x20, 0x16, 0x4e, 0x70, 0x31, 0xa1, 0xb5, 0x78, 0x97, 0xd6, 0x7d, 0x4d, 0xed, 0x24, 0xcc, + 0xb1, 0xe8, 0xff, 0xc1, 0xa6, 0xe3, 0x46, 0x76, 0x70, 0xce, 0xf8, 0x88, 0xa4, 0x3d, 0x7f, 0x49, + 0x45, 0xb4, 0x30, 0x76, 0x94, 0x93, 0xe6, 0x7f, 0x02, 0x0f, 0xae, 0xc0, 0x9c, 0xf5, 0x38, 0x8b, + 0x06, 0xc4, 0x61, 0x1e, 0x1d, 0xa9, 0x51, 0x63, 0xd6, 0x02, 0x0e, 0xb3, 0x46, 0x06, 0x6f, 0x8f, + 0xd9, 0x58, 0x93, 0xab, 0x92, 0x8b, 0x5e, 0x40, 0x5e, 0x8f, 0x9b, 0xe3, 0x05, 0xc8, 0xc1, 0x64, + 0x55, 0x51, 0x72, 0xda, 0x93, 0xae, 0xe0, 0x33, 0x40, 0x91, 0xa0, 0x22, 0x72, 0x48, 0xec, 0x84, + 0x63, 0x38, 0xe8, 0xf5, 0x6a, 0xcf, 0x89, 0x13, 0xa6, 0x68, 0x13, 0x9e, 0x30, 0xff, 0x3c, 0x18, + 0x91, 0x21, 0x13, 0xdc, 0xb5, 0xa3, 0xf1, 0x11, 0xa7, 0xc4, 0x7b, 0xe3, 0xf7, 0x14, 0x15, 0xf0, + 0x58, 0xe3, 0x92, 0x73, 0x4b, 0x65, 0xf6, 0xa0, 0xa0, 0xa7, 0x6c, 0xea, 0x0c, 0x5d, 0x9f, 0x84, + 0x01, 0x17, 0xc6, 0xda, 0x4e, 0x66, 0x6f, 0x11, 0xe7, 0x95, 0xbd, 0x2c, 0xcd, 0xed, 0x80, 0x0b, + 0xb4, 0x0f, 0x9b, 0xf4, 0x9c, 0xba, 0x1e, 0xed, 0xba, 0x9e, 0x2b, 0x46, 0xe4, 0xc7, 0xc0, 0x67, + 0xc6, 0xfa, 0xf8, 0x25, 0x85, 0x49, 0xe7, 0x69, 0xe0, 0x33, 0xe4, 0xc0, 0x43, 0xf9, 0x11, 0xe4, + 0x81, 0x47, 0x42, 0x8f, 0xfa, 0x8c, 0xd0, 0x58, 0x0c, 0x48, 0x18, 0x78, 0xae, 0x3d, 0x32, 0x72, + 0x2a, 0x07, 0x5f, 0xdc, 0x9a, 0x83, 0xe5, 0x58, 0x0c, 0x98, 0x2f, 0x5c, 0x5b, 0x45, 0xb7, 0xad, + 0x08, 0xf8, 0x7e, 0xa2, 0xd5, 0x96, 0x52, 0x12, 0xa1, 0xed, 0x32, 0x6a, 0xc9, 0x44, 0x9a, 0x14, + 0x56, 0xcf, 0xf5, 0x98, 0x91, 0xd7, 0x51, 0xd3, 0x1e, 0x9d, 0xce, 0x47, 0xae, 0xc7, 0xe4, 0x76, + 0x65, 0x24, 0x55, 0x1d, 0xa4, 0xd3, 0xe6, 0x86, 0xde, 0xae, 0xb4, 0xcb, 0x6c, 0x4e, 0x66, 0xcd, + 0xaf, 0x55, 0xa5, 0xda, 0x31, 0xe7, 0xcc, 0xb7, 0x47, 0x46, 0xe1, 0xfd, 0x63, 0xc8, 0xc1, 0x2b, + 0x3d, 0x86, 0x4c, 0xe2, 0x51, 0x19, 0x9e, 0xe8, 0xb8, 0x76, 0x83, 0x40, 0x44, 0x82, 0xd3, 0x90, + 0x08, 0x36, 0x0c, 0x3d, 0x2a, 0x98, 0xae, 0xec, 0x4d, 0xb5, 0xc2, 0xa2, 0x02, 0x1d, 0xa6, 0x18, + 0x2b, 0x81, 0xa8, 0x4a, 0x67, 0xb0, 0xe9, 0xfa, 0x82, 0x71, 0x9b, 0x85, 0xea, 0x5a, 0x35, 0x0c, + 0x1c, 0x66, 0x20, 0x15, 0xb7, 0xd7, 0x77, 0xd6, 0x6e, 0xdd, 0xef, 0x06, 0xb1, 0xef, 0xd4, 0x27, + 0x04, 0x8e, 0x03, 0x87, 0xe1, 0x82, 0x7b, 0xcd, 0x82, 0xbe, 0x84, 0xe5, 0xa4, 0xa4, 0x8d, 0x2d, + 0xb5, 0xc9, 0xc7, 0xb3, 0xbe, 0x3b, 0x38, 0x05, 0xa3, 0x97, 0x30, 0x1f, 0x39, 0x91, 0xb1, 0xad, + 0x38, 0xc6, 0xad, 0x9c, 0x4e, 0xb5, 0x83, 0x25, 0x08, 0xfd, 0x00, 0x86, 0x4e, 0xd6, 0x64, 0x0c, + 0xf6, 0x82, 0x71, 0x4b, 0x32, 0xee, 0x2b, 0x81, 0xdd, 0x5b, 0x05, 0x30, 0x1b, 0x06, 0x82, 0x25, + 0x29, 0x8b, 0xb7, 0x95, 0x46, 0x59, 0x49, 0x34, 0x82, 0xb4, 0x03, 0xa1, 0x37, 0xb0, 0x7d, 0x6b, + 0x25, 0x18, 0x0f, 0x3e, 0x58, 0x79, 0xeb, 0x96, 0x0a, 0x41, 0xa7, 0xa0, 0x4b, 0x40, 0xea, 0x52, + 0x79, 0x55, 0x33, 0x0c, 0x75, 0xdd, 0xb9, 0xbb, 0x71, 0xaa, 0xdf, 0xc7, 0x09, 0x4b, 0xdf, 0x7a, + 0x72, 0xe1, 0xa4, 0x4d, 0xb6, 0x79, 0x99, 0x6f, 0x71, 0xa4, 0x2b, 0xae, 0xa8, 0x52, 0x10, 0xb4, + 0x49, 0x55, 0xdb, 0xa7, 0xb0, 0xc1, 0x2e, 0x05, 0xa7, 0x44, 0xa5, 0xab, 0xba, 0x6c, 0x3d, 0xda, + 0x99, 0xdf, 0x5b, 0xc5, 0x39, 0x65, 0xee, 0x08, 0x2a, 0xd4, 0x0d, 0xaa, 0x06, 0x85, 0x3e, 0x15, + 0xec, 0x82, 0x8e, 0x88, 0x48, 0x3e, 0x99, 0xc6, 0x63, 0xb5, 0xef, 0x27, 0x33, 0xbf, 0xab, 0x78, + 0x23, 0xa1, 0x8d, 0x3f, 0xee, 0x6f, 0xa1, 0x28, 0x18, 0x1f, 0xa6, 0x97, 0xf8, 0x6b, 0x0d, 0xfd, + 0xc9, 0x5d, 0x4d, 0xd8, 0x98, 0x20, 0x57, 0xa7, 0x7a, 0xfb, 0x03, 0x58, 0x96, 0x6b, 0x20, 0xae, + 0x63, 0x3c, 0x55, 0x49, 0xbf, 0x24, 0x1f, 0xeb, 0x0e, 0xc2, 0xb0, 0xc1, 0x19, 0x75, 0x5c, 0x5f, + 0xa6, 0x44, 0xc8, 0x83, 0x2e, 0x33, 0x9e, 0xa9, 0xd7, 0xbc, 0x98, 0x71, 0x6b, 0xc3, 0x29, 0xa3, + 0x2d, 0x09, 0x38, 0xcf, 0xa7, 0x9e, 0x51, 0x17, 0xb6, 0xf4, 0xa1, 0xa9, 0x86, 0x49, 0x86, 0x54, + 0xd8, 0x03, 0xc6, 0x8d, 0x1d, 0xa5, 0xfb, 0xea, 0xc3, 0x4e, 0x4e, 0x06, 0x37, 0x3a, 0xd6, 0x4c, + 0xbc, 0x19, 0x5e, 0x37, 0xa1, 0x01, 0x3c, 0x1f, 0x04, 0x9e, 0x43, 0x68, 0x18, 0x7a, 0x49, 0x93, + 0x22, 0xb1, 0x2f, 0x5c, 0x8f, 0x8c, 0x5f, 0xcd, 0x45, 0x64, 0x7c, 0xa4, 0xde, 0x59, 0xbc, 0x11, + 0xb2, 0xc3, 0x20, 0xf0, 0x74, 0xc7, 0x78, 0x26, 0x65, 0xca, 0x57, 0x2a, 0x27, 0x52, 0x24, 0x5d, + 0x02, 0x17, 0x91, 0x1c, 0xb8, 0x6c, 0xaa, 0x86, 0x26, 0xb7, 0x27, 0x31, 0x2c, 0x22, 0x21, 0x1b, + 0x1a, 0xbb, 0x2a, 0x13, 0x36, 0x6d, 0x5a, 0x99, 0xf0, 0xb4, 0xd9, 0x10, 0x7d, 0x05, 0x8b, 0xee, + 0x90, 0xf6, 0x99, 0xf1, 0x7c, 0x6a, 0xea, 0x9f, 0x8a, 0xa3, 0xfa, 0x6b, 0x45, 0x6f, 0xb4, 0x2e, + 0xb1, 0x58, 0x53, 0xd0, 0x09, 0xe8, 0x1c, 0x25, 0x7a, 0xda, 0x8e, 0x8c, 0x4f, 0xd4, 0x1d, 0xe8, + 0xff, 0xef, 0x8c, 0x99, 0x9e, 0x8d, 0x3b, 0x21, 0xb3, 0xdd, 0x9e, 0xcb, 0x38, 0x5e, 0x57, 0x32, + 0xda, 0x1a, 0x15, 0xbf, 0x01, 0x74, 0xb3, 0x1c, 0x6e, 0x19, 0x7e, 0xef, 0x4d, 0x0e, 0xbf, 0xab, + 0x13, 0x43, 0x6d, 0xf1, 0xf7, 0x19, 0xd8, 0xbc, 0x71, 0x2e, 0xe8, 0x73, 0x40, 0xae, 0x2f, 0x27, + 0x20, 0x19, 0xfd, 0x90, 0xb3, 0x9e, 0x7b, 0xa9, 0x46, 0x51, 0x15, 0x99, 0xb1, 0xa7, 0x9d, 0x38, + 0xa6, 0xe1, 0x51, 0xdc, 0xd3, 0xf0, 0xec, 0x35, 0x78, 0x27, 0x71, 0xc8, 0xd1, 0xe1, 0x0a, 0xce, + 0x59, 0x9f, 0x5d, 0x86, 0xf2, 0x96, 0x2b, 0xd1, 0x85, 0xb1, 0x03, 0x6b, 0xfb, 0xae, 0x07, 0xe8, + 0xe6, 0xa8, 0x84, 0x1e, 0xc1, 0x83, 0x72, 0xbb, 0x4d, 0x1a, 0xe5, 0x43, 0xb3, 0x41, 0xca, 0xcd, + 0x2a, 0x69, 0x96, 0x8f, 0xcd, 0x4e, 0xbb, 0x5c, 0x31, 0x0b, 0x73, 0xea, 0x3e, 0x57, 0x6e, 0xb6, + 0x9a, 0xf5, 0x4a, 0xb9, 0xa1, 0x1c, 0x7a, 0x60, 0xcc, 0xa0, 0x1d, 0x78, 0x7c, 0xcd, 0x31, 0x4d, + 0xcd, 0xee, 0x7e, 0x0d, 0x0f, 0xde, 0xd3, 0xdc, 0xe5, 0x30, 0x8b, 0xcd, 0x6a, 0x1d, 0x9b, 0x15, + 0xab, 0x30, 0x87, 0x00, 0x96, 0xac, 0x36, 0x6e, 0x7d, 0x27, 0x65, 0x57, 0x60, 0xa1, 0xd9, 0x6a, + 0x4a, 0xfa, 0x6f, 0x61, 0xe3, 0xda, 0x81, 0xa1, 0x3c, 0x40, 0xb3, 0x45, 0x6a, 0x66, 0xb9, 0x6a, + 0xe2, 0x4e, 0x61, 0x0e, 0x3d, 0x84, 0xed, 0x64, 0x8c, 0x35, 0xab, 0xa4, 0xd2, 0xa8, 0x9b, 0x4d, + 0x8b, 0x54, 0x4c, 0x2c, 0x6f, 0xa5, 0x79, 0x00, 0x6c, 0xfe, 0xea, 0xc4, 0xec, 0x58, 0xa4, 0x5e, + 0x2d, 0x64, 0xd1, 0x26, 0xe4, 0xca, 0x96, 0x65, 0x1e, 0xb7, 0x2d, 0x52, 0x69, 0x9d, 0x34, 0xe5, + 0x8d, 0x74, 0x13, 0x72, 0x66, 0xf3, 0x4d, 0xeb, 0xfb, 0xb1, 0xe0, 0x82, 0x5c, 0x49, 0xc7, 0xc4, + 0x6f, 0x4c, 0x5c, 0x58, 0x3c, 0xcc, 0xc3, 0x7a, 0x32, 0xb7, 0xaa, 0x8f, 0xf0, 0xb7, 0x0b, 0x2b, + 0xab, 0x05, 0xc0, 0x1b, 0x76, 0xe0, 0xfb, 0xcc, 0x16, 0x44, 0xb8, 0x43, 0x16, 0xc4, 0x62, 0xf7, + 0x5f, 0x19, 0x79, 0xf7, 0x9a, 0xe8, 0xd1, 0x33, 0xee, 0xed, 0xd7, 0xff, 0xfa, 0xc9, 0xfe, 0x8f, + 0x7f, 0xfd, 0xa0, 0x00, 0x72, 0xc2, 0x0e, 0xc9, 0x19, 0x63, 0x21, 0xf5, 0xdc, 0x73, 0x96, 0xdc, + 0x5a, 0xbf, 0x9d, 0xa5, 0xa8, 0xd7, 0xaf, 0xe6, 0x95, 0xc0, 0x4b, 0x95, 0x4a, 0x56, 0xa5, 0x7d, + 0xf5, 0xdb, 0x0e, 0x7f, 0x99, 0x2a, 0xe2, 0x75, 0x31, 0xf1, 0xf4, 0xf2, 0xe7, 0x70, 0xef, 0xb6, + 0xa1, 0x67, 0x7c, 0x6c, 0x73, 0x32, 0xf0, 0xc7, 0x27, 0xd6, 0x49, 0xb9, 0x41, 0xac, 0x46, 0x47, + 0xfd, 0x3d, 0xb0, 0x5c, 0x6f, 0xd6, 0x4c, 0x5c, 0xb7, 0x0a, 0xff, 0x58, 0x3e, 0xdc, 0xfb, 0xcb, + 0xbb, 0xa7, 0x99, 0xbf, 0xbe, 0x7b, 0x9a, 0xf9, 0xdb, 0xbb, 0xa7, 0x99, 0xd3, 0xa2, 0x5e, 0xa6, + 0x1b, 0xec, 0xd3, 0xd0, 0xdd, 0x9f, 0xfa, 0x77, 0xb8, 0xbb, 0xa4, 0xda, 0xd0, 0xc1, 0xbf, 0x03, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x12, 0xd1, 0xed, 0x35, 0x16, 0x00, 0x00, } func (m *Tracing) Marshal() (dAtA []byte, err error) { @@ -2675,6 +2735,26 @@ func (m *ProxyConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if len(m.ProxyHeaders) > 0 { + dAtA17 := make([]byte, len(m.ProxyHeaders)*10) + var j16 int + for _, num := range m.ProxyHeaders { + for num >= 1<<7 { + dAtA17[j16] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j16++ + } + dAtA17[j16] = uint8(num) + j16++ + } + i -= j16 + copy(dAtA[i:], dAtA17[:j16]) + i = encodeVarintProxy(dAtA, i, uint64(j16)) + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0xaa + } if m.ClusterName != nil { { size := m.ClusterName.Size() @@ -3660,6 +3740,13 @@ func (m *ProxyConfig) Size() (n int) { l = m.Image.Size() n += 2 + l + sovProxy(uint64(l)) } + if len(m.ProxyHeaders) > 0 { + l = 0 + for _, e := range m.ProxyHeaders { + l += sovProxy(uint64(e)) + } + n += 2 + sovProxy(uint64(l)) + l + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -6630,6 +6717,75 @@ func (m *ProxyConfig) Unmarshal(dAtA []byte) error { } } m.ClusterName = &ProxyConfig_TracingServiceName_{v} + case 37: + if wireType == 0 { + var v ProxyConfig_HeaderSpecifier + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProxy + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= ProxyConfig_HeaderSpecifier(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ProxyHeaders = append(m.ProxyHeaders, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProxy + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthProxy + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthProxy + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + if elementCount != 0 && len(m.ProxyHeaders) == 0 { + m.ProxyHeaders = make([]ProxyConfig_HeaderSpecifier, 0, elementCount) + } + for iNdEx < postIndex { + var v ProxyConfig_HeaderSpecifier + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProxy + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= ProxyConfig_HeaderSpecifier(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ProxyHeaders = append(m.ProxyHeaders, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field ProxyHeaders", wireType) + } default: iNdEx = preIndex skippy, err := skipProxy(dAtA[iNdEx:]) diff --git a/mesh/v1alpha1/proxy.proto b/mesh/v1alpha1/proxy.proto index db74a5873fb..f1459ac53fe 100644 --- a/mesh/v1alpha1/proxy.proto +++ b/mesh/v1alpha1/proxy.proto @@ -547,6 +547,24 @@ message ProxyConfig { // Specifies the details of the proxy image. istio.networking.v1beta1.ProxyImage image = 35; + + // Define the set of headers to add to HTTP request/responses. If an empty list is provided, + // all are enabled. + repeated HeaderSpecifier proxy_headers = 37; + + enum HeaderSpecifier { + NO_HEADERS = 0; + // Specify to set the `X-Forwarded-Client-Cert` header for mTLS connections + FORWARDED_CLIENT_CERT = 1; + // Specify to generate a `X-Request-Id` header for a request, if one is not already set + REQUEST_ID = 2; + // Specify to include the `X-Envoy-Attempt-Count` header for requests. + ATTEMPT_COUNT = 3; + // Specify to include various `X-Envoy-*` headers, such as `X-Envoy-Overloaded` and `X-Envoy-Upstream-Service-Time. + ENVOY_HEADERS = 4; + // Specify to include a `Server: envoy` header. + SERVER = 5; + } } message RemoteService { diff --git a/python/istio_api/mesh/v1alpha1/proxy_pb2.py b/python/istio_api/mesh/v1alpha1/proxy_pb2.py index 58e9ca1590c..44beb11a888 100644 --- a/python/istio_api/mesh/v1alpha1/proxy_pb2.py +++ b/python/istio_api/mesh/v1alpha1/proxy_pb2.py @@ -25,7 +25,7 @@ syntax='proto3', serialized_options=b'Z\032istio.io/api/mesh/v1alpha1', create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x19mesh/v1alpha1/proxy.proto\x12\x13istio.mesh.v1alpha1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a*networking/v1alpha3/destination_rule.proto\x1a(networking/v1alpha3/workload_group.proto\x1a%networking/v1beta1/proxy_config.proto\"\xa5\x0e\n\x07Tracing\x12=\n\x06zipkin\x18\x01 \x01(\x0b\x32#.istio.mesh.v1alpha1.Tracing.ZipkinH\x00R\x06zipkin\x12\x46\n\tlightstep\x18\x02 \x01(\x0b\x32&.istio.mesh.v1alpha1.Tracing.LightstepH\x00R\tlightstep\x12@\n\x07\x64\x61tadog\x18\x03 \x01(\x0b\x32$.istio.mesh.v1alpha1.Tracing.DatadogH\x00R\x07\x64\x61tadog\x12L\n\x0bstackdriver\x18\x04 \x01(\x0b\x32(.istio.mesh.v1alpha1.Tracing.StackdriverH\x00R\x0bstackdriver\x12Z\n\x11open_census_agent\x18\t \x01(\x0b\x32,.istio.mesh.v1alpha1.Tracing.OpenCensusAgentH\x00R\x0fopenCensusAgent\x12M\n\x0b\x63ustom_tags\x18\x05 \x03(\x0b\x32,.istio.mesh.v1alpha1.Tracing.CustomTagsEntryR\ncustomTags\x12-\n\x13max_path_tag_length\x18\x06 \x01(\rR\x10maxPathTagLength\x12\x1a\n\x08sampling\x18\x07 \x01(\x01R\x08sampling\x12O\n\x0ctls_settings\x18\x08 \x01(\x0b\x32,.istio.networking.v1alpha3.ClientTLSSettingsR\x0btlsSettings\x1a\"\n\x06Zipkin\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x1aH\n\tLightstep\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12!\n\x0c\x61\x63\x63\x65ss_token\x18\x02 \x01(\tR\x0b\x61\x63\x63\x65ssToken\x1a#\n\x07\x44\x61tadog\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x1a\xae\x02\n\x0bStackdriver\x12\x14\n\x05\x64\x65\x62ug\x18\x01 \x01(\x08R\x05\x64\x65\x62ug\x12T\n\x18max_number_of_attributes\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueR\x15maxNumberOfAttributes\x12V\n\x19max_number_of_annotations\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueR\x16maxNumberOfAnnotations\x12[\n\x1cmax_number_of_message_events\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueR\x18maxNumberOfMessageEvents\x1a\xe7\x01\n\x0fOpenCensusAgent\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12S\n\x07\x63ontext\x18\x02 \x03(\x0e\x32\x39.istio.mesh.v1alpha1.Tracing.OpenCensusAgent.TraceContextR\x07\x63ontext\"e\n\x0cTraceContext\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x15\n\x11W3C_TRACE_CONTEXT\x10\x01\x12\x0c\n\x08GRPC_BIN\x10\x02\x12\x17\n\x13\x43LOUD_TRACE_CONTEXT\x10\x03\x12\x06\n\x02\x42\x33\x10\x04\x1a\xe9\x01\n\tCustomTag\x12@\n\x07literal\x18\x01 \x01(\x0b\x32$.istio.mesh.v1alpha1.Tracing.LiteralH\x00R\x07literal\x12L\n\x0b\x65nvironment\x18\x02 \x01(\x0b\x32(.istio.mesh.v1alpha1.Tracing.EnvironmentH\x00R\x0b\x65nvironment\x12\x44\n\x06header\x18\x03 \x01(\x0b\x32*.istio.mesh.v1alpha1.Tracing.RequestHeaderH\x00R\x06headerB\x06\n\x04type\x1a\x1f\n\x07Literal\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\x1a\x46\n\x0b\x45nvironment\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12#\n\rdefault_value\x18\x02 \x01(\tR\x0c\x64\x65\x66\x61ultValue\x1aH\n\rRequestHeader\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12#\n\rdefault_value\x18\x02 \x01(\tR\x0c\x64\x65\x66\x61ultValue\x1a\x65\n\x0f\x43ustomTagsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\x05value\x18\x02 \x01(\x0b\x32&.istio.mesh.v1alpha1.Tracing.CustomTagR\x05value:\x02\x38\x01\x42\x08\n\x06tracer\"F\n\x03SDS\x12\x18\n\x07\x65nabled\x18\x01 \x01(\x08R\x07\x65nabled\x12%\n\x0fk8s_sa_jwt_path\x18\x02 \x01(\tR\x0ck8sSaJwtPath\"\xbc\x02\n\x08Topology\x12.\n\x13num_trusted_proxies\x18\x01 \x01(\rR\x11numTrustedProxies\x12u\n\x1b\x66orward_client_cert_details\x18\x02 \x01(\x0e\x32\x36.istio.mesh.v1alpha1.Topology.ForwardClientCertDetailsR\x18\x66orwardClientCertDetails\"\x88\x01\n\x18\x46orwardClientCertDetails\x12\r\n\tUNDEFINED\x10\x00\x12\x0c\n\x08SANITIZE\x10\x01\x12\x10\n\x0c\x46ORWARD_ONLY\x10\x02\x12\x12\n\x0e\x41PPEND_FORWARD\x10\x03\x12\x10\n\x0cSANITIZE_SET\x10\x04\x12\x17\n\x13\x41LWAYS_FORWARD_ONLY\x10\x05\"\xdf\x14\n\x0bProxyConfig\x12\x1f\n\x0b\x63onfig_path\x18\x01 \x01(\tR\nconfigPath\x12\x1f\n\x0b\x62inary_path\x18\x02 \x01(\tR\nbinaryPath\x12)\n\x0fservice_cluster\x18\x03 \x01(\tH\x00R\x0eserviceCluster\x12g\n\x14tracing_service_name\x18$ \x01(\x0e\x32\x33.istio.mesh.v1alpha1.ProxyConfig.TracingServiceNameH\x00R\x12tracingServiceName\x12@\n\x0e\x64rain_duration\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\rdrainDuration\x12S\n\x18parent_shutdown_duration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationR\x16parentShutdownDuration\x12+\n\x11\x64iscovery_address\x18\x06 \x01(\tR\x10\x64iscoveryAddress\x12U\n\x17\x64iscovery_refresh_delay\x18\x07 \x01(\x0b\x32\x19.google.protobuf.DurationB\x02\x18\x01R\x15\x64iscoveryRefreshDelay\x12)\n\x0ezipkin_address\x18\x08 \x01(\tB\x02\x18\x01R\rzipkinAddress\x12,\n\x12statsd_udp_address\x18\n \x01(\tR\x10statsdUdpAddress\x12\x45\n\x1d\x65nvoy_metrics_service_address\x18\x14 \x01(\tB\x02\x18\x01R\x1a\x65nvoyMetricsServiceAddress\x12(\n\x10proxy_admin_port\x18\x0b \x01(\x05R\x0eproxyAdminPort\x12/\n\x11\x61vailability_zone\x18\x0c \x01(\tB\x02\x18\x01R\x10\x61vailabilityZone\x12\x64\n\x19\x63ontrol_plane_auth_policy\x18\r \x01(\x0e\x32).istio.mesh.v1alpha1.AuthenticationPolicyR\x16\x63ontrolPlaneAuthPolicy\x12,\n\x12\x63ustom_config_file\x18\x0e \x01(\tR\x10\x63ustomConfigFile\x12(\n\x10stat_name_length\x18\x0f \x01(\x05R\x0estatNameLength\x12=\n\x0b\x63oncurrency\x18\x10 \x01(\x0b\x32\x1b.google.protobuf.Int32ValueR\x0b\x63oncurrency\x12\x41\n\x1dproxy_bootstrap_template_path\x18\x11 \x01(\tR\x1aproxyBootstrapTemplatePath\x12\x65\n\x11interception_mode\x18\x12 \x01(\x0e\x32\x38.istio.mesh.v1alpha1.ProxyConfig.InboundInterceptionModeR\x10interceptionMode\x12\x36\n\x07tracing\x18\x13 \x01(\x0b\x32\x1c.istio.mesh.v1alpha1.TracingR\x07tracing\x12*\n\x03sds\x18\x15 \x01(\x0b\x32\x18.istio.mesh.v1alpha1.SDSR\x03sds\x12[\n\x18\x65nvoy_access_log_service\x18\x16 \x01(\x0b\x32\".istio.mesh.v1alpha1.RemoteServiceR\x15\x65nvoyAccessLogService\x12V\n\x15\x65nvoy_metrics_service\x18\x17 \x01(\x0b\x32\".istio.mesh.v1alpha1.RemoteServiceR\x13\x65nvoyMetricsService\x12Z\n\x0eproxy_metadata\x18\x18 \x03(\x0b\x32\x33.istio.mesh.v1alpha1.ProxyConfig.ProxyMetadataEntryR\rproxyMetadata\x12\x1f\n\x0bstatus_port\x18\x1a \x01(\x05R\nstatusPort\x12&\n\x0f\x65xtra_stat_tags\x18\x1b \x03(\tR\rextraStatTags\x12H\n\x10gateway_topology\x18\x1c \x01(\x0b\x32\x1d.istio.mesh.v1alpha1.TopologyR\x0fgatewayTopology\x12W\n\x1atermination_drain_duration\x18\x1d \x01(\x0b\x32\x19.google.protobuf.DurationR\x18terminationDrainDuration\x12\x17\n\x07mesh_id\x18\x1e \x01(\tR\x06meshId\x12R\n\x0freadiness_probe\x18\x1f \x01(\x0b\x32).istio.networking.v1alpha3.ReadinessProbeR\x0ereadinessProbe\x12\x62\n\x13proxy_stats_matcher\x18 \x01(\x0b\x32\x32.istio.mesh.v1alpha1.ProxyConfig.ProxyStatsMatcherR\x11proxyStatsMatcher\x12h\n#hold_application_until_proxy_starts\x18! \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x1fholdApplicationUntilProxyStarts\x12.\n\x13\x63\x61_certificates_pem\x18\" \x03(\tR\x11\x63\x61\x43\x65rtificatesPem\x12:\n\x05image\x18# \x01(\x0b\x32$.istio.networking.v1beta1.ProxyImageR\x05image\x1a@\n\x12ProxyMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1a\x9e\x01\n\x11ProxyStatsMatcher\x12-\n\x12inclusion_prefixes\x18\x01 \x03(\tR\x11inclusionPrefixes\x12-\n\x12inclusion_suffixes\x18\x02 \x03(\tR\x11inclusionSuffixes\x12+\n\x11inclusion_regexps\x18\x03 \x03(\tR\x10inclusionRegexps\"l\n\x12TracingServiceName\x12\x1b\n\x17\x41PP_LABEL_AND_NAMESPACE\x10\x00\x12\x17\n\x13\x43\x41NONICAL_NAME_ONLY\x10\x01\x12 \n\x1c\x43\x41NONICAL_NAME_AND_NAMESPACE\x10\x02\"=\n\x17InboundInterceptionMode\x12\x0c\n\x08REDIRECT\x10\x00\x12\n\n\x06TPROXY\x10\x01\x12\x08\n\x04NONE\x10\x02\x42\x0e\n\x0c\x63luster_nameJ\x04\x08\t\x10\nR\x0f\x63onnect_timeout\"\xeb\x01\n\rRemoteService\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12O\n\x0ctls_settings\x18\x02 \x01(\x0b\x32,.istio.networking.v1alpha3.ClientTLSSettingsR\x0btlsSettings\x12o\n\rtcp_keepalive\x18\x03 \x01(\x0b\x32J.istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepaliveR\x0ctcpKeepalive*>\n\x14\x41uthenticationPolicy\x12\x08\n\x04NONE\x10\x00\x12\x0e\n\nMUTUAL_TLS\x10\x01\x12\x0c\n\x07INHERIT\x10\xe8\x07\x42\x1cZ\x1aistio.io/api/mesh/v1alpha1b\x06proto3' + serialized_pb=b'\n\x19mesh/v1alpha1/proxy.proto\x12\x13istio.mesh.v1alpha1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a*networking/v1alpha3/destination_rule.proto\x1a(networking/v1alpha3/workload_group.proto\x1a%networking/v1beta1/proxy_config.proto\"\xa5\x0e\n\x07Tracing\x12=\n\x06zipkin\x18\x01 \x01(\x0b\x32#.istio.mesh.v1alpha1.Tracing.ZipkinH\x00R\x06zipkin\x12\x46\n\tlightstep\x18\x02 \x01(\x0b\x32&.istio.mesh.v1alpha1.Tracing.LightstepH\x00R\tlightstep\x12@\n\x07\x64\x61tadog\x18\x03 \x01(\x0b\x32$.istio.mesh.v1alpha1.Tracing.DatadogH\x00R\x07\x64\x61tadog\x12L\n\x0bstackdriver\x18\x04 \x01(\x0b\x32(.istio.mesh.v1alpha1.Tracing.StackdriverH\x00R\x0bstackdriver\x12Z\n\x11open_census_agent\x18\t \x01(\x0b\x32,.istio.mesh.v1alpha1.Tracing.OpenCensusAgentH\x00R\x0fopenCensusAgent\x12M\n\x0b\x63ustom_tags\x18\x05 \x03(\x0b\x32,.istio.mesh.v1alpha1.Tracing.CustomTagsEntryR\ncustomTags\x12-\n\x13max_path_tag_length\x18\x06 \x01(\rR\x10maxPathTagLength\x12\x1a\n\x08sampling\x18\x07 \x01(\x01R\x08sampling\x12O\n\x0ctls_settings\x18\x08 \x01(\x0b\x32,.istio.networking.v1alpha3.ClientTLSSettingsR\x0btlsSettings\x1a\"\n\x06Zipkin\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x1aH\n\tLightstep\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12!\n\x0c\x61\x63\x63\x65ss_token\x18\x02 \x01(\tR\x0b\x61\x63\x63\x65ssToken\x1a#\n\x07\x44\x61tadog\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x1a\xae\x02\n\x0bStackdriver\x12\x14\n\x05\x64\x65\x62ug\x18\x01 \x01(\x08R\x05\x64\x65\x62ug\x12T\n\x18max_number_of_attributes\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueR\x15maxNumberOfAttributes\x12V\n\x19max_number_of_annotations\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueR\x16maxNumberOfAnnotations\x12[\n\x1cmax_number_of_message_events\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueR\x18maxNumberOfMessageEvents\x1a\xe7\x01\n\x0fOpenCensusAgent\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12S\n\x07\x63ontext\x18\x02 \x03(\x0e\x32\x39.istio.mesh.v1alpha1.Tracing.OpenCensusAgent.TraceContextR\x07\x63ontext\"e\n\x0cTraceContext\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x15\n\x11W3C_TRACE_CONTEXT\x10\x01\x12\x0c\n\x08GRPC_BIN\x10\x02\x12\x17\n\x13\x43LOUD_TRACE_CONTEXT\x10\x03\x12\x06\n\x02\x42\x33\x10\x04\x1a\xe9\x01\n\tCustomTag\x12@\n\x07literal\x18\x01 \x01(\x0b\x32$.istio.mesh.v1alpha1.Tracing.LiteralH\x00R\x07literal\x12L\n\x0b\x65nvironment\x18\x02 \x01(\x0b\x32(.istio.mesh.v1alpha1.Tracing.EnvironmentH\x00R\x0b\x65nvironment\x12\x44\n\x06header\x18\x03 \x01(\x0b\x32*.istio.mesh.v1alpha1.Tracing.RequestHeaderH\x00R\x06headerB\x06\n\x04type\x1a\x1f\n\x07Literal\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\x1a\x46\n\x0b\x45nvironment\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12#\n\rdefault_value\x18\x02 \x01(\tR\x0c\x64\x65\x66\x61ultValue\x1aH\n\rRequestHeader\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12#\n\rdefault_value\x18\x02 \x01(\tR\x0c\x64\x65\x66\x61ultValue\x1a\x65\n\x0f\x43ustomTagsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\x05value\x18\x02 \x01(\x0b\x32&.istio.mesh.v1alpha1.Tracing.CustomTagR\x05value:\x02\x38\x01\x42\x08\n\x06tracer\"F\n\x03SDS\x12\x18\n\x07\x65nabled\x18\x01 \x01(\x08R\x07\x65nabled\x12%\n\x0fk8s_sa_jwt_path\x18\x02 \x01(\tR\x0ck8sSaJwtPath\"\xbc\x02\n\x08Topology\x12.\n\x13num_trusted_proxies\x18\x01 \x01(\rR\x11numTrustedProxies\x12u\n\x1b\x66orward_client_cert_details\x18\x02 \x01(\x0e\x32\x36.istio.mesh.v1alpha1.Topology.ForwardClientCertDetailsR\x18\x66orwardClientCertDetails\"\x88\x01\n\x18\x46orwardClientCertDetails\x12\r\n\tUNDEFINED\x10\x00\x12\x0c\n\x08SANITIZE\x10\x01\x12\x10\n\x0c\x46ORWARD_ONLY\x10\x02\x12\x12\n\x0e\x41PPEND_FORWARD\x10\x03\x12\x10\n\x0cSANITIZE_SET\x10\x04\x12\x17\n\x13\x41LWAYS_FORWARD_ONLY\x10\x05\"\xb6\x16\n\x0bProxyConfig\x12\x1f\n\x0b\x63onfig_path\x18\x01 \x01(\tR\nconfigPath\x12\x1f\n\x0b\x62inary_path\x18\x02 \x01(\tR\nbinaryPath\x12)\n\x0fservice_cluster\x18\x03 \x01(\tH\x00R\x0eserviceCluster\x12g\n\x14tracing_service_name\x18$ \x01(\x0e\x32\x33.istio.mesh.v1alpha1.ProxyConfig.TracingServiceNameH\x00R\x12tracingServiceName\x12@\n\x0e\x64rain_duration\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\rdrainDuration\x12S\n\x18parent_shutdown_duration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationR\x16parentShutdownDuration\x12+\n\x11\x64iscovery_address\x18\x06 \x01(\tR\x10\x64iscoveryAddress\x12U\n\x17\x64iscovery_refresh_delay\x18\x07 \x01(\x0b\x32\x19.google.protobuf.DurationB\x02\x18\x01R\x15\x64iscoveryRefreshDelay\x12)\n\x0ezipkin_address\x18\x08 \x01(\tB\x02\x18\x01R\rzipkinAddress\x12,\n\x12statsd_udp_address\x18\n \x01(\tR\x10statsdUdpAddress\x12\x45\n\x1d\x65nvoy_metrics_service_address\x18\x14 \x01(\tB\x02\x18\x01R\x1a\x65nvoyMetricsServiceAddress\x12(\n\x10proxy_admin_port\x18\x0b \x01(\x05R\x0eproxyAdminPort\x12/\n\x11\x61vailability_zone\x18\x0c \x01(\tB\x02\x18\x01R\x10\x61vailabilityZone\x12\x64\n\x19\x63ontrol_plane_auth_policy\x18\r \x01(\x0e\x32).istio.mesh.v1alpha1.AuthenticationPolicyR\x16\x63ontrolPlaneAuthPolicy\x12,\n\x12\x63ustom_config_file\x18\x0e \x01(\tR\x10\x63ustomConfigFile\x12(\n\x10stat_name_length\x18\x0f \x01(\x05R\x0estatNameLength\x12=\n\x0b\x63oncurrency\x18\x10 \x01(\x0b\x32\x1b.google.protobuf.Int32ValueR\x0b\x63oncurrency\x12\x41\n\x1dproxy_bootstrap_template_path\x18\x11 \x01(\tR\x1aproxyBootstrapTemplatePath\x12\x65\n\x11interception_mode\x18\x12 \x01(\x0e\x32\x38.istio.mesh.v1alpha1.ProxyConfig.InboundInterceptionModeR\x10interceptionMode\x12\x36\n\x07tracing\x18\x13 \x01(\x0b\x32\x1c.istio.mesh.v1alpha1.TracingR\x07tracing\x12*\n\x03sds\x18\x15 \x01(\x0b\x32\x18.istio.mesh.v1alpha1.SDSR\x03sds\x12[\n\x18\x65nvoy_access_log_service\x18\x16 \x01(\x0b\x32\".istio.mesh.v1alpha1.RemoteServiceR\x15\x65nvoyAccessLogService\x12V\n\x15\x65nvoy_metrics_service\x18\x17 \x01(\x0b\x32\".istio.mesh.v1alpha1.RemoteServiceR\x13\x65nvoyMetricsService\x12Z\n\x0eproxy_metadata\x18\x18 \x03(\x0b\x32\x33.istio.mesh.v1alpha1.ProxyConfig.ProxyMetadataEntryR\rproxyMetadata\x12\x1f\n\x0bstatus_port\x18\x1a \x01(\x05R\nstatusPort\x12&\n\x0f\x65xtra_stat_tags\x18\x1b \x03(\tR\rextraStatTags\x12H\n\x10gateway_topology\x18\x1c \x01(\x0b\x32\x1d.istio.mesh.v1alpha1.TopologyR\x0fgatewayTopology\x12W\n\x1atermination_drain_duration\x18\x1d \x01(\x0b\x32\x19.google.protobuf.DurationR\x18terminationDrainDuration\x12\x17\n\x07mesh_id\x18\x1e \x01(\tR\x06meshId\x12R\n\x0freadiness_probe\x18\x1f \x01(\x0b\x32).istio.networking.v1alpha3.ReadinessProbeR\x0ereadinessProbe\x12\x62\n\x13proxy_stats_matcher\x18 \x01(\x0b\x32\x32.istio.mesh.v1alpha1.ProxyConfig.ProxyStatsMatcherR\x11proxyStatsMatcher\x12h\n#hold_application_until_proxy_starts\x18! \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x1fholdApplicationUntilProxyStarts\x12.\n\x13\x63\x61_certificates_pem\x18\" \x03(\tR\x11\x63\x61\x43\x65rtificatesPem\x12:\n\x05image\x18# \x01(\x0b\x32$.istio.networking.v1beta1.ProxyImageR\x05image\x12U\n\rproxy_headers\x18% \x03(\x0e\x32\x30.istio.mesh.v1alpha1.ProxyConfig.HeaderSpecifierR\x0cproxyHeaders\x1a@\n\x12ProxyMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1a\x9e\x01\n\x11ProxyStatsMatcher\x12-\n\x12inclusion_prefixes\x18\x01 \x03(\tR\x11inclusionPrefixes\x12-\n\x12inclusion_suffixes\x18\x02 \x03(\tR\x11inclusionSuffixes\x12+\n\x11inclusion_regexps\x18\x03 \x03(\tR\x10inclusionRegexps\"l\n\x12TracingServiceName\x12\x1b\n\x17\x41PP_LABEL_AND_NAMESPACE\x10\x00\x12\x17\n\x13\x43\x41NONICAL_NAME_ONLY\x10\x01\x12 \n\x1c\x43\x41NONICAL_NAME_AND_NAMESPACE\x10\x02\"=\n\x17InboundInterceptionMode\x12\x0c\n\x08REDIRECT\x10\x00\x12\n\n\x06TPROXY\x10\x01\x12\x08\n\x04NONE\x10\x02\"~\n\x0fHeaderSpecifier\x12\x0e\n\nNO_HEADERS\x10\x00\x12\x19\n\x15\x46ORWARDED_CLIENT_CERT\x10\x01\x12\x0e\n\nREQUEST_ID\x10\x02\x12\x11\n\rATTEMPT_COUNT\x10\x03\x12\x11\n\rENVOY_HEADERS\x10\x04\x12\n\n\x06SERVER\x10\x05\x42\x0e\n\x0c\x63luster_nameJ\x04\x08\t\x10\nR\x0f\x63onnect_timeout\"\xeb\x01\n\rRemoteService\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12O\n\x0ctls_settings\x18\x02 \x01(\x0b\x32,.istio.networking.v1alpha3.ClientTLSSettingsR\x0btlsSettings\x12o\n\rtcp_keepalive\x18\x03 \x01(\x0b\x32J.istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepaliveR\x0ctcpKeepalive*>\n\x14\x41uthenticationPolicy\x12\x08\n\x04NONE\x10\x00\x12\x0e\n\nMUTUAL_TLS\x10\x01\x12\x0c\n\x07INHERIT\x10\xe8\x07\x42\x1cZ\x1aistio.io/api/mesh/v1alpha1b\x06proto3' , dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_destination__rule__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_workload__group__pb2.DESCRIPTOR,networking_dot_v1beta1_dot_proxy__config__pb2.DESCRIPTOR,]) @@ -54,8 +54,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=5358, - serialized_end=5420, + serialized_start=5573, + serialized_end=5635, ) _sym_db.RegisterEnumDescriptor(_AUTHENTICATIONPOLICY) @@ -175,8 +175,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=4908, - serialized_end=5016, + serialized_start=4995, + serialized_end=5103, ) _sym_db.RegisterEnumDescriptor(_PROXYCONFIG_TRACINGSERVICENAME) @@ -205,11 +205,56 @@ ], containing_type=None, serialized_options=None, - serialized_start=5018, - serialized_end=5079, + serialized_start=5105, + serialized_end=5166, ) _sym_db.RegisterEnumDescriptor(_PROXYCONFIG_INBOUNDINTERCEPTIONMODE) +_PROXYCONFIG_HEADERSPECIFIER = _descriptor.EnumDescriptor( + name='HeaderSpecifier', + full_name='istio.mesh.v1alpha1.ProxyConfig.HeaderSpecifier', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='NO_HEADERS', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FORWARDED_CLIENT_CERT', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REQUEST_ID', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ATTEMPT_COUNT', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENVOY_HEADERS', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SERVER', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=5168, + serialized_end=5294, +) +_sym_db.RegisterEnumDescriptor(_PROXYCONFIG_HEADERSPECIFIER) + _TRACING_ZIPKIN = _descriptor.Descriptor( name='Zipkin', @@ -803,8 +848,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4681, - serialized_end=4745, + serialized_start=4768, + serialized_end=4832, ) _PROXYCONFIG_PROXYSTATSMATCHER = _descriptor.Descriptor( @@ -848,8 +893,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4748, - serialized_end=4906, + serialized_start=4835, + serialized_end=4993, ) _PROXYCONFIG = _descriptor.Descriptor( @@ -1098,6 +1143,13 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, json_name='image', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='proxy_headers', full_name='istio.mesh.v1alpha1.ProxyConfig.proxy_headers', index=34, + number=37, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, json_name='proxyHeaders', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -1105,6 +1157,7 @@ enum_types=[ _PROXYCONFIG_TRACINGSERVICENAME, _PROXYCONFIG_INBOUNDINTERCEPTIONMODE, + _PROXYCONFIG_HEADERSPECIFIER, ], serialized_options=None, is_extendable=False, @@ -1118,7 +1171,7 @@ fields=[]), ], serialized_start=2463, - serialized_end=5118, + serialized_end=5333, ) @@ -1163,8 +1216,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5121, - serialized_end=5356, + serialized_start=5336, + serialized_end=5571, ) _TRACING_ZIPKIN.containing_type = _TRACING @@ -1239,8 +1292,10 @@ _PROXYCONFIG.fields_by_name['proxy_stats_matcher'].message_type = _PROXYCONFIG_PROXYSTATSMATCHER _PROXYCONFIG.fields_by_name['hold_application_until_proxy_starts'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE _PROXYCONFIG.fields_by_name['image'].message_type = networking_dot_v1beta1_dot_proxy__config__pb2._PROXYIMAGE +_PROXYCONFIG.fields_by_name['proxy_headers'].enum_type = _PROXYCONFIG_HEADERSPECIFIER _PROXYCONFIG_TRACINGSERVICENAME.containing_type = _PROXYCONFIG _PROXYCONFIG_INBOUNDINTERCEPTIONMODE.containing_type = _PROXYCONFIG +_PROXYCONFIG_HEADERSPECIFIER.containing_type = _PROXYCONFIG _PROXYCONFIG.oneofs_by_name['cluster_name'].fields.append( _PROXYCONFIG.fields_by_name['service_cluster']) _PROXYCONFIG.fields_by_name['service_cluster'].containing_oneof = _PROXYCONFIG.oneofs_by_name['cluster_name']
NameDescription
NO_HEADERS +
FORWARDED_CLIENT_CERT +

Specify to set the X-Forwarded-Client-Cert header for mTLS connections

+ +
REQUEST_ID +

Specify to generate a X-Request-Id header for a request, if one is not already set

+ +
ATTEMPT_COUNT +

Specify to include the X-Envoy-Attempt-Count header for requests.

+ +
ENVOY_HEADERS +

Specify to include various X-Envoy-* headers, such as X-Envoy-Overloaded and `X-Envoy-Upstream-Service-Time.

+ +
SERVER +

Specify to include a Server: envoy header.

+