From 404eab3cf865290da59b99bf233f84b882bd480f Mon Sep 17 00:00:00 2001 From: Frank Budinsky Date: Fri, 28 Sep 2018 15:11:28 -0400 Subject: [PATCH] Rename DestinationWeight and cleanup add/remove headers --- networking/v1alpha3/destination_rule.pb.go | 3 +- .../istio.networking.v1alpha3.pb.html | 336 +++--- networking/v1alpha3/virtual_service.pb.go | 1052 +++++++++++++---- networking/v1alpha3/virtual_service.proto | 59 +- .../v1alpha3/virtual_service_pb2.py | 369 ++++-- 5 files changed, 1355 insertions(+), 464 deletions(-) diff --git a/networking/v1alpha3/destination_rule.pb.go b/networking/v1alpha3/destination_rule.pb.go index dec7eb1887b..a5e4372fa49 100644 --- a/networking/v1alpha3/destination_rule.pb.go +++ b/networking/v1alpha3/destination_rule.pb.go @@ -30,7 +30,8 @@ TLSRoute TCPRoute HTTPMatchRequest - DestinationWeight + HTTPRouteDestination + RouteDestination L4MatchAttributes TLSMatchAttributes HTTPRedirect diff --git a/networking/v1alpha3/istio.networking.v1alpha3.pb.html b/networking/v1alpha3/istio.networking.v1alpha3.pb.html index c40e9960f7a..c20ea24a696 100644 --- a/networking/v1alpha3/istio.networking.v1alpha3.pb.html +++ b/networking/v1alpha3/istio.networking.v1alpha3.pb.html @@ -6,7 +6,7 @@ generator: protoc-gen-docs aliases: - /docs/reference/config/istio.routing.v1alpha1/ -number_of_entries: 50 +number_of_entries: 51 ---

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

@@ -571,130 +571,6 @@

DestinationRule

One or more named sets that represent individual versions of a service. Traffic policies can be overridden at subset level.

- - - - - -

DestinationWeight

-
-

Each routing rule is associated with one or more service versions (see -glossary in beginning of document). Weights associated with the version -determine the proportion of traffic it receives. For example, the -following rule will route 25% of traffic for the “reviews” service to -instances with the “v2” tag and the remaining traffic (i.e., 75%) to -“v1”.

- -
apiVersion: networking.istio.io/v1alpha3
-kind: VirtualService
-metadata:
-  name: reviews-route
-spec:
-  hosts:
-  - reviews.prod.svc.cluster.local
-  http:
-  - route:
-    - destination:
-        host: reviews.prod.svc.cluster.local
-        subset: v2
-      weight: 25
-    - destination:
-        host: reviews.prod.svc.cluster.local
-        subset: v1
-      weight: 75
-
- -

And the associated DestinationRule

- -
apiVersion: networking.istio.io/v1alpha3
-kind: DestinationRule
-metadata:
-  name: reviews-destination
-spec:
-  host: reviews.prod.svc.cluster.local
-  subsets:
-  - name: v1
-    labels:
-      version: v1
-  - name: v2
-    labels:
-      version: v2
-
- -

Traffic can also be split across two entirely different services without -having to define new subsets. For example, the following rule forwards 25% of -traffic to reviews.com to dev.reviews.com

- -
apiVersion: networking.istio.io/v1alpha3
-kind: VirtualService
-metadata:
-  name: reviews-route-two-domains
-spec:
-  hosts:
-  - reviews.com
-  http:
-  - route:
-    - destination:
-        host: dev.reviews.com
-      weight: 25
-    - destination:
-        host: reviews.com
-      weight: 75
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1711,7 +1587,7 @@

HTTPRewrite

HTTPRewrite can be used to rewrite specific parts of a HTTP request before forwarding the request to the destination. Rewrite primitive can -be used only with the DestinationWeights. The following example +be used only with HTTPRouteDestination. The following example demonstrates how to rewrite the URL prefix for api call (/ratings) to ratings service before making the actual API call.

@@ -1791,7 +1667,7 @@

HTTPRoute

- + - + + + + + + + + + + + + + + + + + + + + + - + +
FieldTypeDescription
destinationDestination -

REQUIRED. Destination uniquely identifies the instances of a service -to which the request/connection should be forwarded to.

- -
weightint32 -

REQUIRED. The proportion of traffic to be forwarded to the service -version. (0-100). Sum of weights across destinations SHOULD BE == 100. -If there is only one destination in a rule, the weight value is assumed to -be 100.

- -
appendHeadersmap<string, string> -

Additional HTTP headers to add before forwarding a request to the -destination service.

- -
removeResponseHeadersstring[] -

Http headers to remove before returning the response to the caller

- -
appendResponseHeadersmap<string, string> -

Additional HTTP headers to add before returning a response to the -caller.

-
routeDestinationWeight[]HTTPRouteDestination[]

A http rule can either redirect or forward (default) traffic. The forwarding target can be one of several versions of a service (see @@ -1869,20 +1745,180 @@

HTTPRoute

appendHeaders map<string, string> +

Use of append_headers is deprecated. Use the append_request_headers +field instead.

+ +
removeResponseHeadersstring[] +

HTTP headers to remove before returning a response to the caller.

+ +
appendResponseHeadersmap<string, string> +

Additional HTTP headers to add before returning a response to the +caller.

+ +
removeRequestHeadersstring[] +

HTTP headers to remove before forwarding forwarding a request to the +destination service.

+ +
appendRequestHeadersmap<string, string>

Additional HTTP headers to add before forwarding a request to the destination service.

+
+

HTTPRouteDestination

+
+

Each routing rule is associated with one or more service versions (see +glossary in beginning of document). Weights associated with the version +determine the proportion of traffic it receives. For example, the +following rule will route 25% of traffic for the “reviews” service to +instances with the “v2” tag and the remaining traffic (i.e., 75%) to +“v1”.

+ +
apiVersion: networking.istio.io/v1alpha3
+kind: VirtualService
+metadata:
+  name: reviews-route
+spec:
+  hosts:
+  - reviews.prod.svc.cluster.local
+  http:
+  - route:
+    - destination:
+        host: reviews.prod.svc.cluster.local
+        subset: v2
+      weight: 25
+    - destination:
+        host: reviews.prod.svc.cluster.local
+        subset: v1
+      weight: 75
+
+ +

And the associated DestinationRule

+ +
apiVersion: networking.istio.io/v1alpha3
+kind: DestinationRule
+metadata:
+  name: reviews-destination
+spec:
+  host: reviews.prod.svc.cluster.local
+  subsets:
+  - name: v1
+    labels:
+      version: v1
+  - name: v2
+    labels:
+      version: v2
+
+ +

Traffic can also be split across two entirely different services without +having to define new subsets. For example, the following rule forwards 25% of +traffic to reviews.com to dev.reviews.com

+ +
apiVersion: networking.istio.io/v1alpha3
+kind: VirtualService
+metadata:
+  name: reviews-route-two-domains
+spec:
+  hosts:
+  - reviews.com
+  http:
+  - route:
+    - destination:
+        host: dev.reviews.com
+      weight: 25
+    - destination:
+        host: reviews.com
+      weight: 75
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2334,6 +2370,42 @@

PortSelector

+ + +
FieldTypeDescription
destinationDestination +

REQUIRED. Destination uniquely identifies the instances of a service +to which the request/connection should be forwarded to.

+ +
weightint32 +

REQUIRED. The proportion of traffic to be forwarded to the service +version. (0-100). Sum of weights across destinations SHOULD BE == 100. +If there is only one destination in a rule, the weight value is assumed to +be 100.

+ +
removeResponseHeaders string[] -

Http headers to remove before returning the response to the caller.

+

HTTP headers to remove before returning a response to the caller.

+ +
appendResponseHeadersmap<string, string> +

Additional HTTP headers to add before returning a response to the +caller.

+ +
removeRequestHeadersstring[] +

HTTP headers to remove before forwarding forwarding a request to the +destination service.

+ +
appendRequestHeadersmap<string, string> +

Additional HTTP headers to add before forwarding a request to the +destination service.

Valid port number

+
+
+

RouteDestination

+
+

L4 routing rule weighted destination.

+ + + + + + + + + + + + + + + + + + + @@ -3205,7 +3277,7 @@

TCPRoute

- + - +
FieldTypeDescription
destinationDestination +

REQUIRED. Destination uniquely identifies the instances of a service +to which the request/connection should be forwarded to.

+ +
weightint32 +

REQUIRED. The proportion of traffic to be forwarded to the service +version. (0-100). Sum of weights across destinations SHOULD BE == 100. +If there is only one destination in a rule, the weight value is assumed to +be 100.

+
routeDestinationWeight[]RouteDestination[]

The destination to which the connection should be forwarded to. Currently, only one destination is allowed for TCP services. When TCP @@ -3340,7 +3412,7 @@

TLSRoute

routeDestinationWeight[]RouteDestination[]

The destination to which the connection should be forwarded to. Currently, only one destination is allowed for TLS services. When TCP diff --git a/networking/v1alpha3/virtual_service.pb.go b/networking/v1alpha3/virtual_service.pb.go index b01d911aee3..8e26b26a455 100644 --- a/networking/v1alpha3/virtual_service.pb.go +++ b/networking/v1alpha3/virtual_service.pb.go @@ -367,7 +367,7 @@ type HTTPRoute struct { // forwarding target can be one of several versions of a service (see // glossary in beginning of document). Weights associated with the // service version determine the proportion of traffic it receives. - Route []*DestinationWeight `protobuf:"bytes,2,rep,name=route" json:"route,omitempty"` + Route []*HTTPRouteDestination `protobuf:"bytes,2,rep,name=route" json:"route,omitempty"` // A http rule can either redirect or forward (default) traffic. If // traffic passthrough option is specified in the rule, // route/redirect will be ignored. The redirect primitive can be used to @@ -398,11 +398,20 @@ type HTTPRoute struct { // https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS // for further details about cross origin resource sharing. CorsPolicy *CorsPolicy `protobuf:"bytes,10,opt,name=cors_policy,json=corsPolicy" json:"cors_policy,omitempty"` - // Additional HTTP headers to add before forwarding a request to the - // destination service. + // Use of `append_headers` is deprecated. Use the `append_request_headers` + // field instead. AppendHeaders map[string]string `protobuf:"bytes,11,rep,name=append_headers,json=appendHeaders" json:"append_headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // Http headers to remove before returning the response to the caller. + // HTTP headers to remove before returning a response to the caller. RemoveResponseHeaders []string `protobuf:"bytes,12,rep,name=remove_response_headers,json=removeResponseHeaders" json:"remove_response_headers,omitempty"` + // Additional HTTP headers to add before returning a response to the + // caller. + AppendResponseHeaders map[string]string `protobuf:"bytes,13,rep,name=append_response_headers,json=appendResponseHeaders" json:"append_response_headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // HTTP headers to remove before forwarding forwarding a request to the + // destination service. + RemoveRequestHeaders []string `protobuf:"bytes,14,rep,name=remove_request_headers,json=removeRequestHeaders" json:"remove_request_headers,omitempty"` + // Additional HTTP headers to add before forwarding a request to the + // destination service. + AppendRequestHeaders map[string]string `protobuf:"bytes,15,rep,name=append_request_headers,json=appendRequestHeaders" json:"append_request_headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (m *HTTPRoute) Reset() { *m = HTTPRoute{} } @@ -417,7 +426,7 @@ func (m *HTTPRoute) GetMatch() []*HTTPMatchRequest { return nil } -func (m *HTTPRoute) GetRoute() []*DestinationWeight { +func (m *HTTPRoute) GetRoute() []*HTTPRouteDestination { if m != nil { return m.Route } @@ -494,6 +503,27 @@ func (m *HTTPRoute) GetRemoveResponseHeaders() []string { return nil } +func (m *HTTPRoute) GetAppendResponseHeaders() map[string]string { + if m != nil { + return m.AppendResponseHeaders + } + return nil +} + +func (m *HTTPRoute) GetRemoveRequestHeaders() []string { + if m != nil { + return m.RemoveRequestHeaders + } + return nil +} + +func (m *HTTPRoute) GetAppendRequestHeaders() map[string]string { + if m != nil { + return m.AppendRequestHeaders + } + return nil +} + // Describes match conditions and actions for routing unterminated TLS // traffic (TLS/HTTPS) The following routing rule forwards unterminated TLS // traffic arriving at port 443 of gateway called "mygateway" to internal @@ -535,7 +565,7 @@ type TLSRoute struct { // Currently, only one destination is allowed for TLS services. When TCP // weighted routing support is introduced in Envoy, multiple destinations // with weights can be specified. - Route []*DestinationWeight `protobuf:"bytes,2,rep,name=route" json:"route,omitempty"` + Route []*RouteDestination `protobuf:"bytes,2,rep,name=route" json:"route,omitempty"` } func (m *TLSRoute) Reset() { *m = TLSRoute{} } @@ -550,7 +580,7 @@ func (m *TLSRoute) GetMatch() []*TLSMatchAttributes { return nil } -func (m *TLSRoute) GetRoute() []*DestinationWeight { +func (m *TLSRoute) GetRoute() []*RouteDestination { if m != nil { return m.Route } @@ -588,7 +618,7 @@ type TCPRoute struct { // Currently, only one destination is allowed for TCP services. When TCP // weighted routing support is introduced in Envoy, multiple destinations // with weights can be specified. - Route []*DestinationWeight `protobuf:"bytes,2,rep,name=route" json:"route,omitempty"` + Route []*RouteDestination `protobuf:"bytes,2,rep,name=route" json:"route,omitempty"` } func (m *TCPRoute) Reset() { *m = TCPRoute{} } @@ -603,7 +633,7 @@ func (m *TCPRoute) GetMatch() []*L4MatchAttributes { return nil } -func (m *TCPRoute) GetRoute() []*DestinationWeight { +func (m *TCPRoute) GetRoute() []*RouteDestination { if m != nil { return m.Route } @@ -833,7 +863,7 @@ func (m *HTTPMatchRequest) GetGateways() []string { // host: reviews.com // weight: 75 // ``` -type DestinationWeight struct { +type HTTPRouteDestination struct { // REQUIRED. Destination uniquely identifies the instances of a service // to which the request/connection should be forwarded to. Destination *Destination `protobuf:"bytes,1,opt,name=destination" json:"destination,omitempty"` @@ -842,56 +872,99 @@ type DestinationWeight struct { // If there is only one destination in a rule, the weight value is assumed to // be 100. Weight int32 `protobuf:"varint,2,opt,name=weight,proto3" json:"weight,omitempty"` - // Additional HTTP headers to add before forwarding a request to the - // destination service. - AppendHeaders map[string]string `protobuf:"bytes,3,rep,name=append_headers,json=appendHeaders" json:"append_headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // Http headers to remove before returning the response to the caller - RemoveResponseHeaders []string `protobuf:"bytes,4,rep,name=remove_response_headers,json=removeResponseHeaders" json:"remove_response_headers,omitempty"` + // HTTP headers to remove before returning a response to the caller. + RemoveResponseHeaders []string `protobuf:"bytes,3,rep,name=remove_response_headers,json=removeResponseHeaders" json:"remove_response_headers,omitempty"` // Additional HTTP headers to add before returning a response to the // caller. - AppendResponseHeaders map[string]string `protobuf:"bytes,5,rep,name=append_response_headers,json=appendResponseHeaders" json:"append_response_headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + AppendResponseHeaders map[string]string `protobuf:"bytes,4,rep,name=append_response_headers,json=appendResponseHeaders" json:"append_response_headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // HTTP headers to remove before forwarding forwarding a request to the + // destination service. + RemoveRequestHeaders []string `protobuf:"bytes,5,rep,name=remove_request_headers,json=removeRequestHeaders" json:"remove_request_headers,omitempty"` + // Additional HTTP headers to add before forwarding a request to the + // destination service. + AppendRequestHeaders map[string]string `protobuf:"bytes,6,rep,name=append_request_headers,json=appendRequestHeaders" json:"append_request_headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (m *DestinationWeight) Reset() { *m = DestinationWeight{} } -func (m *DestinationWeight) String() string { return proto.CompactTextString(m) } -func (*DestinationWeight) ProtoMessage() {} -func (*DestinationWeight) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{6} } +func (m *HTTPRouteDestination) Reset() { *m = HTTPRouteDestination{} } +func (m *HTTPRouteDestination) String() string { return proto.CompactTextString(m) } +func (*HTTPRouteDestination) ProtoMessage() {} +func (*HTTPRouteDestination) Descriptor() ([]byte, []int) { + return fileDescriptorVirtualService, []int{6} +} -func (m *DestinationWeight) GetDestination() *Destination { +func (m *HTTPRouteDestination) GetDestination() *Destination { if m != nil { return m.Destination } return nil } -func (m *DestinationWeight) GetWeight() int32 { +func (m *HTTPRouteDestination) GetWeight() int32 { if m != nil { return m.Weight } return 0 } -func (m *DestinationWeight) GetAppendHeaders() map[string]string { +func (m *HTTPRouteDestination) GetRemoveResponseHeaders() []string { if m != nil { - return m.AppendHeaders + return m.RemoveResponseHeaders } return nil } -func (m *DestinationWeight) GetRemoveResponseHeaders() []string { +func (m *HTTPRouteDestination) GetAppendResponseHeaders() map[string]string { if m != nil { - return m.RemoveResponseHeaders + return m.AppendResponseHeaders } return nil } -func (m *DestinationWeight) GetAppendResponseHeaders() map[string]string { +func (m *HTTPRouteDestination) GetRemoveRequestHeaders() []string { if m != nil { - return m.AppendResponseHeaders + return m.RemoveRequestHeaders + } + return nil +} + +func (m *HTTPRouteDestination) GetAppendRequestHeaders() map[string]string { + if m != nil { + return m.AppendRequestHeaders + } + return nil +} + +// L4 routing rule weighted destination. +type RouteDestination struct { + // REQUIRED. Destination uniquely identifies the instances of a service + // to which the request/connection should be forwarded to. + Destination *Destination `protobuf:"bytes,1,opt,name=destination" json:"destination,omitempty"` + // REQUIRED. The proportion of traffic to be forwarded to the service + // version. (0-100). Sum of weights across destinations SHOULD BE == 100. + // If there is only one destination in a rule, the weight value is assumed to + // be 100. + Weight int32 `protobuf:"varint,2,opt,name=weight,proto3" json:"weight,omitempty"` +} + +func (m *RouteDestination) Reset() { *m = RouteDestination{} } +func (m *RouteDestination) String() string { return proto.CompactTextString(m) } +func (*RouteDestination) ProtoMessage() {} +func (*RouteDestination) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{7} } + +func (m *RouteDestination) GetDestination() *Destination { + if m != nil { + return m.Destination } return nil } +func (m *RouteDestination) GetWeight() int32 { + if m != nil { + return m.Weight + } + return 0 +} + // L4 connection match attributes. Note that L4 connection matching support // is incomplete. type L4MatchAttributes struct { @@ -920,7 +993,7 @@ type L4MatchAttributes struct { func (m *L4MatchAttributes) Reset() { *m = L4MatchAttributes{} } func (m *L4MatchAttributes) String() string { return proto.CompactTextString(m) } func (*L4MatchAttributes) ProtoMessage() {} -func (*L4MatchAttributes) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{7} } +func (*L4MatchAttributes) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{8} } func (m *L4MatchAttributes) GetDestinationSubnets() []string { if m != nil { @@ -990,7 +1063,7 @@ type TLSMatchAttributes struct { func (m *TLSMatchAttributes) Reset() { *m = TLSMatchAttributes{} } func (m *TLSMatchAttributes) String() string { return proto.CompactTextString(m) } func (*TLSMatchAttributes) ProtoMessage() {} -func (*TLSMatchAttributes) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{8} } +func (*TLSMatchAttributes) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{9} } func (m *TLSMatchAttributes) GetSniHosts() []string { if m != nil { @@ -1070,7 +1143,7 @@ type HTTPRedirect struct { func (m *HTTPRedirect) Reset() { *m = HTTPRedirect{} } func (m *HTTPRedirect) String() string { return proto.CompactTextString(m) } func (*HTTPRedirect) ProtoMessage() {} -func (*HTTPRedirect) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{9} } +func (*HTTPRedirect) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{10} } func (m *HTTPRedirect) GetUri() string { if m != nil { @@ -1088,7 +1161,7 @@ func (m *HTTPRedirect) GetAuthority() string { // HTTPRewrite can be used to rewrite specific parts of a HTTP request // before forwarding the request to the destination. Rewrite primitive can -// be used only with the DestinationWeights. The following example +// be used only with HTTPRouteDestination. The following example // demonstrates how to rewrite the URL prefix for api call (/ratings) to // ratings service before making the actual API call. // @@ -1124,7 +1197,7 @@ type HTTPRewrite struct { func (m *HTTPRewrite) Reset() { *m = HTTPRewrite{} } func (m *HTTPRewrite) String() string { return proto.CompactTextString(m) } func (*HTTPRewrite) ProtoMessage() {} -func (*HTTPRewrite) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{10} } +func (*HTTPRewrite) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{11} } func (m *HTTPRewrite) GetUri() string { if m != nil { @@ -1153,7 +1226,7 @@ type StringMatch struct { func (m *StringMatch) Reset() { *m = StringMatch{} } func (m *StringMatch) String() string { return proto.CompactTextString(m) } func (*StringMatch) ProtoMessage() {} -func (*StringMatch) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{11} } +func (*StringMatch) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{12} } type isStringMatch_MatchType interface { isStringMatch_MatchType() @@ -1318,7 +1391,7 @@ type HTTPRetry struct { func (m *HTTPRetry) Reset() { *m = HTTPRetry{} } func (m *HTTPRetry) String() string { return proto.CompactTextString(m) } func (*HTTPRetry) ProtoMessage() {} -func (*HTTPRetry) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{12} } +func (*HTTPRetry) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{13} } func (m *HTTPRetry) GetAttempts() int32 { if m != nil { @@ -1394,7 +1467,7 @@ type CorsPolicy struct { func (m *CorsPolicy) Reset() { *m = CorsPolicy{} } func (m *CorsPolicy) String() string { return proto.CompactTextString(m) } func (*CorsPolicy) ProtoMessage() {} -func (*CorsPolicy) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{13} } +func (*CorsPolicy) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{14} } func (m *CorsPolicy) GetAllowOrigin() []string { if m != nil { @@ -1459,7 +1532,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 fileDescriptorVirtualService, []int{14} + return fileDescriptorVirtualService, []int{15} } func (m *HTTPFaultInjection) GetDelay() *HTTPFaultInjection_Delay { @@ -1524,7 +1597,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 fileDescriptorVirtualService, []int{14, 0} + return fileDescriptorVirtualService, []int{15, 0} } type isHTTPFaultInjection_Delay_HttpDelayType interface { @@ -1698,7 +1771,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 fileDescriptorVirtualService, []int{14, 1} + return fileDescriptorVirtualService, []int{15, 1} } type isHTTPFaultInjection_Abort_ErrorType interface { @@ -1855,7 +1928,7 @@ type PortSelector struct { func (m *PortSelector) Reset() { *m = PortSelector{} } func (m *PortSelector) String() string { return proto.CompactTextString(m) } func (*PortSelector) ProtoMessage() {} -func (*PortSelector) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{15} } +func (*PortSelector) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{16} } type isPortSelector_Port interface { isPortSelector_Port() @@ -1967,7 +2040,7 @@ type Percent struct { func (m *Percent) Reset() { *m = Percent{} } func (m *Percent) String() string { return proto.CompactTextString(m) } func (*Percent) ProtoMessage() {} -func (*Percent) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{16} } +func (*Percent) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{17} } func (m *Percent) GetValue() float64 { if m != nil { @@ -1983,7 +2056,8 @@ func init() { proto.RegisterType((*TLSRoute)(nil), "istio.networking.v1alpha3.TLSRoute") proto.RegisterType((*TCPRoute)(nil), "istio.networking.v1alpha3.TCPRoute") proto.RegisterType((*HTTPMatchRequest)(nil), "istio.networking.v1alpha3.HTTPMatchRequest") - proto.RegisterType((*DestinationWeight)(nil), "istio.networking.v1alpha3.DestinationWeight") + proto.RegisterType((*HTTPRouteDestination)(nil), "istio.networking.v1alpha3.HTTPRouteDestination") + proto.RegisterType((*RouteDestination)(nil), "istio.networking.v1alpha3.RouteDestination") proto.RegisterType((*L4MatchAttributes)(nil), "istio.networking.v1alpha3.L4MatchAttributes") proto.RegisterType((*TLSMatchAttributes)(nil), "istio.networking.v1alpha3.TLSMatchAttributes") proto.RegisterType((*HTTPRedirect)(nil), "istio.networking.v1alpha3.HTTPRedirect") @@ -2272,6 +2346,55 @@ func (m *HTTPRoute) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], s) } } + if len(m.AppendResponseHeaders) > 0 { + for k, _ := range m.AppendResponseHeaders { + dAtA[i] = 0x6a + i++ + v := m.AppendResponseHeaders[k] + mapSize := 1 + len(k) + sovVirtualService(uint64(len(k))) + 1 + len(v) + sovVirtualService(uint64(len(v))) + i = encodeVarintVirtualService(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintVirtualService(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintVirtualService(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } + if len(m.RemoveRequestHeaders) > 0 { + for _, s := range m.RemoveRequestHeaders { + dAtA[i] = 0x72 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.AppendRequestHeaders) > 0 { + for k, _ := range m.AppendRequestHeaders { + dAtA[i] = 0x7a + i++ + v := m.AppendRequestHeaders[k] + mapSize := 1 + len(k) + sovVirtualService(uint64(len(k))) + 1 + len(v) + sovVirtualService(uint64(len(v))) + i = encodeVarintVirtualService(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintVirtualService(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintVirtualService(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } return i, nil } @@ -2482,7 +2605,7 @@ func (m *HTTPMatchRequest) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func (m *DestinationWeight) Marshal() (dAtA []byte, err error) { +func (m *HTTPRouteDestination) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -2492,7 +2615,7 @@ func (m *DestinationWeight) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *DestinationWeight) MarshalTo(dAtA []byte) (int, error) { +func (m *HTTPRouteDestination) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -2512,11 +2635,26 @@ func (m *DestinationWeight) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.Weight)) } - if len(m.AppendHeaders) > 0 { - for k, _ := range m.AppendHeaders { + if len(m.RemoveResponseHeaders) > 0 { + for _, s := range m.RemoveResponseHeaders { dAtA[i] = 0x1a i++ - v := m.AppendHeaders[k] + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.AppendResponseHeaders) > 0 { + for k, _ := range m.AppendResponseHeaders { + dAtA[i] = 0x22 + i++ + v := m.AppendResponseHeaders[k] mapSize := 1 + len(k) + sovVirtualService(uint64(len(k))) + 1 + len(v) + sovVirtualService(uint64(len(v))) i = encodeVarintVirtualService(dAtA, i, uint64(mapSize)) dAtA[i] = 0xa @@ -2529,9 +2667,9 @@ func (m *DestinationWeight) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], v) } } - if len(m.RemoveResponseHeaders) > 0 { - for _, s := range m.RemoveResponseHeaders { - dAtA[i] = 0x22 + if len(m.RemoveRequestHeaders) > 0 { + for _, s := range m.RemoveRequestHeaders { + dAtA[i] = 0x2a i++ l = len(s) for l >= 1<<7 { @@ -2544,11 +2682,11 @@ func (m *DestinationWeight) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], s) } } - if len(m.AppendResponseHeaders) > 0 { - for k, _ := range m.AppendResponseHeaders { - dAtA[i] = 0x2a + if len(m.AppendRequestHeaders) > 0 { + for k, _ := range m.AppendRequestHeaders { + dAtA[i] = 0x32 i++ - v := m.AppendResponseHeaders[k] + v := m.AppendRequestHeaders[k] mapSize := 1 + len(k) + sovVirtualService(uint64(len(k))) + 1 + len(v) + sovVirtualService(uint64(len(v))) i = encodeVarintVirtualService(dAtA, i, uint64(mapSize)) dAtA[i] = 0xa @@ -2564,6 +2702,39 @@ func (m *DestinationWeight) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *RouteDestination) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RouteDestination) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Destination != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintVirtualService(dAtA, i, uint64(m.Destination.Size())) + n15, err := m.Destination.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n15 + } + if m.Weight != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintVirtualService(dAtA, i, uint64(m.Weight)) + } + return i, nil +} + func (m *L4MatchAttributes) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2807,11 +2978,11 @@ func (m *StringMatch) MarshalTo(dAtA []byte) (int, error) { var l int _ = l if m.MatchType != nil { - nn15, err := m.MatchType.MarshalTo(dAtA[i:]) + nn16, err := m.MatchType.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += nn15 + i += nn16 } return i, nil } @@ -2864,11 +3035,11 @@ func (m *HTTPRetry) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.PerTryTimeout.Size())) - n16, err := m.PerTryTimeout.MarshalTo(dAtA[i:]) + n17, err := m.PerTryTimeout.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n16 + i += n17 } return i, nil } @@ -2952,21 +3123,21 @@ func (m *CorsPolicy) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.MaxAge.Size())) - n17, err := m.MaxAge.MarshalTo(dAtA[i:]) + n18, err := m.MaxAge.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n17 + i += n18 } if m.AllowCredentials != nil { dAtA[i] = 0x32 i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.AllowCredentials.Size())) - n18, err := m.AllowCredentials.MarshalTo(dAtA[i:]) + n19, err := m.AllowCredentials.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n18 + i += n19 } return i, nil } @@ -2990,21 +3161,21 @@ func (m *HTTPFaultInjection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.Delay.Size())) - n19, err := m.Delay.MarshalTo(dAtA[i:]) + n20, err := m.Delay.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n19 + i += n20 } if m.Abort != nil { dAtA[i] = 0x12 i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.Abort.Size())) - n20, err := m.Abort.MarshalTo(dAtA[i:]) + n21, err := m.Abort.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n20 + i += n21 } return i, nil } @@ -3030,21 +3201,21 @@ func (m *HTTPFaultInjection_Delay) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintVirtualService(dAtA, i, uint64(m.Percent)) } if m.HttpDelayType != nil { - nn21, err := m.HttpDelayType.MarshalTo(dAtA[i:]) + nn22, err := m.HttpDelayType.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += nn21 + i += nn22 } if m.Percentage != nil { dAtA[i] = 0x2a i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.Percentage.Size())) - n22, err := m.Percentage.MarshalTo(dAtA[i:]) + n23, err := m.Percentage.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n22 + i += n23 } return i, nil } @@ -3055,11 +3226,11 @@ func (m *HTTPFaultInjection_Delay_FixedDelay) MarshalTo(dAtA []byte) (int, error dAtA[i] = 0x12 i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.FixedDelay.Size())) - n23, err := m.FixedDelay.MarshalTo(dAtA[i:]) + n24, err := m.FixedDelay.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n23 + i += n24 } return i, nil } @@ -3069,11 +3240,11 @@ func (m *HTTPFaultInjection_Delay_ExponentialDelay) MarshalTo(dAtA []byte) (int, dAtA[i] = 0x1a i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.ExponentialDelay.Size())) - n24, err := m.ExponentialDelay.MarshalTo(dAtA[i:]) + n25, err := m.ExponentialDelay.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n24 + i += n25 } return i, nil } @@ -3098,21 +3269,21 @@ func (m *HTTPFaultInjection_Abort) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintVirtualService(dAtA, i, uint64(m.Percent)) } if m.ErrorType != nil { - nn25, err := m.ErrorType.MarshalTo(dAtA[i:]) + nn26, err := m.ErrorType.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += nn25 + i += nn26 } if m.Percentage != nil { dAtA[i] = 0x2a i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.Percentage.Size())) - n26, err := m.Percentage.MarshalTo(dAtA[i:]) + n27, err := m.Percentage.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n26 + i += n27 } return i, nil } @@ -3156,11 +3327,11 @@ func (m *PortSelector) MarshalTo(dAtA []byte) (int, error) { var l int _ = l if m.Port != nil { - nn27, err := m.Port.MarshalTo(dAtA[i:]) + nn28, err := m.Port.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += nn27 + i += nn28 } return i, nil } @@ -3327,6 +3498,28 @@ func (m *HTTPRoute) Size() (n int) { n += 1 + l + sovVirtualService(uint64(l)) } } + if len(m.AppendResponseHeaders) > 0 { + for k, v := range m.AppendResponseHeaders { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovVirtualService(uint64(len(k))) + 1 + len(v) + sovVirtualService(uint64(len(v))) + n += mapEntrySize + 1 + sovVirtualService(uint64(mapEntrySize)) + } + } + if len(m.RemoveRequestHeaders) > 0 { + for _, s := range m.RemoveRequestHeaders { + l = len(s) + n += 1 + l + sovVirtualService(uint64(l)) + } + } + if len(m.AppendRequestHeaders) > 0 { + for k, v := range m.AppendRequestHeaders { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovVirtualService(uint64(len(k))) + 1 + len(v) + sovVirtualService(uint64(len(v))) + n += mapEntrySize + 1 + sovVirtualService(uint64(mapEntrySize)) + } + } return n } @@ -3418,7 +3611,7 @@ func (m *HTTPMatchRequest) Size() (n int) { return n } -func (m *DestinationWeight) Size() (n int) { +func (m *HTTPRouteDestination) Size() (n int) { var l int _ = l if m.Destination != nil { @@ -3428,22 +3621,28 @@ func (m *DestinationWeight) Size() (n int) { if m.Weight != 0 { n += 1 + sovVirtualService(uint64(m.Weight)) } - if len(m.AppendHeaders) > 0 { - for k, v := range m.AppendHeaders { + if len(m.RemoveResponseHeaders) > 0 { + for _, s := range m.RemoveResponseHeaders { + l = len(s) + n += 1 + l + sovVirtualService(uint64(l)) + } + } + if len(m.AppendResponseHeaders) > 0 { + for k, v := range m.AppendResponseHeaders { _ = k _ = v mapEntrySize := 1 + len(k) + sovVirtualService(uint64(len(k))) + 1 + len(v) + sovVirtualService(uint64(len(v))) n += mapEntrySize + 1 + sovVirtualService(uint64(mapEntrySize)) } } - if len(m.RemoveResponseHeaders) > 0 { - for _, s := range m.RemoveResponseHeaders { + if len(m.RemoveRequestHeaders) > 0 { + for _, s := range m.RemoveRequestHeaders { l = len(s) n += 1 + l + sovVirtualService(uint64(l)) } } - if len(m.AppendResponseHeaders) > 0 { - for k, v := range m.AppendResponseHeaders { + if len(m.AppendRequestHeaders) > 0 { + for k, v := range m.AppendRequestHeaders { _ = k _ = v mapEntrySize := 1 + len(k) + sovVirtualService(uint64(len(k))) + 1 + len(v) + sovVirtualService(uint64(len(v))) @@ -3453,6 +3652,19 @@ func (m *DestinationWeight) Size() (n int) { return n } +func (m *RouteDestination) Size() (n int) { + var l int + _ = l + if m.Destination != nil { + l = m.Destination.Size() + n += 1 + l + sovVirtualService(uint64(l)) + } + if m.Weight != 0 { + n += 1 + sovVirtualService(uint64(m.Weight)) + } + return n +} + func (m *L4MatchAttributes) Size() (n int) { var l int _ = l @@ -4190,7 +4402,7 @@ func (m *HTTPRoute) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Route = append(m.Route, &DestinationWeight{}) + m.Route = append(m.Route, &HTTPRouteDestination{}) if err := m.Route[len(m.Route)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -4593,28 +4805,293 @@ func (m *HTTPRoute) Unmarshal(dAtA []byte) error { } m.RemoveResponseHeaders = append(m.RemoveResponseHeaders, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipVirtualService(dAtA[iNdEx:]) - if err != nil { - return err + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AppendResponseHeaders", wireType) } - if skippy < 0 { + 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 } - if (iNdEx + skippy) > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TLSRoute) Unmarshal(dAtA []byte) error { + if m.AppendResponseHeaders == nil { + m.AppendResponseHeaders = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := 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) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVirtualService + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthVirtualService + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVirtualService + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthVirtualService + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipVirtualService(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthVirtualService + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.AppendResponseHeaders[mapkey] = mapvalue + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RemoveRequestHeaders", 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 > l { + return io.ErrUnexpectedEOF + } + m.RemoveRequestHeaders = append(m.RemoveRequestHeaders, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AppendRequestHeaders", 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 > l { + return io.ErrUnexpectedEOF + } + if m.AppendRequestHeaders == nil { + m.AppendRequestHeaders = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := 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) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVirtualService + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthVirtualService + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVirtualService + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthVirtualService + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipVirtualService(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthVirtualService + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.AppendRequestHeaders[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipVirtualService(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthVirtualService + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TLSRoute) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4700,7 +5177,7 @@ func (m *TLSRoute) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Route = append(m.Route, &DestinationWeight{}) + m.Route = append(m.Route, &RouteDestination{}) if err := m.Route[len(m.Route)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -4812,7 +5289,7 @@ func (m *TCPRoute) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Route = append(m.Route, &DestinationWeight{}) + m.Route = append(m.Route, &RouteDestination{}) if err := m.Route[len(m.Route)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -5309,7 +5786,7 @@ func (m *HTTPMatchRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *DestinationWeight) Unmarshal(dAtA []byte) error { +func (m *HTTPRouteDestination) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5332,10 +5809,10 @@ func (m *DestinationWeight) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DestinationWeight: wiretype end group for non-group") + return fmt.Errorf("proto: HTTPRouteDestination: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DestinationWeight: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: HTTPRouteDestination: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -5392,7 +5869,36 @@ func (m *DestinationWeight) Unmarshal(dAtA []byte) error { } case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AppendHeaders", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RemoveResponseHeaders", 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 > l { + return io.ErrUnexpectedEOF + } + m.RemoveResponseHeaders = append(m.RemoveResponseHeaders, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AppendResponseHeaders", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5416,8 +5922,8 @@ func (m *DestinationWeight) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.AppendHeaders == nil { - m.AppendHeaders = make(map[string]string) + if m.AppendResponseHeaders == nil { + m.AppendResponseHeaders = make(map[string]string) } var mapkey string var mapvalue string @@ -5506,11 +6012,11 @@ func (m *DestinationWeight) Unmarshal(dAtA []byte) error { iNdEx += skippy } } - m.AppendHeaders[mapkey] = mapvalue + m.AppendResponseHeaders[mapkey] = mapvalue iNdEx = postIndex - case 4: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RemoveResponseHeaders", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RemoveRequestHeaders", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -5535,11 +6041,11 @@ func (m *DestinationWeight) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.RemoveResponseHeaders = append(m.RemoveResponseHeaders, string(dAtA[iNdEx:postIndex])) + m.RemoveRequestHeaders = append(m.RemoveRequestHeaders, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 5: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AppendResponseHeaders", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AppendRequestHeaders", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5563,8 +6069,8 @@ func (m *DestinationWeight) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.AppendResponseHeaders == nil { - m.AppendResponseHeaders = make(map[string]string) + if m.AppendRequestHeaders == nil { + m.AppendRequestHeaders = make(map[string]string) } var mapkey string var mapvalue string @@ -5653,7 +6159,7 @@ func (m *DestinationWeight) Unmarshal(dAtA []byte) error { iNdEx += skippy } } - m.AppendResponseHeaders[mapkey] = mapvalue + m.AppendRequestHeaders[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -5676,6 +6182,108 @@ func (m *DestinationWeight) Unmarshal(dAtA []byte) error { } return nil } +func (m *RouteDestination) 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: RouteDestination: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RouteDestination: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Destination", 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 > l { + return io.ErrUnexpectedEOF + } + if m.Destination == nil { + m.Destination = &Destination{} + } + if err := m.Destination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Weight", wireType) + } + m.Weight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVirtualService + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Weight |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipVirtualService(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthVirtualService + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *L4MatchAttributes) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -7672,101 +8280,107 @@ func init() { } var fileDescriptorVirtualService = []byte{ - // 1525 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcd, 0x6e, 0xdb, 0xc6, - 0x13, 0x0f, 0x25, 0x51, 0xb6, 0x46, 0x72, 0x62, 0xef, 0x3f, 0x1f, 0x8c, 0xfe, 0x81, 0xeb, 0x28, - 0x4d, 0xeb, 0x22, 0x8d, 0x8c, 0xda, 0xfd, 0x30, 0xda, 0xc4, 0x89, 0x65, 0x27, 0x51, 0x80, 0x04, - 0x0d, 0x68, 0x37, 0x05, 0x7a, 0x28, 0x41, 0x51, 0x63, 0x89, 0x09, 0xc5, 0x65, 0x77, 0x97, 0xb6, - 0x75, 0xea, 0xa5, 0x4f, 0xd0, 0xf6, 0x5a, 0x14, 0xe8, 0x8b, 0xf4, 0xda, 0x63, 0x9f, 0xa0, 0x08, - 0x7c, 0xec, 0x53, 0x14, 0xbb, 0x4b, 0x4a, 0x8c, 0x95, 0xe8, 0xa3, 0x49, 0x6f, 0xdc, 0xd9, 0xf9, - 0xcd, 0xcc, 0xce, 0xce, 0xfc, 0x76, 0x97, 0xf0, 0x41, 0x88, 0xe2, 0x88, 0xb2, 0xe7, 0x7e, 0xd8, - 0x59, 0x3b, 0xfc, 0xc8, 0x0d, 0xa2, 0xae, 0xbb, 0xb1, 0x76, 0xe8, 0x33, 0x11, 0xbb, 0x81, 0xc3, - 0x91, 0x1d, 0xfa, 0x1e, 0xd6, 0x23, 0x46, 0x05, 0x25, 0x97, 0x7d, 0x2e, 0x7c, 0x5a, 0x1f, 0x02, - 0xea, 0x29, 0xa0, 0xba, 0xdc, 0xa1, 0xb4, 0x13, 0xe0, 0x9a, 0x52, 0x6c, 0xc5, 0x07, 0x6b, 0xed, - 0x98, 0xb9, 0xc2, 0xa7, 0xa1, 0x86, 0x8e, 0xce, 0x1f, 0x31, 0x37, 0x8a, 0x90, 0x71, 0x3d, 0x5f, - 0xfb, 0xdb, 0x80, 0xb3, 0x4f, 0xb5, 0xd3, 0x3d, 0xed, 0x93, 0x9c, 0x07, 0xb3, 0x4b, 0xb9, 0xe0, - 0x96, 0xb1, 0x92, 0x5f, 0x2d, 0xd9, 0x7a, 0x40, 0xaa, 0x30, 0xdf, 0x71, 0x05, 0x1e, 0xb9, 0x7d, - 0x6e, 0xe5, 0xd4, 0xc4, 0x60, 0x4c, 0x36, 0xa1, 0xd0, 0x15, 0x22, 0xb2, 0xf2, 0x2b, 0xf9, 0xd5, - 0xf2, 0xfa, 0xbb, 0xf5, 0xd7, 0x86, 0x5b, 0x6f, 0xee, 0xef, 0x3f, 0xb1, 0x69, 0x2c, 0xd0, 0x56, - 0x08, 0xf2, 0x09, 0xe4, 0x85, 0x17, 0x59, 0x05, 0x05, 0xbc, 0x36, 0x06, 0xb8, 0xbf, 0x93, 0xe0, - 0xa4, 0xbe, 0x82, 0x05, 0xdc, 0x32, 0x27, 0xc3, 0x1e, 0xed, 0xa5, 0xb0, 0x80, 0xd7, 0x0e, 0xa1, - 0xbc, 0x8b, 0x5c, 0xf8, 0xa1, 0xca, 0x10, 0x21, 0x50, 0x90, 0x6b, 0xb3, 0x8c, 0x15, 0x63, 0xb5, - 0x64, 0xab, 0x6f, 0x72, 0x11, 0x8a, 0x3c, 0x6e, 0x71, 0x14, 0x56, 0x4e, 0x49, 0x93, 0x11, 0xf9, - 0x02, 0x0a, 0x11, 0x65, 0xc2, 0xca, 0xaf, 0x18, 0xab, 0xe5, 0xf5, 0xf7, 0xc7, 0xb8, 0x7c, 0x42, - 0x99, 0xd8, 0xc3, 0x00, 0x3d, 0x41, 0x99, 0xad, 0x40, 0xb5, 0x93, 0x22, 0x94, 0x06, 0x2b, 0x27, - 0xdb, 0x60, 0xf6, 0x5c, 0xe1, 0x75, 0x55, 0x7e, 0xcb, 0xeb, 0x37, 0x26, 0xa4, 0xeb, 0xb1, 0xd4, - 0xb5, 0xf1, 0xbb, 0x18, 0xb9, 0xb0, 0x35, 0x92, 0x34, 0xc0, 0x64, 0xd2, 0x96, 0xda, 0x89, 0xf2, - 0xfa, 0x87, 0x63, 0x4c, 0x64, 0x16, 0xfc, 0x35, 0xfa, 0x9d, 0xae, 0xb0, 0x35, 0x94, 0xec, 0xc0, - 0x3c, 0xc3, 0xb6, 0xcf, 0xd0, 0x9b, 0x66, 0x55, 0x2a, 0xfc, 0x44, 0xdd, 0x1e, 0x00, 0xc9, 0x5d, - 0x98, 0x63, 0x78, 0xc4, 0x7c, 0x81, 0x56, 0x41, 0xd9, 0x78, 0x6f, 0xa2, 0x0d, 0xa5, 0x6d, 0xa7, - 0x30, 0x72, 0x03, 0x96, 0x8e, 0xb0, 0xc5, 0xa9, 0xf7, 0x1c, 0x85, 0x13, 0x47, 0x1d, 0xe6, 0xb6, - 0xd1, 0x32, 0x57, 0x8c, 0xd5, 0x79, 0x7b, 0x71, 0x30, 0xf1, 0x95, 0x96, 0x93, 0x0d, 0x98, 0x13, - 0x7e, 0x0f, 0x69, 0x2c, 0xac, 0xa2, 0x72, 0x77, 0xb9, 0xae, 0xeb, 0xbb, 0x9e, 0xd6, 0x77, 0x7d, - 0x37, 0xa9, 0x7f, 0x3b, 0xd5, 0x24, 0x5b, 0x32, 0x46, 0xc1, 0x7c, 0xe4, 0xd6, 0x9c, 0x02, 0x4d, - 0x2c, 0x50, 0x14, 0xac, 0x6f, 0xa7, 0x20, 0xb2, 0x03, 0xe6, 0x81, 0x1b, 0x07, 0xc2, 0x9a, 0x57, - 0xe8, 0x9b, 0x13, 0xd0, 0xf7, 0xa5, 0xee, 0xc3, 0xf0, 0x19, 0x7a, 0x2a, 0x0c, 0x8d, 0x25, 0x5b, - 0x50, 0xec, 0xf9, 0x8c, 0x51, 0x66, 0x95, 0x26, 0xe6, 0x29, 0xb3, 0x65, 0x76, 0x82, 0x22, 0xf7, - 0xa1, 0xec, 0x51, 0xc6, 0x9d, 0x88, 0x06, 0xbe, 0xd7, 0xb7, 0x40, 0x19, 0xb9, 0x3e, 0xc6, 0xc8, - 0x0e, 0x65, 0xfc, 0x89, 0x52, 0xb6, 0xc1, 0x1b, 0x7c, 0x93, 0x6f, 0xe1, 0xac, 0xec, 0xff, 0xb0, - 0xed, 0x74, 0xd1, 0x6d, 0x23, 0xe3, 0x56, 0x59, 0x95, 0xd0, 0x67, 0xd3, 0x34, 0x6d, 0x7d, 0x5b, - 0x41, 0x9b, 0x1a, 0x79, 0x2f, 0x94, 0x69, 0x5a, 0x70, 0xb3, 0x32, 0xf2, 0x29, 0x5c, 0x62, 0xd8, - 0xa3, 0x87, 0xe8, 0x30, 0xe4, 0x11, 0x0d, 0x39, 0x0e, 0x1c, 0x55, 0x14, 0x6b, 0x5c, 0xd0, 0xd3, - 0x76, 0x32, 0x9b, 0xe0, 0xaa, 0x77, 0x81, 0x8c, 0x1a, 0x27, 0x8b, 0x90, 0x7f, 0x8e, 0xfd, 0xa4, - 0x41, 0xe5, 0xa7, 0x24, 0xa7, 0x43, 0x37, 0x88, 0x31, 0x69, 0x4f, 0x3d, 0xf8, 0x3c, 0xb7, 0x69, - 0xd4, 0x7e, 0x32, 0x60, 0x3e, 0x6d, 0x77, 0xb9, 0x67, 0xd9, 0x1e, 0xbb, 0x39, 0x9e, 0x22, 0x54, - 0x8b, 0x6d, 0x0b, 0xc1, 0xfc, 0x56, 0x2c, 0x90, 0xbf, 0xc5, 0x2e, 0xab, 0xfd, 0x28, 0xa3, 0x4a, - 0xb8, 0x4b, 0x1a, 0xcc, 0x46, 0x35, 0xce, 0xe0, 0xa3, 0x8f, 0xff, 0xc3, 0xa0, 0x7e, 0x35, 0x61, - 0xf1, 0x34, 0xb5, 0x90, 0x4d, 0xc8, 0xc7, 0xcc, 0x57, 0xb9, 0x1e, 0x5f, 0x9e, 0x7b, 0x82, 0xf9, - 0x61, 0x47, 0x63, 0x25, 0x44, 0xd6, 0x36, 0xf7, 0xba, 0xd8, 0xd3, 0x9b, 0x32, 0x3d, 0x38, 0x41, - 0xa9, 0xde, 0x40, 0xd1, 0xa5, 0xed, 0x84, 0x87, 0xa6, 0xc6, 0x6b, 0x14, 0xd9, 0x85, 0x92, 0x1b, - 0x8b, 0x2e, 0x65, 0xbe, 0xe8, 0x4f, 0x41, 0x43, 0x59, 0x13, 0x43, 0x20, 0xb1, 0x61, 0x2e, 0xad, - 0x54, 0x7d, 0xae, 0x6c, 0xce, 0x40, 0xcc, 0xf5, 0x97, 0x7a, 0x22, 0x35, 0x24, 0x4f, 0x18, 0x75, - 0x6a, 0x48, 0xb2, 0x5a, 0xd0, 0x87, 0x01, 0x69, 0xc1, 0x02, 0xa7, 0x31, 0xf3, 0xd0, 0x09, 0xdc, - 0x16, 0x06, 0x92, 0x94, 0xa4, 0xb7, 0xdb, 0xb3, 0x78, 0xdb, 0x53, 0x06, 0x1e, 0x29, 0xbc, 0x76, - 0x59, 0xe1, 0x19, 0xd1, 0x4b, 0x87, 0xf5, 0xfc, 0xcb, 0x87, 0x75, 0xb5, 0x05, 0x95, 0x09, 0x3d, - 0x76, 0x2b, 0xdb, 0x63, 0xd3, 0xe7, 0x72, 0xd8, 0x8b, 0xd5, 0x3b, 0xb0, 0x34, 0x12, 0xe2, 0x4c, - 0xcd, 0xfc, 0x5b, 0x01, 0x96, 0x46, 0xca, 0x97, 0x34, 0xa1, 0xdc, 0x1e, 0x0a, 0xa7, 0x28, 0xd5, - 0x2c, 0x93, 0x66, 0xa1, 0xf2, 0x98, 0x3f, 0x52, 0x36, 0x95, 0x6b, 0xd3, 0x4e, 0x46, 0xe4, 0x60, - 0x84, 0x1e, 0xf5, 0x9d, 0xe6, 0xce, 0x2c, 0x6d, 0xf6, 0x66, 0x34, 0x59, 0x18, 0x43, 0x93, 0xe4, - 0x7b, 0xb8, 0x94, 0xc4, 0x37, 0x82, 0xd3, 0x45, 0xfb, 0xe0, 0x5f, 0x04, 0x7a, 0xca, 0x89, 0x0e, - 0xf8, 0x82, 0xfb, 0xaa, 0xb9, 0x37, 0xe7, 0xe9, 0x6a, 0x13, 0xaa, 0xaf, 0x77, 0x3b, 0x53, 0x91, - 0xfc, 0x9e, 0x83, 0xa5, 0x11, 0x9e, 0x24, 0x6b, 0xf0, 0xbf, 0xcc, 0x4e, 0x3b, 0x3c, 0x6e, 0x85, - 0x38, 0xb8, 0xcc, 0x92, 0xcc, 0xd4, 0x9e, 0x9e, 0x19, 0x34, 0x69, 0x2e, 0xd3, 0xa4, 0xd7, 0x06, - 0x4d, 0xaa, 0xf1, 0x8a, 0x99, 0x4a, 0x69, 0x97, 0x69, 0x24, 0xf1, 0x4e, 0x77, 0xb2, 0xbe, 0xc6, - 0x6e, 0xcd, 0x42, 0xeb, 0x33, 0xb5, 0xb2, 0x79, 0xaa, 0x95, 0xdf, 0xb8, 0xcd, 0xfe, 0xca, 0x01, - 0x19, 0x3d, 0xff, 0xc8, 0xff, 0xa1, 0xc4, 0x43, 0xdf, 0xc9, 0xbe, 0x02, 0xe6, 0x79, 0xe8, 0x37, - 0xd5, 0x43, 0xe0, 0x35, 0xf9, 0xcd, 0x4d, 0xcc, 0x6f, 0x7e, 0x5c, 0x7e, 0x0b, 0xaf, 0xc8, 0x6f, - 0xfb, 0x74, 0x7e, 0xcd, 0x89, 0xbd, 0x38, 0xba, 0x98, 0x99, 0x12, 0x5c, 0x7c, 0xdb, 0x09, 0xde, - 0x82, 0x4a, 0xf6, 0xe6, 0x2c, 0xb1, 0xe9, 0x21, 0x5b, 0xd2, 0x87, 0xe7, 0x95, 0xec, 0xe1, 0xa5, - 0xf1, 0x43, 0x41, 0xed, 0x36, 0x94, 0x33, 0xb7, 0xe6, 0x99, 0xe1, 0x08, 0xe5, 0x0c, 0x43, 0x93, - 0x8b, 0x60, 0xe2, 0xb1, 0xeb, 0x25, 0x2f, 0x9e, 0xe6, 0x19, 0x5b, 0x0f, 0x89, 0x05, 0xc5, 0x88, - 0xe1, 0x81, 0x7f, 0xac, 0x2d, 0x34, 0xcf, 0xd8, 0xc9, 0x58, 0x22, 0x18, 0x76, 0xf0, 0x58, 0xd7, - 0xbf, 0x44, 0xa8, 0x61, 0xa3, 0x02, 0xa0, 0xae, 0x23, 0x8e, 0xe8, 0x47, 0x58, 0x7b, 0x96, 0x3c, - 0x6f, 0xe4, 0xbd, 0x59, 0xe6, 0xd3, 0x15, 0x02, 0x7b, 0x91, 0xaa, 0x1d, 0x49, 0xae, 0x83, 0x31, - 0xd9, 0x86, 0x73, 0x11, 0x32, 0x47, 0xb0, 0xbe, 0x93, 0xde, 0xe3, 0x73, 0x93, 0xee, 0xf1, 0x0b, - 0x11, 0xb2, 0x7d, 0xd6, 0xdf, 0xd7, 0xfa, 0xb5, 0x5f, 0x72, 0x00, 0xc3, 0xbb, 0x2d, 0xb9, 0x0a, - 0x15, 0x37, 0x08, 0xe8, 0x91, 0x43, 0x99, 0xdf, 0xf1, 0xc3, 0xa4, 0x5a, 0xcb, 0x4a, 0xf6, 0xa5, - 0x12, 0xc9, 0x5a, 0xd3, 0x2a, 0xfa, 0xba, 0x90, 0x96, 0xaa, 0xc6, 0x3d, 0xd6, 0xb2, 0xa1, 0x52, - 0x96, 0xf7, 0x53, 0xa5, 0x94, 0x7d, 0xaf, 0xc3, 0x59, 0x3c, 0x8e, 0xe8, 0x08, 0x59, 0x2f, 0x68, - 0x69, 0xaa, 0xb6, 0x0e, 0x73, 0x3d, 0xf7, 0xd8, 0x71, 0x3b, 0xfa, 0x21, 0x33, 0x76, 0x75, 0xc5, - 0x9e, 0x7b, 0xbc, 0xdd, 0x41, 0xf2, 0x00, 0x96, 0xb4, 0x7f, 0x8f, 0x61, 0x1b, 0x43, 0xe1, 0xbb, - 0x01, 0x4f, 0xde, 0x38, 0xd5, 0x11, 0x74, 0x83, 0xd2, 0xe0, 0xa9, 0xac, 0x31, 0x7b, 0x51, 0x81, - 0x76, 0x86, 0x98, 0xda, 0xcf, 0x26, 0x90, 0xd1, 0x67, 0x08, 0x79, 0x08, 0x66, 0x1b, 0x03, 0xb7, - 0x9f, 0x1c, 0x9a, 0x1b, 0x33, 0x3d, 0x62, 0xea, 0xbb, 0x12, 0x6a, 0x6b, 0x0b, 0xd2, 0x94, 0xdb, - 0x4a, 0x09, 0x73, 0x66, 0x53, 0xdb, 0x12, 0x6a, 0x6b, 0x0b, 0xd5, 0x1f, 0x72, 0x60, 0x2a, 0xdb, - 0xe4, 0x0a, 0xcc, 0x45, 0xc8, 0x3c, 0x0c, 0x75, 0x71, 0x9a, 0x8d, 0x9c, 0x65, 0xd8, 0xa9, 0x88, - 0xdc, 0x82, 0xf2, 0x81, 0x7f, 0x8c, 0x6d, 0x47, 0xaf, 0x61, 0x52, 0xcd, 0x34, 0xcf, 0xd8, 0xa0, - 0xf4, 0xb5, 0xed, 0x26, 0x2c, 0xc9, 0x0d, 0x0a, 0x75, 0x8a, 0x12, 0x1b, 0xf9, 0xc9, 0x36, 0x16, - 0x33, 0x28, 0x6d, 0xa9, 0x01, 0x90, 0x84, 0x34, 0xdc, 0xdc, 0xda, 0xb8, 0x7f, 0x01, 0x5a, 0xd9, - 0xce, 0xa0, 0x1a, 0x4b, 0x70, 0xae, 0x2b, 0x44, 0xa4, 0xc3, 0x50, 0xfd, 0x53, 0x7d, 0x61, 0x80, - 0xa9, 0xf2, 0x32, 0x21, 0x0d, 0x57, 0xa1, 0xac, 0xa0, 0x5c, 0xb8, 0x22, 0xe6, 0xfa, 0xea, 0x22, - 0xd7, 0x2a, 0x85, 0x7b, 0x4a, 0x26, 0x55, 0x3a, 0x2c, 0xf2, 0x52, 0x95, 0xb4, 0x6d, 0x41, 0x0a, - 0x87, 0x2a, 0x12, 0xb0, 0xee, 0xa0, 0x7a, 0x8f, 0x16, 0x52, 0x15, 0x25, 0xbc, 0xa7, 0x5e, 0x9b, - 0x6f, 0x63, 0x9d, 0x15, 0x00, 0xe5, 0x40, 0x53, 0xc4, 0x7d, 0xa8, 0x64, 0x7f, 0x8c, 0x48, 0xca, - 0x09, 0xe3, 0x5e, 0x0b, 0x99, 0x5a, 0xe7, 0x82, 0xa4, 0x1c, 0x3d, 0x26, 0xe7, 0xa1, 0x10, 0xba, - 0xc9, 0x5b, 0x42, 0xc6, 0xa5, 0x46, 0x8d, 0xa2, 0x3e, 0x44, 0x6a, 0xef, 0xc0, 0x5c, 0xe2, 0x6c, - 0xc8, 0xba, 0xd2, 0x82, 0x91, 0xb0, 0x6e, 0xa3, 0xfe, 0xc7, 0xc9, 0xb2, 0xf1, 0xe7, 0xc9, 0xb2, - 0xf1, 0xe2, 0x64, 0xd9, 0xf8, 0x66, 0x45, 0xc7, 0xec, 0xd3, 0x35, 0x37, 0xf2, 0xd7, 0x5e, 0xf1, - 0xc7, 0xad, 0x55, 0x54, 0x3b, 0xbf, 0xf1, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x09, 0xa2, 0x59, - 0xf4, 0x8f, 0x13, 0x00, 0x00, + // 1617 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x5f, 0x6f, 0xdb, 0x46, + 0x12, 0x0f, 0x25, 0x51, 0xb6, 0x46, 0xb2, 0x63, 0xef, 0x39, 0x0e, 0xa3, 0x0b, 0x7c, 0x8e, 0x72, + 0xb9, 0xf3, 0x21, 0x17, 0x09, 0x67, 0xe7, 0xee, 0x8c, 0x36, 0x71, 0x62, 0xd9, 0x49, 0x94, 0x22, + 0x41, 0x03, 0xda, 0xcd, 0x43, 0x5f, 0x08, 0x8a, 0x5a, 0x4b, 0x4c, 0x28, 0x92, 0xdd, 0x5d, 0x5a, + 0xd6, 0x53, 0x81, 0xa2, 0x5f, 0xa0, 0x45, 0x5f, 0x8b, 0xa2, 0x9f, 0xa4, 0xaf, 0x7d, 0xec, 0x27, + 0x28, 0x82, 0x3c, 0xf6, 0x4b, 0xb4, 0xd8, 0x59, 0x52, 0xa2, 0x2d, 0x5b, 0x7f, 0xda, 0xb4, 0xe8, + 0x1b, 0x77, 0x77, 0x7e, 0xb3, 0xb3, 0xb3, 0xb3, 0xbf, 0x99, 0x21, 0xfc, 0xcb, 0xa7, 0xa2, 0x17, + 0xb0, 0xd7, 0xae, 0xdf, 0xae, 0x1d, 0xff, 0xc7, 0xf6, 0xc2, 0x8e, 0xbd, 0x55, 0x3b, 0x76, 0x99, + 0x88, 0x6c, 0xcf, 0xe2, 0x94, 0x1d, 0xbb, 0x0e, 0xad, 0x86, 0x2c, 0x10, 0x01, 0xb9, 0xe6, 0x72, + 0xe1, 0x06, 0xd5, 0x21, 0xa0, 0x9a, 0x00, 0xca, 0x6b, 0xed, 0x20, 0x68, 0x7b, 0xb4, 0x86, 0x82, + 0xcd, 0xe8, 0xa8, 0xd6, 0x8a, 0x98, 0x2d, 0xdc, 0xc0, 0x57, 0xd0, 0xd1, 0xf5, 0x1e, 0xb3, 0xc3, + 0x90, 0x32, 0xae, 0xd6, 0x2b, 0x3f, 0x69, 0xb0, 0xf8, 0x52, 0x6d, 0x7a, 0xa0, 0xf6, 0x24, 0x2b, + 0xa0, 0x77, 0x02, 0x2e, 0xb8, 0xa1, 0xad, 0x67, 0x37, 0x0a, 0xa6, 0x1a, 0x90, 0x32, 0xcc, 0xb7, + 0x6d, 0x41, 0x7b, 0x76, 0x9f, 0x1b, 0x19, 0x5c, 0x18, 0x8c, 0xc9, 0x36, 0xe4, 0x3a, 0x42, 0x84, + 0x46, 0x76, 0x3d, 0xbb, 0x51, 0xdc, 0xfc, 0x7b, 0xf5, 0x42, 0x73, 0xab, 0x8d, 0xc3, 0xc3, 0x17, + 0x66, 0x10, 0x09, 0x6a, 0x22, 0x82, 0xfc, 0x17, 0xb2, 0xc2, 0x09, 0x8d, 0x1c, 0x02, 0x6f, 0x8e, + 0x01, 0x1e, 0xee, 0xc5, 0x38, 0x29, 0x8f, 0x30, 0x8f, 0x1b, 0xfa, 0x64, 0xd8, 0xb3, 0x83, 0x04, + 0xe6, 0xf1, 0xca, 0x31, 0x14, 0xf7, 0x29, 0x17, 0xae, 0x8f, 0x1e, 0x22, 0x04, 0x72, 0xf2, 0x6c, + 0x86, 0xb6, 0xae, 0x6d, 0x14, 0x4c, 0xfc, 0x26, 0xab, 0x90, 0xe7, 0x51, 0x93, 0x53, 0x61, 0x64, + 0x70, 0x36, 0x1e, 0x91, 0xf7, 0x21, 0x17, 0x06, 0x4c, 0x18, 0xd9, 0x75, 0x6d, 0xa3, 0xb8, 0xf9, + 0xcf, 0x31, 0x5b, 0xbe, 0x08, 0x98, 0x38, 0xa0, 0x1e, 0x75, 0x44, 0xc0, 0x4c, 0x04, 0x55, 0xbe, + 0x05, 0x28, 0x0c, 0x4e, 0x4e, 0x76, 0x41, 0xef, 0xda, 0xc2, 0xe9, 0xa0, 0x7f, 0x8b, 0x9b, 0xb7, + 0x27, 0xb8, 0xeb, 0xb9, 0x94, 0x35, 0xe9, 0x27, 0x11, 0xe5, 0xc2, 0x54, 0x48, 0xf2, 0x08, 0x74, + 0x26, 0x75, 0xe1, 0x4d, 0x14, 0x37, 0x6b, 0xd3, 0x78, 0x3c, 0x75, 0x72, 0x53, 0xa1, 0xc9, 0x1e, + 0xcc, 0x33, 0xda, 0x72, 0x19, 0x75, 0xa6, 0x39, 0x18, 0x6a, 0x8a, 0xc5, 0xcd, 0x01, 0x90, 0x3c, + 0x84, 0x39, 0x46, 0x7b, 0xcc, 0x15, 0xd4, 0xc8, 0xa1, 0x8e, 0x7f, 0x4c, 0xd4, 0x81, 0xd2, 0x66, + 0x02, 0x23, 0xb7, 0x61, 0xb9, 0x47, 0x9b, 0x3c, 0x70, 0x5e, 0x53, 0x61, 0x45, 0x61, 0x9b, 0xd9, + 0x2d, 0x6a, 0xe8, 0xeb, 0xda, 0xc6, 0xbc, 0xb9, 0x34, 0x58, 0xf8, 0x48, 0xcd, 0x93, 0x2d, 0x98, + 0x13, 0x6e, 0x97, 0x06, 0x91, 0x30, 0xf2, 0xb8, 0xdd, 0xb5, 0xaa, 0x0a, 0xf1, 0x6a, 0x12, 0xe2, + 0xd5, 0xfd, 0xf8, 0x09, 0x98, 0x89, 0x24, 0xd9, 0x91, 0x36, 0x0a, 0xe6, 0x52, 0x6e, 0xcc, 0x21, + 0x68, 0x62, 0x8c, 0x52, 0xc1, 0xfa, 0x66, 0x02, 0x22, 0x7b, 0xa0, 0x1f, 0xd9, 0x91, 0x27, 0x8c, + 0x79, 0x44, 0xdf, 0x99, 0x80, 0x7e, 0x2c, 0x65, 0x9f, 0xfa, 0xaf, 0xa8, 0xa3, 0xbc, 0x8d, 0x58, + 0xb2, 0x03, 0xf9, 0xae, 0xcb, 0x58, 0xc0, 0x8c, 0xc2, 0x44, 0x3f, 0xa5, 0x2f, 0x2b, 0x46, 0x91, + 0xc7, 0x50, 0x74, 0x02, 0xc6, 0xad, 0x30, 0xf0, 0x5c, 0xa7, 0x6f, 0x00, 0x2a, 0xb9, 0x35, 0x46, + 0xc9, 0x5e, 0xc0, 0xf8, 0x0b, 0x14, 0x36, 0xc1, 0x19, 0x7c, 0x93, 0x26, 0x2c, 0x4a, 0x0a, 0xf0, + 0x5b, 0x56, 0x87, 0xda, 0x2d, 0xca, 0xb8, 0x51, 0xc4, 0x28, 0xfa, 0xff, 0x34, 0x51, 0x54, 0xdd, + 0x45, 0x68, 0x43, 0x21, 0x1f, 0xf9, 0x82, 0xf5, 0xeb, 0x19, 0x43, 0x33, 0x17, 0xec, 0xf4, 0x3c, + 0xf9, 0x1f, 0x5c, 0x65, 0xb4, 0x1b, 0x1c, 0x53, 0x8b, 0x51, 0x1e, 0x06, 0x3e, 0xa7, 0x83, 0xcd, + 0x4a, 0x48, 0x1e, 0x57, 0xd4, 0xb2, 0x19, 0xaf, 0x26, 0xb8, 0x1e, 0x5c, 0x8d, 0x6d, 0x1b, 0xc1, + 0x2d, 0xa0, 0x91, 0x0f, 0x66, 0x30, 0xf2, 0x8c, 0x72, 0x34, 0xd6, 0xbc, 0x62, 0x9f, 0xb7, 0x46, + 0xee, 0xc2, 0xea, 0xc0, 0x60, 0x7c, 0x6a, 0x83, 0x7d, 0x17, 0xd1, 0xde, 0x95, 0xc4, 0x5e, 0x5c, + 0x4c, 0x50, 0x02, 0x56, 0x07, 0xe6, 0x9e, 0x46, 0x5d, 0x46, 0x6b, 0x77, 0x66, 0xb2, 0x36, 0xad, + 0x5a, 0x19, 0xbb, 0x62, 0x9f, 0xb3, 0x54, 0x7e, 0x08, 0x64, 0xf4, 0x16, 0xc8, 0x12, 0x64, 0x5f, + 0xd3, 0x7e, 0x4c, 0x66, 0xf2, 0x53, 0x12, 0xf9, 0xb1, 0xed, 0x45, 0x34, 0xa6, 0x32, 0x35, 0x78, + 0x2f, 0xb3, 0xad, 0x95, 0x1b, 0x50, 0xbe, 0xd8, 0x45, 0x33, 0x69, 0x7a, 0x02, 0xd7, 0x2e, 0x34, + 0x7f, 0x16, 0x45, 0x95, 0x2f, 0x35, 0x98, 0x4f, 0xd8, 0x5a, 0xbe, 0xb7, 0x34, 0x45, 0xde, 0x19, + 0xcf, 0xf0, 0xc8, 0x90, 0xbb, 0x42, 0x30, 0xb7, 0x19, 0x09, 0xca, 0x13, 0x92, 0xdc, 0x3d, 0x4d, + 0x92, 0xe3, 0x78, 0xf6, 0x02, 0x82, 0xac, 0x7c, 0x21, 0x8d, 0x8a, 0x33, 0x0f, 0xa9, 0x9f, 0x36, + 0xea, 0xdf, 0x63, 0xf4, 0x3d, 0xbb, 0xfb, 0xfb, 0xd9, 0xf4, 0x8d, 0x0e, 0x4b, 0x67, 0xf3, 0x02, + 0xd9, 0x86, 0x6c, 0xc4, 0x5c, 0xf4, 0xf4, 0x78, 0x62, 0x39, 0x10, 0xcc, 0xf5, 0xdb, 0x0a, 0x2b, + 0x21, 0x92, 0x95, 0xb8, 0xd3, 0xa1, 0x5d, 0x75, 0x25, 0xd3, 0x83, 0x63, 0x14, 0xb2, 0x1a, 0x15, + 0x9d, 0xa0, 0x15, 0x67, 0x90, 0xa9, 0xf1, 0x0a, 0x45, 0xf6, 0xa1, 0x60, 0x47, 0xa2, 0x13, 0x30, + 0x57, 0xf4, 0xa7, 0x48, 0x20, 0x69, 0x15, 0x43, 0x20, 0x31, 0x61, 0x2e, 0x79, 0x79, 0xaa, 0x28, + 0xd8, 0x9e, 0x21, 0xab, 0x56, 0x4f, 0xbd, 0xb9, 0x44, 0x91, 0x2c, 0x0f, 0x30, 0xe5, 0xcb, 0x34, + 0xb3, 0xa0, 0x32, 0x39, 0x69, 0xc2, 0x02, 0x0f, 0x22, 0xe6, 0x50, 0xcb, 0xb3, 0x9b, 0xd4, 0x93, + 0xe9, 0x44, 0xee, 0x76, 0x7f, 0x96, 0xdd, 0x0e, 0x50, 0xc1, 0x33, 0xc4, 0xab, 0x2d, 0x4b, 0x3c, + 0x35, 0x75, 0xaa, 0xd2, 0x9a, 0x3f, 0x5d, 0x69, 0x95, 0x9b, 0x50, 0x9a, 0xf0, 0xc2, 0xee, 0xa5, + 0x5f, 0xd8, 0xf4, 0xbe, 0x4c, 0x3d, 0xe9, 0x07, 0xb0, 0x3c, 0x62, 0xe2, 0x4c, 0x4f, 0xf9, 0xe7, + 0x1c, 0xac, 0x9c, 0x57, 0x76, 0x90, 0x06, 0x14, 0x5b, 0xc3, 0xe1, 0x14, 0xd1, 0x9a, 0x0e, 0xff, + 0x34, 0x54, 0x96, 0x69, 0x3d, 0xea, 0xb6, 0x3b, 0xaa, 0x4c, 0xd3, 0xcd, 0x78, 0x34, 0x2e, 0xef, + 0x64, 0xc7, 0xe5, 0x9d, 0xcf, 0xb4, 0x8b, 0x13, 0x8f, 0x2a, 0x4e, 0x3f, 0x98, 0xb1, 0xc6, 0x7a, + 0xa7, 0x39, 0x48, 0x1f, 0x93, 0x83, 0x3e, 0xbd, 0x30, 0x07, 0xe5, 0xd1, 0xf0, 0xa7, 0xbf, 0xd6, + 0xf0, 0x69, 0xd3, 0xd1, 0x9f, 0x30, 0x99, 0x08, 0x58, 0xfa, 0xe3, 0x83, 0xaf, 0xf2, 0x5d, 0x06, + 0x96, 0x47, 0x98, 0x9f, 0xd4, 0xe0, 0x2f, 0x29, 0xb0, 0xc5, 0xa3, 0xa6, 0x4f, 0x07, 0xcd, 0x15, + 0x49, 0x2d, 0x1d, 0xa8, 0x95, 0x01, 0xef, 0x64, 0x52, 0xbc, 0x73, 0x73, 0xc0, 0x3b, 0x0a, 0x8f, + 0x64, 0x5b, 0x48, 0x88, 0x43, 0x21, 0x89, 0x73, 0x96, 0x9c, 0x72, 0x13, 0x8b, 0x90, 0x11, 0x73, + 0x67, 0x62, 0x27, 0xfd, 0x0c, 0x3b, 0xfd, 0x66, 0xe6, 0xf8, 0x31, 0x03, 0x64, 0x34, 0xa1, 0x93, + 0xbf, 0x42, 0x81, 0xfb, 0xae, 0x95, 0xee, 0x4a, 0xe7, 0xb9, 0xef, 0x36, 0xb0, 0x31, 0xbd, 0xc0, + 0xbf, 0x99, 0x89, 0xfe, 0xcd, 0x8e, 0xf3, 0x6f, 0xee, 0x1c, 0xff, 0xb6, 0xce, 0xfa, 0x57, 0x9f, + 0x58, 0x92, 0x8e, 0x1e, 0x66, 0x26, 0x07, 0xe7, 0xdf, 0xb5, 0x83, 0x77, 0xa0, 0x94, 0x6e, 0xe3, + 0x24, 0x36, 0xa9, 0x1b, 0x0a, 0xaa, 0x1e, 0xb8, 0x9e, 0xce, 0xc7, 0x0a, 0x3f, 0x9c, 0xa8, 0xdc, + 0x87, 0x62, 0xaa, 0x85, 0x9b, 0x19, 0x4e, 0xa1, 0x98, 0x4a, 0x3a, 0x64, 0x15, 0x74, 0x7a, 0x62, + 0x3b, 0x71, 0x07, 0xde, 0xb8, 0x64, 0xaa, 0x21, 0x31, 0x20, 0x1f, 0x32, 0x7a, 0xe4, 0x9e, 0x28, + 0x0d, 0x8d, 0x4b, 0x66, 0x3c, 0x96, 0x08, 0x46, 0xdb, 0xf4, 0x44, 0xc5, 0xbf, 0x44, 0xe0, 0xb0, + 0x5e, 0x02, 0xc0, 0x02, 0xcb, 0x12, 0xfd, 0x90, 0x56, 0x5e, 0xc5, 0xed, 0xb6, 0x6c, 0xe2, 0xa4, + 0x3f, 0x6d, 0x21, 0x68, 0x37, 0xc4, 0xd8, 0x91, 0xef, 0x75, 0x30, 0x26, 0xbb, 0x70, 0x39, 0xa4, + 0xcc, 0x12, 0xac, 0x6f, 0x25, 0x4d, 0x65, 0x66, 0x52, 0x53, 0xb9, 0x10, 0x52, 0x76, 0xc8, 0xfa, + 0x87, 0x4a, 0xbe, 0xf2, 0x75, 0x06, 0x60, 0xd8, 0x68, 0x91, 0x1b, 0x50, 0xb2, 0x3d, 0x2f, 0xe8, + 0x59, 0x01, 0x73, 0xdb, 0xae, 0x1f, 0x47, 0x6b, 0x11, 0xe7, 0x3e, 0xc4, 0x29, 0x19, 0x6b, 0x4a, + 0x44, 0x55, 0x40, 0x49, 0xa8, 0x2a, 0xdc, 0x73, 0x35, 0x37, 0x14, 0x3a, 0x9d, 0xbe, 0x94, 0x50, + 0x42, 0xfd, 0xb7, 0x60, 0x91, 0x9e, 0x84, 0xc1, 0x99, 0x5c, 0x55, 0x30, 0x17, 0xd4, 0x6c, 0x22, + 0xb6, 0x09, 0x73, 0x5d, 0xfb, 0xc4, 0xb2, 0xdb, 0xaa, 0xab, 0x1e, 0x7b, 0xba, 0x7c, 0xd7, 0x3e, + 0xd9, 0x6d, 0x53, 0xf2, 0x04, 0x96, 0xd5, 0xfe, 0x0e, 0xa3, 0x2d, 0xea, 0x0b, 0xd7, 0xf6, 0x78, + 0xdc, 0x70, 0x97, 0x47, 0xd0, 0xf5, 0x20, 0xf0, 0x5e, 0xca, 0x18, 0x33, 0x97, 0x10, 0xb4, 0x37, + 0xc4, 0x54, 0xbe, 0xd2, 0x81, 0x8c, 0xf6, 0xc4, 0xe4, 0x29, 0xe8, 0x2d, 0xea, 0xd9, 0xfd, 0x98, + 0x87, 0xb7, 0x66, 0xea, 0xa8, 0xab, 0xfb, 0x12, 0x6a, 0x2a, 0x0d, 0x52, 0x95, 0xdd, 0x4c, 0x08, + 0x73, 0x66, 0x55, 0xbb, 0x12, 0x6a, 0x2a, 0x0d, 0xe5, 0xcf, 0x33, 0xa0, 0xa3, 0x6e, 0x72, 0x1d, + 0xe6, 0x42, 0xca, 0x1c, 0xea, 0xab, 0xe0, 0xd4, 0xb1, 0xc9, 0x4d, 0xa6, 0xc8, 0x3d, 0x28, 0x1e, + 0xb9, 0x27, 0xb4, 0x65, 0xa9, 0x33, 0x4c, 0x8a, 0x99, 0xc6, 0x25, 0x13, 0x50, 0x5e, 0xe9, 0x6e, + 0xc0, 0xb2, 0xbc, 0x20, 0x5f, 0xb9, 0x28, 0xd6, 0x91, 0x9d, 0xac, 0x63, 0x29, 0x85, 0x52, 0x9a, + 0xea, 0x00, 0xb1, 0x49, 0xc3, 0xcb, 0xad, 0x8c, 0xfb, 0x37, 0xa5, 0x84, 0xcd, 0x14, 0xaa, 0xbe, + 0x0c, 0x97, 0x3b, 0x42, 0x84, 0xca, 0x0c, 0x7c, 0x3f, 0xe5, 0x37, 0x1a, 0xe8, 0xe8, 0x97, 0x09, + 0x6e, 0xb8, 0x01, 0x45, 0x84, 0x72, 0x61, 0x8b, 0x88, 0xab, 0x6c, 0x28, 0xcf, 0x2a, 0x27, 0x0f, + 0x70, 0x4e, 0x8a, 0xb4, 0x59, 0xe8, 0x24, 0x22, 0xc9, 0xb3, 0x05, 0x39, 0x39, 0x14, 0x91, 0x80, + 0x4d, 0x8b, 0xe2, 0xcf, 0x91, 0x5c, 0x22, 0x82, 0x93, 0x8f, 0xf0, 0xd7, 0xc7, 0xbb, 0x38, 0x67, + 0x09, 0x00, 0x37, 0x50, 0x14, 0xf1, 0x18, 0x4a, 0xe9, 0x1f, 0x75, 0x92, 0x72, 0xfc, 0xa8, 0xdb, + 0xa4, 0x0c, 0xcf, 0xb9, 0x20, 0x29, 0x47, 0x8d, 0xc9, 0x0a, 0xe4, 0x7c, 0x3b, 0x6e, 0x8f, 0xa4, + 0x5d, 0x38, 0xaa, 0xe7, 0x55, 0x12, 0xa9, 0xfc, 0x0d, 0xe6, 0xe2, 0xcd, 0x86, 0xac, 0x2b, 0x35, + 0x68, 0x31, 0xeb, 0xd6, 0xab, 0xdf, 0xbf, 0x5d, 0xd3, 0x7e, 0x78, 0xbb, 0xa6, 0xbd, 0x79, 0xbb, + 0xa6, 0x7d, 0xbc, 0xae, 0x6c, 0x76, 0x83, 0x9a, 0x1d, 0xba, 0xb5, 0x73, 0xfe, 0x00, 0x37, 0xf3, + 0x78, 0xf3, 0x5b, 0xbf, 0x04, 0x00, 0x00, 0xff, 0xff, 0x43, 0x4f, 0x80, 0x3f, 0x1f, 0x16, 0x00, + 0x00, } diff --git a/networking/v1alpha3/virtual_service.proto b/networking/v1alpha3/virtual_service.proto index cac6e4cd060..5e5b30094ad 100644 --- a/networking/v1alpha3/virtual_service.proto +++ b/networking/v1alpha3/virtual_service.proto @@ -345,7 +345,7 @@ message HTTPRoute { // forwarding target can be one of several versions of a service (see // glossary in beginning of document). Weights associated with the // service version determine the proportion of traffic it receives. - repeated DestinationWeight route = 2; + repeated HTTPRouteDestination route = 2; // A http rule can either redirect or forward (default) traffic. If // traffic passthrough option is specified in the rule, @@ -385,12 +385,24 @@ message HTTPRoute { // for further details about cross origin resource sharing. CorsPolicy cors_policy = 10; - // Additional HTTP headers to add before forwarding a request to the - // destination service. - map append_headers = 11; + // Use of `append_headers` is deprecated. Use the `append_request_headers` + // field instead. + map append_headers = 11 [deprecated=true]; - // Http headers to remove before returning the response to the caller. + // HTTP headers to remove before returning a response to the caller. repeated string remove_response_headers = 12; + + // Additional HTTP headers to add before returning a response to the + // caller. + map append_response_headers = 13; + + // HTTP headers to remove before forwarding forwarding a request to the + // destination service. + repeated string remove_request_headers = 14; + + // Additional HTTP headers to add before forwarding a request to the + // destination service. + map append_request_headers = 15; } // Describes match conditions and actions for routing unterminated TLS @@ -435,7 +447,7 @@ message TLSRoute { // Currently, only one destination is allowed for TLS services. When TCP // weighted routing support is introduced in Envoy, multiple destinations // with weights can be specified. - repeated DestinationWeight route = 2; + repeated RouteDestination route = 2; } // Describes match conditions and actions for routing TCP traffic. The @@ -470,7 +482,7 @@ message TCPRoute { // Currently, only one destination is allowed for TCP services. When TCP // weighted routing support is introduced in Envoy, multiple destinations // with weights can be specified. - repeated DestinationWeight route = 2; + repeated RouteDestination route = 2; } // HttpMatchRequest specifies a set of criterion to be met in order for the @@ -642,7 +654,7 @@ message HTTPMatchRequest { // host: reviews.com // weight: 75 // ``` -message DestinationWeight { +message HTTPRouteDestination { // REQUIRED. Destination uniquely identifies the instances of a service // to which the request/connection should be forwarded to. Destination destination = 1; @@ -653,16 +665,33 @@ message DestinationWeight { // be 100. int32 weight = 2; + // HTTP headers to remove before returning a response to the caller. + repeated string remove_response_headers = 3; + + // Additional HTTP headers to add before returning a response to the + // caller. + map append_response_headers = 4; + + // HTTP headers to remove before forwarding forwarding a request to the + // destination service. + repeated string remove_request_headers = 5; + // Additional HTTP headers to add before forwarding a request to the // destination service. - map append_headers = 3; + map append_request_headers = 6; +} - // Http headers to remove before returning the response to the caller - repeated string remove_response_headers = 4; +// L4 routing rule weighted destination. +message RouteDestination { + // REQUIRED. Destination uniquely identifies the instances of a service + // to which the request/connection should be forwarded to. + Destination destination = 1; - // Additional HTTP headers to add before returning a response to the - // caller. - map append_response_headers = 5; + // REQUIRED. The proportion of traffic to be forwarded to the service + // version. (0-100). Sum of weights across destinations SHOULD BE == 100. + // If there is only one destination in a rule, the weight value is assumed to + // be 100. + int32 weight = 2; } // L4 connection match attributes. Note that L4 connection matching support @@ -765,7 +794,7 @@ message HTTPRedirect { // HTTPRewrite can be used to rewrite specific parts of a HTTP request // before forwarding the request to the destination. Rewrite primitive can -// be used only with the DestinationWeights. The following example +// be used only with HTTPRouteDestination. The following example // demonstrates how to rewrite the URL prefix for api call (/ratings) to // ratings service before making the actual API call. // diff --git a/python/istio_api/networking/v1alpha3/virtual_service_pb2.py b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py index dd840986fd3..9c5e631f0b5 100644 --- a/python/istio_api/networking/v1alpha3/virtual_service_pb2.py +++ b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py @@ -21,7 +21,7 @@ name='networking/v1alpha3/virtual_service.proto', package='istio.networking.v1alpha3', syntax='proto3', - serialized_pb=_b('\n)networking/v1alpha3/virtual_service.proto\x12\x19istio.networking.v1alpha3\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xc9\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\"b\n\x0b\x44\x65stination\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x35\n\x04port\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\"\xd0\x05\n\tHTTPRoute\x12:\n\x05match\x18\x01 \x03(\x0b\x32+.istio.networking.v1alpha3.HTTPMatchRequest\x12;\n\x05route\x18\x02 \x03(\x0b\x32,.istio.networking.v1alpha3.DestinationWeight\x12\x39\n\x08redirect\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.HTTPRedirect\x12\x37\n\x07rewrite\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.HTTPRewrite\x12\x19\n\x11websocket_upgrade\x18\x05 \x01(\x08\x12*\n\x07timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x07retries\x18\x07 \x01(\x0b\x32$.istio.networking.v1alpha3.HTTPRetry\x12<\n\x05\x66\x61ult\x18\x08 \x01(\x0b\x32-.istio.networking.v1alpha3.HTTPFaultInjection\x12\x36\n\x06mirror\x18\t \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12:\n\x0b\x63ors_policy\x18\n \x01(\x0b\x32%.istio.networking.v1alpha3.CorsPolicy\x12O\n\x0e\x61ppend_headers\x18\x0b \x03(\x0b\x32\x37.istio.networking.v1alpha3.HTTPRoute.AppendHeadersEntry\x12\x1f\n\x17remove_response_headers\x18\x0c \x03(\t\x1a\x34\n\x12\x41ppendHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x85\x01\n\x08TLSRoute\x12<\n\x05match\x18\x01 \x03(\x0b\x32-.istio.networking.v1alpha3.TLSMatchAttributes\x12;\n\x05route\x18\x02 \x03(\x0b\x32,.istio.networking.v1alpha3.DestinationWeight\"\x84\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.DestinationWeight\"\xc0\x04\n\x10HTTPMatchRequest\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\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\"\xb8\x03\n\x11\x44\x65stinationWeight\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12W\n\x0e\x61ppend_headers\x18\x03 \x03(\x0b\x32?.istio.networking.v1alpha3.DestinationWeight.AppendHeadersEntry\x12\x1f\n\x17remove_response_headers\x18\x04 \x03(\t\x12h\n\x17\x61ppend_response_headers\x18\x05 \x03(\x0b\x32G.istio.networking.v1alpha3.DestinationWeight.AppendResponseHeadersEntry\x1a\x34\n\x12\x41ppendHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a<\n\x1a\x41ppendResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xf3\x01\n\x11L4MatchAttributes\x12\x1b\n\x13\x64\x65stination_subnets\x18\x01 \x03(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x15\n\rsource_subnet\x18\x03 \x01(\t\x12U\n\rsource_labels\x18\x04 \x03(\x0b\x32>.istio.networking.v1alpha3.L4MatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x05 \x03(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x88\x02\n\x12TLSMatchAttributes\x12\x11\n\tsni_hosts\x18\x01 \x03(\t\x12\x1b\n\x13\x64\x65stination_subnets\x18\x02 \x03(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12\x15\n\rsource_subnet\x18\x04 \x01(\t\x12V\n\rsource_labels\x18\x05 \x03(\x0b\x32?.istio.networking.v1alpha3.TLSMatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x06 \x03(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\".\n\x0cHTTPRedirect\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\"-\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\"Q\n\tHTTPRetry\x12\x10\n\x08\x61ttempts\x18\x01 \x01(\x05\x12\x32\n\x0fper_try_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xcb\x01\n\nCorsPolicy\x12\x14\n\x0c\x61llow_origin\x18\x01 \x03(\t\x12\x15\n\rallow_methods\x18\x02 \x03(\t\x12\x15\n\rallow_headers\x18\x03 \x03(\t\x12\x16\n\x0e\x65xpose_headers\x18\x04 \x03(\t\x12*\n\x07max_age\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x11\x61llow_credentials\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x9a\x04\n\x12HTTPFaultInjection\x12\x42\n\x05\x64\x65lay\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Delay\x12\x42\n\x05\x61\x62ort\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Abort\x1a\xd1\x01\n\x05\x44\x65lay\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x30\n\x0b\x66ixed_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\x11\x65xponential_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x11\n\x0fhttp_delay_type\x1a\xa7\x01\n\x05\x41\x62ort\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x15\n\x0bhttp_status\x18\x02 \x01(\x05H\x00\x12\x15\n\x0bgrpc_status\x18\x03 \x01(\tH\x00\x12\x15\n\x0bhttp2_error\x18\x04 \x01(\tH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x0c\n\nerror_type\"8\n\x0cPortSelector\x12\x10\n\x06number\x18\x01 \x01(\rH\x00\x12\x0e\n\x04name\x18\x02 \x01(\tH\x00\x42\x06\n\x04port\"\x18\n\x07Percent\x12\r\n\x05value\x18\x01 \x01(\x01\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') + serialized_pb=_b('\n)networking/v1alpha3/virtual_service.proto\x12\x19istio.networking.v1alpha3\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xc9\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\"b\n\x0b\x44\x65stination\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x35\n\x04port\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\"\xb4\x08\n\tHTTPRoute\x12:\n\x05match\x18\x01 \x03(\x0b\x32+.istio.networking.v1alpha3.HTTPMatchRequest\x12>\n\x05route\x18\x02 \x03(\x0b\x32/.istio.networking.v1alpha3.HTTPRouteDestination\x12\x39\n\x08redirect\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.HTTPRedirect\x12\x37\n\x07rewrite\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.HTTPRewrite\x12\x19\n\x11websocket_upgrade\x18\x05 \x01(\x08\x12*\n\x07timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x07retries\x18\x07 \x01(\x0b\x32$.istio.networking.v1alpha3.HTTPRetry\x12<\n\x05\x66\x61ult\x18\x08 \x01(\x0b\x32-.istio.networking.v1alpha3.HTTPFaultInjection\x12\x36\n\x06mirror\x18\t \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12:\n\x0b\x63ors_policy\x18\n \x01(\x0b\x32%.istio.networking.v1alpha3.CorsPolicy\x12S\n\x0e\x61ppend_headers\x18\x0b \x03(\x0b\x32\x37.istio.networking.v1alpha3.HTTPRoute.AppendHeadersEntryB\x02\x18\x01\x12\x1f\n\x17remove_response_headers\x18\x0c \x03(\t\x12`\n\x17\x61ppend_response_headers\x18\r \x03(\x0b\x32?.istio.networking.v1alpha3.HTTPRoute.AppendResponseHeadersEntry\x12\x1e\n\x16remove_request_headers\x18\x0e \x03(\t\x12^\n\x16\x61ppend_request_headers\x18\x0f \x03(\x0b\x32>.istio.networking.v1alpha3.HTTPRoute.AppendRequestHeadersEntry\x1a\x34\n\x12\x41ppendHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a<\n\x1a\x41ppendResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a;\n\x19\x41ppendRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x84\x01\n\x08TLSRoute\x12<\n\x05match\x18\x01 \x03(\x0b\x32-.istio.networking.v1alpha3.TLSMatchAttributes\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\x83\x01\n\x08TCPRoute\x12;\n\x05match\x18\x01 \x03(\x0b\x32,.istio.networking.v1alpha3.L4MatchAttributes\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\xc0\x04\n\x10HTTPMatchRequest\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\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\"\xf7\x03\n\x14HTTPRouteDestination\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12\x1f\n\x17remove_response_headers\x18\x03 \x03(\t\x12k\n\x17\x61ppend_response_headers\x18\x04 \x03(\x0b\x32J.istio.networking.v1alpha3.HTTPRouteDestination.AppendResponseHeadersEntry\x12\x1e\n\x16remove_request_headers\x18\x05 \x03(\t\x12i\n\x16\x61ppend_request_headers\x18\x06 \x03(\x0b\x32I.istio.networking.v1alpha3.HTTPRouteDestination.AppendRequestHeadersEntry\x1a<\n\x1a\x41ppendResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a;\n\x19\x41ppendRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"_\n\x10RouteDestination\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x0e\n\x06weight\x18\x02 \x01(\x05\"\xf3\x01\n\x11L4MatchAttributes\x12\x1b\n\x13\x64\x65stination_subnets\x18\x01 \x03(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x15\n\rsource_subnet\x18\x03 \x01(\t\x12U\n\rsource_labels\x18\x04 \x03(\x0b\x32>.istio.networking.v1alpha3.L4MatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x05 \x03(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x88\x02\n\x12TLSMatchAttributes\x12\x11\n\tsni_hosts\x18\x01 \x03(\t\x12\x1b\n\x13\x64\x65stination_subnets\x18\x02 \x03(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12\x15\n\rsource_subnet\x18\x04 \x01(\t\x12V\n\rsource_labels\x18\x05 \x03(\x0b\x32?.istio.networking.v1alpha3.TLSMatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x06 \x03(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\".\n\x0cHTTPRedirect\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\"-\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\"Q\n\tHTTPRetry\x12\x10\n\x08\x61ttempts\x18\x01 \x01(\x05\x12\x32\n\x0fper_try_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xcb\x01\n\nCorsPolicy\x12\x14\n\x0c\x61llow_origin\x18\x01 \x03(\t\x12\x15\n\rallow_methods\x18\x02 \x03(\t\x12\x15\n\rallow_headers\x18\x03 \x03(\t\x12\x16\n\x0e\x65xpose_headers\x18\x04 \x03(\t\x12*\n\x07max_age\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x11\x61llow_credentials\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x9a\x04\n\x12HTTPFaultInjection\x12\x42\n\x05\x64\x65lay\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Delay\x12\x42\n\x05\x61\x62ort\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Abort\x1a\xd1\x01\n\x05\x44\x65lay\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x30\n\x0b\x66ixed_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\x11\x65xponential_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x11\n\x0fhttp_delay_type\x1a\xa7\x01\n\x05\x41\x62ort\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x15\n\x0bhttp_status\x18\x02 \x01(\x05H\x00\x12\x15\n\x0bgrpc_status\x18\x03 \x01(\tH\x00\x12\x15\n\x0bhttp2_error\x18\x04 \x01(\tH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x0c\n\nerror_type\"8\n\x0cPortSelector\x12\x10\n\x06number\x18\x01 \x01(\rH\x00\x12\x0e\n\x04name\x18\x02 \x01(\tH\x00\x42\x06\n\x04port\"\x18\n\x07Percent\x12\r\n\x05value\x18\x01 \x01(\x01\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') , dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) @@ -165,8 +165,82 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1109, - serialized_end=1161, + serialized_start=1342, + serialized_end=1394, +) + +_HTTPROUTE_APPENDRESPONSEHEADERSENTRY = _descriptor.Descriptor( + name='AppendResponseHeadersEntry', + full_name='istio.networking.v1alpha3.HTTPRoute.AppendResponseHeadersEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='istio.networking.v1alpha3.HTTPRoute.AppendResponseHeadersEntry.key', 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, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='istio.networking.v1alpha3.HTTPRoute.AppendResponseHeadersEntry.value', 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, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1396, + serialized_end=1456, +) + +_HTTPROUTE_APPENDREQUESTHEADERSENTRY = _descriptor.Descriptor( + name='AppendRequestHeadersEntry', + full_name='istio.networking.v1alpha3.HTTPRoute.AppendRequestHeadersEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='istio.networking.v1alpha3.HTTPRoute.AppendRequestHeadersEntry.key', 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, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='istio.networking.v1alpha3.HTTPRoute.AppendRequestHeadersEntry.value', 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, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1458, + serialized_end=1517, ) _HTTPROUTE = _descriptor.Descriptor( @@ -252,7 +326,7 @@ has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), + options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR), _descriptor.FieldDescriptor( name='remove_response_headers', full_name='istio.networking.v1alpha3.HTTPRoute.remove_response_headers', index=11, number=12, type=9, cpp_type=9, label=3, @@ -260,10 +334,31 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='append_response_headers', full_name='istio.networking.v1alpha3.HTTPRoute.append_response_headers', index=12, + number=13, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='remove_request_headers', full_name='istio.networking.v1alpha3.HTTPRoute.remove_request_headers', index=13, + number=14, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='append_request_headers', full_name='istio.networking.v1alpha3.HTTPRoute.append_request_headers', index=14, + number=15, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), ], extensions=[ ], - nested_types=[_HTTPROUTE_APPENDHEADERSENTRY, ], + nested_types=[_HTTPROUTE_APPENDHEADERSENTRY, _HTTPROUTE_APPENDRESPONSEHEADERSENTRY, _HTTPROUTE_APPENDREQUESTHEADERSENTRY, ], enum_types=[ ], options=None, @@ -273,7 +368,7 @@ oneofs=[ ], serialized_start=441, - serialized_end=1161, + serialized_end=1517, ) @@ -310,8 +405,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1164, - serialized_end=1297, + serialized_start=1520, + serialized_end=1652, ) @@ -348,8 +443,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1300, - serialized_end=1432, + serialized_start=1655, + serialized_end=1786, ) @@ -386,8 +481,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1872, - serialized_end=1958, + serialized_start=2226, + serialized_end=2312, ) _HTTPMATCHREQUEST_SOURCELABELSENTRY = _descriptor.Descriptor( @@ -423,8 +518,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1960, - serialized_end=2011, + serialized_start=2314, + serialized_end=2365, ) _HTTPMATCHREQUEST = _descriptor.Descriptor( @@ -502,27 +597,27 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1435, - serialized_end=2011, + serialized_start=1789, + serialized_end=2365, ) -_DESTINATIONWEIGHT_APPENDHEADERSENTRY = _descriptor.Descriptor( - name='AppendHeadersEntry', - full_name='istio.networking.v1alpha3.DestinationWeight.AppendHeadersEntry', +_HTTPROUTEDESTINATION_APPENDRESPONSEHEADERSENTRY = _descriptor.Descriptor( + name='AppendResponseHeadersEntry', + full_name='istio.networking.v1alpha3.HTTPRouteDestination.AppendResponseHeadersEntry', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='istio.networking.v1alpha3.DestinationWeight.AppendHeadersEntry.key', index=0, + name='key', full_name='istio.networking.v1alpha3.HTTPRouteDestination.AppendResponseHeadersEntry.key', 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, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='value', full_name='istio.networking.v1alpha3.DestinationWeight.AppendHeadersEntry.value', index=1, + name='value', full_name='istio.networking.v1alpha3.HTTPRouteDestination.AppendResponseHeadersEntry.value', 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, @@ -540,26 +635,26 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1109, - serialized_end=1161, + serialized_start=1396, + serialized_end=1456, ) -_DESTINATIONWEIGHT_APPENDRESPONSEHEADERSENTRY = _descriptor.Descriptor( - name='AppendResponseHeadersEntry', - full_name='istio.networking.v1alpha3.DestinationWeight.AppendResponseHeadersEntry', +_HTTPROUTEDESTINATION_APPENDREQUESTHEADERSENTRY = _descriptor.Descriptor( + name='AppendRequestHeadersEntry', + full_name='istio.networking.v1alpha3.HTTPRouteDestination.AppendRequestHeadersEntry', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='istio.networking.v1alpha3.DestinationWeight.AppendResponseHeadersEntry.key', index=0, + name='key', full_name='istio.networking.v1alpha3.HTTPRouteDestination.AppendRequestHeadersEntry.key', 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, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='value', full_name='istio.networking.v1alpha3.DestinationWeight.AppendResponseHeadersEntry.value', index=1, + name='value', full_name='istio.networking.v1alpha3.HTTPRouteDestination.AppendRequestHeadersEntry.value', 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, @@ -577,48 +672,55 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2394, - serialized_end=2454, + serialized_start=1458, + serialized_end=1517, ) -_DESTINATIONWEIGHT = _descriptor.Descriptor( - name='DestinationWeight', - full_name='istio.networking.v1alpha3.DestinationWeight', +_HTTPROUTEDESTINATION = _descriptor.Descriptor( + name='HTTPRouteDestination', + full_name='istio.networking.v1alpha3.HTTPRouteDestination', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='destination', full_name='istio.networking.v1alpha3.DestinationWeight.destination', index=0, + name='destination', full_name='istio.networking.v1alpha3.HTTPRouteDestination.destination', index=0, number=1, 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, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='weight', full_name='istio.networking.v1alpha3.DestinationWeight.weight', index=1, + name='weight', full_name='istio.networking.v1alpha3.HTTPRouteDestination.weight', index=1, number=2, type=5, cpp_type=1, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='append_headers', full_name='istio.networking.v1alpha3.DestinationWeight.append_headers', index=2, - number=3, type=11, cpp_type=10, label=3, + name='remove_response_headers', full_name='istio.networking.v1alpha3.HTTPRouteDestination.remove_response_headers', index=2, + number=3, type=9, cpp_type=9, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='remove_response_headers', full_name='istio.networking.v1alpha3.DestinationWeight.remove_response_headers', index=3, - number=4, type=9, cpp_type=9, label=3, + name='append_response_headers', full_name='istio.networking.v1alpha3.HTTPRouteDestination.append_response_headers', index=3, + number=4, 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, options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='append_response_headers', full_name='istio.networking.v1alpha3.DestinationWeight.append_response_headers', index=4, - number=5, type=11, cpp_type=10, label=3, + name='remove_request_headers', full_name='istio.networking.v1alpha3.HTTPRouteDestination.remove_request_headers', index=4, + number=5, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='append_request_headers', full_name='istio.networking.v1alpha3.HTTPRouteDestination.append_request_headers', index=5, + number=6, 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, @@ -626,7 +728,7 @@ ], extensions=[ ], - nested_types=[_DESTINATIONWEIGHT_APPENDHEADERSENTRY, _DESTINATIONWEIGHT_APPENDRESPONSEHEADERSENTRY, ], + nested_types=[_HTTPROUTEDESTINATION_APPENDRESPONSEHEADERSENTRY, _HTTPROUTEDESTINATION_APPENDREQUESTHEADERSENTRY, ], enum_types=[ ], options=None, @@ -635,8 +737,46 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2014, - serialized_end=2454, + serialized_start=2368, + serialized_end=2871, +) + + +_ROUTEDESTINATION = _descriptor.Descriptor( + name='RouteDestination', + full_name='istio.networking.v1alpha3.RouteDestination', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='destination', full_name='istio.networking.v1alpha3.RouteDestination.destination', index=0, + number=1, 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, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='weight', full_name='istio.networking.v1alpha3.RouteDestination.weight', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2873, + serialized_end=2968, ) @@ -673,8 +813,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1960, - serialized_end=2011, + serialized_start=2314, + serialized_end=2365, ) _L4MATCHATTRIBUTES = _descriptor.Descriptor( @@ -731,8 +871,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2457, - serialized_end=2700, + serialized_start=2971, + serialized_end=3214, ) @@ -769,8 +909,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1960, - serialized_end=2011, + serialized_start=2314, + serialized_end=2365, ) _TLSMATCHATTRIBUTES = _descriptor.Descriptor( @@ -834,8 +974,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2703, - serialized_end=2967, + serialized_start=3217, + serialized_end=3481, ) @@ -872,8 +1012,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2969, - serialized_end=3015, + serialized_start=3483, + serialized_end=3529, ) @@ -910,8 +1050,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3017, - serialized_end=3062, + serialized_start=3531, + serialized_end=3576, ) @@ -958,8 +1098,8 @@ name='match_type', full_name='istio.networking.v1alpha3.StringMatch.match_type', index=0, containing_type=None, fields=[]), ], - serialized_start=3064, - serialized_end=3143, + serialized_start=3578, + serialized_end=3657, ) @@ -996,8 +1136,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3145, - serialized_end=3226, + serialized_start=3659, + serialized_end=3740, ) @@ -1062,8 +1202,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3229, - serialized_end=3432, + serialized_start=3743, + serialized_end=3946, ) @@ -1117,8 +1257,8 @@ name='http_delay_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Delay.http_delay_type', index=0, containing_type=None, fields=[]), ], - serialized_start=3594, - serialized_end=3803, + serialized_start=4108, + serialized_end=4317, ) _HTTPFAULTINJECTION_ABORT = _descriptor.Descriptor( @@ -1178,8 +1318,8 @@ name='error_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Abort.error_type', index=0, containing_type=None, fields=[]), ], - serialized_start=3806, - serialized_end=3973, + serialized_start=4320, + serialized_end=4487, ) _HTTPFAULTINJECTION = _descriptor.Descriptor( @@ -1215,8 +1355,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3435, - serialized_end=3973, + serialized_start=3949, + serialized_end=4487, ) @@ -1256,8 +1396,8 @@ name='port', full_name='istio.networking.v1alpha3.PortSelector.port', index=0, containing_type=None, fields=[]), ], - serialized_start=3975, - serialized_end=4031, + serialized_start=4489, + serialized_end=4545, ) @@ -1287,8 +1427,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4033, - serialized_end=4057, + serialized_start=4547, + serialized_end=4571, ) _VIRTUALSERVICE.fields_by_name['http'].message_type = _HTTPROUTE @@ -1296,8 +1436,10 @@ _VIRTUALSERVICE.fields_by_name['tcp'].message_type = _TCPROUTE _DESTINATION.fields_by_name['port'].message_type = _PORTSELECTOR _HTTPROUTE_APPENDHEADERSENTRY.containing_type = _HTTPROUTE +_HTTPROUTE_APPENDRESPONSEHEADERSENTRY.containing_type = _HTTPROUTE +_HTTPROUTE_APPENDREQUESTHEADERSENTRY.containing_type = _HTTPROUTE _HTTPROUTE.fields_by_name['match'].message_type = _HTTPMATCHREQUEST -_HTTPROUTE.fields_by_name['route'].message_type = _DESTINATIONWEIGHT +_HTTPROUTE.fields_by_name['route'].message_type = _HTTPROUTEDESTINATION _HTTPROUTE.fields_by_name['redirect'].message_type = _HTTPREDIRECT _HTTPROUTE.fields_by_name['rewrite'].message_type = _HTTPREWRITE _HTTPROUTE.fields_by_name['timeout'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION @@ -1306,10 +1448,12 @@ _HTTPROUTE.fields_by_name['mirror'].message_type = _DESTINATION _HTTPROUTE.fields_by_name['cors_policy'].message_type = _CORSPOLICY _HTTPROUTE.fields_by_name['append_headers'].message_type = _HTTPROUTE_APPENDHEADERSENTRY +_HTTPROUTE.fields_by_name['append_response_headers'].message_type = _HTTPROUTE_APPENDRESPONSEHEADERSENTRY +_HTTPROUTE.fields_by_name['append_request_headers'].message_type = _HTTPROUTE_APPENDREQUESTHEADERSENTRY _TLSROUTE.fields_by_name['match'].message_type = _TLSMATCHATTRIBUTES -_TLSROUTE.fields_by_name['route'].message_type = _DESTINATIONWEIGHT +_TLSROUTE.fields_by_name['route'].message_type = _ROUTEDESTINATION _TCPROUTE.fields_by_name['match'].message_type = _L4MATCHATTRIBUTES -_TCPROUTE.fields_by_name['route'].message_type = _DESTINATIONWEIGHT +_TCPROUTE.fields_by_name['route'].message_type = _ROUTEDESTINATION _HTTPMATCHREQUEST_HEADERSENTRY.fields_by_name['value'].message_type = _STRINGMATCH _HTTPMATCHREQUEST_HEADERSENTRY.containing_type = _HTTPMATCHREQUEST _HTTPMATCHREQUEST_SOURCELABELSENTRY.containing_type = _HTTPMATCHREQUEST @@ -1319,11 +1463,12 @@ _HTTPMATCHREQUEST.fields_by_name['authority'].message_type = _STRINGMATCH _HTTPMATCHREQUEST.fields_by_name['headers'].message_type = _HTTPMATCHREQUEST_HEADERSENTRY _HTTPMATCHREQUEST.fields_by_name['source_labels'].message_type = _HTTPMATCHREQUEST_SOURCELABELSENTRY -_DESTINATIONWEIGHT_APPENDHEADERSENTRY.containing_type = _DESTINATIONWEIGHT -_DESTINATIONWEIGHT_APPENDRESPONSEHEADERSENTRY.containing_type = _DESTINATIONWEIGHT -_DESTINATIONWEIGHT.fields_by_name['destination'].message_type = _DESTINATION -_DESTINATIONWEIGHT.fields_by_name['append_headers'].message_type = _DESTINATIONWEIGHT_APPENDHEADERSENTRY -_DESTINATIONWEIGHT.fields_by_name['append_response_headers'].message_type = _DESTINATIONWEIGHT_APPENDRESPONSEHEADERSENTRY +_HTTPROUTEDESTINATION_APPENDRESPONSEHEADERSENTRY.containing_type = _HTTPROUTEDESTINATION +_HTTPROUTEDESTINATION_APPENDREQUESTHEADERSENTRY.containing_type = _HTTPROUTEDESTINATION +_HTTPROUTEDESTINATION.fields_by_name['destination'].message_type = _DESTINATION +_HTTPROUTEDESTINATION.fields_by_name['append_response_headers'].message_type = _HTTPROUTEDESTINATION_APPENDRESPONSEHEADERSENTRY +_HTTPROUTEDESTINATION.fields_by_name['append_request_headers'].message_type = _HTTPROUTEDESTINATION_APPENDREQUESTHEADERSENTRY +_ROUTEDESTINATION.fields_by_name['destination'].message_type = _DESTINATION _L4MATCHATTRIBUTES_SOURCELABELSENTRY.containing_type = _L4MATCHATTRIBUTES _L4MATCHATTRIBUTES.fields_by_name['source_labels'].message_type = _L4MATCHATTRIBUTES_SOURCELABELSENTRY _TLSMATCHATTRIBUTES_SOURCELABELSENTRY.containing_type = _TLSMATCHATTRIBUTES @@ -1375,7 +1520,8 @@ DESCRIPTOR.message_types_by_name['TLSRoute'] = _TLSROUTE DESCRIPTOR.message_types_by_name['TCPRoute'] = _TCPROUTE DESCRIPTOR.message_types_by_name['HTTPMatchRequest'] = _HTTPMATCHREQUEST -DESCRIPTOR.message_types_by_name['DestinationWeight'] = _DESTINATIONWEIGHT +DESCRIPTOR.message_types_by_name['HTTPRouteDestination'] = _HTTPROUTEDESTINATION +DESCRIPTOR.message_types_by_name['RouteDestination'] = _ROUTEDESTINATION DESCRIPTOR.message_types_by_name['L4MatchAttributes'] = _L4MATCHATTRIBUTES DESCRIPTOR.message_types_by_name['TLSMatchAttributes'] = _TLSMATCHATTRIBUTES DESCRIPTOR.message_types_by_name['HTTPRedirect'] = _HTTPREDIRECT @@ -1410,12 +1556,28 @@ # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.HTTPRoute.AppendHeadersEntry) )) , + + AppendResponseHeadersEntry = _reflection.GeneratedProtocolMessageType('AppendResponseHeadersEntry', (_message.Message,), dict( + DESCRIPTOR = _HTTPROUTE_APPENDRESPONSEHEADERSENTRY, + __module__ = 'networking.v1alpha3.virtual_service_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.HTTPRoute.AppendResponseHeadersEntry) + )) + , + + AppendRequestHeadersEntry = _reflection.GeneratedProtocolMessageType('AppendRequestHeadersEntry', (_message.Message,), dict( + DESCRIPTOR = _HTTPROUTE_APPENDREQUESTHEADERSENTRY, + __module__ = 'networking.v1alpha3.virtual_service_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.HTTPRoute.AppendRequestHeadersEntry) + )) + , DESCRIPTOR = _HTTPROUTE, __module__ = 'networking.v1alpha3.virtual_service_pb2' # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.HTTPRoute) )) _sym_db.RegisterMessage(HTTPRoute) _sym_db.RegisterMessage(HTTPRoute.AppendHeadersEntry) +_sym_db.RegisterMessage(HTTPRoute.AppendResponseHeadersEntry) +_sym_db.RegisterMessage(HTTPRoute.AppendRequestHeadersEntry) TLSRoute = _reflection.GeneratedProtocolMessageType('TLSRoute', (_message.Message,), dict( DESCRIPTOR = _TLSROUTE, @@ -1454,28 +1616,35 @@ _sym_db.RegisterMessage(HTTPMatchRequest.HeadersEntry) _sym_db.RegisterMessage(HTTPMatchRequest.SourceLabelsEntry) -DestinationWeight = _reflection.GeneratedProtocolMessageType('DestinationWeight', (_message.Message,), dict( +HTTPRouteDestination = _reflection.GeneratedProtocolMessageType('HTTPRouteDestination', (_message.Message,), dict( - AppendHeadersEntry = _reflection.GeneratedProtocolMessageType('AppendHeadersEntry', (_message.Message,), dict( - DESCRIPTOR = _DESTINATIONWEIGHT_APPENDHEADERSENTRY, + AppendResponseHeadersEntry = _reflection.GeneratedProtocolMessageType('AppendResponseHeadersEntry', (_message.Message,), dict( + DESCRIPTOR = _HTTPROUTEDESTINATION_APPENDRESPONSEHEADERSENTRY, __module__ = 'networking.v1alpha3.virtual_service_pb2' - # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.DestinationWeight.AppendHeadersEntry) + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.HTTPRouteDestination.AppendResponseHeadersEntry) )) , - AppendResponseHeadersEntry = _reflection.GeneratedProtocolMessageType('AppendResponseHeadersEntry', (_message.Message,), dict( - DESCRIPTOR = _DESTINATIONWEIGHT_APPENDRESPONSEHEADERSENTRY, + AppendRequestHeadersEntry = _reflection.GeneratedProtocolMessageType('AppendRequestHeadersEntry', (_message.Message,), dict( + DESCRIPTOR = _HTTPROUTEDESTINATION_APPENDREQUESTHEADERSENTRY, __module__ = 'networking.v1alpha3.virtual_service_pb2' - # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.DestinationWeight.AppendResponseHeadersEntry) + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.HTTPRouteDestination.AppendRequestHeadersEntry) )) , - DESCRIPTOR = _DESTINATIONWEIGHT, + DESCRIPTOR = _HTTPROUTEDESTINATION, + __module__ = 'networking.v1alpha3.virtual_service_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.HTTPRouteDestination) + )) +_sym_db.RegisterMessage(HTTPRouteDestination) +_sym_db.RegisterMessage(HTTPRouteDestination.AppendResponseHeadersEntry) +_sym_db.RegisterMessage(HTTPRouteDestination.AppendRequestHeadersEntry) + +RouteDestination = _reflection.GeneratedProtocolMessageType('RouteDestination', (_message.Message,), dict( + DESCRIPTOR = _ROUTEDESTINATION, __module__ = 'networking.v1alpha3.virtual_service_pb2' - # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.DestinationWeight) + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.RouteDestination) )) -_sym_db.RegisterMessage(DestinationWeight) -_sym_db.RegisterMessage(DestinationWeight.AppendHeadersEntry) -_sym_db.RegisterMessage(DestinationWeight.AppendResponseHeadersEntry) +_sym_db.RegisterMessage(RouteDestination) L4MatchAttributes = _reflection.GeneratedProtocolMessageType('L4MatchAttributes', (_message.Message,), dict( @@ -1584,14 +1753,20 @@ DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z istio.io/api/networking/v1alpha3')) _HTTPROUTE_APPENDHEADERSENTRY.has_options = True _HTTPROUTE_APPENDHEADERSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) +_HTTPROUTE_APPENDRESPONSEHEADERSENTRY.has_options = True +_HTTPROUTE_APPENDRESPONSEHEADERSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) +_HTTPROUTE_APPENDREQUESTHEADERSENTRY.has_options = True +_HTTPROUTE_APPENDREQUESTHEADERSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) +_HTTPROUTE.fields_by_name['append_headers'].has_options = True +_HTTPROUTE.fields_by_name['append_headers']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) _HTTPMATCHREQUEST_HEADERSENTRY.has_options = True _HTTPMATCHREQUEST_HEADERSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) _HTTPMATCHREQUEST_SOURCELABELSENTRY.has_options = True _HTTPMATCHREQUEST_SOURCELABELSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) -_DESTINATIONWEIGHT_APPENDHEADERSENTRY.has_options = True -_DESTINATIONWEIGHT_APPENDHEADERSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) -_DESTINATIONWEIGHT_APPENDRESPONSEHEADERSENTRY.has_options = True -_DESTINATIONWEIGHT_APPENDRESPONSEHEADERSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) +_HTTPROUTEDESTINATION_APPENDRESPONSEHEADERSENTRY.has_options = True +_HTTPROUTEDESTINATION_APPENDRESPONSEHEADERSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) +_HTTPROUTEDESTINATION_APPENDREQUESTHEADERSENTRY.has_options = True +_HTTPROUTEDESTINATION_APPENDREQUESTHEADERSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) _L4MATCHATTRIBUTES_SOURCELABELSENTRY.has_options = True _L4MATCHATTRIBUTES_SOURCELABELSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) _TLSMATCHATTRIBUTES_SOURCELABELSENTRY.has_options = True