From 8920ca4382542466ff8fbd74baff221badbe8283 Mon Sep 17 00:00:00 2001 From: Jonh Wendell Date: Fri, 13 Sep 2019 15:48:55 -0400 Subject: [PATCH] Add mirror_percent (#1079) This allows us to mirror only a percentage of the traffic, instead of always mirroring 100%. This partially fixes https://github.com/istio/istio/issues/14437, in conjuction with https://github.com/istio/istio/pull/16939. --- mixer/v1/istio.mixer.v1.json | 2 +- networking/v1alpha3/virtual_service.json | 5 + networking/v1alpha3/virtual_service.pb.go | 303 +++++++++++------- networking/v1alpha3/virtual_service.pb.html | 38 ++- networking/v1alpha3/virtual_service.proto | 5 + .../v1alpha3/virtual_service_pb2.py | 150 +++++---- 6 files changed, 312 insertions(+), 191 deletions(-) diff --git a/mixer/v1/istio.mixer.v1.json b/mixer/v1/istio.mixer.v1.json index ae527876..d61233e0 100644 --- a/mixer/v1/istio.mixer.v1.json +++ b/mixer/v1/istio.mixer.v1.json @@ -464,7 +464,7 @@ } }, "istio.mixer.v1.ReportRequest.RepeatedAttributesSemantics": { - "description": "Used to signal how the sets of compressed attributes should be reconstitued server-side.", + "description": "Used to signal how the sets of compressed attributes should be reconstituted server-side.", "type": "string", "enum": [ "DELTA_ENCODING", diff --git a/networking/v1alpha3/virtual_service.json b/networking/v1alpha3/virtual_service.json index 0bd7389c..cf4150c7 100644 --- a/networking/v1alpha3/virtual_service.json +++ b/networking/v1alpha3/virtual_service.json @@ -130,6 +130,11 @@ "mirror": { "$ref": "#/components/schemas/istio.networking.v1alpha3.Destination" }, + "mirrorPercent": { + "description": "Percentage of the traffic to be mirrored by the `mirror` field. If this field is absent, all the traffic (100%) will be mirrored. Max value is 100.", + "type": "integer", + "nullable": true + }, "corsPolicy": { "$ref": "#/components/schemas/istio.networking.v1alpha3.CorsPolicy" }, diff --git a/networking/v1alpha3/virtual_service.pb.go b/networking/v1alpha3/virtual_service.pb.go index e274e55f..3088daf0 100644 --- a/networking/v1alpha3/virtual_service.pb.go +++ b/networking/v1alpha3/virtual_service.pb.go @@ -526,6 +526,10 @@ type HTTPRoute struct { // original destination. Statistics will be generated for the mirrored // destination. Mirror *Destination `protobuf:"bytes,9,opt,name=mirror,proto3" json:"mirror,omitempty"` + // Percentage of the traffic to be mirrored by the `mirror` field. + // If this field is absent, all the traffic (100%) will be mirrored. + // Max value is 100. + MirrorPercent *types.UInt32Value `protobuf:"bytes,18,opt,name=mirror_percent,json=mirrorPercent,proto3" json:"mirror_percent,omitempty"` // Cross-Origin Resource Sharing policy (CORS). Refer to // [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) // for further details about cross origin resource sharing. @@ -650,6 +654,13 @@ func (m *HTTPRoute) GetMirror() *Destination { return nil } +func (m *HTTPRoute) GetMirrorPercent() *types.UInt32Value { + if m != nil { + return m.MirrorPercent + } + return nil +} + func (m *HTTPRoute) GetCorsPolicy() *CorsPolicy { if m != nil { return m.CorsPolicy @@ -3024,125 +3035,127 @@ func init() { } var fileDescriptor_e85a9a4fa9c17a22 = []byte{ - // 1882 bytes of a gzipped FileDescriptorProto + // 1911 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0xcd, 0x72, 0x1b, 0xc7, - 0x11, 0x16, 0x00, 0xe2, 0xaf, 0x01, 0x48, 0xe0, 0x84, 0x96, 0x57, 0xb0, 0x4b, 0xa1, 0xa1, 0xd8, - 0x61, 0xca, 0x31, 0x58, 0xa1, 0x12, 0x87, 0xe5, 0xc8, 0xb2, 0x49, 0x4a, 0x32, 0x94, 0x92, 0x42, - 0x66, 0x49, 0xfb, 0x90, 0xcb, 0xd6, 0x60, 0xb7, 0x09, 0x6c, 0x04, 0xec, 0xac, 0x66, 0x67, 0x49, - 0xa0, 0x72, 0x74, 0x7e, 0xce, 0x49, 0xe5, 0x9a, 0x5b, 0x9e, 0x22, 0x97, 0x5c, 0x73, 0x4a, 0xe5, - 0x09, 0x52, 0x2e, 0x1d, 0xf2, 0x1c, 0xa9, 0x99, 0xd9, 0x5d, 0x2c, 0x01, 0x12, 0x0b, 0x30, 0x52, - 0xca, 0x27, 0x62, 0x66, 0xfa, 0xeb, 0xee, 0xe9, 0x99, 0xe9, 0xfe, 0xb6, 0x09, 0x3f, 0xf0, 0x50, - 0x9c, 0x33, 0xfe, 0xc2, 0xf5, 0xfa, 0xdb, 0x67, 0x3f, 0xa2, 0x43, 0x7f, 0x40, 0xef, 0x6f, 0x9f, - 0xb9, 0x5c, 0x84, 0x74, 0x68, 0x05, 0xc8, 0xcf, 0x5c, 0x1b, 0x3b, 0x3e, 0x67, 0x82, 0x91, 0x3b, - 0x6e, 0x20, 0x5c, 0xd6, 0x99, 0x02, 0x3a, 0x31, 0xa0, 0x75, 0xb7, 0xcf, 0x58, 0x7f, 0x88, 0xdb, - 0x4a, 0xb0, 0x17, 0x9e, 0x6e, 0x3b, 0x21, 0xa7, 0xc2, 0x65, 0x9e, 0x86, 0xce, 0xaf, 0x9f, 0x73, - 0xea, 0xfb, 0xc8, 0x03, 0xbd, 0xde, 0xfe, 0x43, 0x1e, 0x6e, 0x7e, 0xa5, 0x8d, 0x1e, 0x6b, 0x9b, - 0x64, 0x03, 0x8a, 0x03, 0x16, 0x88, 0xc0, 0xc8, 0x6d, 0x16, 0xb6, 0xaa, 0xa6, 0x1e, 0x90, 0x16, - 0x54, 0xfa, 0x54, 0xe0, 0x39, 0x9d, 0x04, 0x46, 0x5e, 0x2d, 0x24, 0x63, 0xb2, 0x0b, 0x6b, 0x03, - 0x21, 0x7c, 0xa3, 0xb0, 0x59, 0xd8, 0xaa, 0xed, 0x7c, 0xaf, 0x73, 0xa5, 0xbb, 0x9d, 0xee, 0xc9, - 0xc9, 0x91, 0xc9, 0x42, 0x81, 0xa6, 0x42, 0x90, 0x9f, 0x40, 0x41, 0x0c, 0x03, 0xa3, 0xa8, 0x80, - 0xf7, 0x16, 0x00, 0x4f, 0x9e, 0x1d, 0x6b, 0x9c, 0x94, 0x57, 0x30, 0xdb, 0x37, 0xd6, 0xb2, 0x61, - 0x07, 0x47, 0x31, 0xcc, 0xf6, 0xc9, 0x3b, 0x50, 0xc5, 0xb1, 0xcf, 0xb8, 0xb0, 0x04, 0x33, 0x4a, - 0x7a, 0x13, 0x7a, 0xe2, 0x84, 0xb5, 0xcf, 0xa0, 0xf6, 0x08, 0x03, 0xe1, 0x7a, 0x2a, 0x7c, 0x84, - 0xc0, 0x9a, 0xdc, 0xb8, 0x91, 0xdb, 0xcc, 0x6d, 0x55, 0x4d, 0xf5, 0x9b, 0xdc, 0x86, 0x52, 0x10, - 0xf6, 0x02, 0x14, 0x46, 0x5e, 0xcd, 0x46, 0x23, 0xf2, 0x33, 0x58, 0x93, 0x4a, 0x8c, 0xc2, 0x66, - 0x6e, 0xab, 0xb6, 0xf3, 0xfd, 0x05, 0xfe, 0x1c, 0x31, 0x2e, 0x8e, 0x71, 0x88, 0xb6, 0x60, 0xdc, - 0x54, 0xa0, 0xf6, 0xd7, 0x35, 0xa8, 0x26, 0x61, 0x91, 0x66, 0x3d, 0x3a, 0x42, 0x63, 0x5d, 0x9b, - 0x95, 0xbf, 0xc9, 0x1e, 0x14, 0x47, 0x54, 0xd8, 0x03, 0x75, 0x20, 0xb5, 0x9d, 0x0f, 0x33, 0xe2, - 0xfb, 0x5c, 0xca, 0x9a, 0xf8, 0x32, 0xc4, 0x40, 0x98, 0x1a, 0x49, 0x1e, 0x43, 0x91, 0x4b, 0xfd, - 0xea, 0xe8, 0x6a, 0x3b, 0xdb, 0xcb, 0x1c, 0x51, 0x2a, 0x1a, 0xa6, 0x46, 0x93, 0x03, 0xa8, 0x70, - 0x74, 0x5c, 0x8e, 0xf6, 0x32, 0x9b, 0x55, 0x9a, 0x22, 0x71, 0x33, 0x01, 0x92, 0xcf, 0xa1, 0xcc, - 0xf1, 0x9c, 0xbb, 0x02, 0x8d, 0x35, 0xa5, 0xe3, 0x83, 0x4c, 0x1d, 0x4a, 0xda, 0x8c, 0x61, 0xe4, - 0x43, 0x58, 0x3f, 0xc7, 0x5e, 0xc0, 0xec, 0x17, 0x28, 0xac, 0xd0, 0xef, 0x73, 0xea, 0xa0, 0x51, - 0xdc, 0xcc, 0x6d, 0x55, 0xcc, 0x66, 0xb2, 0xf0, 0xa5, 0x9e, 0x27, 0xf7, 0xa1, 0x2c, 0xdc, 0x11, - 0xb2, 0x50, 0x18, 0x25, 0x65, 0xee, 0x4e, 0x47, 0xbf, 0x89, 0x4e, 0xfc, 0x26, 0x3a, 0x8f, 0xa2, - 0x37, 0x63, 0xc6, 0x92, 0xe4, 0xa1, 0xf4, 0x51, 0x70, 0x17, 0x03, 0xa3, 0xac, 0x40, 0x99, 0x97, - 0x1a, 0x05, 0x9f, 0x98, 0x31, 0x88, 0x1c, 0x40, 0xf1, 0x94, 0x86, 0x43, 0x61, 0x54, 0x14, 0xfa, - 0xa3, 0x0c, 0xf4, 0x13, 0x29, 0xfb, 0xd4, 0xfb, 0x35, 0xda, 0x3a, 0xda, 0x0a, 0x4b, 0x1e, 0x42, - 0x69, 0xe4, 0x72, 0xce, 0xb8, 0x51, 0xcd, 0x8c, 0x53, 0xfa, 0xb0, 0x22, 0x14, 0x79, 0x02, 0x35, - 0x9b, 0xf1, 0xc0, 0xf2, 0xd9, 0xd0, 0xb5, 0x27, 0x06, 0x28, 0x25, 0xef, 0x2f, 0x50, 0x72, 0xc0, - 0x78, 0x70, 0xa4, 0x84, 0x4d, 0xb0, 0x93, 0xdf, 0xa4, 0x07, 0x37, 0x65, 0xce, 0xf0, 0x1c, 0x6b, - 0x80, 0xd4, 0x41, 0x1e, 0x18, 0x35, 0x75, 0x8b, 0x7e, 0xba, 0xcc, 0x2d, 0xea, 0xec, 0x29, 0x68, - 0x57, 0x23, 0x1f, 0x7b, 0x82, 0x4f, 0xf6, 0xf3, 0x46, 0xce, 0x6c, 0xd0, 0xf4, 0x3c, 0xf9, 0x04, - 0xde, 0xe6, 0x38, 0x62, 0x67, 0x68, 0x71, 0x0c, 0x7c, 0xe6, 0x05, 0x98, 0x18, 0xab, 0xcb, 0x87, - 0xaa, 0x30, 0x6f, 0x69, 0x11, 0x33, 0x92, 0x88, 0xb1, 0xbf, 0x81, 0xb7, 0x23, 0xff, 0xe6, 0xb0, - 0x0d, 0xe5, 0xe8, 0x67, 0x2b, 0x38, 0x3a, 0xa3, 0x7c, 0xea, 0xf0, 0x5b, 0xf4, 0xb2, 0x75, 0xb2, - 0x0b, 0xb7, 0x13, 0xc7, 0xd5, 0x93, 0x4b, 0x6c, 0xdf, 0x4c, 0xfc, 0xde, 0x88, 0xfd, 0x56, 0x02, - 0x31, 0x72, 0x0c, 0xb7, 0x13, 0xb7, 0x2f, 0x22, 0x6f, 0x29, 0xaf, 0x1f, 0xae, 0xe4, 0x75, 0x5a, - 0xf5, 0xd4, 0xe9, 0x0d, 0x7a, 0xc9, 0x32, 0x79, 0x00, 0xe5, 0xd8, 0x54, 0x53, 0x5d, 0x8a, 0xf6, - 0x22, 0x53, 0x5a, 0xd2, 0x8c, 0x21, 0xad, 0xcf, 0x81, 0xcc, 0x9f, 0x29, 0x69, 0x42, 0xe1, 0x05, - 0x4e, 0xa2, 0x74, 0x29, 0x7f, 0xca, 0x3a, 0x72, 0x46, 0x87, 0x21, 0x46, 0xc9, 0x52, 0x0f, 0x3e, - 0xc9, 0xef, 0xe6, 0x5a, 0x5d, 0x68, 0x5d, 0x1d, 0xec, 0x95, 0x34, 0x7d, 0x01, 0x77, 0xae, 0x0c, - 0xc0, 0x2a, 0x8a, 0xda, 0xff, 0x29, 0x40, 0x39, 0x0e, 0xcf, 0x73, 0xf9, 0xf8, 0x95, 0x3a, 0x85, - 0xad, 0xed, 0xdc, 0xcf, 0x0e, 0x4f, 0xf4, 0xf7, 0xd0, 0x47, 0x9d, 0x4a, 0x02, 0x33, 0xd6, 0x41, - 0x0e, 0x65, 0xd2, 0xd4, 0xfb, 0x54, 0x76, 0xaf, 0xa9, 0x2f, 0x51, 0xd2, 0xfa, 0x5b, 0x1e, 0x9a, - 0xb3, 0xcb, 0xe4, 0x17, 0x50, 0x90, 0x85, 0x49, 0x97, 0x88, 0x07, 0xd7, 0x30, 0xd0, 0x39, 0x46, - 0xa1, 0xe2, 0x66, 0x4a, 0x45, 0x52, 0x1f, 0x75, 0x9c, 0xa8, 0x5e, 0x5c, 0x4b, 0xdf, 0x9e, 0xe3, - 0x44, 0xfa, 0xa8, 0xe3, 0xc8, 0xda, 0xa9, 0x5f, 0x81, 0x62, 0x09, 0x55, 0x33, 0x1a, 0xb5, 0x3e, - 0x86, 0x4a, 0x6c, 0x78, 0xa5, 0x93, 0xff, 0x18, 0x2a, 0xb1, 0x81, 0x95, 0x0e, 0xfa, 0x4f, 0x39, - 0xa8, 0xc4, 0x64, 0x42, 0xa6, 0xe9, 0x74, 0x65, 0xfd, 0x68, 0x31, 0x01, 0x51, 0x85, 0x75, 0x4f, - 0x08, 0xee, 0xf6, 0x42, 0x81, 0x41, 0x5c, 0x5b, 0xf7, 0x2e, 0xd6, 0xd6, 0x45, 0xe5, 0xf9, 0x8a, - 0xba, 0xda, 0xfe, 0xa3, 0x74, 0x2a, 0xa2, 0x2a, 0x64, 0xff, 0xa2, 0x53, 0x3f, 0x5c, 0xa0, 0xef, - 0xd9, 0x8f, 0xdf, 0x9c, 0x4f, 0x7f, 0x2d, 0x43, 0x73, 0x96, 0x4e, 0x24, 0xf4, 0xa4, 0x96, 0xa2, - 0x27, 0xbb, 0x50, 0x08, 0xb9, 0x1b, 0x3d, 0x95, 0x45, 0x35, 0xea, 0x58, 0x70, 0xd7, 0xeb, 0x6b, - 0x7d, 0x12, 0x22, 0x0b, 0x5c, 0x60, 0x0f, 0x70, 0x14, 0xbf, 0x8b, 0x65, 0xc1, 0x11, 0x4a, 0x15, - 0x48, 0x14, 0x03, 0xe6, 0x44, 0x64, 0x64, 0x69, 0xbc, 0x46, 0x91, 0x47, 0x50, 0xa5, 0xa1, 0x18, - 0x30, 0xee, 0x8a, 0xc9, 0x12, 0x5c, 0x24, 0xad, 0x62, 0x0a, 0x24, 0xe6, 0x34, 0x9b, 0x6a, 0x1e, - 0xbb, 0xbb, 0x02, 0x41, 0xeb, 0xa4, 0x33, 0x56, 0x92, 0x63, 0x65, 0x9c, 0x15, 0xa3, 0x94, 0x8c, - 0xa5, 0xa1, 0x89, 0x22, 0xe9, 0x41, 0x23, 0x60, 0x21, 0xb7, 0xd1, 0x1a, 0xd2, 0x1e, 0x0e, 0x25, - 0x33, 0x91, 0xd6, 0x3e, 0x5d, 0xc5, 0xda, 0xb1, 0x52, 0xf0, 0x4c, 0xe1, 0xb5, 0xc9, 0x7a, 0x90, - 0x9a, 0xba, 0xc0, 0xf2, 0x2b, 0x33, 0x2c, 0xdf, 0x82, 0xfa, 0xcb, 0x10, 0xf9, 0xc4, 0xf2, 0x29, - 0xa7, 0xa3, 0xc0, 0xa8, 0x66, 0xa7, 0x86, 0x59, 0xf3, 0xbf, 0x94, 0xf8, 0x23, 0x05, 0xd7, 0xd6, - 0x6b, 0x2f, 0xa7, 0x33, 0xe4, 0x03, 0xb8, 0xe5, 0xf6, 0x3d, 0xc6, 0xd1, 0x0a, 0xb9, 0x6b, 0xd9, - 0x34, 0x40, 0xc5, 0x59, 0x2a, 0x66, 0x43, 0x4f, 0x7f, 0xc9, 0xdd, 0x03, 0x1a, 0x60, 0xab, 0x07, - 0xf5, 0x8c, 0x3c, 0xff, 0x20, 0xfd, 0xfc, 0x97, 0x3f, 0xd4, 0x54, 0x7a, 0xf9, 0x0c, 0xd6, 0xe7, - 0x62, 0xb5, 0x52, 0x7e, 0x3a, 0x85, 0xe6, 0xec, 0x6e, 0xdf, 0x84, 0xa3, 0xed, 0x7f, 0x16, 0x61, - 0xe3, 0x32, 0xca, 0x4e, 0xba, 0x50, 0x73, 0xa6, 0xc3, 0x25, 0x9e, 0x67, 0x3a, 0x07, 0xa4, 0xa1, - 0x32, 0x75, 0x9f, 0xa3, 0xdb, 0x1f, 0xe8, 0xcf, 0x9e, 0xa2, 0x19, 0x8d, 0x16, 0x71, 0xb6, 0x42, - 0x16, 0x67, 0xfb, 0x7d, 0xee, 0x6a, 0xd2, 0xa6, 0x3f, 0xeb, 0x7e, 0xbe, 0xe2, 0x37, 0xca, 0x6b, - 0xe7, 0x6f, 0xc5, 0x0c, 0xfe, 0xf6, 0x75, 0xee, 0x4a, 0x02, 0x57, 0x52, 0x3b, 0x78, 0x7a, 0xdd, - 0x1d, 0x5c, 0x93, 0xcb, 0x95, 0x57, 0xe7, 0x72, 0xdf, 0x42, 0x26, 0x26, 0xa0, 0xf9, 0xff, 0xbf, - 0xcb, 0xed, 0xbf, 0xe7, 0x61, 0x7d, 0xae, 0x9a, 0x92, 0x6d, 0xf8, 0x4e, 0x0a, 0x6c, 0x05, 0x61, - 0xcf, 0xc3, 0xa4, 0x31, 0x42, 0x52, 0x4b, 0xc7, 0x7a, 0x25, 0xc9, 0xdb, 0xf9, 0x54, 0xde, 0xbe, - 0x97, 0xe4, 0x6d, 0x8d, 0x57, 0xc5, 0xaa, 0x1a, 0x27, 0x5e, 0x8d, 0x24, 0xf6, 0x6c, 0x72, 0x5f, - 0xcb, 0xfc, 0x06, 0x98, 0x73, 0x77, 0xa5, 0xec, 0x5e, 0xbc, 0x98, 0xdd, 0xff, 0xe7, 0x84, 0xd7, - 0xfe, 0x77, 0x1e, 0xc8, 0x3c, 0x49, 0x22, 0xef, 0x40, 0x35, 0xf0, 0x5c, 0x2b, 0xdd, 0x51, 0xaa, - 0x04, 0x9e, 0xdb, 0x55, 0x4d, 0xa5, 0x2b, 0xe2, 0x9b, 0xcf, 0x8c, 0x6f, 0x61, 0x51, 0x7c, 0xd7, - 0x2e, 0x89, 0xaf, 0x33, 0x1b, 0xdf, 0x62, 0xe6, 0x97, 0xe1, 0xfc, 0x66, 0x56, 0x0a, 0x70, 0xe9, - 0x75, 0x07, 0xd8, 0x86, 0x7a, 0xba, 0xa3, 0x22, 0xb1, 0x31, 0xef, 0xaa, 0x6a, 0x3e, 0xf5, 0x6e, - 0x9a, 0xcf, 0x68, 0x7c, 0x8a, 0xa7, 0xdc, 0x83, 0x46, 0xdc, 0x83, 0xb1, 0x6c, 0xe6, 0x60, 0x14, - 0xc4, 0x7a, 0x3c, 0x79, 0xc0, 0x1c, 0x6c, 0x7f, 0x0a, 0xb5, 0x54, 0xcb, 0x65, 0x55, 0x1b, 0x6d, - 0x84, 0x5a, 0xaa, 0x4e, 0x91, 0xdb, 0x50, 0xc4, 0x31, 0xb5, 0xa3, 0x2e, 0x5a, 0xf7, 0x86, 0xa9, - 0x87, 0xc4, 0x80, 0x92, 0xcf, 0xf1, 0xd4, 0x1d, 0x6b, 0x0d, 0xdd, 0x1b, 0x66, 0x34, 0x96, 0x08, - 0x8e, 0x7d, 0x1c, 0xeb, 0x47, 0x22, 0x11, 0x6a, 0xb8, 0x5f, 0x07, 0x50, 0xcc, 0xd6, 0x12, 0x13, - 0x1f, 0xdb, 0xbf, 0xcb, 0x45, 0x3d, 0x33, 0x94, 0x41, 0x6c, 0x41, 0x85, 0x0a, 0x81, 0x23, 0x5f, - 0xdd, 0x30, 0xf9, 0xaa, 0x93, 0x31, 0xd9, 0x83, 0x5b, 0x3e, 0x72, 0x4b, 0xf0, 0x89, 0x15, 0x77, - 0x81, 0xf2, 0x59, 0x5d, 0xa0, 0x86, 0x8f, 0xfc, 0x84, 0x4f, 0x4e, 0xa2, 0x5e, 0xd0, 0x1d, 0xf9, - 0xfd, 0x26, 0x15, 0x30, 0x2f, 0x7a, 0xba, 0xaa, 0xcd, 0x33, 0x39, 0xf4, 0xda, 0x7f, 0xc9, 0x03, - 0x4c, 0x9b, 0x26, 0xe4, 0x3d, 0xa8, 0xd3, 0xe1, 0x90, 0x9d, 0x5b, 0x8c, 0xbb, 0x7d, 0xd7, 0x8b, - 0xae, 0x7b, 0x4d, 0xcd, 0x1d, 0xaa, 0x29, 0x79, 0x08, 0x5a, 0x44, 0x53, 0xd0, 0xf8, 0xae, 0x6b, - 0xdc, 0x73, 0x3d, 0x37, 0x15, 0xba, 0x50, 0x4e, 0x23, 0xa1, 0x38, 0xf1, 0xbf, 0x0f, 0x37, 0x71, - 0xec, 0xb3, 0x99, 0xba, 0x59, 0x35, 0x1b, 0x7a, 0x36, 0x16, 0xdb, 0x81, 0xf2, 0x88, 0x8e, 0x2d, - 0xda, 0xd7, 0x1d, 0xb2, 0x85, 0x1b, 0x2f, 0x8d, 0xe8, 0x78, 0xaf, 0x8f, 0xe4, 0x0b, 0x58, 0xd7, - 0xf6, 0x6d, 0x8e, 0x0e, 0x7a, 0xc2, 0xa5, 0xc3, 0x20, 0x6a, 0x9e, 0xb5, 0xe6, 0xd0, 0xfb, 0x8c, - 0x0d, 0xbf, 0x92, 0x97, 0xd4, 0x6c, 0x2a, 0xd0, 0xc1, 0x14, 0xd3, 0xfe, 0x73, 0x11, 0xc8, 0x7c, - 0x7f, 0x8b, 0x3c, 0x85, 0xa2, 0x83, 0x43, 0x3a, 0x59, 0xe6, 0xf3, 0x7a, 0x0e, 0xdd, 0x79, 0x24, - 0xa1, 0xa6, 0xd6, 0x20, 0x55, 0xd1, 0x5e, 0x9c, 0x71, 0x57, 0x56, 0xb5, 0x27, 0xa1, 0xa6, 0xd6, - 0xd0, 0xfa, 0x6d, 0x1e, 0x8a, 0x4a, 0x37, 0x79, 0x17, 0xca, 0x3e, 0x72, 0x1b, 0x3d, 0x7d, 0x71, - 0x8b, 0xaa, 0xfc, 0xc6, 0x53, 0xe4, 0x01, 0xd4, 0x4e, 0xdd, 0x31, 0x3a, 0x96, 0xde, 0x43, 0xd6, - 0x75, 0xea, 0xde, 0x30, 0x41, 0xc9, 0x6b, 0xdd, 0x5d, 0x58, 0x97, 0x07, 0xe4, 0xe9, 0x10, 0x45, - 0x3a, 0x0a, 0xd9, 0x3a, 0x9a, 0x29, 0x94, 0xd6, 0xb4, 0x0f, 0x10, 0xb9, 0x34, 0x3d, 0xdc, 0x45, - 0xc5, 0xff, 0x48, 0x0b, 0x9b, 0x29, 0xd4, 0xfe, 0x3a, 0xdc, 0x1a, 0x08, 0xe1, 0x6b, 0x37, 0xd4, - 0xdb, 0x6a, 0x7d, 0x93, 0x83, 0xa2, 0x8a, 0x4b, 0x46, 0x18, 0xde, 0x83, 0x9a, 0x82, 0x06, 0x82, - 0x8a, 0x30, 0xd0, 0xe5, 0x54, 0xee, 0x55, 0x4e, 0x1e, 0xab, 0x39, 0x29, 0xd2, 0xe7, 0xbe, 0x1d, - 0x8b, 0xc4, 0x4f, 0x1a, 0xe4, 0xe4, 0x54, 0x44, 0x02, 0x76, 0x2c, 0x54, 0x8d, 0xce, 0xb5, 0x58, - 0x44, 0x4d, 0x3e, 0x56, 0x6d, 0xcc, 0xd7, 0xb1, 0xcf, 0x3a, 0x80, 0x32, 0xa0, 0xd3, 0xc7, 0x13, - 0xa8, 0xa7, 0x1b, 0xf1, 0x32, 0x1d, 0x79, 0xe1, 0xa8, 0x87, 0x5c, 0xed, 0xb3, 0x21, 0xd3, 0x91, - 0x1e, 0x93, 0x8d, 0xe8, 0x7b, 0x37, 0x4e, 0x53, 0x6a, 0xb4, 0x5f, 0xd2, 0x55, 0xa8, 0xfd, 0x5d, - 0x28, 0x47, 0xc6, 0xa6, 0x69, 0x5b, 0x6a, 0xc8, 0x45, 0x69, 0x7b, 0xbf, 0xf3, 0x8f, 0x57, 0x77, - 0x73, 0xff, 0x7a, 0x75, 0x37, 0xf7, 0xcd, 0xab, 0xbb, 0xb9, 0x5f, 0x6d, 0x6a, 0x9f, 0x5d, 0xb6, - 0x4d, 0x7d, 0x77, 0xfb, 0x92, 0x7f, 0xff, 0xf4, 0x4a, 0xea, 0xe4, 0xef, 0xff, 0x37, 0x00, 0x00, - 0xff, 0xff, 0xd8, 0xf7, 0x94, 0xed, 0x1c, 0x1a, 0x00, 0x00, + 0x11, 0x16, 0x00, 0xe2, 0xaf, 0x01, 0x50, 0xe4, 0x84, 0x96, 0x57, 0xb0, 0x4a, 0xa1, 0xa1, 0xd8, + 0x61, 0xca, 0x31, 0x58, 0x21, 0x13, 0x87, 0xe5, 0xc8, 0xb2, 0x49, 0x4a, 0x32, 0x94, 0x92, 0x22, + 0x66, 0x49, 0xf9, 0x90, 0xcb, 0xd6, 0x60, 0xb7, 0x09, 0x6c, 0x04, 0xec, 0xac, 0x66, 0x67, 0x49, + 0xa0, 0x72, 0xcc, 0xdf, 0x39, 0xa9, 0x5c, 0x73, 0xcb, 0x53, 0xe4, 0x92, 0xab, 0x4f, 0xa9, 0x3c, + 0x41, 0xca, 0xa5, 0x43, 0x9e, 0x23, 0x35, 0x33, 0xbb, 0x8b, 0x25, 0x40, 0x62, 0x01, 0x46, 0x4a, + 0xf9, 0x44, 0xcc, 0x6c, 0x7f, 0x5f, 0xf7, 0xf4, 0xcc, 0x74, 0xf7, 0x34, 0xe1, 0x07, 0x1e, 0x8a, + 0x73, 0xc6, 0x5f, 0xba, 0x5e, 0x6f, 0xfb, 0xec, 0x47, 0x74, 0xe0, 0xf7, 0xe9, 0xee, 0xf6, 0x99, + 0xcb, 0x45, 0x48, 0x07, 0x56, 0x80, 0xfc, 0xcc, 0xb5, 0xb1, 0xed, 0x73, 0x26, 0x18, 0xb9, 0xed, + 0x06, 0xc2, 0x65, 0xed, 0x09, 0xa0, 0x1d, 0x03, 0x9a, 0x77, 0x7b, 0x8c, 0xf5, 0x06, 0xb8, 0xad, + 0x04, 0xbb, 0xe1, 0xe9, 0xb6, 0x13, 0x72, 0x2a, 0x5c, 0xe6, 0x69, 0xe8, 0xec, 0xf7, 0x73, 0x4e, + 0x7d, 0x1f, 0x79, 0xa0, 0xbf, 0xb7, 0xfe, 0x98, 0x87, 0xd5, 0xaf, 0xb4, 0xd2, 0x63, 0xad, 0x93, + 0x6c, 0x40, 0xb1, 0xcf, 0x02, 0x11, 0x18, 0xb9, 0xcd, 0xc2, 0x56, 0xd5, 0xd4, 0x03, 0xd2, 0x84, + 0x4a, 0x8f, 0x0a, 0x3c, 0xa7, 0xe3, 0xc0, 0xc8, 0xab, 0x0f, 0xc9, 0x98, 0xec, 0xc1, 0x4a, 0x5f, + 0x08, 0xdf, 0x28, 0x6c, 0x16, 0xb6, 0x6a, 0x3b, 0xdf, 0x6b, 0x5f, 0x69, 0x6e, 0xbb, 0x73, 0x72, + 0x72, 0x64, 0xb2, 0x50, 0xa0, 0xa9, 0x10, 0xe4, 0x27, 0x50, 0x10, 0x83, 0xc0, 0x28, 0x2a, 0xe0, + 0xbd, 0x39, 0xc0, 0x93, 0xa7, 0xc7, 0x1a, 0x27, 0xe5, 0x15, 0xcc, 0xf6, 0x8d, 0x95, 0x6c, 0xd8, + 0xe1, 0x51, 0x0c, 0xb3, 0x7d, 0xf2, 0x1e, 0x54, 0x71, 0xe4, 0x33, 0x2e, 0x2c, 0xc1, 0x8c, 0x92, + 0x5e, 0x84, 0x9e, 0x38, 0x61, 0xad, 0x33, 0xa8, 0x3d, 0xc4, 0x40, 0xb8, 0x9e, 0x72, 0x1f, 0x21, + 0xb0, 0x22, 0x17, 0x6e, 0xe4, 0x36, 0x73, 0x5b, 0x55, 0x53, 0xfd, 0x26, 0xb7, 0xa0, 0x14, 0x84, + 0xdd, 0x00, 0x85, 0x91, 0x57, 0xb3, 0xd1, 0x88, 0xfc, 0x0c, 0x56, 0x24, 0x89, 0x51, 0xd8, 0xcc, + 0x6d, 0xd5, 0x76, 0xbe, 0x3f, 0xc7, 0x9e, 0x23, 0xc6, 0xc5, 0x31, 0x0e, 0xd0, 0x16, 0x8c, 0x9b, + 0x0a, 0xd4, 0xfa, 0xba, 0x06, 0xd5, 0xc4, 0x2d, 0x52, 0xad, 0x47, 0x87, 0x68, 0xac, 0x6b, 0xb5, + 0xf2, 0x37, 0xd9, 0x87, 0xe2, 0x90, 0x0a, 0xbb, 0xaf, 0x36, 0xa4, 0xb6, 0xf3, 0x51, 0x86, 0x7f, + 0x9f, 0x49, 0x59, 0x13, 0x5f, 0x85, 0x18, 0x08, 0x53, 0x23, 0xc9, 0x23, 0x28, 0x72, 0xc9, 0xaf, + 0xb6, 0xae, 0xb6, 0xb3, 0xbd, 0xc8, 0x16, 0xa5, 0xbc, 0x61, 0x6a, 0x34, 0x39, 0x84, 0x0a, 0x47, + 0xc7, 0xe5, 0x68, 0x2f, 0xb2, 0x58, 0xc5, 0x14, 0x89, 0x9b, 0x09, 0x90, 0x7c, 0x01, 0x65, 0x8e, + 0xe7, 0xdc, 0x15, 0x68, 0xac, 0x28, 0x8e, 0x0f, 0x33, 0x39, 0x94, 0xb4, 0x19, 0xc3, 0xc8, 0x47, + 0xb0, 0x7e, 0x8e, 0xdd, 0x80, 0xd9, 0x2f, 0x51, 0x58, 0xa1, 0xdf, 0xe3, 0xd4, 0x41, 0xa3, 0xb8, + 0x99, 0xdb, 0xaa, 0x98, 0x6b, 0xc9, 0x87, 0x17, 0x7a, 0x9e, 0xec, 0x42, 0x59, 0xb8, 0x43, 0x64, + 0xa1, 0x30, 0x4a, 0x4a, 0xdd, 0xed, 0xb6, 0xbe, 0x13, 0xed, 0xf8, 0x4e, 0xb4, 0x1f, 0x46, 0x77, + 0xc6, 0x8c, 0x25, 0xc9, 0x03, 0x69, 0xa3, 0xe0, 0x2e, 0x06, 0x46, 0x59, 0x81, 0x32, 0x0f, 0x35, + 0x0a, 0x3e, 0x36, 0x63, 0x10, 0x39, 0x84, 0xe2, 0x29, 0x0d, 0x07, 0xc2, 0xa8, 0x28, 0xf4, 0xc7, + 0x19, 0xe8, 0xc7, 0x52, 0xf6, 0x89, 0xf7, 0x6b, 0xb4, 0xb5, 0xb7, 0x15, 0x96, 0x3c, 0x80, 0xd2, + 0xd0, 0xe5, 0x9c, 0x71, 0xa3, 0x9a, 0xe9, 0xa7, 0xf4, 0x66, 0x45, 0x28, 0x72, 0x08, 0xab, 0xfa, + 0x97, 0xe5, 0x23, 0xb7, 0xd1, 0x13, 0x06, 0x51, 0x3c, 0x77, 0x66, 0x1c, 0xf0, 0xe2, 0x89, 0x27, + 0x76, 0x77, 0xbe, 0xa2, 0x83, 0x10, 0xcd, 0x86, 0xc6, 0x1c, 0x69, 0x08, 0x79, 0x0c, 0x35, 0x9b, + 0xf1, 0xc0, 0xf2, 0xd9, 0xc0, 0xb5, 0xc7, 0x06, 0x28, 0x86, 0x0f, 0xe6, 0x58, 0x72, 0xc8, 0x78, + 0x70, 0xa4, 0x84, 0x4d, 0xb0, 0x93, 0xdf, 0xa4, 0x0b, 0xab, 0x32, 0xf0, 0x78, 0x8e, 0xd5, 0x47, + 0xea, 0x20, 0x0f, 0x8c, 0x9a, 0x3a, 0x8a, 0x3f, 0x5d, 0xe4, 0x28, 0xb6, 0xf7, 0x15, 0xb4, 0xa3, + 0x91, 0x8f, 0x3c, 0xc1, 0xc7, 0x07, 0x79, 0x23, 0x67, 0x36, 0x68, 0x7a, 0x9e, 0x7c, 0x0a, 0xef, + 0x72, 0x1c, 0xb2, 0x33, 0xb4, 0x38, 0x06, 0x3e, 0xf3, 0x02, 0x4c, 0x94, 0xd5, 0xe5, 0x6d, 0x57, + 0x98, 0x77, 0xb4, 0x88, 0x19, 0x49, 0xc4, 0xd8, 0xdf, 0xc0, 0xbb, 0x91, 0x7d, 0x33, 0xd8, 0x86, + 0x32, 0xf4, 0xf3, 0x25, 0x0c, 0x9d, 0x22, 0x9f, 0x18, 0xfc, 0x0e, 0xbd, 0xec, 0x3b, 0xd9, 0x83, + 0x5b, 0x89, 0xe1, 0xea, 0xde, 0x26, 0xba, 0x57, 0x13, 0xbb, 0x37, 0x62, 0xbb, 0x95, 0x40, 0x8c, + 0x1c, 0xc1, 0xad, 0xc4, 0xec, 0x8b, 0xc8, 0x9b, 0xca, 0xea, 0x07, 0x4b, 0x59, 0x9d, 0xa6, 0x9e, + 0x18, 0xbd, 0x41, 0x2f, 0xf9, 0x4c, 0xee, 0x43, 0x39, 0x56, 0xb5, 0xa6, 0x0e, 0x45, 0x6b, 0x9e, + 0x2a, 0x2d, 0x69, 0xc6, 0x90, 0xe6, 0x17, 0x40, 0x66, 0xf7, 0x94, 0xac, 0x41, 0xe1, 0x25, 0x8e, + 0xa3, 0x98, 0x2b, 0x7f, 0xca, 0x64, 0x74, 0x26, 0x8f, 0x65, 0x14, 0x71, 0xf5, 0xe0, 0xd3, 0xfc, + 0x5e, 0xae, 0xd9, 0x81, 0xe6, 0xd5, 0xce, 0x5e, 0x8a, 0xe9, 0x4b, 0xb8, 0x7d, 0xa5, 0x03, 0x96, + 0x21, 0x6a, 0xfd, 0xa7, 0x00, 0xe5, 0xd8, 0x3d, 0xcf, 0x64, 0x04, 0x51, 0x74, 0x0a, 0x5b, 0xdb, + 0xd9, 0xcd, 0x76, 0x4f, 0xf4, 0xf7, 0xb9, 0x8f, 0x3a, 0x1e, 0x05, 0x66, 0xcc, 0x41, 0x9e, 0xcb, + 0xc8, 0xab, 0xd7, 0xa9, 0xf4, 0x5e, 0x93, 0x2f, 0x21, 0x69, 0xfe, 0x3d, 0x0f, 0x6b, 0xd3, 0x9f, + 0xc9, 0x2f, 0xa0, 0x20, 0xb3, 0x9b, 0xce, 0x33, 0xf7, 0xaf, 0xa1, 0xa0, 0x7d, 0x8c, 0x42, 0xf9, + 0xcd, 0x94, 0x44, 0x92, 0x8f, 0x3a, 0x4e, 0x94, 0x74, 0xae, 0xc5, 0xb7, 0xef, 0x38, 0x11, 0x1f, + 0x75, 0x1c, 0x99, 0x80, 0xf5, 0x2d, 0x50, 0xa5, 0x46, 0xd5, 0x8c, 0x46, 0xcd, 0x4f, 0xa0, 0x12, + 0x2b, 0x5e, 0x6a, 0xe7, 0x3f, 0x81, 0x4a, 0xac, 0x60, 0xa9, 0x8d, 0xfe, 0x73, 0x0e, 0x2a, 0x71, + 0x45, 0x22, 0x63, 0x7d, 0x3a, 0x3d, 0x7f, 0x3c, 0xbf, 0x8a, 0x51, 0xd9, 0x79, 0x5f, 0x08, 0xee, + 0x76, 0x43, 0x81, 0x41, 0x9c, 0xa0, 0xf7, 0x2f, 0x26, 0xe8, 0x79, 0x39, 0xfe, 0x8a, 0xe4, 0xdc, + 0xfa, 0x93, 0x34, 0x2a, 0xaa, 0x77, 0xc8, 0xc1, 0x45, 0xa3, 0x7e, 0x38, 0x87, 0xef, 0xe9, 0x8f, + 0xdf, 0x9e, 0x4d, 0x7f, 0x2b, 0xc3, 0xda, 0x74, 0x4d, 0x92, 0xd4, 0x38, 0xb5, 0x54, 0x8d, 0xb3, + 0x07, 0x85, 0x90, 0xbb, 0xd1, 0x55, 0x99, 0x97, 0xe8, 0x8e, 0x05, 0x77, 0xbd, 0x9e, 0xe6, 0x93, + 0x10, 0x99, 0x25, 0x03, 0xbb, 0x8f, 0xc3, 0xf8, 0x5e, 0x2c, 0x0a, 0x8e, 0x50, 0x2a, 0xcb, 0xa2, + 0xe8, 0x33, 0x27, 0xaa, 0x68, 0x16, 0xc6, 0x6b, 0x14, 0x79, 0x08, 0x55, 0x1a, 0x8a, 0x3e, 0xe3, + 0xae, 0x18, 0x2f, 0x50, 0xd0, 0xa4, 0x29, 0x26, 0x40, 0x62, 0x4e, 0xa2, 0xa9, 0x2e, 0x86, 0xf7, + 0x96, 0xa8, 0xf2, 0xda, 0xe9, 0x88, 0x95, 0xc4, 0x58, 0xe9, 0x67, 0x55, 0x96, 0xca, 0xb2, 0xa7, + 0xa1, 0xab, 0x4d, 0xd2, 0x85, 0x46, 0xc0, 0x42, 0x6e, 0xa3, 0x35, 0xa0, 0x5d, 0x1c, 0xc8, 0xf2, + 0x46, 0x6a, 0xfb, 0x6c, 0x19, 0x6d, 0xc7, 0x8a, 0xe0, 0xa9, 0xc2, 0x6b, 0x95, 0xf5, 0x20, 0x35, + 0x75, 0xe1, 0xa9, 0x50, 0x99, 0x7a, 0x2a, 0x58, 0x50, 0x7f, 0x15, 0x22, 0x1f, 0x5b, 0x3e, 0xe5, + 0x74, 0x18, 0x18, 0xd5, 0xec, 0xd0, 0x30, 0xad, 0xfe, 0x97, 0x12, 0x7f, 0xa4, 0xe0, 0x5a, 0x7b, + 0xed, 0xd5, 0x64, 0x86, 0x7c, 0x08, 0x37, 0xdd, 0x9e, 0xc7, 0x38, 0x5a, 0x21, 0x77, 0x2d, 0x9b, + 0x06, 0xa8, 0x6a, 0x96, 0x8a, 0xd9, 0xd0, 0xd3, 0x2f, 0xb8, 0x7b, 0x48, 0x03, 0x6c, 0x76, 0xa1, + 0x9e, 0x11, 0xe7, 0xef, 0xa7, 0xaf, 0xff, 0xe2, 0x9b, 0x9a, 0x0a, 0x2f, 0x9f, 0xc3, 0xfa, 0x8c, + 0xaf, 0x96, 0x8a, 0x4f, 0xa7, 0xb0, 0x36, 0xbd, 0xda, 0xb7, 0x61, 0x68, 0xeb, 0x9f, 0x45, 0xd8, + 0xb8, 0xac, 0xee, 0x27, 0x1d, 0xa8, 0x39, 0x93, 0xe1, 0x02, 0xd7, 0x33, 0x1d, 0x03, 0xd2, 0x50, + 0x19, 0xba, 0xcf, 0xd1, 0xed, 0xf5, 0xf5, 0xdb, 0xa9, 0x68, 0x46, 0xa3, 0x79, 0x35, 0x5b, 0x21, + 0xab, 0x66, 0xfb, 0x43, 0xee, 0xea, 0xa2, 0x4d, 0xbf, 0x0d, 0x7f, 0xbe, 0xe4, 0x43, 0xe7, 0x8d, + 0xd7, 0x6f, 0xc5, 0x8c, 0xfa, 0xed, 0xb7, 0xb9, 0x2b, 0x0b, 0xb8, 0x92, 0x5a, 0xc1, 0x93, 0xeb, + 0xae, 0xe0, 0x9a, 0xb5, 0x5c, 0x79, 0xf9, 0x5a, 0xee, 0x5b, 0x58, 0x89, 0x09, 0x58, 0xfb, 0xff, + 0x9f, 0xe5, 0xd6, 0x3f, 0xf2, 0xb0, 0x3e, 0x93, 0x4d, 0xc9, 0x36, 0x7c, 0x27, 0x05, 0xb6, 0x82, + 0xb0, 0xeb, 0x61, 0xd2, 0x5d, 0x21, 0xa9, 0x4f, 0xc7, 0xfa, 0x4b, 0x12, 0xb7, 0xf3, 0xa9, 0xb8, + 0x7d, 0x2f, 0x89, 0xdb, 0x1a, 0xaf, 0x92, 0x55, 0x35, 0x0e, 0xbc, 0x1a, 0x49, 0xec, 0xe9, 0xe0, + 0xbe, 0x92, 0xf9, 0x06, 0x98, 0x31, 0x77, 0xa9, 0xe8, 0x5e, 0xbc, 0x18, 0xdd, 0xff, 0xe7, 0x80, + 0xd7, 0xfa, 0x77, 0x1e, 0xc8, 0x6c, 0x91, 0x44, 0xde, 0x83, 0x6a, 0xe0, 0xb9, 0x56, 0xba, 0x2d, + 0x55, 0x09, 0x3c, 0xb7, 0xa3, 0x3a, 0x53, 0x57, 0xf8, 0x37, 0x9f, 0xe9, 0xdf, 0xc2, 0x3c, 0xff, + 0xae, 0x5c, 0xe2, 0x5f, 0x67, 0xda, 0xbf, 0xc5, 0xcc, 0x97, 0xe1, 0xec, 0x62, 0x96, 0x72, 0x70, + 0xe9, 0x4d, 0x3b, 0xd8, 0x86, 0x7a, 0xba, 0x2d, 0x23, 0xb1, 0x71, 0xdd, 0x55, 0xd5, 0xf5, 0xd4, + 0x9d, 0x74, 0x3d, 0xa3, 0xf1, 0xa9, 0x3a, 0xe5, 0x1e, 0x34, 0xe2, 0x46, 0x8e, 0x65, 0x33, 0x07, + 0x23, 0x27, 0xd6, 0xe3, 0xc9, 0x43, 0xe6, 0x60, 0xeb, 0x33, 0xa8, 0xa5, 0xfa, 0x36, 0xcb, 0xea, + 0x68, 0x21, 0xd4, 0x52, 0x79, 0x8a, 0xdc, 0x82, 0x22, 0x8e, 0xa8, 0x1d, 0xb5, 0xe2, 0x3a, 0x37, + 0x4c, 0x3d, 0x24, 0x06, 0x94, 0x7c, 0x8e, 0xa7, 0xee, 0x48, 0x33, 0x74, 0x6e, 0x98, 0xd1, 0x58, + 0x22, 0x38, 0xf6, 0x70, 0xa4, 0x2f, 0x89, 0x44, 0xa8, 0xe1, 0x41, 0x1d, 0x40, 0x55, 0xb6, 0x96, + 0x18, 0xfb, 0xd8, 0xfa, 0x7d, 0x2e, 0x6a, 0xbc, 0xa1, 0x74, 0x62, 0x13, 0x2a, 0x54, 0x08, 0x1c, + 0xfa, 0xea, 0x84, 0xc9, 0x5b, 0x9d, 0x8c, 0xc9, 0x3e, 0xdc, 0xf4, 0x91, 0x5b, 0x82, 0x8f, 0xad, + 0xb8, 0x95, 0x94, 0xcf, 0x6a, 0x25, 0x35, 0x7c, 0xe4, 0x27, 0x7c, 0x7c, 0x12, 0x35, 0x94, 0x6e, + 0xcb, 0xf7, 0x9b, 0x24, 0x60, 0x5e, 0x74, 0x75, 0x55, 0xaf, 0x68, 0xfc, 0xdc, 0x6b, 0xfd, 0x35, + 0x0f, 0x30, 0x69, 0x9a, 0x90, 0xf7, 0xa1, 0x4e, 0x07, 0x03, 0x76, 0x6e, 0x31, 0xee, 0xf6, 0x5c, + 0x2f, 0x3a, 0xee, 0x35, 0x35, 0xf7, 0x5c, 0x4d, 0xc9, 0x4d, 0xd0, 0x22, 0xba, 0x04, 0x8d, 0xcf, + 0xba, 0xc6, 0x3d, 0xd3, 0x73, 0x13, 0xa1, 0x0b, 0xe9, 0x34, 0x12, 0x8a, 0x03, 0xff, 0x07, 0xb0, + 0x8a, 0x23, 0x9f, 0x4d, 0xe5, 0xcd, 0xaa, 0xd9, 0xd0, 0xb3, 0xb1, 0xd8, 0x0e, 0x94, 0x87, 0x74, + 0x64, 0xd1, 0x9e, 0x6e, 0xb3, 0xcd, 0x5d, 0x78, 0x69, 0x48, 0x47, 0xfb, 0x3d, 0x24, 0x5f, 0xc2, + 0xba, 0xd6, 0x6f, 0x73, 0x74, 0xd0, 0x13, 0x2e, 0x1d, 0x04, 0x51, 0x07, 0xae, 0x39, 0x83, 0x3e, + 0x60, 0x6c, 0xa0, 0xdb, 0x4f, 0x6b, 0x0a, 0x74, 0x38, 0xc1, 0xb4, 0xfe, 0x52, 0x04, 0x32, 0xdb, + 0x24, 0x23, 0x4f, 0xa0, 0xe8, 0xe0, 0x80, 0x8e, 0x17, 0x79, 0x5e, 0xcf, 0xa0, 0xdb, 0x0f, 0x25, + 0xd4, 0xd4, 0x0c, 0x92, 0x8a, 0x76, 0xe3, 0x88, 0xbb, 0x34, 0xd5, 0xbe, 0x84, 0x9a, 0x9a, 0xa1, + 0xf9, 0xbb, 0x3c, 0x14, 0x15, 0x37, 0xb9, 0x03, 0xe5, 0xb8, 0xed, 0xa6, 0xce, 0x93, 0x4a, 0xbf, + 0xf1, 0x14, 0xb9, 0x0f, 0xb5, 0x53, 0x77, 0x84, 0x8e, 0xa5, 0xd7, 0x90, 0x75, 0x9c, 0x3a, 0x37, + 0x4c, 0x50, 0xf2, 0x9a, 0xbb, 0x03, 0xeb, 0x72, 0x83, 0x3c, 0xed, 0xa2, 0x88, 0xa3, 0x90, 0xcd, + 0xb1, 0x96, 0x42, 0x69, 0xa6, 0x03, 0x80, 0xc8, 0xa4, 0xc9, 0xe6, 0xce, 0x4b, 0xfe, 0x51, 0x5b, + 0xd0, 0x4c, 0xa1, 0x0e, 0xd6, 0xe1, 0x66, 0x5f, 0x08, 0x5f, 0x9b, 0xa1, 0xee, 0x56, 0xf3, 0x9b, + 0x1c, 0x14, 0x95, 0x5f, 0x32, 0xdc, 0xf0, 0x3e, 0xd4, 0x14, 0x34, 0x10, 0x54, 0x84, 0x81, 0x4e, + 0xa7, 0x72, 0xad, 0x72, 0xf2, 0x58, 0xcd, 0x49, 0x91, 0x1e, 0xf7, 0xed, 0x58, 0x24, 0xbe, 0xd2, + 0x20, 0x27, 0x27, 0x22, 0x12, 0xb0, 0x63, 0xa1, 0xea, 0x96, 0xae, 0xc4, 0x22, 0x6a, 0xf2, 0x91, + 0xea, 0x85, 0xbe, 0x89, 0x75, 0xd6, 0x01, 0x94, 0x02, 0x1d, 0x3e, 0x1e, 0x43, 0x3d, 0xdd, 0xcd, + 0x97, 0xe1, 0xc8, 0x0b, 0x87, 0x5d, 0xe4, 0x6a, 0x9d, 0x0d, 0x19, 0x8e, 0xf4, 0x98, 0x6c, 0x44, + 0xef, 0xdd, 0x38, 0x4c, 0xa9, 0xd1, 0x41, 0x49, 0x67, 0xa1, 0xd6, 0x77, 0xa1, 0x1c, 0xf7, 0x5a, + 0x93, 0xb0, 0x2d, 0x19, 0x72, 0x51, 0xd8, 0x3e, 0x68, 0x7f, 0xfd, 0xfa, 0x6e, 0xee, 0x5f, 0xaf, + 0xef, 0xe6, 0xbe, 0x79, 0x7d, 0x37, 0xf7, 0xab, 0x4d, 0x6d, 0xb3, 0xcb, 0xb6, 0xa9, 0xef, 0x6e, + 0x5f, 0xf2, 0x3f, 0xa4, 0x6e, 0x49, 0xed, 0xfc, 0xee, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x3a, + 0xa8, 0x9e, 0xea, 0x61, 0x1a, 0x00, 0x00, } func (m *VirtualService) Marshal() (dAtA []byte, err error) { @@ -3318,6 +3331,20 @@ func (m *HTTPRoute) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.MirrorPercent != nil { + { + size, err := m.MirrorPercent.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintVirtualService(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + } if len(m.Name) > 0 { i -= len(m.Name) copy(dAtA[i:], m.Name) @@ -5073,6 +5100,10 @@ func (m *HTTPRoute) Size() (n int) { if l > 0 { n += 2 + l + sovVirtualService(uint64(l)) } + if m.MirrorPercent != nil { + l = m.MirrorPercent.Size() + n += 2 + l + sovVirtualService(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -7028,6 +7059,42 @@ func (m *HTTPRoute) Unmarshal(dAtA []byte) error { } m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MirrorPercent", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVirtualService + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthVirtualService + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthVirtualService + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MirrorPercent == nil { + m.MirrorPercent = &types.UInt32Value{} + } + if err := m.MirrorPercent.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipVirtualService(dAtA[iNdEx:]) diff --git a/networking/v1alpha3/virtual_service.pb.html b/networking/v1alpha3/virtual_service.pb.html index adef1ae8..9703ef56 100644 --- a/networking/v1alpha3/virtual_service.pb.html +++ b/networking/v1alpha3/virtual_service.pb.html @@ -4,7 +4,7 @@ description: Configuration affecting label/content routing, sni routing, etc. location: https://istio.io/docs/reference/config/networking/v1alpha3/virtual-service.html layout: protoc-gen-docs generator: protoc-gen-docs -number_of_entries: 22 +number_of_entries: 23 ---

Configuration affecting traffic routing. Here are a few terms useful to define in the context of traffic routing.

@@ -1031,6 +1031,16 @@ mirrored cluster to respond before returning the response from the original destination. Statistics will be generated for the mirrored destination.

+ + + +mirrorPercent +google.protobuf.UInt32Value + +

Percentage of the traffic to be mirrored by the mirror field. +If this field is absent, all the traffic (100%) will be mirrored. +Max value is 100.

+ @@ -1795,3 +1805,29 @@ defines an export to all namespaces.

+

google.protobuf.UInt32Value

+
+

Wrapper message for uint32.

+ +

The JSON representation for UInt32Value is JSON number.

+ + + + + + + + + + + + + + + + +
FieldTypeDescription
valueuint32 +

The uint32 value.

+ +
+
diff --git a/networking/v1alpha3/virtual_service.proto b/networking/v1alpha3/virtual_service.proto index 24740f67..a0f2cc66 100644 --- a/networking/v1alpha3/virtual_service.proto +++ b/networking/v1alpha3/virtual_service.proto @@ -408,6 +408,11 @@ message HTTPRoute { // destination. Destination mirror = 9; + // Percentage of the traffic to be mirrored by the `mirror` field. + // If this field is absent, all the traffic (100%) will be mirrored. + // Max value is 100. + google.protobuf.UInt32Value mirror_percent = 18; + // Cross-Origin Resource Sharing policy (CORS). Refer to // [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) // for further details about cross origin resource sharing. diff --git a/python/istio_api/networking/v1alpha3/virtual_service_pb2.py b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py index 810d8ab2..ae807b00 100644 --- a/python/istio_api/networking/v1alpha3/virtual_service_pb2.py +++ b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py @@ -22,7 +22,7 @@ DESCRIPTOR = _descriptor.FileDescriptor( package='istio.networking.v1alpha3', syntax='proto3', serialized_options=_b('Z istio.io/api/networking/v1alpha3'), - serialized_pb=_b('\n)networking/v1alpha3/virtual_service.proto\x12\x19istio.networking.v1alpha3\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xdc\x01\n\x0eVirtualService\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x10\n\x08gateways\x18\x02 \x03(\t\x12\x32\n\x04http\x18\x03 \x03(\x0b\x32$.istio.networking.v1alpha3.HTTPRoute\x12\x30\n\x03tls\x18\x05 \x03(\x0b\x32#.istio.networking.v1alpha3.TLSRoute\x12\x30\n\x03tcp\x18\x04 \x03(\x0b\x32#.istio.networking.v1alpha3.TCPRoute\x12\x11\n\texport_to\x18\x06 \x03(\t\"b\n\x0b\x44\x65stination\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x35\n\x04port\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\"\x87\t\n\tHTTPRoute\x12\x0c\n\x04name\x18\x11 \x01(\t\x12:\n\x05match\x18\x01 \x03(\x0b\x32+.istio.networking.v1alpha3.HTTPMatchRequest\x12>\n\x05route\x18\x02 \x03(\x0b\x32/.istio.networking.v1alpha3.HTTPRouteDestination\x12\x39\n\x08redirect\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.HTTPRedirect\x12\x37\n\x07rewrite\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.HTTPRewrite\x12\x19\n\x11websocket_upgrade\x18\x05 \x01(\x08\x12*\n\x07timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x07retries\x18\x07 \x01(\x0b\x32$.istio.networking.v1alpha3.HTTPRetry\x12<\n\x05\x66\x61ult\x18\x08 \x01(\x0b\x32-.istio.networking.v1alpha3.HTTPFaultInjection\x12\x36\n\x06mirror\x18\t \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12:\n\x0b\x63ors_policy\x18\n \x01(\x0b\x32%.istio.networking.v1alpha3.CorsPolicy\x12S\n\x0e\x61ppend_headers\x18\x0b \x03(\x0b\x32\x37.istio.networking.v1alpha3.HTTPRoute.AppendHeadersEntryB\x02\x18\x01\x12#\n\x17remove_response_headers\x18\x0c \x03(\tB\x02\x18\x01\x12\x64\n\x17\x61ppend_response_headers\x18\r \x03(\x0b\x32?.istio.networking.v1alpha3.HTTPRoute.AppendResponseHeadersEntryB\x02\x18\x01\x12\"\n\x16remove_request_headers\x18\x0e \x03(\tB\x02\x18\x01\x12\x62\n\x16\x61ppend_request_headers\x18\x0f \x03(\x0b\x32>.istio.networking.v1alpha3.HTTPRoute.AppendRequestHeadersEntryB\x02\x18\x01\x12\x33\n\x07headers\x18\x10 \x01(\x0b\x32\".istio.networking.v1alpha3.Headers\x1a\x34\n\x12\x41ppendHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a<\n\x1a\x41ppendResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a;\n\x19\x41ppendRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa9\x03\n\x07Headers\x12\x44\n\x07request\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.Headers.HeaderOperations\x12\x45\n\x08response\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.Headers.HeaderOperations\x1a\x90\x02\n\x10HeaderOperations\x12I\n\x03set\x18\x01 \x03(\x0b\x32<.istio.networking.v1alpha3.Headers.HeaderOperations.SetEntry\x12I\n\x03\x61\x64\x64\x18\x02 \x03(\x0b\x32<.istio.networking.v1alpha3.Headers.HeaderOperations.AddEntry\x12\x0e\n\x06remove\x18\x03 \x03(\t\x1a*\n\x08SetEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a*\n\x08\x41\x64\x64\x45ntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x84\x01\n\x08TLSRoute\x12<\n\x05match\x18\x01 \x03(\x0b\x32-.istio.networking.v1alpha3.TLSMatchAttributes\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\x83\x01\n\x08TCPRoute\x12;\n\x05match\x18\x01 \x03(\x0b\x32,.istio.networking.v1alpha3.L4MatchAttributes\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\x97\x06\n\x10HTTPMatchRequest\x12\x0c\n\x04name\x18\x0b \x01(\t\x12\x33\n\x03uri\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x36\n\x06scheme\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x36\n\x06method\x18\x03 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x39\n\tauthority\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12I\n\x07headers\x18\x05 \x03(\x0b\x32\x38.istio.networking.v1alpha3.HTTPMatchRequest.HeadersEntry\x12\x0c\n\x04port\x18\x06 \x01(\r\x12T\n\rsource_labels\x18\x07 \x03(\x0b\x32=.istio.networking.v1alpha3.HTTPMatchRequest.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x08 \x03(\t\x12R\n\x0cquery_params\x18\t \x03(\x0b\x32<.istio.networking.v1alpha3.HTTPMatchRequest.QueryParamsEntry\x12\x17\n\x0fignore_uri_case\x18\n \x01(\x08\x1aV\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch:\x02\x38\x01\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aZ\n\x10QueryParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch:\x02\x38\x01\"\xbc\x04\n\x14HTTPRouteDestination\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12#\n\x17remove_response_headers\x18\x03 \x03(\tB\x02\x18\x01\x12o\n\x17\x61ppend_response_headers\x18\x04 \x03(\x0b\x32J.istio.networking.v1alpha3.HTTPRouteDestination.AppendResponseHeadersEntryB\x02\x18\x01\x12\"\n\x16remove_request_headers\x18\x05 \x03(\tB\x02\x18\x01\x12m\n\x16\x61ppend_request_headers\x18\x06 \x03(\x0b\x32I.istio.networking.v1alpha3.HTTPRouteDestination.AppendRequestHeadersEntryB\x02\x18\x01\x12\x33\n\x07headers\x18\x07 \x01(\x0b\x32\".istio.networking.v1alpha3.Headers\x1a<\n\x1a\x41ppendResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a;\n\x19\x41ppendRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"_\n\x10RouteDestination\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x0e\n\x06weight\x18\x02 \x01(\x05\"\xf3\x01\n\x11L4MatchAttributes\x12\x1b\n\x13\x64\x65stination_subnets\x18\x01 \x03(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x15\n\rsource_subnet\x18\x03 \x01(\t\x12U\n\rsource_labels\x18\x04 \x03(\x0b\x32>.istio.networking.v1alpha3.L4MatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x05 \x03(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x88\x02\n\x12TLSMatchAttributes\x12\x11\n\tsni_hosts\x18\x01 \x03(\t\x12\x1b\n\x13\x64\x65stination_subnets\x18\x02 \x03(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12\x15\n\rsource_subnet\x18\x04 \x01(\t\x12V\n\rsource_labels\x18\x05 \x03(\x0b\x32?.istio.networking.v1alpha3.TLSMatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x06 \x03(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"E\n\x0cHTTPRedirect\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\x12\x15\n\rredirect_code\x18\x03 \x01(\r\"-\n\x0bHTTPRewrite\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\"O\n\x0bStringMatch\x12\x0f\n\x05\x65xact\x18\x01 \x01(\tH\x00\x12\x10\n\x06prefix\x18\x02 \x01(\tH\x00\x12\x0f\n\x05regex\x18\x03 \x01(\tH\x00\x42\x0c\n\nmatch_type\"c\n\tHTTPRetry\x12\x10\n\x08\x61ttempts\x18\x01 \x01(\x05\x12\x32\n\x0fper_try_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08retry_on\x18\x03 \x01(\t\"\xcb\x01\n\nCorsPolicy\x12\x14\n\x0c\x61llow_origin\x18\x01 \x03(\t\x12\x15\n\rallow_methods\x18\x02 \x03(\t\x12\x15\n\rallow_headers\x18\x03 \x03(\t\x12\x16\n\x0e\x65xpose_headers\x18\x04 \x03(\t\x12*\n\x07max_age\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x11\x61llow_credentials\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x9a\x04\n\x12HTTPFaultInjection\x12\x42\n\x05\x64\x65lay\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Delay\x12\x42\n\x05\x61\x62ort\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Abort\x1a\xd1\x01\n\x05\x44\x65lay\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x30\n\x0b\x66ixed_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\x11\x65xponential_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x11\n\x0fhttp_delay_type\x1a\xa7\x01\n\x05\x41\x62ort\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x15\n\x0bhttp_status\x18\x02 \x01(\x05H\x00\x12\x15\n\x0bgrpc_status\x18\x03 \x01(\tH\x00\x12\x15\n\x0bhttp2_error\x18\x04 \x01(\tH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x0c\n\nerror_type\"8\n\x0cPortSelector\x12\x10\n\x06number\x18\x01 \x01(\rH\x00\x12\x0e\n\x04name\x18\x02 \x01(\tH\x00\x42\x06\n\x04port\"\x18\n\x07Percent\x12\r\n\x05value\x18\x01 \x01(\x01\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') + serialized_pb=_b('\n)networking/v1alpha3/virtual_service.proto\x12\x19istio.networking.v1alpha3\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xdc\x01\n\x0eVirtualService\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x10\n\x08gateways\x18\x02 \x03(\t\x12\x32\n\x04http\x18\x03 \x03(\x0b\x32$.istio.networking.v1alpha3.HTTPRoute\x12\x30\n\x03tls\x18\x05 \x03(\x0b\x32#.istio.networking.v1alpha3.TLSRoute\x12\x30\n\x03tcp\x18\x04 \x03(\x0b\x32#.istio.networking.v1alpha3.TCPRoute\x12\x11\n\texport_to\x18\x06 \x03(\t\"b\n\x0b\x44\x65stination\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x35\n\x04port\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\"\xbd\t\n\tHTTPRoute\x12\x0c\n\x04name\x18\x11 \x01(\t\x12:\n\x05match\x18\x01 \x03(\x0b\x32+.istio.networking.v1alpha3.HTTPMatchRequest\x12>\n\x05route\x18\x02 \x03(\x0b\x32/.istio.networking.v1alpha3.HTTPRouteDestination\x12\x39\n\x08redirect\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.HTTPRedirect\x12\x37\n\x07rewrite\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.HTTPRewrite\x12\x19\n\x11websocket_upgrade\x18\x05 \x01(\x08\x12*\n\x07timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x07retries\x18\x07 \x01(\x0b\x32$.istio.networking.v1alpha3.HTTPRetry\x12<\n\x05\x66\x61ult\x18\x08 \x01(\x0b\x32-.istio.networking.v1alpha3.HTTPFaultInjection\x12\x36\n\x06mirror\x18\t \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x34\n\x0emirror_percent\x18\x12 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12:\n\x0b\x63ors_policy\x18\n \x01(\x0b\x32%.istio.networking.v1alpha3.CorsPolicy\x12S\n\x0e\x61ppend_headers\x18\x0b \x03(\x0b\x32\x37.istio.networking.v1alpha3.HTTPRoute.AppendHeadersEntryB\x02\x18\x01\x12#\n\x17remove_response_headers\x18\x0c \x03(\tB\x02\x18\x01\x12\x64\n\x17\x61ppend_response_headers\x18\r \x03(\x0b\x32?.istio.networking.v1alpha3.HTTPRoute.AppendResponseHeadersEntryB\x02\x18\x01\x12\"\n\x16remove_request_headers\x18\x0e \x03(\tB\x02\x18\x01\x12\x62\n\x16\x61ppend_request_headers\x18\x0f \x03(\x0b\x32>.istio.networking.v1alpha3.HTTPRoute.AppendRequestHeadersEntryB\x02\x18\x01\x12\x33\n\x07headers\x18\x10 \x01(\x0b\x32\".istio.networking.v1alpha3.Headers\x1a\x34\n\x12\x41ppendHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a<\n\x1a\x41ppendResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a;\n\x19\x41ppendRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa9\x03\n\x07Headers\x12\x44\n\x07request\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.Headers.HeaderOperations\x12\x45\n\x08response\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.Headers.HeaderOperations\x1a\x90\x02\n\x10HeaderOperations\x12I\n\x03set\x18\x01 \x03(\x0b\x32<.istio.networking.v1alpha3.Headers.HeaderOperations.SetEntry\x12I\n\x03\x61\x64\x64\x18\x02 \x03(\x0b\x32<.istio.networking.v1alpha3.Headers.HeaderOperations.AddEntry\x12\x0e\n\x06remove\x18\x03 \x03(\t\x1a*\n\x08SetEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a*\n\x08\x41\x64\x64\x45ntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x84\x01\n\x08TLSRoute\x12<\n\x05match\x18\x01 \x03(\x0b\x32-.istio.networking.v1alpha3.TLSMatchAttributes\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\x83\x01\n\x08TCPRoute\x12;\n\x05match\x18\x01 \x03(\x0b\x32,.istio.networking.v1alpha3.L4MatchAttributes\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\x97\x06\n\x10HTTPMatchRequest\x12\x0c\n\x04name\x18\x0b \x01(\t\x12\x33\n\x03uri\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x36\n\x06scheme\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x36\n\x06method\x18\x03 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x39\n\tauthority\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12I\n\x07headers\x18\x05 \x03(\x0b\x32\x38.istio.networking.v1alpha3.HTTPMatchRequest.HeadersEntry\x12\x0c\n\x04port\x18\x06 \x01(\r\x12T\n\rsource_labels\x18\x07 \x03(\x0b\x32=.istio.networking.v1alpha3.HTTPMatchRequest.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x08 \x03(\t\x12R\n\x0cquery_params\x18\t \x03(\x0b\x32<.istio.networking.v1alpha3.HTTPMatchRequest.QueryParamsEntry\x12\x17\n\x0fignore_uri_case\x18\n \x01(\x08\x1aV\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch:\x02\x38\x01\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aZ\n\x10QueryParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch:\x02\x38\x01\"\xbc\x04\n\x14HTTPRouteDestination\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12#\n\x17remove_response_headers\x18\x03 \x03(\tB\x02\x18\x01\x12o\n\x17\x61ppend_response_headers\x18\x04 \x03(\x0b\x32J.istio.networking.v1alpha3.HTTPRouteDestination.AppendResponseHeadersEntryB\x02\x18\x01\x12\"\n\x16remove_request_headers\x18\x05 \x03(\tB\x02\x18\x01\x12m\n\x16\x61ppend_request_headers\x18\x06 \x03(\x0b\x32I.istio.networking.v1alpha3.HTTPRouteDestination.AppendRequestHeadersEntryB\x02\x18\x01\x12\x33\n\x07headers\x18\x07 \x01(\x0b\x32\".istio.networking.v1alpha3.Headers\x1a<\n\x1a\x41ppendResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a;\n\x19\x41ppendRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"_\n\x10RouteDestination\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x0e\n\x06weight\x18\x02 \x01(\x05\"\xf3\x01\n\x11L4MatchAttributes\x12\x1b\n\x13\x64\x65stination_subnets\x18\x01 \x03(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x15\n\rsource_subnet\x18\x03 \x01(\t\x12U\n\rsource_labels\x18\x04 \x03(\x0b\x32>.istio.networking.v1alpha3.L4MatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x05 \x03(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x88\x02\n\x12TLSMatchAttributes\x12\x11\n\tsni_hosts\x18\x01 \x03(\t\x12\x1b\n\x13\x64\x65stination_subnets\x18\x02 \x03(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12\x15\n\rsource_subnet\x18\x04 \x01(\t\x12V\n\rsource_labels\x18\x05 \x03(\x0b\x32?.istio.networking.v1alpha3.TLSMatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x06 \x03(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"E\n\x0cHTTPRedirect\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\x12\x15\n\rredirect_code\x18\x03 \x01(\r\"-\n\x0bHTTPRewrite\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\"O\n\x0bStringMatch\x12\x0f\n\x05\x65xact\x18\x01 \x01(\tH\x00\x12\x10\n\x06prefix\x18\x02 \x01(\tH\x00\x12\x0f\n\x05regex\x18\x03 \x01(\tH\x00\x42\x0c\n\nmatch_type\"c\n\tHTTPRetry\x12\x10\n\x08\x61ttempts\x18\x01 \x01(\x05\x12\x32\n\x0fper_try_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08retry_on\x18\x03 \x01(\t\"\xcb\x01\n\nCorsPolicy\x12\x14\n\x0c\x61llow_origin\x18\x01 \x03(\t\x12\x15\n\rallow_methods\x18\x02 \x03(\t\x12\x15\n\rallow_headers\x18\x03 \x03(\t\x12\x16\n\x0e\x65xpose_headers\x18\x04 \x03(\t\x12*\n\x07max_age\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x11\x61llow_credentials\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x9a\x04\n\x12HTTPFaultInjection\x12\x42\n\x05\x64\x65lay\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Delay\x12\x42\n\x05\x61\x62ort\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Abort\x1a\xd1\x01\n\x05\x44\x65lay\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x30\n\x0b\x66ixed_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\x11\x65xponential_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x11\n\x0fhttp_delay_type\x1a\xa7\x01\n\x05\x41\x62ort\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x15\n\x0bhttp_status\x18\x02 \x01(\x05H\x00\x12\x15\n\x0bgrpc_status\x18\x03 \x01(\tH\x00\x12\x15\n\x0bhttp2_error\x18\x04 \x01(\tH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x0c\n\nerror_type\"8\n\x0cPortSelector\x12\x10\n\x06number\x18\x01 \x01(\rH\x00\x12\x0e\n\x04name\x18\x02 \x01(\tH\x00\x42\x06\n\x04port\"\x18\n\x07Percent\x12\r\n\x05value\x18\x01 \x01(\x01\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') , dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) @@ -173,8 +173,8 @@ _HTTPROUTE_APPENDHEADERSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1444, - serialized_end=1496, + serialized_start=1498, + serialized_end=1550, ) _HTTPROUTE_APPENDRESPONSEHEADERSENTRY = _descriptor.Descriptor( @@ -210,8 +210,8 @@ _HTTPROUTE_APPENDRESPONSEHEADERSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1498, - serialized_end=1558, + serialized_start=1552, + serialized_end=1612, ) _HTTPROUTE_APPENDREQUESTHEADERSENTRY = _descriptor.Descriptor( @@ -247,8 +247,8 @@ _HTTPROUTE_APPENDREQUESTHEADERSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1560, - serialized_end=1619, + serialized_start=1614, + serialized_end=1673, ) _HTTPROUTE = _descriptor.Descriptor( @@ -329,49 +329,56 @@ _HTTPROUTE = _descriptor.Descriptor( is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='cors_policy', full_name='istio.networking.v1alpha3.HTTPRoute.cors_policy', index=10, + name='mirror_percent', full_name='istio.networking.v1alpha3.HTTPRoute.mirror_percent', index=10, + number=18, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cors_policy', full_name='istio.networking.v1alpha3.HTTPRoute.cors_policy', index=11, number=10, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='append_headers', full_name='istio.networking.v1alpha3.HTTPRoute.append_headers', index=11, + name='append_headers', full_name='istio.networking.v1alpha3.HTTPRoute.append_headers', index=12, number=11, type=11, cpp_type=10, 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=_b('\030\001'), file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='remove_response_headers', full_name='istio.networking.v1alpha3.HTTPRoute.remove_response_headers', index=12, + name='remove_response_headers', full_name='istio.networking.v1alpha3.HTTPRoute.remove_response_headers', index=13, number=12, type=9, cpp_type=9, 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=_b('\030\001'), file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='append_response_headers', full_name='istio.networking.v1alpha3.HTTPRoute.append_response_headers', index=13, + name='append_response_headers', full_name='istio.networking.v1alpha3.HTTPRoute.append_response_headers', index=14, number=13, type=11, cpp_type=10, 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=_b('\030\001'), file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='remove_request_headers', full_name='istio.networking.v1alpha3.HTTPRoute.remove_request_headers', index=14, + name='remove_request_headers', full_name='istio.networking.v1alpha3.HTTPRoute.remove_request_headers', index=15, number=14, type=9, cpp_type=9, 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=_b('\030\001'), file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='append_request_headers', full_name='istio.networking.v1alpha3.HTTPRoute.append_request_headers', index=15, + name='append_request_headers', full_name='istio.networking.v1alpha3.HTTPRoute.append_request_headers', index=16, number=15, type=11, cpp_type=10, 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=_b('\030\001'), file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='headers', full_name='istio.networking.v1alpha3.HTTPRoute.headers', index=16, + name='headers', full_name='istio.networking.v1alpha3.HTTPRoute.headers', index=17, number=16, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, @@ -390,7 +397,7 @@ _HTTPROUTE = _descriptor.Descriptor( oneofs=[ ], serialized_start=460, - serialized_end=1619, + serialized_end=1673, ) @@ -427,8 +434,8 @@ _HEADERS_HEADEROPERATIONS_SETENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1961, - serialized_end=2003, + serialized_start=2015, + serialized_end=2057, ) _HEADERS_HEADEROPERATIONS_ADDENTRY = _descriptor.Descriptor( @@ -464,8 +471,8 @@ _HEADERS_HEADEROPERATIONS_ADDENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2005, - serialized_end=2047, + serialized_start=2059, + serialized_end=2101, ) _HEADERS_HEADEROPERATIONS = _descriptor.Descriptor( @@ -508,8 +515,8 @@ _HEADERS_HEADEROPERATIONS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1775, - serialized_end=2047, + serialized_start=1829, + serialized_end=2101, ) _HEADERS = _descriptor.Descriptor( @@ -545,8 +552,8 @@ _HEADERS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1622, - serialized_end=2047, + serialized_start=1676, + serialized_end=2101, ) @@ -583,8 +590,8 @@ _TLSROUTE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2050, - serialized_end=2182, + serialized_start=2104, + serialized_end=2236, ) @@ -621,8 +628,8 @@ _TCPROUTE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2185, - serialized_end=2316, + serialized_start=2239, + serialized_end=2370, ) @@ -659,8 +666,8 @@ _HTTPMATCHREQUEST_HEADERSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2879, - serialized_end=2965, + serialized_start=2933, + serialized_end=3019, ) _HTTPMATCHREQUEST_SOURCELABELSENTRY = _descriptor.Descriptor( @@ -696,8 +703,8 @@ _HTTPMATCHREQUEST_SOURCELABELSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2967, - serialized_end=3018, + serialized_start=3021, + serialized_end=3072, ) _HTTPMATCHREQUEST_QUERYPARAMSENTRY = _descriptor.Descriptor( @@ -733,8 +740,8 @@ _HTTPMATCHREQUEST_QUERYPARAMSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3020, - serialized_end=3110, + serialized_start=3074, + serialized_end=3164, ) _HTTPMATCHREQUEST = _descriptor.Descriptor( @@ -833,8 +840,8 @@ _HTTPMATCHREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2319, - serialized_end=3110, + serialized_start=2373, + serialized_end=3164, ) @@ -871,8 +878,8 @@ _HTTPROUTEDESTINATION_APPENDRESPONSEHEADERSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1498, - serialized_end=1558, + serialized_start=1552, + serialized_end=1612, ) _HTTPROUTEDESTINATION_APPENDREQUESTHEADERSENTRY = _descriptor.Descriptor( @@ -908,8 +915,8 @@ _HTTPROUTEDESTINATION_APPENDREQUESTHEADERSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1560, - serialized_end=1619, + serialized_start=1614, + serialized_end=1673, ) _HTTPROUTEDESTINATION = _descriptor.Descriptor( @@ -980,8 +987,8 @@ _HTTPROUTEDESTINATION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3113, - serialized_end=3685, + serialized_start=3167, + serialized_end=3739, ) @@ -1018,8 +1025,8 @@ _ROUTEDESTINATION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3687, - serialized_end=3782, + serialized_start=3741, + serialized_end=3836, ) @@ -1056,8 +1063,8 @@ _L4MATCHATTRIBUTES_SOURCELABELSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2967, - serialized_end=3018, + serialized_start=3021, + serialized_end=3072, ) _L4MATCHATTRIBUTES = _descriptor.Descriptor( @@ -1114,8 +1121,8 @@ _L4MATCHATTRIBUTES = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3785, - serialized_end=4028, + serialized_start=3839, + serialized_end=4082, ) @@ -1152,8 +1159,8 @@ _TLSMATCHATTRIBUTES_SOURCELABELSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2967, - serialized_end=3018, + serialized_start=3021, + serialized_end=3072, ) _TLSMATCHATTRIBUTES = _descriptor.Descriptor( @@ -1217,8 +1224,8 @@ _TLSMATCHATTRIBUTES = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4031, - serialized_end=4295, + serialized_start=4085, + serialized_end=4349, ) @@ -1262,8 +1269,8 @@ _HTTPREDIRECT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4297, - serialized_end=4366, + serialized_start=4351, + serialized_end=4420, ) @@ -1300,8 +1307,8 @@ _HTTPREWRITE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4368, - serialized_end=4413, + serialized_start=4422, + serialized_end=4467, ) @@ -1348,8 +1355,8 @@ _STRINGMATCH = _descriptor.Descriptor( name='match_type', full_name='istio.networking.v1alpha3.StringMatch.match_type', index=0, containing_type=None, fields=[]), ], - serialized_start=4415, - serialized_end=4494, + serialized_start=4469, + serialized_end=4548, ) @@ -1393,8 +1400,8 @@ _HTTPRETRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4496, - serialized_end=4595, + serialized_start=4550, + serialized_end=4649, ) @@ -1459,8 +1466,8 @@ _CORSPOLICY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4598, - serialized_end=4801, + serialized_start=4652, + serialized_end=4855, ) @@ -1514,8 +1521,8 @@ _HTTPFAULTINJECTION_DELAY = _descriptor.Descriptor( name='http_delay_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Delay.http_delay_type', index=0, containing_type=None, fields=[]), ], - serialized_start=4963, - serialized_end=5172, + serialized_start=5017, + serialized_end=5226, ) _HTTPFAULTINJECTION_ABORT = _descriptor.Descriptor( @@ -1575,8 +1582,8 @@ _HTTPFAULTINJECTION_ABORT = _descriptor.Descriptor( name='error_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Abort.error_type', index=0, containing_type=None, fields=[]), ], - serialized_start=5175, - serialized_end=5342, + serialized_start=5229, + serialized_end=5396, ) _HTTPFAULTINJECTION = _descriptor.Descriptor( @@ -1612,8 +1619,8 @@ _HTTPFAULTINJECTION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4804, - serialized_end=5342, + serialized_start=4858, + serialized_end=5396, ) @@ -1653,8 +1660,8 @@ _PORTSELECTOR = _descriptor.Descriptor( name='port', full_name='istio.networking.v1alpha3.PortSelector.port', index=0, containing_type=None, fields=[]), ], - serialized_start=5344, - serialized_end=5400, + serialized_start=5398, + serialized_end=5454, ) @@ -1684,8 +1691,8 @@ _PERCENT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5402, - serialized_end=5426, + serialized_start=5456, + serialized_end=5480, ) _VIRTUALSERVICE.fields_by_name['http'].message_type = _HTTPROUTE @@ -1703,6 +1710,7 @@ _HTTPROUTE.fields_by_name['timeout'].message_type = google_dot_protobuf_dot_dura _HTTPROUTE.fields_by_name['retries'].message_type = _HTTPRETRY _HTTPROUTE.fields_by_name['fault'].message_type = _HTTPFAULTINJECTION _HTTPROUTE.fields_by_name['mirror'].message_type = _DESTINATION +_HTTPROUTE.fields_by_name['mirror_percent'].message_type = google_dot_protobuf_dot_wrappers__pb2._UINT32VALUE _HTTPROUTE.fields_by_name['cors_policy'].message_type = _CORSPOLICY _HTTPROUTE.fields_by_name['append_headers'].message_type = _HTTPROUTE_APPENDHEADERSENTRY _HTTPROUTE.fields_by_name['append_response_headers'].message_type = _HTTPROUTE_APPENDRESPONSEHEADERSENTRY