diff --git a/networking/v1alpha3/destination_rule.pb.go b/networking/v1alpha3/destination_rule.pb.go index f7d392d8a5..0eb5af0c0b 100644 --- a/networking/v1alpha3/destination_rule.pb.go +++ b/networking/v1alpha3/destination_rule.pb.go @@ -27,6 +27,7 @@ VirtualService Destination HTTPRoute + Headers TLSRoute TCPRoute HTTPMatchRequest diff --git a/networking/v1alpha3/istio.networking.v1alpha3.pb.html b/networking/v1alpha3/istio.networking.v1alpha3.pb.html index 40618387f8..c6cc9e88ae 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: 53 +number_of_entries: 55 ---

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

@@ -1819,43 +1819,52 @@

HTTPRoute

appendHeaders map<string, string> -

Use of append_headers is deprecated. Use the append_request_headers +

Use of append_headers is deprecated. Use the headers field instead.

- + removeResponseHeaders string[] -

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

+

Use of remove_response_header is deprecated. Use the headers +field instead.

- + appendResponseHeaders map<string, string> -

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

+

Use of append_response_headers is deprecated. Use the headers +field instead.

- + removeRequestHeaders string[] -

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

+

Use of remove_request_headers is deprecated. Use the headers +field instead.

- + appendRequestHeaders map<string, string> -

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

+

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

+ + + + +headers +Headers + +

Header manipulation rules

@@ -1957,38 +1966,122 @@

HTTPRouteDestination

- + removeResponseHeaders string[] -

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

+

Use of remove_response_header is deprecated. Use the headers +field instead.

- + appendResponseHeaders map<string, string> -

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

+

Use of append_response_headers is deprecated. Use the headers +field instead.

- + removeRequestHeaders string[] -

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

+

Use of remove_request_headers is deprecated. Use the headers +field instead.

- + appendRequestHeaders map<string, string> -

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

+

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

+ + + + +headers +Headers + +

Header manipulation rules

+ + + + + + +

Headers

+
+

Header manipulation rules

+ + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
requestHeaders.HeaderOperations +

Header manipulation rules to apply before forwarding a request +to the destination service

+ +
responseHeaders.HeaderOperations +

Header manipulation rules to apply before returning a response +to the caller

+ +
+
+

Headers.HeaderOperations

+
+

HeaderOperations Describes the header manipulations to apply

+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/networking/v1alpha3/virtual_service.pb.go b/networking/v1alpha3/virtual_service.pb.go index c7c80c8ead..26eca07a01 100644 --- a/networking/v1alpha3/virtual_service.pb.go +++ b/networking/v1alpha3/virtual_service.pb.go @@ -398,20 +398,23 @@ 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` + // Use of `append_headers` is deprecated. Use the `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. + // Use of `remove_response_header` is deprecated. Use the `headers` + // field instead. 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. + // Use of `append_response_headers` is deprecated. Use the `headers` + // field instead. 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 a request to the - // destination service. + // Use of `remove_request_headers` is deprecated. Use the `headers` + // field instead. 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. + // Use of `append_request_headers` is deprecated. Use the `headers` + // field instead. 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"` + // Header manipulation rules + Headers *Headers `protobuf:"bytes,16,opt,name=headers" json:"headers,omitempty"` } func (m *HTTPRoute) Reset() { *m = HTTPRoute{} } @@ -524,6 +527,81 @@ func (m *HTTPRoute) GetAppendRequestHeaders() map[string]string { return nil } +func (m *HTTPRoute) GetHeaders() *Headers { + if m != nil { + return m.Headers + } + return nil +} + +// Header manipulation rules +type Headers struct { + // Header manipulation rules to apply before forwarding a request + // to the destination service + Request *Headers_HeaderOperations `protobuf:"bytes,1,opt,name=request" json:"request,omitempty"` + // Header manipulation rules to apply before returning a response + // to the caller + Response *Headers_HeaderOperations `protobuf:"bytes,2,opt,name=response" json:"response,omitempty"` +} + +func (m *Headers) Reset() { *m = Headers{} } +func (m *Headers) String() string { return proto.CompactTextString(m) } +func (*Headers) ProtoMessage() {} +func (*Headers) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{3} } + +func (m *Headers) GetRequest() *Headers_HeaderOperations { + if m != nil { + return m.Request + } + return nil +} + +func (m *Headers) GetResponse() *Headers_HeaderOperations { + if m != nil { + return m.Response + } + return nil +} + +// HeaderOperations Describes the header manipulations to apply +type Headers_HeaderOperations struct { + // Overwrite the headers specified by key with the given values + Set map[string]string `protobuf:"bytes,1,rep,name=set" json:"set,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Apppend the given values to the the headers specified by keys + // (will create a comma seperated list of values) + Add map[string]string `protobuf:"bytes,2,rep,name=add" json:"add,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Remove a the specified headers + Remove []string `protobuf:"bytes,3,rep,name=remove" json:"remove,omitempty"` +} + +func (m *Headers_HeaderOperations) Reset() { *m = Headers_HeaderOperations{} } +func (m *Headers_HeaderOperations) String() string { return proto.CompactTextString(m) } +func (*Headers_HeaderOperations) ProtoMessage() {} +func (*Headers_HeaderOperations) Descriptor() ([]byte, []int) { + return fileDescriptorVirtualService, []int{3, 0} +} + +func (m *Headers_HeaderOperations) GetSet() map[string]string { + if m != nil { + return m.Set + } + return nil +} + +func (m *Headers_HeaderOperations) GetAdd() map[string]string { + if m != nil { + return m.Add + } + return nil +} + +func (m *Headers_HeaderOperations) GetRemove() []string { + if m != nil { + return m.Remove + } + 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 @@ -568,7 +646,7 @@ type TLSRoute struct { func (m *TLSRoute) Reset() { *m = TLSRoute{} } func (m *TLSRoute) String() string { return proto.CompactTextString(m) } func (*TLSRoute) ProtoMessage() {} -func (*TLSRoute) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{3} } +func (*TLSRoute) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{4} } func (m *TLSRoute) GetMatch() []*TLSMatchAttributes { if m != nil { @@ -618,7 +696,7 @@ type TCPRoute struct { func (m *TCPRoute) Reset() { *m = TCPRoute{} } func (m *TCPRoute) String() string { return proto.CompactTextString(m) } func (*TCPRoute) ProtoMessage() {} -func (*TCPRoute) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{4} } +func (*TCPRoute) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{5} } func (m *TCPRoute) GetMatch() []*L4MatchAttributes { if m != nil { @@ -733,7 +811,7 @@ type HTTPMatchRequest struct { func (m *HTTPMatchRequest) Reset() { *m = HTTPMatchRequest{} } func (m *HTTPMatchRequest) String() string { return proto.CompactTextString(m) } func (*HTTPMatchRequest) ProtoMessage() {} -func (*HTTPMatchRequest) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{5} } +func (*HTTPMatchRequest) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{6} } func (m *HTTPMatchRequest) GetUri() *StringMatch { if m != nil { @@ -866,24 +944,27 @@ type HTTPRouteDestination 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"` - // HTTP headers to remove before returning a response to the caller. + // Use of `remove_response_header` is deprecated. Use the `headers` + // field instead. 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. + // Use of `append_response_headers` is deprecated. Use the `headers` + // field instead. 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 a request to the - // destination service. + // Use of `remove_request_headers` is deprecated. Use the `headers` + // field instead. 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. + // Use of `append_request_headers` is deprecated. Use the `headers` + // field instead. 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"` + // Header manipulation rules + Headers *Headers `protobuf:"bytes,7,opt,name=headers" json:"headers,omitempty"` } 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} + return fileDescriptorVirtualService, []int{7} } func (m *HTTPRouteDestination) GetDestination() *Destination { @@ -928,6 +1009,13 @@ func (m *HTTPRouteDestination) GetAppendRequestHeaders() map[string]string { return nil } +func (m *HTTPRouteDestination) GetHeaders() *Headers { + if m != nil { + return m.Headers + } + return nil +} + // L4 routing rule weighted destination. type RouteDestination struct { // REQUIRED. Destination uniquely identifies the instances of a service @@ -942,7 +1030,7 @@ type RouteDestination struct { 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 (*RouteDestination) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{8} } func (m *RouteDestination) GetDestination() *Destination { if m != nil { @@ -986,7 +1074,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{8} } +func (*L4MatchAttributes) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{9} } func (m *L4MatchAttributes) GetDestinationSubnets() []string { if m != nil { @@ -1053,10 +1141,12 @@ type TLSMatchAttributes struct { Gateways []string `protobuf:"bytes,6,rep,name=gateways" json:"gateways,omitempty"` } -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{9} } +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{10} +} func (m *TLSMatchAttributes) GetSniHosts() []string { if m != nil { @@ -1136,7 +1226,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{10} } +func (*HTTPRedirect) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{11} } func (m *HTTPRedirect) GetUri() string { if m != nil { @@ -1190,7 +1280,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{11} } +func (*HTTPRewrite) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{12} } func (m *HTTPRewrite) GetUri() string { if m != nil { @@ -1219,7 +1309,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{12} } +func (*StringMatch) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{13} } type isStringMatch_MatchType interface { isStringMatch_MatchType() @@ -1391,7 +1481,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{13} } +func (*HTTPRetry) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{14} } func (m *HTTPRetry) GetAttempts() int32 { if m != nil { @@ -1474,7 +1564,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{14} } +func (*CorsPolicy) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{15} } func (m *CorsPolicy) GetAllowOrigin() []string { if m != nil { @@ -1539,7 +1629,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{15} + return fileDescriptorVirtualService, []int{16} } func (m *HTTPFaultInjection) GetDelay() *HTTPFaultInjection_Delay { @@ -1604,7 +1694,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{15, 0} + return fileDescriptorVirtualService, []int{16, 0} } type isHTTPFaultInjection_Delay_HttpDelayType interface { @@ -1778,7 +1868,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{15, 1} + return fileDescriptorVirtualService, []int{16, 1} } type isHTTPFaultInjection_Abort_ErrorType interface { @@ -1935,7 +2025,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{16} } +func (*PortSelector) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{17} } type isPortSelector_Port interface { isPortSelector_Port() @@ -2047,7 +2137,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{17} } +func (*Percent) Descriptor() ([]byte, []int) { return fileDescriptorVirtualService, []int{18} } func (m *Percent) GetValue() float64 { if m != nil { @@ -2060,6 +2150,8 @@ func init() { proto.RegisterType((*VirtualService)(nil), "istio.networking.v1alpha3.VirtualService") proto.RegisterType((*Destination)(nil), "istio.networking.v1alpha3.Destination") proto.RegisterType((*HTTPRoute)(nil), "istio.networking.v1alpha3.HTTPRoute") + proto.RegisterType((*Headers)(nil), "istio.networking.v1alpha3.Headers") + proto.RegisterType((*Headers_HeaderOperations)(nil), "istio.networking.v1alpha3.Headers.HeaderOperations") proto.RegisterType((*TLSRoute)(nil), "istio.networking.v1alpha3.TLSRoute") proto.RegisterType((*TCPRoute)(nil), "istio.networking.v1alpha3.TCPRoute") proto.RegisterType((*HTTPMatchRequest)(nil), "istio.networking.v1alpha3.HTTPMatchRequest") @@ -2402,6 +2494,123 @@ func (m *HTTPRoute) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], v) } } + if m.Headers != nil { + dAtA[i] = 0x82 + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintVirtualService(dAtA, i, uint64(m.Headers.Size())) + n9, err := m.Headers.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n9 + } + return i, nil +} + +func (m *Headers) 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 *Headers) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Request != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintVirtualService(dAtA, i, uint64(m.Request.Size())) + n10, err := m.Request.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n10 + } + if m.Response != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintVirtualService(dAtA, i, uint64(m.Response.Size())) + n11, err := m.Response.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n11 + } + return i, nil +} + +func (m *Headers_HeaderOperations) 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 *Headers_HeaderOperations) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Set) > 0 { + for k, _ := range m.Set { + dAtA[i] = 0xa + i++ + v := m.Set[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.Add) > 0 { + for k, _ := range m.Add { + dAtA[i] = 0x12 + i++ + v := m.Add[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.Remove) > 0 { + for _, s := range m.Remove { + dAtA[i] = 0x1a + 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) + } + } return i, nil } @@ -2508,41 +2717,41 @@ func (m *HTTPMatchRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.Uri.Size())) - n9, err := m.Uri.MarshalTo(dAtA[i:]) + n12, err := m.Uri.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n9 + i += n12 } if m.Scheme != nil { dAtA[i] = 0x12 i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.Scheme.Size())) - n10, err := m.Scheme.MarshalTo(dAtA[i:]) + n13, err := m.Scheme.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n10 + i += n13 } if m.Method != nil { dAtA[i] = 0x1a i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.Method.Size())) - n11, err := m.Method.MarshalTo(dAtA[i:]) + n14, err := m.Method.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n11 + i += n14 } if m.Authority != nil { dAtA[i] = 0x22 i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.Authority.Size())) - n12, err := m.Authority.MarshalTo(dAtA[i:]) + n15, err := m.Authority.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n12 + i += n15 } if len(m.Headers) > 0 { for k, _ := range m.Headers { @@ -2564,11 +2773,11 @@ func (m *HTTPMatchRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintVirtualService(dAtA, i, uint64(v.Size())) - n13, err := v.MarshalTo(dAtA[i:]) + n16, err := v.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n13 + i += n16 } } } @@ -2631,11 +2840,11 @@ func (m *HTTPRouteDestination) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.Destination.Size())) - n14, err := m.Destination.MarshalTo(dAtA[i:]) + n17, err := m.Destination.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n14 + i += n17 } if m.Weight != 0 { dAtA[i] = 0x10 @@ -2706,6 +2915,16 @@ func (m *HTTPRouteDestination) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], v) } } + if m.Headers != nil { + dAtA[i] = 0x3a + i++ + i = encodeVarintVirtualService(dAtA, i, uint64(m.Headers.Size())) + n18, err := m.Headers.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n18 + } return i, nil } @@ -2728,11 +2947,11 @@ func (m *RouteDestination) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.Destination.Size())) - n15, err := m.Destination.MarshalTo(dAtA[i:]) + n19, err := m.Destination.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n15 + i += n19 } if m.Weight != 0 { dAtA[i] = 0x10 @@ -2985,11 +3204,11 @@ func (m *StringMatch) MarshalTo(dAtA []byte) (int, error) { var l int _ = l if m.MatchType != nil { - nn16, err := m.MatchType.MarshalTo(dAtA[i:]) + nn20, err := m.MatchType.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += nn16 + i += nn20 } return i, nil } @@ -3042,11 +3261,11 @@ func (m *HTTPRetry) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.PerTryTimeout.Size())) - n17, err := m.PerTryTimeout.MarshalTo(dAtA[i:]) + n21, err := m.PerTryTimeout.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n17 + i += n21 } if len(m.RetryOn) > 0 { dAtA[i] = 0x1a @@ -3136,21 +3355,21 @@ func (m *CorsPolicy) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.MaxAge.Size())) - n18, err := m.MaxAge.MarshalTo(dAtA[i:]) + n22, err := m.MaxAge.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n18 + i += n22 } if m.AllowCredentials != nil { dAtA[i] = 0x32 i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.AllowCredentials.Size())) - n19, err := m.AllowCredentials.MarshalTo(dAtA[i:]) + n23, err := m.AllowCredentials.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n19 + i += n23 } return i, nil } @@ -3174,21 +3393,21 @@ func (m *HTTPFaultInjection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.Delay.Size())) - n20, err := m.Delay.MarshalTo(dAtA[i:]) + n24, err := m.Delay.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n20 + i += n24 } if m.Abort != nil { dAtA[i] = 0x12 i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.Abort.Size())) - n21, err := m.Abort.MarshalTo(dAtA[i:]) + n25, err := m.Abort.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n21 + i += n25 } return i, nil } @@ -3214,21 +3433,21 @@ func (m *HTTPFaultInjection_Delay) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintVirtualService(dAtA, i, uint64(m.Percent)) } if m.HttpDelayType != nil { - nn22, err := m.HttpDelayType.MarshalTo(dAtA[i:]) + nn26, err := m.HttpDelayType.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += nn22 + i += nn26 } if m.Percentage != nil { dAtA[i] = 0x2a i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.Percentage.Size())) - n23, err := m.Percentage.MarshalTo(dAtA[i:]) + n27, err := m.Percentage.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n23 + i += n27 } return i, nil } @@ -3239,11 +3458,11 @@ func (m *HTTPFaultInjection_Delay_FixedDelay) MarshalTo(dAtA []byte) (int, error dAtA[i] = 0x12 i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.FixedDelay.Size())) - n24, err := m.FixedDelay.MarshalTo(dAtA[i:]) + n28, err := m.FixedDelay.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n24 + i += n28 } return i, nil } @@ -3253,11 +3472,11 @@ func (m *HTTPFaultInjection_Delay_ExponentialDelay) MarshalTo(dAtA []byte) (int, dAtA[i] = 0x1a i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.ExponentialDelay.Size())) - n25, err := m.ExponentialDelay.MarshalTo(dAtA[i:]) + n29, err := m.ExponentialDelay.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n25 + i += n29 } return i, nil } @@ -3282,21 +3501,21 @@ func (m *HTTPFaultInjection_Abort) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintVirtualService(dAtA, i, uint64(m.Percent)) } if m.ErrorType != nil { - nn26, err := m.ErrorType.MarshalTo(dAtA[i:]) + nn30, err := m.ErrorType.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += nn26 + i += nn30 } if m.Percentage != nil { dAtA[i] = 0x2a i++ i = encodeVarintVirtualService(dAtA, i, uint64(m.Percentage.Size())) - n27, err := m.Percentage.MarshalTo(dAtA[i:]) + n31, err := m.Percentage.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n27 + i += n31 } return i, nil } @@ -3340,11 +3559,11 @@ func (m *PortSelector) MarshalTo(dAtA []byte) (int, error) { var l int _ = l if m.Port != nil { - nn28, err := m.Port.MarshalTo(dAtA[i:]) + nn32, err := m.Port.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += nn28 + i += nn32 } return i, nil } @@ -3533,6 +3752,52 @@ func (m *HTTPRoute) Size() (n int) { n += mapEntrySize + 1 + sovVirtualService(uint64(mapEntrySize)) } } + if m.Headers != nil { + l = m.Headers.Size() + n += 2 + l + sovVirtualService(uint64(l)) + } + return n +} + +func (m *Headers) Size() (n int) { + var l int + _ = l + if m.Request != nil { + l = m.Request.Size() + n += 1 + l + sovVirtualService(uint64(l)) + } + if m.Response != nil { + l = m.Response.Size() + n += 1 + l + sovVirtualService(uint64(l)) + } + return n +} + +func (m *Headers_HeaderOperations) Size() (n int) { + var l int + _ = l + if len(m.Set) > 0 { + for k, v := range m.Set { + _ = 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.Add) > 0 { + for k, v := range m.Add { + _ = 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.Remove) > 0 { + for _, s := range m.Remove { + l = len(s) + n += 1 + l + sovVirtualService(uint64(l)) + } + } return n } @@ -3662,6 +3927,10 @@ func (m *HTTPRouteDestination) Size() (n int) { n += mapEntrySize + 1 + sovVirtualService(uint64(mapEntrySize)) } } + if m.Headers != nil { + l = m.Headers.Size() + n += 1 + l + sovVirtualService(uint64(l)) + } return n } @@ -5087,6 +5356,39 @@ func (m *HTTPRoute) Unmarshal(dAtA []byte) error { } m.AppendRequestHeaders[mapkey] = mapvalue iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Headers", 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.Headers == nil { + m.Headers = &Headers{} + } + if err := m.Headers.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipVirtualService(dAtA[iNdEx:]) @@ -5108,7 +5410,7 @@ func (m *HTTPRoute) Unmarshal(dAtA []byte) error { } return nil } -func (m *TLSRoute) Unmarshal(dAtA []byte) error { +func (m *Headers) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5131,15 +5433,15 @@ func (m *TLSRoute) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TLSRoute: wiretype end group for non-group") + return fmt.Errorf("proto: Headers: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TLSRoute: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Headers: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Match", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Request", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5163,14 +5465,16 @@ func (m *TLSRoute) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Match = append(m.Match, &TLSMatchAttributes{}) - if err := m.Match[len(m.Match)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Request == nil { + m.Request = &Headers_HeaderOperations{} + } + if err := m.Request.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Route", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Response", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5194,8 +5498,437 @@ func (m *TLSRoute) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Route = append(m.Route, &RouteDestination{}) - if err := m.Route[len(m.Route)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Response == nil { + m.Response = &Headers_HeaderOperations{} + } + if err := m.Response.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipVirtualService(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthVirtualService + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Headers_HeaderOperations) 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: HeaderOperations: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HeaderOperations: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Set", 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.Set == nil { + m.Set = 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.Set[mapkey] = mapvalue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Add", 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.Add == nil { + m.Add = 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.Add[mapkey] = mapvalue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Remove", 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.Remove = append(m.Remove, string(dAtA[iNdEx:postIndex])) + 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 { + 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: TLSRoute: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TLSRoute: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Match", 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 + } + m.Match = append(m.Match, &TLSMatchAttributes{}) + if err := m.Match[len(m.Match)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Route", 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 + } + m.Route = append(m.Route, &RouteDestination{}) + if err := m.Route[len(m.Route)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -6178,6 +6911,39 @@ func (m *HTTPRouteDestination) Unmarshal(dAtA []byte) error { } m.AppendRequestHeaders[mapkey] = mapvalue iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Headers", 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.Headers == nil { + m.Headers = &Headers{} + } + if err := m.Headers.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipVirtualService(dAtA[iNdEx:]) @@ -8326,107 +9092,116 @@ func init() { } var fileDescriptorVirtualService = []byte{ - // 1631 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0xdf, 0x6f, 0x1b, 0xc5, - 0x13, 0xef, 0xd9, 0x3e, 0x27, 0x1e, 0x3b, 0x69, 0xb2, 0xdf, 0x34, 0xbd, 0xf8, 0x5b, 0x85, 0xd4, - 0xa5, 0x10, 0x54, 0x6a, 0x8b, 0xa4, 0x40, 0x04, 0x6d, 0xda, 0x38, 0x69, 0xeb, 0xa2, 0x56, 0xad, - 0x2e, 0xa1, 0x0f, 0xbc, 0x58, 0xe7, 0xf3, 0xc6, 0x3e, 0x7a, 0xbe, 0x3d, 0xf6, 0xf6, 0xe2, 0xf8, - 0x09, 0x09, 0xc1, 0x1f, 0x00, 0xe2, 0x15, 0x21, 0xfe, 0x12, 0x5e, 0x79, 0xe4, 0x2f, 0x40, 0x55, - 0x1f, 0xf9, 0x27, 0x40, 0x3b, 0x7b, 0x67, 0x5f, 0xe2, 0xc4, 0x3f, 0xa0, 0x20, 0xde, 0x6e, 0x77, - 0xe7, 0x33, 0x3b, 0x3b, 0x3b, 0xfb, 0x99, 0x99, 0x83, 0x77, 0x3c, 0x2a, 0xba, 0x8c, 0xbf, 0x70, - 0xbc, 0x56, 0xe5, 0xe8, 0x3d, 0xcb, 0xf5, 0xdb, 0xd6, 0x66, 0xe5, 0xc8, 0xe1, 0x22, 0xb4, 0xdc, - 0x7a, 0x40, 0xf9, 0x91, 0x63, 0xd3, 0xb2, 0xcf, 0x99, 0x60, 0x64, 0xc5, 0x09, 0x84, 0xc3, 0xca, - 0x03, 0x40, 0x39, 0x06, 0x14, 0x57, 0x5b, 0x8c, 0xb5, 0x5c, 0x5a, 0x41, 0xc1, 0x46, 0x78, 0x58, - 0x69, 0x86, 0xdc, 0x12, 0x0e, 0xf3, 0x14, 0x74, 0x78, 0xbd, 0xcb, 0x2d, 0xdf, 0xa7, 0x3c, 0x50, - 0xeb, 0xa5, 0xdf, 0x35, 0x98, 0x7f, 0xae, 0x36, 0xdd, 0x57, 0x7b, 0x92, 0x25, 0xd0, 0xdb, 0x2c, - 0x10, 0x81, 0xa1, 0xad, 0xa5, 0xd7, 0x73, 0xa6, 0x1a, 0x90, 0x22, 0xcc, 0xb6, 0x2c, 0x41, 0xbb, - 0x56, 0x2f, 0x30, 0x52, 0xb8, 0xd0, 0x1f, 0x93, 0x2d, 0xc8, 0xb4, 0x85, 0xf0, 0x8d, 0xf4, 0x5a, - 0x7a, 0x3d, 0xbf, 0xf1, 0x66, 0xf9, 0x5c, 0x73, 0xcb, 0xb5, 0x83, 0x83, 0x67, 0x26, 0x0b, 0x05, - 0x35, 0x11, 0x41, 0xde, 0x87, 0xb4, 0xb0, 0x7d, 0x23, 0x83, 0xc0, 0x6b, 0x23, 0x80, 0x07, 0xbb, - 0x11, 0x4e, 0xca, 0x23, 0xcc, 0x0d, 0x0c, 0x7d, 0x3c, 0xec, 0xf1, 0x7e, 0x0c, 0x73, 0x83, 0xd2, - 0x11, 0xe4, 0xf7, 0x68, 0x20, 0x1c, 0x0f, 0x3d, 0x44, 0x08, 0x64, 0xe4, 0xd9, 0x0c, 0x6d, 0x4d, - 0x5b, 0xcf, 0x99, 0xf8, 0x4d, 0x96, 0x21, 0x1b, 0x84, 0x8d, 0x80, 0x0a, 0x23, 0x85, 0xb3, 0xd1, - 0x88, 0x7c, 0x0c, 0x19, 0x9f, 0x71, 0x61, 0xa4, 0xd7, 0xb4, 0xf5, 0xfc, 0xc6, 0xdb, 0x23, 0xb6, - 0x7c, 0xc6, 0xb8, 0xd8, 0xa7, 0x2e, 0xb5, 0x05, 0xe3, 0x26, 0x82, 0x4a, 0x3f, 0x01, 0xe4, 0xfa, - 0x27, 0x27, 0x3b, 0xa0, 0x77, 0x2c, 0x61, 0xb7, 0xd1, 0xbf, 0xf9, 0x8d, 0x1b, 0x63, 0xdc, 0xf5, - 0x44, 0xca, 0x9a, 0xf4, 0x8b, 0x90, 0x06, 0xc2, 0x54, 0x48, 0x72, 0x1f, 0x74, 0x2e, 0x75, 0xe1, - 0x4d, 0xe4, 0x37, 0x2a, 0x93, 0x78, 0x3c, 0x71, 0x72, 0x53, 0xa1, 0xc9, 0x2e, 0xcc, 0x72, 0xda, - 0x74, 0x38, 0xb5, 0x27, 0x39, 0x18, 0x6a, 0x8a, 0xc4, 0xcd, 0x3e, 0x90, 0xdc, 0x83, 0x19, 0x4e, - 0xbb, 0xdc, 0x11, 0xd4, 0xc8, 0xa0, 0x8e, 0xb7, 0xc6, 0xea, 0x40, 0x69, 0x33, 0x86, 0x91, 0x1b, - 0xb0, 0xd8, 0xa5, 0x8d, 0x80, 0xd9, 0x2f, 0xa8, 0xa8, 0x87, 0x7e, 0x8b, 0x5b, 0x4d, 0x6a, 0xe8, - 0x6b, 0xda, 0xfa, 0xac, 0xb9, 0xd0, 0x5f, 0xf8, 0x54, 0xcd, 0x93, 0x4d, 0x98, 0x11, 0x4e, 0x87, - 0xb2, 0x50, 0x18, 0x59, 0xdc, 0x6e, 0xa5, 0xac, 0x42, 0xbc, 0x1c, 0x87, 0x78, 0x79, 0x2f, 0x7a, - 0x02, 0x66, 0x2c, 0x49, 0xb6, 0xa5, 0x8d, 0x82, 0x3b, 0x34, 0x30, 0x66, 0x10, 0x34, 0x36, 0x46, - 0xa9, 0xe0, 0x3d, 0x33, 0x06, 0x91, 0x5d, 0xd0, 0x0f, 0xad, 0xd0, 0x15, 0xc6, 0x2c, 0xa2, 0x6f, - 0x8e, 0x41, 0x3f, 0x90, 0xb2, 0x8f, 0xbc, 0xcf, 0xa9, 0xad, 0xbc, 0x8d, 0x58, 0xb2, 0x0d, 0xd9, - 0x8e, 0xc3, 0x39, 0xe3, 0x46, 0x6e, 0xac, 0x9f, 0x92, 0x97, 0x15, 0xa1, 0xc8, 0x03, 0xc8, 0xdb, - 0x8c, 0x07, 0x75, 0x9f, 0xb9, 0x8e, 0xdd, 0x33, 0x00, 0x95, 0x5c, 0x1f, 0xa1, 0x64, 0x97, 0xf1, - 0xe0, 0x19, 0x0a, 0x9b, 0x60, 0xf7, 0xbf, 0x49, 0x03, 0xe6, 0x25, 0x05, 0x78, 0xcd, 0x7a, 0x9b, - 0x5a, 0x4d, 0xca, 0x03, 0x23, 0x8f, 0x51, 0xf4, 0xe1, 0x24, 0x51, 0x54, 0xde, 0x41, 0x68, 0x4d, - 0x21, 0xef, 0x7b, 0x82, 0xf7, 0xaa, 0x29, 0x43, 0x33, 0xe7, 0xac, 0xe4, 0x3c, 0xf9, 0x00, 0x2e, - 0x73, 0xda, 0x61, 0x47, 0xb4, 0xce, 0x69, 0xe0, 0x33, 0x2f, 0xa0, 0xfd, 0xcd, 0x0a, 0x48, 0x1e, - 0x97, 0xd4, 0xb2, 0x19, 0xad, 0xc6, 0xb8, 0x2e, 0x5c, 0x8e, 0x6c, 0x1b, 0xc2, 0xcd, 0xa1, 0x91, - 0x77, 0xa7, 0x30, 0xf2, 0x94, 0x72, 0x34, 0xd6, 0xbc, 0x64, 0x9d, 0xb5, 0x46, 0x6e, 0xc1, 0x72, - 0xdf, 0x60, 0x7c, 0x6a, 0xfd, 0x7d, 0xe7, 0xd1, 0xde, 0xa5, 0xd8, 0x5e, 0x5c, 0x8c, 0x51, 0x02, - 0x96, 0xfb, 0xe6, 0x9e, 0x44, 0x5d, 0x44, 0x6b, 0xb7, 0xa7, 0xb2, 0x36, 0xa9, 0x5a, 0x19, 0xbb, - 0x64, 0x9d, 0xb1, 0x54, 0xbc, 0x07, 0x64, 0xf8, 0x16, 0xc8, 0x02, 0xa4, 0x5f, 0xd0, 0x5e, 0x44, - 0x66, 0xf2, 0x53, 0x12, 0xf9, 0x91, 0xe5, 0x86, 0x34, 0xa2, 0x32, 0x35, 0xf8, 0x28, 0xb5, 0xa5, - 0x15, 0x6b, 0x50, 0x3c, 0xdf, 0x45, 0x53, 0x69, 0x7a, 0x08, 0x2b, 0xe7, 0x9a, 0x3f, 0x8d, 0xa2, - 0xd2, 0x77, 0x1a, 0xcc, 0xc6, 0x6c, 0x2d, 0xdf, 0x5b, 0x92, 0x22, 0x6f, 0x8e, 0x66, 0x78, 0x64, - 0xc8, 0x1d, 0x21, 0xb8, 0xd3, 0x08, 0x05, 0x0d, 0x62, 0x92, 0xdc, 0x39, 0x49, 0x92, 0xa3, 0x78, - 0xf6, 0x1c, 0x82, 0x2c, 0x7d, 0x2b, 0x8d, 0x8a, 0x32, 0x0f, 0xa9, 0x9e, 0x34, 0xea, 0xdd, 0x11, - 0xfa, 0x1e, 0xdf, 0xfa, 0xe7, 0x6c, 0xfa, 0x51, 0x87, 0x85, 0xd3, 0x79, 0x81, 0x6c, 0x41, 0x3a, - 0xe4, 0x0e, 0x7a, 0x7a, 0x34, 0xb1, 0xec, 0x0b, 0xee, 0x78, 0x2d, 0x85, 0x95, 0x10, 0xc9, 0x4a, - 0x81, 0xdd, 0xa6, 0x1d, 0x75, 0x25, 0x93, 0x83, 0x23, 0x14, 0xb2, 0x1a, 0x15, 0x6d, 0xd6, 0x8c, - 0x32, 0xc8, 0xc4, 0x78, 0x85, 0x22, 0x7b, 0x90, 0xb3, 0x42, 0xd1, 0x66, 0xdc, 0x11, 0xbd, 0x09, - 0x12, 0x48, 0x52, 0xc5, 0x00, 0x48, 0x4c, 0x98, 0x89, 0x5f, 0x9e, 0x2a, 0x0a, 0xb6, 0xa6, 0xc8, - 0xaa, 0xe5, 0x13, 0x6f, 0x2e, 0x56, 0x24, 0xcb, 0x03, 0x4c, 0xf9, 0x32, 0xcd, 0xcc, 0xa9, 0x4c, - 0x4e, 0x1a, 0x30, 0x17, 0xb0, 0x90, 0xdb, 0xb4, 0xee, 0x5a, 0x0d, 0xea, 0xca, 0x74, 0x22, 0x77, - 0xbb, 0x33, 0xcd, 0x6e, 0xfb, 0xa8, 0xe0, 0x31, 0xe2, 0xd5, 0x96, 0x85, 0x20, 0x31, 0x75, 0xa2, - 0xd2, 0x9a, 0x3d, 0x59, 0x69, 0x15, 0x1b, 0x50, 0x18, 0xf3, 0xc2, 0x6e, 0x27, 0x5f, 0xd8, 0xe4, - 0xbe, 0x4c, 0x3c, 0xe9, 0xbb, 0xb0, 0x38, 0x64, 0xe2, 0x54, 0x4f, 0xf9, 0x8f, 0x0c, 0x2c, 0x9d, - 0x55, 0x76, 0x90, 0x1a, 0xe4, 0x9b, 0x83, 0xe1, 0x04, 0xd1, 0x9a, 0x0c, 0xff, 0x24, 0x54, 0x96, - 0x69, 0x5d, 0xea, 0xb4, 0xda, 0xaa, 0x4c, 0xd3, 0xcd, 0x68, 0x34, 0x2a, 0xef, 0xa4, 0x47, 0xe5, - 0x9d, 0xaf, 0xb4, 0xf3, 0x13, 0x8f, 0x2a, 0x4e, 0x3f, 0x99, 0xb2, 0xc6, 0x7a, 0xad, 0x39, 0x48, - 0x1f, 0x91, 0x83, 0xbe, 0x3c, 0x37, 0x07, 0x65, 0xd1, 0xf0, 0x47, 0x7f, 0xd5, 0xf0, 0x49, 0xd3, - 0xd1, 0x7f, 0x30, 0x99, 0x08, 0x58, 0xf8, 0xf7, 0x83, 0xaf, 0xf4, 0x73, 0x0a, 0x16, 0x87, 0x98, - 0x9f, 0x54, 0xe0, 0x7f, 0x09, 0x70, 0x3d, 0x08, 0x1b, 0x1e, 0xed, 0x37, 0x57, 0x24, 0xb1, 0xb4, - 0xaf, 0x56, 0xfa, 0xbc, 0x93, 0x4a, 0xf0, 0xce, 0xb5, 0x3e, 0xef, 0x28, 0x3c, 0x92, 0x6d, 0x2e, - 0x26, 0x0e, 0x85, 0x24, 0xf6, 0x69, 0x72, 0xca, 0x8c, 0x2d, 0x42, 0x86, 0xcc, 0x9d, 0x8a, 0x9d, - 0xf4, 0x53, 0xec, 0xf4, 0xb7, 0x99, 0xe3, 0xb7, 0x14, 0x90, 0xe1, 0x84, 0x4e, 0xfe, 0x0f, 0xb9, - 0xc0, 0x73, 0xea, 0xc9, 0xae, 0x74, 0x36, 0xf0, 0x9c, 0x1a, 0x36, 0xa6, 0xe7, 0xf8, 0x37, 0x35, - 0xd6, 0xbf, 0xe9, 0x51, 0xfe, 0xcd, 0x9c, 0xe1, 0xdf, 0xe6, 0x69, 0xff, 0xea, 0x63, 0x4b, 0xd2, - 0xe1, 0xc3, 0x4c, 0xe5, 0xe0, 0xec, 0xeb, 0x76, 0xf0, 0x36, 0x14, 0x92, 0x6d, 0x9c, 0xc4, 0xc6, - 0x75, 0x43, 0x4e, 0xd5, 0x03, 0x57, 0x92, 0xf9, 0x58, 0xe1, 0x07, 0x13, 0xa5, 0x3b, 0x90, 0x4f, - 0xb4, 0x70, 0x53, 0xc3, 0x29, 0xe4, 0x13, 0x49, 0x87, 0x2c, 0x83, 0x4e, 0x8f, 0x2d, 0x3b, 0xea, - 0xc0, 0x6b, 0x17, 0x4c, 0x35, 0x24, 0x06, 0x64, 0x7d, 0x4e, 0x0f, 0x9d, 0x63, 0xa5, 0xa1, 0x76, - 0xc1, 0x8c, 0xc6, 0x12, 0xc1, 0x69, 0x8b, 0x1e, 0xab, 0xf8, 0x97, 0x08, 0x1c, 0x56, 0x0b, 0x00, - 0x58, 0x60, 0xd5, 0x45, 0xcf, 0xa7, 0xa5, 0x6f, 0xb4, 0xa8, 0xdf, 0x96, 0x5d, 0x9c, 0x74, 0xa8, - 0x25, 0x04, 0xed, 0xf8, 0x18, 0x3c, 0xf2, 0xc1, 0xf6, 0xc7, 0x64, 0x07, 0x2e, 0xfa, 0x94, 0xd7, - 0x05, 0xef, 0xd5, 0xe3, 0xae, 0x32, 0x35, 0xae, 0xab, 0x9c, 0xf3, 0x29, 0x3f, 0xe0, 0xbd, 0x83, - 0xa8, 0xb7, 0x5c, 0x91, 0x4d, 0xb4, 0x54, 0xc0, 0xbc, 0xe8, 0x55, 0x62, 0xdb, 0xd8, 0x7b, 0xea, - 0x95, 0x7e, 0x48, 0x01, 0x0c, 0x9a, 0x30, 0x72, 0x15, 0x0a, 0x96, 0xeb, 0xb2, 0x6e, 0x9d, 0x71, - 0xa7, 0xe5, 0x78, 0x51, 0x24, 0xe7, 0x71, 0xee, 0x29, 0x4e, 0xc9, 0x38, 0x54, 0x22, 0xaa, 0x3a, - 0x8a, 0xc3, 0x58, 0xe1, 0x9e, 0xa8, 0xb9, 0x81, 0xd0, 0xc9, 0xd4, 0xa6, 0x84, 0xe2, 0xb4, 0x70, - 0x1d, 0xe6, 0xe9, 0xb1, 0xcf, 0x4e, 0xe5, 0xb1, 0x9c, 0x39, 0xa7, 0x66, 0x63, 0xb1, 0x0d, 0x98, - 0xe9, 0x58, 0xc7, 0x75, 0xab, 0xa5, 0x3a, 0xee, 0x91, 0x07, 0xcf, 0x76, 0xac, 0xe3, 0x9d, 0x16, - 0x25, 0x0f, 0x61, 0x51, 0xed, 0x6f, 0x73, 0xda, 0xa4, 0x9e, 0x70, 0x2c, 0x37, 0x88, 0x9a, 0xf1, - 0xe2, 0x10, 0xba, 0xca, 0x98, 0xfb, 0x5c, 0xc6, 0x9f, 0xb9, 0x80, 0xa0, 0xdd, 0x01, 0xa6, 0xf4, - 0xbd, 0x0e, 0x64, 0xb8, 0x5f, 0x26, 0x8f, 0x40, 0x6f, 0x52, 0xd7, 0xea, 0x45, 0x1c, 0xbd, 0x39, - 0x55, 0xb7, 0x5d, 0xde, 0x93, 0x50, 0x53, 0x69, 0x90, 0xaa, 0xac, 0x46, 0x4c, 0xa6, 0x53, 0xab, - 0xda, 0x91, 0x50, 0x53, 0x69, 0x28, 0x7e, 0x9d, 0x02, 0x1d, 0x75, 0x93, 0x2b, 0x30, 0xe3, 0x53, - 0x6e, 0x53, 0x4f, 0x05, 0xae, 0x8e, 0x0d, 0x70, 0x3c, 0x45, 0x6e, 0x43, 0xfe, 0xd0, 0x39, 0xa6, - 0xcd, 0xba, 0x3a, 0xc3, 0xb8, 0x70, 0xaa, 0x5d, 0x30, 0x01, 0xe5, 0x95, 0xee, 0x1a, 0x2c, 0xca, - 0x0b, 0xf2, 0x94, 0x8b, 0x22, 0x1d, 0xe9, 0xf1, 0x3a, 0x16, 0x12, 0x28, 0xa5, 0xa9, 0x0a, 0x10, - 0x99, 0x34, 0xb8, 0xdc, 0xd2, 0xa8, 0xff, 0x56, 0x4a, 0xd8, 0x4c, 0xa0, 0xaa, 0x8b, 0x70, 0xb1, - 0x2d, 0x84, 0xaf, 0xcc, 0xc0, 0xb7, 0x55, 0x7c, 0xa9, 0x81, 0x8e, 0x7e, 0x19, 0xe3, 0x86, 0xab, - 0x90, 0x47, 0x68, 0x20, 0x2c, 0x11, 0x06, 0x2a, 0x53, 0xca, 0xb3, 0xca, 0xc9, 0x7d, 0x9c, 0x93, - 0x22, 0x2d, 0xee, 0xdb, 0xb1, 0x48, 0xfc, 0xa4, 0x41, 0x4e, 0x0e, 0x44, 0x24, 0x60, 0xa3, 0x4e, - 0xf1, 0xc7, 0x49, 0x26, 0x16, 0xc1, 0xc9, 0xfb, 0xf8, 0x5b, 0xe4, 0x75, 0x9c, 0xb3, 0x00, 0x80, - 0x1b, 0x28, 0xfa, 0x78, 0x00, 0x85, 0xe4, 0x4f, 0x3c, 0x49, 0x47, 0x5e, 0xd8, 0x69, 0x50, 0x8e, - 0xe7, 0x9c, 0x93, 0x74, 0xa4, 0xc6, 0x64, 0x09, 0x32, 0x9e, 0x15, 0xb5, 0x4e, 0xd2, 0x2e, 0x1c, - 0x55, 0xb3, 0x2a, 0xc1, 0x94, 0xde, 0x80, 0x99, 0x68, 0xb3, 0x01, 0x23, 0x4b, 0x0d, 0x5a, 0xc4, - 0xc8, 0xd5, 0xf2, 0x2f, 0xaf, 0x56, 0xb5, 0x5f, 0x5f, 0xad, 0x6a, 0x2f, 0x5f, 0xad, 0x6a, 0x9f, - 0xad, 0x29, 0x9b, 0x1d, 0x56, 0xb1, 0x7c, 0xa7, 0x72, 0xc6, 0xdf, 0xe1, 0x46, 0x16, 0x6f, 0x7e, - 0xf3, 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x77, 0x6d, 0xd7, 0xd3, 0x3b, 0x16, 0x00, 0x00, + // 1771 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4f, 0x73, 0xdb, 0xc6, + 0x15, 0x37, 0x48, 0x82, 0x7f, 0x1e, 0x29, 0x99, 0xda, 0xca, 0x32, 0xc4, 0x7a, 0x54, 0x99, 0xae, + 0x5b, 0x75, 0x5c, 0x93, 0x53, 0xa9, 0x75, 0x35, 0xae, 0x2c, 0x9b, 0x94, 0x6c, 0xd3, 0x1d, 0xbb, + 0xd2, 0x80, 0xaa, 0x0f, 0xbd, 0x70, 0x40, 0x60, 0x45, 0xa2, 0x06, 0x01, 0x74, 0xb1, 0x90, 0xc8, + 0xe9, 0xb1, 0x4d, 0xee, 0xc9, 0xe4, 0x9a, 0xc9, 0xf7, 0xc8, 0x25, 0xd7, 0x9c, 0x32, 0xf9, 0x04, + 0x19, 0x8f, 0x0f, 0x39, 0xe4, 0x92, 0xaf, 0x90, 0xd9, 0x5d, 0x00, 0x84, 0x44, 0x89, 0x20, 0x15, + 0x27, 0x93, 0x93, 0xb8, 0x8b, 0xf7, 0xfb, 0xbd, 0xb7, 0x0f, 0x6f, 0xdf, 0x7b, 0x78, 0x82, 0x3f, + 0xd8, 0x98, 0x9e, 0x3a, 0xe4, 0x8d, 0x69, 0xf7, 0xea, 0x27, 0x7f, 0xd2, 0x2c, 0xb7, 0xaf, 0x6d, + 0xd5, 0x4f, 0x4c, 0x42, 0x7d, 0xcd, 0xea, 0x78, 0x98, 0x9c, 0x98, 0x3a, 0xae, 0xb9, 0xc4, 0xa1, + 0x0e, 0x5a, 0x35, 0x3d, 0x6a, 0x3a, 0xb5, 0x31, 0xa0, 0x16, 0x02, 0x2a, 0x6b, 0x3d, 0xc7, 0xe9, + 0x59, 0xb8, 0xce, 0x05, 0xbb, 0xfe, 0x71, 0xdd, 0xf0, 0x89, 0x46, 0x4d, 0xc7, 0x16, 0xd0, 0xc9, + 0xe7, 0xa7, 0x44, 0x73, 0x5d, 0x4c, 0x3c, 0xf1, 0xbc, 0xfa, 0x9d, 0x04, 0x8b, 0xaf, 0x85, 0xd2, + 0xb6, 0xd0, 0x89, 0x96, 0x41, 0xee, 0x3b, 0x1e, 0xf5, 0x14, 0x69, 0x3d, 0xbd, 0x51, 0x50, 0xc5, + 0x02, 0x55, 0x20, 0xdf, 0xd3, 0x28, 0x3e, 0xd5, 0x46, 0x9e, 0x92, 0xe2, 0x0f, 0xa2, 0x35, 0xda, + 0x86, 0x4c, 0x9f, 0x52, 0x57, 0x49, 0xaf, 0xa7, 0x37, 0x8a, 0x9b, 0xbf, 0xad, 0x5d, 0x6a, 0x6e, + 0xad, 0x75, 0x74, 0x74, 0xa8, 0x3a, 0x3e, 0xc5, 0x2a, 0x47, 0xa0, 0xbf, 0x40, 0x9a, 0xea, 0xae, + 0x92, 0xe1, 0xc0, 0x3b, 0x53, 0x80, 0x47, 0x7b, 0x01, 0x8e, 0xc9, 0x73, 0x98, 0xe5, 0x29, 0x72, + 0x32, 0xec, 0x65, 0x3b, 0x84, 0x59, 0x5e, 0xf5, 0x04, 0x8a, 0xfb, 0xd8, 0xa3, 0xa6, 0xcd, 0x3d, + 0x84, 0x10, 0x64, 0xd8, 0xd9, 0x14, 0x69, 0x5d, 0xda, 0x28, 0xa8, 0xfc, 0x37, 0x5a, 0x81, 0xac, + 0xe7, 0x77, 0x3d, 0x4c, 0x95, 0x14, 0xdf, 0x0d, 0x56, 0xe8, 0x6f, 0x90, 0x71, 0x1d, 0x42, 0x95, + 0xf4, 0xba, 0xb4, 0x51, 0xdc, 0xfc, 0xfd, 0x14, 0x95, 0x87, 0x0e, 0xa1, 0x6d, 0x6c, 0x61, 0x9d, + 0x3a, 0x44, 0xe5, 0xa0, 0xea, 0xf7, 0x00, 0x85, 0xe8, 0xe4, 0xa8, 0x01, 0xf2, 0x40, 0xa3, 0x7a, + 0x9f, 0xfb, 0xb7, 0xb8, 0x79, 0x2f, 0xc1, 0x5d, 0xaf, 0x98, 0xac, 0x8a, 0xff, 0xe3, 0x63, 0x8f, + 0xaa, 0x02, 0x89, 0x9e, 0x82, 0x4c, 0x18, 0x17, 0x7f, 0x13, 0xc5, 0xcd, 0xfa, 0x2c, 0x1e, 0x8f, + 0x9d, 0x5c, 0x15, 0x68, 0xb4, 0x07, 0x79, 0x82, 0x0d, 0x93, 0x60, 0x7d, 0x96, 0x83, 0x71, 0xa6, + 0x40, 0x5c, 0x8d, 0x80, 0xe8, 0x09, 0xe4, 0x08, 0x3e, 0x25, 0x26, 0xc5, 0x4a, 0x86, 0x73, 0xfc, + 0x2e, 0x91, 0x83, 0x4b, 0xab, 0x21, 0x0c, 0xdd, 0x83, 0xa5, 0x53, 0xdc, 0xf5, 0x1c, 0xfd, 0x0d, + 0xa6, 0x1d, 0xdf, 0xed, 0x11, 0xcd, 0xc0, 0x8a, 0xbc, 0x2e, 0x6d, 0xe4, 0xd5, 0x72, 0xf4, 0xe0, + 0x9f, 0x62, 0x1f, 0x6d, 0x41, 0x8e, 0x9a, 0x03, 0xec, 0xf8, 0x54, 0xc9, 0x72, 0x75, 0xab, 0x35, + 0x11, 0xe2, 0xb5, 0x30, 0xc4, 0x6b, 0xfb, 0xc1, 0x15, 0x50, 0x43, 0x49, 0xb4, 0xcb, 0x6c, 0xa4, + 0xc4, 0xc4, 0x9e, 0x92, 0xe3, 0xa0, 0xc4, 0x18, 0xc5, 0x94, 0x8c, 0xd4, 0x10, 0x84, 0xf6, 0x40, + 0x3e, 0xd6, 0x7c, 0x8b, 0x2a, 0x79, 0x8e, 0xbe, 0x9f, 0x80, 0x7e, 0xc6, 0x64, 0x5f, 0xd8, 0xff, + 0xc6, 0xba, 0xf0, 0x36, 0xc7, 0xa2, 0x5d, 0xc8, 0x0e, 0x4c, 0x42, 0x1c, 0xa2, 0x14, 0x12, 0xfd, + 0x14, 0x7f, 0x59, 0x01, 0x0a, 0x3d, 0x83, 0xa2, 0xee, 0x10, 0xaf, 0xe3, 0x3a, 0x96, 0xa9, 0x8f, + 0x14, 0xe0, 0x24, 0x77, 0xa7, 0x90, 0xec, 0x39, 0xc4, 0x3b, 0xe4, 0xc2, 0x2a, 0xe8, 0xd1, 0x6f, + 0xd4, 0x85, 0x45, 0x96, 0x02, 0x6c, 0xa3, 0xd3, 0xc7, 0x9a, 0x81, 0x89, 0xa7, 0x14, 0x79, 0x14, + 0xfd, 0x75, 0x96, 0x28, 0xaa, 0x35, 0x38, 0xb4, 0x25, 0x90, 0x4f, 0x6d, 0x4a, 0x46, 0xcd, 0x94, + 0x22, 0xa9, 0x0b, 0x5a, 0x7c, 0x1f, 0x3d, 0x84, 0x9b, 0x04, 0x0f, 0x9c, 0x13, 0xdc, 0x21, 0xd8, + 0x73, 0x1d, 0xdb, 0xc3, 0x91, 0xb2, 0x12, 0x4b, 0x1e, 0x1c, 0x73, 0x43, 0x88, 0xa8, 0x81, 0x44, + 0x88, 0xfd, 0x2f, 0xdc, 0x0c, 0xec, 0x9b, 0xc0, 0x2e, 0x70, 0x43, 0x1f, 0xcf, 0x61, 0xe8, 0x39, + 0xf2, 0xb1, 0xc1, 0x37, 0xb4, 0x8b, 0x9e, 0xa3, 0x6d, 0x58, 0x89, 0x0c, 0xe7, 0x57, 0x2e, 0xd2, + 0xbd, 0x18, 0xd9, 0xbd, 0x1c, 0xda, 0xcd, 0x05, 0x42, 0xe4, 0x10, 0x56, 0x22, 0xb3, 0xcf, 0x22, + 0xaf, 0x73, 0xab, 0x77, 0xe7, 0xb2, 0x3a, 0x4e, 0x3d, 0x36, 0x7a, 0x59, 0xbb, 0xe0, 0x31, 0xda, + 0x81, 0x5c, 0xa8, 0xaa, 0xcc, 0x83, 0xa2, 0x3a, 0x4d, 0x95, 0x90, 0x54, 0x43, 0x48, 0xe5, 0x09, + 0xa0, 0xc9, 0x77, 0x8a, 0xca, 0x90, 0x7e, 0x83, 0x47, 0x41, 0x6a, 0x64, 0x3f, 0x59, 0x59, 0x38, + 0xd1, 0x2c, 0x1f, 0x07, 0x89, 0x51, 0x2c, 0x1e, 0xa6, 0xb6, 0xa5, 0x4a, 0x0b, 0x2a, 0x97, 0x3b, + 0x7b, 0x2e, 0xa6, 0xe7, 0xb0, 0x7a, 0xa9, 0x03, 0xe6, 0x21, 0xaa, 0x7e, 0x9b, 0x86, 0x5c, 0xe8, + 0x9e, 0x57, 0xec, 0xf2, 0x73, 0x3a, 0x8e, 0x2d, 0x6e, 0x6e, 0x25, 0xbb, 0x27, 0xf8, 0x7b, 0xe0, + 0x62, 0x91, 0x4a, 0x3c, 0x35, 0xe4, 0x40, 0x07, 0x2c, 0x69, 0x8a, 0x73, 0x72, 0xbd, 0x57, 0xe4, + 0x8b, 0x48, 0x2a, 0x9f, 0xa7, 0xa0, 0x7c, 0xfe, 0x31, 0xfa, 0x07, 0xa4, 0x59, 0x11, 0x12, 0x25, + 0x62, 0xe7, 0x0a, 0x0a, 0x6a, 0x6d, 0x4c, 0xb9, 0xdf, 0x54, 0x46, 0xc4, 0xf8, 0x34, 0xc3, 0x08, + 0xea, 0xc5, 0x95, 0xf8, 0x1a, 0x86, 0x11, 0xf0, 0x69, 0x86, 0xc1, 0xea, 0xa4, 0xb8, 0x05, 0xbc, + 0xe8, 0x17, 0xd4, 0x60, 0x55, 0x79, 0x00, 0xf9, 0x50, 0xf1, 0x5c, 0x6f, 0xfe, 0x01, 0xe4, 0x43, + 0x05, 0x73, 0xbd, 0xe8, 0x8f, 0x25, 0xc8, 0x87, 0x45, 0x9e, 0xa5, 0xe9, 0x78, 0x65, 0xbd, 0x3f, + 0xbd, 0x31, 0xe0, 0x85, 0xb5, 0x41, 0x29, 0x31, 0xbb, 0x3e, 0xc5, 0x5e, 0x58, 0x5b, 0x1b, 0x67, + 0x6b, 0xeb, 0xb4, 0xf2, 0x7c, 0x49, 0x5d, 0xad, 0x7e, 0xc4, 0x8c, 0x0a, 0x1a, 0x16, 0xd4, 0x3c, + 0x6b, 0xd4, 0x1f, 0xa7, 0xf0, 0xbd, 0xfc, 0xf3, 0x4f, 0x67, 0xd3, 0x67, 0x32, 0x94, 0xcf, 0xb7, + 0x13, 0x68, 0x1b, 0xd2, 0x3e, 0x31, 0x83, 0x6b, 0x31, 0xad, 0x1e, 0xb5, 0x29, 0x31, 0xed, 0x9e, + 0xc0, 0x32, 0x08, 0x2b, 0x66, 0x9e, 0xde, 0xc7, 0x83, 0xf0, 0x0e, 0xcc, 0x0a, 0x0e, 0x50, 0xbc, + 0x18, 0x62, 0xda, 0x77, 0x8c, 0xa0, 0xf1, 0x98, 0x19, 0x2f, 0x50, 0x68, 0x1f, 0x0a, 0x9a, 0x4f, + 0xfb, 0x0e, 0x31, 0xe9, 0x68, 0x86, 0xbe, 0x23, 0x4e, 0x31, 0x06, 0x22, 0x75, 0x9c, 0x39, 0x45, + 0x2f, 0xb9, 0x3d, 0x47, 0x33, 0x56, 0x8b, 0x67, 0xa7, 0x28, 0x9f, 0xb2, 0xae, 0x92, 0x77, 0x8a, + 0xac, 0x3b, 0x59, 0x10, 0x0d, 0x20, 0xea, 0xc2, 0x82, 0xe7, 0xf8, 0x44, 0xc7, 0x1d, 0x4b, 0xeb, + 0x62, 0x8b, 0x75, 0x21, 0x4c, 0xdb, 0xa3, 0x79, 0xb4, 0xb5, 0x39, 0xc1, 0x4b, 0x8e, 0x17, 0x2a, + 0x4b, 0x5e, 0x6c, 0xeb, 0x4c, 0x83, 0x9e, 0x3f, 0xdb, 0xa0, 0x57, 0xba, 0x50, 0x4a, 0x48, 0xa5, + 0x3b, 0xf1, 0x1b, 0x36, 0xbb, 0x2f, 0x63, 0x37, 0xf8, 0x31, 0x2c, 0x4d, 0x98, 0x38, 0xd7, 0x55, + 0xfe, 0x4a, 0x86, 0xe5, 0x8b, 0xba, 0x55, 0xd4, 0x82, 0xa2, 0x31, 0x5e, 0xce, 0x10, 0xad, 0xf1, + 0xf0, 0x8f, 0x43, 0x59, 0xd6, 0x3a, 0xc5, 0x66, 0xaf, 0x2f, 0xba, 0x7b, 0x59, 0x0d, 0x56, 0xd3, + 0xda, 0x95, 0x74, 0x52, 0xbb, 0xf2, 0xa1, 0x74, 0x79, 0xbf, 0x22, 0xbe, 0x6b, 0xfe, 0x3e, 0x67, + 0x7b, 0xfe, 0xde, 0x5b, 0x17, 0x39, 0xa1, 0x75, 0xf9, 0x9f, 0x74, 0x69, 0xef, 0x92, 0xe5, 0x27, + 0x78, 0x71, 0xd5, 0x13, 0x5c, 0xb1, 0x8d, 0xc9, 0xcd, 0xdf, 0xc6, 0xfc, 0x02, 0x9b, 0x10, 0x0a, + 0xe5, 0x9f, 0x3f, 0x96, 0xab, 0x5f, 0xa4, 0x60, 0x69, 0xa2, 0x90, 0xa0, 0x3a, 0xfc, 0x2a, 0x06, + 0xee, 0x78, 0x7e, 0xd7, 0xc6, 0xd1, 0x27, 0x3e, 0x8a, 0x3d, 0x6a, 0x8b, 0x27, 0x51, 0x1a, 0x4b, + 0xc5, 0xd2, 0xd8, 0x9d, 0x28, 0x8d, 0x09, 0x3c, 0xcf, 0xdd, 0x85, 0x30, 0x0f, 0x09, 0x24, 0xd2, + 0xcf, 0xe7, 0xba, 0x4c, 0x62, 0xfb, 0x3b, 0x61, 0xee, 0x5c, 0xc9, 0x4e, 0x3e, 0x97, 0xec, 0x7e, + 0x74, 0x22, 0xfa, 0x26, 0x05, 0x68, 0xb2, 0x3f, 0x40, 0xbf, 0x86, 0x82, 0x67, 0x9b, 0x9d, 0xf8, + 0x6c, 0x24, 0xef, 0xd9, 0x66, 0x8b, 0x8f, 0x47, 0x2e, 0xf1, 0x6f, 0x2a, 0xd1, 0xbf, 0xe9, 0x69, + 0xfe, 0xcd, 0x5c, 0xe0, 0x5f, 0xe3, 0xbc, 0x7f, 0xe5, 0xc4, 0x8f, 0xa2, 0xc9, 0xc3, 0xcc, 0xe5, + 0xe0, 0xec, 0xfb, 0x76, 0xf0, 0x2e, 0x94, 0xe2, 0xc3, 0x04, 0x86, 0x0d, 0xdb, 0x90, 0x82, 0x68, + 0x2f, 0x6e, 0xc5, 0xcb, 0xbb, 0xc0, 0x8f, 0x37, 0xaa, 0x8f, 0xa0, 0x18, 0x1b, 0x24, 0xcc, 0x0d, + 0xc7, 0x50, 0x8c, 0xd5, 0x30, 0xb4, 0x02, 0x32, 0x1e, 0x6a, 0x7a, 0x30, 0x07, 0x6a, 0x5d, 0x53, + 0xc5, 0x12, 0x29, 0x90, 0x75, 0x09, 0x3e, 0x36, 0x87, 0x82, 0xa1, 0x75, 0x4d, 0x0d, 0xd6, 0x0c, + 0x41, 0x70, 0x0f, 0x0f, 0x45, 0xfc, 0x33, 0x04, 0x5f, 0x36, 0x4b, 0x00, 0xbc, 0x5f, 0xeb, 0xd0, + 0x91, 0x8b, 0xab, 0x1f, 0x48, 0xc1, 0xd4, 0x07, 0x33, 0xff, 0x54, 0x20, 0xaf, 0x51, 0x8a, 0x07, + 0x2e, 0x0f, 0x1e, 0x76, 0x61, 0xa3, 0x35, 0x6a, 0xc0, 0x75, 0x17, 0x93, 0x0e, 0x25, 0xa3, 0x4e, + 0x38, 0xdb, 0x48, 0x25, 0xcd, 0x36, 0x16, 0x5c, 0x4c, 0x8e, 0xc8, 0xe8, 0x28, 0x98, 0x70, 0xac, + 0xb2, 0xaf, 0x12, 0x46, 0xe0, 0xd8, 0xc1, 0xad, 0xe4, 0xc3, 0x8b, 0xd1, 0x81, 0x5d, 0xfd, 0x34, + 0x05, 0x30, 0x1e, 0x05, 0xa0, 0xdb, 0x50, 0xd2, 0x2c, 0xcb, 0x39, 0xed, 0x38, 0xc4, 0xec, 0x99, + 0x76, 0x10, 0xc9, 0x45, 0xbe, 0x77, 0xc0, 0xb7, 0x58, 0x1c, 0x0a, 0x11, 0xd1, 0x6c, 0x85, 0x61, + 0x2c, 0x70, 0xaf, 0xc4, 0xde, 0x58, 0xe8, 0x4c, 0xa5, 0x0c, 0x84, 0xc2, 0x9c, 0x7e, 0x17, 0x16, + 0xf1, 0xd0, 0x75, 0xce, 0x95, 0xc4, 0x82, 0xba, 0x20, 0x76, 0x43, 0xb1, 0x4d, 0xc8, 0x0d, 0xb4, + 0x61, 0x47, 0xeb, 0x89, 0xb9, 0xcf, 0xd4, 0x83, 0x67, 0x07, 0xda, 0xb0, 0xd1, 0xc3, 0xe8, 0x39, + 0x2c, 0x09, 0xfd, 0x3a, 0xc1, 0x06, 0xb6, 0xa9, 0xa9, 0x59, 0x5e, 0x30, 0x12, 0xaa, 0x4c, 0xa0, + 0x9b, 0x8e, 0x63, 0xbd, 0x66, 0xf1, 0xa7, 0x96, 0x39, 0x68, 0x6f, 0x8c, 0xa9, 0x7e, 0x22, 0x03, + 0x9a, 0x9c, 0xda, 0xa0, 0x17, 0x20, 0x1b, 0xd8, 0xd2, 0x46, 0xb3, 0x7c, 0x34, 0x4e, 0xa0, 0x6b, + 0xfb, 0x0c, 0xaa, 0x0a, 0x06, 0x46, 0xa5, 0x75, 0xc3, 0x64, 0x3a, 0x37, 0x55, 0x83, 0x41, 0x55, + 0xc1, 0x50, 0xf9, 0x7f, 0x0a, 0x64, 0xce, 0x8d, 0x6e, 0x41, 0xce, 0xc5, 0x44, 0xc7, 0xb6, 0x08, + 0x5c, 0x99, 0x57, 0xd6, 0x70, 0x0b, 0xed, 0x40, 0xf1, 0xd8, 0x1c, 0x62, 0xa3, 0x23, 0xce, 0x90, + 0x14, 0x4e, 0xad, 0x6b, 0x2a, 0x70, 0x79, 0xc1, 0xdd, 0x82, 0x25, 0xf6, 0x82, 0x6c, 0xe1, 0xa2, + 0x80, 0x23, 0x9d, 0xcc, 0x51, 0x8e, 0xa1, 0x04, 0x53, 0x13, 0x20, 0x30, 0x69, 0xfc, 0x72, 0xa7, + 0xd5, 0xf5, 0x43, 0x21, 0xac, 0xc6, 0x50, 0xcd, 0x25, 0xb8, 0xde, 0xa7, 0xd4, 0x15, 0x66, 0xf0, + 0xbb, 0x55, 0x79, 0x2b, 0x81, 0xcc, 0xfd, 0x92, 0xe0, 0x86, 0xdb, 0x50, 0xe4, 0x50, 0x8f, 0x6a, + 0xd4, 0xf7, 0x44, 0xa5, 0x64, 0x67, 0x65, 0x9b, 0x6d, 0xbe, 0xc7, 0x44, 0x7a, 0xc4, 0xd5, 0x43, + 0x91, 0xf0, 0x4a, 0x03, 0xdb, 0x1c, 0x8b, 0x30, 0xc0, 0x66, 0x07, 0xf3, 0xf1, 0x5d, 0x26, 0x14, + 0xe1, 0x9b, 0x4f, 0xf9, 0x70, 0xee, 0x7d, 0x9c, 0xb3, 0x04, 0xc0, 0x15, 0x88, 0xf4, 0xf1, 0x0c, + 0x4a, 0xf1, 0x51, 0x32, 0x4b, 0x47, 0xb6, 0x3f, 0xe8, 0x62, 0xc2, 0xcf, 0xb9, 0xc0, 0xd2, 0x91, + 0x58, 0xa3, 0x65, 0xc8, 0xd8, 0x5a, 0xf0, 0x25, 0xc6, 0xec, 0xe2, 0xab, 0x66, 0x56, 0x14, 0x98, + 0xea, 0x6f, 0x20, 0x17, 0x28, 0x1b, 0x67, 0x64, 0xc6, 0x20, 0x05, 0x19, 0xb9, 0x59, 0xfb, 0xf2, + 0xdd, 0x9a, 0xf4, 0xf5, 0xbb, 0x35, 0xe9, 0xed, 0xbb, 0x35, 0xe9, 0x5f, 0xeb, 0xc2, 0x66, 0xd3, + 0xa9, 0x6b, 0xae, 0x59, 0xbf, 0xe0, 0x7f, 0x14, 0xdd, 0x2c, 0x7f, 0xf3, 0x5b, 0x3f, 0x04, 0x00, + 0x00, 0xff, 0xff, 0x9e, 0x6d, 0x35, 0x27, 0xc1, 0x18, 0x00, 0x00, } diff --git a/networking/v1alpha3/virtual_service.proto b/networking/v1alpha3/virtual_service.proto index 80f6201f0d..946dca69e2 100644 --- a/networking/v1alpha3/virtual_service.proto +++ b/networking/v1alpha3/virtual_service.proto @@ -385,24 +385,49 @@ 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` + // Use of `append_headers` is deprecated. Use the `headers` // field instead. map append_headers = 11 [deprecated=true]; - // HTTP headers to remove before returning a response to the caller. - repeated string remove_response_headers = 12; + // Use of `remove_response_header` is deprecated. Use the `headers` + // field instead. + repeated string remove_response_headers = 12 [deprecated=true]; - // Additional HTTP headers to add before returning a response to the - // caller. - map append_response_headers = 13; + // Use of `append_response_headers` is deprecated. Use the `headers` + // field instead. + map append_response_headers = 13 [deprecated=true]; - // HTTP headers to remove before forwarding a request to the - // destination service. - repeated string remove_request_headers = 14; + // Use of `remove_request_headers` is deprecated. Use the `headers` + // field instead. + repeated string remove_request_headers = 14 [deprecated=true]; - // Additional HTTP headers to add before forwarding a request to the - // destination service. - map append_request_headers = 15; + // Use of `append_request_headers` is deprecated. Use the `headers` + // field instead. + map append_request_headers = 15 [deprecated=true]; + + // Header manipulation rules + Headers headers = 16; +} + +// Header manipulation rules +message Headers { + // Header manipulation rules to apply before forwarding a request + // to the destination service + HeaderOperations request = 1; + // Header manipulation rules to apply before returning a response + // to the caller + HeaderOperations response = 2; + + // HeaderOperations Describes the header manipulations to apply + message HeaderOperations { + // Overwrite the headers specified by key with the given values + map set = 1; + // Apppend the given values to the the headers specified by keys + // (will create a comma seperated list of values) + map add = 2; + // Remove a the specified headers + repeated string remove = 3; + } } // Describes match conditions and actions for routing unterminated TLS @@ -659,20 +684,24 @@ message HTTPRouteDestination { // be 100. int32 weight = 2; - // HTTP headers to remove before returning a response to the caller. - repeated string remove_response_headers = 3; + // Use of `remove_response_header` is deprecated. Use the `headers` + // field instead. + repeated string remove_response_headers = 3 [deprecated=true]; + + // Use of `append_response_headers` is deprecated. Use the `headers` + // field instead. + map append_response_headers = 4 [deprecated=true]; - // Additional HTTP headers to add before returning a response to the - // caller. - map append_response_headers = 4; + // Use of `remove_request_headers` is deprecated. Use the `headers` + // field instead. + repeated string remove_request_headers = 5 [deprecated=true]; - // HTTP headers to remove before forwarding a request to the - // destination service. - repeated string remove_request_headers = 5; + // Use of `append_request_headers` is deprecated. Use the `headers` + // field instead. + map append_request_headers = 6 [deprecated=true]; - // Additional HTTP headers to add before forwarding a request to the - // destination service. - map append_request_headers = 6; + // Header manipulation rules + Headers headers = 7; } // L4 routing rule weighted destination. diff --git a/proto.lock b/proto.lock index 1602f9d220..9002723a2f 100644 --- a/proto.lock +++ b/proto.lock @@ -3358,6 +3358,11 @@ "name": "remove_request_headers", "type": "string", "is_repeated": true + }, + { + "id": 16, + "name": "headers", + "type": "Headers" } ], "maps": [ @@ -3387,6 +3392,52 @@ } ] }, + { + "name": "Headers", + "fields": [ + { + "id": 1, + "name": "request", + "type": "HeaderOperations" + }, + { + "id": 2, + "name": "response", + "type": "HeaderOperations" + } + ], + "messages": [ + { + "name": "HeaderOperations", + "fields": [ + { + "id": 3, + "name": "remove", + "type": "string", + "is_repeated": true + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 1, + "name": "set", + "type": "string" + } + }, + { + "key_type": "string", + "field": { + "id": 2, + "name": "add", + "type": "string" + } + } + ] + } + ] + }, { "name": "TLSRoute", "fields": [ @@ -3499,6 +3550,11 @@ "name": "remove_request_headers", "type": "string", "is_repeated": true + }, + { + "id": 7, + "name": "headers", + "type": "Headers" } ], "maps": [ diff --git a/python/istio_api/networking/v1alpha3/virtual_service_pb2.py b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py index 4588a89298..69497908ab 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\"\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\"c\n\tHTTPRetry\x12\x10\n\x08\x61ttempts\x18\x01 \x01(\x05\x12\x32\n\x0fper_try_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08retry_on\x18\x03 \x01(\t\"\xcb\x01\n\nCorsPolicy\x12\x14\n\x0c\x61llow_origin\x18\x01 \x03(\t\x12\x15\n\rallow_methods\x18\x02 \x03(\t\x12\x15\n\rallow_headers\x18\x03 \x03(\t\x12\x16\n\x0e\x65xpose_headers\x18\x04 \x03(\t\x12*\n\x07max_age\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x11\x61llow_credentials\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x9a\x04\n\x12HTTPFaultInjection\x12\x42\n\x05\x64\x65lay\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Delay\x12\x42\n\x05\x61\x62ort\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Abort\x1a\xd1\x01\n\x05\x44\x65lay\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x30\n\x0b\x66ixed_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\x11\x65xponential_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x11\n\x0fhttp_delay_type\x1a\xa7\x01\n\x05\x41\x62ort\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x15\n\x0bhttp_status\x18\x02 \x01(\x05H\x00\x12\x15\n\x0bgrpc_status\x18\x03 \x01(\tH\x00\x12\x15\n\x0bhttp2_error\x18\x04 \x01(\tH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x0c\n\nerror_type\"8\n\x0cPortSelector\x12\x10\n\x06number\x18\x01 \x01(\rH\x00\x12\x0e\n\x04name\x18\x02 \x01(\tH\x00\x42\x06\n\x04port\"\x18\n\x07Percent\x12\r\n\x05value\x18\x01 \x01(\x01\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') + serialized_pb=_b('\n)networking/v1alpha3/virtual_service.proto\x12\x19istio.networking.v1alpha3\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\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\"\xf9\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#\n\x17remove_response_headers\x18\x0c \x03(\tB\x02\x18\x01\x12\x64\n\x17\x61ppend_response_headers\x18\r \x03(\x0b\x32?.istio.networking.v1alpha3.HTTPRoute.AppendResponseHeadersEntryB\x02\x18\x01\x12\"\n\x16remove_request_headers\x18\x0e \x03(\tB\x02\x18\x01\x12\x62\n\x16\x61ppend_request_headers\x18\x0f \x03(\x0b\x32>.istio.networking.v1alpha3.HTTPRoute.AppendRequestHeadersEntryB\x02\x18\x01\x12\x33\n\x07headers\x18\x10 \x01(\x0b\x32\".istio.networking.v1alpha3.Headers\x1a\x34\n\x12\x41ppendHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a<\n\x1a\x41ppendResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a;\n\x19\x41ppendRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa9\x03\n\x07Headers\x12\x44\n\x07request\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.Headers.HeaderOperations\x12\x45\n\x08response\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.Headers.HeaderOperations\x1a\x90\x02\n\x10HeaderOperations\x12I\n\x03set\x18\x01 \x03(\x0b\x32<.istio.networking.v1alpha3.Headers.HeaderOperations.SetEntry\x12I\n\x03\x61\x64\x64\x18\x02 \x03(\x0b\x32<.istio.networking.v1alpha3.Headers.HeaderOperations.AddEntry\x12\x0e\n\x06remove\x18\x03 \x03(\t\x1a*\n\x08SetEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a*\n\x08\x41\x64\x64\x45ntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x84\x01\n\x08TLSRoute\x12<\n\x05match\x18\x01 \x03(\x0b\x32-.istio.networking.v1alpha3.TLSMatchAttributes\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\x83\x01\n\x08TCPRoute\x12;\n\x05match\x18\x01 \x03(\x0b\x32,.istio.networking.v1alpha3.L4MatchAttributes\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\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\"\xbc\x04\n\x14HTTPRouteDestination\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12#\n\x17remove_response_headers\x18\x03 \x03(\tB\x02\x18\x01\x12o\n\x17\x61ppend_response_headers\x18\x04 \x03(\x0b\x32J.istio.networking.v1alpha3.HTTPRouteDestination.AppendResponseHeadersEntryB\x02\x18\x01\x12\"\n\x16remove_request_headers\x18\x05 \x03(\tB\x02\x18\x01\x12m\n\x16\x61ppend_request_headers\x18\x06 \x03(\x0b\x32I.istio.networking.v1alpha3.HTTPRouteDestination.AppendRequestHeadersEntryB\x02\x18\x01\x12\x33\n\x07headers\x18\x07 \x01(\x0b\x32\".istio.networking.v1alpha3.Headers\x1a<\n\x1a\x41ppendResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a;\n\x19\x41ppendRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"_\n\x10RouteDestination\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x0e\n\x06weight\x18\x02 \x01(\x05\"\xf3\x01\n\x11L4MatchAttributes\x12\x1b\n\x13\x64\x65stination_subnets\x18\x01 \x03(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x15\n\rsource_subnet\x18\x03 \x01(\t\x12U\n\rsource_labels\x18\x04 \x03(\x0b\x32>.istio.networking.v1alpha3.L4MatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x05 \x03(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x88\x02\n\x12TLSMatchAttributes\x12\x11\n\tsni_hosts\x18\x01 \x03(\t\x12\x1b\n\x13\x64\x65stination_subnets\x18\x02 \x03(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12\x15\n\rsource_subnet\x18\x04 \x01(\t\x12V\n\rsource_labels\x18\x05 \x03(\x0b\x32?.istio.networking.v1alpha3.TLSMatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x06 \x03(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\".\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\"c\n\tHTTPRetry\x12\x10\n\x08\x61ttempts\x18\x01 \x01(\x05\x12\x32\n\x0fper_try_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08retry_on\x18\x03 \x01(\t\"\xcb\x01\n\nCorsPolicy\x12\x14\n\x0c\x61llow_origin\x18\x01 \x03(\t\x12\x15\n\rallow_methods\x18\x02 \x03(\t\x12\x15\n\rallow_headers\x18\x03 \x03(\t\x12\x16\n\x0e\x65xpose_headers\x18\x04 \x03(\t\x12*\n\x07max_age\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x11\x61llow_credentials\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x9a\x04\n\x12HTTPFaultInjection\x12\x42\n\x05\x64\x65lay\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Delay\x12\x42\n\x05\x61\x62ort\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Abort\x1a\xd1\x01\n\x05\x44\x65lay\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x30\n\x0b\x66ixed_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\x11\x65xponential_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x11\n\x0fhttp_delay_type\x1a\xa7\x01\n\x05\x41\x62ort\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x15\n\x0bhttp_status\x18\x02 \x01(\x05H\x00\x12\x15\n\x0bgrpc_status\x18\x03 \x01(\tH\x00\x12\x15\n\x0bhttp2_error\x18\x04 \x01(\tH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x0c\n\nerror_type\"8\n\x0cPortSelector\x12\x10\n\x06number\x18\x01 \x01(\rH\x00\x12\x0e\n\x04name\x18\x02 \x01(\tH\x00\x42\x06\n\x04port\"\x18\n\x07Percent\x12\r\n\x05value\x18\x01 \x01(\x01\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3') , dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) @@ -165,8 +165,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1342, - serialized_end=1394, + serialized_start=1411, + serialized_end=1463, ) _HTTPROUTE_APPENDRESPONSEHEADERSENTRY = _descriptor.Descriptor( @@ -202,8 +202,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1396, - serialized_end=1456, + serialized_start=1465, + serialized_end=1525, ) _HTTPROUTE_APPENDREQUESTHEADERSENTRY = _descriptor.Descriptor( @@ -239,8 +239,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1458, - serialized_end=1517, + serialized_start=1527, + serialized_end=1586, ) _HTTPROUTE = _descriptor.Descriptor( @@ -333,27 +333,34 @@ 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='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), + options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), 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), + options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), 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=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='headers', full_name='istio.networking.v1alpha3.HTTPRoute.headers', index=15, + number=16, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), ], extensions=[ @@ -368,7 +375,163 @@ oneofs=[ ], serialized_start=441, - serialized_end=1517, + serialized_end=1586, +) + + +_HEADERS_HEADEROPERATIONS_SETENTRY = _descriptor.Descriptor( + name='SetEntry', + full_name='istio.networking.v1alpha3.Headers.HeaderOperations.SetEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='istio.networking.v1alpha3.Headers.HeaderOperations.SetEntry.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.Headers.HeaderOperations.SetEntry.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=1928, + serialized_end=1970, +) + +_HEADERS_HEADEROPERATIONS_ADDENTRY = _descriptor.Descriptor( + name='AddEntry', + full_name='istio.networking.v1alpha3.Headers.HeaderOperations.AddEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='istio.networking.v1alpha3.Headers.HeaderOperations.AddEntry.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.Headers.HeaderOperations.AddEntry.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=1972, + serialized_end=2014, +) + +_HEADERS_HEADEROPERATIONS = _descriptor.Descriptor( + name='HeaderOperations', + full_name='istio.networking.v1alpha3.Headers.HeaderOperations', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='set', full_name='istio.networking.v1alpha3.Headers.HeaderOperations.set', index=0, + number=1, 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='add', full_name='istio.networking.v1alpha3.Headers.HeaderOperations.add', index=1, + number=2, 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', full_name='istio.networking.v1alpha3.Headers.HeaderOperations.remove', 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), + ], + extensions=[ + ], + nested_types=[_HEADERS_HEADEROPERATIONS_SETENTRY, _HEADERS_HEADEROPERATIONS_ADDENTRY, ], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1742, + serialized_end=2014, +) + +_HEADERS = _descriptor.Descriptor( + name='Headers', + full_name='istio.networking.v1alpha3.Headers', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='request', full_name='istio.networking.v1alpha3.Headers.request', 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='response', full_name='istio.networking.v1alpha3.Headers.response', index=1, + number=2, 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), + ], + extensions=[ + ], + nested_types=[_HEADERS_HEADEROPERATIONS, ], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1589, + serialized_end=2014, ) @@ -405,8 +568,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1520, - serialized_end=1652, + serialized_start=2017, + serialized_end=2149, ) @@ -443,8 +606,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1655, - serialized_end=1786, + serialized_start=2152, + serialized_end=2283, ) @@ -481,8 +644,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2226, - serialized_end=2312, + serialized_start=2723, + serialized_end=2809, ) _HTTPMATCHREQUEST_SOURCELABELSENTRY = _descriptor.Descriptor( @@ -518,8 +681,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2314, - serialized_end=2365, + serialized_start=2811, + serialized_end=2862, ) _HTTPMATCHREQUEST = _descriptor.Descriptor( @@ -597,8 +760,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1789, - serialized_end=2365, + serialized_start=2286, + serialized_end=2862, ) @@ -635,8 +798,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1396, - serialized_end=1456, + serialized_start=1465, + serialized_end=1525, ) _HTTPROUTEDESTINATION_APPENDREQUESTHEADERSENTRY = _descriptor.Descriptor( @@ -672,8 +835,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1458, - serialized_end=1517, + serialized_start=1527, + serialized_end=1586, ) _HTTPROUTEDESTINATION = _descriptor.Descriptor( @@ -703,27 +866,34 @@ 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='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), + options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR), _descriptor.FieldDescriptor( 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), + options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), 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, + options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='headers', full_name='istio.networking.v1alpha3.HTTPRouteDestination.headers', index=6, + number=7, 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), ], extensions=[ @@ -737,8 +907,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2368, - serialized_end=2871, + serialized_start=2865, + serialized_end=3437, ) @@ -775,8 +945,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2873, - serialized_end=2968, + serialized_start=3439, + serialized_end=3534, ) @@ -813,8 +983,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2314, - serialized_end=2365, + serialized_start=2811, + serialized_end=2862, ) _L4MATCHATTRIBUTES = _descriptor.Descriptor( @@ -871,8 +1041,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2971, - serialized_end=3214, + serialized_start=3537, + serialized_end=3780, ) @@ -909,8 +1079,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2314, - serialized_end=2365, + serialized_start=2811, + serialized_end=2862, ) _TLSMATCHATTRIBUTES = _descriptor.Descriptor( @@ -974,8 +1144,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3217, - serialized_end=3481, + serialized_start=3783, + serialized_end=4047, ) @@ -1012,8 +1182,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3483, - serialized_end=3529, + serialized_start=4049, + serialized_end=4095, ) @@ -1050,8 +1220,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3531, - serialized_end=3576, + serialized_start=4097, + serialized_end=4142, ) @@ -1098,8 +1268,8 @@ name='match_type', full_name='istio.networking.v1alpha3.StringMatch.match_type', index=0, containing_type=None, fields=[]), ], - serialized_start=3578, - serialized_end=3657, + serialized_start=4144, + serialized_end=4223, ) @@ -1143,8 +1313,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3659, - serialized_end=3758, + serialized_start=4225, + serialized_end=4324, ) @@ -1209,8 +1379,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3761, - serialized_end=3964, + serialized_start=4327, + serialized_end=4530, ) @@ -1264,8 +1434,8 @@ name='http_delay_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Delay.http_delay_type', index=0, containing_type=None, fields=[]), ], - serialized_start=4126, - serialized_end=4335, + serialized_start=4692, + serialized_end=4901, ) _HTTPFAULTINJECTION_ABORT = _descriptor.Descriptor( @@ -1325,8 +1495,8 @@ name='error_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Abort.error_type', index=0, containing_type=None, fields=[]), ], - serialized_start=4338, - serialized_end=4505, + serialized_start=4904, + serialized_end=5071, ) _HTTPFAULTINJECTION = _descriptor.Descriptor( @@ -1362,8 +1532,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3967, - serialized_end=4505, + serialized_start=4533, + serialized_end=5071, ) @@ -1403,8 +1573,8 @@ name='port', full_name='istio.networking.v1alpha3.PortSelector.port', index=0, containing_type=None, fields=[]), ], - serialized_start=4507, - serialized_end=4563, + serialized_start=5073, + serialized_end=5129, ) @@ -1434,8 +1604,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4565, - serialized_end=4589, + serialized_start=5131, + serialized_end=5155, ) _VIRTUALSERVICE.fields_by_name['http'].message_type = _HTTPROUTE @@ -1457,6 +1627,14 @@ _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 +_HTTPROUTE.fields_by_name['headers'].message_type = _HEADERS +_HEADERS_HEADEROPERATIONS_SETENTRY.containing_type = _HEADERS_HEADEROPERATIONS +_HEADERS_HEADEROPERATIONS_ADDENTRY.containing_type = _HEADERS_HEADEROPERATIONS +_HEADERS_HEADEROPERATIONS.fields_by_name['set'].message_type = _HEADERS_HEADEROPERATIONS_SETENTRY +_HEADERS_HEADEROPERATIONS.fields_by_name['add'].message_type = _HEADERS_HEADEROPERATIONS_ADDENTRY +_HEADERS_HEADEROPERATIONS.containing_type = _HEADERS +_HEADERS.fields_by_name['request'].message_type = _HEADERS_HEADEROPERATIONS +_HEADERS.fields_by_name['response'].message_type = _HEADERS_HEADEROPERATIONS _TLSROUTE.fields_by_name['match'].message_type = _TLSMATCHATTRIBUTES _TLSROUTE.fields_by_name['route'].message_type = _ROUTEDESTINATION _TCPROUTE.fields_by_name['match'].message_type = _L4MATCHATTRIBUTES @@ -1475,6 +1653,7 @@ _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 +_HTTPROUTEDESTINATION.fields_by_name['headers'].message_type = _HEADERS _ROUTEDESTINATION.fields_by_name['destination'].message_type = _DESTINATION _L4MATCHATTRIBUTES_SOURCELABELSENTRY.containing_type = _L4MATCHATTRIBUTES _L4MATCHATTRIBUTES.fields_by_name['source_labels'].message_type = _L4MATCHATTRIBUTES_SOURCELABELSENTRY @@ -1524,6 +1703,7 @@ DESCRIPTOR.message_types_by_name['VirtualService'] = _VIRTUALSERVICE DESCRIPTOR.message_types_by_name['Destination'] = _DESTINATION DESCRIPTOR.message_types_by_name['HTTPRoute'] = _HTTPROUTE +DESCRIPTOR.message_types_by_name['Headers'] = _HEADERS DESCRIPTOR.message_types_by_name['TLSRoute'] = _TLSROUTE DESCRIPTOR.message_types_by_name['TCPRoute'] = _TCPROUTE DESCRIPTOR.message_types_by_name['HTTPMatchRequest'] = _HTTPMATCHREQUEST @@ -1586,6 +1766,37 @@ _sym_db.RegisterMessage(HTTPRoute.AppendResponseHeadersEntry) _sym_db.RegisterMessage(HTTPRoute.AppendRequestHeadersEntry) +Headers = _reflection.GeneratedProtocolMessageType('Headers', (_message.Message,), dict( + + HeaderOperations = _reflection.GeneratedProtocolMessageType('HeaderOperations', (_message.Message,), dict( + + SetEntry = _reflection.GeneratedProtocolMessageType('SetEntry', (_message.Message,), dict( + DESCRIPTOR = _HEADERS_HEADEROPERATIONS_SETENTRY, + __module__ = 'networking.v1alpha3.virtual_service_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.Headers.HeaderOperations.SetEntry) + )) + , + + AddEntry = _reflection.GeneratedProtocolMessageType('AddEntry', (_message.Message,), dict( + DESCRIPTOR = _HEADERS_HEADEROPERATIONS_ADDENTRY, + __module__ = 'networking.v1alpha3.virtual_service_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.Headers.HeaderOperations.AddEntry) + )) + , + DESCRIPTOR = _HEADERS_HEADEROPERATIONS, + __module__ = 'networking.v1alpha3.virtual_service_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.Headers.HeaderOperations) + )) + , + DESCRIPTOR = _HEADERS, + __module__ = 'networking.v1alpha3.virtual_service_pb2' + # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.Headers) + )) +_sym_db.RegisterMessage(Headers) +_sym_db.RegisterMessage(Headers.HeaderOperations) +_sym_db.RegisterMessage(Headers.HeaderOperations.SetEntry) +_sym_db.RegisterMessage(Headers.HeaderOperations.AddEntry) + TLSRoute = _reflection.GeneratedProtocolMessageType('TLSRoute', (_message.Message,), dict( DESCRIPTOR = _TLSROUTE, __module__ = 'networking.v1alpha3.virtual_service_pb2' @@ -1766,6 +1977,18 @@ _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')) +_HTTPROUTE.fields_by_name['remove_response_headers'].has_options = True +_HTTPROUTE.fields_by_name['remove_response_headers']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) +_HTTPROUTE.fields_by_name['append_response_headers'].has_options = True +_HTTPROUTE.fields_by_name['append_response_headers']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) +_HTTPROUTE.fields_by_name['remove_request_headers'].has_options = True +_HTTPROUTE.fields_by_name['remove_request_headers']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) +_HTTPROUTE.fields_by_name['append_request_headers'].has_options = True +_HTTPROUTE.fields_by_name['append_request_headers']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) +_HEADERS_HEADEROPERATIONS_SETENTRY.has_options = True +_HEADERS_HEADEROPERATIONS_SETENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) +_HEADERS_HEADEROPERATIONS_ADDENTRY.has_options = True +_HEADERS_HEADEROPERATIONS_ADDENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) _HTTPMATCHREQUEST_HEADERSENTRY.has_options = True _HTTPMATCHREQUEST_HEADERSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) _HTTPMATCHREQUEST_SOURCELABELSENTRY.has_options = True @@ -1774,6 +1997,14 @@ _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')) +_HTTPROUTEDESTINATION.fields_by_name['remove_response_headers'].has_options = True +_HTTPROUTEDESTINATION.fields_by_name['remove_response_headers']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) +_HTTPROUTEDESTINATION.fields_by_name['append_response_headers'].has_options = True +_HTTPROUTEDESTINATION.fields_by_name['append_response_headers']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) +_HTTPROUTEDESTINATION.fields_by_name['remove_request_headers'].has_options = True +_HTTPROUTEDESTINATION.fields_by_name['remove_request_headers']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) +_HTTPROUTEDESTINATION.fields_by_name['append_request_headers'].has_options = True +_HTTPROUTEDESTINATION.fields_by_name['append_request_headers']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')) _L4MATCHATTRIBUTES_SOURCELABELSENTRY.has_options = True _L4MATCHATTRIBUTES_SOURCELABELSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) _TLSMATCHATTRIBUTES_SOURCELABELSENTRY.has_options = True
FieldTypeDescription
setmap<string, string> +

Overwrite the headers specified by key with the given values

+ +
addmap<string, string> +

Apppend the given values to the the headers specified by keys +(will create a comma seperated list of values)

+ +
removestring[] +

Remove a the specified headers