+substitution |
+string |
+
|
No
diff --git a/networking/v1alpha3/virtual_service.proto b/networking/v1alpha3/virtual_service.proto
index 98d983c0a23..7b7b868b2b9 100644
--- a/networking/v1alpha3/virtual_service.proto
+++ b/networking/v1alpha3/virtual_service.proto
@@ -1470,6 +1470,16 @@ message HTTPRewrite {
// rewrite the Authority/Host header with this value.
string authority = 2;
+
+ // uri_regex can be used for rewriting portions of path that match the
+ // pattern during forwarding the request
+ // RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
+ UriRegexRewrite uri_regex = 3;
+}
+
+message UriRegexRewrite {
+ string pattern = 1;
+ string substitution = 2;
}
// Describes how to match a given string in HTTP headers. Match is
diff --git a/networking/v1alpha3/virtual_service_deepcopy.gen.go b/networking/v1alpha3/virtual_service_deepcopy.gen.go
index dfca279b6f7..d06a4002bb5 100644
--- a/networking/v1alpha3/virtual_service_deepcopy.gen.go
+++ b/networking/v1alpha3/virtual_service_deepcopy.gen.go
@@ -479,6 +479,27 @@ func (in *HTTPRewrite) DeepCopyInterface() interface{} {
return in.DeepCopy()
}
+// DeepCopyInto supports using UriRegexRewrite within kubernetes types, where deepcopy-gen is used.
+func (in *UriRegexRewrite) DeepCopyInto(out *UriRegexRewrite) {
+ p := proto.Clone(in).(*UriRegexRewrite)
+ *out = *p
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UriRegexRewrite. Required by controller-gen.
+func (in *UriRegexRewrite) DeepCopy() *UriRegexRewrite {
+ if in == nil {
+ return nil
+ }
+ out := new(UriRegexRewrite)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new UriRegexRewrite. Required by controller-gen.
+func (in *UriRegexRewrite) DeepCopyInterface() interface{} {
+ return in.DeepCopy()
+}
+
// DeepCopyInto supports using StringMatch within kubernetes types, where deepcopy-gen is used.
func (in *StringMatch) DeepCopyInto(out *StringMatch) {
p := proto.Clone(in).(*StringMatch)
diff --git a/networking/v1alpha3/virtual_service_json.gen.go b/networking/v1alpha3/virtual_service_json.gen.go
index 474f22a8e20..dd3c4ad5ab3 100644
--- a/networking/v1alpha3/virtual_service_json.gen.go
+++ b/networking/v1alpha3/virtual_service_json.gen.go
@@ -331,6 +331,17 @@ func (this *HTTPRewrite) UnmarshalJSON(b []byte) error {
return VirtualServiceUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}
+// MarshalJSON is a custom marshaler for UriRegexRewrite
+func (this *UriRegexRewrite) MarshalJSON() ([]byte, error) {
+ str, err := VirtualServiceMarshaler.MarshalToString(this)
+ return []byte(str), err
+}
+
+// UnmarshalJSON is a custom unmarshaler for UriRegexRewrite
+func (this *UriRegexRewrite) UnmarshalJSON(b []byte) error {
+ return VirtualServiceUnmarshaler.Unmarshal(bytes.NewReader(b), this)
+}
+
// MarshalJSON is a custom marshaler for StringMatch
func (this *StringMatch) MarshalJSON() ([]byte, error) {
str, err := VirtualServiceMarshaler.MarshalToString(this)
diff --git a/networking/v1beta1/virtual_service.gen.json b/networking/v1beta1/virtual_service.gen.json
index 6e201ab54a7..f9ac703e181 100644
--- a/networking/v1beta1/virtual_service.gen.json
+++ b/networking/v1beta1/virtual_service.gen.json
@@ -327,6 +327,9 @@
"description": "rewrite the Authority/Host header with this value.",
"type": "string",
"format": "string"
+ },
+ "uriRegex": {
+ "$ref": "#/components/schemas/istio.networking.v1beta1.UriRegexRewrite"
}
}
},
@@ -663,6 +666,19 @@
}
]
},
+ "istio.networking.v1beta1.UriRegexRewrite": {
+ "type": "object",
+ "properties": {
+ "pattern": {
+ "type": "string",
+ "format": "string"
+ },
+ "substitution": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
"istio.networking.v1beta1.HTTPFaultInjection.Delay": {
"description": "Delay specification is used to inject latency into the request forwarding path. The following example will introduce a 5 second delay in 1 out of every 1000 requests to the \"v1\" version of the \"reviews\" service from all pods with label env: prod",
"type": "object",
diff --git a/networking/v1beta1/virtual_service.pb.go b/networking/v1beta1/virtual_service.pb.go
index c0056b4c7bd..4f15f761914 100644
--- a/networking/v1beta1/virtual_service.pb.go
+++ b/networking/v1beta1/virtual_service.pb.go
@@ -2370,10 +2370,14 @@ type HTTPRewrite struct {
// provided in this field will replace the corresponding matched prefix.
Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
// rewrite the Authority/Host header with this value.
- Authority string `protobuf:"bytes,2,opt,name=authority,proto3" json:"authority,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
+ Authority string `protobuf:"bytes,2,opt,name=authority,proto3" json:"authority,omitempty"`
+ // uri_regex can be used for rewriting portions of path that match the
+ // pattern during forwarding the request
+ // RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
+ UriRegex *UriRegexRewrite `protobuf:"bytes,3,opt,name=uri_regex,json=uriRegex,proto3" json:"uri_regex,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
func (m *HTTPRewrite) Reset() { *m = HTTPRewrite{} }
@@ -2423,6 +2427,68 @@ func (m *HTTPRewrite) GetAuthority() string {
return ""
}
+func (m *HTTPRewrite) GetUriRegex() *UriRegexRewrite {
+ if m != nil {
+ return m.UriRegex
+ }
+ return nil
+}
+
+type UriRegexRewrite struct {
+ Pattern string `protobuf:"bytes,1,opt,name=pattern,proto3" json:"pattern,omitempty"`
+ Substitution string `protobuf:"bytes,2,opt,name=substitution,proto3" json:"substitution,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *UriRegexRewrite) Reset() { *m = UriRegexRewrite{} }
+func (m *UriRegexRewrite) String() string { return proto.CompactTextString(m) }
+func (*UriRegexRewrite) ProtoMessage() {}
+func (*UriRegexRewrite) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8c56a442a0838fd7, []int{14}
+}
+func (m *UriRegexRewrite) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *UriRegexRewrite) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_UriRegexRewrite.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *UriRegexRewrite) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UriRegexRewrite.Merge(m, src)
+}
+func (m *UriRegexRewrite) XXX_Size() int {
+ return m.Size()
+}
+func (m *UriRegexRewrite) XXX_DiscardUnknown() {
+ xxx_messageInfo_UriRegexRewrite.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UriRegexRewrite proto.InternalMessageInfo
+
+func (m *UriRegexRewrite) GetPattern() string {
+ if m != nil {
+ return m.Pattern
+ }
+ return ""
+}
+
+func (m *UriRegexRewrite) GetSubstitution() string {
+ if m != nil {
+ return m.Substitution
+ }
+ return ""
+}
+
// Describes how to match a given string in HTTP headers. Match is
// case-sensitive.
type StringMatch struct {
@@ -2440,7 +2506,7 @@ func (m *StringMatch) Reset() { *m = StringMatch{} }
func (m *StringMatch) String() string { return proto.CompactTextString(m) }
func (*StringMatch) ProtoMessage() {}
func (*StringMatch) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{14}
+ return fileDescriptor_8c56a442a0838fd7, []int{15}
}
func (m *StringMatch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2603,7 +2669,7 @@ func (m *HTTPRetry) Reset() { *m = HTTPRetry{} }
func (m *HTTPRetry) String() string { return proto.CompactTextString(m) }
func (*HTTPRetry) ProtoMessage() {}
func (*HTTPRetry) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{15}
+ return fileDescriptor_8c56a442a0838fd7, []int{16}
}
func (m *HTTPRetry) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2759,7 +2825,7 @@ func (m *CorsPolicy) Reset() { *m = CorsPolicy{} }
func (m *CorsPolicy) String() string { return proto.CompactTextString(m) }
func (*CorsPolicy) ProtoMessage() {}
func (*CorsPolicy) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{16}
+ return fileDescriptor_8c56a442a0838fd7, []int{17}
}
func (m *CorsPolicy) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2862,7 +2928,7 @@ func (m *HTTPFaultInjection) Reset() { *m = HTTPFaultInjection{} }
func (m *HTTPFaultInjection) String() string { return proto.CompactTextString(m) }
func (*HTTPFaultInjection) ProtoMessage() {}
func (*HTTPFaultInjection) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{17}
+ return fileDescriptor_8c56a442a0838fd7, []int{18}
}
func (m *HTTPFaultInjection) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2985,7 +3051,7 @@ func (m *HTTPFaultInjection_Delay) Reset() { *m = HTTPFaultInjection_Del
func (m *HTTPFaultInjection_Delay) String() string { return proto.CompactTextString(m) }
func (*HTTPFaultInjection_Delay) ProtoMessage() {}
func (*HTTPFaultInjection_Delay) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{17, 0}
+ return fileDescriptor_8c56a442a0838fd7, []int{18, 0}
}
func (m *HTTPFaultInjection_Delay) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3145,7 +3211,7 @@ func (m *HTTPFaultInjection_Abort) Reset() { *m = HTTPFaultInjection_Abo
func (m *HTTPFaultInjection_Abort) String() string { return proto.CompactTextString(m) }
func (*HTTPFaultInjection_Abort) ProtoMessage() {}
func (*HTTPFaultInjection_Abort) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{17, 1}
+ return fileDescriptor_8c56a442a0838fd7, []int{18, 1}
}
func (m *HTTPFaultInjection_Abort) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3252,7 +3318,7 @@ func (m *PortSelector) Reset() { *m = PortSelector{} }
func (m *PortSelector) String() string { return proto.CompactTextString(m) }
func (*PortSelector) ProtoMessage() {}
func (*PortSelector) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{18}
+ return fileDescriptor_8c56a442a0838fd7, []int{19}
}
func (m *PortSelector) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3300,7 +3366,7 @@ func (m *Percent) Reset() { *m = Percent{} }
func (m *Percent) String() string { return proto.CompactTextString(m) }
func (*Percent) ProtoMessage() {}
func (*Percent) Descriptor() ([]byte, []int) {
- return fileDescriptor_8c56a442a0838fd7, []int{19}
+ return fileDescriptor_8c56a442a0838fd7, []int{20}
}
func (m *Percent) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3360,6 +3426,7 @@ func init() {
proto.RegisterMapType((map[string]string)(nil), "istio.networking.v1beta1.TLSMatchAttributes.SourceLabelsEntry")
proto.RegisterType((*HTTPRedirect)(nil), "istio.networking.v1beta1.HTTPRedirect")
proto.RegisterType((*HTTPRewrite)(nil), "istio.networking.v1beta1.HTTPRewrite")
+ proto.RegisterType((*UriRegexRewrite)(nil), "istio.networking.v1beta1.UriRegexRewrite")
proto.RegisterType((*StringMatch)(nil), "istio.networking.v1beta1.StringMatch")
proto.RegisterType((*HTTPRetry)(nil), "istio.networking.v1beta1.HTTPRetry")
proto.RegisterType((*CorsPolicy)(nil), "istio.networking.v1beta1.CorsPolicy")
@@ -3375,132 +3442,135 @@ func init() {
}
var fileDescriptor_8c56a442a0838fd7 = []byte{
- // 1987 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0x4f, 0x73, 0x1b, 0x49,
- 0x15, 0x8f, 0xfe, 0x4b, 0x4f, 0x92, 0x2d, 0x77, 0x42, 0x32, 0x6b, 0x52, 0x89, 0x57, 0x21, 0x29,
- 0x03, 0x8b, 0x5c, 0xab, 0x6c, 0x11, 0x6a, 0xb3, 0xd9, 0x5d, 0xff, 0x09, 0xeb, 0x75, 0x39, 0x89,
- 0x77, 0xec, 0x5d, 0xaa, 0x38, 0x30, 0xd5, 0x9a, 0x79, 0x96, 0x86, 0x48, 0xd3, 0x93, 0x9e, 0x1e,
- 0xdb, 0xe2, 0xcc, 0x81, 0x2a, 0x0e, 0x14, 0x07, 0x0e, 0x1c, 0xf9, 0x16, 0x7c, 0x04, 0x8e, 0x5c,
- 0xb8, 0x52, 0x5b, 0xb9, 0x71, 0xe0, 0x23, 0x50, 0x45, 0xf5, 0x9f, 0x91, 0x46, 0x96, 0x6d, 0x49,
- 0x21, 0x61, 0x4f, 0x9a, 0x7e, 0xfd, 0x7e, 0xbf, 0xee, 0x7e, 0xaf, 0xfb, 0xbd, 0xd7, 0x2d, 0x58,
- 0x0f, 0x50, 0x9c, 0x32, 0xfe, 0xd2, 0x0f, 0xba, 0x1b, 0x27, 0x1f, 0x76, 0x50, 0xd0, 0x0f, 0x37,
- 0x4e, 0x7c, 0x2e, 0x62, 0xda, 0x77, 0x22, 0xe4, 0x27, 0xbe, 0x8b, 0xad, 0x90, 0x33, 0xc1, 0x88,
- 0xe5, 0x47, 0xc2, 0x67, 0xad, 0xb1, 0x7e, 0xcb, 0xe8, 0xaf, 0xde, 0xed, 0x32, 0xd6, 0xed, 0xe3,
- 0x06, 0x0d, 0xfd, 0x8d, 0x63, 0x1f, 0xfb, 0x9e, 0xd3, 0xc1, 0x1e, 0x3d, 0xf1, 0x19, 0xd7, 0xd0,
- 0xd5, 0x3b, 0x46, 0x41, 0xb5, 0x3a, 0xf1, 0xf1, 0x86, 0x17, 0x73, 0x2a, 0x7c, 0x16, 0x5c, 0xd6,
- 0x7f, 0xca, 0x69, 0x18, 0x22, 0x8f, 0x74, 0x7f, 0xf3, 0xb7, 0x59, 0x58, 0xfa, 0x46, 0x4f, 0xea,
- 0x50, 0xcf, 0x89, 0xdc, 0x80, 0x42, 0x8f, 0x45, 0x22, 0xb2, 0x32, 0x6b, 0xb9, 0xf5, 0x8a, 0xad,
- 0x1b, 0x64, 0x15, 0xca, 0x5d, 0x2a, 0xf0, 0x94, 0x0e, 0x23, 0x2b, 0xab, 0x3a, 0x46, 0x6d, 0xf2,
- 0x08, 0xf2, 0x3d, 0x21, 0x42, 0x2b, 0xb7, 0x96, 0x5b, 0xaf, 0xb6, 0xef, 0xb5, 0x2e, 0x5b, 0x4e,
- 0x6b, 0xf7, 0xe8, 0xe8, 0xc0, 0x66, 0xb1, 0x40, 0x5b, 0x01, 0xc8, 0x47, 0x90, 0x13, 0xfd, 0xc8,
- 0x2a, 0x28, 0x5c, 0xf3, 0x72, 0xdc, 0xd1, 0xfe, 0xa1, 0x86, 0x49, 0x75, 0x85, 0x72, 0x43, 0x2b,
- 0x3f, 0x13, 0xb5, 0x7d, 0x90, 0xa0, 0xdc, 0x90, 0x7c, 0x1f, 0x2a, 0x78, 0x16, 0x32, 0x2e, 0x1c,
- 0xc1, 0xac, 0xa2, 0x5e, 0x81, 0x16, 0x1c, 0xb1, 0xe6, 0x6f, 0xa0, 0xba, 0x83, 0x91, 0xf0, 0x03,
- 0x65, 0x3b, 0x72, 0x0b, 0xf2, 0x72, 0xd5, 0x56, 0x66, 0x2d, 0xb3, 0x5e, 0xd9, 0xca, 0x7d, 0xbb,
- 0x99, 0xb5, 0x95, 0x80, 0xdc, 0x84, 0x62, 0x14, 0x77, 0x22, 0x14, 0x56, 0x56, 0x76, 0xd9, 0xa6,
- 0x45, 0x3e, 0x86, 0xbc, 0x64, 0xb2, 0x72, 0x6b, 0x99, 0xf5, 0x6a, 0xfb, 0xc1, 0xe5, 0x73, 0x3a,
- 0x60, 0x5c, 0x1c, 0x62, 0x1f, 0x5d, 0xc1, 0xb8, 0xad, 0x30, 0xcd, 0x3f, 0x96, 0xa1, 0x32, 0x32,
- 0x0c, 0x21, 0x90, 0x0f, 0xe8, 0x00, 0xad, 0x15, 0xc5, 0xaf, 0xbe, 0xc9, 0xe7, 0x50, 0x18, 0x50,
- 0xe1, 0xf6, 0x94, 0x47, 0xaa, 0xed, 0x1f, 0x5d, 0x6d, 0xe0, 0x67, 0x52, 0xd5, 0xc6, 0x57, 0x31,
- 0x46, 0xc2, 0xd6, 0x40, 0xb2, 0x03, 0x05, 0x2e, 0xe9, 0x95, 0xeb, 0xaa, 0xed, 0xd6, 0x1c, 0x2e,
- 0x4a, 0xd9, 0xc3, 0xd6, 0x60, 0xb2, 0x05, 0x65, 0x8e, 0x9e, 0xcf, 0xd1, 0x9d, 0x63, 0xa5, 0x8a,
- 0xc8, 0x68, 0xdb, 0x23, 0x1c, 0xf9, 0x14, 0xca, 0x1e, 0xf6, 0x51, 0xee, 0x1d, 0xeb, 0x86, 0xe2,
- 0xb8, 0xc2, 0x83, 0x3b, 0x46, 0xd3, 0x1e, 0x61, 0xc8, 0x67, 0x50, 0xe2, 0x78, 0xca, 0x7d, 0x81,
- 0x56, 0x5e, 0xc1, 0xef, 0xcf, 0x9a, 0x82, 0x52, 0xb6, 0x13, 0x14, 0x79, 0x08, 0x25, 0xe1, 0x0f,
- 0x90, 0xc5, 0xc2, 0x2a, 0x2a, 0x82, 0xf7, 0x5a, 0xfa, 0x8c, 0xb4, 0x92, 0x33, 0xd2, 0xda, 0x31,
- 0x67, 0xc8, 0x4e, 0x34, 0xc9, 0x13, 0x39, 0xaa, 0xe0, 0x3e, 0x46, 0x56, 0x49, 0x81, 0x66, 0x6d,
- 0x72, 0x14, 0x7c, 0x68, 0x27, 0x18, 0xb2, 0x05, 0x85, 0x63, 0x1a, 0xf7, 0x85, 0x55, 0x56, 0xe0,
- 0x0f, 0xae, 0x06, 0xff, 0x5c, 0xaa, 0x7e, 0x19, 0xfc, 0x1a, 0x5d, 0x6d, 0x7c, 0x05, 0x25, 0x4f,
- 0xa0, 0x38, 0xf0, 0x39, 0x67, 0xdc, 0xaa, 0xcc, 0x5a, 0x77, 0xda, 0x75, 0x06, 0x44, 0xbe, 0x80,
- 0x25, 0xfd, 0xe5, 0x84, 0xc8, 0x5d, 0x0c, 0x84, 0x45, 0x14, 0xcd, 0xed, 0xa9, 0xd5, 0x7f, 0xfd,
- 0x65, 0x20, 0x1e, 0xb6, 0xbf, 0xa1, 0xfd, 0x18, 0xb7, 0xb2, 0x56, 0xc6, 0xae, 0x6b, 0xdc, 0x81,
- 0x86, 0x91, 0xe7, 0xb0, 0x32, 0x49, 0x44, 0xbb, 0x68, 0x5d, 0x57, 0x5c, 0xef, 0x5f, 0xb1, 0xef,
- 0xb5, 0xae, 0xdd, 0x98, 0x20, 0xa3, 0x5d, 0x24, 0x4f, 0xa1, 0xea, 0x32, 0x1e, 0x39, 0x21, 0xeb,
- 0xfb, 0xee, 0xd0, 0x02, 0xc5, 0xf4, 0x83, 0xcb, 0x99, 0xb6, 0x19, 0x8f, 0x0e, 0x94, 0xae, 0x0d,
- 0xee, 0xe8, 0x9b, 0x3c, 0x86, 0x52, 0x0f, 0xa9, 0x87, 0x3c, 0xb2, 0x1a, 0xb3, 0x26, 0xb3, 0xab,
- 0x15, 0xed, 0x04, 0xb1, 0x97, 0x2f, 0x17, 0x1a, 0xc5, 0xbd, 0x7c, 0xb9, 0xda, 0x68, 0xd8, 0x2b,
- 0xa7, 0xd8, 0x89, 0x98, 0xfb, 0x12, 0x85, 0x13, 0x87, 0x5d, 0x4e, 0x3d, 0xb4, 0x97, 0x64, 0xc8,
- 0x0c, 0x3c, 0xc7, 0xa8, 0xdb, 0xb7, 0x38, 0x0e, 0xd8, 0x09, 0x3a, 0x1c, 0xa3, 0x90, 0x05, 0x11,
- 0x8e, 0x3b, 0x8c, 0xe2, 0x54, 0xc7, 0xcd, 0x11, 0x42, 0x1d, 0xcb, 0xb1, 0x7c, 0x04, 0x98, 0x90,
- 0x37, 0x3f, 0x81, 0x72, 0xb2, 0xf7, 0x47, 0x11, 0x21, 0x93, 0x8a, 0x08, 0xb7, 0xa1, 0x22, 0x7f,
- 0xa3, 0x90, 0xba, 0x68, 0x42, 0xd1, 0x58, 0xd0, 0x7c, 0x9d, 0x83, 0x92, 0x59, 0x23, 0xd9, 0x97,
- 0x3b, 0x57, 0x91, 0x2b, 0x82, 0x6a, 0xbb, 0x3d, 0xd3, 0x2e, 0xe6, 0xf7, 0x45, 0x88, 0xfa, 0x18,
- 0x44, 0x76, 0x42, 0x41, 0x9e, 0xcb, 0x08, 0xa0, 0xd7, 0xa6, 0x86, 0x7d, 0x33, 0xba, 0x11, 0xc7,
- 0xea, 0x5f, 0xb3, 0xd0, 0x38, 0xdf, 0x4d, 0x9e, 0x41, 0x4e, 0x46, 0x58, 0x1d, 0xec, 0x1e, 0x2f,
- 0xce, 0xdf, 0x3a, 0x44, 0xf1, 0x34, 0x90, 0x07, 0x50, 0xf2, 0x48, 0x3a, 0xea, 0x79, 0x26, 0xf2,
- 0xbd, 0x09, 0xdd, 0xa6, 0xe7, 0x19, 0x3a, 0xea, 0x79, 0x32, 0x05, 0x68, 0x67, 0xaa, 0x74, 0x57,
- 0xb1, 0x4d, 0x6b, 0xf5, 0xa7, 0x50, 0x4e, 0xc6, 0x25, 0x0d, 0xc8, 0xbd, 0xc4, 0xa1, 0xf1, 0x98,
- 0xfc, 0x94, 0x49, 0xf5, 0x44, 0x9e, 0x28, 0xe3, 0x2c, 0xdd, 0xf8, 0x38, 0xfb, 0xb3, 0x8c, 0xc4,
- 0x25, 0x03, 0x2c, 0x82, 0x6b, 0xfe, 0x29, 0x03, 0xe5, 0x24, 0x2f, 0x92, 0x2f, 0x26, 0x33, 0xc4,
- 0x07, 0x57, 0xa6, 0x52, 0x95, 0x20, 0x36, 0x85, 0xe0, 0x7e, 0x27, 0x16, 0x18, 0xe9, 0xfc, 0x66,
- 0x12, 0xc5, 0xe7, 0x93, 0x89, 0xe2, 0x8a, 0x54, 0x73, 0x49, 0x92, 0x68, 0xfe, 0x41, 0xce, 0xcb,
- 0x64, 0x5e, 0xb2, 0x39, 0x39, 0xaf, 0x1f, 0x5f, 0x4e, 0xb7, 0xff, 0xd1, 0xb9, 0x69, 0xbd, 0xbd,
- 0x19, 0xfd, 0xb9, 0x02, 0x8d, 0xf3, 0x89, 0x71, 0x74, 0xaa, 0xaa, 0xa9, 0x53, 0xf5, 0x08, 0x72,
- 0x31, 0xf7, 0xcd, 0x39, 0xb9, 0x22, 0xbe, 0x1e, 0x0a, 0xee, 0x07, 0x5d, 0x4d, 0x27, 0x11, 0x32,
- 0x36, 0x47, 0x6e, 0x0f, 0x07, 0xc9, 0xa1, 0x98, 0x13, 0x6b, 0x40, 0x2a, 0xb4, 0xa3, 0xe8, 0x31,
- 0xcf, 0x64, 0xd5, 0x79, 0xe1, 0x1a, 0x44, 0xb6, 0xa1, 0x42, 0x63, 0xd1, 0x63, 0xdc, 0x17, 0xc3,
- 0xd9, 0x49, 0x31, 0xcd, 0x30, 0xc6, 0x91, 0xaf, 0xc6, 0xf1, 0x53, 0x97, 0x63, 0x8f, 0xe6, 0xaf,
- 0x32, 0x92, 0xa3, 0xa3, 0x4f, 0x49, 0xc2, 0x23, 0x4d, 0xac, 0x8a, 0x22, 0x99, 0x66, 0xeb, 0xba,
- 0xd8, 0x21, 0x14, 0xea, 0x11, 0x8b, 0xb9, 0x8b, 0x4e, 0x9f, 0x76, 0xb0, 0x2f, 0xd3, 0xa9, 0x1c,
- 0xec, 0x93, 0x05, 0x06, 0x3b, 0x54, 0xf8, 0x7d, 0x05, 0xd7, 0x23, 0xd6, 0xa2, 0x94, 0x68, 0xa2,
- 0x52, 0x2d, 0x9f, 0xab, 0x54, 0x7f, 0x05, 0xb5, 0x57, 0x31, 0xf2, 0xa1, 0x13, 0x52, 0x4e, 0x07,
- 0x91, 0x55, 0x99, 0x19, 0x14, 0xce, 0x8f, 0xfe, 0x95, 0x84, 0x1f, 0x28, 0xb4, 0x1e, 0xbc, 0xfa,
- 0x6a, 0x2c, 0x21, 0x0f, 0x60, 0xd9, 0xef, 0x06, 0x8c, 0xa3, 0x13, 0x73, 0xdf, 0x71, 0x69, 0x84,
- 0x2a, 0xa1, 0x95, 0xed, 0xba, 0x16, 0x7f, 0xcd, 0xfd, 0x6d, 0x1a, 0x21, 0xe9, 0xc2, 0xf2, 0xa9,
- 0x2f, 0x7a, 0x2c, 0x1e, 0x85, 0x7c, 0xab, 0xa6, 0xa6, 0xf2, 0xe9, 0x02, 0x53, 0xf9, 0x85, 0x66,
- 0x98, 0x30, 0xfe, 0xd2, 0xe9, 0x84, 0x90, 0xfc, 0x10, 0x1a, 0xc6, 0xde, 0xe3, 0x7c, 0x51, 0x57,
- 0x5b, 0x7e, 0x59, 0xcb, 0x9f, 0x27, 0xe2, 0x55, 0x0a, 0xb5, 0x34, 0xd5, 0x05, 0xc1, 0xe8, 0x71,
- 0x3a, 0x18, 0xcd, 0xbd, 0xc9, 0x52, 0xb1, 0xee, 0x33, 0x58, 0x99, 0xf2, 0xde, 0x42, 0xc1, 0x12,
- 0xa1, 0x71, 0xde, 0x01, 0xef, 0x62, 0x9e, 0x3d, 0xb8, 0x7e, 0x81, 0x71, 0xdf, 0xc1, 0x48, 0xcd,
- 0xbf, 0x64, 0xe1, 0xc6, 0x45, 0x25, 0x37, 0xd9, 0x87, 0xaa, 0x37, 0x6e, 0xce, 0x8e, 0x49, 0x29,
- 0xac, 0x0e, 0xe8, 0x69, 0xb8, 0x4c, 0x5a, 0xa7, 0xe8, 0x77, 0x7b, 0xfa, 0xde, 0x52, 0xb0, 0x4d,
- 0x2b, 0x5d, 0x35, 0x95, 0xde, 0xa0, 0x6a, 0xca, 0x35, 0x4a, 0xff, 0x87, 0x62, 0xe8, 0x0c, 0x1a,
- 0xdf, 0x8d, 0x79, 0x9a, 0xff, 0xca, 0xc2, 0xca, 0x54, 0x62, 0x22, 0x1b, 0x70, 0x3d, 0x05, 0x76,
- 0xa2, 0xb8, 0x13, 0xe0, 0xe8, 0xba, 0x4c, 0x52, 0x5d, 0x87, 0xba, 0x67, 0x14, 0x08, 0xb3, 0xa9,
- 0x40, 0x78, 0x6f, 0x14, 0x08, 0x35, 0x5e, 0x85, 0xfe, 0x4a, 0x12, 0xca, 0x34, 0x92, 0x74, 0xce,
- 0x47, 0x4b, 0x7d, 0xe7, 0x7d, 0xb2, 0x40, 0x1a, 0x5d, 0x28, 0x5c, 0x16, 0xce, 0x85, 0xcb, 0x8b,
- 0xa2, 0x47, 0xf1, 0xe2, 0xe8, 0xf1, 0xbf, 0x1e, 0xed, 0xe6, 0x7f, 0xb2, 0x40, 0xa6, 0x8b, 0x13,
- 0xb2, 0x06, 0x95, 0x28, 0xf0, 0x9d, 0xd4, 0x8b, 0x84, 0xf6, 0x5f, 0x39, 0x0a, 0xfc, 0x5d, 0xf5,
- 0x32, 0x71, 0x89, 0x3b, 0xb2, 0x33, 0xdd, 0x91, 0x4b, 0xb9, 0xc3, 0x3d, 0x6f, 0xe9, 0xc2, 0xac,
- 0x70, 0x3c, 0x3d, 0xd7, 0x85, 0x4c, 0x5d, 0x9c, 0xc3, 0xd4, 0xa5, 0x77, 0x63, 0xea, 0xbd, 0x7c,
- 0x39, 0xdf, 0x28, 0xd8, 0x93, 0xfb, 0xaf, 0xe9, 0x42, 0x2d, 0x7d, 0x65, 0x97, 0x84, 0x49, 0x31,
- 0x54, 0xd1, 0x55, 0xce, 0xed, 0x74, 0x9d, 0x61, 0x2e, 0x1d, 0xe3, 0x02, 0xe2, 0x1e, 0xd4, 0x93,
- 0x4b, 0xbe, 0xe3, 0x32, 0x0f, 0x8d, 0x79, 0x6b, 0x89, 0x70, 0x9b, 0x79, 0xd8, 0x7c, 0x02, 0xd5,
- 0xd4, 0xa5, 0x7c, 0xd1, 0x31, 0x9a, 0x08, 0xd5, 0x54, 0x1c, 0x25, 0x37, 0xa1, 0x80, 0x67, 0xd4,
- 0x35, 0xef, 0x34, 0xbb, 0xd7, 0x6c, 0xdd, 0x24, 0x16, 0x14, 0x43, 0x8e, 0xc7, 0xfe, 0x99, 0x66,
- 0xd8, 0xbd, 0x66, 0x9b, 0xb6, 0x44, 0x70, 0xec, 0xe2, 0x99, 0x3e, 0x6d, 0x12, 0xa1, 0x9a, 0x5b,
- 0x35, 0x00, 0x55, 0x6d, 0x3a, 0x62, 0x18, 0x62, 0xf3, 0x9f, 0x19, 0xf3, 0x22, 0x23, 0x6f, 0xf1,
- 0xe4, 0x2e, 0x94, 0xa9, 0x10, 0x38, 0x08, 0xd5, 0x06, 0xcc, 0xac, 0x17, 0xcc, 0x06, 0x4c, 0x84,
- 0x64, 0x13, 0x96, 0x43, 0xe4, 0x8e, 0xe0, 0x43, 0x27, 0x79, 0x59, 0xc8, 0xce, 0x7a, 0x59, 0xa8,
- 0x87, 0xc8, 0x8f, 0xf8, 0xf0, 0xc8, 0xbc, 0x2f, 0xbc, 0x27, 0xef, 0x55, 0x92, 0x80, 0x05, 0x26,
- 0x10, 0xa8, 0xb7, 0x83, 0xe1, 0x8b, 0x80, 0xd8, 0x70, 0x4b, 0x77, 0xc9, 0xa8, 0x29, 0xd0, 0xe9,
- 0x33, 0x97, 0xf6, 0x7d, 0xe1, 0x63, 0x64, 0x6a, 0xbd, 0xd5, 0xa9, 0x51, 0xb6, 0x18, 0xeb, 0xab,
- 0xfb, 0xbb, 0xfd, 0x3d, 0x05, 0xb5, 0x15, 0x72, 0x7f, 0x04, 0x6c, 0xfe, 0x3b, 0x0b, 0x30, 0xbe,
- 0x47, 0x93, 0xfb, 0x50, 0xa3, 0xfd, 0x3e, 0x3b, 0x75, 0x18, 0xf7, 0xbb, 0x7e, 0x60, 0x8e, 0x99,
- 0xbc, 0xfb, 0x57, 0x95, 0xfc, 0x85, 0x12, 0x93, 0x3d, 0xa8, 0xa7, 0xd5, 0x92, 0xda, 0x6d, 0xce,
- 0xa4, 0x57, 0x4b, 0x51, 0x45, 0x72, 0xb7, 0x68, 0x2e, 0x5d, 0xc3, 0x26, 0xc7, 0x55, 0x2b, 0x3d,
- 0xd3, 0xb2, 0xb1, 0x52, 0x92, 0xa3, 0x72, 0x29, 0xa5, 0xa4, 0xc2, 0xb9, 0x0f, 0x4b, 0x78, 0x16,
- 0xb2, 0x71, 0x7e, 0x51, 0x41, 0xb2, 0x62, 0xd7, 0xb5, 0x34, 0x51, 0x6b, 0x43, 0x69, 0x40, 0xcf,
- 0x1c, 0xda, 0x45, 0xab, 0x30, 0xcb, 0x39, 0xc5, 0x01, 0x3d, 0xdb, 0xec, 0xca, 0x5b, 0xd5, 0x8a,
- 0x1e, 0xdf, 0xe5, 0xe8, 0x61, 0x20, 0x7c, 0xda, 0x8f, 0xcc, 0xa3, 0xd1, 0x55, 0x46, 0x6f, 0x28,
- 0xd0, 0xf6, 0x18, 0xd3, 0xfc, 0x7d, 0x01, 0xc8, 0xf4, 0xcb, 0x0e, 0xd9, 0x85, 0x82, 0x87, 0x7d,
- 0x3a, 0x9c, 0xe3, 0x66, 0x3e, 0x05, 0x6e, 0xed, 0x48, 0xa4, 0xad, 0x09, 0x24, 0x13, 0xed, 0x24,
- 0x29, 0x66, 0x51, 0xa6, 0x4d, 0x89, 0xb4, 0x35, 0xc1, 0xea, 0xef, 0xb2, 0x50, 0x50, 0xd4, 0xe4,
- 0x36, 0x94, 0x92, 0xa7, 0x22, 0xbd, 0xed, 0xe5, 0x86, 0x48, 0x44, 0x64, 0x13, 0xaa, 0xc7, 0xfe,
- 0x19, 0x7a, 0x8e, 0x5e, 0xc1, 0xac, 0x0d, 0xaf, 0xce, 0xcc, 0xee, 0x35, 0x1b, 0x14, 0x68, 0xc7,
- 0x4c, 0x7a, 0x45, 0xfa, 0x28, 0xd0, 0x56, 0x32, 0x44, 0xb9, 0x19, 0x44, 0xbb, 0xd7, 0xec, 0x46,
- 0x0a, 0xa5, 0x99, 0x36, 0x01, 0x52, 0x8f, 0x51, 0x85, 0x79, 0x1f, 0xa3, 0x52, 0xa0, 0xad, 0x15,
- 0x58, 0xee, 0x09, 0x11, 0xea, 0x59, 0xa8, 0x30, 0xb0, 0xfa, 0x8f, 0x0c, 0x14, 0x94, 0x6d, 0xc8,
- 0x03, 0xa8, 0xaa, 0xce, 0x48, 0x50, 0x11, 0x47, 0xba, 0x48, 0x18, 0xad, 0x48, 0xf6, 0x1c, 0xaa,
- 0x0e, 0xf2, 0x3e, 0x54, 0xbb, 0x3c, 0x74, 0x13, 0xbd, 0x24, 0xc8, 0x80, 0x14, 0x8e, 0x55, 0x24,
- 0xa0, 0xed, 0xa0, 0x7a, 0xcb, 0xcb, 0x27, 0x2a, 0x4a, 0xf8, 0x54, 0x3d, 0xd5, 0xbd, 0x85, 0xd5,
- 0xd4, 0x00, 0x14, 0xbf, 0x5a, 0xc8, 0x5e, 0xbe, 0x9c, 0x69, 0x64, 0x47, 0xae, 0x6b, 0xb6, 0xa1,
- 0x96, 0x7e, 0x86, 0x96, 0xd5, 0x4f, 0x10, 0x0f, 0x3a, 0xc8, 0x95, 0x9f, 0xeb, 0xb6, 0x69, 0xed,
- 0xe5, 0xcb, 0xd9, 0x46, 0x4e, 0x5f, 0x8d, 0x9b, 0x77, 0xa1, 0x94, 0x3c, 0x00, 0x8e, 0xf2, 0x8a,
- 0xd4, 0xce, 0x98, 0xbc, 0xb2, 0xf5, 0x93, 0xbf, 0xbd, 0xbe, 0x93, 0xf9, 0xfb, 0xeb, 0x3b, 0x99,
- 0x6f, 0x5f, 0xdf, 0xc9, 0xfc, 0xf2, 0xae, 0x9e, 0xad, 0xcf, 0xd4, 0x3f, 0x17, 0xd3, 0x7f, 0x84,
- 0x74, 0x8a, 0xca, 0xb1, 0x0f, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x15, 0xd7, 0x7f, 0x89, 0x25,
- 0x19, 0x00, 0x00,
+ // 2042 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x6f, 0x1b, 0xc7,
+ 0x15, 0x37, 0x97, 0xdf, 0x8f, 0xa4, 0x45, 0x4d, 0x5c, 0x7b, 0xa3, 0x1a, 0xb6, 0xb3, 0xae, 0x0d,
+ 0xa5, 0x4d, 0x29, 0x84, 0x0e, 0xea, 0x22, 0x8e, 0x93, 0xe8, 0xc3, 0x89, 0x22, 0xc8, 0xb6, 0x32,
+ 0x92, 0x53, 0xa0, 0x87, 0x2e, 0x96, 0xbb, 0x4f, 0xe4, 0xd6, 0xe4, 0xee, 0x7a, 0x76, 0x56, 0x12,
+ 0x7b, 0x6e, 0x81, 0x02, 0x3d, 0x14, 0x3d, 0xf4, 0xd0, 0x63, 0xff, 0x8b, 0xfe, 0x09, 0x3d, 0xf6,
+ 0xd2, 0x6b, 0x11, 0xf8, 0xd6, 0x43, 0xff, 0x84, 0x02, 0xc5, 0x7c, 0x2c, 0xb9, 0x24, 0x25, 0x91,
+ 0x74, 0xe3, 0xf6, 0x24, 0xce, 0x9b, 0xf7, 0xfb, 0xcd, 0xc7, 0x9b, 0xf9, 0xbd, 0xb7, 0x23, 0x58,
+ 0x0f, 0x90, 0x9f, 0x86, 0xec, 0xa5, 0x1f, 0x74, 0x37, 0x4e, 0x3e, 0xec, 0x20, 0x77, 0x3e, 0xdc,
+ 0x38, 0xf1, 0x19, 0x4f, 0x9c, 0xbe, 0x1d, 0x23, 0x3b, 0xf1, 0x5d, 0x6c, 0x45, 0x2c, 0xe4, 0x21,
+ 0x31, 0xfd, 0x98, 0xfb, 0x61, 0x6b, 0xec, 0xdf, 0xd2, 0xfe, 0x6b, 0xb7, 0xbb, 0x61, 0xd8, 0xed,
+ 0xe3, 0x86, 0x13, 0xf9, 0x1b, 0xc7, 0x3e, 0xf6, 0x3d, 0xbb, 0x83, 0x3d, 0xe7, 0xc4, 0x0f, 0x99,
+ 0x82, 0xae, 0xdd, 0xd2, 0x0e, 0xb2, 0xd5, 0x49, 0x8e, 0x37, 0xbc, 0x84, 0x39, 0xdc, 0x0f, 0x83,
+ 0x8b, 0xfa, 0x4f, 0x99, 0x13, 0x45, 0xc8, 0x62, 0xd5, 0x6f, 0xfd, 0xda, 0x80, 0xab, 0xdf, 0xa8,
+ 0x49, 0x1d, 0xaa, 0x39, 0x91, 0x6b, 0x50, 0xec, 0x85, 0x31, 0x8f, 0xcd, 0xdc, 0x9d, 0xfc, 0x7a,
+ 0x95, 0xaa, 0x06, 0x59, 0x83, 0x4a, 0xd7, 0xe1, 0x78, 0xea, 0x0c, 0x63, 0xd3, 0x90, 0x1d, 0xa3,
+ 0x36, 0x79, 0x08, 0x85, 0x1e, 0xe7, 0x91, 0x99, 0xbf, 0x93, 0x5f, 0xaf, 0xb5, 0xef, 0xb6, 0x2e,
+ 0x5a, 0x4e, 0x6b, 0xf7, 0xe8, 0xe8, 0x80, 0x86, 0x09, 0x47, 0x2a, 0x01, 0xe4, 0x23, 0xc8, 0xf3,
+ 0x7e, 0x6c, 0x16, 0x25, 0xce, 0xba, 0x18, 0x77, 0xb4, 0x7f, 0xa8, 0x60, 0xc2, 0x5d, 0xa2, 0xdc,
+ 0xc8, 0x2c, 0xcc, 0x45, 0x6d, 0x1f, 0xa4, 0x28, 0x37, 0x22, 0xdf, 0x87, 0x2a, 0x9e, 0x45, 0x21,
+ 0xe3, 0x36, 0x0f, 0xcd, 0x92, 0x5a, 0x81, 0x32, 0x1c, 0x85, 0xd6, 0xaf, 0xa0, 0xb6, 0x83, 0x31,
+ 0xf7, 0x03, 0xb9, 0x77, 0xe4, 0x06, 0x14, 0xc4, 0xaa, 0xcd, 0xdc, 0x9d, 0xdc, 0x7a, 0x75, 0x2b,
+ 0xff, 0xed, 0xa6, 0x41, 0xa5, 0x81, 0x5c, 0x87, 0x52, 0x9c, 0x74, 0x62, 0xe4, 0xa6, 0x21, 0xba,
+ 0xa8, 0x6e, 0x91, 0x8f, 0xa1, 0x20, 0x98, 0xcc, 0xfc, 0x9d, 0xdc, 0x7a, 0xad, 0x7d, 0xff, 0xe2,
+ 0x39, 0x1d, 0x84, 0x8c, 0x1f, 0x62, 0x1f, 0x5d, 0x1e, 0x32, 0x2a, 0x31, 0xd6, 0x1f, 0x2a, 0x50,
+ 0x1d, 0x6d, 0x0c, 0x21, 0x50, 0x08, 0x9c, 0x01, 0x9a, 0xab, 0x92, 0x5f, 0xfe, 0x26, 0x9f, 0x43,
+ 0x71, 0xe0, 0x70, 0xb7, 0x27, 0x23, 0x52, 0x6b, 0xff, 0xf0, 0xf2, 0x0d, 0x7e, 0x2a, 0x5c, 0x29,
+ 0xbe, 0x4a, 0x30, 0xe6, 0x54, 0x01, 0xc9, 0x0e, 0x14, 0x99, 0xa0, 0x97, 0xa1, 0xab, 0xb5, 0x5b,
+ 0x0b, 0x84, 0x28, 0xb3, 0x1f, 0x54, 0x81, 0xc9, 0x16, 0x54, 0x18, 0x7a, 0x3e, 0x43, 0x77, 0x81,
+ 0x95, 0x4a, 0x22, 0xed, 0x4d, 0x47, 0x38, 0xf2, 0x29, 0x54, 0x3c, 0xec, 0xa3, 0x38, 0x3b, 0xe6,
+ 0x35, 0xc9, 0x71, 0x49, 0x04, 0x77, 0xb4, 0x27, 0x1d, 0x61, 0xc8, 0x67, 0x50, 0x66, 0x78, 0xca,
+ 0x7c, 0x8e, 0x66, 0x41, 0xc2, 0xef, 0xcd, 0x9b, 0x82, 0x74, 0xa6, 0x29, 0x8a, 0x3c, 0x80, 0x32,
+ 0xf7, 0x07, 0x18, 0x26, 0xdc, 0x2c, 0x49, 0x82, 0x77, 0x5b, 0xea, 0x8e, 0xb4, 0xd2, 0x3b, 0xd2,
+ 0xda, 0xd1, 0x77, 0x88, 0xa6, 0x9e, 0xe4, 0xb1, 0x18, 0x95, 0x33, 0x1f, 0x63, 0xb3, 0x2c, 0x41,
+ 0xf3, 0x0e, 0x39, 0x72, 0x36, 0xa4, 0x29, 0x86, 0x6c, 0x41, 0xf1, 0xd8, 0x49, 0xfa, 0xdc, 0xac,
+ 0x48, 0xf0, 0x07, 0x97, 0x83, 0xbf, 0x10, 0xae, 0x5f, 0x05, 0xbf, 0x44, 0x57, 0x6d, 0xbe, 0x84,
+ 0x92, 0xc7, 0x50, 0x1a, 0xf8, 0x8c, 0x85, 0xcc, 0xac, 0xce, 0x5b, 0x77, 0x36, 0x74, 0x1a, 0x44,
+ 0xbe, 0x84, 0xab, 0xea, 0x97, 0x1d, 0x21, 0x73, 0x31, 0xe0, 0x26, 0x91, 0x34, 0x37, 0x67, 0x56,
+ 0xff, 0xe2, 0xab, 0x80, 0x3f, 0x68, 0x7f, 0xe3, 0xf4, 0x13, 0xdc, 0x32, 0xcc, 0x1c, 0x6d, 0x28,
+ 0xdc, 0x81, 0x82, 0x91, 0x67, 0xb0, 0x3a, 0x49, 0xe4, 0x74, 0xd1, 0x7c, 0x47, 0x72, 0xbd, 0x77,
+ 0xc9, 0xb9, 0x57, 0xbe, 0xb4, 0x39, 0x41, 0xe6, 0x74, 0x91, 0x3c, 0x81, 0x9a, 0x1b, 0xb2, 0xd8,
+ 0x8e, 0xc2, 0xbe, 0xef, 0x0e, 0x4d, 0x90, 0x4c, 0x3f, 0xb8, 0x98, 0x69, 0x3b, 0x64, 0xf1, 0x81,
+ 0xf4, 0xa5, 0xe0, 0x8e, 0x7e, 0x93, 0x47, 0x50, 0xee, 0xa1, 0xe3, 0x21, 0x8b, 0xcd, 0xe6, 0xbc,
+ 0xc9, 0xec, 0x2a, 0x47, 0x9a, 0x22, 0xf6, 0x0a, 0x95, 0x62, 0xb3, 0xb4, 0x57, 0xa8, 0xd4, 0x9a,
+ 0x4d, 0xba, 0x7a, 0x8a, 0x9d, 0x38, 0x74, 0x5f, 0x22, 0xb7, 0x93, 0xa8, 0xcb, 0x1c, 0x0f, 0xe9,
+ 0x55, 0x21, 0x99, 0x81, 0x67, 0x6b, 0x77, 0x7a, 0x83, 0xe1, 0x20, 0x3c, 0x41, 0x9b, 0x61, 0x1c,
+ 0x85, 0x41, 0x8c, 0xe3, 0x0e, 0xed, 0x38, 0xd3, 0x71, 0x7d, 0x84, 0x90, 0xd7, 0x72, 0x6c, 0x1f,
+ 0x01, 0x26, 0xec, 0xd6, 0x27, 0x50, 0x49, 0xcf, 0xfe, 0x48, 0x11, 0x72, 0x19, 0x45, 0xb8, 0x09,
+ 0x55, 0xf1, 0x37, 0x8e, 0x1c, 0x17, 0xb5, 0x14, 0x8d, 0x0d, 0xd6, 0xeb, 0x3c, 0x94, 0xf5, 0x1a,
+ 0xc9, 0xbe, 0x38, 0xb9, 0x92, 0x5c, 0x12, 0xd4, 0xda, 0xed, 0xb9, 0xfb, 0xa2, 0xff, 0x3e, 0x8f,
+ 0x50, 0x5d, 0x83, 0x98, 0xa6, 0x14, 0xe4, 0x99, 0x50, 0x00, 0xb5, 0x36, 0x39, 0xec, 0x9b, 0xd1,
+ 0x8d, 0x38, 0xd6, 0xfe, 0x62, 0x40, 0x73, 0xba, 0x9b, 0x3c, 0x85, 0xbc, 0x50, 0x58, 0x25, 0x76,
+ 0x8f, 0x96, 0xe7, 0x6f, 0x1d, 0x22, 0x7f, 0x12, 0x88, 0x0b, 0x28, 0x78, 0x04, 0x9d, 0xe3, 0x79,
+ 0x5a, 0xf9, 0xde, 0x84, 0x6e, 0xd3, 0xf3, 0x34, 0x9d, 0xe3, 0x79, 0x22, 0x05, 0xa8, 0x60, 0xca,
+ 0x74, 0x57, 0xa5, 0xba, 0xb5, 0xf6, 0x13, 0xa8, 0xa4, 0xe3, 0x92, 0x26, 0xe4, 0x5f, 0xe2, 0x50,
+ 0x47, 0x4c, 0xfc, 0x14, 0x49, 0xf5, 0x44, 0xdc, 0x28, 0x1d, 0x2c, 0xd5, 0xf8, 0xd8, 0xf8, 0x69,
+ 0x4e, 0xe0, 0xd2, 0x01, 0x96, 0xc1, 0x59, 0x7f, 0xcc, 0x41, 0x25, 0xcd, 0x8b, 0xe4, 0xcb, 0xc9,
+ 0x0c, 0xf1, 0xc1, 0xa5, 0xa9, 0x54, 0x26, 0x88, 0x4d, 0xce, 0x99, 0xdf, 0x49, 0x38, 0xc6, 0x2a,
+ 0xbf, 0xe9, 0x44, 0xf1, 0xf9, 0x64, 0xa2, 0xb8, 0x24, 0xd5, 0x5c, 0x90, 0x24, 0xac, 0xdf, 0x8b,
+ 0x79, 0xe9, 0xcc, 0x4b, 0x36, 0x27, 0xe7, 0xf5, 0xa3, 0x8b, 0xe9, 0xf6, 0x3f, 0x9a, 0x9a, 0xd6,
+ 0x77, 0x37, 0xa3, 0x3f, 0x55, 0xa1, 0x39, 0x9d, 0x18, 0x47, 0xb7, 0xaa, 0x96, 0xb9, 0x55, 0x0f,
+ 0x21, 0x9f, 0x30, 0x5f, 0xdf, 0x93, 0x4b, 0xf4, 0xf5, 0x90, 0x33, 0x3f, 0xe8, 0x2a, 0x3a, 0x81,
+ 0x10, 0xda, 0x1c, 0xbb, 0x3d, 0x1c, 0xa4, 0x97, 0x62, 0x41, 0xac, 0x06, 0x49, 0x69, 0x47, 0xde,
+ 0x0b, 0x3d, 0x9d, 0x55, 0x17, 0x85, 0x2b, 0x10, 0xd9, 0x86, 0xaa, 0x93, 0xf0, 0x5e, 0xc8, 0x7c,
+ 0x3e, 0x9c, 0x9f, 0x14, 0xb3, 0x0c, 0x63, 0x1c, 0xf9, 0x7a, 0xac, 0x9f, 0xaa, 0x1c, 0x7b, 0xb8,
+ 0x78, 0x95, 0x91, 0x5e, 0x1d, 0x75, 0x4b, 0x52, 0x1e, 0xb1, 0xc5, 0xb2, 0x28, 0x12, 0x69, 0xb6,
+ 0xa1, 0x8a, 0x1d, 0xe2, 0x40, 0x23, 0x0e, 0x13, 0xe6, 0xa2, 0xdd, 0x77, 0x3a, 0xd8, 0x17, 0xe9,
+ 0x54, 0x0c, 0xf6, 0xc9, 0x12, 0x83, 0x1d, 0x4a, 0xfc, 0xbe, 0x84, 0xab, 0x11, 0xeb, 0x71, 0xc6,
+ 0x34, 0x51, 0xa9, 0x56, 0xa6, 0x2a, 0xd5, 0x5f, 0x40, 0xfd, 0x55, 0x82, 0x6c, 0x68, 0x47, 0x0e,
+ 0x73, 0x06, 0xb1, 0x59, 0x9d, 0x2b, 0x0a, 0xd3, 0xa3, 0x7f, 0x2d, 0xe0, 0x07, 0x12, 0xad, 0x06,
+ 0xaf, 0xbd, 0x1a, 0x5b, 0xc8, 0x7d, 0x58, 0xf1, 0xbb, 0x41, 0xc8, 0xd0, 0x4e, 0x98, 0x6f, 0xbb,
+ 0x4e, 0x8c, 0x32, 0xa1, 0x55, 0x68, 0x43, 0x99, 0x5f, 0x30, 0x7f, 0xdb, 0x89, 0x91, 0x74, 0x61,
+ 0xe5, 0xd4, 0xe7, 0xbd, 0x30, 0x19, 0x49, 0xbe, 0x59, 0x97, 0x53, 0xf9, 0x74, 0x89, 0xa9, 0xfc,
+ 0x4c, 0x31, 0x4c, 0x6c, 0xfe, 0xd5, 0xd3, 0x09, 0x23, 0x79, 0x1f, 0x9a, 0x7a, 0xbf, 0xc7, 0xf9,
+ 0xa2, 0x21, 0x8f, 0xfc, 0x8a, 0xb2, 0x3f, 0x4b, 0xcd, 0x6b, 0x0e, 0xd4, 0xb3, 0x54, 0xe7, 0x88,
+ 0xd1, 0xa3, 0xac, 0x18, 0x2d, 0x7c, 0xc8, 0x32, 0x5a, 0xf7, 0x19, 0xac, 0xce, 0x44, 0x6f, 0x29,
+ 0xb1, 0x44, 0x68, 0x4e, 0x07, 0xe0, 0x6d, 0xcc, 0xb3, 0x07, 0xef, 0x9c, 0xb3, 0xb9, 0x6f, 0x61,
+ 0x24, 0xeb, 0xcf, 0x06, 0x5c, 0x3b, 0xaf, 0xe4, 0x26, 0xfb, 0x50, 0xf3, 0xc6, 0xcd, 0xf9, 0x9a,
+ 0x94, 0xc1, 0x2a, 0x41, 0xcf, 0xc2, 0x45, 0xd2, 0x3a, 0x45, 0xbf, 0xdb, 0x53, 0xdf, 0x2d, 0x45,
+ 0xaa, 0x5b, 0xd9, 0xaa, 0xa9, 0xfc, 0x06, 0x55, 0x53, 0xbe, 0x59, 0xfe, 0x1f, 0x14, 0x43, 0x67,
+ 0xd0, 0xfc, 0xff, 0x6c, 0x8f, 0xf5, 0x4f, 0x03, 0x56, 0x67, 0x12, 0x13, 0xd9, 0x80, 0x77, 0x32,
+ 0x60, 0x3b, 0x4e, 0x3a, 0x01, 0x8e, 0x3e, 0x97, 0x49, 0xa6, 0xeb, 0x50, 0xf5, 0x8c, 0x84, 0xd0,
+ 0xc8, 0x08, 0xe1, 0xdd, 0x91, 0x10, 0x2a, 0xbc, 0x94, 0xfe, 0x6a, 0x2a, 0x65, 0x0a, 0x49, 0x3a,
+ 0xd3, 0x6a, 0xa9, 0xbe, 0x79, 0x1f, 0x2f, 0x91, 0x46, 0x97, 0x92, 0xcb, 0xe2, 0x94, 0x5c, 0x9e,
+ 0xa7, 0x1e, 0xa5, 0xf3, 0xd5, 0xe3, 0xbf, 0xbd, 0xda, 0xd6, 0xbf, 0x0d, 0x20, 0xb3, 0xc5, 0x09,
+ 0xb9, 0x03, 0xd5, 0x38, 0xf0, 0xed, 0xcc, 0x8b, 0x84, 0x8a, 0x5f, 0x25, 0x0e, 0xfc, 0x5d, 0xf9,
+ 0x32, 0x71, 0x41, 0x38, 0x8c, 0xb9, 0xe1, 0xc8, 0x67, 0xc2, 0xe1, 0x4e, 0xef, 0x74, 0x71, 0x9e,
+ 0x1c, 0xcf, 0xce, 0x75, 0xa9, 0xad, 0x2e, 0x2d, 0xb0, 0xd5, 0xe5, 0xb7, 0xb3, 0xd5, 0x7b, 0x85,
+ 0x4a, 0xa1, 0x59, 0xa4, 0x93, 0xe7, 0xcf, 0x72, 0xa1, 0x9e, 0xfd, 0x64, 0x17, 0x84, 0x69, 0x31,
+ 0x54, 0x55, 0x55, 0xce, 0xcd, 0x6c, 0x9d, 0xa1, 0x3f, 0x3a, 0xc6, 0x05, 0xc4, 0x5d, 0x68, 0xa4,
+ 0x1f, 0xf9, 0xb6, 0x1b, 0x7a, 0xa8, 0xb7, 0xb7, 0x9e, 0x1a, 0xb7, 0x43, 0x0f, 0xad, 0xdf, 0xe4,
+ 0xa0, 0x96, 0xf9, 0x2a, 0x5f, 0x7a, 0x90, 0x2f, 0xa0, 0x2a, 0x12, 0x2b, 0xc3, 0x2e, 0x9e, 0xe9,
+ 0x62, 0xe9, 0xfd, 0x8b, 0x43, 0xf4, 0x82, 0xf9, 0x54, 0x78, 0xa6, 0x6f, 0x00, 0x95, 0x44, 0x1b,
+ 0xac, 0xe7, 0xb0, 0x32, 0xd5, 0x49, 0x4c, 0x28, 0x47, 0x0e, 0xe7, 0xc8, 0x02, 0x3d, 0x9d, 0xb4,
+ 0x49, 0x2c, 0xa8, 0xc7, 0x49, 0x27, 0xe6, 0x3e, 0x4f, 0xa4, 0xd8, 0x18, 0xfa, 0xa6, 0x66, 0x6c,
+ 0x16, 0x42, 0x2d, 0xa3, 0xf0, 0xe4, 0x3a, 0x14, 0xf1, 0xcc, 0x71, 0xf5, 0x0b, 0xd2, 0xee, 0x15,
+ 0xaa, 0x9a, 0xc4, 0x84, 0x52, 0xc4, 0xf0, 0xd8, 0x3f, 0x53, 0x24, 0xbb, 0x57, 0xa8, 0x6e, 0x0b,
+ 0xc4, 0x78, 0x55, 0x12, 0x21, 0x9b, 0x5b, 0x75, 0x00, 0x59, 0x07, 0xdb, 0x7c, 0x18, 0xa1, 0xf5,
+ 0x8f, 0x9c, 0x7e, 0x2b, 0x42, 0x11, 0xf3, 0xdb, 0x50, 0x11, 0x53, 0x1c, 0x44, 0xf2, 0x6a, 0xe4,
+ 0xd6, 0x8b, 0xfa, 0x6a, 0xa4, 0x46, 0xb2, 0x09, 0x2b, 0x11, 0x32, 0x9b, 0xb3, 0xa1, 0x9d, 0xbe,
+ 0x79, 0x18, 0xf3, 0xde, 0x3c, 0x1a, 0x11, 0xb2, 0x23, 0x36, 0x3c, 0xd2, 0x2f, 0x1f, 0xef, 0x8a,
+ 0x2f, 0x3e, 0x41, 0x10, 0x06, 0x5a, 0xa2, 0xe4, 0xab, 0xc6, 0xf0, 0x79, 0x40, 0x28, 0xdc, 0x50,
+ 0x5d, 0x42, 0xcf, 0x39, 0xda, 0xfd, 0xd0, 0x75, 0xfa, 0x3e, 0xf7, 0x31, 0xd6, 0x55, 0xe8, 0xda,
+ 0xcc, 0x28, 0x5b, 0x61, 0xd8, 0x97, 0x2f, 0x0b, 0xf4, 0x7b, 0x12, 0x4a, 0x25, 0x72, 0x7f, 0x04,
+ 0xb4, 0xfe, 0x65, 0x00, 0x8c, 0xbf, 0xf0, 0xc9, 0x3d, 0xa8, 0x3b, 0xfd, 0x7e, 0x78, 0x6a, 0x87,
+ 0xcc, 0xef, 0xfa, 0x81, 0x16, 0x00, 0xc3, 0xcc, 0xd1, 0x9a, 0xb4, 0x3f, 0x97, 0x66, 0xb2, 0x07,
+ 0x8d, 0xac, 0x5b, 0x5a, 0x55, 0x2e, 0x98, 0x8e, 0xeb, 0x19, 0xaa, 0x58, 0x9c, 0x63, 0xc5, 0xa5,
+ 0xaa, 0xeb, 0x54, 0x48, 0x94, 0xd3, 0x53, 0x65, 0x1b, 0x3b, 0xa5, 0xd9, 0x33, 0x9f, 0x71, 0x4a,
+ 0x6b, 0xaf, 0x7b, 0x70, 0x15, 0xcf, 0xa2, 0x70, 0x9c, 0xf9, 0xa4, 0x7c, 0x57, 0x69, 0x43, 0x59,
+ 0x53, 0xb7, 0x36, 0x94, 0x07, 0xce, 0x99, 0xed, 0x74, 0xd1, 0x2c, 0xce, 0x0b, 0x4e, 0x69, 0xe0,
+ 0x9c, 0x6d, 0x76, 0xc5, 0xf7, 0xde, 0xaa, 0x1a, 0xdf, 0x65, 0xe8, 0x61, 0xc0, 0x7d, 0xa7, 0x1f,
+ 0xeb, 0xe7, 0xac, 0xcb, 0x36, 0xbd, 0x29, 0x41, 0xdb, 0x63, 0x8c, 0xf5, 0xbb, 0x22, 0x90, 0xd9,
+ 0x37, 0x27, 0xb2, 0x0b, 0x45, 0x0f, 0xfb, 0xce, 0x70, 0x81, 0x37, 0x83, 0x19, 0x70, 0x6b, 0x47,
+ 0x20, 0xa9, 0x22, 0x10, 0x4c, 0x4e, 0x27, 0x4d, 0x7e, 0xcb, 0x32, 0x6d, 0x0a, 0x24, 0x55, 0x04,
+ 0x6b, 0xbf, 0x35, 0xa0, 0x28, 0xa9, 0xc9, 0x4d, 0x28, 0xa7, 0x8f, 0x58, 0xea, 0xd8, 0x8b, 0x03,
+ 0x91, 0x9a, 0xc8, 0x26, 0xd4, 0x8e, 0xfd, 0x33, 0xf4, 0x6c, 0xb5, 0x82, 0x79, 0x07, 0x5e, 0xde,
+ 0x99, 0xdd, 0x2b, 0x14, 0x24, 0x68, 0x47, 0x4f, 0x7a, 0x55, 0xc4, 0x28, 0x50, 0xbb, 0xa4, 0x89,
+ 0xf2, 0x73, 0x88, 0x76, 0xaf, 0xd0, 0x66, 0x06, 0xa5, 0x98, 0x36, 0x01, 0x32, 0xcf, 0x64, 0xc5,
+ 0x45, 0x9f, 0xc9, 0x32, 0xa0, 0xad, 0x55, 0x58, 0xe9, 0x71, 0x1e, 0xa9, 0x59, 0x48, 0x19, 0x58,
+ 0xfb, 0x7b, 0x0e, 0x8a, 0x72, 0x6f, 0xc8, 0x7d, 0xa8, 0xc9, 0xce, 0x98, 0x3b, 0x3c, 0x89, 0x55,
+ 0xf9, 0x32, 0x5a, 0x91, 0xe8, 0x39, 0x94, 0x1d, 0xe4, 0x3d, 0xa8, 0x75, 0x59, 0xe4, 0xa6, 0x7e,
+ 0xa9, 0xc8, 0x80, 0x30, 0x8e, 0x5d, 0x04, 0xa0, 0x6d, 0xa3, 0x7c, 0x65, 0x2c, 0xa4, 0x2e, 0xd2,
+ 0xf8, 0x44, 0x3e, 0x22, 0x7e, 0x07, 0xab, 0xa9, 0x03, 0x48, 0x7e, 0xb9, 0x90, 0xbd, 0x42, 0x25,
+ 0xd7, 0x34, 0x46, 0xa1, 0xb3, 0xda, 0x50, 0xcf, 0x3e, 0x90, 0x8b, 0xba, 0x2c, 0x48, 0x06, 0x1d,
+ 0x64, 0x32, 0xce, 0x0d, 0xaa, 0x5b, 0x7b, 0x85, 0x8a, 0xd1, 0xcc, 0xab, 0x8f, 0x76, 0xeb, 0x36,
+ 0x94, 0xd3, 0xa7, 0xc9, 0x51, 0xc6, 0x13, 0xde, 0x39, 0x9d, 0xf1, 0xb6, 0x7e, 0xfc, 0xd7, 0xd7,
+ 0xb7, 0x72, 0x7f, 0x7b, 0x7d, 0x2b, 0xf7, 0xed, 0xeb, 0x5b, 0xb9, 0x9f, 0xdf, 0x56, 0xb3, 0xf5,
+ 0x43, 0xf9, 0x3f, 0x95, 0xd9, 0x7f, 0xd1, 0x74, 0x4a, 0x32, 0xb0, 0x0f, 0xfe, 0x13, 0x00, 0x00,
+ 0xff, 0xff, 0x45, 0x41, 0xb2, 0xde, 0xbf, 0x19, 0x00, 0x00,
}
func (m *VirtualService) Marshal() (dAtA []byte, err error) {
@@ -4680,6 +4750,18 @@ func (m *HTTPRewrite) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ if m.UriRegex != nil {
+ {
+ size, err := m.UriRegex.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintVirtualService(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1a
+ }
if len(m.Authority) > 0 {
i -= len(m.Authority)
copy(dAtA[i:], m.Authority)
@@ -4697,6 +4779,47 @@ func (m *HTTPRewrite) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
+func (m *UriRegexRewrite) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *UriRegexRewrite) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *UriRegexRewrite) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.XXX_unrecognized != nil {
+ i -= len(m.XXX_unrecognized)
+ copy(dAtA[i:], m.XXX_unrecognized)
+ }
+ if len(m.Substitution) > 0 {
+ i -= len(m.Substitution)
+ copy(dAtA[i:], m.Substitution)
+ i = encodeVarintVirtualService(dAtA, i, uint64(len(m.Substitution)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.Pattern) > 0 {
+ i -= len(m.Pattern)
+ copy(dAtA[i:], m.Pattern)
+ i = encodeVarintVirtualService(dAtA, i, uint64(len(m.Pattern)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *StringMatch) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -5769,6 +5892,30 @@ func (m *HTTPRewrite) Size() (n int) {
if l > 0 {
n += 1 + l + sovVirtualService(uint64(l))
}
+ if m.UriRegex != nil {
+ l = m.UriRegex.Size()
+ n += 1 + l + sovVirtualService(uint64(l))
+ }
+ if m.XXX_unrecognized != nil {
+ n += len(m.XXX_unrecognized)
+ }
+ return n
+}
+
+func (m *UriRegexRewrite) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Pattern)
+ if l > 0 {
+ n += 1 + l + sovVirtualService(uint64(l))
+ }
+ l = len(m.Substitution)
+ if l > 0 {
+ n += 1 + l + sovVirtualService(uint64(l))
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -9818,6 +9965,160 @@ func (m *HTTPRewrite) Unmarshal(dAtA []byte) error {
}
m.Authority = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field UriRegex", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowVirtualService
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthVirtualService
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthVirtualService
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.UriRegex == nil {
+ m.UriRegex = &UriRegexRewrite{}
+ }
+ if err := m.UriRegex.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) < 0 {
+ return ErrInvalidLengthVirtualService
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *UriRegexRewrite) 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: UriRegexRewrite: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: UriRegexRewrite: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Pattern", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowVirtualService
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthVirtualService
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthVirtualService
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Pattern = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Substitution", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowVirtualService
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthVirtualService
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthVirtualService
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Substitution = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipVirtualService(dAtA[iNdEx:])
diff --git a/networking/v1beta1/virtual_service.proto b/networking/v1beta1/virtual_service.proto
index 00537cdf33a..00dda130aac 100644
--- a/networking/v1beta1/virtual_service.proto
+++ b/networking/v1beta1/virtual_service.proto
@@ -1464,6 +1464,16 @@ message HTTPRewrite {
// rewrite the Authority/Host header with this value.
string authority = 2;
+
+ // uri_regex can be used for rewriting portions of path that match the
+ // pattern during forwarding the request
+ // RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
+ UriRegexRewrite uri_regex = 3;
+}
+
+message UriRegexRewrite {
+ string pattern = 1;
+ string substitution = 2;
}
// Describes how to match a given string in HTTP headers. Match is
diff --git a/networking/v1beta1/virtual_service_deepcopy.gen.go b/networking/v1beta1/virtual_service_deepcopy.gen.go
index fb2e57deb28..f208e6e196f 100644
--- a/networking/v1beta1/virtual_service_deepcopy.gen.go
+++ b/networking/v1beta1/virtual_service_deepcopy.gen.go
@@ -479,6 +479,27 @@ func (in *HTTPRewrite) DeepCopyInterface() interface{} {
return in.DeepCopy()
}
+// DeepCopyInto supports using UriRegexRewrite within kubernetes types, where deepcopy-gen is used.
+func (in *UriRegexRewrite) DeepCopyInto(out *UriRegexRewrite) {
+ p := proto.Clone(in).(*UriRegexRewrite)
+ *out = *p
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UriRegexRewrite. Required by controller-gen.
+func (in *UriRegexRewrite) DeepCopy() *UriRegexRewrite {
+ if in == nil {
+ return nil
+ }
+ out := new(UriRegexRewrite)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new UriRegexRewrite. Required by controller-gen.
+func (in *UriRegexRewrite) DeepCopyInterface() interface{} {
+ return in.DeepCopy()
+}
+
// DeepCopyInto supports using StringMatch within kubernetes types, where deepcopy-gen is used.
func (in *StringMatch) DeepCopyInto(out *StringMatch) {
p := proto.Clone(in).(*StringMatch)
diff --git a/networking/v1beta1/virtual_service_json.gen.go b/networking/v1beta1/virtual_service_json.gen.go
index 03e0fe10c6e..cb2977847ef 100644
--- a/networking/v1beta1/virtual_service_json.gen.go
+++ b/networking/v1beta1/virtual_service_json.gen.go
@@ -331,6 +331,17 @@ func (this *HTTPRewrite) UnmarshalJSON(b []byte) error {
return VirtualServiceUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}
+// MarshalJSON is a custom marshaler for UriRegexRewrite
+func (this *UriRegexRewrite) MarshalJSON() ([]byte, error) {
+ str, err := VirtualServiceMarshaler.MarshalToString(this)
+ return []byte(str), err
+}
+
+// UnmarshalJSON is a custom unmarshaler for UriRegexRewrite
+func (this *UriRegexRewrite) UnmarshalJSON(b []byte) error {
+ return VirtualServiceUnmarshaler.Unmarshal(bytes.NewReader(b), this)
+}
+
// MarshalJSON is a custom marshaler for StringMatch
func (this *StringMatch) MarshalJSON() ([]byte, error) {
str, err := VirtualServiceMarshaler.MarshalToString(this)
diff --git a/python/istio_api/networking/v1alpha3/virtual_service_pb2.py b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py
index 812886f4f8e..c5acc1648b9 100644
--- a/python/istio_api/networking/v1alpha3/virtual_service_pb2.py
+++ b/python/istio_api/networking/v1alpha3/virtual_service_pb2.py
@@ -23,7 +23,7 @@
package='istio.networking.v1alpha3',
syntax='proto3',
serialized_options=_b('Z istio.io/api/networking/v1alpha3'),
- serialized_pb=_b('\n)networking/v1alpha3/virtual_service.proto\x12\x19istio.networking.v1alpha3\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xdc\x01\n\x0eVirtualService\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x10\n\x08gateways\x18\x02 \x03(\t\x12\x32\n\x04http\x18\x03 \x03(\x0b\x32$.istio.networking.v1alpha3.HTTPRoute\x12\x30\n\x03tls\x18\x05 \x03(\x0b\x32#.istio.networking.v1alpha3.TLSRoute\x12\x30\n\x03tcp\x18\x04 \x03(\x0b\x32#.istio.networking.v1alpha3.TCPRoute\x12\x11\n\texport_to\x18\x06 \x03(\t\"g\n\x0b\x44\x65stination\x12\x11\n\x04host\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x35\n\x04port\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\"\x94\x07\n\tHTTPRoute\x12\x0c\n\x04name\x18\x11 \x01(\t\x12:\n\x05match\x18\x01 \x03(\x0b\x32+.istio.networking.v1alpha3.HTTPMatchRequest\x12>\n\x05route\x18\x02 \x03(\x0b\x32/.istio.networking.v1alpha3.HTTPRouteDestination\x12\x39\n\x08redirect\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.HTTPRedirect\x12\x35\n\x08\x64\x65legate\x18\x14 \x01(\x0b\x32#.istio.networking.v1alpha3.Delegate\x12\x37\n\x07rewrite\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.HTTPRewrite\x12*\n\x07timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x07retries\x18\x07 \x01(\x0b\x32$.istio.networking.v1alpha3.HTTPRetry\x12<\n\x05\x66\x61ult\x18\x08 \x01(\x0b\x32-.istio.networking.v1alpha3.HTTPFaultInjection\x12\x36\n\x06mirror\x18\t \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x38\n\x0emirror_percent\x18\x12 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x02\x18\x01\x12=\n\x11mirror_percentage\x18\x13 \x01(\x0b\x32\".istio.networking.v1alpha3.Percent\x12:\n\x0b\x63ors_policy\x18\n \x01(\x0b\x32%.istio.networking.v1alpha3.CorsPolicy\x12\x33\n\x07headers\x18\x10 \x01(\x0b\x32\".istio.networking.v1alpha3.HeadersJ\x04\x08\x05\x10\x06J\x04\x08\x0b\x10\x10R\x11websocket_upgradeR\x0e\x61ppend_headersR\x17remove_response_headersR\x17\x61ppend_response_headersR\x16remove_request_headersR\x16\x61ppend_request_headers\"+\n\x08\x44\x65legate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tnamespace\x18\x02 \x01(\t\"\xa9\x03\n\x07Headers\x12\x44\n\x07request\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.Headers.HeaderOperations\x12\x45\n\x08response\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.Headers.HeaderOperations\x1a\x90\x02\n\x10HeaderOperations\x12I\n\x03set\x18\x01 \x03(\x0b\x32<.istio.networking.v1alpha3.Headers.HeaderOperations.SetEntry\x12I\n\x03\x61\x64\x64\x18\x02 \x03(\x0b\x32<.istio.networking.v1alpha3.Headers.HeaderOperations.AddEntry\x12\x0e\n\x06remove\x18\x03 \x03(\t\x1a*\n\x08SetEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a*\n\x08\x41\x64\x64\x45ntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x89\x01\n\x08TLSRoute\x12\x41\n\x05match\x18\x01 \x03(\x0b\x32-.istio.networking.v1alpha3.TLSMatchAttributesB\x03\xe0\x41\x02\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\x83\x01\n\x08TCPRoute\x12;\n\x05match\x18\x01 \x03(\x0b\x32,.istio.networking.v1alpha3.L4MatchAttributes\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\xea\x07\n\x10HTTPMatchRequest\x12\x0c\n\x04name\x18\x0b \x01(\t\x12\x33\n\x03uri\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x36\n\x06scheme\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x36\n\x06method\x18\x03 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x39\n\tauthority\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12I\n\x07headers\x18\x05 \x03(\x0b\x32\x38.istio.networking.v1alpha3.HTTPMatchRequest.HeadersEntry\x12\x0c\n\x04port\x18\x06 \x01(\r\x12T\n\rsource_labels\x18\x07 \x03(\x0b\x32=.istio.networking.v1alpha3.HTTPMatchRequest.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x08 \x03(\t\x12R\n\x0cquery_params\x18\t \x03(\x0b\x32<.istio.networking.v1alpha3.HTTPMatchRequest.QueryParamsEntry\x12\x17\n\x0fignore_uri_case\x18\n \x01(\x08\x12X\n\x0fwithout_headers\x18\x0c \x03(\x0b\x32?.istio.networking.v1alpha3.HTTPMatchRequest.WithoutHeadersEntry\x12\x18\n\x10source_namespace\x18\r \x01(\t\x1aV\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch:\x02\x38\x01\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aZ\n\x10QueryParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch:\x02\x38\x01\x1a]\n\x13WithoutHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch:\x02\x38\x01\"\x85\x02\n\x14HTTPRouteDestination\x12@\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.DestinationB\x03\xe0\x41\x02\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12\x33\n\x07headers\x18\x07 \x01(\x0b\x32\".istio.networking.v1alpha3.HeadersJ\x04\x08\x03\x10\x07R\x17remove_response_headersR\x17\x61ppend_response_headersR\x16remove_request_headersR\x16\x61ppend_request_headers\"d\n\x10RouteDestination\x12@\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.DestinationB\x03\xe0\x41\x02\x12\x0e\n\x06weight\x18\x02 \x01(\x05\"\x8d\x02\n\x11L4MatchAttributes\x12\x1b\n\x13\x64\x65stination_subnets\x18\x01 \x03(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x15\n\rsource_subnet\x18\x03 \x01(\t\x12U\n\rsource_labels\x18\x04 \x03(\x0b\x32>.istio.networking.v1alpha3.L4MatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x05 \x03(\t\x12\x18\n\x10source_namespace\x18\x06 \x01(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa5\x02\n\x12TLSMatchAttributes\x12\x16\n\tsni_hosts\x18\x01 \x03(\tB\x03\xe0\x41\x02\x12\x1b\n\x13\x64\x65stination_subnets\x18\x02 \x03(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12V\n\rsource_labels\x18\x05 \x03(\x0b\x32?.istio.networking.v1alpha3.TLSMatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x06 \x03(\t\x12\x18\n\x10source_namespace\x18\x07 \x01(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01J\x04\x08\x04\x10\x05R\rsource_subnet\"E\n\x0cHTTPRedirect\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\x12\x15\n\rredirect_code\x18\x03 \x01(\r\"-\n\x0bHTTPRewrite\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\"O\n\x0bStringMatch\x12\x0f\n\x05\x65xact\x18\x01 \x01(\tH\x00\x12\x10\n\x06prefix\x18\x02 \x01(\tH\x00\x12\x0f\n\x05regex\x18\x03 \x01(\tH\x00\x42\x0c\n\nmatch_type\"\xa5\x01\n\tHTTPRetry\x12\x15\n\x08\x61ttempts\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x32\n\x0fper_try_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08retry_on\x18\x03 \x01(\t\x12;\n\x17retry_remote_localities\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x8e\x02\n\nCorsPolicy\x12\x18\n\x0c\x61llow_origin\x18\x01 \x03(\tB\x02\x18\x01\x12=\n\rallow_origins\x18\x07 \x03(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x15\n\rallow_methods\x18\x02 \x03(\t\x12\x15\n\rallow_headers\x18\x03 \x03(\t\x12\x16\n\x0e\x65xpose_headers\x18\x04 \x03(\t\x12*\n\x07max_age\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x11\x61llow_credentials\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x9e\x04\n\x12HTTPFaultInjection\x12\x42\n\x05\x64\x65lay\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Delay\x12\x42\n\x05\x61\x62ort\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Abort\x1a\xd6\x01\n\x05\x44\x65lay\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x35\n\x0b\x66ixed_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x02H\x00\x12\x36\n\x11\x65xponential_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x11\n\x0fhttp_delay_type\x1a\xa6\x01\n\x05\x41\x62ort\x12\x1a\n\x0bhttp_status\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02H\x00\x12\x15\n\x0bgrpc_status\x18\x03 \x01(\tH\x00\x12\x15\n\x0bhttp2_error\x18\x04 \x01(\tH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x0c\n\nerror_typeJ\x04\x08\x01\x10\x02R\x07percent\"*\n\x0cPortSelector\x12\x0e\n\x06number\x18\x01 \x01(\rJ\x04\x08\x02\x10\x03R\x04name\"\x18\n\x07Percent\x12\r\n\x05value\x18\x01 \x01(\x01\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3')
+ serialized_pb=_b('\n)networking/v1alpha3/virtual_service.proto\x12\x19istio.networking.v1alpha3\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xdc\x01\n\x0eVirtualService\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x10\n\x08gateways\x18\x02 \x03(\t\x12\x32\n\x04http\x18\x03 \x03(\x0b\x32$.istio.networking.v1alpha3.HTTPRoute\x12\x30\n\x03tls\x18\x05 \x03(\x0b\x32#.istio.networking.v1alpha3.TLSRoute\x12\x30\n\x03tcp\x18\x04 \x03(\x0b\x32#.istio.networking.v1alpha3.TCPRoute\x12\x11\n\texport_to\x18\x06 \x03(\t\"g\n\x0b\x44\x65stination\x12\x11\n\x04host\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x35\n\x04port\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.PortSelector\"\x94\x07\n\tHTTPRoute\x12\x0c\n\x04name\x18\x11 \x01(\t\x12:\n\x05match\x18\x01 \x03(\x0b\x32+.istio.networking.v1alpha3.HTTPMatchRequest\x12>\n\x05route\x18\x02 \x03(\x0b\x32/.istio.networking.v1alpha3.HTTPRouteDestination\x12\x39\n\x08redirect\x18\x03 \x01(\x0b\x32\'.istio.networking.v1alpha3.HTTPRedirect\x12\x35\n\x08\x64\x65legate\x18\x14 \x01(\x0b\x32#.istio.networking.v1alpha3.Delegate\x12\x37\n\x07rewrite\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.HTTPRewrite\x12*\n\x07timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x07retries\x18\x07 \x01(\x0b\x32$.istio.networking.v1alpha3.HTTPRetry\x12<\n\x05\x66\x61ult\x18\x08 \x01(\x0b\x32-.istio.networking.v1alpha3.HTTPFaultInjection\x12\x36\n\x06mirror\x18\t \x01(\x0b\x32&.istio.networking.v1alpha3.Destination\x12\x38\n\x0emirror_percent\x18\x12 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x02\x18\x01\x12=\n\x11mirror_percentage\x18\x13 \x01(\x0b\x32\".istio.networking.v1alpha3.Percent\x12:\n\x0b\x63ors_policy\x18\n \x01(\x0b\x32%.istio.networking.v1alpha3.CorsPolicy\x12\x33\n\x07headers\x18\x10 \x01(\x0b\x32\".istio.networking.v1alpha3.HeadersJ\x04\x08\x05\x10\x06J\x04\x08\x0b\x10\x10R\x11websocket_upgradeR\x0e\x61ppend_headersR\x17remove_response_headersR\x17\x61ppend_response_headersR\x16remove_request_headersR\x16\x61ppend_request_headers\"+\n\x08\x44\x65legate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tnamespace\x18\x02 \x01(\t\"\xa9\x03\n\x07Headers\x12\x44\n\x07request\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.Headers.HeaderOperations\x12\x45\n\x08response\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.Headers.HeaderOperations\x1a\x90\x02\n\x10HeaderOperations\x12I\n\x03set\x18\x01 \x03(\x0b\x32<.istio.networking.v1alpha3.Headers.HeaderOperations.SetEntry\x12I\n\x03\x61\x64\x64\x18\x02 \x03(\x0b\x32<.istio.networking.v1alpha3.Headers.HeaderOperations.AddEntry\x12\x0e\n\x06remove\x18\x03 \x03(\t\x1a*\n\x08SetEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a*\n\x08\x41\x64\x64\x45ntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x89\x01\n\x08TLSRoute\x12\x41\n\x05match\x18\x01 \x03(\x0b\x32-.istio.networking.v1alpha3.TLSMatchAttributesB\x03\xe0\x41\x02\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\x83\x01\n\x08TCPRoute\x12;\n\x05match\x18\x01 \x03(\x0b\x32,.istio.networking.v1alpha3.L4MatchAttributes\x12:\n\x05route\x18\x02 \x03(\x0b\x32+.istio.networking.v1alpha3.RouteDestination\"\xea\x07\n\x10HTTPMatchRequest\x12\x0c\n\x04name\x18\x0b \x01(\t\x12\x33\n\x03uri\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x36\n\x06scheme\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x36\n\x06method\x18\x03 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x39\n\tauthority\x18\x04 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12I\n\x07headers\x18\x05 \x03(\x0b\x32\x38.istio.networking.v1alpha3.HTTPMatchRequest.HeadersEntry\x12\x0c\n\x04port\x18\x06 \x01(\r\x12T\n\rsource_labels\x18\x07 \x03(\x0b\x32=.istio.networking.v1alpha3.HTTPMatchRequest.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x08 \x03(\t\x12R\n\x0cquery_params\x18\t \x03(\x0b\x32<.istio.networking.v1alpha3.HTTPMatchRequest.QueryParamsEntry\x12\x17\n\x0fignore_uri_case\x18\n \x01(\x08\x12X\n\x0fwithout_headers\x18\x0c \x03(\x0b\x32?.istio.networking.v1alpha3.HTTPMatchRequest.WithoutHeadersEntry\x12\x18\n\x10source_namespace\x18\r \x01(\t\x1aV\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch:\x02\x38\x01\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aZ\n\x10QueryParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch:\x02\x38\x01\x1a]\n\x13WithoutHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.StringMatch:\x02\x38\x01\"\x85\x02\n\x14HTTPRouteDestination\x12@\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.DestinationB\x03\xe0\x41\x02\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12\x33\n\x07headers\x18\x07 \x01(\x0b\x32\".istio.networking.v1alpha3.HeadersJ\x04\x08\x03\x10\x07R\x17remove_response_headersR\x17\x61ppend_response_headersR\x16remove_request_headersR\x16\x61ppend_request_headers\"d\n\x10RouteDestination\x12@\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.istio.networking.v1alpha3.DestinationB\x03\xe0\x41\x02\x12\x0e\n\x06weight\x18\x02 \x01(\x05\"\x8d\x02\n\x11L4MatchAttributes\x12\x1b\n\x13\x64\x65stination_subnets\x18\x01 \x03(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x15\n\rsource_subnet\x18\x03 \x01(\t\x12U\n\rsource_labels\x18\x04 \x03(\x0b\x32>.istio.networking.v1alpha3.L4MatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x05 \x03(\t\x12\x18\n\x10source_namespace\x18\x06 \x01(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa5\x02\n\x12TLSMatchAttributes\x12\x16\n\tsni_hosts\x18\x01 \x03(\tB\x03\xe0\x41\x02\x12\x1b\n\x13\x64\x65stination_subnets\x18\x02 \x03(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12V\n\rsource_labels\x18\x05 \x03(\x0b\x32?.istio.networking.v1alpha3.TLSMatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x06 \x03(\t\x12\x18\n\x10source_namespace\x18\x07 \x01(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01J\x04\x08\x04\x10\x05R\rsource_subnet\"E\n\x0cHTTPRedirect\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\x12\x15\n\rredirect_code\x18\x03 \x01(\r\"l\n\x0bHTTPRewrite\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\x12=\n\turi_regex\x18\x03 \x01(\x0b\x32*.istio.networking.v1alpha3.UriRegexRewrite\"8\n\x0fUriRegexRewrite\x12\x0f\n\x07pattern\x18\x01 \x01(\t\x12\x14\n\x0csubstitution\x18\x02 \x01(\t\"O\n\x0bStringMatch\x12\x0f\n\x05\x65xact\x18\x01 \x01(\tH\x00\x12\x10\n\x06prefix\x18\x02 \x01(\tH\x00\x12\x0f\n\x05regex\x18\x03 \x01(\tH\x00\x42\x0c\n\nmatch_type\"\xa5\x01\n\tHTTPRetry\x12\x15\n\x08\x61ttempts\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x32\n\x0fper_try_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08retry_on\x18\x03 \x01(\t\x12;\n\x17retry_remote_localities\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x8e\x02\n\nCorsPolicy\x12\x18\n\x0c\x61llow_origin\x18\x01 \x03(\tB\x02\x18\x01\x12=\n\rallow_origins\x18\x07 \x03(\x0b\x32&.istio.networking.v1alpha3.StringMatch\x12\x15\n\rallow_methods\x18\x02 \x03(\t\x12\x15\n\rallow_headers\x18\x03 \x03(\t\x12\x16\n\x0e\x65xpose_headers\x18\x04 \x03(\t\x12*\n\x07max_age\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x11\x61llow_credentials\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x9e\x04\n\x12HTTPFaultInjection\x12\x42\n\x05\x64\x65lay\x18\x01 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Delay\x12\x42\n\x05\x61\x62ort\x18\x02 \x01(\x0b\x32\x33.istio.networking.v1alpha3.HTTPFaultInjection.Abort\x1a\xd6\x01\n\x05\x44\x65lay\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x35\n\x0b\x66ixed_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x02H\x00\x12\x36\n\x11\x65xponential_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x11\n\x0fhttp_delay_type\x1a\xa6\x01\n\x05\x41\x62ort\x12\x1a\n\x0bhttp_status\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02H\x00\x12\x15\n\x0bgrpc_status\x18\x03 \x01(\tH\x00\x12\x15\n\x0bhttp2_error\x18\x04 \x01(\tH\x00\x12\x36\n\npercentage\x18\x05 \x01(\x0b\x32\".istio.networking.v1alpha3.PercentB\x0c\n\nerror_typeJ\x04\x08\x01\x10\x02R\x07percent\"*\n\x0cPortSelector\x12\x0e\n\x06number\x18\x01 \x01(\rJ\x04\x08\x02\x10\x03R\x04name\"\x18\n\x07Percent\x12\r\n\x05value\x18\x01 \x01(\x01\x42\"Z istio.io/api/networking/v1alpha3b\x06proto3')
,
dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,])
@@ -1151,6 +1151,13 @@
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='uri_regex', full_name='istio.networking.v1alpha3.HTTPRewrite.uri_regex', index=2,
+ number=3, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
@@ -1164,7 +1171,45 @@
oneofs=[
],
serialized_start=4173,
- serialized_end=4218,
+ serialized_end=4281,
+)
+
+
+_URIREGEXREWRITE = _descriptor.Descriptor(
+ name='UriRegexRewrite',
+ full_name='istio.networking.v1alpha3.UriRegexRewrite',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='pattern', full_name='istio.networking.v1alpha3.UriRegexRewrite.pattern', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='substitution', full_name='istio.networking.v1alpha3.UriRegexRewrite.substitution', index=1,
+ number=2, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=4283,
+ serialized_end=4339,
)
@@ -1211,8 +1256,8 @@
name='match_type', full_name='istio.networking.v1alpha3.StringMatch.match_type',
index=0, containing_type=None, fields=[]),
],
- serialized_start=4220,
- serialized_end=4299,
+ serialized_start=4341,
+ serialized_end=4420,
)
@@ -1263,8 +1308,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=4302,
- serialized_end=4467,
+ serialized_start=4423,
+ serialized_end=4588,
)
@@ -1336,8 +1381,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=4470,
- serialized_end=4740,
+ serialized_start=4591,
+ serialized_end=4861,
)
@@ -1391,8 +1436,8 @@
name='http_delay_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Delay.http_delay_type',
index=0, containing_type=None, fields=[]),
],
- serialized_start=4902,
- serialized_end=5116,
+ serialized_start=5023,
+ serialized_end=5237,
)
_HTTPFAULTINJECTION_ABORT = _descriptor.Descriptor(
@@ -1445,8 +1490,8 @@
name='error_type', full_name='istio.networking.v1alpha3.HTTPFaultInjection.Abort.error_type',
index=0, containing_type=None, fields=[]),
],
- serialized_start=5119,
- serialized_end=5285,
+ serialized_start=5240,
+ serialized_end=5406,
)
_HTTPFAULTINJECTION = _descriptor.Descriptor(
@@ -1482,8 +1527,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=4743,
- serialized_end=5285,
+ serialized_start=4864,
+ serialized_end=5406,
)
@@ -1513,8 +1558,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=5287,
- serialized_end=5329,
+ serialized_start=5408,
+ serialized_end=5450,
)
@@ -1544,8 +1589,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=5331,
- serialized_end=5355,
+ serialized_start=5452,
+ serialized_end=5476,
)
_VIRTUALSERVICE.fields_by_name['http'].message_type = _HTTPROUTE
@@ -1598,6 +1643,7 @@
_L4MATCHATTRIBUTES.fields_by_name['source_labels'].message_type = _L4MATCHATTRIBUTES_SOURCELABELSENTRY
_TLSMATCHATTRIBUTES_SOURCELABELSENTRY.containing_type = _TLSMATCHATTRIBUTES
_TLSMATCHATTRIBUTES.fields_by_name['source_labels'].message_type = _TLSMATCHATTRIBUTES_SOURCELABELSENTRY
+_HTTPREWRITE.fields_by_name['uri_regex'].message_type = _URIREGEXREWRITE
_STRINGMATCH.oneofs_by_name['match_type'].fields.append(
_STRINGMATCH.fields_by_name['exact'])
_STRINGMATCH.fields_by_name['exact'].containing_oneof = _STRINGMATCH.oneofs_by_name['match_type']
@@ -1649,6 +1695,7 @@
DESCRIPTOR.message_types_by_name['TLSMatchAttributes'] = _TLSMATCHATTRIBUTES
DESCRIPTOR.message_types_by_name['HTTPRedirect'] = _HTTPREDIRECT
DESCRIPTOR.message_types_by_name['HTTPRewrite'] = _HTTPREWRITE
+DESCRIPTOR.message_types_by_name['UriRegexRewrite'] = _URIREGEXREWRITE
DESCRIPTOR.message_types_by_name['StringMatch'] = _STRINGMATCH
DESCRIPTOR.message_types_by_name['HTTPRetry'] = _HTTPRETRY
DESCRIPTOR.message_types_by_name['CorsPolicy'] = _CORSPOLICY
@@ -1827,6 +1874,13 @@
})
_sym_db.RegisterMessage(HTTPRewrite)
+UriRegexRewrite = _reflection.GeneratedProtocolMessageType('UriRegexRewrite', (_message.Message,), {
+ 'DESCRIPTOR' : _URIREGEXREWRITE,
+ '__module__' : 'networking.v1alpha3.virtual_service_pb2'
+ # @@protoc_insertion_point(class_scope:istio.networking.v1alpha3.UriRegexRewrite)
+ })
+_sym_db.RegisterMessage(UriRegexRewrite)
+
StringMatch = _reflection.GeneratedProtocolMessageType('StringMatch', (_message.Message,), {
'DESCRIPTOR' : _STRINGMATCH,
'__module__' : 'networking.v1alpha3.virtual_service_pb2'
diff --git a/python/istio_api/networking/v1beta1/virtual_service_pb2.py b/python/istio_api/networking/v1beta1/virtual_service_pb2.py
index 7eb00c7d347..7789d5caa50 100644
--- a/python/istio_api/networking/v1beta1/virtual_service_pb2.py
+++ b/python/istio_api/networking/v1beta1/virtual_service_pb2.py
@@ -23,7 +23,7 @@
package='istio.networking.v1beta1',
syntax='proto3',
serialized_options=_b('Z\037istio.io/api/networking/v1beta1'),
- serialized_pb=_b('\n(networking/v1beta1/virtual_service.proto\x12\x18istio.networking.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xd9\x01\n\x0eVirtualService\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x10\n\x08gateways\x18\x02 \x03(\t\x12\x31\n\x04http\x18\x03 \x03(\x0b\x32#.istio.networking.v1beta1.HTTPRoute\x12/\n\x03tls\x18\x05 \x03(\x0b\x32\".istio.networking.v1beta1.TLSRoute\x12/\n\x03tcp\x18\x04 \x03(\x0b\x32\".istio.networking.v1beta1.TCPRoute\x12\x11\n\texport_to\x18\x06 \x03(\t\"f\n\x0b\x44\x65stination\x12\x11\n\x04host\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x34\n\x04port\x18\x03 \x01(\x0b\x32&.istio.networking.v1beta1.PortSelector\"\x89\x07\n\tHTTPRoute\x12\x0c\n\x04name\x18\x11 \x01(\t\x12\x39\n\x05match\x18\x01 \x03(\x0b\x32*.istio.networking.v1beta1.HTTPMatchRequest\x12=\n\x05route\x18\x02 \x03(\x0b\x32..istio.networking.v1beta1.HTTPRouteDestination\x12\x38\n\x08redirect\x18\x03 \x01(\x0b\x32&.istio.networking.v1beta1.HTTPRedirect\x12\x34\n\x08\x64\x65legate\x18\x14 \x01(\x0b\x32\".istio.networking.v1beta1.Delegate\x12\x36\n\x07rewrite\x18\x04 \x01(\x0b\x32%.istio.networking.v1beta1.HTTPRewrite\x12*\n\x07timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x07retries\x18\x07 \x01(\x0b\x32#.istio.networking.v1beta1.HTTPRetry\x12;\n\x05\x66\x61ult\x18\x08 \x01(\x0b\x32,.istio.networking.v1beta1.HTTPFaultInjection\x12\x35\n\x06mirror\x18\t \x01(\x0b\x32%.istio.networking.v1beta1.Destination\x12\x38\n\x0emirror_percent\x18\x12 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x02\x18\x01\x12<\n\x11mirror_percentage\x18\x13 \x01(\x0b\x32!.istio.networking.v1beta1.Percent\x12\x39\n\x0b\x63ors_policy\x18\n \x01(\x0b\x32$.istio.networking.v1beta1.CorsPolicy\x12\x32\n\x07headers\x18\x10 \x01(\x0b\x32!.istio.networking.v1beta1.HeadersJ\x04\x08\x05\x10\x06J\x04\x08\x0b\x10\x10R\x11websocket_upgradeR\x0e\x61ppend_headersR\x17remove_response_headersR\x17\x61ppend_response_headersR\x16remove_request_headersR\x16\x61ppend_request_headers\"+\n\x08\x44\x65legate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tnamespace\x18\x02 \x01(\t\"\xa5\x03\n\x07Headers\x12\x43\n\x07request\x18\x01 \x01(\x0b\x32\x32.istio.networking.v1beta1.Headers.HeaderOperations\x12\x44\n\x08response\x18\x02 \x01(\x0b\x32\x32.istio.networking.v1beta1.Headers.HeaderOperations\x1a\x8e\x02\n\x10HeaderOperations\x12H\n\x03set\x18\x01 \x03(\x0b\x32;.istio.networking.v1beta1.Headers.HeaderOperations.SetEntry\x12H\n\x03\x61\x64\x64\x18\x02 \x03(\x0b\x32;.istio.networking.v1beta1.Headers.HeaderOperations.AddEntry\x12\x0e\n\x06remove\x18\x03 \x03(\t\x1a*\n\x08SetEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a*\n\x08\x41\x64\x64\x45ntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x87\x01\n\x08TLSRoute\x12@\n\x05match\x18\x01 \x03(\x0b\x32,.istio.networking.v1beta1.TLSMatchAttributesB\x03\xe0\x41\x02\x12\x39\n\x05route\x18\x02 \x03(\x0b\x32*.istio.networking.v1beta1.RouteDestination\"\x81\x01\n\x08TCPRoute\x12:\n\x05match\x18\x01 \x03(\x0b\x32+.istio.networking.v1beta1.L4MatchAttributes\x12\x39\n\x05route\x18\x02 \x03(\x0b\x32*.istio.networking.v1beta1.RouteDestination\"\xdf\x07\n\x10HTTPMatchRequest\x12\x0c\n\x04name\x18\x0b \x01(\t\x12\x32\n\x03uri\x18\x01 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch\x12\x35\n\x06scheme\x18\x02 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch\x12\x35\n\x06method\x18\x03 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch\x12\x38\n\tauthority\x18\x04 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch\x12H\n\x07headers\x18\x05 \x03(\x0b\x32\x37.istio.networking.v1beta1.HTTPMatchRequest.HeadersEntry\x12\x0c\n\x04port\x18\x06 \x01(\r\x12S\n\rsource_labels\x18\x07 \x03(\x0b\x32<.istio.networking.v1beta1.HTTPMatchRequest.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x08 \x03(\t\x12Q\n\x0cquery_params\x18\t \x03(\x0b\x32;.istio.networking.v1beta1.HTTPMatchRequest.QueryParamsEntry\x12\x17\n\x0fignore_uri_case\x18\n \x01(\x08\x12W\n\x0fwithout_headers\x18\x0c \x03(\x0b\x32>.istio.networking.v1beta1.HTTPMatchRequest.WithoutHeadersEntry\x12\x18\n\x10source_namespace\x18\r \x01(\t\x1aU\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch:\x02\x38\x01\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aY\n\x10QueryParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch:\x02\x38\x01\x1a\\\n\x13WithoutHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch:\x02\x38\x01\"\x83\x02\n\x14HTTPRouteDestination\x12?\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32%.istio.networking.v1beta1.DestinationB\x03\xe0\x41\x02\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12\x32\n\x07headers\x18\x07 \x01(\x0b\x32!.istio.networking.v1beta1.HeadersJ\x04\x08\x03\x10\x07R\x17remove_response_headersR\x17\x61ppend_response_headersR\x16remove_request_headersR\x16\x61ppend_request_headers\"c\n\x10RouteDestination\x12?\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32%.istio.networking.v1beta1.DestinationB\x03\xe0\x41\x02\x12\x0e\n\x06weight\x18\x02 \x01(\x05\"\x8c\x02\n\x11L4MatchAttributes\x12\x1b\n\x13\x64\x65stination_subnets\x18\x01 \x03(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x15\n\rsource_subnet\x18\x03 \x01(\t\x12T\n\rsource_labels\x18\x04 \x03(\x0b\x32=.istio.networking.v1beta1.L4MatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x05 \x03(\t\x12\x18\n\x10source_namespace\x18\x06 \x01(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa4\x02\n\x12TLSMatchAttributes\x12\x16\n\tsni_hosts\x18\x01 \x03(\tB\x03\xe0\x41\x02\x12\x1b\n\x13\x64\x65stination_subnets\x18\x02 \x03(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12U\n\rsource_labels\x18\x05 \x03(\x0b\x32>.istio.networking.v1beta1.TLSMatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x06 \x03(\t\x12\x18\n\x10source_namespace\x18\x07 \x01(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01J\x04\x08\x04\x10\x05R\rsource_subnet\"E\n\x0cHTTPRedirect\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\x12\x15\n\rredirect_code\x18\x03 \x01(\r\"-\n\x0bHTTPRewrite\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\"O\n\x0bStringMatch\x12\x0f\n\x05\x65xact\x18\x01 \x01(\tH\x00\x12\x10\n\x06prefix\x18\x02 \x01(\tH\x00\x12\x0f\n\x05regex\x18\x03 \x01(\tH\x00\x42\x0c\n\nmatch_type\"\xa5\x01\n\tHTTPRetry\x12\x15\n\x08\x61ttempts\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x32\n\x0fper_try_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08retry_on\x18\x03 \x01(\t\x12;\n\x17retry_remote_localities\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x8d\x02\n\nCorsPolicy\x12\x18\n\x0c\x61llow_origin\x18\x01 \x03(\tB\x02\x18\x01\x12<\n\rallow_origins\x18\x07 \x03(\x0b\x32%.istio.networking.v1beta1.StringMatch\x12\x15\n\rallow_methods\x18\x02 \x03(\t\x12\x15\n\rallow_headers\x18\x03 \x03(\t\x12\x16\n\x0e\x65xpose_headers\x18\x04 \x03(\t\x12*\n\x07max_age\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x11\x61llow_credentials\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x9a\x04\n\x12HTTPFaultInjection\x12\x41\n\x05\x64\x65lay\x18\x01 \x01(\x0b\x32\x32.istio.networking.v1beta1.HTTPFaultInjection.Delay\x12\x41\n\x05\x61\x62ort\x18\x02 \x01(\x0b\x32\x32.istio.networking.v1beta1.HTTPFaultInjection.Abort\x1a\xd5\x01\n\x05\x44\x65lay\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x35\n\x0b\x66ixed_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x02H\x00\x12\x36\n\x11\x65xponential_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x35\n\npercentage\x18\x05 \x01(\x0b\x32!.istio.networking.v1beta1.PercentB\x11\n\x0fhttp_delay_type\x1a\xa5\x01\n\x05\x41\x62ort\x12\x1a\n\x0bhttp_status\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02H\x00\x12\x15\n\x0bgrpc_status\x18\x03 \x01(\tH\x00\x12\x15\n\x0bhttp2_error\x18\x04 \x01(\tH\x00\x12\x35\n\npercentage\x18\x05 \x01(\x0b\x32!.istio.networking.v1beta1.PercentB\x0c\n\nerror_typeJ\x04\x08\x01\x10\x02R\x07percent\"*\n\x0cPortSelector\x12\x0e\n\x06number\x18\x01 \x01(\rJ\x04\x08\x02\x10\x03R\x04name\"\x18\n\x07Percent\x12\r\n\x05value\x18\x01 \x01(\x01\x42!Z\x1fistio.io/api/networking/v1beta1b\x06proto3')
+ serialized_pb=_b('\n(networking/v1beta1/virtual_service.proto\x12\x18istio.networking.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xd9\x01\n\x0eVirtualService\x12\r\n\x05hosts\x18\x01 \x03(\t\x12\x10\n\x08gateways\x18\x02 \x03(\t\x12\x31\n\x04http\x18\x03 \x03(\x0b\x32#.istio.networking.v1beta1.HTTPRoute\x12/\n\x03tls\x18\x05 \x03(\x0b\x32\".istio.networking.v1beta1.TLSRoute\x12/\n\x03tcp\x18\x04 \x03(\x0b\x32\".istio.networking.v1beta1.TCPRoute\x12\x11\n\texport_to\x18\x06 \x03(\t\"f\n\x0b\x44\x65stination\x12\x11\n\x04host\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x0e\n\x06subset\x18\x02 \x01(\t\x12\x34\n\x04port\x18\x03 \x01(\x0b\x32&.istio.networking.v1beta1.PortSelector\"\x89\x07\n\tHTTPRoute\x12\x0c\n\x04name\x18\x11 \x01(\t\x12\x39\n\x05match\x18\x01 \x03(\x0b\x32*.istio.networking.v1beta1.HTTPMatchRequest\x12=\n\x05route\x18\x02 \x03(\x0b\x32..istio.networking.v1beta1.HTTPRouteDestination\x12\x38\n\x08redirect\x18\x03 \x01(\x0b\x32&.istio.networking.v1beta1.HTTPRedirect\x12\x34\n\x08\x64\x65legate\x18\x14 \x01(\x0b\x32\".istio.networking.v1beta1.Delegate\x12\x36\n\x07rewrite\x18\x04 \x01(\x0b\x32%.istio.networking.v1beta1.HTTPRewrite\x12*\n\x07timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x07retries\x18\x07 \x01(\x0b\x32#.istio.networking.v1beta1.HTTPRetry\x12;\n\x05\x66\x61ult\x18\x08 \x01(\x0b\x32,.istio.networking.v1beta1.HTTPFaultInjection\x12\x35\n\x06mirror\x18\t \x01(\x0b\x32%.istio.networking.v1beta1.Destination\x12\x38\n\x0emirror_percent\x18\x12 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x02\x18\x01\x12<\n\x11mirror_percentage\x18\x13 \x01(\x0b\x32!.istio.networking.v1beta1.Percent\x12\x39\n\x0b\x63ors_policy\x18\n \x01(\x0b\x32$.istio.networking.v1beta1.CorsPolicy\x12\x32\n\x07headers\x18\x10 \x01(\x0b\x32!.istio.networking.v1beta1.HeadersJ\x04\x08\x05\x10\x06J\x04\x08\x0b\x10\x10R\x11websocket_upgradeR\x0e\x61ppend_headersR\x17remove_response_headersR\x17\x61ppend_response_headersR\x16remove_request_headersR\x16\x61ppend_request_headers\"+\n\x08\x44\x65legate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tnamespace\x18\x02 \x01(\t\"\xa5\x03\n\x07Headers\x12\x43\n\x07request\x18\x01 \x01(\x0b\x32\x32.istio.networking.v1beta1.Headers.HeaderOperations\x12\x44\n\x08response\x18\x02 \x01(\x0b\x32\x32.istio.networking.v1beta1.Headers.HeaderOperations\x1a\x8e\x02\n\x10HeaderOperations\x12H\n\x03set\x18\x01 \x03(\x0b\x32;.istio.networking.v1beta1.Headers.HeaderOperations.SetEntry\x12H\n\x03\x61\x64\x64\x18\x02 \x03(\x0b\x32;.istio.networking.v1beta1.Headers.HeaderOperations.AddEntry\x12\x0e\n\x06remove\x18\x03 \x03(\t\x1a*\n\x08SetEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a*\n\x08\x41\x64\x64\x45ntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x87\x01\n\x08TLSRoute\x12@\n\x05match\x18\x01 \x03(\x0b\x32,.istio.networking.v1beta1.TLSMatchAttributesB\x03\xe0\x41\x02\x12\x39\n\x05route\x18\x02 \x03(\x0b\x32*.istio.networking.v1beta1.RouteDestination\"\x81\x01\n\x08TCPRoute\x12:\n\x05match\x18\x01 \x03(\x0b\x32+.istio.networking.v1beta1.L4MatchAttributes\x12\x39\n\x05route\x18\x02 \x03(\x0b\x32*.istio.networking.v1beta1.RouteDestination\"\xdf\x07\n\x10HTTPMatchRequest\x12\x0c\n\x04name\x18\x0b \x01(\t\x12\x32\n\x03uri\x18\x01 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch\x12\x35\n\x06scheme\x18\x02 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch\x12\x35\n\x06method\x18\x03 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch\x12\x38\n\tauthority\x18\x04 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch\x12H\n\x07headers\x18\x05 \x03(\x0b\x32\x37.istio.networking.v1beta1.HTTPMatchRequest.HeadersEntry\x12\x0c\n\x04port\x18\x06 \x01(\r\x12S\n\rsource_labels\x18\x07 \x03(\x0b\x32<.istio.networking.v1beta1.HTTPMatchRequest.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x08 \x03(\t\x12Q\n\x0cquery_params\x18\t \x03(\x0b\x32;.istio.networking.v1beta1.HTTPMatchRequest.QueryParamsEntry\x12\x17\n\x0fignore_uri_case\x18\n \x01(\x08\x12W\n\x0fwithout_headers\x18\x0c \x03(\x0b\x32>.istio.networking.v1beta1.HTTPMatchRequest.WithoutHeadersEntry\x12\x18\n\x10source_namespace\x18\r \x01(\t\x1aU\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch:\x02\x38\x01\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aY\n\x10QueryParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch:\x02\x38\x01\x1a\\\n\x13WithoutHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.istio.networking.v1beta1.StringMatch:\x02\x38\x01\"\x83\x02\n\x14HTTPRouteDestination\x12?\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32%.istio.networking.v1beta1.DestinationB\x03\xe0\x41\x02\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12\x32\n\x07headers\x18\x07 \x01(\x0b\x32!.istio.networking.v1beta1.HeadersJ\x04\x08\x03\x10\x07R\x17remove_response_headersR\x17\x61ppend_response_headersR\x16remove_request_headersR\x16\x61ppend_request_headers\"c\n\x10RouteDestination\x12?\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32%.istio.networking.v1beta1.DestinationB\x03\xe0\x41\x02\x12\x0e\n\x06weight\x18\x02 \x01(\x05\"\x8c\x02\n\x11L4MatchAttributes\x12\x1b\n\x13\x64\x65stination_subnets\x18\x01 \x03(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x15\n\rsource_subnet\x18\x03 \x01(\t\x12T\n\rsource_labels\x18\x04 \x03(\x0b\x32=.istio.networking.v1beta1.L4MatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x05 \x03(\t\x12\x18\n\x10source_namespace\x18\x06 \x01(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa4\x02\n\x12TLSMatchAttributes\x12\x16\n\tsni_hosts\x18\x01 \x03(\tB\x03\xe0\x41\x02\x12\x1b\n\x13\x64\x65stination_subnets\x18\x02 \x03(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12U\n\rsource_labels\x18\x05 \x03(\x0b\x32>.istio.networking.v1beta1.TLSMatchAttributes.SourceLabelsEntry\x12\x10\n\x08gateways\x18\x06 \x03(\t\x12\x18\n\x10source_namespace\x18\x07 \x01(\t\x1a\x33\n\x11SourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01J\x04\x08\x04\x10\x05R\rsource_subnet\"E\n\x0cHTTPRedirect\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\x12\x15\n\rredirect_code\x18\x03 \x01(\r\"k\n\x0bHTTPRewrite\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\x12<\n\turi_regex\x18\x03 \x01(\x0b\x32).istio.networking.v1beta1.UriRegexRewrite\"8\n\x0fUriRegexRewrite\x12\x0f\n\x07pattern\x18\x01 \x01(\t\x12\x14\n\x0csubstitution\x18\x02 \x01(\t\"O\n\x0bStringMatch\x12\x0f\n\x05\x65xact\x18\x01 \x01(\tH\x00\x12\x10\n\x06prefix\x18\x02 \x01(\tH\x00\x12\x0f\n\x05regex\x18\x03 \x01(\tH\x00\x42\x0c\n\nmatch_type\"\xa5\x01\n\tHTTPRetry\x12\x15\n\x08\x61ttempts\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x32\n\x0fper_try_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08retry_on\x18\x03 \x01(\t\x12;\n\x17retry_remote_localities\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x8d\x02\n\nCorsPolicy\x12\x18\n\x0c\x61llow_origin\x18\x01 \x03(\tB\x02\x18\x01\x12<\n\rallow_origins\x18\x07 \x03(\x0b\x32%.istio.networking.v1beta1.StringMatch\x12\x15\n\rallow_methods\x18\x02 \x03(\t\x12\x15\n\rallow_headers\x18\x03 \x03(\t\x12\x16\n\x0e\x65xpose_headers\x18\x04 \x03(\t\x12*\n\x07max_age\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x11\x61llow_credentials\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x9a\x04\n\x12HTTPFaultInjection\x12\x41\n\x05\x64\x65lay\x18\x01 \x01(\x0b\x32\x32.istio.networking.v1beta1.HTTPFaultInjection.Delay\x12\x41\n\x05\x61\x62ort\x18\x02 \x01(\x0b\x32\x32.istio.networking.v1beta1.HTTPFaultInjection.Abort\x1a\xd5\x01\n\x05\x44\x65lay\x12\x13\n\x07percent\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x35\n\x0b\x66ixed_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x02H\x00\x12\x36\n\x11\x65xponential_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x35\n\npercentage\x18\x05 \x01(\x0b\x32!.istio.networking.v1beta1.PercentB\x11\n\x0fhttp_delay_type\x1a\xa5\x01\n\x05\x41\x62ort\x12\x1a\n\x0bhttp_status\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02H\x00\x12\x15\n\x0bgrpc_status\x18\x03 \x01(\tH\x00\x12\x15\n\x0bhttp2_error\x18\x04 \x01(\tH\x00\x12\x35\n\npercentage\x18\x05 \x01(\x0b\x32!.istio.networking.v1beta1.PercentB\x0c\n\nerror_typeJ\x04\x08\x01\x10\x02R\x07percent\"*\n\x0cPortSelector\x12\x0e\n\x06number\x18\x01 \x01(\rJ\x04\x08\x02\x10\x03R\x04name\"\x18\n\x07Percent\x12\r\n\x05value\x18\x01 \x01(\x01\x42!Z\x1fistio.io/api/networking/v1beta1b\x06proto3')
,
dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,])
@@ -1151,6 +1151,13 @@
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='uri_regex', full_name='istio.networking.v1beta1.HTTPRewrite.uri_regex', index=2,
+ number=3, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
@@ -1164,7 +1171,45 @@
oneofs=[
],
serialized_start=4132,
- serialized_end=4177,
+ serialized_end=4239,
+)
+
+
+_URIREGEXREWRITE = _descriptor.Descriptor(
+ name='UriRegexRewrite',
+ full_name='istio.networking.v1beta1.UriRegexRewrite',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='pattern', full_name='istio.networking.v1beta1.UriRegexRewrite.pattern', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='substitution', full_name='istio.networking.v1beta1.UriRegexRewrite.substitution', index=1,
+ number=2, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=4241,
+ serialized_end=4297,
)
@@ -1211,8 +1256,8 @@
name='match_type', full_name='istio.networking.v1beta1.StringMatch.match_type',
index=0, containing_type=None, fields=[]),
],
- serialized_start=4179,
- serialized_end=4258,
+ serialized_start=4299,
+ serialized_end=4378,
)
@@ -1263,8 +1308,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=4261,
- serialized_end=4426,
+ serialized_start=4381,
+ serialized_end=4546,
)
@@ -1336,8 +1381,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=4429,
- serialized_end=4698,
+ serialized_start=4549,
+ serialized_end=4818,
)
@@ -1391,8 +1436,8 @@
name='http_delay_type', full_name='istio.networking.v1beta1.HTTPFaultInjection.Delay.http_delay_type',
index=0, containing_type=None, fields=[]),
],
- serialized_start=4858,
- serialized_end=5071,
+ serialized_start=4978,
+ serialized_end=5191,
)
_HTTPFAULTINJECTION_ABORT = _descriptor.Descriptor(
@@ -1445,8 +1490,8 @@
name='error_type', full_name='istio.networking.v1beta1.HTTPFaultInjection.Abort.error_type',
index=0, containing_type=None, fields=[]),
],
- serialized_start=5074,
- serialized_end=5239,
+ serialized_start=5194,
+ serialized_end=5359,
)
_HTTPFAULTINJECTION = _descriptor.Descriptor(
@@ -1482,8 +1527,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=4701,
- serialized_end=5239,
+ serialized_start=4821,
+ serialized_end=5359,
)
@@ -1513,8 +1558,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=5241,
- serialized_end=5283,
+ serialized_start=5361,
+ serialized_end=5403,
)
@@ -1544,8 +1589,8 @@
extension_ranges=[],
oneofs=[
],
- serialized_start=5285,
- serialized_end=5309,
+ serialized_start=5405,
+ serialized_end=5429,
)
_VIRTUALSERVICE.fields_by_name['http'].message_type = _HTTPROUTE
@@ -1598,6 +1643,7 @@
_L4MATCHATTRIBUTES.fields_by_name['source_labels'].message_type = _L4MATCHATTRIBUTES_SOURCELABELSENTRY
_TLSMATCHATTRIBUTES_SOURCELABELSENTRY.containing_type = _TLSMATCHATTRIBUTES
_TLSMATCHATTRIBUTES.fields_by_name['source_labels'].message_type = _TLSMATCHATTRIBUTES_SOURCELABELSENTRY
+_HTTPREWRITE.fields_by_name['uri_regex'].message_type = _URIREGEXREWRITE
_STRINGMATCH.oneofs_by_name['match_type'].fields.append(
_STRINGMATCH.fields_by_name['exact'])
_STRINGMATCH.fields_by_name['exact'].containing_oneof = _STRINGMATCH.oneofs_by_name['match_type']
@@ -1649,6 +1695,7 @@
DESCRIPTOR.message_types_by_name['TLSMatchAttributes'] = _TLSMATCHATTRIBUTES
DESCRIPTOR.message_types_by_name['HTTPRedirect'] = _HTTPREDIRECT
DESCRIPTOR.message_types_by_name['HTTPRewrite'] = _HTTPREWRITE
+DESCRIPTOR.message_types_by_name['UriRegexRewrite'] = _URIREGEXREWRITE
DESCRIPTOR.message_types_by_name['StringMatch'] = _STRINGMATCH
DESCRIPTOR.message_types_by_name['HTTPRetry'] = _HTTPRETRY
DESCRIPTOR.message_types_by_name['CorsPolicy'] = _CORSPOLICY
@@ -1827,6 +1874,13 @@
})
_sym_db.RegisterMessage(HTTPRewrite)
+UriRegexRewrite = _reflection.GeneratedProtocolMessageType('UriRegexRewrite', (_message.Message,), {
+ 'DESCRIPTOR' : _URIREGEXREWRITE,
+ '__module__' : 'networking.v1beta1.virtual_service_pb2'
+ # @@protoc_insertion_point(class_scope:istio.networking.v1beta1.UriRegexRewrite)
+ })
+_sym_db.RegisterMessage(UriRegexRewrite)
+
StringMatch = _reflection.GeneratedProtocolMessageType('StringMatch', (_message.Message,), {
'DESCRIPTOR' : _STRINGMATCH,
'__module__' : 'networking.v1beta1.virtual_service_pb2'
|