+value |
+Struct (oneof) |
+
+ Explicit extension configuration.
+
|
No
diff --git a/networking/v1alpha3/virtual_service.proto b/networking/v1alpha3/virtual_service.proto
index 2ff9f2dde7f..046516cf67d 100644
--- a/networking/v1alpha3/virtual_service.proto
+++ b/networking/v1alpha3/virtual_service.proto
@@ -17,6 +17,7 @@ syntax = "proto3";
import "google/api/field_behavior.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/wrappers.proto";
+import "google/protobuf/struct.proto";
// $schema: istio.networking.v1alpha3.VirtualService
// $title: Virtual Service
@@ -643,10 +644,26 @@ message HTTPRoute {
// Header manipulation rules
Headers headers = 16;
+ // Optional list of filters to apply on the requests that match this rule.
+ repeated HTTPRouteFilter filters = 21;
+
// $hide_from_docs
- // Next available field number: 21
+ // Next available field number: 22
}
+// HTTP route filter for custom extensions.
+message HTTPRouteFilter {
+ // Extension category determining the type of a filter extension.
+ string category = 1;
+
+ oneof ref_type {
+ // External reference to the extension configuration by name.
+ string name = 2;
+
+ // Explicit extension configuration.
+ google.protobuf.Struct value = 3;
+ }
+}
// Describes the delegate VirtualService.
// The following routing rules forward the traffic to `/productpage` by a delegate VirtualService named `productpage`,
diff --git a/networking/v1alpha3/virtual_service_deepcopy.gen.go b/networking/v1alpha3/virtual_service_deepcopy.gen.go
index dfca279b6f7..f44365afbf4 100644
--- a/networking/v1alpha3/virtual_service_deepcopy.gen.go
+++ b/networking/v1alpha3/virtual_service_deepcopy.gen.go
@@ -227,6 +227,27 @@ func (in *HTTPRoute) DeepCopyInterface() interface{} {
return in.DeepCopy()
}
+// DeepCopyInto supports using HTTPRouteFilter within kubernetes types, where deepcopy-gen is used.
+func (in *HTTPRouteFilter) DeepCopyInto(out *HTTPRouteFilter) {
+ p := proto.Clone(in).(*HTTPRouteFilter)
+ *out = *p
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRouteFilter. Required by controller-gen.
+func (in *HTTPRouteFilter) DeepCopy() *HTTPRouteFilter {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTPRouteFilter)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRouteFilter. Required by controller-gen.
+func (in *HTTPRouteFilter) DeepCopyInterface() interface{} {
+ return in.DeepCopy()
+}
+
// DeepCopyInto supports using Delegate within kubernetes types, where deepcopy-gen is used.
func (in *Delegate) DeepCopyInto(out *Delegate) {
p := proto.Clone(in).(*Delegate)
diff --git a/networking/v1alpha3/virtual_service_json.gen.go b/networking/v1alpha3/virtual_service_json.gen.go
index 474f22a8e20..3f7eccae2b4 100644
--- a/networking/v1alpha3/virtual_service_json.gen.go
+++ b/networking/v1alpha3/virtual_service_json.gen.go
@@ -199,6 +199,17 @@ func (this *HTTPRoute) UnmarshalJSON(b []byte) error {
return VirtualServiceUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}
+// MarshalJSON is a custom marshaler for HTTPRouteFilter
+func (this *HTTPRouteFilter) MarshalJSON() ([]byte, error) {
+ str, err := VirtualServiceMarshaler.MarshalToString(this)
+ return []byte(str), err
+}
+
+// UnmarshalJSON is a custom unmarshaler for HTTPRouteFilter
+func (this *HTTPRouteFilter) UnmarshalJSON(b []byte) error {
+ return VirtualServiceUnmarshaler.Unmarshal(bytes.NewReader(b), this)
+}
+
// MarshalJSON is a custom marshaler for Delegate
func (this *Delegate) MarshalJSON() ([]byte, error) {
str, err := VirtualServiceMarshaler.MarshalToString(this)
diff --git a/networking/v1beta1/virtual_service.gen.json b/networking/v1beta1/virtual_service.gen.json
index 7a3832e682c..bc986239e76 100644
--- a/networking/v1beta1/virtual_service.gen.json
+++ b/networking/v1beta1/virtual_service.gen.json
@@ -145,6 +145,13 @@
},
"headers": {
"$ref": "#/components/schemas/istio.networking.v1beta1.Headers"
+ },
+ "filters": {
+ "description": "Optional list of filters to apply on the requests that match this rule.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1beta1.HTTPRouteFilter"
+ }
}
}
},
@@ -350,8 +357,7 @@
},
"retryRemoteLocalities": {
"description": "Flag to specify whether the retries should retry to other localities. See the [retry plugin configuration](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/http/http_connection_management#retry-plugin-configuration) for more details.",
- "type": "boolean",
- "nullable": true
+ "type": "boolean"
}
}
},
@@ -427,8 +433,7 @@
},
"allowCredentials": {
"description": "Indicates whether the caller is allowed to send the actual request (not the preflight) using credentials. Translates to `Access-Control-Allow-Credentials` header.",
- "type": "boolean",
- "nullable": true
+ "type": "boolean"
}
}
},
@@ -444,6 +449,71 @@
}
}
},
+ "istio.networking.v1beta1.HTTPRouteFilter": {
+ "description": "HTTP route filter for custom extensions.",
+ "type": "object",
+ "properties": {
+ "category": {
+ "description": "Extension category determining the type of a filter extension.",
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "oneOf": [
+ {
+ "not": {
+ "anyOf": [
+ {
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "External reference to the extension configuration by name.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "required": [
+ "value"
+ ],
+ "properties": {
+ "value": {
+ "description": "Explicit extension configuration.",
+ "type": "object"
+ }
+ }
+ }
+ ]
+ }
+ },
+ {
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "External reference to the extension configuration by name.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "required": [
+ "value"
+ ],
+ "properties": {
+ "value": {
+ "description": "Explicit extension configuration.",
+ "type": "object"
+ }
+ }
+ }
+ ]
+ },
"istio.networking.v1beta1.Headers.HeaderOperations": {
"description": "HeaderOperations Describes the header manipulations to apply",
"type": "object",
diff --git a/networking/v1beta1/virtual_service.pb.go b/networking/v1beta1/virtual_service.pb.go
index 7308b08b1c8..b3d583cf358 100644
--- a/networking/v1beta1/virtual_service.pb.go
+++ b/networking/v1beta1/virtual_service.pb.go
@@ -744,10 +744,12 @@ type HTTPRoute struct {
// for further details about cross origin resource sharing.
CorsPolicy *CorsPolicy `protobuf:"bytes,10,opt,name=cors_policy,json=corsPolicy,proto3" json:"cors_policy,omitempty"`
// Header manipulation rules
- Headers *Headers `protobuf:"bytes,16,opt,name=headers,proto3" json:"headers,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
+ Headers *Headers `protobuf:"bytes,16,opt,name=headers,proto3" json:"headers,omitempty"`
+ // Optional list of filters to apply on the requests that match this rule.
+ Filters []*HTTPRouteFilter `protobuf:"bytes,21,rep,name=filters,proto3" json:"filters,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
func (m *HTTPRoute) Reset() { *m = HTTPRoute{} }
@@ -882,6 +884,111 @@ func (m *HTTPRoute) GetHeaders() *Headers {
return nil
}
+func (m *HTTPRoute) GetFilters() []*HTTPRouteFilter {
+ if m != nil {
+ return m.Filters
+ }
+ return nil
+}
+
+// HTTP route filter for custom extensions.
+type HTTPRouteFilter struct {
+ // Extension category determining the type of a filter extension.
+ Category string `protobuf:"bytes,1,opt,name=category,proto3" json:"category,omitempty"`
+ // Types that are valid to be assigned to RefType:
+ // *HTTPRouteFilter_Name
+ // *HTTPRouteFilter_Value
+ RefType isHTTPRouteFilter_RefType `protobuf_oneof:"ref_type"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *HTTPRouteFilter) Reset() { *m = HTTPRouteFilter{} }
+func (m *HTTPRouteFilter) String() string { return proto.CompactTextString(m) }
+func (*HTTPRouteFilter) ProtoMessage() {}
+func (*HTTPRouteFilter) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8c56a442a0838fd7, []int{3}
+}
+func (m *HTTPRouteFilter) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *HTTPRouteFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_HTTPRouteFilter.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *HTTPRouteFilter) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_HTTPRouteFilter.Merge(m, src)
+}
+func (m *HTTPRouteFilter) XXX_Size() int {
+ return m.Size()
+}
+func (m *HTTPRouteFilter) XXX_DiscardUnknown() {
+ xxx_messageInfo_HTTPRouteFilter.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_HTTPRouteFilter proto.InternalMessageInfo
+
+type isHTTPRouteFilter_RefType interface {
+ isHTTPRouteFilter_RefType()
+ MarshalTo([]byte) (int, error)
+ Size() int
+}
+
+type HTTPRouteFilter_Name struct {
+ Name string `protobuf:"bytes,2,opt,name=name,proto3,oneof" json:"name,omitempty"`
+}
+type HTTPRouteFilter_Value struct {
+ Value *types.Struct `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"`
+}
+
+func (*HTTPRouteFilter_Name) isHTTPRouteFilter_RefType() {}
+func (*HTTPRouteFilter_Value) isHTTPRouteFilter_RefType() {}
+
+func (m *HTTPRouteFilter) GetRefType() isHTTPRouteFilter_RefType {
+ if m != nil {
+ return m.RefType
+ }
+ return nil
+}
+
+func (m *HTTPRouteFilter) GetCategory() string {
+ if m != nil {
+ return m.Category
+ }
+ return ""
+}
+
+func (m *HTTPRouteFilter) GetName() string {
+ if x, ok := m.GetRefType().(*HTTPRouteFilter_Name); ok {
+ return x.Name
+ }
+ return ""
+}
+
+func (m *HTTPRouteFilter) GetValue() *types.Struct {
+ if x, ok := m.GetRefType().(*HTTPRouteFilter_Value); ok {
+ return x.Value
+ }
+ return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*HTTPRouteFilter) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*HTTPRouteFilter_Name)(nil),
+ (*HTTPRouteFilter_Value)(nil),
+ }
+}
+
// Describes the delegate VirtualService.
// The following routing rules forward the traffic to `/productpage` by a delegate VirtualService named `productpage`,
// forward the traffic to `/reviews` by a delegate VirtualService named `reviews`.
@@ -957,7 +1064,7 @@ func (m *Delegate) Reset() { *m = Delegate{} }
func (m *Delegate) String() string { return proto.CompactTextString(m) }
func (*Delegate) ProtoMessage() {}
func (*Delegate) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{3}
+ return fileDescriptor_8c56a442a0838fd7, []int{4}
}
func (m *Delegate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1085,7 +1192,7 @@ func (m *Headers) Reset() { *m = Headers{} }
func (m *Headers) String() string { return proto.CompactTextString(m) }
func (*Headers) ProtoMessage() {}
func (*Headers) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{4}
+ return fileDescriptor_8c56a442a0838fd7, []int{5}
}
func (m *Headers) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1146,7 +1253,7 @@ func (m *Headers_HeaderOperations) Reset() { *m = Headers_HeaderOperatio
func (m *Headers_HeaderOperations) String() string { return proto.CompactTextString(m) }
func (*Headers_HeaderOperations) ProtoMessage() {}
func (*Headers_HeaderOperations) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{4, 0}
+ return fileDescriptor_8c56a442a0838fd7, []int{5, 0}
}
func (m *Headers_HeaderOperations) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1277,7 +1384,7 @@ func (m *TLSRoute) Reset() { *m = TLSRoute{} }
func (m *TLSRoute) String() string { return proto.CompactTextString(m) }
func (*TLSRoute) ProtoMessage() {}
func (*TLSRoute) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{5}
+ return fileDescriptor_8c56a442a0838fd7, []int{6}
}
func (m *TLSRoute) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1382,7 +1489,7 @@ func (m *TCPRoute) Reset() { *m = TCPRoute{} }
func (m *TCPRoute) String() string { return proto.CompactTextString(m) }
func (*TCPRoute) ProtoMessage() {}
func (*TCPRoute) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{6}
+ return fileDescriptor_8c56a442a0838fd7, []int{7}
}
func (m *TCPRoute) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1589,7 +1696,7 @@ func (m *HTTPMatchRequest) Reset() { *m = HTTPMatchRequest{} }
func (m *HTTPMatchRequest) String() string { return proto.CompactTextString(m) }
func (*HTTPMatchRequest) ProtoMessage() {}
func (*HTTPMatchRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{7}
+ return fileDescriptor_8c56a442a0838fd7, []int{8}
}
func (m *HTTPMatchRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1868,7 +1975,7 @@ func (m *HTTPRouteDestination) Reset() { *m = HTTPRouteDestination{} }
func (m *HTTPRouteDestination) String() string { return proto.CompactTextString(m) }
func (*HTTPRouteDestination) ProtoMessage() {}
func (*HTTPRouteDestination) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{8}
+ return fileDescriptor_8c56a442a0838fd7, []int{9}
}
func (m *HTTPRouteDestination) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1936,7 +2043,7 @@ func (m *RouteDestination) Reset() { *m = RouteDestination{} }
func (m *RouteDestination) String() string { return proto.CompactTextString(m) }
func (*RouteDestination) ProtoMessage() {}
func (*RouteDestination) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{9}
+ return fileDescriptor_8c56a442a0838fd7, []int{10}
}
func (m *RouteDestination) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2015,7 +2122,7 @@ func (m *L4MatchAttributes) Reset() { *m = L4MatchAttributes{} }
func (m *L4MatchAttributes) String() string { return proto.CompactTextString(m) }
func (*L4MatchAttributes) ProtoMessage() {}
func (*L4MatchAttributes) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{10}
+ return fileDescriptor_8c56a442a0838fd7, []int{11}
}
func (m *L4MatchAttributes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2123,7 +2230,7 @@ func (m *TLSMatchAttributes) Reset() { *m = TLSMatchAttributes{} }
func (m *TLSMatchAttributes) String() string { return proto.CompactTextString(m) }
func (*TLSMatchAttributes) ProtoMessage() {}
func (*TLSMatchAttributes) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{11}
+ return fileDescriptor_8c56a442a0838fd7, []int{12}
}
func (m *TLSMatchAttributes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2262,7 +2369,7 @@ func (m *HTTPRedirect) Reset() { *m = HTTPRedirect{} }
func (m *HTTPRedirect) String() string { return proto.CompactTextString(m) }
func (*HTTPRedirect) ProtoMessage() {}
func (*HTTPRedirect) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{12}
+ return fileDescriptor_8c56a442a0838fd7, []int{13}
}
func (m *HTTPRedirect) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2380,7 +2487,7 @@ func (m *HTTPRewrite) Reset() { *m = HTTPRewrite{} }
func (m *HTTPRewrite) String() string { return proto.CompactTextString(m) }
func (*HTTPRewrite) ProtoMessage() {}
func (*HTTPRewrite) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{13}
+ return fileDescriptor_8c56a442a0838fd7, []int{14}
}
func (m *HTTPRewrite) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2440,7 +2547,7 @@ func (m *StringMatch) Reset() { *m = StringMatch{} }
func (m *StringMatch) String() string { return proto.CompactTextString(m) }
func (*StringMatch) ProtoMessage() {}
func (*StringMatch) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{14}
+ return fileDescriptor_8c56a442a0838fd7, []int{15}
}
func (m *StringMatch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2603,7 +2710,7 @@ func (m *HTTPRetry) Reset() { *m = HTTPRetry{} }
func (m *HTTPRetry) String() string { return proto.CompactTextString(m) }
func (*HTTPRetry) ProtoMessage() {}
func (*HTTPRetry) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{15}
+ return fileDescriptor_8c56a442a0838fd7, []int{16}
}
func (m *HTTPRetry) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2759,7 +2866,7 @@ func (m *CorsPolicy) Reset() { *m = CorsPolicy{} }
func (m *CorsPolicy) String() string { return proto.CompactTextString(m) }
func (*CorsPolicy) ProtoMessage() {}
func (*CorsPolicy) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{16}
+ return fileDescriptor_8c56a442a0838fd7, []int{17}
}
func (m *CorsPolicy) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2862,7 +2969,7 @@ func (m *HTTPFaultInjection) Reset() { *m = HTTPFaultInjection{} }
func (m *HTTPFaultInjection) String() string { return proto.CompactTextString(m) }
func (*HTTPFaultInjection) ProtoMessage() {}
func (*HTTPFaultInjection) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{17}
+ return fileDescriptor_8c56a442a0838fd7, []int{18}
}
func (m *HTTPFaultInjection) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2985,7 +3092,7 @@ func (m *HTTPFaultInjection_Delay) Reset() { *m = HTTPFaultInjection_Del
func (m *HTTPFaultInjection_Delay) String() string { return proto.CompactTextString(m) }
func (*HTTPFaultInjection_Delay) ProtoMessage() {}
func (*HTTPFaultInjection_Delay) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{17, 0}
+ return fileDescriptor_8c56a442a0838fd7, []int{18, 0}
}
func (m *HTTPFaultInjection_Delay) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3145,7 +3252,7 @@ func (m *HTTPFaultInjection_Abort) Reset() { *m = HTTPFaultInjection_Abo
func (m *HTTPFaultInjection_Abort) String() string { return proto.CompactTextString(m) }
func (*HTTPFaultInjection_Abort) ProtoMessage() {}
func (*HTTPFaultInjection_Abort) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{17, 1}
+ return fileDescriptor_8c56a442a0838fd7, []int{18, 1}
}
func (m *HTTPFaultInjection_Abort) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3252,7 +3359,7 @@ func (m *PortSelector) Reset() { *m = PortSelector{} }
func (m *PortSelector) String() string { return proto.CompactTextString(m) }
func (*PortSelector) ProtoMessage() {}
func (*PortSelector) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{18}
+ return fileDescriptor_8c56a442a0838fd7, []int{19}
}
func (m *PortSelector) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3300,7 +3407,7 @@ func (m *Percent) Reset() { *m = Percent{} }
func (m *Percent) String() string { return proto.CompactTextString(m) }
func (*Percent) ProtoMessage() {}
func (*Percent) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{19}
+ return fileDescriptor_8c56a442a0838fd7, []int{20}
}
func (m *Percent) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3340,6 +3447,7 @@ func init() {
proto.RegisterType((*VirtualService)(nil), "istio.networking.v1beta1.VirtualService")
proto.RegisterType((*Destination)(nil), "istio.networking.v1beta1.Destination")
proto.RegisterType((*HTTPRoute)(nil), "istio.networking.v1beta1.HTTPRoute")
+ proto.RegisterType((*HTTPRouteFilter)(nil), "istio.networking.v1beta1.HTTPRouteFilter")
proto.RegisterType((*Delegate)(nil), "istio.networking.v1beta1.Delegate")
proto.RegisterType((*Headers)(nil), "istio.networking.v1beta1.Headers")
proto.RegisterType((*Headers_HeaderOperations)(nil), "istio.networking.v1beta1.Headers.HeaderOperations")
@@ -3375,132 +3483,137 @@ func init() {
}
var fileDescriptor_8c56a442a0838fd7 = []byte{
- // 1987 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0x4f, 0x73, 0x1b, 0x49,
- 0x15, 0x8f, 0xfe, 0x4b, 0x4f, 0x92, 0x2d, 0x77, 0x42, 0x32, 0x6b, 0x52, 0x89, 0x57, 0x21, 0x29,
- 0x03, 0x8b, 0x5c, 0xab, 0x6c, 0x11, 0x6a, 0xb3, 0xd9, 0x5d, 0xff, 0x09, 0xeb, 0x75, 0x39, 0x89,
- 0x77, 0xec, 0x5d, 0xaa, 0x38, 0x30, 0xd5, 0x9a, 0x79, 0x96, 0x86, 0x48, 0xd3, 0x93, 0x9e, 0x1e,
- 0xdb, 0xe2, 0xcc, 0x81, 0x2a, 0x0e, 0x14, 0x07, 0x0e, 0x1c, 0xf9, 0x16, 0x7c, 0x04, 0x8e, 0x5c,
- 0xb8, 0x52, 0x5b, 0xb9, 0x71, 0xe0, 0x23, 0x50, 0x45, 0xf5, 0x9f, 0x91, 0x46, 0x96, 0x6d, 0x49,
- 0x21, 0x61, 0x4f, 0x9a, 0x7e, 0xfd, 0x7e, 0xbf, 0xee, 0x7e, 0xaf, 0xfb, 0xbd, 0xd7, 0x2d, 0x58,
- 0x0f, 0x50, 0x9c, 0x32, 0xfe, 0xd2, 0x0f, 0xba, 0x1b, 0x27, 0x1f, 0x76, 0x50, 0xd0, 0x0f, 0x37,
- 0x4e, 0x7c, 0x2e, 0x62, 0xda, 0x77, 0x22, 0xe4, 0x27, 0xbe, 0x8b, 0xad, 0x90, 0x33, 0xc1, 0x88,
- 0xe5, 0x47, 0xc2, 0x67, 0xad, 0xb1, 0x7e, 0xcb, 0xe8, 0xaf, 0xde, 0xed, 0x32, 0xd6, 0xed, 0xe3,
- 0x06, 0x0d, 0xfd, 0x8d, 0x63, 0x1f, 0xfb, 0x9e, 0xd3, 0xc1, 0x1e, 0x3d, 0xf1, 0x19, 0xd7, 0xd0,
- 0xd5, 0x3b, 0x46, 0x41, 0xb5, 0x3a, 0xf1, 0xf1, 0x86, 0x17, 0x73, 0x2a, 0x7c, 0x16, 0x5c, 0xd6,
- 0x7f, 0xca, 0x69, 0x18, 0x22, 0x8f, 0x74, 0x7f, 0xf3, 0xb7, 0x59, 0x58, 0xfa, 0x46, 0x4f, 0xea,
- 0x50, 0xcf, 0x89, 0xdc, 0x80, 0x42, 0x8f, 0x45, 0x22, 0xb2, 0x32, 0x6b, 0xb9, 0xf5, 0x8a, 0xad,
- 0x1b, 0x64, 0x15, 0xca, 0x5d, 0x2a, 0xf0, 0x94, 0x0e, 0x23, 0x2b, 0xab, 0x3a, 0x46, 0x6d, 0xf2,
- 0x08, 0xf2, 0x3d, 0x21, 0x42, 0x2b, 0xb7, 0x96, 0x5b, 0xaf, 0xb6, 0xef, 0xb5, 0x2e, 0x5b, 0x4e,
- 0x6b, 0xf7, 0xe8, 0xe8, 0xc0, 0x66, 0xb1, 0x40, 0x5b, 0x01, 0xc8, 0x47, 0x90, 0x13, 0xfd, 0xc8,
- 0x2a, 0x28, 0x5c, 0xf3, 0x72, 0xdc, 0xd1, 0xfe, 0xa1, 0x86, 0x49, 0x75, 0x85, 0x72, 0x43, 0x2b,
- 0x3f, 0x13, 0xb5, 0x7d, 0x90, 0xa0, 0xdc, 0x90, 0x7c, 0x1f, 0x2a, 0x78, 0x16, 0x32, 0x2e, 0x1c,
- 0xc1, 0xac, 0xa2, 0x5e, 0x81, 0x16, 0x1c, 0xb1, 0xe6, 0x6f, 0xa0, 0xba, 0x83, 0x91, 0xf0, 0x03,
- 0x65, 0x3b, 0x72, 0x0b, 0xf2, 0x72, 0xd5, 0x56, 0x66, 0x2d, 0xb3, 0x5e, 0xd9, 0xca, 0x7d, 0xbb,
- 0x99, 0xb5, 0x95, 0x80, 0xdc, 0x84, 0x62, 0x14, 0x77, 0x22, 0x14, 0x56, 0x56, 0x76, 0xd9, 0xa6,
- 0x45, 0x3e, 0x86, 0xbc, 0x64, 0xb2, 0x72, 0x6b, 0x99, 0xf5, 0x6a, 0xfb, 0xc1, 0xe5, 0x73, 0x3a,
- 0x60, 0x5c, 0x1c, 0x62, 0x1f, 0x5d, 0xc1, 0xb8, 0xad, 0x30, 0xcd, 0x3f, 0x96, 0xa1, 0x32, 0x32,
- 0x0c, 0x21, 0x90, 0x0f, 0xe8, 0x00, 0xad, 0x15, 0xc5, 0xaf, 0xbe, 0xc9, 0xe7, 0x50, 0x18, 0x50,
- 0xe1, 0xf6, 0x94, 0x47, 0xaa, 0xed, 0x1f, 0x5d, 0x6d, 0xe0, 0x67, 0x52, 0xd5, 0xc6, 0x57, 0x31,
- 0x46, 0xc2, 0xd6, 0x40, 0xb2, 0x03, 0x05, 0x2e, 0xe9, 0x95, 0xeb, 0xaa, 0xed, 0xd6, 0x1c, 0x2e,
- 0x4a, 0xd9, 0xc3, 0xd6, 0x60, 0xb2, 0x05, 0x65, 0x8e, 0x9e, 0xcf, 0xd1, 0x9d, 0x63, 0xa5, 0x8a,
- 0xc8, 0x68, 0xdb, 0x23, 0x1c, 0xf9, 0x14, 0xca, 0x1e, 0xf6, 0x51, 0xee, 0x1d, 0xeb, 0x86, 0xe2,
- 0xb8, 0xc2, 0x83, 0x3b, 0x46, 0xd3, 0x1e, 0x61, 0xc8, 0x67, 0x50, 0xe2, 0x78, 0xca, 0x7d, 0x81,
- 0x56, 0x5e, 0xc1, 0xef, 0xcf, 0x9a, 0x82, 0x52, 0xb6, 0x13, 0x14, 0x79, 0x08, 0x25, 0xe1, 0x0f,
- 0x90, 0xc5, 0xc2, 0x2a, 0x2a, 0x82, 0xf7, 0x5a, 0xfa, 0x8c, 0xb4, 0x92, 0x33, 0xd2, 0xda, 0x31,
- 0x67, 0xc8, 0x4e, 0x34, 0xc9, 0x13, 0x39, 0xaa, 0xe0, 0x3e, 0x46, 0x56, 0x49, 0x81, 0x66, 0x6d,
- 0x72, 0x14, 0x7c, 0x68, 0x27, 0x18, 0xb2, 0x05, 0x85, 0x63, 0x1a, 0xf7, 0x85, 0x55, 0x56, 0xe0,
- 0x0f, 0xae, 0x06, 0xff, 0x5c, 0xaa, 0x7e, 0x19, 0xfc, 0x1a, 0x5d, 0x6d, 0x7c, 0x05, 0x25, 0x4f,
- 0xa0, 0x38, 0xf0, 0x39, 0x67, 0xdc, 0xaa, 0xcc, 0x5a, 0x77, 0xda, 0x75, 0x06, 0x44, 0xbe, 0x80,
- 0x25, 0xfd, 0xe5, 0x84, 0xc8, 0x5d, 0x0c, 0x84, 0x45, 0x14, 0xcd, 0xed, 0xa9, 0xd5, 0x7f, 0xfd,
- 0x65, 0x20, 0x1e, 0xb6, 0xbf, 0xa1, 0xfd, 0x18, 0xb7, 0xb2, 0x56, 0xc6, 0xae, 0x6b, 0xdc, 0x81,
- 0x86, 0x91, 0xe7, 0xb0, 0x32, 0x49, 0x44, 0xbb, 0x68, 0x5d, 0x57, 0x5c, 0xef, 0x5f, 0xb1, 0xef,
- 0xb5, 0xae, 0xdd, 0x98, 0x20, 0xa3, 0x5d, 0x24, 0x4f, 0xa1, 0xea, 0x32, 0x1e, 0x39, 0x21, 0xeb,
- 0xfb, 0xee, 0xd0, 0x02, 0xc5, 0xf4, 0x83, 0xcb, 0x99, 0xb6, 0x19, 0x8f, 0x0e, 0x94, 0xae, 0x0d,
- 0xee, 0xe8, 0x9b, 0x3c, 0x86, 0x52, 0x0f, 0xa9, 0x87, 0x3c, 0xb2, 0x1a, 0xb3, 0x26, 0xb3, 0xab,
- 0x15, 0xed, 0x04, 0xb1, 0x97, 0x2f, 0x17, 0x1a, 0xc5, 0xbd, 0x7c, 0xb9, 0xda, 0x68, 0xd8, 0x2b,
- 0xa7, 0xd8, 0x89, 0x98, 0xfb, 0x12, 0x85, 0x13, 0x87, 0x5d, 0x4e, 0x3d, 0xb4, 0x97, 0x64, 0xc8,
- 0x0c, 0x3c, 0xc7, 0xa8, 0xdb, 0xb7, 0x38, 0x0e, 0xd8, 0x09, 0x3a, 0x1c, 0xa3, 0x90, 0x05, 0x11,
- 0x8e, 0x3b, 0x8c, 0xe2, 0x54, 0xc7, 0xcd, 0x11, 0x42, 0x1d, 0xcb, 0xb1, 0x7c, 0x04, 0x98, 0x90,
- 0x37, 0x3f, 0x81, 0x72, 0xb2, 0xf7, 0x47, 0x11, 0x21, 0x93, 0x8a, 0x08, 0xb7, 0xa1, 0x22, 0x7f,
- 0xa3, 0x90, 0xba, 0x68, 0x42, 0xd1, 0x58, 0xd0, 0x7c, 0x9d, 0x83, 0x92, 0x59, 0x23, 0xd9, 0x97,
- 0x3b, 0x57, 0x91, 0x2b, 0x82, 0x6a, 0xbb, 0x3d, 0xd3, 0x2e, 0xe6, 0xf7, 0x45, 0x88, 0xfa, 0x18,
- 0x44, 0x76, 0x42, 0x41, 0x9e, 0xcb, 0x08, 0xa0, 0xd7, 0xa6, 0x86, 0x7d, 0x33, 0xba, 0x11, 0xc7,
- 0xea, 0x5f, 0xb3, 0xd0, 0x38, 0xdf, 0x4d, 0x9e, 0x41, 0x4e, 0x46, 0x58, 0x1d, 0xec, 0x1e, 0x2f,
- 0xce, 0xdf, 0x3a, 0x44, 0xf1, 0x34, 0x90, 0x07, 0x50, 0xf2, 0x48, 0x3a, 0xea, 0x79, 0x26, 0xf2,
- 0xbd, 0x09, 0xdd, 0xa6, 0xe7, 0x19, 0x3a, 0xea, 0x79, 0x32, 0x05, 0x68, 0x67, 0xaa, 0x74, 0x57,
- 0xb1, 0x4d, 0x6b, 0xf5, 0xa7, 0x50, 0x4e, 0xc6, 0x25, 0x0d, 0xc8, 0xbd, 0xc4, 0xa1, 0xf1, 0x98,
- 0xfc, 0x94, 0x49, 0xf5, 0x44, 0x9e, 0x28, 0xe3, 0x2c, 0xdd, 0xf8, 0x38, 0xfb, 0xb3, 0x8c, 0xc4,
- 0x25, 0x03, 0x2c, 0x82, 0x6b, 0xfe, 0x29, 0x03, 0xe5, 0x24, 0x2f, 0x92, 0x2f, 0x26, 0x33, 0xc4,
- 0x07, 0x57, 0xa6, 0x52, 0x95, 0x20, 0x36, 0x85, 0xe0, 0x7e, 0x27, 0x16, 0x18, 0xe9, 0xfc, 0x66,
- 0x12, 0xc5, 0xe7, 0x93, 0x89, 0xe2, 0x8a, 0x54, 0x73, 0x49, 0x92, 0x68, 0xfe, 0x41, 0xce, 0xcb,
- 0x64, 0x5e, 0xb2, 0x39, 0x39, 0xaf, 0x1f, 0x5f, 0x4e, 0xb7, 0xff, 0xd1, 0xb9, 0x69, 0xbd, 0xbd,
- 0x19, 0xfd, 0xb9, 0x02, 0x8d, 0xf3, 0x89, 0x71, 0x74, 0xaa, 0xaa, 0xa9, 0x53, 0xf5, 0x08, 0x72,
- 0x31, 0xf7, 0xcd, 0x39, 0xb9, 0x22, 0xbe, 0x1e, 0x0a, 0xee, 0x07, 0x5d, 0x4d, 0x27, 0x11, 0x32,
- 0x36, 0x47, 0x6e, 0x0f, 0x07, 0xc9, 0xa1, 0x98, 0x13, 0x6b, 0x40, 0x2a, 0xb4, 0xa3, 0xe8, 0x31,
- 0xcf, 0x64, 0xd5, 0x79, 0xe1, 0x1a, 0x44, 0xb6, 0xa1, 0x42, 0x63, 0xd1, 0x63, 0xdc, 0x17, 0xc3,
- 0xd9, 0x49, 0x31, 0xcd, 0x30, 0xc6, 0x91, 0xaf, 0xc6, 0xf1, 0x53, 0x97, 0x63, 0x8f, 0xe6, 0xaf,
- 0x32, 0x92, 0xa3, 0xa3, 0x4f, 0x49, 0xc2, 0x23, 0x4d, 0xac, 0x8a, 0x22, 0x99, 0x66, 0xeb, 0xba,
- 0xd8, 0x21, 0x14, 0xea, 0x11, 0x8b, 0xb9, 0x8b, 0x4e, 0x9f, 0x76, 0xb0, 0x2f, 0xd3, 0xa9, 0x1c,
- 0xec, 0x93, 0x05, 0x06, 0x3b, 0x54, 0xf8, 0x7d, 0x05, 0xd7, 0x23, 0xd6, 0xa2, 0x94, 0x68, 0xa2,
- 0x52, 0x2d, 0x9f, 0xab, 0x54, 0x7f, 0x05, 0xb5, 0x57, 0x31, 0xf2, 0xa1, 0x13, 0x52, 0x4e, 0x07,
- 0x91, 0x55, 0x99, 0x19, 0x14, 0xce, 0x8f, 0xfe, 0x95, 0x84, 0x1f, 0x28, 0xb4, 0x1e, 0xbc, 0xfa,
- 0x6a, 0x2c, 0x21, 0x0f, 0x60, 0xd9, 0xef, 0x06, 0x8c, 0xa3, 0x13, 0x73, 0xdf, 0x71, 0x69, 0x84,
- 0x2a, 0xa1, 0x95, 0xed, 0xba, 0x16, 0x7f, 0xcd, 0xfd, 0x6d, 0x1a, 0x21, 0xe9, 0xc2, 0xf2, 0xa9,
- 0x2f, 0x7a, 0x2c, 0x1e, 0x85, 0x7c, 0xab, 0xa6, 0xa6, 0xf2, 0xe9, 0x02, 0x53, 0xf9, 0x85, 0x66,
- 0x98, 0x30, 0xfe, 0xd2, 0xe9, 0x84, 0x90, 0xfc, 0x10, 0x1a, 0xc6, 0xde, 0xe3, 0x7c, 0x51, 0x57,
- 0x5b, 0x7e, 0x59, 0xcb, 0x9f, 0x27, 0xe2, 0x55, 0x0a, 0xb5, 0x34, 0xd5, 0x05, 0xc1, 0xe8, 0x71,
- 0x3a, 0x18, 0xcd, 0xbd, 0xc9, 0x52, 0xb1, 0xee, 0x33, 0x58, 0x99, 0xf2, 0xde, 0x42, 0xc1, 0x12,
- 0xa1, 0x71, 0xde, 0x01, 0xef, 0x62, 0x9e, 0x3d, 0xb8, 0x7e, 0x81, 0x71, 0xdf, 0xc1, 0x48, 0xcd,
- 0xbf, 0x64, 0xe1, 0xc6, 0x45, 0x25, 0x37, 0xd9, 0x87, 0xaa, 0x37, 0x6e, 0xce, 0x8e, 0x49, 0x29,
- 0xac, 0x0e, 0xe8, 0x69, 0xb8, 0x4c, 0x5a, 0xa7, 0xe8, 0x77, 0x7b, 0xfa, 0xde, 0x52, 0xb0, 0x4d,
- 0x2b, 0x5d, 0x35, 0x95, 0xde, 0xa0, 0x6a, 0xca, 0x35, 0x4a, 0xff, 0x87, 0x62, 0xe8, 0x0c, 0x1a,
- 0xdf, 0x8d, 0x79, 0x9a, 0xff, 0xca, 0xc2, 0xca, 0x54, 0x62, 0x22, 0x1b, 0x70, 0x3d, 0x05, 0x76,
- 0xa2, 0xb8, 0x13, 0xe0, 0xe8, 0xba, 0x4c, 0x52, 0x5d, 0x87, 0xba, 0x67, 0x14, 0x08, 0xb3, 0xa9,
- 0x40, 0x78, 0x6f, 0x14, 0x08, 0x35, 0x5e, 0x85, 0xfe, 0x4a, 0x12, 0xca, 0x34, 0x92, 0x74, 0xce,
- 0x47, 0x4b, 0x7d, 0xe7, 0x7d, 0xb2, 0x40, 0x1a, 0x5d, 0x28, 0x5c, 0x16, 0xce, 0x85, 0xcb, 0x8b,
- 0xa2, 0x47, 0xf1, 0xe2, 0xe8, 0xf1, 0xbf, 0x1e, 0xed, 0xe6, 0x7f, 0xb2, 0x40, 0xa6, 0x8b, 0x13,
- 0xb2, 0x06, 0x95, 0x28, 0xf0, 0x9d, 0xd4, 0x8b, 0x84, 0xf6, 0x5f, 0x39, 0x0a, 0xfc, 0x5d, 0xf5,
- 0x32, 0x71, 0x89, 0x3b, 0xb2, 0x33, 0xdd, 0x91, 0x4b, 0xb9, 0xc3, 0x3d, 0x6f, 0xe9, 0xc2, 0xac,
- 0x70, 0x3c, 0x3d, 0xd7, 0x85, 0x4c, 0x5d, 0x9c, 0xc3, 0xd4, 0xa5, 0x77, 0x63, 0xea, 0xbd, 0x7c,
- 0x39, 0xdf, 0x28, 0xd8, 0x93, 0xfb, 0xaf, 0xe9, 0x42, 0x2d, 0x7d, 0x65, 0x97, 0x84, 0x49, 0x31,
- 0x54, 0xd1, 0x55, 0xce, 0xed, 0x74, 0x9d, 0x61, 0x2e, 0x1d, 0xe3, 0x02, 0xe2, 0x1e, 0xd4, 0x93,
- 0x4b, 0xbe, 0xe3, 0x32, 0x0f, 0x8d, 0x79, 0x6b, 0x89, 0x70, 0x9b, 0x79, 0xd8, 0x7c, 0x02, 0xd5,
- 0xd4, 0xa5, 0x7c, 0xd1, 0x31, 0x9a, 0x08, 0xd5, 0x54, 0x1c, 0x25, 0x37, 0xa1, 0x80, 0x67, 0xd4,
- 0x35, 0xef, 0x34, 0xbb, 0xd7, 0x6c, 0xdd, 0x24, 0x16, 0x14, 0x43, 0x8e, 0xc7, 0xfe, 0x99, 0x66,
- 0xd8, 0xbd, 0x66, 0x9b, 0xb6, 0x44, 0x70, 0xec, 0xe2, 0x99, 0x3e, 0x6d, 0x12, 0xa1, 0x9a, 0x5b,
- 0x35, 0x00, 0x55, 0x6d, 0x3a, 0x62, 0x18, 0x62, 0xf3, 0x9f, 0x19, 0xf3, 0x22, 0x23, 0x6f, 0xf1,
- 0xe4, 0x2e, 0x94, 0xa9, 0x10, 0x38, 0x08, 0xd5, 0x06, 0xcc, 0xac, 0x17, 0xcc, 0x06, 0x4c, 0x84,
- 0x64, 0x13, 0x96, 0x43, 0xe4, 0x8e, 0xe0, 0x43, 0x27, 0x79, 0x59, 0xc8, 0xce, 0x7a, 0x59, 0xa8,
- 0x87, 0xc8, 0x8f, 0xf8, 0xf0, 0xc8, 0xbc, 0x2f, 0xbc, 0x27, 0xef, 0x55, 0x92, 0x80, 0x05, 0x26,
- 0x10, 0xa8, 0xb7, 0x83, 0xe1, 0x8b, 0x80, 0xd8, 0x70, 0x4b, 0x77, 0xc9, 0xa8, 0x29, 0xd0, 0xe9,
- 0x33, 0x97, 0xf6, 0x7d, 0xe1, 0x63, 0x64, 0x6a, 0xbd, 0xd5, 0xa9, 0x51, 0xb6, 0x18, 0xeb, 0xab,
- 0xfb, 0xbb, 0xfd, 0x3d, 0x05, 0xb5, 0x15, 0x72, 0x7f, 0x04, 0x6c, 0xfe, 0x3b, 0x0b, 0x30, 0xbe,
- 0x47, 0x93, 0xfb, 0x50, 0xa3, 0xfd, 0x3e, 0x3b, 0x75, 0x18, 0xf7, 0xbb, 0x7e, 0x60, 0x8e, 0x99,
- 0xbc, 0xfb, 0x57, 0x95, 0xfc, 0x85, 0x12, 0x93, 0x3d, 0xa8, 0xa7, 0xd5, 0x92, 0xda, 0x6d, 0xce,
- 0xa4, 0x57, 0x4b, 0x51, 0x45, 0x72, 0xb7, 0x68, 0x2e, 0x5d, 0xc3, 0x26, 0xc7, 0x55, 0x2b, 0x3d,
- 0xd3, 0xb2, 0xb1, 0x52, 0x92, 0xa3, 0x72, 0x29, 0xa5, 0xa4, 0xc2, 0xb9, 0x0f, 0x4b, 0x78, 0x16,
- 0xb2, 0x71, 0x7e, 0x51, 0x41, 0xb2, 0x62, 0xd7, 0xb5, 0x34, 0x51, 0x6b, 0x43, 0x69, 0x40, 0xcf,
- 0x1c, 0xda, 0x45, 0xab, 0x30, 0xcb, 0x39, 0xc5, 0x01, 0x3d, 0xdb, 0xec, 0xca, 0x5b, 0xd5, 0x8a,
- 0x1e, 0xdf, 0xe5, 0xe8, 0x61, 0x20, 0x7c, 0xda, 0x8f, 0xcc, 0xa3, 0xd1, 0x55, 0x46, 0x6f, 0x28,
- 0xd0, 0xf6, 0x18, 0xd3, 0xfc, 0x7d, 0x01, 0xc8, 0xf4, 0xcb, 0x0e, 0xd9, 0x85, 0x82, 0x87, 0x7d,
- 0x3a, 0x9c, 0xe3, 0x66, 0x3e, 0x05, 0x6e, 0xed, 0x48, 0xa4, 0xad, 0x09, 0x24, 0x13, 0xed, 0x24,
- 0x29, 0x66, 0x51, 0xa6, 0x4d, 0x89, 0xb4, 0x35, 0xc1, 0xea, 0xef, 0xb2, 0x50, 0x50, 0xd4, 0xe4,
- 0x36, 0x94, 0x92, 0xa7, 0x22, 0xbd, 0xed, 0xe5, 0x86, 0x48, 0x44, 0x64, 0x13, 0xaa, 0xc7, 0xfe,
- 0x19, 0x7a, 0x8e, 0x5e, 0xc1, 0xac, 0x0d, 0xaf, 0xce, 0xcc, 0xee, 0x35, 0x1b, 0x14, 0x68, 0xc7,
- 0x4c, 0x7a, 0x45, 0xfa, 0x28, 0xd0, 0x56, 0x32, 0x44, 0xb9, 0x19, 0x44, 0xbb, 0xd7, 0xec, 0x46,
- 0x0a, 0xa5, 0x99, 0x36, 0x01, 0x52, 0x8f, 0x51, 0x85, 0x79, 0x1f, 0xa3, 0x52, 0xa0, 0xad, 0x15,
- 0x58, 0xee, 0x09, 0x11, 0xea, 0x59, 0xa8, 0x30, 0xb0, 0xfa, 0x8f, 0x0c, 0x14, 0x94, 0x6d, 0xc8,
- 0x03, 0xa8, 0xaa, 0xce, 0x48, 0x50, 0x11, 0x47, 0xba, 0x48, 0x18, 0xad, 0x48, 0xf6, 0x1c, 0xaa,
- 0x0e, 0xf2, 0x3e, 0x54, 0xbb, 0x3c, 0x74, 0x13, 0xbd, 0x24, 0xc8, 0x80, 0x14, 0x8e, 0x55, 0x24,
- 0xa0, 0xed, 0xa0, 0x7a, 0xcb, 0xcb, 0x27, 0x2a, 0x4a, 0xf8, 0x54, 0x3d, 0xd5, 0xbd, 0x85, 0xd5,
- 0xd4, 0x00, 0x14, 0xbf, 0x5a, 0xc8, 0x5e, 0xbe, 0x9c, 0x69, 0x64, 0x47, 0xae, 0x6b, 0xb6, 0xa1,
- 0x96, 0x7e, 0x86, 0x96, 0xd5, 0x4f, 0x10, 0x0f, 0x3a, 0xc8, 0x95, 0x9f, 0xeb, 0xb6, 0x69, 0xed,
- 0xe5, 0xcb, 0xd9, 0x46, 0x4e, 0x5f, 0x8d, 0x9b, 0x77, 0xa1, 0x94, 0x3c, 0x00, 0x8e, 0xf2, 0x8a,
- 0xd4, 0xce, 0x98, 0xbc, 0xb2, 0xf5, 0x93, 0xbf, 0xbd, 0xbe, 0x93, 0xf9, 0xfb, 0xeb, 0x3b, 0x99,
- 0x6f, 0x5f, 0xdf, 0xc9, 0xfc, 0xf2, 0xae, 0x9e, 0xad, 0xcf, 0xd4, 0x3f, 0x17, 0xd3, 0x7f, 0x84,
- 0x74, 0x8a, 0xca, 0xb1, 0x0f, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x15, 0xd7, 0x7f, 0x89, 0x25,
- 0x19, 0x00, 0x00,
+ // 2072 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x6f, 0x1b, 0xc7,
+ 0x15, 0x37, 0xbf, 0x44, 0xf2, 0x91, 0xb2, 0xa8, 0xb1, 0x63, 0x6f, 0x54, 0xc3, 0x76, 0xe8, 0xda,
+ 0x50, 0xda, 0x94, 0x42, 0xe8, 0xa0, 0x2e, 0xe2, 0x38, 0x89, 0x3e, 0x9c, 0x28, 0x82, 0x6c, 0x2b,
+ 0x23, 0x25, 0x05, 0x7a, 0xe8, 0x62, 0xb9, 0xfb, 0x44, 0x6e, 0x4d, 0xee, 0xac, 0x67, 0x67, 0x25,
+ 0xb1, 0xa7, 0x1e, 0x7a, 0x28, 0xd0, 0x43, 0x4f, 0x3d, 0xf4, 0xd8, 0xff, 0xa2, 0x7f, 0x42, 0x8f,
+ 0xbd, 0xb4, 0xc7, 0x22, 0xf0, 0xad, 0x87, 0xfe, 0x09, 0x05, 0x8a, 0xf9, 0xd8, 0xe5, 0x92, 0x94,
+ 0x44, 0x32, 0x8d, 0x9b, 0x93, 0x38, 0x6f, 0xde, 0xef, 0x37, 0xb3, 0xf3, 0xe6, 0x7d, 0xcc, 0x13,
+ 0xac, 0x07, 0x28, 0x4e, 0x19, 0x7f, 0xe9, 0x07, 0xdd, 0x8d, 0x93, 0xf7, 0x3b, 0x28, 0x9c, 0xf7,
+ 0x37, 0x4e, 0x7c, 0x2e, 0x62, 0xa7, 0x6f, 0x47, 0xc8, 0x4f, 0x7c, 0x17, 0x5b, 0x21, 0x67, 0x82,
+ 0x11, 0xcb, 0x8f, 0x84, 0xcf, 0x5a, 0x23, 0xfd, 0x96, 0xd1, 0x5f, 0xbb, 0xd3, 0x65, 0xac, 0xdb,
+ 0xc7, 0x0d, 0x27, 0xf4, 0x37, 0x8e, 0x7d, 0xec, 0x7b, 0x76, 0x07, 0x7b, 0xce, 0x89, 0xcf, 0xb8,
+ 0x86, 0xae, 0xdd, 0x36, 0x0a, 0x6a, 0xd4, 0x89, 0x8f, 0x37, 0xbc, 0x98, 0x3b, 0xc2, 0x67, 0xc1,
+ 0x45, 0xf3, 0xa7, 0xdc, 0x09, 0x43, 0xe4, 0x91, 0x99, 0xbf, 0x35, 0x39, 0x1f, 0x09, 0x1e, 0xbb,
+ 0x42, 0xcf, 0x36, 0x7f, 0x9b, 0x87, 0xab, 0x5f, 0xeb, 0x2d, 0x1f, 0xea, 0x1d, 0x93, 0xeb, 0x50,
+ 0xea, 0xb1, 0x48, 0x44, 0x56, 0xee, 0x6e, 0x61, 0xbd, 0x4a, 0xf5, 0x80, 0xac, 0x41, 0xa5, 0xeb,
+ 0x08, 0x3c, 0x75, 0x86, 0x91, 0x95, 0x57, 0x13, 0xe9, 0x98, 0x3c, 0x82, 0x62, 0x4f, 0x88, 0xd0,
+ 0x2a, 0xdc, 0x2d, 0xac, 0xd7, 0xda, 0xf7, 0x5a, 0x17, 0x7d, 0x6c, 0x6b, 0xf7, 0xe8, 0xe8, 0x80,
+ 0xb2, 0x58, 0x20, 0x55, 0x00, 0xf2, 0x01, 0x14, 0x44, 0x3f, 0xb2, 0x4a, 0x0a, 0xd7, 0xbc, 0x18,
+ 0x77, 0xb4, 0x7f, 0xa8, 0x61, 0x52, 0x5d, 0xa1, 0xdc, 0xd0, 0x2a, 0xce, 0x44, 0x6d, 0x1f, 0x24,
+ 0x28, 0x37, 0x24, 0x3f, 0x80, 0x2a, 0x9e, 0x85, 0x8c, 0x0b, 0x5b, 0x30, 0x6b, 0x49, 0x7f, 0x81,
+ 0x16, 0x1c, 0xb1, 0xe6, 0xaf, 0xa1, 0xb6, 0x83, 0x91, 0xf0, 0x03, 0x75, 0xb2, 0xe4, 0x26, 0x14,
+ 0xe5, 0x57, 0x5b, 0xb9, 0xbb, 0xb9, 0xf5, 0xea, 0x56, 0xe1, 0x9b, 0xcd, 0x3c, 0x55, 0x02, 0x72,
+ 0x03, 0x96, 0xa2, 0xb8, 0x13, 0xa1, 0xb0, 0xf2, 0x72, 0x8a, 0x9a, 0x11, 0xf9, 0x10, 0x8a, 0x92,
+ 0xc9, 0x2a, 0xdc, 0xcd, 0xad, 0xd7, 0xda, 0x0f, 0x2e, 0xde, 0xd3, 0x01, 0xe3, 0xe2, 0x10, 0xfb,
+ 0xe8, 0x0a, 0xc6, 0xa9, 0xc2, 0x34, 0xff, 0x51, 0x81, 0x6a, 0x7a, 0x30, 0x84, 0x40, 0x31, 0x70,
+ 0x06, 0x68, 0xad, 0x2a, 0x7e, 0xf5, 0x9b, 0x7c, 0x0a, 0xa5, 0x81, 0x23, 0xdc, 0x9e, 0xb2, 0x48,
+ 0xad, 0xfd, 0xa3, 0xcb, 0x0f, 0xf8, 0x99, 0x54, 0xa5, 0xf8, 0x2a, 0xc6, 0x48, 0x50, 0x0d, 0x24,
+ 0x3b, 0x50, 0xe2, 0x92, 0x5e, 0x99, 0xae, 0xd6, 0x6e, 0xcd, 0x61, 0xa2, 0xcc, 0x79, 0x50, 0x0d,
+ 0x26, 0x5b, 0x50, 0xe1, 0xe8, 0xf9, 0x1c, 0xdd, 0x39, 0xbe, 0x54, 0x11, 0x19, 0x6d, 0x9a, 0xe2,
+ 0xc8, 0xc7, 0x50, 0xf1, 0xb0, 0x8f, 0xf2, 0xee, 0x58, 0xd7, 0x15, 0xc7, 0x25, 0x16, 0xdc, 0x31,
+ 0x9a, 0x34, 0xc5, 0x90, 0x4f, 0xa0, 0xcc, 0xf1, 0x94, 0xfb, 0x02, 0xad, 0xa2, 0x82, 0xdf, 0x9f,
+ 0xb5, 0x05, 0xa5, 0x4c, 0x13, 0x14, 0x79, 0x08, 0x65, 0xe1, 0x0f, 0x90, 0xc5, 0xc2, 0x5a, 0x52,
+ 0x04, 0x6f, 0xb7, 0xb4, 0x87, 0xb4, 0x12, 0x0f, 0x69, 0xed, 0x18, 0x0f, 0xa3, 0x89, 0x26, 0x79,
+ 0x22, 0x57, 0x15, 0xdc, 0xc7, 0xc8, 0x2a, 0x2b, 0xd0, 0xac, 0x4b, 0x8e, 0x82, 0x0f, 0x69, 0x82,
+ 0x21, 0x5b, 0x50, 0x3a, 0x76, 0xe2, 0xbe, 0xb0, 0x2a, 0x0a, 0xfc, 0xde, 0xe5, 0xe0, 0xcf, 0xa4,
+ 0xea, 0x17, 0xc1, 0xaf, 0xd0, 0xd5, 0x87, 0xaf, 0xa0, 0xe4, 0x09, 0x2c, 0x0d, 0x7c, 0xce, 0x19,
+ 0xb7, 0xaa, 0xb3, 0xbe, 0x3b, 0x6b, 0x3a, 0x03, 0x22, 0x9f, 0xc3, 0x55, 0xfd, 0xcb, 0x0e, 0x91,
+ 0xbb, 0x18, 0x08, 0x8b, 0x28, 0x9a, 0x5b, 0x53, 0x5f, 0xff, 0xd5, 0x17, 0x81, 0x78, 0xd8, 0xfe,
+ 0xda, 0xe9, 0xc7, 0xb8, 0x95, 0xb7, 0x72, 0x74, 0x59, 0xe3, 0x0e, 0x34, 0x8c, 0x3c, 0x87, 0xd5,
+ 0x71, 0x22, 0xa7, 0x8b, 0xd6, 0x35, 0xc5, 0xf5, 0xce, 0x25, 0xf7, 0x5e, 0xeb, 0xd2, 0xc6, 0x18,
+ 0x99, 0xd3, 0x45, 0xf2, 0x14, 0x6a, 0x2e, 0xe3, 0x91, 0x1d, 0xb2, 0xbe, 0xef, 0x0e, 0x2d, 0x50,
+ 0x4c, 0x3f, 0xbc, 0x98, 0x69, 0x9b, 0xf1, 0xe8, 0x40, 0xe9, 0x52, 0x70, 0xd3, 0xdf, 0xe4, 0x31,
+ 0x94, 0x7b, 0xe8, 0x78, 0xc8, 0x23, 0xab, 0x31, 0x6b, 0x33, 0xbb, 0x5a, 0x91, 0x26, 0x08, 0xb2,
+ 0x0d, 0xe5, 0x63, 0xbf, 0x2f, 0x24, 0xf8, 0x2d, 0xe5, 0x20, 0xef, 0xce, 0xe1, 0x20, 0x9f, 0x29,
+ 0x04, 0x4d, 0x90, 0x7b, 0xc5, 0x4a, 0xa9, 0xb1, 0xb4, 0x57, 0xac, 0xd4, 0x1a, 0x0d, 0xba, 0x7a,
+ 0x8a, 0x9d, 0x88, 0xb9, 0x2f, 0x51, 0xd8, 0x71, 0xd8, 0xe5, 0x8e, 0x87, 0xf4, 0xaa, 0x8c, 0xca,
+ 0x81, 0x67, 0x9b, 0x35, 0xe9, 0x4d, 0x8e, 0x03, 0x76, 0x82, 0x36, 0xc7, 0x28, 0x64, 0x41, 0x84,
+ 0xa3, 0x09, 0xa3, 0x38, 0x35, 0x71, 0x23, 0x45, 0x28, 0xdf, 0x1e, 0xc9, 0x53, 0xc0, 0x98, 0xbc,
+ 0xf9, 0x9b, 0x1c, 0xac, 0x4c, 0xec, 0x56, 0x86, 0x71, 0xd7, 0x11, 0xd8, 0x65, 0x7c, 0xa8, 0xa3,
+ 0x1b, 0x4d, 0xc7, 0xe4, 0xba, 0x09, 0x3d, 0x2a, 0xb4, 0xed, 0x5e, 0x31, 0xc1, 0x67, 0x03, 0x4a,
+ 0x27, 0xf2, 0x2e, 0x18, 0x8f, 0xbf, 0x39, 0x75, 0x5f, 0x0e, 0x55, 0x3e, 0xd9, 0xbd, 0x42, 0xb5,
+ 0xde, 0x16, 0xc8, 0x28, 0x71, 0x6c, 0x8b, 0x61, 0x88, 0xcd, 0x8f, 0xa0, 0x92, 0xf8, 0x70, 0x1a,
+ 0xd9, 0x72, 0x99, 0xc8, 0x76, 0x0b, 0xaa, 0xf2, 0x6f, 0x14, 0x3a, 0xae, 0x59, 0x97, 0x8e, 0x04,
+ 0xcd, 0xd7, 0x05, 0x28, 0x1b, 0x5b, 0x91, 0x7d, 0xe9, 0x81, 0xea, 0xfb, 0x14, 0x41, 0xad, 0xdd,
+ 0x9e, 0x69, 0x5f, 0xf3, 0xf7, 0x45, 0x88, 0xda, 0x9d, 0x23, 0x9a, 0x50, 0x90, 0xe7, 0x72, 0x8f,
+ 0xfa, 0x78, 0xd5, 0xb2, 0xdf, 0x8e, 0x2e, 0xe5, 0x58, 0xfb, 0x4b, 0x1e, 0x1a, 0x93, 0xd3, 0xe4,
+ 0x19, 0x14, 0x64, 0xa6, 0xd0, 0x41, 0xfb, 0xf1, 0xe2, 0xfc, 0xad, 0x43, 0x14, 0x4f, 0x03, 0x19,
+ 0x48, 0x24, 0x8f, 0xa4, 0x73, 0x3c, 0xcf, 0x44, 0xf0, 0x6f, 0x43, 0xb7, 0xe9, 0x79, 0x86, 0xce,
+ 0xf1, 0x3c, 0x99, 0xca, 0xf4, 0x7d, 0x52, 0x69, 0xbb, 0x4a, 0xcd, 0x68, 0xed, 0xa7, 0x50, 0x49,
+ 0xd6, 0x25, 0x0d, 0x28, 0xbc, 0xc4, 0xe4, 0xa2, 0xc8, 0x9f, 0xb2, 0x38, 0xd0, 0xb7, 0x41, 0x1b,
+ 0x4b, 0x0f, 0x3e, 0xcc, 0xff, 0x2c, 0x27, 0x71, 0xc9, 0x02, 0x8b, 0xe0, 0x9a, 0x7f, 0xcc, 0x41,
+ 0x25, 0xc9, 0xef, 0xe4, 0xf3, 0xf1, 0x4c, 0xf7, 0xde, 0xa5, 0x25, 0x81, 0x4a, 0x74, 0x9b, 0x42,
+ 0x70, 0xbf, 0x13, 0x0b, 0x8c, 0x74, 0x9e, 0x36, 0x09, 0xef, 0xd3, 0xf1, 0x84, 0x77, 0x49, 0xca,
+ 0xbc, 0x20, 0xd9, 0x35, 0xff, 0x20, 0xf7, 0x65, 0x2a, 0x08, 0xb2, 0x39, 0xbe, 0xaf, 0x1f, 0x5f,
+ 0x4c, 0xb7, 0xff, 0xc1, 0xc4, 0xb6, 0xbe, 0xbb, 0x1d, 0xfd, 0xa9, 0x0a, 0x8d, 0xc9, 0x04, 0x9f,
+ 0x7a, 0x55, 0x2d, 0xe3, 0x55, 0x8f, 0xa0, 0x10, 0x73, 0xdf, 0xf8, 0xc9, 0x25, 0x79, 0xe2, 0x50,
+ 0x70, 0x3f, 0xe8, 0x6a, 0x3a, 0x89, 0x90, 0x39, 0x26, 0x72, 0x7b, 0x38, 0x48, 0x9c, 0x62, 0x4e,
+ 0xac, 0x01, 0xa9, 0x14, 0x85, 0xa2, 0xc7, 0x3c, 0x13, 0x2b, 0xe6, 0x85, 0x6b, 0x10, 0xd9, 0x86,
+ 0xaa, 0x13, 0x8b, 0x1e, 0xe3, 0xbe, 0x18, 0xce, 0x4e, 0xee, 0x59, 0x86, 0x11, 0x8e, 0x7c, 0x39,
+ 0xca, 0x03, 0xba, 0xac, 0x7c, 0x34, 0x7f, 0xb5, 0x94, 0xb8, 0x8e, 0xf6, 0x92, 0x34, 0x3b, 0x10,
+ 0x53, 0xdc, 0xc9, 0x72, 0x61, 0x59, 0x17, 0x6d, 0xc4, 0x81, 0xe5, 0x88, 0xc5, 0xdc, 0x45, 0xbb,
+ 0xef, 0x74, 0xb0, 0x2f, 0xcb, 0x02, 0xb9, 0xd8, 0x47, 0x0b, 0x2c, 0x76, 0xa8, 0xf0, 0xfb, 0x0a,
+ 0xae, 0x57, 0xac, 0x47, 0x19, 0xd1, 0x58, 0xc5, 0x5d, 0x99, 0xa8, 0xb8, 0x7f, 0x09, 0xf5, 0x57,
+ 0x31, 0xf2, 0xa1, 0x1d, 0x3a, 0xdc, 0x19, 0x44, 0x56, 0x75, 0x66, 0x50, 0x98, 0x5c, 0xfd, 0x4b,
+ 0x09, 0x3f, 0x50, 0x68, 0xbd, 0x78, 0xed, 0xd5, 0x48, 0x42, 0x1e, 0xc0, 0x8a, 0xdf, 0x0d, 0x18,
+ 0x47, 0x3b, 0xe6, 0xbe, 0xed, 0x3a, 0x11, 0xaa, 0xc4, 0x5c, 0xa1, 0xcb, 0x5a, 0xfc, 0x15, 0xf7,
+ 0xb7, 0x9d, 0x08, 0x49, 0x17, 0x56, 0x4e, 0x7d, 0xd1, 0x63, 0x71, 0x9a, 0x75, 0xac, 0xba, 0xda,
+ 0xca, 0xc7, 0x0b, 0x6c, 0xe5, 0xe7, 0x9a, 0x61, 0xec, 0xf0, 0xaf, 0x9e, 0x8e, 0x09, 0xc9, 0xbb,
+ 0xd0, 0x30, 0xe7, 0x3d, 0xca, 0x17, 0xcb, 0xea, 0xca, 0xaf, 0x68, 0xf9, 0xf3, 0x44, 0xbc, 0xe6,
+ 0x40, 0x3d, 0x4b, 0x75, 0x4e, 0x30, 0x7a, 0x9c, 0x0d, 0x46, 0x73, 0x5f, 0xb2, 0x4c, 0xac, 0xfb,
+ 0x04, 0x56, 0xa7, 0xac, 0xb7, 0x50, 0xb0, 0x44, 0x68, 0x4c, 0x1a, 0xe0, 0x4d, 0xec, 0xb3, 0x07,
+ 0xd7, 0xce, 0x39, 0xdc, 0x37, 0xb0, 0x52, 0xf3, 0xcf, 0x79, 0xb8, 0x7e, 0xde, 0xd3, 0x81, 0xec,
+ 0x43, 0xcd, 0x1b, 0x0d, 0x67, 0xc7, 0xa4, 0x0c, 0x56, 0x07, 0xf4, 0x2c, 0x5c, 0x26, 0xad, 0x53,
+ 0xf4, 0xbb, 0x3d, 0xfd, 0xfe, 0x2a, 0x51, 0x33, 0xca, 0x56, 0x7f, 0xe5, 0x45, 0xab, 0xbf, 0xbd,
+ 0x62, 0xa5, 0xd0, 0x28, 0xff, 0x1f, 0xea, 0xb1, 0x33, 0x68, 0x7c, 0x3f, 0xc7, 0xd3, 0xfc, 0x57,
+ 0x1e, 0x56, 0xa7, 0x12, 0x13, 0xd9, 0x80, 0x6b, 0x19, 0xb0, 0x1d, 0xc5, 0x9d, 0x00, 0xd3, 0x67,
+ 0x3f, 0xc9, 0x4c, 0x1d, 0xea, 0x99, 0x34, 0x10, 0xe6, 0x33, 0x81, 0xf0, 0x5e, 0x1a, 0x08, 0x35,
+ 0x5e, 0x85, 0xfe, 0x6a, 0x12, 0xca, 0x34, 0x92, 0x74, 0x26, 0xa3, 0xa5, 0x7e, 0xbb, 0x3f, 0x59,
+ 0x20, 0x8d, 0x2e, 0x14, 0x2e, 0x4b, 0x13, 0xe1, 0xf2, 0xbc, 0xe8, 0xb1, 0x74, 0x7e, 0xf4, 0xf8,
+ 0x5f, 0x5d, 0xbb, 0xf9, 0x9f, 0x3c, 0x90, 0xe9, 0xe2, 0x84, 0xdc, 0x85, 0x6a, 0x14, 0xf8, 0x76,
+ 0xa6, 0xb3, 0xa2, 0xed, 0x57, 0x89, 0x02, 0x7f, 0x57, 0x75, 0x58, 0x2e, 0x30, 0x47, 0x7e, 0xa6,
+ 0x39, 0x0a, 0x19, 0x73, 0xb8, 0x93, 0x27, 0x5d, 0x9a, 0x15, 0x8e, 0xa7, 0xf7, 0xba, 0xd0, 0x51,
+ 0x2f, 0xcd, 0x71, 0xd4, 0xe5, 0x37, 0x73, 0xd4, 0x7b, 0xc5, 0x4a, 0xb1, 0x51, 0xa2, 0xe3, 0xf7,
+ 0xaf, 0xe9, 0x42, 0x3d, 0xdb, 0x7a, 0x90, 0x84, 0x49, 0x31, 0x54, 0xd5, 0x55, 0xce, 0xad, 0x6c,
+ 0x9d, 0x61, 0x1e, 0x1d, 0xa3, 0x02, 0xe2, 0x1e, 0x2c, 0x27, 0xcd, 0x0a, 0xdb, 0x65, 0x1e, 0x9a,
+ 0xe3, 0xad, 0x27, 0xc2, 0x6d, 0xe6, 0x61, 0xf3, 0x09, 0xd4, 0x32, 0xcd, 0x85, 0x45, 0xd7, 0x68,
+ 0x22, 0xd4, 0x32, 0x71, 0x94, 0xdc, 0x80, 0x12, 0x9e, 0x39, 0xae, 0xe9, 0x37, 0xc9, 0x97, 0x94,
+ 0x1a, 0x12, 0x0b, 0x96, 0x42, 0x8e, 0xc7, 0xfe, 0x59, 0xfa, 0x24, 0x33, 0x63, 0x89, 0xe0, 0xd8,
+ 0xc5, 0x33, 0xed, 0x6d, 0x12, 0xa1, 0x86, 0x5b, 0x75, 0x00, 0x55, 0x6d, 0xea, 0xd7, 0xd7, 0x3f,
+ 0x73, 0xa6, 0xb3, 0x84, 0xf2, 0x64, 0xef, 0x40, 0xc5, 0x11, 0x02, 0x07, 0xa1, 0xba, 0x80, 0xb9,
+ 0xf5, 0x92, 0xb9, 0x80, 0x89, 0x90, 0x6c, 0xc2, 0x4a, 0x88, 0xdc, 0x16, 0x7c, 0x68, 0x27, 0x1d,
+ 0x92, 0xfc, 0xac, 0x0e, 0xc9, 0x72, 0x88, 0xfc, 0x88, 0x0f, 0x8f, 0x4c, 0x9f, 0xe4, 0x6d, 0xf9,
+ 0xae, 0x92, 0x04, 0x2c, 0x30, 0x81, 0x40, 0xf5, 0x40, 0x86, 0x2f, 0x02, 0x42, 0xe1, 0xa6, 0x9e,
+ 0x92, 0x51, 0x53, 0xa0, 0xdd, 0x67, 0xae, 0xd3, 0xf7, 0x85, 0x8f, 0x91, 0xa9, 0xf5, 0xd6, 0xa6,
+ 0x56, 0xd9, 0x62, 0xac, 0xaf, 0xfa, 0x10, 0xf4, 0x2d, 0x05, 0xa5, 0x0a, 0xb9, 0x9f, 0x02, 0x9b,
+ 0xff, 0xce, 0x03, 0x8c, 0xfa, 0x01, 0xe4, 0x3e, 0xd4, 0x9d, 0x7e, 0x9f, 0x9d, 0xda, 0x8c, 0xfb,
+ 0x5d, 0x3f, 0x30, 0x6e, 0x96, 0xb7, 0x72, 0xb4, 0xa6, 0xe4, 0x2f, 0x94, 0x98, 0xec, 0xc1, 0x72,
+ 0x56, 0x2d, 0xa9, 0xdd, 0xe6, 0x4c, 0x7a, 0xf5, 0x0c, 0x55, 0x24, 0x6f, 0x8b, 0xe6, 0xd2, 0x35,
+ 0x6c, 0xe2, 0xae, 0x5a, 0xe9, 0x99, 0x96, 0x8d, 0x94, 0x92, 0x1c, 0x55, 0xc8, 0x28, 0x25, 0x15,
+ 0xce, 0x7d, 0xb8, 0x8a, 0x67, 0x21, 0x1b, 0xe5, 0x17, 0x15, 0x24, 0xab, 0x74, 0x59, 0x4b, 0x13,
+ 0xb5, 0x36, 0x94, 0x07, 0xce, 0x99, 0xed, 0x74, 0xd1, 0x2a, 0xcd, 0x32, 0xce, 0xd2, 0xc0, 0x39,
+ 0xdb, 0xec, 0xca, 0x57, 0xd5, 0xaa, 0x5e, 0xdf, 0xe5, 0xe8, 0x61, 0x20, 0x7c, 0xa7, 0x1f, 0x99,
+ 0xe6, 0xd7, 0x65, 0x87, 0xde, 0x50, 0xa0, 0xed, 0x11, 0xa6, 0xf9, 0xfb, 0x12, 0x90, 0xe9, 0x0e,
+ 0x15, 0xd9, 0x85, 0x92, 0x87, 0x7d, 0x67, 0x38, 0xc7, 0xcb, 0x7c, 0x0a, 0xdc, 0xda, 0x91, 0x48,
+ 0xaa, 0x09, 0x24, 0x93, 0xd3, 0x49, 0x52, 0xcc, 0xa2, 0x4c, 0x9b, 0x12, 0x49, 0x35, 0xc1, 0xda,
+ 0xef, 0xf2, 0x50, 0x52, 0xd4, 0xe4, 0x16, 0x94, 0x93, 0x96, 0x97, 0xbe, 0xf6, 0xf2, 0x42, 0x24,
+ 0x22, 0xb2, 0x09, 0xb5, 0x63, 0xff, 0x0c, 0x3d, 0x5b, 0x7f, 0xc1, 0xac, 0x0b, 0xaf, 0x7c, 0x66,
+ 0xf7, 0x0a, 0x05, 0x05, 0xda, 0x31, 0x9b, 0x5e, 0x95, 0x36, 0x0a, 0xf4, 0x29, 0x19, 0xa2, 0xc2,
+ 0x0c, 0xa2, 0xdd, 0x2b, 0xb4, 0x91, 0x41, 0x69, 0xa6, 0x4d, 0x80, 0x4c, 0x53, 0xad, 0x34, 0x6f,
+ 0x53, 0x2d, 0x03, 0xda, 0x5a, 0x85, 0x95, 0x9e, 0x10, 0xa1, 0xde, 0x85, 0x0a, 0x03, 0x6b, 0x7f,
+ 0xcf, 0x41, 0x49, 0x9d, 0x0d, 0x79, 0x00, 0x35, 0x35, 0x19, 0x09, 0x47, 0xc4, 0x91, 0x2e, 0x12,
+ 0xd2, 0x2f, 0x92, 0x33, 0x87, 0x6a, 0x82, 0xbc, 0x03, 0xb5, 0x2e, 0x0f, 0xdd, 0x44, 0x2f, 0x09,
+ 0x32, 0x20, 0x85, 0x23, 0x15, 0x09, 0x68, 0xdb, 0xa8, 0x7a, 0x92, 0xc5, 0x44, 0x45, 0x09, 0x9f,
+ 0xaa, 0x96, 0xe3, 0x77, 0xf0, 0x35, 0x75, 0x00, 0xc5, 0xaf, 0x3e, 0x64, 0xaf, 0x58, 0xc9, 0x35,
+ 0xf2, 0xa9, 0xe9, 0x9a, 0x6d, 0xa8, 0x67, 0xdb, 0xe9, 0xb2, 0xfa, 0x09, 0xe2, 0x41, 0x07, 0xb9,
+ 0xb2, 0xf3, 0x32, 0x35, 0xa3, 0xbd, 0x62, 0x25, 0xdf, 0x28, 0xe8, 0xa7, 0x71, 0xf3, 0x0e, 0x94,
+ 0x93, 0x46, 0x66, 0x9a, 0x57, 0xa4, 0x76, 0x2e, 0xe9, 0x5e, 0xfd, 0xe4, 0xaf, 0xaf, 0x6f, 0xe7,
+ 0xfe, 0xf6, 0xfa, 0x76, 0xee, 0x9b, 0xd7, 0xb7, 0x73, 0xbf, 0xb8, 0xa3, 0x77, 0xeb, 0x33, 0xf5,
+ 0xff, 0x99, 0xe9, 0x7f, 0xf7, 0x74, 0x96, 0x94, 0x61, 0x1f, 0xfe, 0x37, 0x00, 0x00, 0xff, 0xff,
+ 0x85, 0xcf, 0x09, 0x3c, 0x0b, 0x1a, 0x00, 0x00,
}
func (m *VirtualService) Marshal() (dAtA []byte, err error) {
@@ -3676,6 +3789,22 @@ func (m *HTTPRoute) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if len(m.Filters) > 0 {
+ for iNdEx := len(m.Filters) - 1; iNdEx >= 0; iNdEx-- {
+ {
+ size, err := m.Filters[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintVirtualService(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xaa
+ }
+ }
if m.Delegate != nil {
{
size, err := m.Delegate.MarshalToSizedBuffer(dAtA[:i])
@@ -3856,6 +3985,84 @@ func (m *HTTPRoute) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
+func (m *HTTPRouteFilter) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *HTTPRouteFilter) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *HTTPRouteFilter) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.XXX_unrecognized != nil {
+ i -= len(m.XXX_unrecognized)
+ copy(dAtA[i:], m.XXX_unrecognized)
+ }
+ if m.RefType != nil {
+ {
+ size := m.RefType.Size()
+ i -= size
+ if _, err := m.RefType.MarshalTo(dAtA[i:]); err != nil {
+ return 0, err
+ }
+ }
+ }
+ if len(m.Category) > 0 {
+ i -= len(m.Category)
+ copy(dAtA[i:], m.Category)
+ i = encodeVarintVirtualService(dAtA, i, uint64(len(m.Category)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *HTTPRouteFilter_Name) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *HTTPRouteFilter_Name) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ i -= len(m.Name)
+ copy(dAtA[i:], m.Name)
+ i = encodeVarintVirtualService(dAtA, i, uint64(len(m.Name)))
+ i--
+ dAtA[i] = 0x12
+ return len(dAtA) - i, nil
+}
+func (m *HTTPRouteFilter_Value) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *HTTPRouteFilter_Value) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Value != nil {
+ {
+ size, err := m.Value.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintVirtualService(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1a
+ }
+ return len(dAtA) - i, nil
+}
func (m *Delegate) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -5387,12 +5594,59 @@ func (m *HTTPRoute) Size() (n int) {
l = m.Delegate.Size()
n += 2 + l + sovVirtualService(uint64(l))
}
+ if len(m.Filters) > 0 {
+ for _, e := range m.Filters {
+ l = e.Size()
+ n += 2 + l + sovVirtualService(uint64(l))
+ }
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
+func (m *HTTPRouteFilter) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Category)
+ if l > 0 {
+ n += 1 + l + sovVirtualService(uint64(l))
+ }
+ if m.RefType != nil {
+ n += m.RefType.Size()
+ }
+ if m.XXX_unrecognized != nil {
+ n += len(m.XXX_unrecognized)
+ }
+ return n
+}
+
+func (m *HTTPRouteFilter_Name) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Name)
+ n += 1 + l + sovVirtualService(uint64(l))
+ return n
+}
+func (m *HTTPRouteFilter_Value) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Value != nil {
+ l = m.Value.Size()
+ n += 1 + l + sovVirtualService(uint64(l))
+ }
+ return n
+}
func (m *Delegate) Size() (n int) {
if m == nil {
return 0
@@ -6980,6 +7234,190 @@ func (m *HTTPRoute) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 21:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Filters", 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
+ }
+ m.Filters = append(m.Filters, &HTTPRouteFilter{})
+ if err := m.Filters[len(m.Filters)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipVirtualService(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthVirtualService
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *HTTPRouteFilter) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowVirtualService
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: HTTPRouteFilter: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: HTTPRouteFilter: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Category", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowVirtualService
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthVirtualService
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthVirtualService
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Category = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowVirtualService
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthVirtualService
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthVirtualService
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.RefType = &HTTPRouteFilter_Name{string(dAtA[iNdEx:postIndex])}
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Value", 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
+ }
+ v := &types.Struct{}
+ if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.RefType = &HTTPRouteFilter_Value{v}
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipVirtualService(dAtA[iNdEx:])
diff --git a/networking/v1beta1/virtual_service.proto b/networking/v1beta1/virtual_service.proto
index c6219d81e1a..0f982d5f426 100644
--- a/networking/v1beta1/virtual_service.proto
+++ b/networking/v1beta1/virtual_service.proto
@@ -17,6 +17,7 @@ syntax = "proto3";
import "google/api/field_behavior.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/wrappers.proto";
+import "google/protobuf/struct.proto";
// $schema: istio.networking.v1beta1.VirtualService
// $title: Virtual Service
@@ -640,8 +641,25 @@ message HTTPRoute {
// Header manipulation rules
Headers headers = 16;
+ // Optional list of filters to apply on the requests that match this rule.
+ repeated HTTPRouteFilter filters = 21;
+
// $hide_from_docs
- // Next available field number: 21
+ // Next available field number: 22
+}
+
+// HTTP route filter for custom extensions.
+message HTTPRouteFilter {
+ // Extension category determining the type of a filter extension.
+ string category = 1;
+
+ oneof ref_type {
+ // External reference to the extension configuration by name.
+ string name = 2;
+
+ // Explicit extension configuration.
+ google.protobuf.Struct value = 3;
+ }
}
// Describes the delegate VirtualService.
diff --git a/networking/v1beta1/virtual_service_deepcopy.gen.go b/networking/v1beta1/virtual_service_deepcopy.gen.go
index fb2e57deb28..4037cfa5951 100644
--- a/networking/v1beta1/virtual_service_deepcopy.gen.go
+++ b/networking/v1beta1/virtual_service_deepcopy.gen.go
@@ -227,6 +227,27 @@ func (in *HTTPRoute) DeepCopyInterface() interface{} {
return in.DeepCopy()
}
+// DeepCopyInto supports using HTTPRouteFilter within kubernetes types, where deepcopy-gen is used.
+func (in *HTTPRouteFilter) DeepCopyInto(out *HTTPRouteFilter) {
+ p := proto.Clone(in).(*HTTPRouteFilter)
+ *out = *p
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRouteFilter. Required by controller-gen.
+func (in *HTTPRouteFilter) DeepCopy() *HTTPRouteFilter {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTPRouteFilter)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRouteFilter. Required by controller-gen.
+func (in *HTTPRouteFilter) DeepCopyInterface() interface{} {
+ return in.DeepCopy()
+}
+
// DeepCopyInto supports using Delegate within kubernetes types, where deepcopy-gen is used.
func (in *Delegate) DeepCopyInto(out *Delegate) {
p := proto.Clone(in).(*Delegate)
diff --git a/networking/v1beta1/virtual_service_json.gen.go b/networking/v1beta1/virtual_service_json.gen.go
index 03e0fe10c6e..ee424ab772a 100644
--- a/networking/v1beta1/virtual_service_json.gen.go
+++ b/networking/v1beta1/virtual_service_json.gen.go
@@ -199,6 +199,17 @@ func (this *HTTPRoute) UnmarshalJSON(b []byte) error {
return VirtualServiceUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}
+// MarshalJSON is a custom marshaler for HTTPRouteFilter
+func (this *HTTPRouteFilter) MarshalJSON() ([]byte, error) {
+ str, err := VirtualServiceMarshaler.MarshalToString(this)
+ return []byte(str), err
+}
+
+// UnmarshalJSON is a custom unmarshaler for HTTPRouteFilter
+func (this *HTTPRouteFilter) UnmarshalJSON(b []byte) error {
+ return VirtualServiceUnmarshaler.Unmarshal(bytes.NewReader(b), this)
+}
+
// MarshalJSON is a custom marshaler for Delegate
func (this *Delegate) MarshalJSON() ([]byte, error) {
str, err := VirtualServiceMarshaler.MarshalToString(this)
diff --git a/python/istio_api/networking/v1alpha3/virtual_service_pb2.py b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py
index 812886f4f8e..171cefa5777 100644
--- a/python/istio_api/networking/v1alpha3/virtual_service_pb2.py
+++ b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py
@@ -16,6 +16,7 @@
from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2
from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2
+from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
DESCRIPTOR = _descriptor.FileDescriptor(
@@ -23,9 +24,9 @@
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\x1fgoogle/api/field_behavior.proto\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\"g\n\x0b\x44\x65stination\x12\x11\n\x04host\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x35\n\x04port\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\"\x94\x07\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\x35\n\x08\x64\x65legate\x18\x14 \x01(\x0b\x32#.istio.networking.v1alpha3.Delegate\x12\x37\n\x07rewrite\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.HTTPRewrite\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\x38\n\x0emirror_percent\x18\x12 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x02\x18\x01\x12=\n\x11mirror_percentage\x18\x13 \x01(\x0b\x32\".istio.networking.v1alpha3.Percent\x12:\n\x0b\x63ors_policy\x18\n \x01(\x0b\x32%.istio.networking.v1alpha3.CorsPolicy\x12\x33\n\x07headers\x18\x10 \x01(\x0b\x32\".istio.networking.v1alpha3.HeadersJ\x04\x08\x05\x10\x06J\x04\x08\x0b\x10\x10R\x11websocket_upgradeR\x0e\x61ppend_headersR\x17remove_response_headersR\x17\x61ppend_response_headersR\x16remove_request_headersR\x16\x61ppend_request_headers\"+\n\x08\x44\x65legate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tnamespace\x18\x02 \x01(\t\"\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\"\x89\x01\n\x08TLSRoute\x12\x41\n\x05match\x18\x01 \x03(\x0b\x32-.istio.networking.v1alpha3.TLSMatchAttributesB\x03\xe0\x41\x02\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\"\xea\x07\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\x12X\n\x0fwithout_headers\x18\x0c \x03(\x0b\x32?.istio.networking.v1alpha3.HTTPMatchRequest.WithoutHeadersEntry\x12\x18\n\x10source_namespace\x18\r \x01(\t\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\x1a]\n\x13WithoutHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch:\x02\x38\x01\"\x85\x02\n\x14HTTPRouteDestination\x12@\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.DestinationB\x03\xe0\x41\x02\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12\x33\n\x07headers\x18\x07 \x01(\x0b\x32\".istio.networking.v1alpha3.HeadersJ\x04\x08\x03\x10\x07R\x17remove_response_headersR\x17\x61ppend_response_headersR\x16remove_request_headersR\x16\x61ppend_request_headers\"d\n\x10RouteDestination\x12@\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.DestinationB\x03\xe0\x41\x02\x12\x0e\n\x06weight\x18\x02 \x01(\x05\"\x8d\x02\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\x12\x18\n\x10source_namespace\x18\x06 \x01(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa5\x02\n\x12TLSMatchAttributes\x12\x16\n\tsni_hosts\x18\x01 \x03(\tB\x03\xe0\x41\x02\x12\x1b\n\x13\x64\x65stination_subnets\x18\x02 \x03(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12V\n\rsource_labels\x18\x05 \x03(\x0b\x32?.istio.networking.v1alpha3.TLSMatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x06 \x03(\t\x12\x18\n\x10source_namespace\x18\x07 \x01(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01J\x04\x08\x04\x10\x05R\rsource_subnet\"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\"\xa5\x01\n\tHTTPRetry\x12\x15\n\x08\x61ttempts\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x32\n\x0fper_try_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08retry_on\x18\x03 \x01(\t\x12;\n\x17retry_remote_localities\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x8e\x02\n\nCorsPolicy\x12\x18\n\x0c\x61llow_origin\x18\x01 \x03(\tB\x02\x18\x01\x12=\n\rallow_origins\x18\x07 \x03(\x0b\x32&.istio.networking.v1alpha3.StringMatch\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\"\x9e\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\xd6\x01\n\x05\x44\x65lay\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x35\n\x0b\x66ixed_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x02H\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\xa6\x01\n\x05\x41\x62ort\x12\x1a\n\x0bhttp_status\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02H\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_typeJ\x04\x08\x01\x10\x02R\x07percent\"*\n\x0cPortSelector\x12\x0e\n\x06number\x18\x01 \x01(\rJ\x04\x08\x02\x10\x03R\x04name\"\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\x1fgoogle/api/field_behavior.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/protobuf/struct.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\"g\n\x0b\x44\x65stination\x12\x11\n\x04host\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x35\n\x04port\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\"\xd1\x07\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\x35\n\x08\x64\x65legate\x18\x14 \x01(\x0b\x32#.istio.networking.v1alpha3.Delegate\x12\x37\n\x07rewrite\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.HTTPRewrite\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\x38\n\x0emirror_percent\x18\x12 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x02\x18\x01\x12=\n\x11mirror_percentage\x18\x13 \x01(\x0b\x32\".istio.networking.v1alpha3.Percent\x12:\n\x0b\x63ors_policy\x18\n \x01(\x0b\x32%.istio.networking.v1alpha3.CorsPolicy\x12\x33\n\x07headers\x18\x10 \x01(\x0b\x32\".istio.networking.v1alpha3.Headers\x12;\n\x07\x66ilters\x18\x15 \x03(\x0b\x32*.istio.networking.v1alpha3.HTTPRouteFilterJ\x04\x08\x05\x10\x06J\x04\x08\x0b\x10\x10R\x11websocket_upgradeR\x0e\x61ppend_headersR\x17remove_response_headersR\x17\x61ppend_response_headersR\x16remove_request_headersR\x16\x61ppend_request_headers\"i\n\x0fHTTPRouteFilter\x12\x10\n\x08\x63\x61tegory\x18\x01 \x01(\t\x12\x0e\n\x04name\x18\x02 \x01(\tH\x00\x12(\n\x05value\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x42\n\n\x08ref_type\"+\n\x08\x44\x65legate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tnamespace\x18\x02 \x01(\t\"\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\"\x89\x01\n\x08TLSRoute\x12\x41\n\x05match\x18\x01 \x03(\x0b\x32-.istio.networking.v1alpha3.TLSMatchAttributesB\x03\xe0\x41\x02\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\"\xea\x07\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\x12X\n\x0fwithout_headers\x18\x0c \x03(\x0b\x32?.istio.networking.v1alpha3.HTTPMatchRequest.WithoutHeadersEntry\x12\x18\n\x10source_namespace\x18\r \x01(\t\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\x1a]\n\x13WithoutHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch:\x02\x38\x01\"\x85\x02\n\x14HTTPRouteDestination\x12@\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.DestinationB\x03\xe0\x41\x02\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12\x33\n\x07headers\x18\x07 \x01(\x0b\x32\".istio.networking.v1alpha3.HeadersJ\x04\x08\x03\x10\x07R\x17remove_response_headersR\x17\x61ppend_response_headersR\x16remove_request_headersR\x16\x61ppend_request_headers\"d\n\x10RouteDestination\x12@\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.DestinationB\x03\xe0\x41\x02\x12\x0e\n\x06weight\x18\x02 \x01(\x05\"\x8d\x02\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\x12\x18\n\x10source_namespace\x18\x06 \x01(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa5\x02\n\x12TLSMatchAttributes\x12\x16\n\tsni_hosts\x18\x01 \x03(\tB\x03\xe0\x41\x02\x12\x1b\n\x13\x64\x65stination_subnets\x18\x02 \x03(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12V\n\rsource_labels\x18\x05 \x03(\x0b\x32?.istio.networking.v1alpha3.TLSMatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x06 \x03(\t\x12\x18\n\x10source_namespace\x18\x07 \x01(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01J\x04\x08\x04\x10\x05R\rsource_subnet\"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\"\xa5\x01\n\tHTTPRetry\x12\x15\n\x08\x61ttempts\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x32\n\x0fper_try_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08retry_on\x18\x03 \x01(\t\x12;\n\x17retry_remote_localities\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x8e\x02\n\nCorsPolicy\x12\x18\n\x0c\x61llow_origin\x18\x01 \x03(\tB\x02\x18\x01\x12=\n\rallow_origins\x18\x07 \x03(\x0b\x32&.istio.networking.v1alpha3.StringMatch\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\"\x9e\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\xd6\x01\n\x05\x44\x65lay\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x35\n\x0b\x66ixed_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x02H\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\xa6\x01\n\x05\x41\x62ort\x12\x1a\n\x0bhttp_status\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02H\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_typeJ\x04\x08\x01\x10\x02R\x07percent\"*\n\x0cPortSelector\x12\x0e\n\x06number\x18\x01 \x01(\rJ\x04\x08\x02\x10\x03R\x04name\"\x18\n\x07Percent\x12\r\n\x05value\x18\x01 \x01(\x01\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3')
,
- dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,])
+ dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_protobuf_dot_struct__pb2.DESCRIPTOR,])
@@ -91,8 +92,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=170,
- serialized_end=390,
+ serialized_start=200,
+ serialized_end=420,
)
@@ -136,8 +137,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=392,
- serialized_end=495,
+ serialized_start=422,
+ serialized_end=525,
)
@@ -246,6 +247,13 @@
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='filters', full_name='istio.networking.v1alpha3.HTTPRoute.filters', index=14,
+ number=21, 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=None, file=DESCRIPTOR),
],
extensions=[
],
@@ -258,8 +266,56 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=498,
- serialized_end=1414,
+ serialized_start=528,
+ serialized_end=1505,
+)
+
+
+_HTTPROUTEFILTER = _descriptor.Descriptor(
+ name='HTTPRouteFilter',
+ full_name='istio.networking.v1alpha3.HTTPRouteFilter',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='category', full_name='istio.networking.v1alpha3.HTTPRouteFilter.category', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='name', full_name='istio.networking.v1alpha3.HTTPRouteFilter.name', index=1,
+ number=2, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='value', full_name='istio.networking.v1alpha3.HTTPRouteFilter.value', index=2,
+ number=3, 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),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ _descriptor.OneofDescriptor(
+ name='ref_type', full_name='istio.networking.v1alpha3.HTTPRouteFilter.ref_type',
+ index=0, containing_type=None, fields=[]),
+ ],
+ serialized_start=1507,
+ serialized_end=1612,
)
@@ -296,8 +352,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=1416,
- serialized_end=1459,
+ serialized_start=1614,
+ serialized_end=1657,
)
@@ -334,8 +390,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=1801,
- serialized_end=1843,
+ serialized_start=1999,
+ serialized_end=2041,
)
_HEADERS_HEADEROPERATIONS_ADDENTRY = _descriptor.Descriptor(
@@ -371,8 +427,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=1845,
- serialized_end=1887,
+ serialized_start=2043,
+ serialized_end=2085,
)
_HEADERS_HEADEROPERATIONS = _descriptor.Descriptor(
@@ -415,8 +471,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=1615,
- serialized_end=1887,
+ serialized_start=1813,
+ serialized_end=2085,
)
_HEADERS = _descriptor.Descriptor(
@@ -452,8 +508,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=1462,
- serialized_end=1887,
+ serialized_start=1660,
+ serialized_end=2085,
)
@@ -490,8 +546,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=1890,
- serialized_end=2027,
+ serialized_start=2088,
+ serialized_end=2225,
)
@@ -528,8 +584,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=2030,
- serialized_end=2161,
+ serialized_start=2228,
+ serialized_end=2359,
)
@@ -566,8 +622,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=2840,
- serialized_end=2926,
+ serialized_start=3038,
+ serialized_end=3124,
)
_HTTPMATCHREQUEST_SOURCELABELSENTRY = _descriptor.Descriptor(
@@ -603,8 +659,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=2928,
- serialized_end=2979,
+ serialized_start=3126,
+ serialized_end=3177,
)
_HTTPMATCHREQUEST_QUERYPARAMSENTRY = _descriptor.Descriptor(
@@ -640,8 +696,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=2981,
- serialized_end=3071,
+ serialized_start=3179,
+ serialized_end=3269,
)
_HTTPMATCHREQUEST_WITHOUTHEADERSENTRY = _descriptor.Descriptor(
@@ -677,8 +733,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=3073,
- serialized_end=3166,
+ serialized_start=3271,
+ serialized_end=3364,
)
_HTTPMATCHREQUEST = _descriptor.Descriptor(
@@ -791,8 +847,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=2164,
- serialized_end=3166,
+ serialized_start=2362,
+ serialized_end=3364,
)
@@ -836,8 +892,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=3169,
- serialized_end=3430,
+ serialized_start=3367,
+ serialized_end=3628,
)
@@ -874,8 +930,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=3432,
- serialized_end=3532,
+ serialized_start=3630,
+ serialized_end=3730,
)
@@ -912,8 +968,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=2928,
- serialized_end=2979,
+ serialized_start=3126,
+ serialized_end=3177,
)
_L4MATCHATTRIBUTES = _descriptor.Descriptor(
@@ -977,8 +1033,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=3535,
- serialized_end=3804,
+ serialized_start=3733,
+ serialized_end=4002,
)
@@ -1015,8 +1071,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=2928,
- serialized_end=2979,
+ serialized_start=3126,
+ serialized_end=3177,
)
_TLSMATCHATTRIBUTES = _descriptor.Descriptor(
@@ -1080,8 +1136,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=3807,
- serialized_end=4100,
+ serialized_start=4005,
+ serialized_end=4298,
)
@@ -1125,8 +1181,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=4102,
- serialized_end=4171,
+ serialized_start=4300,
+ serialized_end=4369,
)
@@ -1163,8 +1219,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=4173,
- serialized_end=4218,
+ serialized_start=4371,
+ serialized_end=4416,
)
@@ -1211,8 +1267,8 @@
name='match_type', full_name='istio.networking.v1alpha3.StringMatch.match_type',
index=0, containing_type=None, fields=[]),
],
- serialized_start=4220,
- serialized_end=4299,
+ serialized_start=4418,
+ serialized_end=4497,
)
@@ -1263,8 +1319,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=4302,
- serialized_end=4467,
+ serialized_start=4500,
+ serialized_end=4665,
)
@@ -1336,8 +1392,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=4470,
- serialized_end=4740,
+ serialized_start=4668,
+ serialized_end=4938,
)
@@ -1391,8 +1447,8 @@
name='http_delay_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Delay.http_delay_type',
index=0, containing_type=None, fields=[]),
],
- serialized_start=4902,
- serialized_end=5116,
+ serialized_start=5100,
+ serialized_end=5314,
)
_HTTPFAULTINJECTION_ABORT = _descriptor.Descriptor(
@@ -1445,8 +1501,8 @@
name='error_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Abort.error_type',
index=0, containing_type=None, fields=[]),
],
- serialized_start=5119,
- serialized_end=5285,
+ serialized_start=5317,
+ serialized_end=5483,
)
_HTTPFAULTINJECTION = _descriptor.Descriptor(
@@ -1482,8 +1538,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=4743,
- serialized_end=5285,
+ serialized_start=4941,
+ serialized_end=5483,
)
@@ -1513,8 +1569,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=5287,
- serialized_end=5329,
+ serialized_start=5485,
+ serialized_end=5527,
)
@@ -1544,8 +1600,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=5331,
- serialized_end=5355,
+ serialized_start=5529,
+ serialized_end=5553,
)
_VIRTUALSERVICE.fields_by_name['http'].message_type = _HTTPROUTE
@@ -1565,6 +1621,14 @@
_HTTPROUTE.fields_by_name['mirror_percentage'].message_type = _PERCENT
_HTTPROUTE.fields_by_name['cors_policy'].message_type = _CORSPOLICY
_HTTPROUTE.fields_by_name['headers'].message_type = _HEADERS
+_HTTPROUTE.fields_by_name['filters'].message_type = _HTTPROUTEFILTER
+_HTTPROUTEFILTER.fields_by_name['value'].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT
+_HTTPROUTEFILTER.oneofs_by_name['ref_type'].fields.append(
+ _HTTPROUTEFILTER.fields_by_name['name'])
+_HTTPROUTEFILTER.fields_by_name['name'].containing_oneof = _HTTPROUTEFILTER.oneofs_by_name['ref_type']
+_HTTPROUTEFILTER.oneofs_by_name['ref_type'].fields.append(
+ _HTTPROUTEFILTER.fields_by_name['value'])
+_HTTPROUTEFILTER.fields_by_name['value'].containing_oneof = _HTTPROUTEFILTER.oneofs_by_name['ref_type']
_HEADERS_HEADEROPERATIONS_SETENTRY.containing_type = _HEADERS_HEADEROPERATIONS
_HEADERS_HEADEROPERATIONS_ADDENTRY.containing_type = _HEADERS_HEADEROPERATIONS
_HEADERS_HEADEROPERATIONS.fields_by_name['set'].message_type = _HEADERS_HEADEROPERATIONS_SETENTRY
@@ -1638,6 +1702,7 @@
DESCRIPTOR.message_types_by_name['VirtualService'] = _VIRTUALSERVICE
DESCRIPTOR.message_types_by_name['Destination'] = _DESTINATION
DESCRIPTOR.message_types_by_name['HTTPRoute'] = _HTTPROUTE
+DESCRIPTOR.message_types_by_name['HTTPRouteFilter'] = _HTTPROUTEFILTER
DESCRIPTOR.message_types_by_name['Delegate'] = _DELEGATE
DESCRIPTOR.message_types_by_name['Headers'] = _HEADERS
DESCRIPTOR.message_types_by_name['TLSRoute'] = _TLSROUTE
@@ -1678,6 +1743,13 @@
})
_sym_db.RegisterMessage(HTTPRoute)
+HTTPRouteFilter = _reflection.GeneratedProtocolMessageType('HTTPRouteFilter', (_message.Message,), {
+ 'DESCRIPTOR' : _HTTPROUTEFILTER,
+ '__module__' : 'networking.v1alpha3.virtual_service_pb2'
+ # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.HTTPRouteFilter)
+ })
+_sym_db.RegisterMessage(HTTPRouteFilter)
+
Delegate = _reflection.GeneratedProtocolMessageType('Delegate', (_message.Message,), {
'DESCRIPTOR' : _DELEGATE,
'__module__' : 'networking.v1alpha3.virtual_service_pb2'
diff --git a/python/istio_api/networking/v1beta1/virtual_service_pb2.py b/python/istio_api/networking/v1beta1/virtual_service_pb2.py
index 7eb00c7d347..ad109de2788 100644
--- a/python/istio_api/networking/v1beta1/virtual_service_pb2.py
+++ b/python/istio_api/networking/v1beta1/virtual_service_pb2.py
@@ -16,6 +16,7 @@
from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2
from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2
+from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
DESCRIPTOR = _descriptor.FileDescriptor(
@@ -23,9 +24,9 @@
package='istio.networking.v1beta1',
syntax='proto3',
serialized_options=_b('Z\037istio.io/api/networking/v1beta1'),
- serialized_pb=_b('\n(networking/v1beta1/virtual_service.proto\x12\x18istio.networking.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xd9\x01\n\x0eVirtualService\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x10\n\x08gateways\x18\x02 \x03(\t\x12\x31\n\x04http\x18\x03 \x03(\x0b\x32#.istio.networking.v1beta1.HTTPRoute\x12/\n\x03tls\x18\x05 \x03(\x0b\x32\".istio.networking.v1beta1.TLSRoute\x12/\n\x03tcp\x18\x04 \x03(\x0b\x32\".istio.networking.v1beta1.TCPRoute\x12\x11\n\texport_to\x18\x06 \x03(\t\"f\n\x0b\x44\x65stination\x12\x11\n\x04host\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x34\n\x04port\x18\x03 \x01(\x0b\x32&.istio.networking.v1beta1.PortSelector\"\x89\x07\n\tHTTPRoute\x12\x0c\n\x04name\x18\x11 \x01(\t\x12\x39\n\x05match\x18\x01 \x03(\x0b\x32*.istio.networking.v1beta1.HTTPMatchRequest\x12=\n\x05route\x18\x02 \x03(\x0b\x32..istio.networking.v1beta1.HTTPRouteDestination\x12\x38\n\x08redirect\x18\x03 \x01(\x0b\x32&.istio.networking.v1beta1.HTTPRedirect\x12\x34\n\x08\x64\x65legate\x18\x14 \x01(\x0b\x32\".istio.networking.v1beta1.Delegate\x12\x36\n\x07rewrite\x18\x04 \x01(\x0b\x32%.istio.networking.v1beta1.HTTPRewrite\x12*\n\x07timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x07retries\x18\x07 \x01(\x0b\x32#.istio.networking.v1beta1.HTTPRetry\x12;\n\x05\x66\x61ult\x18\x08 \x01(\x0b\x32,.istio.networking.v1beta1.HTTPFaultInjection\x12\x35\n\x06mirror\x18\t \x01(\x0b\x32%.istio.networking.v1beta1.Destination\x12\x38\n\x0emirror_percent\x18\x12 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x02\x18\x01\x12<\n\x11mirror_percentage\x18\x13 \x01(\x0b\x32!.istio.networking.v1beta1.Percent\x12\x39\n\x0b\x63ors_policy\x18\n \x01(\x0b\x32$.istio.networking.v1beta1.CorsPolicy\x12\x32\n\x07headers\x18\x10 \x01(\x0b\x32!.istio.networking.v1beta1.HeadersJ\x04\x08\x05\x10\x06J\x04\x08\x0b\x10\x10R\x11websocket_upgradeR\x0e\x61ppend_headersR\x17remove_response_headersR\x17\x61ppend_response_headersR\x16remove_request_headersR\x16\x61ppend_request_headers\"+\n\x08\x44\x65legate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tnamespace\x18\x02 \x01(\t\"\xa5\x03\n\x07Headers\x12\x43\n\x07request\x18\x01 \x01(\x0b\x32\x32.istio.networking.v1beta1.Headers.HeaderOperations\x12\x44\n\x08response\x18\x02 \x01(\x0b\x32\x32.istio.networking.v1beta1.Headers.HeaderOperations\x1a\x8e\x02\n\x10HeaderOperations\x12H\n\x03set\x18\x01 \x03(\x0b\x32;.istio.networking.v1beta1.Headers.HeaderOperations.SetEntry\x12H\n\x03\x61\x64\x64\x18\x02 \x03(\x0b\x32;.istio.networking.v1beta1.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\"\x87\x01\n\x08TLSRoute\x12@\n\x05match\x18\x01 \x03(\x0b\x32,.istio.networking.v1beta1.TLSMatchAttributesB\x03\xe0\x41\x02\x12\x39\n\x05route\x18\x02 \x03(\x0b\x32*.istio.networking.v1beta1.RouteDestination\"\x81\x01\n\x08TCPRoute\x12:\n\x05match\x18\x01 \x03(\x0b\x32+.istio.networking.v1beta1.L4MatchAttributes\x12\x39\n\x05route\x18\x02 \x03(\x0b\x32*.istio.networking.v1beta1.RouteDestination\"\xdf\x07\n\x10HTTPMatchRequest\x12\x0c\n\x04name\x18\x0b \x01(\t\x12\x32\n\x03uri\x18\x01 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch\x12\x35\n\x06scheme\x18\x02 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch\x12\x35\n\x06method\x18\x03 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch\x12\x38\n\tauthority\x18\x04 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch\x12H\n\x07headers\x18\x05 \x03(\x0b\x32\x37.istio.networking.v1beta1.HTTPMatchRequest.HeadersEntry\x12\x0c\n\x04port\x18\x06 \x01(\r\x12S\n\rsource_labels\x18\x07 \x03(\x0b\x32<.istio.networking.v1beta1.HTTPMatchRequest.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x08 \x03(\t\x12Q\n\x0cquery_params\x18\t \x03(\x0b\x32;.istio.networking.v1beta1.HTTPMatchRequest.QueryParamsEntry\x12\x17\n\x0fignore_uri_case\x18\n \x01(\x08\x12W\n\x0fwithout_headers\x18\x0c \x03(\x0b\x32>.istio.networking.v1beta1.HTTPMatchRequest.WithoutHeadersEntry\x12\x18\n\x10source_namespace\x18\r \x01(\t\x1aU\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.istio.networking.v1beta1.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\x1aY\n\x10QueryParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch:\x02\x38\x01\x1a\\\n\x13WithoutHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch:\x02\x38\x01\"\x83\x02\n\x14HTTPRouteDestination\x12?\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32%.istio.networking.v1beta1.DestinationB\x03\xe0\x41\x02\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12\x32\n\x07headers\x18\x07 \x01(\x0b\x32!.istio.networking.v1beta1.HeadersJ\x04\x08\x03\x10\x07R\x17remove_response_headersR\x17\x61ppend_response_headersR\x16remove_request_headersR\x16\x61ppend_request_headers\"c\n\x10RouteDestination\x12?\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32%.istio.networking.v1beta1.DestinationB\x03\xe0\x41\x02\x12\x0e\n\x06weight\x18\x02 \x01(\x05\"\x8c\x02\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\x12T\n\rsource_labels\x18\x04 \x03(\x0b\x32=.istio.networking.v1beta1.L4MatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x05 \x03(\t\x12\x18\n\x10source_namespace\x18\x06 \x01(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa4\x02\n\x12TLSMatchAttributes\x12\x16\n\tsni_hosts\x18\x01 \x03(\tB\x03\xe0\x41\x02\x12\x1b\n\x13\x64\x65stination_subnets\x18\x02 \x03(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12U\n\rsource_labels\x18\x05 \x03(\x0b\x32>.istio.networking.v1beta1.TLSMatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x06 \x03(\t\x12\x18\n\x10source_namespace\x18\x07 \x01(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01J\x04\x08\x04\x10\x05R\rsource_subnet\"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\"\xa5\x01\n\tHTTPRetry\x12\x15\n\x08\x61ttempts\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x32\n\x0fper_try_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08retry_on\x18\x03 \x01(\t\x12;\n\x17retry_remote_localities\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x8d\x02\n\nCorsPolicy\x12\x18\n\x0c\x61llow_origin\x18\x01 \x03(\tB\x02\x18\x01\x12<\n\rallow_origins\x18\x07 \x03(\x0b\x32%.istio.networking.v1beta1.StringMatch\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\x41\n\x05\x64\x65lay\x18\x01 \x01(\x0b\x32\x32.istio.networking.v1beta1.HTTPFaultInjection.Delay\x12\x41\n\x05\x61\x62ort\x18\x02 \x01(\x0b\x32\x32.istio.networking.v1beta1.HTTPFaultInjection.Abort\x1a\xd5\x01\n\x05\x44\x65lay\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x35\n\x0b\x66ixed_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x02H\x00\x12\x36\n\x11\x65xponential_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x35\n\npercentage\x18\x05 \x01(\x0b\x32!.istio.networking.v1beta1.PercentB\x11\n\x0fhttp_delay_type\x1a\xa5\x01\n\x05\x41\x62ort\x12\x1a\n\x0bhttp_status\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02H\x00\x12\x15\n\x0bgrpc_status\x18\x03 \x01(\tH\x00\x12\x15\n\x0bhttp2_error\x18\x04 \x01(\tH\x00\x12\x35\n\npercentage\x18\x05 \x01(\x0b\x32!.istio.networking.v1beta1.PercentB\x0c\n\nerror_typeJ\x04\x08\x01\x10\x02R\x07percent\"*\n\x0cPortSelector\x12\x0e\n\x06number\x18\x01 \x01(\rJ\x04\x08\x02\x10\x03R\x04name\"\x18\n\x07Percent\x12\r\n\x05value\x18\x01 \x01(\x01\x42!Z\x1fistio.io/api/networking/v1beta1b\x06proto3')
+ serialized_pb=_b('\n(networking/v1beta1/virtual_service.proto\x12\x18istio.networking.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xd9\x01\n\x0eVirtualService\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x10\n\x08gateways\x18\x02 \x03(\t\x12\x31\n\x04http\x18\x03 \x03(\x0b\x32#.istio.networking.v1beta1.HTTPRoute\x12/\n\x03tls\x18\x05 \x03(\x0b\x32\".istio.networking.v1beta1.TLSRoute\x12/\n\x03tcp\x18\x04 \x03(\x0b\x32\".istio.networking.v1beta1.TCPRoute\x12\x11\n\texport_to\x18\x06 \x03(\t\"f\n\x0b\x44\x65stination\x12\x11\n\x04host\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x34\n\x04port\x18\x03 \x01(\x0b\x32&.istio.networking.v1beta1.PortSelector\"\xc5\x07\n\tHTTPRoute\x12\x0c\n\x04name\x18\x11 \x01(\t\x12\x39\n\x05match\x18\x01 \x03(\x0b\x32*.istio.networking.v1beta1.HTTPMatchRequest\x12=\n\x05route\x18\x02 \x03(\x0b\x32..istio.networking.v1beta1.HTTPRouteDestination\x12\x38\n\x08redirect\x18\x03 \x01(\x0b\x32&.istio.networking.v1beta1.HTTPRedirect\x12\x34\n\x08\x64\x65legate\x18\x14 \x01(\x0b\x32\".istio.networking.v1beta1.Delegate\x12\x36\n\x07rewrite\x18\x04 \x01(\x0b\x32%.istio.networking.v1beta1.HTTPRewrite\x12*\n\x07timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x07retries\x18\x07 \x01(\x0b\x32#.istio.networking.v1beta1.HTTPRetry\x12;\n\x05\x66\x61ult\x18\x08 \x01(\x0b\x32,.istio.networking.v1beta1.HTTPFaultInjection\x12\x35\n\x06mirror\x18\t \x01(\x0b\x32%.istio.networking.v1beta1.Destination\x12\x38\n\x0emirror_percent\x18\x12 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x02\x18\x01\x12<\n\x11mirror_percentage\x18\x13 \x01(\x0b\x32!.istio.networking.v1beta1.Percent\x12\x39\n\x0b\x63ors_policy\x18\n \x01(\x0b\x32$.istio.networking.v1beta1.CorsPolicy\x12\x32\n\x07headers\x18\x10 \x01(\x0b\x32!.istio.networking.v1beta1.Headers\x12:\n\x07\x66ilters\x18\x15 \x03(\x0b\x32).istio.networking.v1beta1.HTTPRouteFilterJ\x04\x08\x05\x10\x06J\x04\x08\x0b\x10\x10R\x11websocket_upgradeR\x0e\x61ppend_headersR\x17remove_response_headersR\x17\x61ppend_response_headersR\x16remove_request_headersR\x16\x61ppend_request_headers\"i\n\x0fHTTPRouteFilter\x12\x10\n\x08\x63\x61tegory\x18\x01 \x01(\t\x12\x0e\n\x04name\x18\x02 \x01(\tH\x00\x12(\n\x05value\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x42\n\n\x08ref_type\"+\n\x08\x44\x65legate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tnamespace\x18\x02 \x01(\t\"\xa5\x03\n\x07Headers\x12\x43\n\x07request\x18\x01 \x01(\x0b\x32\x32.istio.networking.v1beta1.Headers.HeaderOperations\x12\x44\n\x08response\x18\x02 \x01(\x0b\x32\x32.istio.networking.v1beta1.Headers.HeaderOperations\x1a\x8e\x02\n\x10HeaderOperations\x12H\n\x03set\x18\x01 \x03(\x0b\x32;.istio.networking.v1beta1.Headers.HeaderOperations.SetEntry\x12H\n\x03\x61\x64\x64\x18\x02 \x03(\x0b\x32;.istio.networking.v1beta1.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\"\x87\x01\n\x08TLSRoute\x12@\n\x05match\x18\x01 \x03(\x0b\x32,.istio.networking.v1beta1.TLSMatchAttributesB\x03\xe0\x41\x02\x12\x39\n\x05route\x18\x02 \x03(\x0b\x32*.istio.networking.v1beta1.RouteDestination\"\x81\x01\n\x08TCPRoute\x12:\n\x05match\x18\x01 \x03(\x0b\x32+.istio.networking.v1beta1.L4MatchAttributes\x12\x39\n\x05route\x18\x02 \x03(\x0b\x32*.istio.networking.v1beta1.RouteDestination\"\xdf\x07\n\x10HTTPMatchRequest\x12\x0c\n\x04name\x18\x0b \x01(\t\x12\x32\n\x03uri\x18\x01 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch\x12\x35\n\x06scheme\x18\x02 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch\x12\x35\n\x06method\x18\x03 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch\x12\x38\n\tauthority\x18\x04 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch\x12H\n\x07headers\x18\x05 \x03(\x0b\x32\x37.istio.networking.v1beta1.HTTPMatchRequest.HeadersEntry\x12\x0c\n\x04port\x18\x06 \x01(\r\x12S\n\rsource_labels\x18\x07 \x03(\x0b\x32<.istio.networking.v1beta1.HTTPMatchRequest.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x08 \x03(\t\x12Q\n\x0cquery_params\x18\t \x03(\x0b\x32;.istio.networking.v1beta1.HTTPMatchRequest.QueryParamsEntry\x12\x17\n\x0fignore_uri_case\x18\n \x01(\x08\x12W\n\x0fwithout_headers\x18\x0c \x03(\x0b\x32>.istio.networking.v1beta1.HTTPMatchRequest.WithoutHeadersEntry\x12\x18\n\x10source_namespace\x18\r \x01(\t\x1aU\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.istio.networking.v1beta1.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\x1aY\n\x10QueryParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch:\x02\x38\x01\x1a\\\n\x13WithoutHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch:\x02\x38\x01\"\x83\x02\n\x14HTTPRouteDestination\x12?\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32%.istio.networking.v1beta1.DestinationB\x03\xe0\x41\x02\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12\x32\n\x07headers\x18\x07 \x01(\x0b\x32!.istio.networking.v1beta1.HeadersJ\x04\x08\x03\x10\x07R\x17remove_response_headersR\x17\x61ppend_response_headersR\x16remove_request_headersR\x16\x61ppend_request_headers\"c\n\x10RouteDestination\x12?\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32%.istio.networking.v1beta1.DestinationB\x03\xe0\x41\x02\x12\x0e\n\x06weight\x18\x02 \x01(\x05\"\x8c\x02\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\x12T\n\rsource_labels\x18\x04 \x03(\x0b\x32=.istio.networking.v1beta1.L4MatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x05 \x03(\t\x12\x18\n\x10source_namespace\x18\x06 \x01(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa4\x02\n\x12TLSMatchAttributes\x12\x16\n\tsni_hosts\x18\x01 \x03(\tB\x03\xe0\x41\x02\x12\x1b\n\x13\x64\x65stination_subnets\x18\x02 \x03(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12U\n\rsource_labels\x18\x05 \x03(\x0b\x32>.istio.networking.v1beta1.TLSMatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x06 \x03(\t\x12\x18\n\x10source_namespace\x18\x07 \x01(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01J\x04\x08\x04\x10\x05R\rsource_subnet\"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\"\xa5\x01\n\tHTTPRetry\x12\x15\n\x08\x61ttempts\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x32\n\x0fper_try_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08retry_on\x18\x03 \x01(\t\x12;\n\x17retry_remote_localities\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x8d\x02\n\nCorsPolicy\x12\x18\n\x0c\x61llow_origin\x18\x01 \x03(\tB\x02\x18\x01\x12<\n\rallow_origins\x18\x07 \x03(\x0b\x32%.istio.networking.v1beta1.StringMatch\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\x41\n\x05\x64\x65lay\x18\x01 \x01(\x0b\x32\x32.istio.networking.v1beta1.HTTPFaultInjection.Delay\x12\x41\n\x05\x61\x62ort\x18\x02 \x01(\x0b\x32\x32.istio.networking.v1beta1.HTTPFaultInjection.Abort\x1a\xd5\x01\n\x05\x44\x65lay\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x35\n\x0b\x66ixed_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x02H\x00\x12\x36\n\x11\x65xponential_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x35\n\npercentage\x18\x05 \x01(\x0b\x32!.istio.networking.v1beta1.PercentB\x11\n\x0fhttp_delay_type\x1a\xa5\x01\n\x05\x41\x62ort\x12\x1a\n\x0bhttp_status\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02H\x00\x12\x15\n\x0bgrpc_status\x18\x03 \x01(\tH\x00\x12\x15\n\x0bhttp2_error\x18\x04 \x01(\tH\x00\x12\x35\n\npercentage\x18\x05 \x01(\x0b\x32!.istio.networking.v1beta1.PercentB\x0c\n\nerror_typeJ\x04\x08\x01\x10\x02R\x07percent\"*\n\x0cPortSelector\x12\x0e\n\x06number\x18\x01 \x01(\rJ\x04\x08\x02\x10\x03R\x04name\"\x18\n\x07Percent\x12\r\n\x05value\x18\x01 \x01(\x01\x42!Z\x1fistio.io/api/networking/v1beta1b\x06proto3')
,
- dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,])
+ dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_protobuf_dot_struct__pb2.DESCRIPTOR,])
@@ -91,8 +92,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=168,
- serialized_end=385,
+ serialized_start=198,
+ serialized_end=415,
)
@@ -136,8 +137,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=387,
- serialized_end=489,
+ serialized_start=417,
+ serialized_end=519,
)
@@ -246,6 +247,13 @@
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='filters', full_name='istio.networking.v1beta1.HTTPRoute.filters', index=14,
+ number=21, 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=None, file=DESCRIPTOR),
],
extensions=[
],
@@ -258,8 +266,56 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=492,
- serialized_end=1397,
+ serialized_start=522,
+ serialized_end=1487,
+)
+
+
+_HTTPROUTEFILTER = _descriptor.Descriptor(
+ name='HTTPRouteFilter',
+ full_name='istio.networking.v1beta1.HTTPRouteFilter',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='category', full_name='istio.networking.v1beta1.HTTPRouteFilter.category', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='name', full_name='istio.networking.v1beta1.HTTPRouteFilter.name', index=1,
+ number=2, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='value', full_name='istio.networking.v1beta1.HTTPRouteFilter.value', index=2,
+ number=3, 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),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ _descriptor.OneofDescriptor(
+ name='ref_type', full_name='istio.networking.v1beta1.HTTPRouteFilter.ref_type',
+ index=0, containing_type=None, fields=[]),
+ ],
+ serialized_start=1489,
+ serialized_end=1594,
)
@@ -296,8 +352,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=1399,
- serialized_end=1442,
+ serialized_start=1596,
+ serialized_end=1639,
)
@@ -334,8 +390,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=1780,
- serialized_end=1822,
+ serialized_start=1977,
+ serialized_end=2019,
)
_HEADERS_HEADEROPERATIONS_ADDENTRY = _descriptor.Descriptor(
@@ -371,8 +427,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=1824,
- serialized_end=1866,
+ serialized_start=2021,
+ serialized_end=2063,
)
_HEADERS_HEADEROPERATIONS = _descriptor.Descriptor(
@@ -415,8 +471,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=1596,
- serialized_end=1866,
+ serialized_start=1793,
+ serialized_end=2063,
)
_HEADERS = _descriptor.Descriptor(
@@ -452,8 +508,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=1445,
- serialized_end=1866,
+ serialized_start=1642,
+ serialized_end=2063,
)
@@ -490,8 +546,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=1869,
- serialized_end=2004,
+ serialized_start=2066,
+ serialized_end=2201,
)
@@ -528,8 +584,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=2007,
- serialized_end=2136,
+ serialized_start=2204,
+ serialized_end=2333,
)
@@ -566,8 +622,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=2807,
- serialized_end=2892,
+ serialized_start=3004,
+ serialized_end=3089,
)
_HTTPMATCHREQUEST_SOURCELABELSENTRY = _descriptor.Descriptor(
@@ -603,8 +659,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=2894,
- serialized_end=2945,
+ serialized_start=3091,
+ serialized_end=3142,
)
_HTTPMATCHREQUEST_QUERYPARAMSENTRY = _descriptor.Descriptor(
@@ -640,8 +696,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=2947,
- serialized_end=3036,
+ serialized_start=3144,
+ serialized_end=3233,
)
_HTTPMATCHREQUEST_WITHOUTHEADERSENTRY = _descriptor.Descriptor(
@@ -677,8 +733,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=3038,
- serialized_end=3130,
+ serialized_start=3235,
+ serialized_end=3327,
)
_HTTPMATCHREQUEST = _descriptor.Descriptor(
@@ -791,8 +847,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=2139,
- serialized_end=3130,
+ serialized_start=2336,
+ serialized_end=3327,
)
@@ -836,8 +892,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=3133,
- serialized_end=3392,
+ serialized_start=3330,
+ serialized_end=3589,
)
@@ -874,8 +930,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=3394,
- serialized_end=3493,
+ serialized_start=3591,
+ serialized_end=3690,
)
@@ -912,8 +968,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=2894,
- serialized_end=2945,
+ serialized_start=3091,
+ serialized_end=3142,
)
_L4MATCHATTRIBUTES = _descriptor.Descriptor(
@@ -977,8 +1033,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=3496,
- serialized_end=3764,
+ serialized_start=3693,
+ serialized_end=3961,
)
@@ -1015,8 +1071,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=2894,
- serialized_end=2945,
+ serialized_start=3091,
+ serialized_end=3142,
)
_TLSMATCHATTRIBUTES = _descriptor.Descriptor(
@@ -1080,8 +1136,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=3767,
- serialized_end=4059,
+ serialized_start=3964,
+ serialized_end=4256,
)
@@ -1125,8 +1181,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=4061,
- serialized_end=4130,
+ serialized_start=4258,
+ serialized_end=4327,
)
@@ -1163,8 +1219,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=4132,
- serialized_end=4177,
+ serialized_start=4329,
+ serialized_end=4374,
)
@@ -1211,8 +1267,8 @@
name='match_type', full_name='istio.networking.v1beta1.StringMatch.match_type',
index=0, containing_type=None, fields=[]),
],
- serialized_start=4179,
- serialized_end=4258,
+ serialized_start=4376,
+ serialized_end=4455,
)
@@ -1263,8 +1319,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=4261,
- serialized_end=4426,
+ serialized_start=4458,
+ serialized_end=4623,
)
@@ -1336,8 +1392,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=4429,
- serialized_end=4698,
+ serialized_start=4626,
+ serialized_end=4895,
)
@@ -1391,8 +1447,8 @@
name='http_delay_type', full_name='istio.networking.v1beta1.HTTPFaultInjection.Delay.http_delay_type',
index=0, containing_type=None, fields=[]),
],
- serialized_start=4858,
- serialized_end=5071,
+ serialized_start=5055,
+ serialized_end=5268,
)
_HTTPFAULTINJECTION_ABORT = _descriptor.Descriptor(
@@ -1445,8 +1501,8 @@
name='error_type', full_name='istio.networking.v1beta1.HTTPFaultInjection.Abort.error_type',
index=0, containing_type=None, fields=[]),
],
- serialized_start=5074,
- serialized_end=5239,
+ serialized_start=5271,
+ serialized_end=5436,
)
_HTTPFAULTINJECTION = _descriptor.Descriptor(
@@ -1482,8 +1538,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=4701,
- serialized_end=5239,
+ serialized_start=4898,
+ serialized_end=5436,
)
@@ -1513,8 +1569,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=5241,
- serialized_end=5283,
+ serialized_start=5438,
+ serialized_end=5480,
)
@@ -1544,8 +1600,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=5285,
- serialized_end=5309,
+ serialized_start=5482,
+ serialized_end=5506,
)
_VIRTUALSERVICE.fields_by_name['http'].message_type = _HTTPROUTE
@@ -1565,6 +1621,14 @@
_HTTPROUTE.fields_by_name['mirror_percentage'].message_type = _PERCENT
_HTTPROUTE.fields_by_name['cors_policy'].message_type = _CORSPOLICY
_HTTPROUTE.fields_by_name['headers'].message_type = _HEADERS
+_HTTPROUTE.fields_by_name['filters'].message_type = _HTTPROUTEFILTER
+_HTTPROUTEFILTER.fields_by_name['value'].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT
+_HTTPROUTEFILTER.oneofs_by_name['ref_type'].fields.append(
+ _HTTPROUTEFILTER.fields_by_name['name'])
+_HTTPROUTEFILTER.fields_by_name['name'].containing_oneof = _HTTPROUTEFILTER.oneofs_by_name['ref_type']
+_HTTPROUTEFILTER.oneofs_by_name['ref_type'].fields.append(
+ _HTTPROUTEFILTER.fields_by_name['value'])
+_HTTPROUTEFILTER.fields_by_name['value'].containing_oneof = _HTTPROUTEFILTER.oneofs_by_name['ref_type']
_HEADERS_HEADEROPERATIONS_SETENTRY.containing_type = _HEADERS_HEADEROPERATIONS
_HEADERS_HEADEROPERATIONS_ADDENTRY.containing_type = _HEADERS_HEADEROPERATIONS
_HEADERS_HEADEROPERATIONS.fields_by_name['set'].message_type = _HEADERS_HEADEROPERATIONS_SETENTRY
@@ -1638,6 +1702,7 @@
DESCRIPTOR.message_types_by_name['VirtualService'] = _VIRTUALSERVICE
DESCRIPTOR.message_types_by_name['Destination'] = _DESTINATION
DESCRIPTOR.message_types_by_name['HTTPRoute'] = _HTTPROUTE
+DESCRIPTOR.message_types_by_name['HTTPRouteFilter'] = _HTTPROUTEFILTER
DESCRIPTOR.message_types_by_name['Delegate'] = _DELEGATE
DESCRIPTOR.message_types_by_name['Headers'] = _HEADERS
DESCRIPTOR.message_types_by_name['TLSRoute'] = _TLSROUTE
@@ -1678,6 +1743,13 @@
})
_sym_db.RegisterMessage(HTTPRoute)
+HTTPRouteFilter = _reflection.GeneratedProtocolMessageType('HTTPRouteFilter', (_message.Message,), {
+ 'DESCRIPTOR' : _HTTPROUTEFILTER,
+ '__module__' : 'networking.v1beta1.virtual_service_pb2'
+ # @@protoc_insertion_point(class_scope:istio.networking.v1beta1.HTTPRouteFilter)
+ })
+_sym_db.RegisterMessage(HTTPRouteFilter)
+
Delegate = _reflection.GeneratedProtocolMessageType('Delegate', (_message.Message,), {
'DESCRIPTOR' : _DELEGATE,
'__module__' : 'networking.v1beta1.virtual_service_pb2'
|