From 96d74ee7cf81d21bae29f44feebdbce27a4df561 Mon Sep 17 00:00:00 2001
From: Frank Budinsky Configuration affecting traffic routing. Here are a few terms useful to define
in the context of traffic routing.
One or more named sets that represent individual versions of a service. Traffic policies can be overridden at subset level.
- - - - - -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
-
-
-| Field | -Type | -Description | -|
|---|---|---|---|
destination |
-Destination |
-
- REQUIRED. Destination uniquely identifies the instances of a service -to which the request/connection should be forwarded to. - - |
-|
weight |
-int32 |
-
- 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. - - |
-|
appendHeaders |
-map<string, string> |
-
- Additional HTTP headers to add before forwarding a request to the -destination service. - - |
-|
removeResponseHeaders |
-string[] |
-
- Http headers to remove before returning the response to the caller - - |
-|
appendResponseHeaders |
-map<string, string> |
-
- Additional HTTP headers to add before returning a response to the -caller. - |
|
route |
-DestinationWeight[] |
+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,12 +1745,12 @@ for further details about cross origin resource sharing. |
appendHeaders |
map<string, string> |
- Additional HTTP headers to add before forwarding a request to the -destination service. +Use of |
removeResponseHeaders |
string[] |
- Http headers to remove before returning the response to the caller. +HTTP headers to remove before returning a response to the caller. + + |
+
+
appendResponseHeaders |
+map<string, string> |
+
+ Additional HTTP headers to add before returning a response to the +caller. + + |
+|
removeRequestHeaders |
+string[] |
+
+ HTTP headers to remove before forwarding forwarding a request to the +destination service. + + |
+|
appendRequestHeaders |
+map<string, string> |
+
+ Additional HTTP headers to add before forwarding a request to the +destination service. + + |
+
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
+
+
+| Field | +Type | +Description | +
|---|---|---|
destination |
+Destination |
+
+ REQUIRED. Destination uniquely identifies the instances of a service +to which the request/connection should be forwarded to. + + |
+
weight |
+int32 |
+
+ 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 a response to the caller. + + |
+
appendResponseHeaders |
+map<string, string> |
+
+ Additional HTTP headers to add before returning a response to the +caller. + + |
+
removeRequestHeaders |
+string[] |
+
+ HTTP headers to remove before forwarding forwarding a request to the +destination service. + + |
+
appendRequestHeaders |
+map<string, string> |
+
+ Additional HTTP headers to add before forwarding a request to the +destination service. |
Valid port number + |
+
+
+
L4 routing rule weighted destination.
+ +| Field | +Type | +Description | +|
|---|---|---|---|
destination |
+Destination |
+
+ REQUIRED. Destination uniquely identifies the instances of a service +to which the request/connection should be forwarded to. + + |
+|
weight |
+int32 |
+
+ 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. + |
|
route |
-DestinationWeight[] |
+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 @@ is matched if any one of the match blocks succeed. |
route |
-DestinationWeight[] |
+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 b01d911a..8e26b26a 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"`
+ // 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 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.
- 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.
- RemoveResponseHeaders []string `protobuf:"bytes,12,rep,name=remove_response_headers,json=removeResponseHeaders" json:"remove_response_headers,omitempty"`
+ 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 {
- if m != nil {
- return m.AppendHeaders
- }
- return nil
-}
-
-func (m *DestinationWeight) GetRemoveResponseHeaders() []string {
+func (m *HTTPRouteDestination) GetRemoveResponseHeaders() []string {
if m != nil {
return m.RemoveResponseHeaders
}
return nil
}
-func (m *DestinationWeight) GetAppendResponseHeaders() map[string]string {
+func (m *HTTPRouteDestination) GetAppendResponseHeaders() map[string]string {
if m != nil {
return m.AppendResponseHeaders
}
return nil
}
+func (m *HTTPRouteDestination) GetRemoveRequestHeaders() []string {
+ if m != nil {
+ 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,26 +2635,9 @@ 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 {
- dAtA[i] = 0x1a
- i++
- v := m.AppendHeaders[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.RemoveResponseHeaders) > 0 {
for _, s := range m.RemoveResponseHeaders {
- dAtA[i] = 0x22
+ dAtA[i] = 0x1a
i++
l = len(s)
for l >= 1<<7 {
@@ -2546,7 +2652,7 @@ func (m *DestinationWeight) MarshalTo(dAtA []byte) (int, error) {
}
if len(m.AppendResponseHeaders) > 0 {
for k, _ := range m.AppendResponseHeaders {
- dAtA[i] = 0x2a
+ dAtA[i] = 0x22
i++
v := m.AppendResponseHeaders[k]
mapSize := 1 + len(k) + sovVirtualService(uint64(len(k))) + 1 + len(v) + sovVirtualService(uint64(len(v)))
@@ -2561,6 +2667,71 @@ func (m *DestinationWeight) MarshalTo(dAtA []byte) (int, error) {
i += copy(dAtA[i:], v)
}
}
+ if len(m.RemoveRequestHeaders) > 0 {
+ for _, s := range m.RemoveRequestHeaders {
+ dAtA[i] = 0x2a
+ 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] = 0x32
+ 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
+}
+
+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
}
@@ -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,14 +3621,6 @@ 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 {
- _ = 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 {
l = len(s)
@@ -3450,6 +3635,33 @@ func (m *DestinationWeight) Size() (n int) {
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
+}
+
+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
}
@@ -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,6 +4805,271 @@ func (m *HTTPRoute) Unmarshal(dAtA []byte) error {
}
m.RemoveResponseHeaders = append(m.RemoveResponseHeaders, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
+ case 13:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AppendResponseHeaders", 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.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:])
@@ -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:
@@ -5391,124 +5868,6 @@ func (m *DestinationWeight) Unmarshal(dAtA []byte) error {
}
}
case 3:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field AppendHeaders", 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.AppendHeaders == nil {
- m.AppendHeaders = 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.AppendHeaders[mapkey] = mapvalue
- iNdEx = postIndex
- case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field RemoveResponseHeaders", wireType)
}
@@ -5537,7 +5896,7 @@ func (m *DestinationWeight) Unmarshal(dAtA []byte) error {
}
m.RemoveResponseHeaders = append(m.RemoveResponseHeaders, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
- case 5:
+ case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field AppendResponseHeaders", wireType)
}
@@ -5655,6 +6014,255 @@ func (m *DestinationWeight) Unmarshal(dAtA []byte) error {
}
m.AppendResponseHeaders[mapkey] = mapvalue
iNdEx = postIndex
+ case 5:
+ 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 6:
+ 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 *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:])
@@ -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 cac6e4cd..5e5b3009 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;
+ // Use of `append_headers` is deprecated. Use the `append_request_headers`
+ // field instead.
+ map |