diff --git a/go.mod b/go.mod
index ae3b98e312e2..75090c2696c9 100644
--- a/go.mod
+++ b/go.mod
@@ -8,7 +8,7 @@ replace k8s.io/klog => github.com/istio/klog v0.0.0-20190424230111-fb7481ea8bcf
replace github.com/spf13/viper => github.com/istio/viper v1.3.3-0.20190515210538-2789fed3109c
-replace github.com/gogo/protobuf => github.com/istio/gogo-protobuf v1.2.2-0.20190726125433-4c9abdb3090c
+replace github.com/gogo/protobuf => github.com/istio/gogo-protobuf v1.2.2
require (
cloud.google.com/go v0.37.4
@@ -71,7 +71,7 @@ require (
github.com/go-sql-driver/mysql v1.4.1 // indirect
github.com/gobwas/glob v0.2.3 // indirect
github.com/gocql/gocql v0.0.0-20190423091413-b99afaf3b163 // indirect
- github.com/gogo/googleapis v1.1.0
+ github.com/gogo/googleapis v1.2.0
github.com/gogo/protobuf v1.2.1
github.com/gogo/status v1.0.3
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
@@ -111,7 +111,6 @@ require (
github.com/howeyc/fsnotify v0.9.0
github.com/huandu/xstrings v1.0.0 // indirect
github.com/imdario/mergo v0.3.5 // indirect
- github.com/istio/gogo-protobuf v1.2.2-0.20190726125433-4c9abdb3090c // indirect
github.com/jefferai/jsonx v1.0.0 // indirect
github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8 // indirect
github.com/json-iterator/go v0.0.0-20180914014843-2433035e5132 // indirect
@@ -122,7 +121,6 @@ require (
github.com/kr/pretty v0.1.0 // indirect
github.com/lestrrat-go/jwx v0.9.0
github.com/lib/pq v1.1.1 // indirect
- github.com/lukechampine/freeze v0.0.0-20160818180733-f514e08ae5a0 // indirect
github.com/mitchellh/copystructure v1.0.0
github.com/mitchellh/go-homedir v0.0.0-20161203194507-b8bc1bf76747
github.com/mitchellh/go-testing-interface v1.0.0 // indirect
@@ -178,7 +176,7 @@ require (
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384
google.golang.org/api v0.3.1
google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107
- google.golang.org/grpc v1.20.1
+ google.golang.org/grpc v1.21.0
gopkg.in/d4l3k/messagediff.v1 v1.2.1
gopkg.in/ini.v1 v1.42.0 // indirect
gopkg.in/logfmt.v0 v0.3.0 // indirect
@@ -188,7 +186,7 @@ require (
gopkg.in/stack.v1 v1.7.0 // indirect
gopkg.in/yaml.v2 v2.2.2
gotest.tools v2.2.0+incompatible // indirect
- istio.io/api v0.0.0-20190718213450-0a0442bf8664
+ istio.io/api v0.0.0-20190730171035-f306601671d2
istio.io/gogo-genproto v0.0.0-20190614210408-e88dc8b0e4db
istio.io/pkg v0.0.0-20190710182420-c26792dead42
k8s.io/api v0.0.0-20190222213804-5cb15d344471
diff --git a/go.sum b/go.sum
index c78c06b943d9..f9e947fa68b9 100644
--- a/go.sum
+++ b/go.sum
@@ -160,12 +160,8 @@ github.com/gocql/gocql v0.0.0-20190423091413-b99afaf3b163 h1:qhRRAuxNlCti1V4OXPS
github.com/gocql/gocql v0.0.0-20190423091413-b99afaf3b163/go.mod h1:4Fw1eo5iaEhDUs8XyuhSVCVy52Jq3L+/3GJgYkwc+/0=
github.com/gogo/googleapis v1.1.0 h1:kFkMAZBNAn4j7K0GiZr8cRYzejq68VbheufiV3YuyFI=
github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
-github.com/gogo/protobuf v1.1.1 h1:72R+M5VuhED/KujmZVcIquuo8mBgX4oVda//DQb3PXo=
-github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/gogo/protobuf v1.2.0 h1:xU6/SpYbvkNYiptHJYEDRseDLvYE7wSqhYYNy0QSUzI=
-github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE=
-github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
+github.com/gogo/googleapis v1.2.0 h1:Z0v3OJDotX9ZBpdz2V+AI7F4fITSZhVE5mg6GQppwMM=
+github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU=
github.com/gogo/status v1.0.3 h1:WkVBY59mw7qUNTr/bLwO7J2vesJ0rQ2C3tMXrTd3w5M=
github.com/gogo/status v1.0.3/go.mod h1:SavQ51ycCLnc7dGyJxp8YAmudx8xqiVrRf+6IXRsugc=
github.com/golang/groupcache v0.0.0-20180203143532-66deaeb636df h1:Sf/EWTqecLGj5mn9KFu3L4Cc4O/6kGnbtbDtXrjzv5A=
@@ -288,9 +284,8 @@ github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NH
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/istio/glog v0.0.0-20190424172949-d7cfb6fa2ccd h1:AJnLAbRpHRy2stiICRI1hcp0f8EExPEiZLgeOmCGnuE=
github.com/istio/glog v0.0.0-20190424172949-d7cfb6fa2ccd/go.mod h1:gF8UB8w1Mqkddo9AqNOPkiduBosB3HHkpC5ra96cDzw=
-github.com/istio/gogo-protobuf v1.2.1 h1:8CFvH2ygdNeWdQ7/PaA5ilexEJCO1okGNDL7cqP9Ldo=
-github.com/istio/gogo-protobuf v1.2.2-0.20190726125433-4c9abdb3090c h1:nZ1jQm7wyjt21Zc6c1jtf3RVH375/Omgzq+INkXOkWg=
-github.com/istio/gogo-protobuf v1.2.2-0.20190726125433-4c9abdb3090c/go.mod h1:vfjn3j3y5/f0PSoVc2mvjpkYi6onwEz0eC1iLQrg8yY=
+github.com/istio/gogo-protobuf v1.2.2 h1:owVNB2poNF89y6PVv7cqvbiEc64Oxmisu8DElon23wM=
+github.com/istio/gogo-protobuf v1.2.2/go.mod h1:vfjn3j3y5/f0PSoVc2mvjpkYi6onwEz0eC1iLQrg8yY=
github.com/istio/klog v0.0.0-20190424230111-fb7481ea8bcf h1:AshFubsUWsHMYfGoz5XLZOOF87wnop5O/Fjjnqjk8lY=
github.com/istio/klog v0.0.0-20190424230111-fb7481ea8bcf/go.mod h1:9gnFtvcm4y+2DZMNXbO8Q7Ke2kUDomg7HhR/mEs5wVA=
github.com/istio/viper v1.3.3-0.20190515210538-2789fed3109c h1:EFWADU43GY2T7NIYYbIHWdrG2hRiWyGSHeON57ZADBE=
@@ -313,7 +308,6 @@ github.com/juju/testing v0.0.0-20190429233213-dfc56b8c09fc/go.mod h1:63prj8cnj0t
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
github.com/keybase/go-crypto v0.0.0-20190416182011-b785b22cc757 h1:rHXu79NFmin5AvIe4JsnfCBGb1qAIlMTX0vnpVnDn7s=
github.com/keybase/go-crypto v0.0.0-20190416182011-b785b22cc757/go.mod h1:ghbZscTyKdM07+Fw3KSi0hcJm+AlEUWj8QLlPtijN/M=
-github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
@@ -329,8 +323,6 @@ github.com/lestrrat-go/jwx v0.9.0 h1:Fnd0EWzTm0kFrBPzE/PEPp9nzllES5buMkksPMjEKpM
github.com/lestrrat-go/jwx v0.9.0/go.mod h1:iEoxlYfZjvoGpuWwxUz+eR5e6KTJGsaRcy/YNA/UnBk=
github.com/lib/pq v1.1.1 h1:sJZmqHoEaY7f+NPP8pgLB/WxulyR3fewgCM2qaSlBb4=
github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
-github.com/lukechampine/freeze v0.0.0-20160818180733-f514e08ae5a0 h1:KECTNPxXKDU7JE/3m381o20SmGJJfMfG1+hqLrP68WY=
-github.com/lukechampine/freeze v0.0.0-20160818180733-f514e08ae5a0/go.mod h1:kHf6qlhSQAjGo6pMSDgbSc78BG+K/cNjj/Pqw5bT2oQ=
github.com/lyft/protoc-gen-star v0.4.10/go.mod h1:mE8fbna26u7aEA2QCVvvfBU/ZrPgocG1206xAFPcs94=
github.com/magiconair/properties v1.8.0 h1:LLgXmsheXeRoUOBOjtwPQCWIYqM/LU1ayDtDePerRcY=
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
@@ -550,7 +542,6 @@ golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c h1:fqgJT0MGcGpPgpWU7VRdRjuArfcOvC4AoJmILihzhDg=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -580,6 +571,8 @@ google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZi
google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.1 h1:Hz2g2wirWK7H0qIIhGIqRGTuMwTE8HEKFnDZZ7lm9NU=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
+google.golang.org/grpc v1.21.0 h1:G+97AoqBnmZIT91cLG/EkCoK9NSelj64P8bOHHNmGn0=
+google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
@@ -618,8 +611,8 @@ honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWh
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
istio.io/api v0.0.0-20190515205759-982e5c3888c6/go.mod h1:hhLFQmpHia8zgaM37vb2ml9iS5NfNfqZGRt1pS9aVEo=
-istio.io/api v0.0.0-20190718213450-0a0442bf8664 h1:6qd2tnoFRDkqIcuf7rBOAIoZ9F62nuT/k7xGBUMHfQ8=
-istio.io/api v0.0.0-20190718213450-0a0442bf8664/go.mod h1:hhLFQmpHia8zgaM37vb2ml9iS5NfNfqZGRt1pS9aVEo=
+istio.io/api v0.0.0-20190730171035-f306601671d2 h1:2Mn/xW9qvnxexyV4/y2nF77i4pYiIX41pIbJaBJSGPs=
+istio.io/api v0.0.0-20190730171035-f306601671d2/go.mod h1:URPGot5W4KDWuSaNKijQqtJFlHXpdrLw+ufMlzCSCX4=
istio.io/gogo-genproto v0.0.0-20190614210408-e88dc8b0e4db h1:a++JUbz/eKj16759379pFBhuoiSxUTmnut6ITM/9FEs=
istio.io/gogo-genproto v0.0.0-20190614210408-e88dc8b0e4db/go.mod h1:eIDJ6jNk/IeJz6ODSksHl5Aiczy5JUq6vFhJWI5OtiI=
istio.io/pkg v0.0.0-20190710182420-c26792dead42 h1:2GOb5IEH8Q4tbv4sw6OabHV/xcRK4qQD5lLieiYe64s=
diff --git a/vendor/github.com/gogo/googleapis/google/api/annotations.pb.go b/vendor/github.com/gogo/googleapis/google/api/annotations.pb.go
index b2c49a92f0f0..47dded215c75 100644
--- a/vendor/github.com/gogo/googleapis/google/api/annotations.pb.go
+++ b/vendor/github.com/gogo/googleapis/google/api/annotations.pb.go
@@ -3,10 +3,12 @@
package api
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -32,11 +34,9 @@ func init() {
proto.RegisterExtension(E_Http)
}
-func init() {
- proto.RegisterFile("google/api/annotations.proto", fileDescriptor_annotations_0def7614f850d31e)
-}
+func init() { proto.RegisterFile("google/api/annotations.proto", fileDescriptor_c591c5aa9fb79aab) }
-var fileDescriptor_annotations_0def7614f850d31e = []byte{
+var fileDescriptor_c591c5aa9fb79aab = []byte{
// 230 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x49, 0xcf, 0xcf, 0x4f,
0xcf, 0x49, 0xd5, 0x4f, 0x2c, 0xc8, 0xd4, 0x4f, 0xcc, 0xcb, 0xcb, 0x2f, 0x49, 0x2c, 0xc9, 0xcc,
diff --git a/vendor/github.com/gogo/googleapis/google/api/http.pb.go b/vendor/github.com/gogo/googleapis/google/api/http.pb.go
index b2bba63db622..bf5c3711f5be 100644
--- a/vendor/github.com/gogo/googleapis/google/api/http.pb.go
+++ b/vendor/github.com/gogo/googleapis/google/api/http.pb.go
@@ -3,16 +3,15 @@
package api
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -32,7 +31,7 @@ type Http struct {
// A list of HTTP configuration rules that apply to individual API methods.
//
// **NOTE:** All service configuration rules follow "last one wins" order.
- Rules []*HttpRule `protobuf:"bytes,1,rep,name=rules" json:"rules,omitempty"`
+ Rules []*HttpRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
// When set to true, URL path parmeters will be fully URI-decoded except in
// cases of single segment matches in reserved expansion, where "%2F" will be
// left encoded.
@@ -48,7 +47,7 @@ type Http struct {
func (m *Http) Reset() { *m = Http{} }
func (*Http) ProtoMessage() {}
func (*Http) Descriptor() ([]byte, []int) {
- return fileDescriptor_http_0b206a4af4ed46aa, []int{0}
+ return fileDescriptor_ff9994be407cdcc9, []int{0}
}
func (m *Http) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -65,8 +64,8 @@ func (m *Http) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Http) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Http.Merge(dst, src)
+func (m *Http) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Http.Merge(m, src)
}
func (m *Http) XXX_Size() int {
return m.Size()
@@ -95,94 +94,94 @@ func (*Http) XXX_MessageName() string {
return "google.api.Http"
}
-// `HttpRule` defines the mapping of an RPC method to one or more HTTP
-// REST API methods. The mapping specifies how different portions of the RPC
-// request message are mapped to URL path, URL query parameters, and
-// HTTP request body. The mapping is typically specified as an
-// `google.api.http` annotation on the RPC method,
-// see "google/api/annotations.proto" for details.
+// # gRPC Transcoding
//
-// The mapping consists of a field specifying the path template and
-// method kind. The path template can refer to fields in the request
-// message, as in the example below which describes a REST GET
-// operation on a resource collection of messages:
+// gRPC Transcoding is a feature for mapping between a gRPC method and one or
+// more HTTP REST endpoints. It allows developers to build a single API service
+// that supports both gRPC APIs and REST APIs. Many systems, including [Google
+// APIs](https://github.com/googleapis/googleapis),
+// [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC
+// Gateway](https://github.com/grpc-ecosystem/grpc-gateway),
+// and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature
+// and use it for large scale production services.
//
+// `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies
+// how different portions of the gRPC request message are mapped to the URL
+// path, URL query parameters, and HTTP request body. It also controls how the
+// gRPC response message is mapped to the HTTP response body. `HttpRule` is
+// typically specified as an `google.api.http` annotation on the gRPC method.
+//
+// Each mapping specifies a URL path template and an HTTP method. The path
+// template may refer to one or more fields in the gRPC request message, as long
+// as each field is a non-repeated field with a primitive (non-message) type.
+// The path template controls how fields of the request message are mapped to
+// the URL path.
+//
+// Example:
//
// service Messaging {
// rpc GetMessage(GetMessageRequest) returns (Message) {
-// option (google.api.http).get = "/v1/messages/{message_id}/{sub.subfield}";
+// option (google.api.http) = {
+// get: "/v1/{name=messages/*}"
+// };
// }
// }
// message GetMessageRequest {
-// message SubMessage {
-// string subfield = 1;
-// }
-// string message_id = 1; // mapped to the URL
-// SubMessage sub = 2; // `sub.subfield` is url-mapped
+// string name = 1; // Mapped to URL path.
// }
// message Message {
-// string text = 1; // content of the resource
+// string text = 1; // The resource content.
// }
//
-// The same http annotation can alternatively be expressed inside the
-// `GRPC API Configuration` YAML file.
+// This enables an HTTP REST to gRPC mapping as below:
//
-// http:
-// rules:
-// - selector: .Messaging.GetMessage
-// get: /v1/messages/{message_id}/{sub.subfield}
-//
-// This definition enables an automatic, bidrectional mapping of HTTP
-// JSON to RPC. Example:
-//
-// HTTP | RPC
+// HTTP | gRPC
// -----|-----
-// `GET /v1/messages/123456/foo` | `GetMessage(message_id: "123456" sub: SubMessage(subfield: "foo"))`
-//
-// In general, not only fields but also field paths can be referenced
-// from a path pattern. Fields mapped to the path pattern cannot be
-// repeated and must have a primitive (non-message) type.
-//
-// Any fields in the request message which are not bound by the path
-// pattern automatically become (optional) HTTP query
-// parameters. Assume the following definition of the request message:
+// `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")`
//
+// Any fields in the request message which are not bound by the path template
+// automatically become HTTP query parameters if there is no HTTP request body.
+// For example:
//
// service Messaging {
// rpc GetMessage(GetMessageRequest) returns (Message) {
-// option (google.api.http).get = "/v1/messages/{message_id}";
+// option (google.api.http) = {
+// get:"/v1/messages/{message_id}"
+// };
// }
// }
// message GetMessageRequest {
// message SubMessage {
// string subfield = 1;
// }
-// string message_id = 1; // mapped to the URL
-// int64 revision = 2; // becomes a parameter
-// SubMessage sub = 3; // `sub.subfield` becomes a parameter
+// string message_id = 1; // Mapped to URL path.
+// int64 revision = 2; // Mapped to URL query parameter `revision`.
+// SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`.
// }
//
-//
// This enables a HTTP JSON to RPC mapping as below:
//
-// HTTP | RPC
+// HTTP | gRPC
// -----|-----
-// `GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: "foo"))`
+// `GET /v1/messages/123456?revision=2&sub.subfield=foo` |
+// `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield:
+// "foo"))`
//
-// Note that fields which are mapped to HTTP parameters must have a
-// primitive type or a repeated primitive type. Message types are not
-// allowed. In the case of a repeated type, the parameter can be
-// repeated in the URL, as in `...?param=A¶m=B`.
+// Note that fields which are mapped to URL query parameters must have a
+// primitive type or a repeated primitive type or a non-repeated message type.
+// In the case of a repeated type, the parameter can be repeated in the URL
+// as `...?param=A¶m=B`. In the case of a message type, each field of the
+// message is mapped to a separate parameter, such as
+// `...?foo.a=A&foo.b=B&foo.c=C`.
//
-// For HTTP method kinds which allow a request body, the `body` field
+// For HTTP methods that allow a request body, the `body` field
// specifies the mapping. Consider a REST update method on the
// message resource collection:
//
-//
// service Messaging {
// rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
// option (google.api.http) = {
-// put: "/v1/messages/{message_id}"
+// patch: "/v1/messages/{message_id}"
// body: "message"
// };
// }
@@ -192,14 +191,14 @@ func (*Http) XXX_MessageName() string {
// Message message = 2; // mapped to the body
// }
//
-//
// The following HTTP JSON to RPC mapping is enabled, where the
// representation of the JSON in the request body is determined by
// protos JSON encoding:
//
-// HTTP | RPC
+// HTTP | gRPC
// -----|-----
-// `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" message { text: "Hi!" })`
+// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
+// "123456" message { text: "Hi!" })`
//
// The special name `*` can be used in the body mapping to define that
// every field not bound by the path template should be mapped to the
@@ -209,7 +208,7 @@ func (*Http) XXX_MessageName() string {
// service Messaging {
// rpc UpdateMessage(Message) returns (Message) {
// option (google.api.http) = {
-// put: "/v1/messages/{message_id}"
+// patch: "/v1/messages/{message_id}"
// body: "*"
// };
// }
@@ -222,13 +221,14 @@ func (*Http) XXX_MessageName() string {
//
// The following HTTP JSON to RPC mapping is enabled:
//
-// HTTP | RPC
+// HTTP | gRPC
// -----|-----
-// `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" text: "Hi!")`
+// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
+// "123456" text: "Hi!")`
//
// Note that when using `*` in the body mapping, it is not possible to
// have HTTP parameters, as all fields not bound by the path end in
-// the body. This makes this option more rarely used in practice of
+// the body. This makes this option more rarely used in practice when
// defining REST APIs. The common usage of `*` is in custom methods
// which don't use the URL at all for transferring data.
//
@@ -250,32 +250,34 @@ func (*Http) XXX_MessageName() string {
// string user_id = 2;
// }
//
+// This enables the following two alternative HTTP JSON to RPC mappings:
//
-// This enables the following two alternative HTTP JSON to RPC
-// mappings:
-//
-// HTTP | RPC
+// HTTP | gRPC
// -----|-----
// `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
-// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: "123456")`
-//
-// # Rules for HTTP mapping
+// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id:
+// "123456")`
//
-// The rules for mapping HTTP path, query parameters, and body fields
-// to the request message are as follows:
+// ## Rules for HTTP mapping
//
-// 1. The `body` field specifies either `*` or a field path, or is
-// omitted. If omitted, it indicates there is no HTTP request body.
-// 2. Leaf fields (recursive expansion of nested messages in the
-// request) can be classified into three types:
-// (a) Matched in the URL template.
-// (b) Covered by body (if body is `*`, everything except (a) fields;
-// else everything under the body field)
-// (c) All other fields.
-// 3. URL query parameters found in the HTTP request are mapped to (c) fields.
-// 4. Any body sent with an HTTP request can contain only (b) fields.
+// 1. Leaf request fields (recursive expansion nested messages in the request
+// message) are classified into three categories:
+// - Fields referred by the path template. They are passed via the URL path.
+// - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They
+// are passed via the HTTP
+// request body.
+// - All other fields are passed via the URL query parameters, and the
+// parameter name is the field path in the request message. A repeated
+// field can be represented as multiple query parameters under the same
+// name.
+// 2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL
+// query parameter, all fields
+// are passed via URL path and HTTP request body.
+// 3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP
+// request body, all
+// fields are passed via URL path and URL query parameters.
//
-// The syntax of the path template is as follows:
+// ### Path template syntax
//
// Template = "/" Segments [ Verb ] ;
// Segments = Segment { "/" Segment } ;
@@ -284,38 +286,91 @@ func (*Http) XXX_MessageName() string {
// FieldPath = IDENT { "." IDENT } ;
// Verb = ":" LITERAL ;
//
-// The syntax `*` matches a single path segment. The syntax `**` matches zero
-// or more path segments, which must be the last part of the path except the
-// `Verb`. The syntax `LITERAL` matches literal text in the path.
+// The syntax `*` matches a single URL path segment. The syntax `**` matches
+// zero or more URL path segments, which must be the last part of the URL path
+// except the `Verb`.
//
// The syntax `Variable` matches part of the URL path as specified by its
// template. A variable template must not contain other variables. If a variable
// matches a single path segment, its template may be omitted, e.g. `{var}`
// is equivalent to `{var=*}`.
//
+// The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL`
+// contains any reserved character, such characters should be percent-encoded
+// before the matching.
+//
// If a variable contains exactly one path segment, such as `"{var}"` or
-// `"{var=*}"`, when such a variable is expanded into a URL path, all characters
-// except `[-_.~0-9a-zA-Z]` are percent-encoded. Such variables show up in the
-// Discovery Document as `{var}`.
+// `"{var=*}"`, when such a variable is expanded into a URL path on the client
+// side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The
+// server side does the reverse decoding. Such variables show up in the
+// [Discovery
+// Document](https://developers.google.com/discovery/v1/reference/apis) as
+// `{var}`.
+//
+// If a variable contains multiple path segments, such as `"{var=foo/*}"`
+// or `"{var=**}"`, when such a variable is expanded into a URL path on the
+// client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded.
+// The server side does the reverse decoding, except "%2F" and "%2f" are left
+// unchanged. Such variables show up in the
+// [Discovery
+// Document](https://developers.google.com/discovery/v1/reference/apis) as
+// `{+var}`.
+//
+// ## Using gRPC API Service Configuration
+//
+// gRPC API Service Configuration (service config) is a configuration language
+// for configuring a gRPC service to become a user-facing product. The
+// service config is simply the YAML representation of the `google.api.Service`
+// proto message.
+//
+// As an alternative to annotating your proto file, you can configure gRPC
+// transcoding in your service config YAML files. You do this by specifying a
+// `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same
+// effect as the proto annotation. This can be particularly useful if you
+// have a proto that is reused in multiple services. Note that any transcoding
+// specified in the service config will override any matching transcoding
+// configuration in the proto.
+//
+// Example:
+//
+// http:
+// rules:
+// # Selects a gRPC method and applies HttpRule to it.
+// - selector: example.v1.Messaging.GetMessage
+// get: /v1/messages/{message_id}/{sub.subfield}
//
-// If a variable contains one or more path segments, such as `"{var=foo/*}"`
-// or `"{var=**}"`, when such a variable is expanded into a URL path, all
-// characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. Such variables
-// show up in the Discovery Document as `{+var}`.
+// ## Special notes
//
-// NOTE: While the single segment variable matches the semantics of
-// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2
-// Simple String Expansion, the multi segment variable **does not** match
-// RFC 6570 Reserved Expansion. The reason is that the Reserved Expansion
+// When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the
+// proto to JSON conversion must follow the [proto3
+// specification](https://developers.google.com/protocol-buffers/docs/proto3#json).
+//
+// While the single segment variable follows the semantics of
+// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
+// Expansion, the multi segment variable **does not** follow RFC 6570 Section
+// 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion
// does not expand special characters like `?` and `#`, which would lead
-// to invalid URLs.
+// to invalid URLs. As the result, gRPC Transcoding uses a custom encoding
+// for multi segment variables.
+//
+// The path variables **must not** refer to any repeated or mapped field,
+// because client libraries are not capable of handling such variable expansion.
+//
+// The path variables **must not** capture the leading "/" character. The reason
+// is that the most common use case "{var}" does not capture the leading "/"
+// character. For consistency, all path variables must share the same behavior.
//
-// NOTE: the field paths in variables and in the `body` must not refer to
-// repeated fields or map fields.
+// Repeated message fields must not be mapped to URL query parameters, because
+// no client library can support such complicated mapping.
+//
+// If an API needs to use a JSON array for request or response body, it can map
+// the request or response body to a repeated field. However, some gRPC
+// Transcoding implementations may not support this feature.
type HttpRule struct {
- // Selects methods to which this rule applies.
+ // Selects a method to which this rule applies.
//
- // Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+ // Refer to [selector][google.api.DocumentationRule.selector] for syntax
+ // details.
Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
// Determines the URL pattern is matched by this rules. This pattern can be
// used with any of the {get|put|post|delete|patch} methods. A custom method
@@ -329,19 +384,24 @@ type HttpRule struct {
// *HttpRule_Patch
// *HttpRule_Custom
Pattern isHttpRule_Pattern `protobuf_oneof:"pattern"`
- // The name of the request field whose value is mapped to the HTTP body, or
- // `*` for mapping all fields not captured by the path pattern to the HTTP
- // body. NOTE: the referred field must not be a repeated field and must be
- // present at the top-level of request message type.
+ // The name of the request field whose value is mapped to the HTTP request
+ // body, or `*` for mapping all request fields not captured by the path
+ // pattern to the HTTP body, or omitted for not having any HTTP request body.
+ //
+ // NOTE: the referred field must be present at the top-level of the request
+ // message type.
Body string `protobuf:"bytes,7,opt,name=body,proto3" json:"body,omitempty"`
// Optional. The name of the response field whose value is mapped to the HTTP
- // body of response. Other response fields are ignored. When
- // not set, the response message will be used as HTTP body of response.
+ // response body. When omitted, the entire response message will be used
+ // as the HTTP response body.
+ //
+ // NOTE: The referred field must be present at the top-level of the response
+ // message type.
ResponseBody string `protobuf:"bytes,12,opt,name=response_body,json=responseBody,proto3" json:"response_body,omitempty"`
// Additional HTTP bindings for the selector. Nested bindings must
// not contain an `additional_bindings` field themselves (that is,
// the nesting may only be one level deep).
- AdditionalBindings []*HttpRule `protobuf:"bytes,11,rep,name=additional_bindings,json=additionalBindings" json:"additional_bindings,omitempty"`
+ AdditionalBindings []*HttpRule `protobuf:"bytes,11,rep,name=additional_bindings,json=additionalBindings,proto3" json:"additional_bindings,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -350,7 +410,7 @@ type HttpRule struct {
func (m *HttpRule) Reset() { *m = HttpRule{} }
func (*HttpRule) ProtoMessage() {}
func (*HttpRule) Descriptor() ([]byte, []int) {
- return fileDescriptor_http_0b206a4af4ed46aa, []int{1}
+ return fileDescriptor_ff9994be407cdcc9, []int{1}
}
func (m *HttpRule) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -367,8 +427,8 @@ func (m *HttpRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *HttpRule) XXX_Merge(src proto.Message) {
- xxx_messageInfo_HttpRule.Merge(dst, src)
+func (m *HttpRule) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_HttpRule.Merge(m, src)
}
func (m *HttpRule) XXX_Size() int {
return m.Size()
@@ -402,7 +462,7 @@ type HttpRule_Patch struct {
Patch string `protobuf:"bytes,6,opt,name=patch,proto3,oneof"`
}
type HttpRule_Custom struct {
- Custom *CustomHttpPattern `protobuf:"bytes,8,opt,name=custom,oneof"`
+ Custom *CustomHttpPattern `protobuf:"bytes,8,opt,name=custom,proto3,oneof"`
}
func (*HttpRule_Get) isHttpRule_Pattern() {}
@@ -637,7 +697,7 @@ type CustomHttpPattern struct {
func (m *CustomHttpPattern) Reset() { *m = CustomHttpPattern{} }
func (*CustomHttpPattern) ProtoMessage() {}
func (*CustomHttpPattern) Descriptor() ([]byte, []int) {
- return fileDescriptor_http_0b206a4af4ed46aa, []int{2}
+ return fileDescriptor_ff9994be407cdcc9, []int{2}
}
func (m *CustomHttpPattern) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -654,8 +714,8 @@ func (m *CustomHttpPattern) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
-func (dst *CustomHttpPattern) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomHttpPattern.Merge(dst, src)
+func (m *CustomHttpPattern) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomHttpPattern.Merge(m, src)
}
func (m *CustomHttpPattern) XXX_Size() int {
return m.Size()
@@ -688,6 +748,41 @@ func init() {
proto.RegisterType((*HttpRule)(nil), "google.api.HttpRule")
proto.RegisterType((*CustomHttpPattern)(nil), "google.api.CustomHttpPattern")
}
+
+func init() { proto.RegisterFile("google/api/http.proto", fileDescriptor_ff9994be407cdcc9) }
+
+var fileDescriptor_ff9994be407cdcc9 = []byte{
+ // 444 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xb1, 0x6f, 0xd3, 0x40,
+ 0x14, 0xc6, 0x73, 0x89, 0x93, 0x26, 0x2f, 0x05, 0x89, 0xa3, 0xa0, 0x13, 0x82, 0x23, 0x0a, 0x4b,
+ 0xc4, 0x90, 0x4a, 0x65, 0x60, 0x60, 0xc2, 0x10, 0x51, 0xb6, 0xc8, 0x23, 0x42, 0xb2, 0x2e, 0xbe,
+ 0x47, 0x72, 0xc2, 0xf5, 0x9d, 0x7c, 0x67, 0x44, 0x36, 0xfe, 0x16, 0x26, 0xfe, 0x14, 0xc6, 0x8e,
+ 0x88, 0x89, 0x98, 0x85, 0xb1, 0x63, 0x47, 0x74, 0x67, 0x87, 0x56, 0x42, 0xea, 0xf6, 0xbe, 0xef,
+ 0xfd, 0xfc, 0xfc, 0xf9, 0xf9, 0xc1, 0xbd, 0xb5, 0xd6, 0xeb, 0x1c, 0x8f, 0x85, 0x51, 0xc7, 0x1b,
+ 0xe7, 0xcc, 0xdc, 0x94, 0xda, 0x69, 0x0a, 0x8d, 0x3d, 0x17, 0x46, 0x4d, 0xb7, 0x10, 0x9d, 0x3a,
+ 0x67, 0xe8, 0x53, 0xe8, 0x97, 0x55, 0x8e, 0x96, 0x91, 0x49, 0x6f, 0x36, 0x3e, 0x39, 0x9a, 0x5f,
+ 0x31, 0x73, 0x0f, 0x24, 0x55, 0x8e, 0x49, 0x83, 0xd0, 0x05, 0x3c, 0xfe, 0x50, 0xe5, 0xf9, 0x36,
+ 0x95, 0x98, 0x69, 0x89, 0x69, 0x89, 0x16, 0xcb, 0x4f, 0x28, 0x53, 0xfc, 0x6c, 0x44, 0x61, 0x95,
+ 0x2e, 0x58, 0x77, 0x42, 0x66, 0xc3, 0xe4, 0x61, 0xc0, 0x5e, 0x07, 0x2a, 0x69, 0xa1, 0xc5, 0x9e,
+ 0x99, 0xfe, 0xec, 0xc2, 0x70, 0x3f, 0x9a, 0x3e, 0x80, 0xa1, 0xc5, 0x1c, 0x33, 0xa7, 0x4b, 0x46,
+ 0x26, 0x64, 0x36, 0x4a, 0xfe, 0x69, 0x4a, 0xa1, 0xb7, 0x46, 0x17, 0x66, 0x8e, 0x4e, 0x3b, 0x89,
+ 0x17, 0xde, 0x33, 0x95, 0x63, 0xbd, 0xbd, 0x67, 0x2a, 0x47, 0x8f, 0x20, 0x32, 0xda, 0x3a, 0x16,
+ 0xb5, 0x66, 0x50, 0x94, 0xc1, 0x40, 0x62, 0x8e, 0x0e, 0x59, 0xbf, 0xf5, 0x5b, 0x4d, 0xef, 0x43,
+ 0xdf, 0x08, 0x97, 0x6d, 0xd8, 0xa0, 0x6d, 0x34, 0x92, 0x3e, 0x87, 0x41, 0x56, 0x59, 0xa7, 0xcf,
+ 0xd8, 0x70, 0x42, 0x66, 0xe3, 0x93, 0x47, 0xd7, 0x97, 0xf1, 0x2a, 0x74, 0x7c, 0xee, 0xa5, 0x70,
+ 0x0e, 0xcb, 0xc2, 0x0f, 0x6c, 0x70, 0x4a, 0x21, 0x5a, 0x69, 0xb9, 0x65, 0x07, 0xe1, 0x03, 0x42,
+ 0x4d, 0x9f, 0xc0, 0xad, 0x12, 0xad, 0xd1, 0x85, 0xc5, 0x34, 0x34, 0x0f, 0x43, 0xf3, 0x70, 0x6f,
+ 0xc6, 0x1e, 0x5a, 0xc0, 0x5d, 0x21, 0xa5, 0x72, 0x4a, 0x17, 0x22, 0x4f, 0x57, 0xaa, 0x90, 0xaa,
+ 0x58, 0x5b, 0x36, 0xbe, 0xe1, 0x5f, 0xd0, 0xab, 0x07, 0xe2, 0x96, 0x8f, 0x47, 0x70, 0x60, 0x9a,
+ 0x50, 0xd3, 0x17, 0x70, 0xe7, 0xbf, 0xa4, 0x3e, 0xdf, 0x47, 0x55, 0xc8, 0x76, 0xc1, 0xa1, 0xf6,
+ 0x9e, 0x11, 0x6e, 0xd3, 0x6c, 0x37, 0x09, 0x75, 0xfc, 0xfe, 0x7c, 0xc7, 0x3b, 0x3f, 0x76, 0xbc,
+ 0x73, 0xb1, 0xe3, 0xe4, 0x72, 0xc7, 0xc9, 0x97, 0x9a, 0x93, 0x6f, 0x35, 0x27, 0xdf, 0x6b, 0x4e,
+ 0xce, 0x6b, 0x4e, 0x7e, 0xd5, 0x9c, 0xfc, 0xa9, 0x79, 0xe7, 0xc2, 0x7b, 0xbf, 0x39, 0x81, 0xdb,
+ 0x99, 0x3e, 0xbb, 0x16, 0x33, 0x1e, 0x85, 0xd7, 0xfa, 0x6b, 0x5b, 0x92, 0x77, 0x3d, 0x61, 0xd4,
+ 0x25, 0x21, 0x5f, 0xbb, 0xd1, 0x9b, 0x97, 0xcb, 0xb7, 0xab, 0x41, 0xb8, 0xc2, 0x67, 0x7f, 0x03,
+ 0x00, 0x00, 0xff, 0xff, 0xa1, 0x9d, 0x2a, 0xeb, 0x9e, 0x02, 0x00, 0x00,
+}
+
func (this *Http) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -1413,6 +1508,9 @@ func encodeVarintPopulateHttp(dAtA []byte, v uint64) []byte {
return dAtA
}
func (m *Http) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
if len(m.Rules) > 0 {
@@ -1431,6 +1529,9 @@ func (m *Http) Size() (n int) {
}
func (m *HttpRule) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
l = len(m.Selector)
@@ -1461,6 +1562,9 @@ func (m *HttpRule) Size() (n int) {
}
func (m *HttpRule_Get) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
l = len(m.Get)
@@ -1468,6 +1572,9 @@ func (m *HttpRule_Get) Size() (n int) {
return n
}
func (m *HttpRule_Put) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
l = len(m.Put)
@@ -1475,6 +1582,9 @@ func (m *HttpRule_Put) Size() (n int) {
return n
}
func (m *HttpRule_Post) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
l = len(m.Post)
@@ -1482,6 +1592,9 @@ func (m *HttpRule_Post) Size() (n int) {
return n
}
func (m *HttpRule_Delete) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
l = len(m.Delete)
@@ -1489,6 +1602,9 @@ func (m *HttpRule_Delete) Size() (n int) {
return n
}
func (m *HttpRule_Patch) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
l = len(m.Patch)
@@ -1496,6 +1612,9 @@ func (m *HttpRule_Patch) Size() (n int) {
return n
}
func (m *HttpRule_Custom) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
if m.Custom != nil {
@@ -1505,6 +1624,9 @@ func (m *HttpRule_Custom) Size() (n int) {
return n
}
func (m *CustomHttpPattern) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
l = len(m.Kind)
@@ -1656,7 +1778,7 @@ func (m *Http) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1684,7 +1806,7 @@ func (m *Http) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1693,6 +1815,9 @@ func (m *Http) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthHttp
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthHttp
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1715,7 +1840,7 @@ func (m *Http) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1730,6 +1855,9 @@ func (m *Http) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthHttp
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthHttp
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1758,7 +1886,7 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1786,7 +1914,7 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1796,6 +1924,9 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthHttp
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthHttp
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1815,7 +1946,7 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1825,6 +1956,9 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthHttp
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthHttp
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1844,7 +1978,7 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1854,6 +1988,9 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthHttp
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthHttp
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1873,7 +2010,7 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1883,6 +2020,9 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthHttp
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthHttp
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1902,7 +2042,7 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1912,6 +2052,9 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthHttp
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthHttp
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1931,7 +2074,7 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1941,6 +2084,9 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthHttp
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthHttp
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1960,7 +2106,7 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1970,6 +2116,9 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthHttp
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthHttp
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1989,7 +2138,7 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1998,6 +2147,9 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthHttp
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthHttp
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2021,7 +2173,7 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2030,6 +2182,9 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthHttp
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthHttp
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2052,7 +2207,7 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2062,6 +2217,9 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthHttp
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthHttp
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2076,6 +2234,9 @@ func (m *HttpRule) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthHttp
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthHttp
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2104,7 +2265,7 @@ func (m *CustomHttpPattern) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2132,7 +2293,7 @@ func (m *CustomHttpPattern) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2142,6 +2303,9 @@ func (m *CustomHttpPattern) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthHttp
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthHttp
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2161,7 +2325,7 @@ func (m *CustomHttpPattern) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2171,6 +2335,9 @@ func (m *CustomHttpPattern) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthHttp
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthHttp
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2185,6 +2352,9 @@ func (m *CustomHttpPattern) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthHttp
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthHttp
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2252,10 +2422,13 @@ func skipHttp(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthHttp
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthHttp
+ }
return iNdEx, nil
case 3:
for {
@@ -2284,6 +2457,9 @@ func skipHttp(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthHttp
+ }
}
return iNdEx, nil
case 4:
@@ -2302,37 +2478,3 @@ var (
ErrInvalidLengthHttp = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowHttp = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("google/api/http.proto", fileDescriptor_http_0b206a4af4ed46aa) }
-
-var fileDescriptor_http_0b206a4af4ed46aa = []byte{
- // 446 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xb1, 0x6f, 0x13, 0x31,
- 0x14, 0xc6, 0xe3, 0xe4, 0x92, 0x26, 0x2f, 0x05, 0x09, 0x53, 0x90, 0x85, 0xc0, 0x44, 0x61, 0x89,
- 0x18, 0x52, 0xa9, 0x0c, 0x0c, 0x4c, 0x1c, 0x44, 0x94, 0x2d, 0xba, 0x11, 0x21, 0x9d, 0x9c, 0xf3,
- 0x23, 0xb1, 0xb8, 0x9e, 0xad, 0xb3, 0x0f, 0x91, 0x8d, 0xbf, 0x85, 0x89, 0x3f, 0x85, 0xb1, 0x23,
- 0x62, 0x22, 0xc7, 0xc2, 0xd8, 0xb1, 0x23, 0xb2, 0xef, 0x42, 0x2b, 0x21, 0x75, 0x7b, 0xdf, 0xe7,
- 0x9f, 0xed, 0xef, 0x3d, 0x3d, 0xb8, 0xb7, 0xd6, 0x7a, 0x9d, 0xe3, 0xb1, 0x30, 0xea, 0x78, 0xe3,
- 0x9c, 0x99, 0x9b, 0x52, 0x3b, 0x4d, 0xa1, 0xb1, 0xe7, 0xc2, 0xa8, 0xe9, 0x16, 0xa2, 0x53, 0xe7,
- 0x0c, 0x7d, 0x0a, 0xfd, 0xb2, 0xca, 0xd1, 0x32, 0x32, 0xe9, 0xcd, 0xc6, 0x27, 0x47, 0xf3, 0x2b,
- 0x66, 0xee, 0x81, 0xa4, 0xca, 0x31, 0x69, 0x10, 0xba, 0x80, 0xc7, 0x1f, 0xaa, 0x3c, 0xdf, 0xa6,
- 0x12, 0x33, 0x2d, 0x31, 0x2d, 0xd1, 0x62, 0xf9, 0x09, 0x65, 0x8a, 0x9f, 0x8d, 0x28, 0xac, 0xd2,
- 0x05, 0xeb, 0x4e, 0xc8, 0x6c, 0x98, 0x3c, 0x0c, 0xd8, 0xeb, 0x40, 0x25, 0x2d, 0xb4, 0xd8, 0x33,
- 0xd3, 0x9f, 0x5d, 0x18, 0xee, 0x9f, 0xa6, 0x0f, 0x60, 0x68, 0x31, 0xc7, 0xcc, 0xe9, 0x92, 0x91,
- 0x09, 0x99, 0x8d, 0x92, 0x7f, 0x9a, 0x52, 0xe8, 0xad, 0xd1, 0x85, 0x37, 0x47, 0xa7, 0x9d, 0xc4,
- 0x0b, 0xef, 0x99, 0xca, 0xb1, 0xde, 0xde, 0x33, 0x95, 0xa3, 0x47, 0x10, 0x19, 0x6d, 0x1d, 0x8b,
- 0x5a, 0x33, 0x28, 0xca, 0x60, 0x20, 0x31, 0x47, 0x87, 0xac, 0xdf, 0xfa, 0xad, 0xa6, 0xf7, 0xa1,
- 0x6f, 0x84, 0xcb, 0x36, 0x6c, 0xd0, 0x1e, 0x34, 0x92, 0x52, 0x88, 0x56, 0x5a, 0x6e, 0xd9, 0x41,
- 0xc8, 0x11, 0x6a, 0xfa, 0x1c, 0x06, 0x59, 0x65, 0x9d, 0x3e, 0x63, 0xc3, 0x09, 0x99, 0x8d, 0x4f,
- 0x1e, 0x5d, 0x1f, 0xd0, 0xab, 0x70, 0xe2, 0x7b, 0x59, 0x0a, 0xe7, 0xb0, 0x2c, 0xfc, 0x27, 0x0d,
- 0x4e, 0x17, 0x70, 0x57, 0x48, 0xa9, 0x9c, 0xd2, 0x85, 0xc8, 0xd3, 0x95, 0x2a, 0xa4, 0x2a, 0xd6,
- 0x96, 0x8d, 0x6f, 0x18, 0x33, 0xbd, 0xba, 0x10, 0xb7, 0x3c, 0x7d, 0x02, 0xb7, 0x4a, 0xb4, 0x46,
- 0x17, 0x16, 0xd3, 0x10, 0xee, 0x30, 0x84, 0x3b, 0xdc, 0x9b, 0xb1, 0x96, 0xdb, 0x78, 0x04, 0x07,
- 0xa6, 0x09, 0x30, 0x7d, 0x01, 0x77, 0xfe, 0x4b, 0xe5, 0x1b, 0xfb, 0xa8, 0x0a, 0xd9, 0x0e, 0x38,
- 0xd4, 0xde, 0x33, 0xc2, 0x6d, 0x9a, 0xe9, 0x26, 0xa1, 0x8e, 0xdf, 0x9f, 0xef, 0x78, 0xe7, 0xc7,
- 0x8e, 0x77, 0x2e, 0x76, 0x9c, 0x5c, 0xee, 0x38, 0xf9, 0x52, 0x73, 0xf2, 0xad, 0xe6, 0xe4, 0x7b,
- 0xcd, 0xc9, 0x79, 0xcd, 0xc9, 0xaf, 0x9a, 0x93, 0x3f, 0x35, 0xef, 0x5c, 0x78, 0xef, 0x37, 0x27,
- 0x70, 0x3b, 0xd3, 0x67, 0xd7, 0x7a, 0x89, 0x47, 0xe1, 0x5b, 0xbf, 0x6d, 0x4b, 0xf2, 0xae, 0x27,
- 0x8c, 0xba, 0x24, 0xe4, 0x6b, 0x37, 0x7a, 0xf3, 0x72, 0xf9, 0x76, 0x35, 0x08, 0x5b, 0xf8, 0xec,
- 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x40, 0x7e, 0xd3, 0x2c, 0x9e, 0x02, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/googleapis/google/api/http.proto b/vendor/github.com/gogo/googleapis/google/api/http.proto
index 6f92729b87dd..8c8f9b1b0452 100644
--- a/vendor/github.com/gogo/googleapis/google/api/http.proto
+++ b/vendor/github.com/gogo/googleapis/google/api/http.proto
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2018 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+//
syntax = "proto3";
@@ -23,7 +24,6 @@ option java_outer_classname = "HttpProto";
option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
-
// Defines the HTTP configuration for an API service. It contains a list of
// [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method
// to one or more HTTP REST API methods.
@@ -42,94 +42,94 @@ message Http {
bool fully_decode_reserved_expansion = 2;
}
-// `HttpRule` defines the mapping of an RPC method to one or more HTTP
-// REST API methods. The mapping specifies how different portions of the RPC
-// request message are mapped to URL path, URL query parameters, and
-// HTTP request body. The mapping is typically specified as an
-// `google.api.http` annotation on the RPC method,
-// see "google/api/annotations.proto" for details.
-//
-// The mapping consists of a field specifying the path template and
-// method kind. The path template can refer to fields in the request
-// message, as in the example below which describes a REST GET
-// operation on a resource collection of messages:
-//
+// # gRPC Transcoding
+//
+// gRPC Transcoding is a feature for mapping between a gRPC method and one or
+// more HTTP REST endpoints. It allows developers to build a single API service
+// that supports both gRPC APIs and REST APIs. Many systems, including [Google
+// APIs](https://github.com/googleapis/googleapis),
+// [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC
+// Gateway](https://github.com/grpc-ecosystem/grpc-gateway),
+// and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature
+// and use it for large scale production services.
+//
+// `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies
+// how different portions of the gRPC request message are mapped to the URL
+// path, URL query parameters, and HTTP request body. It also controls how the
+// gRPC response message is mapped to the HTTP response body. `HttpRule` is
+// typically specified as an `google.api.http` annotation on the gRPC method.
+//
+// Each mapping specifies a URL path template and an HTTP method. The path
+// template may refer to one or more fields in the gRPC request message, as long
+// as each field is a non-repeated field with a primitive (non-message) type.
+// The path template controls how fields of the request message are mapped to
+// the URL path.
+//
+// Example:
//
// service Messaging {
// rpc GetMessage(GetMessageRequest) returns (Message) {
-// option (google.api.http).get = "/v1/messages/{message_id}/{sub.subfield}";
+// option (google.api.http) = {
+// get: "/v1/{name=messages/*}"
+// };
// }
// }
// message GetMessageRequest {
-// message SubMessage {
-// string subfield = 1;
-// }
-// string message_id = 1; // mapped to the URL
-// SubMessage sub = 2; // `sub.subfield` is url-mapped
+// string name = 1; // Mapped to URL path.
// }
// message Message {
-// string text = 1; // content of the resource
+// string text = 1; // The resource content.
// }
//
-// The same http annotation can alternatively be expressed inside the
-// `GRPC API Configuration` YAML file.
-//
-// http:
-// rules:
-// - selector: .Messaging.GetMessage
-// get: /v1/messages/{message_id}/{sub.subfield}
+// This enables an HTTP REST to gRPC mapping as below:
//
-// This definition enables an automatic, bidrectional mapping of HTTP
-// JSON to RPC. Example:
-//
-// HTTP | RPC
+// HTTP | gRPC
// -----|-----
-// `GET /v1/messages/123456/foo` | `GetMessage(message_id: "123456" sub: SubMessage(subfield: "foo"))`
-//
-// In general, not only fields but also field paths can be referenced
-// from a path pattern. Fields mapped to the path pattern cannot be
-// repeated and must have a primitive (non-message) type.
-//
-// Any fields in the request message which are not bound by the path
-// pattern automatically become (optional) HTTP query
-// parameters. Assume the following definition of the request message:
+// `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")`
//
+// Any fields in the request message which are not bound by the path template
+// automatically become HTTP query parameters if there is no HTTP request body.
+// For example:
//
// service Messaging {
// rpc GetMessage(GetMessageRequest) returns (Message) {
-// option (google.api.http).get = "/v1/messages/{message_id}";
+// option (google.api.http) = {
+// get:"/v1/messages/{message_id}"
+// };
// }
// }
// message GetMessageRequest {
// message SubMessage {
// string subfield = 1;
// }
-// string message_id = 1; // mapped to the URL
-// int64 revision = 2; // becomes a parameter
-// SubMessage sub = 3; // `sub.subfield` becomes a parameter
+// string message_id = 1; // Mapped to URL path.
+// int64 revision = 2; // Mapped to URL query parameter `revision`.
+// SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`.
// }
//
-//
// This enables a HTTP JSON to RPC mapping as below:
//
-// HTTP | RPC
+// HTTP | gRPC
// -----|-----
-// `GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: "foo"))`
-//
-// Note that fields which are mapped to HTTP parameters must have a
-// primitive type or a repeated primitive type. Message types are not
-// allowed. In the case of a repeated type, the parameter can be
-// repeated in the URL, as in `...?param=A¶m=B`.
-//
-// For HTTP method kinds which allow a request body, the `body` field
+// `GET /v1/messages/123456?revision=2&sub.subfield=foo` |
+// `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield:
+// "foo"))`
+//
+// Note that fields which are mapped to URL query parameters must have a
+// primitive type or a repeated primitive type or a non-repeated message type.
+// In the case of a repeated type, the parameter can be repeated in the URL
+// as `...?param=A¶m=B`. In the case of a message type, each field of the
+// message is mapped to a separate parameter, such as
+// `...?foo.a=A&foo.b=B&foo.c=C`.
+//
+// For HTTP methods that allow a request body, the `body` field
// specifies the mapping. Consider a REST update method on the
// message resource collection:
//
-//
// service Messaging {
// rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
// option (google.api.http) = {
-// put: "/v1/messages/{message_id}"
+// patch: "/v1/messages/{message_id}"
// body: "message"
// };
// }
@@ -139,14 +139,14 @@ message Http {
// Message message = 2; // mapped to the body
// }
//
-//
// The following HTTP JSON to RPC mapping is enabled, where the
// representation of the JSON in the request body is determined by
// protos JSON encoding:
//
-// HTTP | RPC
+// HTTP | gRPC
// -----|-----
-// `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" message { text: "Hi!" })`
+// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
+// "123456" message { text: "Hi!" })`
//
// The special name `*` can be used in the body mapping to define that
// every field not bound by the path template should be mapped to the
@@ -156,7 +156,7 @@ message Http {
// service Messaging {
// rpc UpdateMessage(Message) returns (Message) {
// option (google.api.http) = {
-// put: "/v1/messages/{message_id}"
+// patch: "/v1/messages/{message_id}"
// body: "*"
// };
// }
@@ -169,13 +169,14 @@ message Http {
//
// The following HTTP JSON to RPC mapping is enabled:
//
-// HTTP | RPC
+// HTTP | gRPC
// -----|-----
-// `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" text: "Hi!")`
+// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
+// "123456" text: "Hi!")`
//
// Note that when using `*` in the body mapping, it is not possible to
// have HTTP parameters, as all fields not bound by the path end in
-// the body. This makes this option more rarely used in practice of
+// the body. This makes this option more rarely used in practice when
// defining REST APIs. The common usage of `*` is in custom methods
// which don't use the URL at all for transferring data.
//
@@ -197,32 +198,34 @@ message Http {
// string user_id = 2;
// }
//
+// This enables the following two alternative HTTP JSON to RPC mappings:
//
-// This enables the following two alternative HTTP JSON to RPC
-// mappings:
-//
-// HTTP | RPC
+// HTTP | gRPC
// -----|-----
// `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
-// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: "123456")`
-//
-// # Rules for HTTP mapping
-//
-// The rules for mapping HTTP path, query parameters, and body fields
-// to the request message are as follows:
-//
-// 1. The `body` field specifies either `*` or a field path, or is
-// omitted. If omitted, it indicates there is no HTTP request body.
-// 2. Leaf fields (recursive expansion of nested messages in the
-// request) can be classified into three types:
-// (a) Matched in the URL template.
-// (b) Covered by body (if body is `*`, everything except (a) fields;
-// else everything under the body field)
-// (c) All other fields.
-// 3. URL query parameters found in the HTTP request are mapped to (c) fields.
-// 4. Any body sent with an HTTP request can contain only (b) fields.
-//
-// The syntax of the path template is as follows:
+// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id:
+// "123456")`
+//
+// ## Rules for HTTP mapping
+//
+// 1. Leaf request fields (recursive expansion nested messages in the request
+// message) are classified into three categories:
+// - Fields referred by the path template. They are passed via the URL path.
+// - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They
+// are passed via the HTTP
+// request body.
+// - All other fields are passed via the URL query parameters, and the
+// parameter name is the field path in the request message. A repeated
+// field can be represented as multiple query parameters under the same
+// name.
+// 2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL
+// query parameter, all fields
+// are passed via URL path and HTTP request body.
+// 3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP
+// request body, all
+// fields are passed via URL path and URL query parameters.
+//
+// ### Path template syntax
//
// Template = "/" Segments [ Verb ] ;
// Segments = Segment { "/" Segment } ;
@@ -231,57 +234,111 @@ message Http {
// FieldPath = IDENT { "." IDENT } ;
// Verb = ":" LITERAL ;
//
-// The syntax `*` matches a single path segment. The syntax `**` matches zero
-// or more path segments, which must be the last part of the path except the
-// `Verb`. The syntax `LITERAL` matches literal text in the path.
+// The syntax `*` matches a single URL path segment. The syntax `**` matches
+// zero or more URL path segments, which must be the last part of the URL path
+// except the `Verb`.
//
// The syntax `Variable` matches part of the URL path as specified by its
// template. A variable template must not contain other variables. If a variable
// matches a single path segment, its template may be omitted, e.g. `{var}`
// is equivalent to `{var=*}`.
//
+// The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL`
+// contains any reserved character, such characters should be percent-encoded
+// before the matching.
+//
// If a variable contains exactly one path segment, such as `"{var}"` or
-// `"{var=*}"`, when such a variable is expanded into a URL path, all characters
-// except `[-_.~0-9a-zA-Z]` are percent-encoded. Such variables show up in the
-// Discovery Document as `{var}`.
-//
-// If a variable contains one or more path segments, such as `"{var=foo/*}"`
-// or `"{var=**}"`, when such a variable is expanded into a URL path, all
-// characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. Such variables
-// show up in the Discovery Document as `{+var}`.
-//
-// NOTE: While the single segment variable matches the semantics of
-// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2
-// Simple String Expansion, the multi segment variable **does not** match
-// RFC 6570 Reserved Expansion. The reason is that the Reserved Expansion
+// `"{var=*}"`, when such a variable is expanded into a URL path on the client
+// side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The
+// server side does the reverse decoding. Such variables show up in the
+// [Discovery
+// Document](https://developers.google.com/discovery/v1/reference/apis) as
+// `{var}`.
+//
+// If a variable contains multiple path segments, such as `"{var=foo/*}"`
+// or `"{var=**}"`, when such a variable is expanded into a URL path on the
+// client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded.
+// The server side does the reverse decoding, except "%2F" and "%2f" are left
+// unchanged. Such variables show up in the
+// [Discovery
+// Document](https://developers.google.com/discovery/v1/reference/apis) as
+// `{+var}`.
+//
+// ## Using gRPC API Service Configuration
+//
+// gRPC API Service Configuration (service config) is a configuration language
+// for configuring a gRPC service to become a user-facing product. The
+// service config is simply the YAML representation of the `google.api.Service`
+// proto message.
+//
+// As an alternative to annotating your proto file, you can configure gRPC
+// transcoding in your service config YAML files. You do this by specifying a
+// `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same
+// effect as the proto annotation. This can be particularly useful if you
+// have a proto that is reused in multiple services. Note that any transcoding
+// specified in the service config will override any matching transcoding
+// configuration in the proto.
+//
+// Example:
+//
+// http:
+// rules:
+// # Selects a gRPC method and applies HttpRule to it.
+// - selector: example.v1.Messaging.GetMessage
+// get: /v1/messages/{message_id}/{sub.subfield}
+//
+// ## Special notes
+//
+// When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the
+// proto to JSON conversion must follow the [proto3
+// specification](https://developers.google.com/protocol-buffers/docs/proto3#json).
+//
+// While the single segment variable follows the semantics of
+// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
+// Expansion, the multi segment variable **does not** follow RFC 6570 Section
+// 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion
// does not expand special characters like `?` and `#`, which would lead
-// to invalid URLs.
+// to invalid URLs. As the result, gRPC Transcoding uses a custom encoding
+// for multi segment variables.
//
-// NOTE: the field paths in variables and in the `body` must not refer to
-// repeated fields or map fields.
+// The path variables **must not** refer to any repeated or mapped field,
+// because client libraries are not capable of handling such variable expansion.
+//
+// The path variables **must not** capture the leading "/" character. The reason
+// is that the most common use case "{var}" does not capture the leading "/"
+// character. For consistency, all path variables must share the same behavior.
+//
+// Repeated message fields must not be mapped to URL query parameters, because
+// no client library can support such complicated mapping.
+//
+// If an API needs to use a JSON array for request or response body, it can map
+// the request or response body to a repeated field. However, some gRPC
+// Transcoding implementations may not support this feature.
message HttpRule {
- // Selects methods to which this rule applies.
+ // Selects a method to which this rule applies.
//
- // Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+ // Refer to [selector][google.api.DocumentationRule.selector] for syntax
+ // details.
string selector = 1;
// Determines the URL pattern is matched by this rules. This pattern can be
// used with any of the {get|put|post|delete|patch} methods. A custom method
// can be defined using the 'custom' field.
oneof pattern {
- // Used for listing and getting information about resources.
+ // Maps to HTTP GET. Used for listing and getting information about
+ // resources.
string get = 2;
- // Used for updating a resource.
+ // Maps to HTTP PUT. Used for replacing a resource.
string put = 3;
- // Used for creating a resource.
+ // Maps to HTTP POST. Used for creating a resource or performing an action.
string post = 4;
- // Used for deleting a resource.
+ // Maps to HTTP DELETE. Used for deleting a resource.
string delete = 5;
- // Used for updating a resource.
+ // Maps to HTTP PATCH. Used for updating a resource.
string patch = 6;
// The custom pattern is used for specifying an HTTP method that is not
@@ -291,15 +348,20 @@ message HttpRule {
CustomHttpPattern custom = 8;
}
- // The name of the request field whose value is mapped to the HTTP body, or
- // `*` for mapping all fields not captured by the path pattern to the HTTP
- // body. NOTE: the referred field must not be a repeated field and must be
- // present at the top-level of request message type.
+ // The name of the request field whose value is mapped to the HTTP request
+ // body, or `*` for mapping all request fields not captured by the path
+ // pattern to the HTTP body, or omitted for not having any HTTP request body.
+ //
+ // NOTE: the referred field must be present at the top-level of the request
+ // message type.
string body = 7;
// Optional. The name of the response field whose value is mapped to the HTTP
- // body of response. Other response fields are ignored. When
- // not set, the response message will be used as HTTP body of response.
+ // response body. When omitted, the entire response message will be used
+ // as the HTTP response body.
+ //
+ // NOTE: The referred field must be present at the top-level of the response
+ // message type.
string response_body = 12;
// Additional HTTP bindings for the selector. Nested bindings must
diff --git a/vendor/github.com/gogo/googleapis/google/rpc/code.pb.go b/vendor/github.com/gogo/googleapis/google/rpc/code.pb.go
index f2cbae8f76d2..e2c94aecebf5 100644
--- a/vendor/github.com/gogo/googleapis/google/rpc/code.pb.go
+++ b/vendor/github.com/gogo/googleapis/google/rpc/code.pb.go
@@ -3,11 +3,12 @@
package rpc
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import strconv "strconv"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+ strconv "strconv"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -187,6 +188,7 @@ var Code_name = map[int32]string{
14: "UNAVAILABLE",
15: "DATA_LOSS",
}
+
var Code_value = map[string]int32{
"OK": 0,
"CANCELLED": 1,
@@ -208,23 +210,16 @@ var Code_value = map[string]int32{
}
func (Code) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_code_29c527ae4b4f0e5d, []int{0}
+ return fileDescriptor_fe593a732623ccf0, []int{0}
}
func init() {
proto.RegisterEnum("google.rpc.Code", Code_name, Code_value)
}
-func (x Code) String() string {
- s, ok := Code_name[int32(x)]
- if ok {
- return s
- }
- return strconv.Itoa(int(x))
-}
-func init() { proto.RegisterFile("google/rpc/code.proto", fileDescriptor_code_29c527ae4b4f0e5d) }
+func init() { proto.RegisterFile("google/rpc/code.proto", fileDescriptor_fe593a732623ccf0) }
-var fileDescriptor_code_29c527ae4b4f0e5d = []byte{
+var fileDescriptor_fe593a732623ccf0 = []byte{
// 393 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0x91, 0x3d, 0x6e, 0x13, 0x41,
0x14, 0xc7, 0x3d, 0x76, 0x70, 0xe2, 0xf1, 0xd7, 0xcb, 0x84, 0x40, 0x37, 0x07, 0xa0, 0x70, 0x0a,
@@ -252,3 +247,11 @@ var fileDescriptor_code_29c527ae4b4f0e5d = []byte{
0xf3, 0xb5, 0x3f, 0x08, 0x65, 0xf1, 0x61, 0xf8, 0xb7, 0xaa, 0xd7, 0x7f, 0x02, 0x00, 0x00, 0xff,
0xff, 0x03, 0xd4, 0x27, 0xff, 0xc3, 0x01, 0x00, 0x00,
}
+
+func (x Code) String() string {
+ s, ok := Code_name[int32(x)]
+ if ok {
+ return s
+ }
+ return strconv.Itoa(int(x))
+}
diff --git a/vendor/github.com/gogo/googleapis/google/rpc/code.proto b/vendor/github.com/gogo/googleapis/google/rpc/code.proto
index d832de11e981..0540a4f6c583 100644
--- a/vendor/github.com/gogo/googleapis/google/rpc/code.proto
+++ b/vendor/github.com/gogo/googleapis/google/rpc/code.proto
@@ -22,7 +22,6 @@ option java_outer_classname = "CodeProto";
option java_package = "com.google.rpc";
option objc_class_prefix = "RPC";
-
// The canonical error codes for Google APIs.
//
//
diff --git a/vendor/github.com/gogo/googleapis/google/rpc/error_details.pb.go b/vendor/github.com/gogo/googleapis/google/rpc/error_details.pb.go
index 9a91abe03d15..657f1dac14b0 100644
--- a/vendor/github.com/gogo/googleapis/google/rpc/error_details.pb.go
+++ b/vendor/github.com/gogo/googleapis/google/rpc/error_details.pb.go
@@ -3,17 +3,16 @@
package rpc
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import types "github.com/gogo/protobuf/types"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ types "github.com/gogo/protobuf/types"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -41,7 +40,7 @@ const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
// reached.
type RetryInfo struct {
// Clients should wait at least this long between retrying the same request.
- RetryDelay *types.Duration `protobuf:"bytes,1,opt,name=retry_delay,json=retryDelay" json:"retry_delay,omitempty"`
+ RetryDelay *types.Duration `protobuf:"bytes,1,opt,name=retry_delay,json=retryDelay,proto3" json:"retry_delay,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -50,7 +49,7 @@ type RetryInfo struct {
func (m *RetryInfo) Reset() { *m = RetryInfo{} }
func (*RetryInfo) ProtoMessage() {}
func (*RetryInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_error_details_ff696d72eb1e7a26, []int{0}
+ return fileDescriptor_851816e4d6b6361a, []int{0}
}
func (m *RetryInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -67,8 +66,8 @@ func (m *RetryInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *RetryInfo) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RetryInfo.Merge(dst, src)
+func (m *RetryInfo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RetryInfo.Merge(m, src)
}
func (m *RetryInfo) XXX_Size() int {
return m.Size()
@@ -93,7 +92,7 @@ func (*RetryInfo) XXX_MessageName() string {
// Describes additional debugging info.
type DebugInfo struct {
// The stack trace entries indicating where the error occurred.
- StackEntries []string `protobuf:"bytes,1,rep,name=stack_entries,json=stackEntries" json:"stack_entries,omitempty"`
+ StackEntries []string `protobuf:"bytes,1,rep,name=stack_entries,json=stackEntries,proto3" json:"stack_entries,omitempty"`
// Additional debugging information provided by the server.
Detail string `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -104,7 +103,7 @@ type DebugInfo struct {
func (m *DebugInfo) Reset() { *m = DebugInfo{} }
func (*DebugInfo) ProtoMessage() {}
func (*DebugInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_error_details_ff696d72eb1e7a26, []int{1}
+ return fileDescriptor_851816e4d6b6361a, []int{1}
}
func (m *DebugInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -121,8 +120,8 @@ func (m *DebugInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *DebugInfo) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DebugInfo.Merge(dst, src)
+func (m *DebugInfo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DebugInfo.Merge(m, src)
}
func (m *DebugInfo) XXX_Size() int {
return m.Size()
@@ -164,7 +163,7 @@ func (*DebugInfo) XXX_MessageName() string {
// quota failure.
type QuotaFailure struct {
// Describes all quota violations.
- Violations []*QuotaFailure_Violation `protobuf:"bytes,1,rep,name=violations" json:"violations,omitempty"`
+ Violations []*QuotaFailure_Violation `protobuf:"bytes,1,rep,name=violations,proto3" json:"violations,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -173,7 +172,7 @@ type QuotaFailure struct {
func (m *QuotaFailure) Reset() { *m = QuotaFailure{} }
func (*QuotaFailure) ProtoMessage() {}
func (*QuotaFailure) Descriptor() ([]byte, []int) {
- return fileDescriptor_error_details_ff696d72eb1e7a26, []int{2}
+ return fileDescriptor_851816e4d6b6361a, []int{2}
}
func (m *QuotaFailure) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -190,8 +189,8 @@ func (m *QuotaFailure) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *QuotaFailure) XXX_Merge(src proto.Message) {
- xxx_messageInfo_QuotaFailure.Merge(dst, src)
+func (m *QuotaFailure) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QuotaFailure.Merge(m, src)
}
func (m *QuotaFailure) XXX_Size() int {
return m.Size()
@@ -236,7 +235,7 @@ type QuotaFailure_Violation struct {
func (m *QuotaFailure_Violation) Reset() { *m = QuotaFailure_Violation{} }
func (*QuotaFailure_Violation) ProtoMessage() {}
func (*QuotaFailure_Violation) Descriptor() ([]byte, []int) {
- return fileDescriptor_error_details_ff696d72eb1e7a26, []int{2, 0}
+ return fileDescriptor_851816e4d6b6361a, []int{2, 0}
}
func (m *QuotaFailure_Violation) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -253,8 +252,8 @@ func (m *QuotaFailure_Violation) XXX_Marshal(b []byte, deterministic bool) ([]by
return b[:n], nil
}
}
-func (dst *QuotaFailure_Violation) XXX_Merge(src proto.Message) {
- xxx_messageInfo_QuotaFailure_Violation.Merge(dst, src)
+func (m *QuotaFailure_Violation) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QuotaFailure_Violation.Merge(m, src)
}
func (m *QuotaFailure_Violation) XXX_Size() int {
return m.Size()
@@ -290,7 +289,7 @@ func (*QuotaFailure_Violation) XXX_MessageName() string {
// PreconditionFailure message.
type PreconditionFailure struct {
// Describes all precondition violations.
- Violations []*PreconditionFailure_Violation `protobuf:"bytes,1,rep,name=violations" json:"violations,omitempty"`
+ Violations []*PreconditionFailure_Violation `protobuf:"bytes,1,rep,name=violations,proto3" json:"violations,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -299,7 +298,7 @@ type PreconditionFailure struct {
func (m *PreconditionFailure) Reset() { *m = PreconditionFailure{} }
func (*PreconditionFailure) ProtoMessage() {}
func (*PreconditionFailure) Descriptor() ([]byte, []int) {
- return fileDescriptor_error_details_ff696d72eb1e7a26, []int{3}
+ return fileDescriptor_851816e4d6b6361a, []int{3}
}
func (m *PreconditionFailure) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -316,8 +315,8 @@ func (m *PreconditionFailure) XXX_Marshal(b []byte, deterministic bool) ([]byte,
return b[:n], nil
}
}
-func (dst *PreconditionFailure) XXX_Merge(src proto.Message) {
- xxx_messageInfo_PreconditionFailure.Merge(dst, src)
+func (m *PreconditionFailure) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PreconditionFailure.Merge(m, src)
}
func (m *PreconditionFailure) XXX_Size() int {
return m.Size()
@@ -362,7 +361,7 @@ type PreconditionFailure_Violation struct {
func (m *PreconditionFailure_Violation) Reset() { *m = PreconditionFailure_Violation{} }
func (*PreconditionFailure_Violation) ProtoMessage() {}
func (*PreconditionFailure_Violation) Descriptor() ([]byte, []int) {
- return fileDescriptor_error_details_ff696d72eb1e7a26, []int{3, 0}
+ return fileDescriptor_851816e4d6b6361a, []int{3, 0}
}
func (m *PreconditionFailure_Violation) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -379,8 +378,8 @@ func (m *PreconditionFailure_Violation) XXX_Marshal(b []byte, deterministic bool
return b[:n], nil
}
}
-func (dst *PreconditionFailure_Violation) XXX_Merge(src proto.Message) {
- xxx_messageInfo_PreconditionFailure_Violation.Merge(dst, src)
+func (m *PreconditionFailure_Violation) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PreconditionFailure_Violation.Merge(m, src)
}
func (m *PreconditionFailure_Violation) XXX_Size() int {
return m.Size()
@@ -420,7 +419,7 @@ func (*PreconditionFailure_Violation) XXX_MessageName() string {
// syntactic aspects of the request.
type BadRequest struct {
// Describes all violations in a client request.
- FieldViolations []*BadRequest_FieldViolation `protobuf:"bytes,1,rep,name=field_violations,json=fieldViolations" json:"field_violations,omitempty"`
+ FieldViolations []*BadRequest_FieldViolation `protobuf:"bytes,1,rep,name=field_violations,json=fieldViolations,proto3" json:"field_violations,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -429,7 +428,7 @@ type BadRequest struct {
func (m *BadRequest) Reset() { *m = BadRequest{} }
func (*BadRequest) ProtoMessage() {}
func (*BadRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_error_details_ff696d72eb1e7a26, []int{4}
+ return fileDescriptor_851816e4d6b6361a, []int{4}
}
func (m *BadRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -446,8 +445,8 @@ func (m *BadRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *BadRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_BadRequest.Merge(dst, src)
+func (m *BadRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BadRequest.Merge(m, src)
}
func (m *BadRequest) XXX_Size() int {
return m.Size()
@@ -485,7 +484,7 @@ type BadRequest_FieldViolation struct {
func (m *BadRequest_FieldViolation) Reset() { *m = BadRequest_FieldViolation{} }
func (*BadRequest_FieldViolation) ProtoMessage() {}
func (*BadRequest_FieldViolation) Descriptor() ([]byte, []int) {
- return fileDescriptor_error_details_ff696d72eb1e7a26, []int{4, 0}
+ return fileDescriptor_851816e4d6b6361a, []int{4, 0}
}
func (m *BadRequest_FieldViolation) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -502,8 +501,8 @@ func (m *BadRequest_FieldViolation) XXX_Marshal(b []byte, deterministic bool) ([
return b[:n], nil
}
}
-func (dst *BadRequest_FieldViolation) XXX_Merge(src proto.Message) {
- xxx_messageInfo_BadRequest_FieldViolation.Merge(dst, src)
+func (m *BadRequest_FieldViolation) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BadRequest_FieldViolation.Merge(m, src)
}
func (m *BadRequest_FieldViolation) XXX_Size() int {
return m.Size()
@@ -549,7 +548,7 @@ type RequestInfo struct {
func (m *RequestInfo) Reset() { *m = RequestInfo{} }
func (*RequestInfo) ProtoMessage() {}
func (*RequestInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_error_details_ff696d72eb1e7a26, []int{5}
+ return fileDescriptor_851816e4d6b6361a, []int{5}
}
func (m *RequestInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -566,8 +565,8 @@ func (m *RequestInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *RequestInfo) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RequestInfo.Merge(dst, src)
+func (m *RequestInfo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RequestInfo.Merge(m, src)
}
func (m *RequestInfo) XXX_Size() int {
return m.Size()
@@ -604,7 +603,8 @@ type ResourceInfo struct {
ResourceType string `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"`
// The name of the resource being accessed. For example, a shared calendar
// name: "example.com_4fghdhgsrgh@group.calendar.google.com", if the current
- // error is [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED].
+ // error is
+ // [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED].
ResourceName string `protobuf:"bytes,2,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
// The owner of the resource (optional).
// For example, "user:" or "project: 0 {
@@ -2770,6 +2822,9 @@ func (m *DebugInfo) Size() (n int) {
}
func (m *QuotaFailure) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
if len(m.Violations) > 0 {
@@ -2785,6 +2840,9 @@ func (m *QuotaFailure) Size() (n int) {
}
func (m *QuotaFailure_Violation) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
l = len(m.Subject)
@@ -2802,6 +2860,9 @@ func (m *QuotaFailure_Violation) Size() (n int) {
}
func (m *PreconditionFailure) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
if len(m.Violations) > 0 {
@@ -2817,6 +2878,9 @@ func (m *PreconditionFailure) Size() (n int) {
}
func (m *PreconditionFailure_Violation) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
l = len(m.Type)
@@ -2838,6 +2902,9 @@ func (m *PreconditionFailure_Violation) Size() (n int) {
}
func (m *BadRequest) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
if len(m.FieldViolations) > 0 {
@@ -2853,6 +2920,9 @@ func (m *BadRequest) Size() (n int) {
}
func (m *BadRequest_FieldViolation) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
l = len(m.Field)
@@ -2870,6 +2940,9 @@ func (m *BadRequest_FieldViolation) Size() (n int) {
}
func (m *RequestInfo) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
l = len(m.RequestId)
@@ -2887,6 +2960,9 @@ func (m *RequestInfo) Size() (n int) {
}
func (m *ResourceInfo) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
l = len(m.ResourceType)
@@ -2912,6 +2988,9 @@ func (m *ResourceInfo) Size() (n int) {
}
func (m *Help) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
if len(m.Links) > 0 {
@@ -2927,6 +3006,9 @@ func (m *Help) Size() (n int) {
}
func (m *Help_Link) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
l = len(m.Description)
@@ -2944,6 +3026,9 @@ func (m *Help_Link) Size() (n int) {
}
func (m *LocalizedMessage) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
l = len(m.Locale)
@@ -3150,7 +3235,7 @@ func (m *RetryInfo) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3178,7 +3263,7 @@ func (m *RetryInfo) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3187,6 +3272,9 @@ func (m *RetryInfo) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3206,6 +3294,9 @@ func (m *RetryInfo) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthErrorDetails
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3234,7 +3325,7 @@ func (m *DebugInfo) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3262,7 +3353,7 @@ func (m *DebugInfo) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3272,6 +3363,9 @@ func (m *DebugInfo) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3291,7 +3385,7 @@ func (m *DebugInfo) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3301,6 +3395,9 @@ func (m *DebugInfo) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3315,6 +3412,9 @@ func (m *DebugInfo) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthErrorDetails
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3343,7 +3443,7 @@ func (m *QuotaFailure) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3371,7 +3471,7 @@ func (m *QuotaFailure) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3380,6 +3480,9 @@ func (m *QuotaFailure) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3397,6 +3500,9 @@ func (m *QuotaFailure) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthErrorDetails
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3425,7 +3531,7 @@ func (m *QuotaFailure_Violation) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3453,7 +3559,7 @@ func (m *QuotaFailure_Violation) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3463,6 +3569,9 @@ func (m *QuotaFailure_Violation) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3482,7 +3591,7 @@ func (m *QuotaFailure_Violation) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3492,6 +3601,9 @@ func (m *QuotaFailure_Violation) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3506,6 +3618,9 @@ func (m *QuotaFailure_Violation) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthErrorDetails
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3534,7 +3649,7 @@ func (m *PreconditionFailure) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3562,7 +3677,7 @@ func (m *PreconditionFailure) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3571,6 +3686,9 @@ func (m *PreconditionFailure) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3588,6 +3706,9 @@ func (m *PreconditionFailure) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthErrorDetails
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3616,7 +3737,7 @@ func (m *PreconditionFailure_Violation) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3644,7 +3765,7 @@ func (m *PreconditionFailure_Violation) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3654,6 +3775,9 @@ func (m *PreconditionFailure_Violation) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3673,7 +3797,7 @@ func (m *PreconditionFailure_Violation) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3683,6 +3807,9 @@ func (m *PreconditionFailure_Violation) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3702,7 +3829,7 @@ func (m *PreconditionFailure_Violation) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3712,6 +3839,9 @@ func (m *PreconditionFailure_Violation) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3726,6 +3856,9 @@ func (m *PreconditionFailure_Violation) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthErrorDetails
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3754,7 +3887,7 @@ func (m *BadRequest) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3782,7 +3915,7 @@ func (m *BadRequest) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3791,6 +3924,9 @@ func (m *BadRequest) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3808,6 +3944,9 @@ func (m *BadRequest) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthErrorDetails
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3836,7 +3975,7 @@ func (m *BadRequest_FieldViolation) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3864,7 +4003,7 @@ func (m *BadRequest_FieldViolation) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3874,6 +4013,9 @@ func (m *BadRequest_FieldViolation) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3893,7 +4035,7 @@ func (m *BadRequest_FieldViolation) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3903,6 +4045,9 @@ func (m *BadRequest_FieldViolation) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3917,6 +4062,9 @@ func (m *BadRequest_FieldViolation) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthErrorDetails
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3945,7 +4093,7 @@ func (m *RequestInfo) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3973,7 +4121,7 @@ func (m *RequestInfo) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3983,6 +4131,9 @@ func (m *RequestInfo) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4002,7 +4153,7 @@ func (m *RequestInfo) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4012,6 +4163,9 @@ func (m *RequestInfo) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4026,6 +4180,9 @@ func (m *RequestInfo) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthErrorDetails
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -4054,7 +4211,7 @@ func (m *ResourceInfo) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4082,7 +4239,7 @@ func (m *ResourceInfo) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4092,6 +4249,9 @@ func (m *ResourceInfo) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4111,7 +4271,7 @@ func (m *ResourceInfo) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4121,6 +4281,9 @@ func (m *ResourceInfo) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4140,7 +4303,7 @@ func (m *ResourceInfo) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4150,6 +4313,9 @@ func (m *ResourceInfo) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4169,7 +4335,7 @@ func (m *ResourceInfo) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4179,6 +4345,9 @@ func (m *ResourceInfo) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4193,6 +4362,9 @@ func (m *ResourceInfo) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthErrorDetails
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -4221,7 +4393,7 @@ func (m *Help) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4249,7 +4421,7 @@ func (m *Help) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4258,6 +4430,9 @@ func (m *Help) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4275,6 +4450,9 @@ func (m *Help) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthErrorDetails
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -4303,7 +4481,7 @@ func (m *Help_Link) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4331,7 +4509,7 @@ func (m *Help_Link) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4341,6 +4519,9 @@ func (m *Help_Link) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4360,7 +4541,7 @@ func (m *Help_Link) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4370,6 +4551,9 @@ func (m *Help_Link) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4384,6 +4568,9 @@ func (m *Help_Link) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthErrorDetails
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -4412,7 +4599,7 @@ func (m *LocalizedMessage) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4440,7 +4627,7 @@ func (m *LocalizedMessage) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4450,6 +4637,9 @@ func (m *LocalizedMessage) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4469,7 +4659,7 @@ func (m *LocalizedMessage) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4479,6 +4669,9 @@ func (m *LocalizedMessage) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthErrorDetails
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4493,6 +4686,9 @@ func (m *LocalizedMessage) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthErrorDetails
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthErrorDetails
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -4560,10 +4756,13 @@ func skipErrorDetails(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthErrorDetails
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthErrorDetails
+ }
return iNdEx, nil
case 3:
for {
@@ -4592,6 +4791,9 @@ func skipErrorDetails(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthErrorDetails
+ }
}
return iNdEx, nil
case 4:
@@ -4610,50 +4812,3 @@ var (
ErrInvalidLengthErrorDetails = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowErrorDetails = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("google/rpc/error_details.proto", fileDescriptor_error_details_ff696d72eb1e7a26)
-}
-
-var fileDescriptor_error_details_ff696d72eb1e7a26 = []byte{
- // 624 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xbf, 0x6f, 0xd3, 0x40,
- 0x18, 0xed, 0x35, 0x69, 0x91, 0xbf, 0x84, 0x52, 0xcc, 0x0f, 0x85, 0x48, 0x9c, 0x82, 0x11, 0x52,
- 0x11, 0x92, 0x2b, 0x95, 0xad, 0x63, 0x48, 0x7f, 0x49, 0x05, 0x82, 0x85, 0x18, 0x60, 0xb0, 0x2e,
- 0xf6, 0x97, 0xe8, 0xa8, 0xe3, 0x33, 0x67, 0xbb, 0xa8, 0x4c, 0xfc, 0x09, 0xec, 0x6c, 0x4c, 0xfd,
- 0x27, 0xd8, 0x3b, 0x76, 0x64, 0x24, 0xe9, 0xc2, 0xd8, 0x91, 0x11, 0x9d, 0x7d, 0xd7, 0xba, 0x4d,
- 0x41, 0x6c, 0x7e, 0xef, 0xde, 0x3d, 0xbf, 0xf7, 0xe9, 0xee, 0x80, 0x8e, 0x84, 0x18, 0x45, 0xb8,
- 0x2a, 0x93, 0x60, 0x15, 0xa5, 0x14, 0xd2, 0x0f, 0x31, 0x63, 0x3c, 0x4a, 0xdd, 0x44, 0x8a, 0x4c,
- 0xd8, 0x50, 0xae, 0xbb, 0x32, 0x09, 0xda, 0x46, 0x5b, 0xac, 0x0c, 0xf2, 0xe1, 0x6a, 0x98, 0x4b,
- 0x96, 0x71, 0x11, 0x97, 0x5a, 0x67, 0x0b, 0x2c, 0x0f, 0x33, 0x79, 0xb0, 0x13, 0x0f, 0x85, 0xbd,
- 0x0e, 0x0d, 0xa9, 0x80, 0x1f, 0x62, 0xc4, 0x0e, 0x5a, 0xa4, 0x43, 0x56, 0x1a, 0x6b, 0xf7, 0x5c,
- 0x6d, 0x67, 0x2c, 0xdc, 0x9e, 0xb6, 0xf0, 0xa0, 0x50, 0xf7, 0x94, 0xd8, 0xd9, 0x06, 0xab, 0x87,
- 0x83, 0x7c, 0x54, 0x18, 0x3d, 0x84, 0xeb, 0x69, 0xc6, 0x82, 0x3d, 0x1f, 0xe3, 0x4c, 0x72, 0x4c,
- 0x5b, 0xa4, 0x53, 0x5b, 0xb1, 0xbc, 0x66, 0x41, 0x6e, 0x94, 0x9c, 0x7d, 0x17, 0x16, 0xcb, 0xdc,
- 0xad, 0xf9, 0x0e, 0x59, 0xb1, 0x3c, 0x8d, 0x9c, 0xaf, 0x04, 0x9a, 0xaf, 0x72, 0x91, 0xb1, 0x4d,
- 0xc6, 0xa3, 0x5c, 0xa2, 0xdd, 0x05, 0xd8, 0xe7, 0x22, 0x2a, 0xfe, 0x59, 0x5a, 0x35, 0xd6, 0x1c,
- 0xf7, 0xbc, 0xa4, 0x5b, 0x55, 0xbb, 0x6f, 0x8c, 0xd4, 0xab, 0xec, 0x6a, 0x6f, 0x81, 0x75, 0xb6,
- 0x60, 0xb7, 0xe0, 0x5a, 0x9a, 0x0f, 0xde, 0x63, 0x90, 0x15, 0x1d, 0x2d, 0xcf, 0x40, 0xbb, 0x03,
- 0x8d, 0x10, 0xd3, 0x40, 0xf2, 0x44, 0x09, 0x75, 0xb0, 0x2a, 0xe5, 0x7c, 0x27, 0x70, 0xab, 0x2f,
- 0x31, 0x10, 0x71, 0xc8, 0x15, 0x61, 0x42, 0xee, 0x5c, 0x11, 0xf2, 0x71, 0x35, 0xe4, 0x15, 0x9b,
- 0xfe, 0x92, 0xf5, 0x5d, 0x35, 0xab, 0x0d, 0xf5, 0xec, 0x20, 0x41, 0x1d, 0xb4, 0xf8, 0xae, 0xe6,
- 0x9f, 0xff, 0x67, 0xfe, 0xda, 0x6c, 0xfe, 0x43, 0x02, 0xd0, 0x65, 0xa1, 0x87, 0x1f, 0x72, 0x4c,
- 0x33, 0xbb, 0x0f, 0xcb, 0x43, 0x8e, 0x51, 0xe8, 0xcf, 0x84, 0x7f, 0x54, 0x0d, 0x7f, 0xbe, 0xc3,
- 0xdd, 0x54, 0xf2, 0xf3, 0xe0, 0x37, 0x86, 0x17, 0x70, 0xda, 0xde, 0x86, 0xa5, 0x8b, 0x12, 0xfb,
- 0x36, 0x2c, 0x14, 0x22, 0xdd, 0xa1, 0x04, 0xff, 0x31, 0xea, 0x97, 0xd0, 0xd0, 0x3f, 0x2d, 0x0e,
- 0xd5, 0x7d, 0x00, 0x59, 0x42, 0x9f, 0x1b, 0x2f, 0x4b, 0x33, 0x3b, 0xa1, 0xfd, 0x00, 0x9a, 0x29,
- 0xca, 0x7d, 0x1e, 0x8f, 0xfc, 0x90, 0x65, 0xcc, 0x18, 0x6a, 0xae, 0xc7, 0x32, 0xe6, 0x7c, 0x21,
- 0xd0, 0xf4, 0x30, 0x15, 0xb9, 0x0c, 0xd0, 0x9c, 0x53, 0xa9, 0xb1, 0x5f, 0x99, 0x72, 0xd3, 0x90,
- 0xaf, 0xd5, 0xb4, 0xab, 0xa2, 0x98, 0x8d, 0x51, 0x3b, 0x9f, 0x89, 0x5e, 0xb0, 0x31, 0xaa, 0x8e,
- 0xe2, 0x63, 0x8c, 0x52, 0x8f, 0xbc, 0x04, 0x97, 0x3b, 0xd6, 0x67, 0x3b, 0x0a, 0xa8, 0x6f, 0x63,
- 0x94, 0xd8, 0x4f, 0x60, 0x21, 0xe2, 0xf1, 0x9e, 0x19, 0xfe, 0x9d, 0xea, 0xf0, 0x95, 0xc0, 0xdd,
- 0xe5, 0xf1, 0x9e, 0x57, 0x6a, 0xda, 0xeb, 0x50, 0x57, 0xf0, 0xb2, 0x3d, 0x99, 0xb1, 0xb7, 0x97,
- 0xa1, 0x96, 0x4b, 0x73, 0xc1, 0xd4, 0xa7, 0xd3, 0x83, 0xe5, 0x5d, 0x11, 0xb0, 0x88, 0x7f, 0xc2,
- 0xf0, 0x39, 0xa6, 0x29, 0x1b, 0xa1, 0xba, 0x89, 0x91, 0xe2, 0x4c, 0x7f, 0x8d, 0xd4, 0x39, 0x1b,
- 0x97, 0x12, 0x73, 0xce, 0x34, 0xec, 0x86, 0xc7, 0x13, 0x3a, 0xf7, 0x63, 0x42, 0xe7, 0x4e, 0x27,
- 0x94, 0xfc, 0x9e, 0x50, 0xf2, 0x79, 0x4a, 0xc9, 0xe1, 0x94, 0x92, 0xa3, 0x29, 0x25, 0xc7, 0x53,
- 0x4a, 0x7e, 0x4e, 0x29, 0xf9, 0x35, 0xa5, 0x73, 0xa7, 0x8a, 0x3f, 0xa1, 0xe4, 0xe8, 0x84, 0x12,
- 0x58, 0x0a, 0xc4, 0xb8, 0x52, 0xac, 0x7b, 0x73, 0x43, 0xbd, 0x5e, 0xbd, 0xf2, 0xf1, 0xea, 0xab,
- 0xe7, 0xa5, 0x4f, 0xde, 0xd6, 0x64, 0x12, 0x7c, 0x9b, 0xaf, 0x79, 0xfd, 0x67, 0x83, 0xc5, 0xe2,
- 0xc9, 0x79, 0xfa, 0x27, 0x00, 0x00, 0xff, 0xff, 0x63, 0xe4, 0x76, 0x26, 0xf1, 0x04, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/googleapis/google/rpc/error_details.proto b/vendor/github.com/gogo/googleapis/google/rpc/error_details.proto
index a62078ba0a0e..0682cc97bb89 100644
--- a/vendor/github.com/gogo/googleapis/google/rpc/error_details.proto
+++ b/vendor/github.com/gogo/googleapis/google/rpc/error_details.proto
@@ -24,7 +24,6 @@ option java_outer_classname = "ErrorDetailsProto";
option java_package = "com.google.rpc";
option objc_class_prefix = "RPC";
-
// Describes when the clients can retry a failed request. Clients could ignore
// the recommendation here or retry when this information is missing from error
// responses.
@@ -154,7 +153,8 @@ message ResourceInfo {
// The name of the resource being accessed. For example, a shared calendar
// name: "example.com_4fghdhgsrgh@group.calendar.google.com", if the current
- // error is [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED].
+ // error is
+ // [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED].
string resource_name = 2;
// The owner of the resource (optional).
diff --git a/vendor/github.com/gogo/googleapis/google/rpc/status.pb.go b/vendor/github.com/gogo/googleapis/google/rpc/status.pb.go
index ece1aec11217..65fc30f4a210 100644
--- a/vendor/github.com/gogo/googleapis/google/rpc/status.pb.go
+++ b/vendor/github.com/gogo/googleapis/google/rpc/status.pb.go
@@ -3,17 +3,16 @@
package rpc
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import types "github.com/gogo/protobuf/types"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ types "github.com/gogo/protobuf/types"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -26,24 +25,25 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
-// The `Status` type defines a logical error model that is suitable for different
-// programming environments, including REST APIs and RPC APIs. It is used by
-// [gRPC](https://github.com/grpc). The error model is designed to be:
+// The `Status` type defines a logical error model that is suitable for
+// different programming environments, including REST APIs and RPC APIs. It is
+// used by [gRPC](https://github.com/grpc). The error model is designed to be:
//
// - Simple to use and understand for most users
// - Flexible enough to meet unexpected needs
//
// # Overview
//
-// The `Status` message contains three pieces of data: error code, error message,
-// and error details. The error code should be an enum value of
-// [google.rpc.Code][google.rpc.Code], but it may accept additional error codes if needed. The
-// error message should be a developer-facing English message that helps
-// developers *understand* and *resolve* the error. If a localized user-facing
-// error message is needed, put the localized message in the error details or
-// localize it in the client. The optional error details may contain arbitrary
-// information about the error. There is a predefined set of error detail types
-// in the package `google.rpc` that can be used for common error conditions.
+// The `Status` message contains three pieces of data: error code, error
+// message, and error details. The error code should be an enum value of
+// [google.rpc.Code][google.rpc.Code], but it may accept additional error codes
+// if needed. The error message should be a developer-facing English message
+// that helps developers *understand* and *resolve* the error. If a localized
+// user-facing error message is needed, put the localized message in the error
+// details or localize it in the client. The optional error details may contain
+// arbitrary information about the error. There is a predefined set of error
+// detail types in the package `google.rpc` that can be used for common error
+// conditions.
//
// # Language mapping
//
@@ -79,15 +79,17 @@ const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
// - Logging. If some API errors are stored in logs, the message `Status` could
// be used directly after any stripping needed for security/privacy reasons.
type Status struct {
- // The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
+ // The status code, which should be an enum value of
+ // [google.rpc.Code][google.rpc.Code].
Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
// A developer-facing error message, which should be in English. Any
// user-facing error message should be localized and sent in the
- // [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
+ // [google.rpc.Status.details][google.rpc.Status.details] field, or localized
+ // by the client.
Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
// A list of messages that carry the error details. There is a common set of
// message types for APIs to use.
- Details []*types.Any `protobuf:"bytes,3,rep,name=details" json:"details,omitempty"`
+ Details []*types.Any `protobuf:"bytes,3,rep,name=details,proto3" json:"details,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -96,7 +98,7 @@ type Status struct {
func (m *Status) Reset() { *m = Status{} }
func (*Status) ProtoMessage() {}
func (*Status) Descriptor() ([]byte, []int) {
- return fileDescriptor_status_8f2fc8d48733ea2f, []int{0}
+ return fileDescriptor_24d244abaf643bfe, []int{0}
}
func (m *Status) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -113,8 +115,8 @@ func (m *Status) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Status) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Status.Merge(dst, src)
+func (m *Status) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Status.Merge(m, src)
}
func (m *Status) XXX_Size() int {
return m.Size()
@@ -152,6 +154,28 @@ func (*Status) XXX_MessageName() string {
func init() {
proto.RegisterType((*Status)(nil), "google.rpc.Status")
}
+
+func init() { proto.RegisterFile("google/rpc/status.proto", fileDescriptor_24d244abaf643bfe) }
+
+var fileDescriptor_24d244abaf643bfe = []byte{
+ // 235 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4f, 0xcf, 0xcf, 0x4f,
+ 0xcf, 0x49, 0xd5, 0x2f, 0x2a, 0x48, 0xd6, 0x2f, 0x2e, 0x49, 0x2c, 0x29, 0x2d, 0xd6, 0x2b, 0x28,
+ 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x82, 0x48, 0xe8, 0x15, 0x15, 0x24, 0x4b, 0x49, 0x42, 0x15, 0x81,
+ 0x65, 0x92, 0x4a, 0xd3, 0xf4, 0x13, 0xf3, 0x2a, 0x21, 0xca, 0x94, 0xd2, 0xb8, 0xd8, 0x82, 0xc1,
+ 0xda, 0x84, 0x84, 0xb8, 0x58, 0x92, 0xf3, 0x53, 0x52, 0x25, 0x18, 0x15, 0x18, 0x35, 0x58, 0x83,
+ 0xc0, 0x6c, 0x21, 0x09, 0x2e, 0xf6, 0xdc, 0xd4, 0xe2, 0xe2, 0xc4, 0xf4, 0x54, 0x09, 0x26, 0x05,
+ 0x46, 0x0d, 0xce, 0x20, 0x18, 0x57, 0x48, 0x8f, 0x8b, 0x3d, 0x25, 0xb5, 0x24, 0x31, 0x33, 0xa7,
+ 0x58, 0x82, 0x59, 0x81, 0x59, 0x83, 0xdb, 0x48, 0x44, 0x0f, 0x6a, 0x21, 0xcc, 0x12, 0x3d, 0xc7,
+ 0xbc, 0xca, 0x20, 0x98, 0x22, 0xa7, 0xb8, 0x0b, 0x0f, 0xe5, 0x18, 0x6e, 0x3c, 0x94, 0x63, 0xf8,
+ 0xf0, 0x50, 0x8e, 0xf1, 0xc7, 0x43, 0x39, 0xc6, 0x86, 0x47, 0x72, 0x8c, 0x2b, 0x1e, 0xc9, 0x31,
+ 0x9e, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x2f, 0x1e, 0xc9,
+ 0x31, 0x7c, 0x00, 0x89, 0x3f, 0x96, 0x63, 0x3c, 0xf1, 0x58, 0x8e, 0x91, 0x8b, 0x2f, 0x39, 0x3f,
+ 0x57, 0x0f, 0xe1, 0x11, 0x27, 0x6e, 0x88, 0x5b, 0x03, 0x40, 0x56, 0x04, 0x30, 0x46, 0x31, 0x17,
+ 0x15, 0x24, 0x2f, 0x62, 0x62, 0x0e, 0x0a, 0x70, 0x4e, 0x62, 0x03, 0x5b, 0x6b, 0x0c, 0x08, 0x00,
+ 0x00, 0xff, 0xff, 0xaa, 0x06, 0xa1, 0xaa, 0x10, 0x01, 0x00, 0x00,
+}
+
func (this *Status) Compare(that interface{}) int {
if that == nil {
if this == nil {
@@ -414,6 +438,9 @@ func encodeVarintPopulateStatus(dAtA []byte, v uint64) []byte {
return dAtA
}
func (m *Status) Size() (n int) {
+ if m == nil {
+ return 0
+ }
var l int
_ = l
if m.Code != 0 {
@@ -484,7 +511,7 @@ func (m *Status) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -512,7 +539,7 @@ func (m *Status) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Code |= (int32(b) & 0x7F) << shift
+ m.Code |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -531,7 +558,7 @@ func (m *Status) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -541,6 +568,9 @@ func (m *Status) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthStatus
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthStatus
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -560,7 +590,7 @@ func (m *Status) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -569,6 +599,9 @@ func (m *Status) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthStatus
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthStatus
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -586,6 +619,9 @@ func (m *Status) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthStatus
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthStatus
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -653,10 +689,13 @@ func skipStatus(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthStatus
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthStatus
+ }
return iNdEx, nil
case 3:
for {
@@ -685,6 +724,9 @@ func skipStatus(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthStatus
+ }
}
return iNdEx, nil
case 4:
@@ -703,24 +745,3 @@ var (
ErrInvalidLengthStatus = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowStatus = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("google/rpc/status.proto", fileDescriptor_status_8f2fc8d48733ea2f) }
-
-var fileDescriptor_status_8f2fc8d48733ea2f = []byte{
- // 235 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4f, 0xcf, 0xcf, 0x4f,
- 0xcf, 0x49, 0xd5, 0x2f, 0x2a, 0x48, 0xd6, 0x2f, 0x2e, 0x49, 0x2c, 0x29, 0x2d, 0xd6, 0x2b, 0x28,
- 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x82, 0x48, 0xe8, 0x15, 0x15, 0x24, 0x4b, 0x49, 0x42, 0x15, 0x81,
- 0x65, 0x92, 0x4a, 0xd3, 0xf4, 0x13, 0xf3, 0x2a, 0x21, 0xca, 0x94, 0xd2, 0xb8, 0xd8, 0x82, 0xc1,
- 0xda, 0x84, 0x84, 0xb8, 0x58, 0x92, 0xf3, 0x53, 0x52, 0x25, 0x18, 0x15, 0x18, 0x35, 0x58, 0x83,
- 0xc0, 0x6c, 0x21, 0x09, 0x2e, 0xf6, 0xdc, 0xd4, 0xe2, 0xe2, 0xc4, 0xf4, 0x54, 0x09, 0x26, 0x05,
- 0x46, 0x0d, 0xce, 0x20, 0x18, 0x57, 0x48, 0x8f, 0x8b, 0x3d, 0x25, 0xb5, 0x24, 0x31, 0x33, 0xa7,
- 0x58, 0x82, 0x59, 0x81, 0x59, 0x83, 0xdb, 0x48, 0x44, 0x0f, 0x6a, 0x21, 0xcc, 0x12, 0x3d, 0xc7,
- 0xbc, 0xca, 0x20, 0x98, 0x22, 0xa7, 0xb8, 0x0b, 0x0f, 0xe5, 0x18, 0x6e, 0x3c, 0x94, 0x63, 0xf8,
- 0xf0, 0x50, 0x8e, 0xf1, 0xc7, 0x43, 0x39, 0xc6, 0x86, 0x47, 0x72, 0x8c, 0x2b, 0x1e, 0xc9, 0x31,
- 0x9e, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x2f, 0x1e, 0xc9,
- 0x31, 0x7c, 0x00, 0x89, 0x3f, 0x96, 0x63, 0x3c, 0xf1, 0x58, 0x8e, 0x91, 0x8b, 0x2f, 0x39, 0x3f,
- 0x57, 0x0f, 0xe1, 0x11, 0x27, 0x6e, 0x88, 0x5b, 0x03, 0x40, 0x56, 0x04, 0x30, 0x46, 0x31, 0x17,
- 0x15, 0x24, 0x2f, 0x62, 0x62, 0x0e, 0x0a, 0x70, 0x4e, 0x62, 0x03, 0x5b, 0x6b, 0x0c, 0x08, 0x00,
- 0x00, 0xff, 0xff, 0xaa, 0x06, 0xa1, 0xaa, 0x10, 0x01, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/googleapis/google/rpc/status.proto b/vendor/github.com/gogo/googleapis/google/rpc/status.proto
index db3226ee06fc..abcd4534317f 100644
--- a/vendor/github.com/gogo/googleapis/google/rpc/status.proto
+++ b/vendor/github.com/gogo/googleapis/google/rpc/status.proto
@@ -24,25 +24,25 @@ option java_outer_classname = "StatusProto";
option java_package = "com.google.rpc";
option objc_class_prefix = "RPC";
-
-// The `Status` type defines a logical error model that is suitable for different
-// programming environments, including REST APIs and RPC APIs. It is used by
-// [gRPC](https://github.com/grpc). The error model is designed to be:
+// The `Status` type defines a logical error model that is suitable for
+// different programming environments, including REST APIs and RPC APIs. It is
+// used by [gRPC](https://github.com/grpc). The error model is designed to be:
//
// - Simple to use and understand for most users
// - Flexible enough to meet unexpected needs
//
// # Overview
//
-// The `Status` message contains three pieces of data: error code, error message,
-// and error details. The error code should be an enum value of
-// [google.rpc.Code][google.rpc.Code], but it may accept additional error codes if needed. The
-// error message should be a developer-facing English message that helps
-// developers *understand* and *resolve* the error. If a localized user-facing
-// error message is needed, put the localized message in the error details or
-// localize it in the client. The optional error details may contain arbitrary
-// information about the error. There is a predefined set of error detail types
-// in the package `google.rpc` that can be used for common error conditions.
+// The `Status` message contains three pieces of data: error code, error
+// message, and error details. The error code should be an enum value of
+// [google.rpc.Code][google.rpc.Code], but it may accept additional error codes
+// if needed. The error message should be a developer-facing English message
+// that helps developers *understand* and *resolve* the error. If a localized
+// user-facing error message is needed, put the localized message in the error
+// details or localize it in the client. The optional error details may contain
+// arbitrary information about the error. There is a predefined set of error
+// detail types in the package `google.rpc` that can be used for common error
+// conditions.
//
// # Language mapping
//
@@ -78,12 +78,14 @@ option objc_class_prefix = "RPC";
// - Logging. If some API errors are stored in logs, the message `Status` could
// be used directly after any stripping needed for security/privacy reasons.
message Status {
- // The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
+ // The status code, which should be an enum value of
+ // [google.rpc.Code][google.rpc.Code].
int32 code = 1;
// A developer-facing error message, which should be in English. Any
// user-facing error message should be localized and sent in the
- // [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
+ // [google.rpc.Status.details][google.rpc.Status.details] field, or localized
+ // by the client.
string message = 2;
// A list of messages that carry the error details. There is a common set of
diff --git a/vendor/google.golang.org/grpc/CONTRIBUTING.md b/vendor/google.golang.org/grpc/CONTRIBUTING.md
index ca34e8aa0dae..6e69b28c2706 100644
--- a/vendor/google.golang.org/grpc/CONTRIBUTING.md
+++ b/vendor/google.golang.org/grpc/CONTRIBUTING.md
@@ -11,22 +11,46 @@ In order to protect both you and ourselves, you will need to sign the
## Guidelines for Pull Requests
How to get your contributions merged smoothly and quickly.
-
-- Create **small PRs** that are narrowly focused on **addressing a single concern**. We often times receive PRs that are trying to fix several things at a time, but only one fix is considered acceptable, nothing gets merged and both author's & review's time is wasted. Create more PRs to address different concerns and everyone will be happy.
-
-- For speculative changes, consider opening an issue and discussing it first. If you are suggesting a behavioral or API change, consider starting with a [gRFC proposal](https://github.com/grpc/proposal).
-
-- Provide a good **PR description** as a record of **what** change is being made and **why** it was made. Link to a github issue if it exists.
-
-- Don't fix code style and formatting unless you are already changing that line to address an issue. PRs with irrelevant changes won't be merged. If you do want to fix formatting or style, do that in a separate PR.
-
-- Unless your PR is trivial, you should expect there will be reviewer comments that you'll need to address before merging. We expect you to be reasonably responsive to those comments, otherwise the PR will be closed after 2-3 weeks of inactivity.
-
-- Maintain **clean commit history** and use **meaningful commit messages**. PRs with messy commit history are difficult to review and won't be merged. Use `rebase -i upstream/master` to curate your commit history and/or to bring in latest changes from master (but avoid rebasing in the middle of a code review).
-
-- Keep your PR up to date with upstream/master (if there are merge conflicts, we can't really merge your change).
-
-- **All tests need to be passing** before your change can be merged. We recommend you **run tests locally** before creating your PR to catch breakages early on.
+
+- Create **small PRs** that are narrowly focused on **addressing a single
+ concern**. We often times receive PRs that are trying to fix several things at
+ a time, but only one fix is considered acceptable, nothing gets merged and
+ both author's & review's time is wasted. Create more PRs to address different
+ concerns and everyone will be happy.
+
+- The grpc package should only depend on standard Go packages and a small number
+ of exceptions. If your contribution introduces new dependencies which are NOT
+ in the [list](https://godoc.org/google.golang.org/grpc?imports), you need a
+ discussion with gRPC-Go authors and consultants.
+
+- For speculative changes, consider opening an issue and discussing it first. If
+ you are suggesting a behavioral or API change, consider starting with a [gRFC
+ proposal](https://github.com/grpc/proposal).
+
+- Provide a good **PR description** as a record of **what** change is being made
+ and **why** it was made. Link to a github issue if it exists.
+
+- Don't fix code style and formatting unless you are already changing that line
+ to address an issue. PRs with irrelevant changes won't be merged. If you do
+ want to fix formatting or style, do that in a separate PR.
+
+- Unless your PR is trivial, you should expect there will be reviewer comments
+ that you'll need to address before merging. We expect you to be reasonably
+ responsive to those comments, otherwise the PR will be closed after 2-3 weeks
+ of inactivity.
+
+- Maintain **clean commit history** and use **meaningful commit messages**. PRs
+ with messy commit history are difficult to review and won't be merged. Use
+ `rebase -i upstream/master` to curate your commit history and/or to bring in
+ latest changes from master (but avoid rebasing in the middle of a code
+ review).
+
+- Keep your PR up to date with upstream/master (if there are merge conflicts, we
+ can't really merge your change).
+
+- **All tests need to be passing** before your change can be merged. We
+ recommend you **run tests locally** before creating your PR to catch breakages
+ early on.
- `make all` to test everything, OR
- `make vet` to catch vet errors
- `make test` to run the tests
@@ -34,4 +58,3 @@ How to get your contributions merged smoothly and quickly.
- optional `make testappengine` to run tests with appengine
- Exceptions to the rules can be made if there's a compelling reason for doing so.
-
diff --git a/vendor/google.golang.org/grpc/README.md b/vendor/google.golang.org/grpc/README.md
index f5eec6717f31..afbc43db5105 100644
--- a/vendor/google.golang.org/grpc/README.md
+++ b/vendor/google.golang.org/grpc/README.md
@@ -1,42 +1,96 @@
# gRPC-Go
-[](https://travis-ci.org/grpc/grpc-go) [](https://godoc.org/google.golang.org/grpc) [](https://goreportcard.com/report/github.com/grpc/grpc-go)
+[](https://travis-ci.org/grpc/grpc-go)
+[](https://godoc.org/google.golang.org/grpc)
+[](https://goreportcard.com/report/github.com/grpc/grpc-go)
-The Go implementation of [gRPC](https://grpc.io/): A high performance, open source, general RPC framework that puts mobile and HTTP/2 first. For more information see the [gRPC Quick Start: Go](https://grpc.io/docs/quickstart/go.html) guide.
+The Go implementation of [gRPC](https://grpc.io/): A high performance, open
+source, general RPC framework that puts mobile and HTTP/2 first. For more
+information see the [gRPC Quick Start:
+Go](https://grpc.io/docs/quickstart/go.html) guide.
Installation
------------
-To install this package, you need to install Go and setup your Go workspace on your computer. The simplest way to install the library is to run:
+To install this package, you need to install Go and setup your Go workspace on
+your computer. The simplest way to install the library is to run:
```
$ go get -u google.golang.org/grpc
```
+With Go module support (Go 1.11+), simply `import "google.golang.org/grpc"` in
+your source code and `go [build|run|test]` will automatically download the
+necessary dependencies ([Go modules
+ref](https://github.com/golang/go/wiki/Modules)).
+
+If you are trying to access grpc-go from within China, please see the
+[FAQ](#FAQ) below.
+
Prerequisites
-------------
-
gRPC-Go requires Go 1.9 or later.
-Constraints
------------
-The grpc package should only depend on standard Go packages and a small number of exceptions. If your contribution introduces new dependencies which are NOT in the [list](https://godoc.org/google.golang.org/grpc?imports), you need a discussion with gRPC-Go authors and consultants.
-
Documentation
-------------
-See [API documentation](https://godoc.org/google.golang.org/grpc) for package and API descriptions and find examples in the [examples directory](examples/).
+- See [godoc](https://godoc.org/google.golang.org/grpc) for package and API
+ descriptions.
+- Documentation on specific topics can be found in the [Documentation
+ directory](Documentation/).
+- Examples can be found in the [examples directory](examples/).
Performance
-----------
-See the current benchmarks for some of the languages supported in [this dashboard](https://performance-dot-grpc-testing.appspot.com/explore?dashboard=5652536396611584&widget=490377658&container=1286539696).
+Performance benchmark data for grpc-go and other languages is maintained in
+[this
+dashboard](https://performance-dot-grpc-testing.appspot.com/explore?dashboard=5652536396611584&widget=490377658&container=1286539696).
Status
------
-General Availability [Google Cloud Platform Launch Stages](https://cloud.google.com/terms/launch-stages).
+General Availability [Google Cloud Platform Launch
+Stages](https://cloud.google.com/terms/launch-stages).
FAQ
---
+#### I/O Timeout Errors
+
+The `golang.org` domain may be blocked from some countries. `go get` usually
+produces an error like the following when this happens:
+
+```
+$ go get -u google.golang.org/grpc
+package google.golang.org/grpc: unrecognized import path "google.golang.org/grpc" (https fetch: Get https://google.golang.org/grpc?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
+```
+
+To build Go code, there are several options:
+
+- Set up a VPN and access google.golang.org through that.
+
+- Without Go module support: `git clone` the repo manually:
+
+ ```
+ git clone https://github.com/grpc/grpc-go.git $GOPATH/src/google.golang.org/grpc
+ ```
+
+ You will need to do the same for all of grpc's dependencies in `golang.org`,
+ e.g. `golang.org/x/net`.
+
+- With Go module support: it is possible to use the `replace` feature of `go
+ mod` to create aliases for golang.org packages. In your project's directory:
+
+ ```
+ go mod edit -replace=google.golang.org/grpc=github.com/grpc/grpc-go@latest
+ go mod tidy
+ go mod vendor
+ go build -mod=vendor
+ ```
+
+ Again, this will need to be done for all transitive dependencies hosted on
+ golang.org as well. Please refer to [this
+ issue](https://github.com/golang/go/issues/28652) in the golang repo regarding
+ this concern.
+
#### Compiling error, undefined: grpc.SupportPackageIsVersion
Please update proto package, gRPC package and rebuild the proto files:
diff --git a/vendor/google.golang.org/grpc/balancer/balancer.go b/vendor/google.golang.org/grpc/balancer/balancer.go
index fafede238c13..4b72daa8bb09 100644
--- a/vendor/google.golang.org/grpc/balancer/balancer.go
+++ b/vendor/google.golang.org/grpc/balancer/balancer.go
@@ -138,6 +138,8 @@ type ClientConn interface {
ResolveNow(resolver.ResolveNowOption)
// Target returns the dial target for this ClientConn.
+ //
+ // Deprecated: Use the Target field in the BuildOptions instead.
Target() string
}
@@ -155,6 +157,10 @@ type BuildOptions struct {
Dialer func(context.Context, string) (net.Conn, error)
// ChannelzParentID is the entity parent's channelz unique identification number.
ChannelzParentID int64
+ // Target contains the parsed address info of the dial target. It is the same resolver.Target as
+ // passed to the resolver.
+ // See the documentation for the resolver.Target type for details about what it contains.
+ Target resolver.Target
}
// Builder creates a balancer.
diff --git a/vendor/google.golang.org/grpc/balancer_v1_wrapper.go b/vendor/google.golang.org/grpc/balancer_v1_wrapper.go
index 29bda6353dd5..66e9a44ac4da 100644
--- a/vendor/google.golang.org/grpc/balancer_v1_wrapper.go
+++ b/vendor/google.golang.org/grpc/balancer_v1_wrapper.go
@@ -20,7 +20,6 @@ package grpc
import (
"context"
- "strings"
"sync"
"google.golang.org/grpc/balancer"
@@ -34,13 +33,7 @@ type balancerWrapperBuilder struct {
}
func (bwb *balancerWrapperBuilder) Build(cc balancer.ClientConn, opts balancer.BuildOptions) balancer.Balancer {
- targetAddr := cc.Target()
- targetSplitted := strings.Split(targetAddr, ":///")
- if len(targetSplitted) >= 2 {
- targetAddr = targetSplitted[1]
- }
-
- bwb.b.Start(targetAddr, BalancerConfig{
+ bwb.b.Start(opts.Target.Endpoint, BalancerConfig{
DialCreds: opts.DialCreds,
Dialer: opts.Dialer,
})
@@ -49,7 +42,7 @@ func (bwb *balancerWrapperBuilder) Build(cc balancer.ClientConn, opts balancer.B
balancer: bwb.b,
pickfirst: pickfirst,
cc: cc,
- targetAddr: targetAddr,
+ targetAddr: opts.Target.Endpoint,
startCh: make(chan struct{}),
conns: make(map[resolver.Address]balancer.SubConn),
connSt: make(map[balancer.SubConn]*scState),
@@ -120,7 +113,7 @@ func (bw *balancerWrapper) lbWatcher() {
}
for addrs := range notifyCh {
- grpclog.Infof("balancerWrapper: got update addr from Notify: %v\n", addrs)
+ grpclog.Infof("balancerWrapper: got update addr from Notify: %v", addrs)
if bw.pickfirst {
var (
oldA resolver.Address
diff --git a/vendor/google.golang.org/grpc/clientconn.go b/vendor/google.golang.org/grpc/clientconn.go
index bd2d2b317798..78e6d178a1b4 100644
--- a/vendor/google.golang.org/grpc/clientconn.go
+++ b/vendor/google.golang.org/grpc/clientconn.go
@@ -137,6 +137,9 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (conn *
opt.apply(&cc.dopts)
}
+ chainUnaryClientInterceptors(cc)
+ chainStreamClientInterceptors(cc)
+
defer func() {
if err != nil {
cc.Close()
@@ -290,6 +293,7 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (conn *
CredsBundle: cc.dopts.copts.CredsBundle,
Dialer: cc.dopts.copts.Dialer,
ChannelzParentID: cc.channelzID,
+ Target: cc.parsedTarget,
}
// Build the resolver.
@@ -327,6 +331,68 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (conn *
return cc, nil
}
+// chainUnaryClientInterceptors chains all unary client interceptors into one.
+func chainUnaryClientInterceptors(cc *ClientConn) {
+ interceptors := cc.dopts.chainUnaryInts
+ // Prepend dopts.unaryInt to the chaining interceptors if it exists, since unaryInt will
+ // be executed before any other chained interceptors.
+ if cc.dopts.unaryInt != nil {
+ interceptors = append([]UnaryClientInterceptor{cc.dopts.unaryInt}, interceptors...)
+ }
+ var chainedInt UnaryClientInterceptor
+ if len(interceptors) == 0 {
+ chainedInt = nil
+ } else if len(interceptors) == 1 {
+ chainedInt = interceptors[0]
+ } else {
+ chainedInt = func(ctx context.Context, method string, req, reply interface{}, cc *ClientConn, invoker UnaryInvoker, opts ...CallOption) error {
+ return interceptors[0](ctx, method, req, reply, cc, getChainUnaryInvoker(interceptors, 0, invoker), opts...)
+ }
+ }
+ cc.dopts.unaryInt = chainedInt
+}
+
+// getChainUnaryInvoker recursively generate the chained unary invoker.
+func getChainUnaryInvoker(interceptors []UnaryClientInterceptor, curr int, finalInvoker UnaryInvoker) UnaryInvoker {
+ if curr == len(interceptors)-1 {
+ return finalInvoker
+ }
+ return func(ctx context.Context, method string, req, reply interface{}, cc *ClientConn, opts ...CallOption) error {
+ return interceptors[curr+1](ctx, method, req, reply, cc, getChainUnaryInvoker(interceptors, curr+1, finalInvoker), opts...)
+ }
+}
+
+// chainStreamClientInterceptors chains all stream client interceptors into one.
+func chainStreamClientInterceptors(cc *ClientConn) {
+ interceptors := cc.dopts.chainStreamInts
+ // Prepend dopts.streamInt to the chaining interceptors if it exists, since streamInt will
+ // be executed before any other chained interceptors.
+ if cc.dopts.streamInt != nil {
+ interceptors = append([]StreamClientInterceptor{cc.dopts.streamInt}, interceptors...)
+ }
+ var chainedInt StreamClientInterceptor
+ if len(interceptors) == 0 {
+ chainedInt = nil
+ } else if len(interceptors) == 1 {
+ chainedInt = interceptors[0]
+ } else {
+ chainedInt = func(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, streamer Streamer, opts ...CallOption) (ClientStream, error) {
+ return interceptors[0](ctx, desc, cc, method, getChainStreamer(interceptors, 0, streamer), opts...)
+ }
+ }
+ cc.dopts.streamInt = chainedInt
+}
+
+// getChainStreamer recursively generate the chained client stream constructor.
+func getChainStreamer(interceptors []StreamClientInterceptor, curr int, finalStreamer Streamer) Streamer {
+ if curr == len(interceptors)-1 {
+ return finalStreamer
+ }
+ return func(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, opts ...CallOption) (ClientStream, error) {
+ return interceptors[curr+1](ctx, desc, cc, method, getChainStreamer(interceptors, curr+1, finalStreamer), opts...)
+ }
+}
+
// connectivityStateManager keeps the connectivity.State of ClientConn.
// This struct will eventually be exported so the balancers can access it.
type connectivityStateManager struct {
@@ -537,6 +603,7 @@ func (cc *ClientConn) updateResolverState(s resolver.State) error {
} else if cc.balancerWrapper == nil {
// Balancer dial option was set, and this is the first time handling
// resolved addresses. Build a balancer with dopts.balancerBuilder.
+ cc.curBalancerName = cc.dopts.balancerBuilder.Name()
cc.balancerWrapper = newCCBalancerWrapper(cc, cc.dopts.balancerBuilder, cc.balancerBuildOpts)
}
diff --git a/vendor/google.golang.org/grpc/codes/codes.go b/vendor/google.golang.org/grpc/codes/codes.go
index d9b9d5782e08..02738839dd98 100644
--- a/vendor/google.golang.org/grpc/codes/codes.go
+++ b/vendor/google.golang.org/grpc/codes/codes.go
@@ -132,7 +132,8 @@ const (
// Unavailable indicates the service is currently unavailable.
// This is a most likely a transient condition and may be corrected
- // by retrying with a backoff.
+ // by retrying with a backoff. Note that it is not always safe to retry
+ // non-idempotent operations.
//
// See litmus test above for deciding between FailedPrecondition,
// Aborted, and Unavailable.
diff --git a/vendor/google.golang.org/grpc/dialoptions.go b/vendor/google.golang.org/grpc/dialoptions.go
index e114fecbb7b4..69c003159d49 100644
--- a/vendor/google.golang.org/grpc/dialoptions.go
+++ b/vendor/google.golang.org/grpc/dialoptions.go
@@ -39,8 +39,12 @@ import (
// dialOptions configure a Dial call. dialOptions are set by the DialOption
// values passed to Dial.
type dialOptions struct {
- unaryInt UnaryClientInterceptor
- streamInt StreamClientInterceptor
+ unaryInt UnaryClientInterceptor
+ streamInt StreamClientInterceptor
+
+ chainUnaryInts []UnaryClientInterceptor
+ chainStreamInts []StreamClientInterceptor
+
cp Compressor
dc Decompressor
bs backoff.Strategy
@@ -414,6 +418,17 @@ func WithUnaryInterceptor(f UnaryClientInterceptor) DialOption {
})
}
+// WithChainUnaryInterceptor returns a DialOption that specifies the chained
+// interceptor for unary RPCs. The first interceptor will be the outer most,
+// while the last interceptor will be the inner most wrapper around the real call.
+// All interceptors added by this method will be chained, and the interceptor
+// defined by WithUnaryInterceptor will always be prepended to the chain.
+func WithChainUnaryInterceptor(interceptors ...UnaryClientInterceptor) DialOption {
+ return newFuncDialOption(func(o *dialOptions) {
+ o.chainUnaryInts = append(o.chainUnaryInts, interceptors...)
+ })
+}
+
// WithStreamInterceptor returns a DialOption that specifies the interceptor for
// streaming RPCs.
func WithStreamInterceptor(f StreamClientInterceptor) DialOption {
@@ -422,6 +437,17 @@ func WithStreamInterceptor(f StreamClientInterceptor) DialOption {
})
}
+// WithChainStreamInterceptor returns a DialOption that specifies the chained
+// interceptor for unary RPCs. The first interceptor will be the outer most,
+// while the last interceptor will be the inner most wrapper around the real call.
+// All interceptors added by this method will be chained, and the interceptor
+// defined by WithStreamInterceptor will always be prepended to the chain.
+func WithChainStreamInterceptor(interceptors ...StreamClientInterceptor) DialOption {
+ return newFuncDialOption(func(o *dialOptions) {
+ o.chainStreamInts = append(o.chainStreamInts, interceptors...)
+ })
+}
+
// WithAuthority returns a DialOption that specifies the value to be used as the
// :authority pseudo-header. This value only works with WithInsecure and has no
// effect if TransportCredentials are present.
@@ -440,12 +466,12 @@ func WithChannelzParentID(id int64) DialOption {
})
}
-// WithDisableServiceConfig returns a DialOption that causes grpc to ignore any
+// WithDisableServiceConfig returns a DialOption that causes gRPC to ignore any
// service config provided by the resolver and provides a hint to the resolver
// to not fetch service configs.
//
-// Note that, this dial option only disables service config from resolver. If
-// default service config is provided, grpc will use the default service config.
+// Note that this dial option only disables service config from resolver. If
+// default service config is provided, gRPC will use the default service config.
func WithDisableServiceConfig() DialOption {
return newFuncDialOption(func(o *dialOptions) {
o.disableServiceConfig = true
diff --git a/vendor/google.golang.org/grpc/go.mod b/vendor/google.golang.org/grpc/go.mod
index 9f3ef3a539c6..b75c069aacd8 100644
--- a/vendor/google.golang.org/grpc/go.mod
+++ b/vendor/google.golang.org/grpc/go.mod
@@ -7,6 +7,7 @@ require (
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
github.com/golang/mock v1.1.1
github.com/golang/protobuf v1.2.0
+ github.com/google/go-cmp v0.2.0
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3
golang.org/x/net v0.0.0-20190311183353-d8887717615a
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be
diff --git a/vendor/google.golang.org/grpc/go.sum b/vendor/google.golang.org/grpc/go.sum
index b8638ce769dd..2a17234748d0 100644
--- a/vendor/google.golang.org/grpc/go.sum
+++ b/vendor/google.golang.org/grpc/go.sum
@@ -10,6 +10,8 @@ github.com/golang/mock v1.1.1 h1:G5FRp8JnTd7RQH5kemVNlMeyXQAztQ3mOWV95KxsXH8=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ=
+github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3 h1:XQyxROzUlZH+WIQwySDgnISgOivlhjIEwaQaJEJrrN0=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
diff --git a/vendor/google.golang.org/grpc/internal/channelz/funcs.go b/vendor/google.golang.org/grpc/internal/channelz/funcs.go
index 041520d35199..f0744f9937e9 100644
--- a/vendor/google.golang.org/grpc/internal/channelz/funcs.go
+++ b/vendor/google.golang.org/grpc/internal/channelz/funcs.go
@@ -24,6 +24,7 @@
package channelz
import (
+ "fmt"
"sort"
"sync"
"sync/atomic"
@@ -95,9 +96,14 @@ func (d *dbWrapper) get() *channelMap {
// NewChannelzStorage initializes channelz data storage and id generator.
//
+// This function returns a cleanup function to wait for all channelz state to be reset by the
+// grpc goroutines when those entities get closed. By using this cleanup function, we make sure tests
+// don't mess up each other, i.e. lingering goroutine from previous test doing entity removal happen
+// to remove some entity just register by the new test, since the id space is the same.
+//
// Note: This function is exported for testing purpose only. User should not call
// it in most cases.
-func NewChannelzStorage() {
+func NewChannelzStorage() (cleanup func() error) {
db.set(&channelMap{
topLevelChannels: make(map[int64]struct{}),
channels: make(map[int64]*channel),
@@ -107,6 +113,28 @@ func NewChannelzStorage() {
subChannels: make(map[int64]*subChannel),
})
idGen.reset()
+ return func() error {
+ var err error
+ cm := db.get()
+ if cm == nil {
+ return nil
+ }
+ for i := 0; i < 1000; i++ {
+ cm.mu.Lock()
+ if len(cm.topLevelChannels) == 0 && len(cm.servers) == 0 && len(cm.channels) == 0 && len(cm.subChannels) == 0 && len(cm.listenSockets) == 0 && len(cm.normalSockets) == 0 {
+ cm.mu.Unlock()
+ // all things stored in the channelz map have been cleared.
+ return nil
+ }
+ cm.mu.Unlock()
+ time.Sleep(10 * time.Millisecond)
+ }
+
+ cm.mu.Lock()
+ err = fmt.Errorf("after 10s the channelz map has not been cleaned up yet, topchannels: %d, servers: %d, channels: %d, subchannels: %d, listen sockets: %d, normal sockets: %d", len(cm.topLevelChannels), len(cm.servers), len(cm.channels), len(cm.subChannels), len(cm.listenSockets), len(cm.normalSockets))
+ cm.mu.Unlock()
+ return err
+ }
}
// GetTopChannels returns a slice of top channel's ChannelMetric, along with a
diff --git a/vendor/google.golang.org/grpc/internal/transport/http2_client.go b/vendor/google.golang.org/grpc/internal/transport/http2_client.go
index 9dee6db61d9d..91e446fbe6c3 100644
--- a/vendor/google.golang.org/grpc/internal/transport/http2_client.go
+++ b/vendor/google.golang.org/grpc/internal/transport/http2_client.go
@@ -794,21 +794,21 @@ func (t *http2Client) Close() error {
// stream is closed. If there are no active streams, the transport is closed
// immediately. This does nothing if the transport is already draining or
// closing.
-func (t *http2Client) GracefulClose() error {
+func (t *http2Client) GracefulClose() {
t.mu.Lock()
// Make sure we move to draining only from active.
if t.state == draining || t.state == closing {
t.mu.Unlock()
- return nil
+ return
}
t.state = draining
active := len(t.activeStreams)
t.mu.Unlock()
if active == 0 {
- return t.Close()
+ t.Close()
+ return
}
t.controlBuf.put(&incomingGoAway{})
- return nil
}
// Write formats the data into HTTP2 data frame(s) and sends it out. The caller
diff --git a/vendor/google.golang.org/grpc/internal/transport/transport.go b/vendor/google.golang.org/grpc/internal/transport/transport.go
index 7f82cbb080df..846147a64e50 100644
--- a/vendor/google.golang.org/grpc/internal/transport/transport.go
+++ b/vendor/google.golang.org/grpc/internal/transport/transport.go
@@ -578,9 +578,12 @@ type ClientTransport interface {
// is called only once.
Close() error
- // GracefulClose starts to tear down the transport. It stops accepting
- // new RPCs and wait the completion of the pending RPCs.
- GracefulClose() error
+ // GracefulClose starts to tear down the transport: the transport will stop
+ // accepting new RPCs and NewStream will return error. Once all streams are
+ // finished, the transport will close.
+ //
+ // It does not block.
+ GracefulClose()
// Write sends the data for the given stream. A nil stream indicates
// the write is to be performed on the transport as a whole.
diff --git a/vendor/google.golang.org/grpc/picker_wrapper.go b/vendor/google.golang.org/grpc/picker_wrapper.go
index f9625496c403..45baa2ae13da 100644
--- a/vendor/google.golang.org/grpc/picker_wrapper.go
+++ b/vendor/google.golang.org/grpc/picker_wrapper.go
@@ -120,6 +120,14 @@ func (bp *pickerWrapper) pick(ctx context.Context, failfast bool, opts balancer.
bp.mu.Unlock()
select {
case <-ctx.Done():
+ if connectionErr := bp.connectionError(); connectionErr != nil {
+ switch ctx.Err() {
+ case context.DeadlineExceeded:
+ return nil, nil, status.Errorf(codes.DeadlineExceeded, "latest connection error: %v", connectionErr)
+ case context.Canceled:
+ return nil, nil, status.Errorf(codes.Canceled, "latest connection error: %v", connectionErr)
+ }
+ }
return nil, nil, ctx.Err()
case <-ch:
}
diff --git a/vendor/google.golang.org/grpc/preloader.go b/vendor/google.golang.org/grpc/preloader.go
new file mode 100644
index 000000000000..76acbbcc93b9
--- /dev/null
+++ b/vendor/google.golang.org/grpc/preloader.go
@@ -0,0 +1,64 @@
+/*
+ *
+ * Copyright 2019 gRPC authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package grpc
+
+import (
+ "google.golang.org/grpc/codes"
+ "google.golang.org/grpc/status"
+)
+
+// PreparedMsg is responsible for creating a Marshalled and Compressed object.
+//
+// This API is EXPERIMENTAL.
+type PreparedMsg struct {
+ // Struct for preparing msg before sending them
+ encodedData []byte
+ hdr []byte
+ payload []byte
+}
+
+// Encode marshalls and compresses the message using the codec and compressor for the stream.
+func (p *PreparedMsg) Encode(s Stream, msg interface{}) error {
+ ctx := s.Context()
+ rpcInfo, ok := rpcInfoFromContext(ctx)
+ if !ok {
+ return status.Errorf(codes.Internal, "grpc: unable to get rpcInfo")
+ }
+
+ // check if the context has the relevant information to prepareMsg
+ if rpcInfo.preloaderInfo == nil {
+ return status.Errorf(codes.Internal, "grpc: rpcInfo.preloaderInfo is nil")
+ }
+ if rpcInfo.preloaderInfo.codec == nil {
+ return status.Errorf(codes.Internal, "grpc: rpcInfo.preloaderInfo.codec is nil")
+ }
+
+ // prepare the msg
+ data, err := encode(rpcInfo.preloaderInfo.codec, msg)
+ if err != nil {
+ return err
+ }
+ p.encodedData = data
+ compData, err := compress(data, rpcInfo.preloaderInfo.cp, rpcInfo.preloaderInfo.comp)
+ if err != nil {
+ return err
+ }
+ p.hdr, p.payload = msgHeader(data, compData)
+ return nil
+}
diff --git a/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go b/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go
index 58355990779b..297492e87af4 100644
--- a/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go
+++ b/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go
@@ -66,6 +66,9 @@ var (
var (
defaultResolver netResolver = net.DefaultResolver
+ // To prevent excessive re-resolution, we enforce a rate limit on DNS
+ // resolution requests.
+ minDNSResRate = 30 * time.Second
)
var customAuthorityDialler = func(authority string) func(ctx context.Context, network, address string) (net.Conn, error) {
@@ -241,7 +244,13 @@ func (d *dnsResolver) watcher() {
return
case <-d.t.C:
case <-d.rn:
+ if !d.t.Stop() {
+ // Before resetting a timer, it should be stopped to prevent racing with
+ // reads on it's channel.
+ <-d.t.C
+ }
}
+
result, sc := d.lookup()
// Next lookup should happen within an interval defined by d.freq. It may be
// more often due to exponential retry on empty address list.
@@ -254,6 +263,16 @@ func (d *dnsResolver) watcher() {
}
d.cc.NewServiceConfig(sc)
d.cc.NewAddress(result)
+
+ // Sleep to prevent excessive re-resolutions. Incoming resolution requests
+ // will be queued in d.rn.
+ t := time.NewTimer(minDNSResRate)
+ select {
+ case <-t.C:
+ case <-d.ctx.Done():
+ t.Stop()
+ return
+ }
}
}
diff --git a/vendor/google.golang.org/grpc/resolver/resolver.go b/vendor/google.golang.org/grpc/resolver/resolver.go
index 52ec603daa77..f6f6934d9bc3 100644
--- a/vendor/google.golang.org/grpc/resolver/resolver.go
+++ b/vendor/google.golang.org/grpc/resolver/resolver.go
@@ -132,6 +132,21 @@ type ClientConn interface {
// Target represents a target for gRPC, as specified in:
// https://github.com/grpc/grpc/blob/master/doc/naming.md.
+// It is parsed from the target string that gets passed into Dial or DialContext by the user. And
+// grpc passes it to the resolver and the balancer.
+//
+// If the target follows the naming spec, and the parsed scheme is registered with grpc, we will
+// parse the target string according to the spec. e.g. "dns://some_authority/foo.bar" will be parsed
+// into &Target{Scheme: "dns", Authority: "some_authority", Endpoint: "foo.bar"}
+//
+// If the target does not contain a scheme, we will apply the default scheme, and set the Target to
+// be the full target string. e.g. "foo.bar" will be parsed into
+// &Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "foo.bar"}.
+//
+// If the parsed scheme is not registered (i.e. no corresponding resolver available to resolve the
+// endpoint), we set the Scheme to be the default scheme, and set the Endpoint to be the full target
+// string. e.g. target string "unknown_scheme://authority/endpoint" will be parsed into
+// &Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "unknown_scheme://authority/endpoint"}.
type Target struct {
Scheme string
Authority string
diff --git a/vendor/google.golang.org/grpc/rpc_util.go b/vendor/google.golang.org/grpc/rpc_util.go
index 2a595622d3cc..088c3f1b2528 100644
--- a/vendor/google.golang.org/grpc/rpc_util.go
+++ b/vendor/google.golang.org/grpc/rpc_util.go
@@ -694,14 +694,34 @@ func recv(p *parser, c baseCodec, s *transport.Stream, dc Decompressor, m interf
return nil
}
+// Information about RPC
type rpcInfo struct {
- failfast bool
+ failfast bool
+ preloaderInfo *compressorInfo
+}
+
+// Information about Preloader
+// Responsible for storing codec, and compressors
+// If stream (s) has context s.Context which stores rpcInfo that has non nil
+// pointers to codec, and compressors, then we can use preparedMsg for Async message prep
+// and reuse marshalled bytes
+type compressorInfo struct {
+ codec baseCodec
+ cp Compressor
+ comp encoding.Compressor
}
type rpcInfoContextKey struct{}
-func newContextWithRPCInfo(ctx context.Context, failfast bool) context.Context {
- return context.WithValue(ctx, rpcInfoContextKey{}, &rpcInfo{failfast: failfast})
+func newContextWithRPCInfo(ctx context.Context, failfast bool, codec baseCodec, cp Compressor, comp encoding.Compressor) context.Context {
+ return context.WithValue(ctx, rpcInfoContextKey{}, &rpcInfo{
+ failfast: failfast,
+ preloaderInfo: &compressorInfo{
+ codec: codec,
+ cp: cp,
+ comp: comp,
+ },
+ })
}
func rpcInfoFromContext(ctx context.Context) (s *rpcInfo, ok bool) {
diff --git a/vendor/google.golang.org/grpc/server.go b/vendor/google.golang.org/grpc/server.go
index 8115828fdf00..495a4f9b825e 100644
--- a/vendor/google.golang.org/grpc/server.go
+++ b/vendor/google.golang.org/grpc/server.go
@@ -86,7 +86,7 @@ type service struct {
// Server is a gRPC server to serve RPC requests.
type Server struct {
- opts options
+ opts serverOptions
mu sync.Mutex // guards following
lis map[net.Listener]bool
@@ -108,7 +108,7 @@ type Server struct {
czData *channelzData
}
-type options struct {
+type serverOptions struct {
creds credentials.TransportCredentials
codec baseCodec
cp Compressor
@@ -131,7 +131,7 @@ type options struct {
maxHeaderListSize *uint32
}
-var defaultServerOptions = options{
+var defaultServerOptions = serverOptions{
maxReceiveMessageSize: defaultServerMaxReceiveMessageSize,
maxSendMessageSize: defaultServerMaxSendMessageSize,
connectionTimeout: 120 * time.Second,
@@ -140,7 +140,33 @@ var defaultServerOptions = options{
}
// A ServerOption sets options such as credentials, codec and keepalive parameters, etc.
-type ServerOption func(*options)
+type ServerOption interface {
+ apply(*serverOptions)
+}
+
+// EmptyServerOption does not alter the server configuration. It can be embedded
+// in another structure to build custom server options.
+//
+// This API is EXPERIMENTAL.
+type EmptyServerOption struct{}
+
+func (EmptyServerOption) apply(*serverOptions) {}
+
+// funcServerOption wraps a function that modifies serverOptions into an
+// implementation of the ServerOption interface.
+type funcServerOption struct {
+ f func(*serverOptions)
+}
+
+func (fdo *funcServerOption) apply(do *serverOptions) {
+ fdo.f(do)
+}
+
+func newFuncServerOption(f func(*serverOptions)) *funcServerOption {
+ return &funcServerOption{
+ f: f,
+ }
+}
// WriteBufferSize determines how much data can be batched before doing a write on the wire.
// The corresponding memory allocation for this buffer will be twice the size to keep syscalls low.
@@ -148,9 +174,9 @@ type ServerOption func(*options)
// Zero will disable the write buffer such that each write will be on underlying connection.
// Note: A Send call may not directly translate to a write.
func WriteBufferSize(s int) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
o.writeBufferSize = s
- }
+ })
}
// ReadBufferSize lets you set the size of read buffer, this determines how much data can be read at most
@@ -159,25 +185,25 @@ func WriteBufferSize(s int) ServerOption {
// Zero will disable read buffer for a connection so data framer can access the underlying
// conn directly.
func ReadBufferSize(s int) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
o.readBufferSize = s
- }
+ })
}
// InitialWindowSize returns a ServerOption that sets window size for stream.
// The lower bound for window size is 64K and any value smaller than that will be ignored.
func InitialWindowSize(s int32) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
o.initialWindowSize = s
- }
+ })
}
// InitialConnWindowSize returns a ServerOption that sets window size for a connection.
// The lower bound for window size is 64K and any value smaller than that will be ignored.
func InitialConnWindowSize(s int32) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
o.initialConnWindowSize = s
- }
+ })
}
// KeepaliveParams returns a ServerOption that sets keepalive and max-age parameters for the server.
@@ -187,25 +213,25 @@ func KeepaliveParams(kp keepalive.ServerParameters) ServerOption {
kp.Time = time.Second
}
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
o.keepaliveParams = kp
- }
+ })
}
// KeepaliveEnforcementPolicy returns a ServerOption that sets keepalive enforcement policy for the server.
func KeepaliveEnforcementPolicy(kep keepalive.EnforcementPolicy) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
o.keepalivePolicy = kep
- }
+ })
}
// CustomCodec returns a ServerOption that sets a codec for message marshaling and unmarshaling.
//
// This will override any lookups by content-subtype for Codecs registered with RegisterCodec.
func CustomCodec(codec Codec) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
o.codec = codec
- }
+ })
}
// RPCCompressor returns a ServerOption that sets a compressor for outbound
@@ -216,9 +242,9 @@ func CustomCodec(codec Codec) ServerOption {
//
// Deprecated: use encoding.RegisterCompressor instead.
func RPCCompressor(cp Compressor) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
o.cp = cp
- }
+ })
}
// RPCDecompressor returns a ServerOption that sets a decompressor for inbound
@@ -227,9 +253,9 @@ func RPCCompressor(cp Compressor) ServerOption {
//
// Deprecated: use encoding.RegisterCompressor instead.
func RPCDecompressor(dc Decompressor) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
o.dc = dc
- }
+ })
}
// MaxMsgSize returns a ServerOption to set the max message size in bytes the server can receive.
@@ -243,73 +269,73 @@ func MaxMsgSize(m int) ServerOption {
// MaxRecvMsgSize returns a ServerOption to set the max message size in bytes the server can receive.
// If this is not set, gRPC uses the default 4MB.
func MaxRecvMsgSize(m int) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
o.maxReceiveMessageSize = m
- }
+ })
}
// MaxSendMsgSize returns a ServerOption to set the max message size in bytes the server can send.
// If this is not set, gRPC uses the default `math.MaxInt32`.
func MaxSendMsgSize(m int) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
o.maxSendMessageSize = m
- }
+ })
}
// MaxConcurrentStreams returns a ServerOption that will apply a limit on the number
// of concurrent streams to each ServerTransport.
func MaxConcurrentStreams(n uint32) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
o.maxConcurrentStreams = n
- }
+ })
}
// Creds returns a ServerOption that sets credentials for server connections.
func Creds(c credentials.TransportCredentials) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
o.creds = c
- }
+ })
}
// UnaryInterceptor returns a ServerOption that sets the UnaryServerInterceptor for the
// server. Only one unary interceptor can be installed. The construction of multiple
// interceptors (e.g., chaining) can be implemented at the caller.
func UnaryInterceptor(i UnaryServerInterceptor) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
if o.unaryInt != nil {
panic("The unary server interceptor was already set and may not be reset.")
}
o.unaryInt = i
- }
+ })
}
// StreamInterceptor returns a ServerOption that sets the StreamServerInterceptor for the
// server. Only one stream interceptor can be installed.
func StreamInterceptor(i StreamServerInterceptor) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
if o.streamInt != nil {
panic("The stream server interceptor was already set and may not be reset.")
}
o.streamInt = i
- }
+ })
}
// InTapHandle returns a ServerOption that sets the tap handle for all the server
// transport to be created. Only one can be installed.
func InTapHandle(h tap.ServerInHandle) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
if o.inTapHandle != nil {
panic("The tap handle was already set and may not be reset.")
}
o.inTapHandle = h
- }
+ })
}
// StatsHandler returns a ServerOption that sets the stats handler for the server.
func StatsHandler(h stats.Handler) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
o.statsHandler = h
- }
+ })
}
// UnknownServiceHandler returns a ServerOption that allows for adding a custom
@@ -319,7 +345,7 @@ func StatsHandler(h stats.Handler) ServerOption {
// The handling function has full access to the Context of the request and the
// stream, and the invocation bypasses interceptors.
func UnknownServiceHandler(streamHandler StreamHandler) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
o.unknownStreamDesc = &StreamDesc{
StreamName: "unknown_service_handler",
Handler: streamHandler,
@@ -327,7 +353,7 @@ func UnknownServiceHandler(streamHandler StreamHandler) ServerOption {
ClientStreams: true,
ServerStreams: true,
}
- }
+ })
}
// ConnectionTimeout returns a ServerOption that sets the timeout for
@@ -337,17 +363,17 @@ func UnknownServiceHandler(streamHandler StreamHandler) ServerOption {
//
// This API is EXPERIMENTAL.
func ConnectionTimeout(d time.Duration) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
o.connectionTimeout = d
- }
+ })
}
// MaxHeaderListSize returns a ServerOption that sets the max (uncompressed) size
// of header list that the server is prepared to accept.
func MaxHeaderListSize(s uint32) ServerOption {
- return func(o *options) {
+ return newFuncServerOption(func(o *serverOptions) {
o.maxHeaderListSize = &s
- }
+ })
}
// NewServer creates a gRPC server which has no service registered and has not
@@ -355,7 +381,7 @@ func MaxHeaderListSize(s uint32) ServerOption {
func NewServer(opt ...ServerOption) *Server {
opts := defaultServerOptions
for _, o := range opt {
- o(&opts)
+ o.apply(&opts)
}
s := &Server{
lis: make(map[net.Listener]bool),
diff --git a/vendor/google.golang.org/grpc/stream.go b/vendor/google.golang.org/grpc/stream.go
index 6e2bf51e0a09..e10e62317dfd 100644
--- a/vendor/google.golang.org/grpc/stream.go
+++ b/vendor/google.golang.org/grpc/stream.go
@@ -245,7 +245,7 @@ func newClientStream(ctx context.Context, desc *StreamDesc, cc *ClientConn, meth
trInfo.tr.LazyLog(&trInfo.firstLine, false)
ctx = trace.NewContext(ctx, trInfo.tr)
}
- ctx = newContextWithRPCInfo(ctx, c.failFast)
+ ctx = newContextWithRPCInfo(ctx, c.failFast, c.codec, cp, comp)
sh := cc.dopts.copts.StatsHandler
var beginTime time.Time
if sh != nil {
@@ -677,15 +677,13 @@ func (cs *clientStream) SendMsg(m interface{}) (err error) {
if !cs.desc.ClientStreams {
cs.sentLast = true
}
- data, err := encode(cs.codec, m)
- if err != nil {
- return err
- }
- compData, err := compress(data, cs.cp, cs.comp)
+
+ // load hdr, payload, data
+ hdr, payload, data, err := prepareMsg(m, cs.codec, cs.cp, cs.comp)
if err != nil {
return err
}
- hdr, payload := msgHeader(data, compData)
+
// TODO(dfawley): should we be checking len(data) instead?
if len(payload) > *cs.callInfo.maxSendMessageSize {
return status.Errorf(codes.ResourceExhausted, "trying to send message larger than max (%d vs. %d)", len(payload), *cs.callInfo.maxSendMessageSize)
@@ -1150,15 +1148,13 @@ func (as *addrConnStream) SendMsg(m interface{}) (err error) {
if !as.desc.ClientStreams {
as.sentLast = true
}
- data, err := encode(as.codec, m)
- if err != nil {
- return err
- }
- compData, err := compress(data, as.cp, as.comp)
+
+ // load hdr, payload, data
+ hdr, payld, _, err := prepareMsg(m, as.codec, as.cp, as.comp)
if err != nil {
return err
}
- hdr, payld := msgHeader(data, compData)
+
// TODO(dfawley): should we be checking len(data) instead?
if len(payld) > *as.callInfo.maxSendMessageSize {
return status.Errorf(codes.ResourceExhausted, "trying to send message larger than max (%d vs. %d)", len(payld), *as.callInfo.maxSendMessageSize)
@@ -1395,15 +1391,13 @@ func (ss *serverStream) SendMsg(m interface{}) (err error) {
ss.t.IncrMsgSent()
}
}()
- data, err := encode(ss.codec, m)
- if err != nil {
- return err
- }
- compData, err := compress(data, ss.cp, ss.comp)
+
+ // load hdr, payload, data
+ hdr, payload, data, err := prepareMsg(m, ss.codec, ss.cp, ss.comp)
if err != nil {
return err
}
- hdr, payload := msgHeader(data, compData)
+
// TODO(dfawley): should we be checking len(data) instead?
if len(payload) > ss.maxSendMessageSize {
return status.Errorf(codes.ResourceExhausted, "trying to send message larger than max (%d vs. %d)", len(payload), ss.maxSendMessageSize)
@@ -1496,3 +1490,24 @@ func (ss *serverStream) RecvMsg(m interface{}) (err error) {
func MethodFromServerStream(stream ServerStream) (string, bool) {
return Method(stream.Context())
}
+
+// prepareMsg returns the hdr, payload and data
+// using the compressors passed or using the
+// passed preparedmsg
+func prepareMsg(m interface{}, codec baseCodec, cp Compressor, comp encoding.Compressor) (hdr, payload, data []byte, err error) {
+ if preparedMsg, ok := m.(*PreparedMsg); ok {
+ return preparedMsg.hdr, preparedMsg.payload, preparedMsg.encodedData, nil
+ }
+ // The input interface is not a prepared msg.
+ // Marshal and Compress the data at this point
+ data, err = encode(codec, m)
+ if err != nil {
+ return nil, nil, nil, err
+ }
+ compData, err := compress(data, cp, comp)
+ if err != nil {
+ return nil, nil, nil, err
+ }
+ hdr, payload = msgHeader(data, compData)
+ return hdr, payload, data, nil
+}
diff --git a/vendor/google.golang.org/grpc/version.go b/vendor/google.golang.org/grpc/version.go
index 092e088258da..376f0b0a82bc 100644
--- a/vendor/google.golang.org/grpc/version.go
+++ b/vendor/google.golang.org/grpc/version.go
@@ -19,4 +19,4 @@
package grpc
// Version is the current grpc version.
-const Version = "1.20.1"
+const Version = "1.21.0"
diff --git a/vendor/google.golang.org/grpc/vet.sh b/vendor/google.golang.org/grpc/vet.sh
index bd5c8de90c33..11037b94dc8b 100644
--- a/vendor/google.golang.org/grpc/vet.sh
+++ b/vendor/google.golang.org/grpc/vet.sh
@@ -75,7 +75,7 @@ git ls-files "*.go" | xargs grep -L "\(Copyright [0-9]\{4,\} gRPC authors\)\|DO
# - Do not import math/rand for real library code. Use internal/grpcrand for
# thread safety.
-git ls-files "*.go" | xargs grep -l '"math/rand"' 2>&1 | (! grep -v '^examples\|^stress\|grpcrand')
+git ls-files "*.go" | xargs grep -l '"math/rand"' 2>&1 | (! grep -v '^examples\|^stress\|grpcrand\|wrr_test')
# - Ensure all ptypes proto packages are renamed when importing.
git ls-files "*.go" | (! xargs grep "\(import \|^\s*\)\"github.com/golang/protobuf/ptypes/")
@@ -88,7 +88,7 @@ go list -f {{.Dir}} ./... | xargs go run test/go_vet/vet.go
gofmt -s -d -l . 2>&1 | fail_on_output
goimports -l . 2>&1 | (! grep -vE "(_mock|\.pb)\.go:") | fail_on_output
golint ./... 2>&1 | (! grep -vE "(_mock|\.pb)\.go:")
-go tool vet -all .
+go vet -all .
# - Check that generated proto files are up to date.
if [[ -z "${VET_SKIP_PROTO}" ]]; then
diff --git a/vendor/istio.io/api/annotation/annotations.gen.go b/vendor/istio.io/api/annotation/annotations.gen.go
index dad8346763ab..5e0637ee085f 100644
--- a/vendor/istio.io/api/annotation/annotations.gen.go
+++ b/vendor/istio.io/api/annotation/annotations.gen.go
@@ -1,353 +1,367 @@
+
// GENERATED FILE -- DO NOT EDIT
-//
-// nolint: lll
-//go:generate go run $GOPATH/src/istio.io/api/annotation/cmd/gen/main.go --input=$GOPATH/src/istio.io/api/annotation/annotations.yaml --output=$GOPATH/src/istio.io/api/annotation/annotations.gen.go
-//go:generate goimports -w annotations.gen.go
package annotation
-var (
- AlphaKubernetesServiceAccounts = Instance{
- Name: "alpha.istio.io/kubernetes-serviceaccounts",
- Description: "Specifies the Kubernetes service accounts that are " +
- "allowed to run this service on the VMs. NOTE This API is " +
- "Alpha and has no stability guarantees.",
- Hidden: true,
- Deprecated: false,
- }
-
- AlphaCanonicalServiceAccounts = Instance{
- Name: "alpha.istio.io/canonical-serviceaccounts",
- Description: "Specifies the non-Kubernetes service accounts that are " +
- "allowed to run this service. NOTE This API is Alpha and " +
- "has no stability guarantees.",
- Hidden: true,
- Deprecated: false,
- }
-
- AlphaIdentity = Instance{
- Name: "alpha.istio.io/identity",
- Description: "Identity for the workload. NOTE This API is Alpha and has " +
- "no stability guarantees.",
- Hidden: true,
- Deprecated: false,
- }
-
- AlphaNetworkingServiceVersion = Instance{
- Name: "networking.alpha.istio.io/serviceVersion",
- Description: "Added to synthetic ServiceEntry resources to provide the " +
- "raw resource version from the most recent k8s Service " +
- "update. This will always be available for synthetic " +
- "service entries. NOTE This API is Alpha and has no " +
- "stability guarantees.",
- Hidden: true,
- Deprecated: false,
- }
-
- AlphaNetworkingEndpointsVersion = Instance{
- Name: "networking.alpha.istio.io/endpointsVersion",
- Description: "Added to synthetic ServiceEntry resources to provide the " +
- "raw resource version from the most recent k8s Endpoints " +
- "update (if available). NOTE This API is Alpha and has no " +
- "stability guarantees.",
- Hidden: true,
- Deprecated: false,
- }
-
- AlphaNetworkingNotReadyEndpoints = Instance{
- Name: "networking.alpha.istio.io/notReadyEndpoints",
- Description: "Added to synthetic ServiceEntry resources to provide the " +
- "'NotReadyAddresses' from the Kubernetes Endpoints " +
- "resource. The value is a comma-separated list of IP:port. " +
- "NOTE This API is Alpha and has no stability guarantees.",
- Hidden: true,
- Deprecated: false,
- }
-
- NetworkingExportTo = Instance{
- Name: "networking.istio.io/exportTo",
- Description: "Specifies the namespaces to which this service should be " +
- "exported to. A value of '*' indicates it is reachable " +
- "within the mesh '.' indicates it is reachable within its " +
- "namespace.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarInject = Instance{
- Name: "sidecar.istio.io/inject",
- Description: "Specifies whether or not an istio-proxy sidecar should be " +
- "automatically injected into the workload.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarStatus = Instance{
- Name: "sidecar.istio.io/status",
- Description: "Generated by istio-proxy sidecar injection that indicates " +
- "the status of the operation. Includes a version hash of " +
- "the executed template, as well as names of injected " +
- "resources.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarRewriteAppHTTPProbers = Instance{
- Name: "sidecar.istio.io/rewriteAppHTTPProbers",
- Description: "Rewrite HTTP readiness and liveness probes to be " +
- "redirected to istio-proxy sidecar.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarControlPlaneAuthPolicy = Instance{
- Name: "sidecar.istio.io/controlPlaneAuthPolicy",
- Description: "Specifies the auth policy used by the Istio control " +
- "plane. If NONE, traffic will not be encrypted. If " +
- "MUTUAL_TLS, traffic between istio-proxy sidecars will be " +
- "wrapped into mutual TLS connections.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarDiscoveryAddress = Instance{
- Name: "sidecar.istio.io/discoveryAddress",
- Description: "Specifies the XDS discovery address to be used by the " +
- "istio-proxy sidecar.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarProxyImage = Instance{
- Name: "sidecar.istio.io/proxyImage",
- Description: "Specifies the Docker image to be used by the istio-proxy " +
- "sidecar.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarProxyCPU = Instance{
- Name: "sidecar.istio.io/proxyCPU",
- Description: "Specifies the requested CPU setting for the istio-proxy " +
- "sidecar.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarProxyMemory = Instance{
- Name: "sidecar.istio.io/proxyMemory",
- Description: "Specifies the requested memory setting for the " +
- "istio-proxy sidecar.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarInterceptionMode = Instance{
- Name: "sidecar.istio.io/interceptionMode",
- Description: "Specifies the mode used to redirect inbound connections " +
- "to Envoy (REDIRECT or TPROXY).",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarBootstrapOverride = Instance{
- Name: "sidecar.istio.io/bootstrapOverride",
- Description: "Specifies an alternative Envoy bootstrap configuration " +
- "file.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarStatsInclusionPrefixes = Instance{
- Name: "sidecar.istio.io/statsInclusionPrefixes",
- Description: "Specifies the comma separated list of prefixes of the " +
- "stats to be emitted by Envoy.",
- Hidden: false,
- Deprecated: false,
- }
+// Instance describes a single resource annotation
+type Instance struct {
+ // The name of the annotation.
+ Name string
- SidecarStatsInclusionSuffixes = Instance{
- Name: "sidecar.istio.io/statsInclusionSuffixes",
- Description: "Specifies the comma separated list of suffixes of the " +
- "stats to be emitted by Envoy.",
- Hidden: false,
- Deprecated: false,
- }
+ // Description of the annotation.
+ Description string
- SidecarStatsInclusionRegexps = Instance{
- Name: "sidecar.istio.io/statsInclusionRegexps",
- Description: "Specifies the comma separated list of regexes the stats " +
- "should match to be emitted by Envoy.",
- Hidden: false,
- Deprecated: false,
- }
+ // Hide the existence of this annotation when outputting usage information.
+ Hidden bool
- SidecarUserVolume = Instance{
- Name: "sidecar.istio.io/userVolume",
- Description: "Specifies one or more user volumes (as a JSON array) to " +
- "be added to the istio-proxy sidecar.",
- Hidden: false,
- Deprecated: false,
- }
+ // Mark this annotation as deprecated when generating usage information.
+ Deprecated bool
+}
- SidecarUserVolumeMount = Instance{
- Name: "sidecar.istio.io/userVolumeMount",
- Description: "Specifies one or more user volume mounts (as a JSON " +
- "array) to be added to the istio-proxy sidecar.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarStatusPort = Instance{
- Name: "status.sidecar.istio.io/port",
- Description: "Specifies the HTTP status Port for the istio-proxy " +
- "sidecar. If zero, the istio-proxy will not provide " +
- "status.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarLogLevel = Instance{
- Name: "sidecar.istio.io/logLevel",
- Description: "Specifies the log level for Envoy.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarComponentLogLevel = Instance{
- Name: "sidecar.istio.io/componentLogLevel",
- Description: "Specifies the component log level for Envoy.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarStatusReadinessInitialDelaySeconds = Instance{
- Name: "readiness.status.sidecar.istio.io/initialDelaySeconds",
- Description: "Specifies the initial delay (in seconds) for the " +
- "istio-proxy readiness probe.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarStatusReadinessPeriodSeconds = Instance{
- Name: "readiness.status.sidecar.istio.io/periodSeconds",
- Description: "Specifies the period (in seconds) for the istio-proxy " +
- "readiness probe.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarStatusReadinessFailureThreshold = Instance{
- Name: "readiness.status.sidecar.istio.io/failureThreshold",
- Description: "Specifies the failure threshold for the istio-proxy " +
- "readiness probe.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarStatusReadinessApplicationPorts = Instance{
- Name: "readiness.status.sidecar.istio.io/applicationPorts",
- Description: "Specifies the list of ports exposed by the application " +
- "container. Used by the istio-proxy readiness probe to " +
- "determine that Envoy is configured and ready to receive " +
- "traffic.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarTrafficIncludeOutboundIPRanges = Instance{
- Name: "traffic.sidecar.istio.io/includeOutboundIPRanges",
- Description: "A comma separated list of IP ranges in CIDR form to " +
- "redirect to envoy (optional). The wildcard character '*' " +
- "can be used to redirect all outbound traffic. An empty " +
- "list will disable all outbound redirection.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarTrafficExcludeOutboundIPRanges = Instance{
- Name: "traffic.sidecar.istio.io/excludeOutboundIPRanges",
- Description: "A comma separated list of IP ranges in CIDR form to be " +
- "excluded from redirection. Only applies when all outbound " +
- "traffic (i.e. '*') is being redirected.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarTrafficIncludeInboundPorts = Instance{
- Name: "traffic.sidecar.istio.io/includeInboundPorts",
- Description: "A comma separated list of inbound ports for which traffic " +
- "is to be redirected to Envoy. The wildcard character '*' " +
- "can be used to configure redirection for all ports. An " +
- "empty list will disable all inbound redirection.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarTrafficExcludeInboundPorts = Instance{
- Name: "traffic.sidecar.istio.io/excludeInboundPorts",
- Description: "A comma separated list of inbound ports to be excluded " +
- "from redirection to Envoy. Only applies when all inbound " +
- "traffic (i.e. '*') is being redirected.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarTrafficExcludeOutboundPorts = Instance{
- Name: "traffic.sidecar.istio.io/excludeOutboundPorts",
- Description: "A comma separated list of outbound ports to be excluded " +
- "from redirection to Envoy.",
- Hidden: false,
- Deprecated: false,
- }
-
- SidecarTrafficKubevirtInterfaces = Instance{
- Name: "traffic.sidecar.istio.io/kubevirtInterfaces",
- Description: "A comma separated list of virtual interfaces whose " +
- "inbound traffic (from VM) will be treated as outbound.",
- Hidden: false,
- Deprecated: false,
- }
-
- PolicyLang = Instance{
- Name: "policy.istio.io/lang",
- Description: "Selects the attribute expression langauge runtime for " +
- "Mixer..",
- Hidden: false,
- Deprecated: false,
- }
-
- PolicyCheck = Instance{
- Name: "policy.istio.io/check",
- Description: "Determines the policy for behavior when unable to connect " +
- "to Mixer. If not set, FAIL_CLOSE is set, rejecting " +
- "requests.",
- Hidden: false,
- Deprecated: false,
- }
-
- PolicyCheckRetries = Instance{
- Name: "policy.istio.io/checkRetries",
- Description: "The maximum number of retries on transport errors to " +
- "Mixer. If not set, this will be 0, indicating no retries.",
- Hidden: false,
- Deprecated: false,
- }
-
- PolicyCheckBaseRetryWaitTime = Instance{
- Name: "policy.istio.io/checkBaseRetryWaitTime",
- Description: "Base time to wait between retries, will be adjusted by " +
- "backoff and jitter. In duration format. If not set, this " +
- "will be 80ms.",
- Hidden: false,
- Deprecated: false,
- }
-
- PolicyCheckMaxRetryWaitTime = Instance{
- Name: "policy.istio.io/checkMaxRetryWaitTime",
- Description: "Maximum time to wait between retries to Mixer. In " +
- "duration format. If not set, this will be 1000ms.",
- Hidden: false,
- Deprecated: false,
- }
-)
+var (
+
+ AlphaCanonicalServiceAccounts = Instance {
+ Name: "alpha.istio.io/canonical-serviceaccounts",
+ Description: "Specifies the non-Kubernetes service accounts that are "+
+ "allowed to run this service. NOTE This API is Alpha and "+
+ "has no stability guarantees.",
+ Hidden: true,
+ Deprecated: false,
+ }
+
+ AlphaIdentity = Instance {
+ Name: "alpha.istio.io/identity",
+ Description: "Identity for the workload. NOTE This API is Alpha and has "+
+ "no stability guarantees.",
+ Hidden: true,
+ Deprecated: false,
+ }
+
+ AlphaKubernetesServiceAccounts = Instance {
+ Name: "alpha.istio.io/kubernetes-serviceaccounts",
+ Description: "Specifies the Kubernetes service accounts that are "+
+ "allowed to run this service on the VMs. NOTE This API is "+
+ "Alpha and has no stability guarantees.",
+ Hidden: true,
+ Deprecated: false,
+ }
+
+ AlphaNetworkingEndpointsVersion = Instance {
+ Name: "networking.alpha.istio.io/endpointsVersion",
+ Description: "Added to synthetic ServiceEntry resources to provide the "+
+ "raw resource version from the most recent k8s Endpoints "+
+ "update (if available). NOTE This API is Alpha and has no "+
+ "stability guarantees.",
+ Hidden: true,
+ Deprecated: false,
+ }
+
+ AlphaNetworkingNotReadyEndpoints = Instance {
+ Name: "networking.alpha.istio.io/notReadyEndpoints",
+ Description: "Added to synthetic ServiceEntry resources to provide the "+
+ "'NotReadyAddresses' from the Kubernetes Endpoints "+
+ "resource. The value is a comma-separated list of IP:port. "+
+ "NOTE This API is Alpha and has no stability guarantees.",
+ Hidden: true,
+ Deprecated: false,
+ }
+
+ AlphaNetworkingServiceVersion = Instance {
+ Name: "networking.alpha.istio.io/serviceVersion",
+ Description: "Added to synthetic ServiceEntry resources to provide the "+
+ "raw resource version from the most recent k8s Service "+
+ "update. This will always be available for synthetic "+
+ "service entries. NOTE This API is Alpha and has no "+
+ "stability guarantees.",
+ Hidden: true,
+ Deprecated: false,
+ }
+
+ NetworkingExportTo = Instance {
+ Name: "networking.istio.io/exportTo",
+ Description: "Specifies the namespaces to which this service should be "+
+ "exported to. A value of '*' indicates it is reachable "+
+ "within the mesh '.' indicates it is reachable within its "+
+ "namespace.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ PolicyCheck = Instance {
+ Name: "policy.istio.io/check",
+ Description: "Determines the policy for behavior when unable to connect "+
+ "to Mixer. If not set, FAIL_CLOSE is set, rejecting "+
+ "requests.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ PolicyCheckBaseRetryWaitTime = Instance {
+ Name: "policy.istio.io/checkBaseRetryWaitTime",
+ Description: "Base time to wait between retries, will be adjusted by "+
+ "backoff and jitter. In duration format. If not set, this "+
+ "will be 80ms.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ PolicyCheckMaxRetryWaitTime = Instance {
+ Name: "policy.istio.io/checkMaxRetryWaitTime",
+ Description: "Maximum time to wait between retries to Mixer. In "+
+ "duration format. If not set, this will be 1000ms.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ PolicyCheckRetries = Instance {
+ Name: "policy.istio.io/checkRetries",
+ Description: "The maximum number of retries on transport errors to "+
+ "Mixer. If not set, this will be 0, indicating no retries.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ PolicyLang = Instance {
+ Name: "policy.istio.io/lang",
+ Description: "Selects the attribute expression langauge runtime for "+
+ "Mixer..",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarStatusReadinessApplicationPorts = Instance {
+ Name: "readiness.status.sidecar.istio.io/applicationPorts",
+ Description: "Specifies the list of ports exposed by the application "+
+ "container. Used by the istio-proxy readiness probe to "+
+ "determine that Envoy is configured and ready to receive "+
+ "traffic.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarStatusReadinessFailureThreshold = Instance {
+ Name: "readiness.status.sidecar.istio.io/failureThreshold",
+ Description: "Specifies the failure threshold for the istio-proxy "+
+ "readiness probe.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarStatusReadinessInitialDelaySeconds = Instance {
+ Name: "readiness.status.sidecar.istio.io/initialDelaySeconds",
+ Description: "Specifies the initial delay (in seconds) for the "+
+ "istio-proxy readiness probe.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarStatusReadinessPeriodSeconds = Instance {
+ Name: "readiness.status.sidecar.istio.io/periodSeconds",
+ Description: "Specifies the period (in seconds) for the istio-proxy "+
+ "readiness probe.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarBootstrapOverride = Instance {
+ Name: "sidecar.istio.io/bootstrapOverride",
+ Description: "Specifies an alternative Envoy bootstrap configuration "+
+ "file.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarComponentLogLevel = Instance {
+ Name: "sidecar.istio.io/componentLogLevel",
+ Description: "Specifies the component log level for Envoy.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarControlPlaneAuthPolicy = Instance {
+ Name: "sidecar.istio.io/controlPlaneAuthPolicy",
+ Description: "Specifies the auth policy used by the Istio control "+
+ "plane. If NONE, traffic will not be encrypted. If "+
+ "MUTUAL_TLS, traffic between istio-proxy sidecars will be "+
+ "wrapped into mutual TLS connections.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarDiscoveryAddress = Instance {
+ Name: "sidecar.istio.io/discoveryAddress",
+ Description: "Specifies the XDS discovery address to be used by the "+
+ "istio-proxy sidecar.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarInject = Instance {
+ Name: "sidecar.istio.io/inject",
+ Description: "Specifies whether or not an istio-proxy sidecar should be "+
+ "automatically injected into the workload.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarInterceptionMode = Instance {
+ Name: "sidecar.istio.io/interceptionMode",
+ Description: "Specifies the mode used to redirect inbound connections "+
+ "to Envoy (REDIRECT or TPROXY).",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarLogLevel = Instance {
+ Name: "sidecar.istio.io/logLevel",
+ Description: "Specifies the log level for Envoy.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarProxyCPU = Instance {
+ Name: "sidecar.istio.io/proxyCPU",
+ Description: "Specifies the requested CPU setting for the istio-proxy "+
+ "sidecar.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarProxyImage = Instance {
+ Name: "sidecar.istio.io/proxyImage",
+ Description: "Specifies the Docker image to be used by the istio-proxy "+
+ "sidecar.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarProxyMemory = Instance {
+ Name: "sidecar.istio.io/proxyMemory",
+ Description: "Specifies the requested memory setting for the "+
+ "istio-proxy sidecar.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarRewriteAppHTTPProbers = Instance {
+ Name: "sidecar.istio.io/rewriteAppHTTPProbers",
+ Description: "Rewrite HTTP readiness and liveness probes to be "+
+ "redirected to istio-proxy sidecar.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarStatsInclusionPrefixes = Instance {
+ Name: "sidecar.istio.io/statsInclusionPrefixes",
+ Description: "Specifies the comma separated list of prefixes of the "+
+ "stats to be emitted by Envoy.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarStatsInclusionRegexps = Instance {
+ Name: "sidecar.istio.io/statsInclusionRegexps",
+ Description: "Specifies the comma separated list of regexes the stats "+
+ "should match to be emitted by Envoy.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarStatsInclusionSuffixes = Instance {
+ Name: "sidecar.istio.io/statsInclusionSuffixes",
+ Description: "Specifies the comma separated list of suffixes of the "+
+ "stats to be emitted by Envoy.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarStatus = Instance {
+ Name: "sidecar.istio.io/status",
+ Description: "Generated by istio-proxy sidecar injection that indicates "+
+ "the status of the operation. Includes a version hash of "+
+ "the executed template, as well as names of injected "+
+ "resources.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarUserVolume = Instance {
+ Name: "sidecar.istio.io/userVolume",
+ Description: "Specifies one or more user volumes (as a JSON array) to "+
+ "be added to the istio-proxy sidecar.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarUserVolumeMount = Instance {
+ Name: "sidecar.istio.io/userVolumeMount",
+ Description: "Specifies one or more user volume mounts (as a JSON "+
+ "array) to be added to the istio-proxy sidecar.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarStatusPort = Instance {
+ Name: "status.sidecar.istio.io/port",
+ Description: "Specifies the HTTP status Port for the istio-proxy "+
+ "sidecar. If zero, the istio-proxy will not provide "+
+ "status.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarTrafficExcludeInboundPorts = Instance {
+ Name: "traffic.sidecar.istio.io/excludeInboundPorts",
+ Description: "A comma separated list of inbound ports to be excluded "+
+ "from redirection to Envoy. Only applies when all inbound "+
+ "traffic (i.e. '*') is being redirected.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarTrafficExcludeOutboundIPRanges = Instance {
+ Name: "traffic.sidecar.istio.io/excludeOutboundIPRanges",
+ Description: "A comma separated list of IP ranges in CIDR form to be "+
+ "excluded from redirection. Only applies when all outbound "+
+ "traffic (i.e. '*') is being redirected.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarTrafficExcludeOutboundPorts = Instance {
+ Name: "traffic.sidecar.istio.io/excludeOutboundPorts",
+ Description: "A comma separated list of outbound ports to be excluded "+
+ "from redirection to Envoy.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarTrafficIncludeInboundPorts = Instance {
+ Name: "traffic.sidecar.istio.io/includeInboundPorts",
+ Description: "A comma separated list of inbound ports for which traffic "+
+ "is to be redirected to Envoy. The wildcard character '*' "+
+ "can be used to configure redirection for all ports. An "+
+ "empty list will disable all inbound redirection.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarTrafficIncludeOutboundIPRanges = Instance {
+ Name: "traffic.sidecar.istio.io/includeOutboundIPRanges",
+ Description: "A comma separated list of IP ranges in CIDR form to "+
+ "redirect to envoy (optional). The wildcard character '*' "+
+ "can be used to redirect all outbound traffic. An empty "+
+ "list will disable all outbound redirection.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+ SidecarTrafficKubevirtInterfaces = Instance {
+ Name: "traffic.sidecar.istio.io/kubevirtInterfaces",
+ Description: "A comma separated list of virtual interfaces whose "+
+ "inbound traffic (from VM) will be treated as outbound.",
+ Hidden: false,
+ Deprecated: false,
+ }
+
+)
\ No newline at end of file
diff --git a/vendor/istio.io/api/annotation/annotations.pb.html b/vendor/istio.io/api/annotation/annotations.pb.html
new file mode 100644
index 000000000000..565bb8eb7372
--- /dev/null
+++ b/vendor/istio.io/api/annotation/annotations.pb.html
@@ -0,0 +1,340 @@
+---
+title: Resource Annotations
+description: Resource annotations used by Istio.
+location: https://istio.io/docs/reference/config/annotations.html
+weight: 29
+---
+
+This page presents the various resource annotations that
+Istio supports to control its behavior.
+
+
+
+
+
+ Annotation Name |
+ Description |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ networking.istio.io/exportTo |
+ Specifies the namespaces to which this service should be exported to. A value of '*' indicates it is reachable within the mesh '.' indicates it is reachable within its namespace. |
+
+
+
+
+
+
+
+ policy.istio.io/check |
+ Determines the policy for behavior when unable to connect to Mixer. If not set, FAIL_CLOSE is set, rejecting requests. |
+
+
+
+
+
+
+
+ policy.istio.io/checkBaseRetryWaitTime |
+ Base time to wait between retries, will be adjusted by backoff and jitter. In duration format. If not set, this will be 80ms. |
+
+
+
+
+
+
+
+ policy.istio.io/checkMaxRetryWaitTime |
+ Maximum time to wait between retries to Mixer. In duration format. If not set, this will be 1000ms. |
+
+
+
+
+
+
+
+ policy.istio.io/checkRetries |
+ The maximum number of retries on transport errors to Mixer. If not set, this will be 0, indicating no retries. |
+
+
+
+
+
+
+
+ policy.istio.io/lang |
+ Selects the attribute expression langauge runtime for Mixer.. |
+
+
+
+
+
+
+
+ readiness.status.sidecar.istio.io/applicationPorts |
+ Specifies the list of ports exposed by the application container. Used by the istio-proxy readiness probe to determine that Envoy is configured and ready to receive traffic. |
+
+
+
+
+
+
+
+ readiness.status.sidecar.istio.io/failureThreshold |
+ Specifies the failure threshold for the istio-proxy readiness probe. |
+
+
+
+
+
+
+
+ readiness.status.sidecar.istio.io/initialDelaySeconds |
+ Specifies the initial delay (in seconds) for the istio-proxy readiness probe. |
+
+
+
+
+
+
+
+ readiness.status.sidecar.istio.io/periodSeconds |
+ Specifies the period (in seconds) for the istio-proxy readiness probe. |
+
+
+
+
+
+
+
+ sidecar.istio.io/bootstrapOverride |
+ Specifies an alternative Envoy bootstrap configuration file. |
+
+
+
+
+
+
+
+ sidecar.istio.io/componentLogLevel |
+ Specifies the component log level for Envoy. |
+
+
+
+
+
+
+
+ sidecar.istio.io/controlPlaneAuthPolicy |
+ Specifies the auth policy used by the Istio control plane. If NONE, traffic will not be encrypted. If MUTUAL_TLS, traffic between istio-proxy sidecars will be wrapped into mutual TLS connections. |
+
+
+
+
+
+
+
+ sidecar.istio.io/discoveryAddress |
+ Specifies the XDS discovery address to be used by the istio-proxy sidecar. |
+
+
+
+
+
+
+
+ sidecar.istio.io/inject |
+ Specifies whether or not an istio-proxy sidecar should be automatically injected into the workload. |
+
+
+
+
+
+
+
+ sidecar.istio.io/interceptionMode |
+ Specifies the mode used to redirect inbound connections to Envoy (REDIRECT or TPROXY). |
+
+
+
+
+
+
+
+ sidecar.istio.io/logLevel |
+ Specifies the log level for Envoy. |
+
+
+
+
+
+
+
+ sidecar.istio.io/proxyCPU |
+ Specifies the requested CPU setting for the istio-proxy sidecar. |
+
+
+
+
+
+
+
+ sidecar.istio.io/proxyImage |
+ Specifies the Docker image to be used by the istio-proxy sidecar. |
+
+
+
+
+
+
+
+ sidecar.istio.io/proxyMemory |
+ Specifies the requested memory setting for the istio-proxy sidecar. |
+
+
+
+
+
+
+
+ sidecar.istio.io/rewriteAppHTTPProbers |
+ Rewrite HTTP readiness and liveness probes to be redirected to istio-proxy sidecar. |
+
+
+
+
+
+
+
+ sidecar.istio.io/statsInclusionPrefixes |
+ Specifies the comma separated list of prefixes of the stats to be emitted by Envoy. |
+
+
+
+
+
+
+
+ sidecar.istio.io/statsInclusionRegexps |
+ Specifies the comma separated list of regexes the stats should match to be emitted by Envoy. |
+
+
+
+
+
+
+
+ sidecar.istio.io/statsInclusionSuffixes |
+ Specifies the comma separated list of suffixes of the stats to be emitted by Envoy. |
+
+
+
+
+
+
+
+ sidecar.istio.io/status |
+ Generated by istio-proxy sidecar injection that indicates the status of the operation. Includes a version hash of the executed template, as well as names of injected resources. |
+
+
+
+
+
+
+
+ sidecar.istio.io/userVolume |
+ Specifies one or more user volumes (as a JSON array) to be added to the istio-proxy sidecar. |
+
+
+
+
+
+
+
+ sidecar.istio.io/userVolumeMount |
+ Specifies one or more user volume mounts (as a JSON array) to be added to the istio-proxy sidecar. |
+
+
+
+
+
+
+
+ status.sidecar.istio.io/port |
+ Specifies the HTTP status Port for the istio-proxy sidecar. If zero, the istio-proxy will not provide status. |
+
+
+
+
+
+
+
+ traffic.sidecar.istio.io/excludeInboundPorts |
+ A comma separated list of inbound ports to be excluded from redirection to Envoy. Only applies when all inbound traffic (i.e. '*') is being redirected. |
+
+
+
+
+
+
+
+ traffic.sidecar.istio.io/excludeOutboundIPRanges |
+ A comma separated list of IP ranges in CIDR form to be excluded from redirection. Only applies when all outbound traffic (i.e. '*') is being redirected. |
+
+
+
+
+
+
+
+ traffic.sidecar.istio.io/excludeOutboundPorts |
+ A comma separated list of outbound ports to be excluded from redirection to Envoy. |
+
+
+
+
+
+
+
+ traffic.sidecar.istio.io/includeInboundPorts |
+ A comma separated list of inbound ports for which traffic is to be redirected to Envoy. The wildcard character '*' can be used to configure redirection for all ports. An empty list will disable all inbound redirection. |
+
+
+
+
+
+
+
+ traffic.sidecar.istio.io/includeOutboundIPRanges |
+ A comma separated list of IP ranges in CIDR form to redirect to envoy (optional). The wildcard character '*' can be used to redirect all outbound traffic. An empty list will disable all outbound redirection. |
+
+
+
+
+
+
+
+ traffic.sidecar.istio.io/kubevirtInterfaces |
+ A comma separated list of virtual interfaces whose inbound traffic (from VM) will be treated as outbound. |
+
+
+
+
+
diff --git a/vendor/istio.io/api/annotation/instance.go b/vendor/istio.io/api/annotation/instance.go
deleted file mode 100644
index 9b4418da0441..000000000000
--- a/vendor/istio.io/api/annotation/instance.go
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright 2019 Istio Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package annotation
-
-// Instance describes a single resource annotation
-type Instance struct {
- // The name of the annotation.
- Name string `json:"name"`
-
- // Description of the annotation.
- Description string `json:"description"`
-
- // Hide the existence of this annotation when outputting usage information.
- Hidden bool `json:"hidden"`
-
- // Mark this annotation as deprecated when generating usage information.
- Deprecated bool `json:"deprecated"`
-}
diff --git a/vendor/istio.io/api/authentication/v1alpha1/istio.authentication.v1alpha1.json b/vendor/istio.io/api/authentication/v1alpha1/istio.authentication.v1alpha1.json
new file mode 100644
index 000000000000..b3800741e46a
--- /dev/null
+++ b/vendor/istio.io/api/authentication/v1alpha1/istio.authentication.v1alpha1.json
@@ -0,0 +1,278 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Authentication policy for Istio services.",
+ "version": "v1alpha1"
+ },
+ "components": {
+ "schemas": {
+ "istio.authentication.v1alpha1.StringMatch": {
+ "description": "Describes how to match a given string. Match is case-sensitive.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "exact": {
+ "description": "exact string match.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "prefix": {
+ "description": "prefix-based match.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "suffix": {
+ "description": "suffix-based match.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "regex": {
+ "description": "ECMAscript style regex-based match as defined by [EDCA-262]( http://en.cppreference.com/w/cpp/regex/ecmascript). Example: \"^/pets/(.*?)?\"",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ ]
+ },
+ "istio.authentication.v1alpha1.MutualTls": {
+ "description": "TLS authentication params.",
+ "type": "object",
+ "properties": {
+ "allowTls": {
+ "description": "WILL BE DEPRECATED, if set, will translates to `TLS_PERMISSIVE` mode. Set this flag to true to allow regular TLS (i.e without client x509 certificate). If request carries client certificate, identity will be extracted and used (set to peer identity). Otherwise, peer identity will be left unset. When the flag is false (default), request must have client certificate.",
+ "type": "boolean"
+ },
+ "mode": {
+ "$ref": "#/components/schemas/istio.authentication.v1alpha1.MutualTls.Mode"
+ }
+ }
+ },
+ "istio.authentication.v1alpha1.MutualTls.Mode": {
+ "description": "Defines the acceptable connection TLS mode.",
+ "enum": [
+ "STRICT",
+ "PERMISSIVE"
+ ],
+ "default": "STRICT"
+ },
+ "istio.authentication.v1alpha1.Jwt": {
+ "description": "JSON Web Token (JWT) token format for authentication as defined by [RFC 7519](https://tools.ietf.org/html/rfc7519). See [OAuth 2.0](https://tools.ietf.org/html/rfc6749) and [OIDC 1.0](http://openid.net/connect) for how this is used in the whole authentication flow.",
+ "type": "object",
+ "properties": {
+ "issuer": {
+ "description": "Identifies the issuer that issued the JWT. See [issuer](https://tools.ietf.org/html/rfc7519#section-4.1.1) Usually a URL or an email address.",
+ "type": "string",
+ "format": "string"
+ },
+ "audiences": {
+ "description": "The list of JWT [audiences](https://tools.ietf.org/html/rfc7519#section-4.1.3). that are allowed to access. A JWT containing any of these audiences will be accepted.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "jwksUri": {
+ "description": "URL of the provider's public key set to validate signature of the JWT. See [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).",
+ "type": "string",
+ "format": "string"
+ },
+ "jwks": {
+ "description": "JSON Web Key Set of public keys to validate signature of the JWT. See https://auth0.com/docs/jwks.",
+ "type": "string",
+ "format": "string"
+ },
+ "jwtHeaders": {
+ "description": "JWT is sent in a request header. `header` represents the header name.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "jwtParams": {
+ "description": "JWT is sent in a query parameter. `query` represents the query parameter name.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "triggerRules": {
+ "description": "List of trigger rules to decide if this JWT should be used to validate the request. The JWT validation happens if any one of the rules matched. If the list is not empty and none of the rules matched, authentication will skip the JWT validation. Leave this empty to always trigger the JWT validation.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.authentication.v1alpha1.Jwt.TriggerRule"
+ }
+ }
+ }
+ },
+ "istio.authentication.v1alpha1.Jwt.TriggerRule": {
+ "description": "Trigger rule to match against a request. The trigger rule is satisfied if and only if both rules, excluded_paths and include_paths are satisfied.",
+ "type": "object",
+ "properties": {
+ "excludedPaths": {
+ "description": "List of paths to be excluded from the request. The rule is satisfied if request path does not match to any of the path in this list.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.authentication.v1alpha1.StringMatch"
+ }
+ },
+ "includedPaths": {
+ "description": "List of paths that the request must include. If the list is not empty, the rule is satisfied if request path matches at least one of the path in the list. If the list is empty, the rule is ignored, in other words the rule is always satisfied.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.authentication.v1alpha1.StringMatch"
+ }
+ }
+ }
+ },
+ "istio.authentication.v1alpha1.PeerAuthenticationMethod": {
+ "description": "PeerAuthenticationMethod defines one particular type of authentication, e.g mutual TLS, JWT etc, (no authentication is one type by itself) that can be used for peer authentication. The type can be progammatically determine by checking the type of the \"params\" field.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "mtls": {
+ "$ref": "#/components/schemas/istio.authentication.v1alpha1.MutualTls"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "jwt": {
+ "$ref": "#/components/schemas/istio.authentication.v1alpha1.Jwt"
+ }
+ }
+ }
+ ]
+ },
+ "istio.authentication.v1alpha1.OriginAuthenticationMethod": {
+ "description": "OriginAuthenticationMethod defines authentication method/params for origin authentication. Origin could be end-user, device, delegate service etc. Currently, only JWT is supported for origin authentication.",
+ "type": "object",
+ "properties": {
+ "jwt": {
+ "$ref": "#/components/schemas/istio.authentication.v1alpha1.Jwt"
+ }
+ }
+ },
+ "istio.authentication.v1alpha1.PrincipalBinding": {
+ "description": "Associates authentication with request principal.",
+ "enum": [
+ "USE_PEER",
+ "USE_ORIGIN"
+ ],
+ "default": "USE_PEER"
+ },
+ "istio.authentication.v1alpha1.Policy": {
+ "description": "Policy defines what authentication methods can be accepted on workload(s), and if authenticated, which method/certificate will set the request principal (i.e request.auth.principal attribute).",
+ "type": "object",
+ "properties": {
+ "targets": {
+ "description": "List rules to select workloads that the policy should be applied on. If empty, policy will be used on all workloads in the same namespace.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.authentication.v1alpha1.TargetSelector"
+ }
+ },
+ "peers": {
+ "description": "List of authentication methods that can be used for peer authentication. They will be evaluated in order; the first validate one will be used to set peer identity (source.user) and other peer attributes. If none of these methods pass, request will be rejected with authentication failed error (401). Leave the list empty if peer authentication is not required",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.authentication.v1alpha1.PeerAuthenticationMethod"
+ }
+ },
+ "peerIsOptional": {
+ "description": "Set this flag to true to accept request (for peer authentication perspective), even when none of the peer authentication methods defined above satisfied. Typically, this is used to delay the rejection decision to next layer (e.g authorization). This flag is ignored if no authentication defined for peer (peers field is empty).",
+ "type": "boolean"
+ },
+ "origins": {
+ "description": "List of authentication methods that can be used for origin authentication. Similar to peers, these will be evaluated in order; the first validate one will be used to set origin identity and attributes (i.e request.auth.user, request.auth.issuer etc). If none of these methods pass, request will be rejected with authentication failed error (401). A method may be skipped, depends on its trigger rule. If all of these methods are skipped, origin authentication will be ignored, as if it is not defined. Leave the list empty if origin authentication is not required.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.authentication.v1alpha1.OriginAuthenticationMethod"
+ }
+ },
+ "originIsOptional": {
+ "description": "Set this flag to true to accept request (for origin authentication perspective), even when none of the origin authentication methods defined above satisfied. Typically, this is used to delay the rejection decision to next layer (e.g authorization). This flag is ignored if no authentication defined for origin (origins field is empty).",
+ "type": "boolean"
+ },
+ "principalBinding": {
+ "$ref": "#/components/schemas/istio.authentication.v1alpha1.PrincipalBinding"
+ }
+ }
+ },
+ "istio.authentication.v1alpha1.TargetSelector": {
+ "description": "TargetSelector defines a matching rule to a workload. A workload is selected if it is associated with the service name and service port(s) specified in the selector rule.",
+ "type": "object",
+ "required": [
+ "labels"
+ ],
+ "properties": {
+ "name": {
+ "description": "REQUIRED. The name must be a short name from the service registry. The fully qualified domain name will be resolved in a platform specific manner.",
+ "type": "string",
+ "format": "string"
+ },
+ "labels": {
+ "description": "Select workload by labels. Once implemented, this is the preferred way rather than using the service name.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "ports": {
+ "description": "Specifies the ports. Note that this is the port(s) exposed by the service, not workload instance ports. For example, if a service is defined as below, then `8000` should be used, not `9000`. ```yaml kind: Service metadata: ... spec: ports: - name: http port: 8000 targetPort: 9000 selector: app: backend ``` Leave empty to match all ports that are exposed.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.authentication.v1alpha1.PortSelector"
+ }
+ }
+ }
+ },
+ "istio.authentication.v1alpha1.PortSelector": {
+ "description": "PortSelector specifies the name or number of a port to be used for matching targets for authentication policy. This is copied from networking API to avoid dependency.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "number": {
+ "description": "Valid port number",
+ "type": "integer"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Port name",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/vendor/istio.io/api/authentication/v1alpha1/policy.pb.go b/vendor/istio.io/api/authentication/v1alpha1/policy.pb.go
index 644e55b6ea6c..4589d0fd434f 100644
--- a/vendor/istio.io/api/authentication/v1alpha1/policy.pb.go
+++ b/vendor/istio.io/api/authentication/v1alpha1/policy.pb.go
@@ -1330,9 +1330,9 @@ func (m *StringMatch) MarshalTo(dAtA []byte) (int, error) {
var l int
_ = l
if m.MatchType != nil {
- nn1, err1 := m.MatchType.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ nn1, err := m.MatchType.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn1
}
@@ -1567,9 +1567,9 @@ func (m *PeerAuthenticationMethod) MarshalTo(dAtA []byte) (int, error) {
var l int
_ = l
if m.Params != nil {
- nn2, err2 := m.Params.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ nn2, err := m.Params.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn2
}
@@ -1585,9 +1585,9 @@ func (m *PeerAuthenticationMethod_Mtls) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintPolicy(dAtA, i, uint64(m.Mtls.Size()))
- n3, err3 := m.Mtls.MarshalTo(dAtA[i:])
- if err3 != nil {
- return 0, err3
+ n3, err := m.Mtls.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n3
}
@@ -1599,9 +1599,9 @@ func (m *PeerAuthenticationMethod_Jwt) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintPolicy(dAtA, i, uint64(m.Jwt.Size()))
- n4, err4 := m.Jwt.MarshalTo(dAtA[i:])
- if err4 != nil {
- return 0, err4
+ n4, err := m.Jwt.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n4
}
@@ -1626,9 +1626,9 @@ func (m *OriginAuthenticationMethod) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintPolicy(dAtA, i, uint64(m.Jwt.Size()))
- n5, err5 := m.Jwt.MarshalTo(dAtA[i:])
- if err5 != nil {
- return 0, err5
+ n5, err := m.Jwt.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n5
}
@@ -1792,9 +1792,9 @@ func (m *PortSelector) MarshalTo(dAtA []byte) (int, error) {
var l int
_ = l
if m.Port != nil {
- nn6, err6 := m.Port.MarshalTo(dAtA[i:])
- if err6 != nil {
- return 0, err6
+ nn6, err := m.Port.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn6
}
diff --git a/vendor/istio.io/api/envoy/config/filter/http/authn/v2alpha1/config.pb.go b/vendor/istio.io/api/envoy/config/filter/http/authn/v2alpha1/config.pb.go
index 6b24c0dc1572..f2bce73daf20 100644
--- a/vendor/istio.io/api/envoy/config/filter/http/authn/v2alpha1/config.pb.go
+++ b/vendor/istio.io/api/envoy/config/filter/http/authn/v2alpha1/config.pb.go
@@ -152,9 +152,9 @@ func (m *FilterConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintConfig(dAtA, i, uint64(m.Policy.Size()))
- n1, err1 := m.Policy.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := m.Policy.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
}
diff --git a/vendor/istio.io/api/envoy/config/filter/http/jwt_auth/v2alpha1/config.pb.go b/vendor/istio.io/api/envoy/config/filter/http/jwt_auth/v2alpha1/config.pb.go
index 797bd84d5687..d05358fc7eaf 100644
--- a/vendor/istio.io/api/envoy/config/filter/http/jwt_auth/v2alpha1/config.pb.go
+++ b/vendor/istio.io/api/envoy/config/filter/http/jwt_auth/v2alpha1/config.pb.go
@@ -894,9 +894,9 @@ func (m *HttpUri) MarshalTo(dAtA []byte) (int, error) {
i += copy(dAtA[i:], m.Uri)
}
if m.HttpUpstreamType != nil {
- nn1, err1 := m.HttpUpstreamType.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ nn1, err := m.HttpUpstreamType.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn1
}
@@ -904,9 +904,9 @@ func (m *HttpUri) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintConfig(dAtA, i, uint64(m.Timeout.Size()))
- n2, err2 := m.Timeout.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := m.Timeout.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
}
@@ -940,9 +940,9 @@ func (m *DataSource) MarshalTo(dAtA []byte) (int, error) {
var l int
_ = l
if m.Specifier != nil {
- nn3, err3 := m.Specifier.MarshalTo(dAtA[i:])
- if err3 != nil {
- return 0, err3
+ nn3, err := m.Specifier.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn3
}
@@ -1015,9 +1015,9 @@ func (m *JwtRule) MarshalTo(dAtA []byte) (int, error) {
}
}
if m.JwksSourceSpecifier != nil {
- nn4, err4 := m.JwksSourceSpecifier.MarshalTo(dAtA[i:])
- if err4 != nil {
- return 0, err4
+ nn4, err := m.JwksSourceSpecifier.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn4
}
@@ -1076,9 +1076,9 @@ func (m *JwtRule_RemoteJwks) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintConfig(dAtA, i, uint64(m.RemoteJwks.Size()))
- n5, err5 := m.RemoteJwks.MarshalTo(dAtA[i:])
- if err5 != nil {
- return 0, err5
+ n5, err := m.RemoteJwks.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n5
}
@@ -1090,9 +1090,9 @@ func (m *JwtRule_LocalJwks) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x22
i++
i = encodeVarintConfig(dAtA, i, uint64(m.LocalJwks.Size()))
- n6, err6 := m.LocalJwks.MarshalTo(dAtA[i:])
- if err6 != nil {
- return 0, err6
+ n6, err := m.LocalJwks.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n6
}
@@ -1117,9 +1117,9 @@ func (m *RemoteJwks) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintConfig(dAtA, i, uint64(m.HttpUri.Size()))
- n7, err7 := m.HttpUri.MarshalTo(dAtA[i:])
- if err7 != nil {
- return 0, err7
+ n7, err := m.HttpUri.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n7
}
@@ -1127,9 +1127,9 @@ func (m *RemoteJwks) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintConfig(dAtA, i, uint64(m.CacheDuration.Size()))
- n8, err8 := m.CacheDuration.MarshalTo(dAtA[i:])
- if err8 != nil {
- return 0, err8
+ n8, err := m.CacheDuration.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n8
}
diff --git a/vendor/istio.io/api/mcp/v1alpha1/istio.mcp.v1alpha1.json b/vendor/istio.io/api/mcp/v1alpha1/istio.mcp.v1alpha1.json
new file mode 100644
index 000000000000..fc45166d9b87
--- /dev/null
+++ b/vendor/istio.io/api/mcp/v1alpha1/istio.mcp.v1alpha1.json
@@ -0,0 +1,314 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "This package defines the common, core types used by the Mesh Configuration Protocol.",
+ "version": "v1alpha1"
+ },
+ "components": {
+ "schemas": {
+ "istio.mcp.v1alpha1.SinkNode": {
+ "description": "Identifies a specific MCP sink node instance. The node identifier is presented to the resource source, which may use this identifier to distinguish per sink configuration for serving. This information is not authoritative. Authoritative identity should come from the underlying transport layer (e.g. rpc credentials).",
+ "type": "object",
+ "required": [
+ "annotations"
+ ],
+ "properties": {
+ "id": {
+ "description": "An opaque identifier for the MCP node.",
+ "type": "string",
+ "format": "string"
+ },
+ "annotations": {
+ "description": "Opaque annotations extending the node identifier.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.mcp.v1alpha1.MeshConfigRequest": {
+ "description": "A MeshConfigRequest requests a set of versioned resources of the same type for a given client.",
+ "type": "object",
+ "properties": {
+ "typeUrl": {
+ "description": "Type of the resource that is being requested, e.g. \"type.googleapis.com/istio.io.networking.v1alpha3.VirtualService\".",
+ "type": "string",
+ "format": "string"
+ },
+ "versionInfo": {
+ "description": "The version_info provided in the request messages will be the version_info received with the most recent successfully processed response or empty on the first request. It is expected that no new request is sent after a response is received until the client instance is ready to ACK/NACK the new configuration. ACK/NACK takes place by returning the new API config version as applied or the previous API config version respectively. Each type_url (see below) has an independent version associated with it.",
+ "type": "string",
+ "format": "string"
+ },
+ "sinkNode": {
+ "$ref": "#/components/schemas/istio.mcp.v1alpha1.SinkNode"
+ },
+ "responseNonce": {
+ "description": "The nonce corresponding to MeshConfigResponse being ACK/NACKed. See above discussion on version_info and the MeshConfigResponse nonce comment. This may be empty if no nonce is available, e.g. at startup.",
+ "type": "string",
+ "format": "string"
+ },
+ "errorDetail": {
+ "$ref": "#/components/schemas/google.rpc.Status"
+ }
+ }
+ },
+ "istio.mcp.v1alpha1.MeshConfigResponse": {
+ "description": "A MeshConfigResponse delivers a set of versioned resources of the same type in response to a MeshConfigRequest.",
+ "type": "object",
+ "properties": {
+ "typeUrl": {
+ "description": "Type URL for resources wrapped in the provided resources(s). This must be consistent with the type_url in the wrapper messages if resources is non-empty.",
+ "type": "string",
+ "format": "string"
+ },
+ "versionInfo": {
+ "description": "The version of the response data.",
+ "type": "string",
+ "format": "string"
+ },
+ "nonce": {
+ "description": "The nonce provides a way to explicitly ack a specific MeshConfigResponse in a following MeshConfigRequest. Additional messages may have been sent by client to the management server for the previous version on the stream prior to this MeshConfigResponse, that were unprocessed at response send time. The nonce allows the management server to ignore any further MeshConfigRequests for the previous version until a MeshConfigRequest bearing the nonce.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.mcp.v1alpha1.IncrementalMeshConfigRequest": {
+ "description": "IncrementalMeshConfigRequest are be sent in 2 situations: 1. Initial message in a MCP bidirectional gRPC stream.",
+ "type": "object",
+ "required": [
+ "initialResourceVersions"
+ ],
+ "properties": {
+ "typeUrl": {
+ "description": "Type of the resource that is being requested, e.g. \"type.googleapis.com/istio.io.networking.v1alpha3.VirtualService\".",
+ "type": "string",
+ "format": "string"
+ },
+ "sinkNode": {
+ "$ref": "#/components/schemas/istio.mcp.v1alpha1.SinkNode"
+ },
+ "responseNonce": {
+ "description": "When the IncrementalMeshConfigRequest is a ACK or NACK message in response to a previous IncrementalMeshConfigResponse, the response_nonce must be the nonce in the IncrementalMeshConfigResponse. Otherwise response_nonce must be omitted.",
+ "type": "string",
+ "format": "string"
+ },
+ "errorDetail": {
+ "$ref": "#/components/schemas/google.rpc.Status"
+ },
+ "initialResourceVersions": {
+ "description": "When the IncrementalMeshConfigRequest is the first in a stream, the initial_resource_versions must be populated. Otherwise, initial_resource_versions must be omitted. The keys are the resources names of the MCP resources known to the MCP client. The values in the map are the associated resource level version info.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.mcp.v1alpha1.IncrementalMeshConfigResponse": {
+ "description": "IncrementalMeshConfigResponses do not need to include a full snapshot of the tracked resources. Instead they are a diff to the state of a MCP client. Per resource versions allow servers and clients to track state at the resource granularity. An MCP incremental session is always in the context of a gRPC bidirectional stream. This allows the MCP server to keep track of the state of MCP clients connected to it.",
+ "type": "object",
+ "properties": {
+ "nonce": {
+ "description": "The nonce provides a way for IncrementalMeshConfigRequests to uniquely reference an IncrementalMeshConfigResponse. The nonce is required.",
+ "type": "string",
+ "format": "string"
+ },
+ "systemVersionInfo": {
+ "description": "The version of the response data (used for debugging).",
+ "type": "string",
+ "format": "string"
+ },
+ "removedResources": {
+ "description": "Resources names of resources that have be deleted and to be removed from the MCP Client. Removed resources for missing resources can be ignored.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.mcp.v1alpha1.RequestResources": {
+ "description": "A RequestResource can be sent in two situations: Initial message in an MCP bidirectional change stream as an ACK or NACK response to a previous Resources. In this case the response_nonce is set to the nonce value in the Resources. ACK/NACK is determined by the presence of error_detail.",
+ "type": "object",
+ "required": [
+ "initialResourceVersions"
+ ],
+ "properties": {
+ "sinkNode": {
+ "$ref": "#/components/schemas/istio.mcp.v1alpha1.SinkNode"
+ },
+ "responseNonce": {
+ "description": "When the RequestResources is an ACK or NACK message in response to a previous RequestResources, the response_nonce must be the nonce in the RequestResources. Otherwise response_nonce must be omitted.",
+ "type": "string",
+ "format": "string"
+ },
+ "errorDetail": {
+ "$ref": "#/components/schemas/google.rpc.Status"
+ },
+ "initialResourceVersions": {
+ "description": "When the RequestResources is the first in a stream, the initial_resource_versions must be populated. Otherwise, initial_resource_versions must be omitted. The keys are the resources names of the MCP resources known to the MCP client. The values in the map are the associated resource level version info.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "collection": {
+ "description": "Type of resource collection that is being requested, e.g.",
+ "type": "string",
+ "format": "string"
+ },
+ "incremental": {
+ "description": "Request an incremental update for the specified collection. The source may choose to honor this request or ignore and and provide a full-state update in the corresponding `Resource` response.",
+ "type": "boolean"
+ }
+ }
+ },
+ "istio.mcp.v1alpha1.Resources": {
+ "description": "Resources do not need to include a full snapshot of the tracked resources. Instead they are a diff to the state of a MCP client. Per resource versions allow sources and sinks to track state at the resource granularity. An MCP incremental session is always in the context of a gRPC bidirectional stream. This allows the MCP source to keep track of the state of MCP sink connected to it.",
+ "type": "object",
+ "properties": {
+ "nonce": {
+ "description": "Required. The nonce provides a way for RequestChange to uniquely reference a RequestResources.",
+ "type": "string",
+ "format": "string"
+ },
+ "systemVersionInfo": {
+ "description": "The version of the response data (used for debugging).",
+ "type": "string",
+ "format": "string"
+ },
+ "removedResources": {
+ "description": "Names of resources that have been deleted and to be removed from the MCP sink node. Removed resources for missing resources can be ignored.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "collection": {
+ "description": "Type of resource collection that is being requested, e.g.",
+ "type": "string",
+ "format": "string"
+ },
+ "incremental": {
+ "description": "This resource response is an incremental update. The source should only send incremental updates if the sink requested them.",
+ "type": "boolean"
+ }
+ }
+ },
+ "istio.mcp.v1alpha1.Metadata": {
+ "description": "Metadata information that all resources within the Mesh Configuration Protocol must have.",
+ "type": "object",
+ "required": [
+ "annotations",
+ "labels"
+ ],
+ "properties": {
+ "name": {
+ "description": "Fully qualified name of the resource. Unique in context of a collection.",
+ "type": "string",
+ "format": "string"
+ },
+ "annotations": {
+ "description": "Map of string keys and values that can be used by source and sink to communicate arbitrary metadata about this resource.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "createTime": {
+ "$ref": "#/components/schemas/google.protobuf.Timestamp"
+ },
+ "version": {
+ "description": "Resource version. This is used to determine when resources change across resource updates. It should be treated as opaque by consumers/sinks.",
+ "type": "string",
+ "format": "string"
+ },
+ "labels": {
+ "description": "Map of string keys and values that can be used to organize and categorize resources within a collection.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.mcp.v1alpha1.Resource": {
+ "description": "Resource as transferred via the Mesh Configuration Protocol. Each resource is made up of common metadata, and a type-specific resource payload.",
+ "type": "object",
+ "properties": {
+ "body": {
+ "$ref": "#/components/schemas/google.protobuf.Any"
+ },
+ "metadata": {
+ "$ref": "#/components/schemas/istio.mcp.v1alpha1.Metadata"
+ }
+ }
+ },
+ "google.protobuf.Any": {
+ "description": "The primary payload for the resource.",
+ "type": "object",
+ "properties": {
+ "typeUrl": {
+ "description": "A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one \"/\" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading \".\" is not accepted).",
+ "type": "string",
+ "format": "string"
+ },
+ "value": {
+ "description": "Must be a valid serialized protocol buffer of the above specified type.",
+ "type": "string",
+ "format": "byte"
+ }
+ }
+ },
+ "google.protobuf.Timestamp": {
+ "description": "The creation timestamp of the resource.",
+ "type": "object",
+ "properties": {
+ "seconds": {
+ "description": "Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.",
+ "type": "integer",
+ "format": "int64"
+ },
+ "nanos": {
+ "description": "Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "google.rpc.Status": {
+ "description": "This is populated when the previously received resources could not be applied The *message* field in *error_details* provides the source internal error related to the failure.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].",
+ "type": "integer",
+ "format": "int32"
+ },
+ "message": {
+ "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.",
+ "type": "string",
+ "format": "string"
+ },
+ "details": {
+ "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/google.protobuf.Any"
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/vendor/istio.io/api/mcp/v1alpha1/istio.mcp.v1alpha1.pb.html b/vendor/istio.io/api/mcp/v1alpha1/istio.mcp.v1alpha1.pb.html
deleted file mode 100644
index f1ca9c746ef9..000000000000
--- a/vendor/istio.io/api/mcp/v1alpha1/istio.mcp.v1alpha1.pb.html
+++ /dev/null
@@ -1,764 +0,0 @@
----
-title: istio.mcp.v1alpha1
-layout: protoc-gen-docs
-generator: protoc-gen-docs
-number_of_entries: 13
----
-This package defines the common, core types used by the Mesh Configuration Protocol.
-
-Services
-AggregatedMeshConfigService
-
-The aggregated mesh configuration services allow a single
-management server, via a single gRPC stream, to deliver all API
-updates.
-
-rpc StreamAggregatedResources(MeshConfigRequest) returns (MeshConfigResponse)
-
-StreamAggregatedResources provides the ability to carefully
-sequence updates across multiple resource types. A single stream
-is used with multiple independent MeshConfigRequest /
-MeshConfigResponses sequences multiplexed via the type URL.
-
-rpc IncrementalAggregatedResources(IncrementalMeshConfigRequest) returns (IncrementalMeshConfigResponse)
-
-IncrementalAggregatedResources provides the ability to incrementally
-update the resources on the client. This supports the goal of
-scalability of MCP resources.
-
-
-ResourceSink
-
-Service where the source is the gRPC client. The source is responsible for
-initiating connections and opening streams.
-
-rpc EstablishResourceStream(Resources) returns (RequestResources)
-
-The source, acting as gRPC client, establishes a new resource stream
-with the sink. The sink sends RequestResources message to and
-receives Resources messages from the source.
-
-
-ResourceSource
-
-Service where the sink is the gRPC client. The sink is responsible for
-initiating connections and opening streams.
-
-rpc EstablishResourceStream(RequestResources) returns (Resources)
-
-The sink, acting as gRPC client, establishes a new resource stream
-with the source. The sink sends RequestResources message to
-and receives Resources messages from the source.
-
-
-Types
-IncrementalMeshConfigRequest
-
-IncrementalMeshConfigRequest are be sent in 2 situations:
-
-
-Initial message in a MCP bidirectional gRPC stream.
-
-As a ACK or NACK response to a previous IncrementalMeshConfigResponse.
- In this case the responsenonce is set to the nonce value in the Response.
- ACK or NACK is determined by the absence or presence of errordetail.
-
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-sinkNode |
-SinkNode |
-
- The sink node making the request.
-
- |
-
-
-typeUrl |
-string |
-
- Type of the resource that is being requested, e.g.
-“type.googleapis.com/istio.io.networking.v1alpha3.VirtualService”.
-
- |
-
-
-initialResourceVersions |
-map<string, string> |
-
- When the IncrementalMeshConfigRequest is the first in a stream,
-the initialresourceversions must be populated. Otherwise,
-initialresourceversions must be omitted. The keys are the
-resources names of the MCP resources known to the MCP client. The
-values in the map are the associated resource level version info.
-
- |
-
-
-responseNonce |
-string |
-
- When the IncrementalMeshConfigRequest is a ACK or NACK message in response
-to a previous IncrementalMeshConfigResponse, the responsenonce must be the
-nonce in the IncrementalMeshConfigResponse.
-Otherwise responsenonce must be omitted.
-
- |
-
-
-errorDetail |
-google.rpc.Status |
-
- This is populated when the previous IncrementalMeshConfigResponses
-failed to update configuration. The message field in error_details
-provides the client internal exception related to the failure.
-
- |
-
-
-
-
-IncrementalMeshConfigResponse
-
-IncrementalMeshConfigResponses do not need to include a full
-snapshot of the tracked resources. Instead they are a diff to the
-state of a MCP client. Per resource versions allow servers and
-clients to track state at the resource granularity. An MCP
-incremental session is always in the context of a gRPC
-bidirectional stream. This allows the MCP server to keep track of
-the state of MCP clients connected to it.
-
-In Incremental MCP the nonce field is required and used to pair
-IncrementalMeshConfigResponse to an IncrementalMeshConfigRequest
-ACK or NACK. Optionally, a response message level
-systemversioninfo is present for debugging purposes only.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-systemVersionInfo |
-string |
-
- The version of the response data (used for debugging).
-
- |
-
-
-resources |
-Resource[] |
-
- The response resources wrapped in the common MCP Resource
-message. These are typed resources that match the type url in the
-IncrementalMeshConfigRequest.
-
- |
-
-
-removedResources |
-string[] |
-
- Resources names of resources that have be deleted and to be
-removed from the MCP Client. Removed resources for missing
-resources can be ignored.
-
- |
-
-
-nonce |
-string |
-
- The nonce provides a way for IncrementalMeshConfigRequests to
-uniquely reference an IncrementalMeshConfigResponse. The nonce is
-required.
-
- |
-
-
-
-
-MeshConfigRequest
-
-A MeshConfigRequest requests a set of versioned resources of the
-same type for a given client.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-versionInfo |
-string |
-
- The versioninfo provided in the request messages will be the
-versioninfo received with the most recent successfully processed
-response or empty on the first request. It is expected that no
-new request is sent after a response is received until the client
-instance is ready to ACK/NACK the new configuration. ACK/NACK
-takes place by returning the new API config version as applied or
-the previous API config version respectively. Each type_url (see
-below) has an independent version associated with it.
-
- |
-
-
-sinkNode |
-SinkNode |
-
- The sink node making the request.
-
- |
-
-
-typeUrl |
-string |
-
- Type of the resource that is being requested, e.g.
-“type.googleapis.com/istio.io.networking.v1alpha3.VirtualService”.
-
- |
-
-
-responseNonce |
-string |
-
- The nonce corresponding to MeshConfigResponse being
-ACK/NACKed. See above discussion on version_info and the
-MeshConfigResponse nonce comment. This may be empty if no nonce is
-available, e.g. at startup.
-
- |
-
-
-errorDetail |
-google.rpc.Status |
-
- This is populated when the previous MeshConfigResponse failed to
-update configuration. The message field in error_details
-provides the client internal exception related to the failure. It
-is only intended for consumption during manual debugging, the
-string provided is not guaranteed to be stable across client
-versions.
-
- |
-
-
-
-
-MeshConfigResponse
-
-A MeshConfigResponse delivers a set of versioned resources of the
-same type in response to a MeshConfigRequest.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-versionInfo |
-string |
-
- The version of the response data.
-
- |
-
-
-resources |
-Resource[] |
-
- The response resources wrapped in the common MCP Resource
-message.
-
- |
-
-
-typeUrl |
-string |
-
- Type URL for resources wrapped in the provided resources(s). This
-must be consistent with the type_url in the wrapper messages if
-resources is non-empty.
-
- |
-
-
-nonce |
-string |
-
- The nonce provides a way to explicitly ack a specific
-MeshConfigResponse in a following MeshConfigRequest. Additional
-messages may have been sent by client to the management server for
-the previous version on the stream prior to this
-MeshConfigResponse, that were unprocessed at response send
-time. The nonce allows the management server to ignore any
-further MeshConfigRequests for the previous version until a
-MeshConfigRequest bearing the nonce.
-
- |
-
-
-
-
-
-
-Metadata information that all resources within the Mesh Configuration Protocol must have.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-name |
-string |
-
- Fully qualified name of the resource. Unique in context of a collection.
-
-The fully qualified name consists of a directory and basename. The directory identifies
-the resources location in a resource hierarchy. The basename identifies the specific
-resource name within the context of that directory.
-
-The directory and basename are composed of one or more segments. Segments must be
-valid DNS labels. “/” is the delimiter between
-segments
-
-The rightmost segment is the basename. All segments to the
-left of the basename form the directory. Segments moving towards the left
-represent higher positions in the resource hierarchy, similar to reverse
-DNS notation. e.g.
-
-/<org>/<team>/<subteam>/<resource basename>
-
-An empty directory indicates a resource that is located at the root of the
-hierarchy, e.g.
-
-/<globally scoped resource>
-
-On Kubernetes the resource hierarchy is two-levels: namespaces and
-cluster-scoped (i.e. global).
-
-Namespace resources fully qualified name is of the form:
-
-“<k8s namespace>/<k8s resource name>”
-
-Cluster scoped resources are located at the root of the hierarchy and are of the form:
-
-”/<k8s resource name>“
-
- |
-
-
-createTime |
-google.protobuf.Timestamp |
-
- The creation timestamp of the resource.
-
- |
-
-
-version |
-string |
-
- Resource version. This is used to determine when resources change across
-resource updates. It should be treated as opaque by consumers/sinks.
-
- |
-
-
-labels |
-map<string, string> |
-
- Map of string keys and values that can be used to organize and categorize
-resources within a collection.
-
- |
-
-
-annotations |
-map<string, string> |
-
- Map of string keys and values that can be used by source and sink to communicate
-arbitrary metadata about this resource.
-
- |
-
-
-
-
-RequestResources
-
-A RequestResource can be sent in two situations:
-
-Initial message in an MCP bidirectional change stream
-as an ACK or NACK response to a previous Resources. In
-this case the responsenonce is set to the nonce value
-in the Resources. ACK/NACK is determined by the presence
-of errordetail.
-
-
-- ACK (nonce!=“”,error_details==nil)
-- NACK (nonce!=“”,error_details!=nil)
-- New/Update request (nonce==“”,error_details ignored)
-
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-sinkNode |
-SinkNode |
-
- The sink node making the request.
-
- |
-
-
-collection |
-string |
-
- Type of resource collection that is being requested, e.g.
-
-istio/networking/v1alpha3/VirtualService
-k8s/<apiVersion>/<kind>
-
- |
-
-
-initialResourceVersions |
-map<string, string> |
-
- When the RequestResources is the first in a stream, the initialresourceversions must
-be populated. Otherwise, initialresourceversions must be omitted. The keys are the
-resources names of the MCP resources known to the MCP client. The values in the map
-are the associated resource level version info.
-
- |
-
-
-responseNonce |
-string |
-
- When the RequestResources is an ACK or NACK message in response to a previous RequestResources,
-the responsenonce must be the nonce in the RequestResources. Otherwise responsenonce must
-be omitted.
-
- |
-
-
-errorDetail |
-google.rpc.Status |
-
- This is populated when the previously received resources could not be applied
-The message field in error_details provides the source internal error
-related to the failure.
-
- |
-
-
-incremental |
-bool |
-
- Request an incremental update for the specified collection. The source may choose to
-honor this request or ignore and and provide a full-state update in the corresponding
-Resource response.
-
- |
-
-
-
-
-Resource
-
-Resource as transferred via the Mesh Configuration Protocol. Each
-resource is made up of common metadata, and a type-specific resource payload.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-metadata |
-Metadata |
-
- Common metadata describing the resource.
-
- |
-
-
-body |
-google.protobuf.Any |
-
- The primary payload for the resource.
-
- |
-
-
-
-
-Resources
-
-Resources do not need to include a full snapshot of the tracked
-resources. Instead they are a diff to the state of a MCP client.
-Per resource versions allow sources and sinks to track state at
-the resource granularity. An MCP incremental session is always
-in the context of a gRPC bidirectional stream. This allows the
-MCP source to keep track of the state of MCP sink connected to
-it.
-
-In Incremental MCP the nonce field is required and used to pair
-Resources to an RequestResources ACK or NACK.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-systemVersionInfo |
-string |
-
- The version of the response data (used for debugging).
-
- |
-
-
-collection |
-string |
-
- Type of resource collection that is being requested, e.g.
-
-istio/networking/v1alpha3/VirtualService
-k8s/<apiVersion>/<kind>
-
- |
-
-
-resources |
-Resource[] |
-
- The response resources wrapped in the common MCP Resource message.
-These are typed resources that match the type url in the
-RequestResources message.
-
-When incremental is true, this contains an array of resources to add/update
-for the specified collection. This modifies the existing collection at the sink
-
-When incremental is false, this contains the full set of resources for the
-specified collection. This replaces any previously delivered resources.
-
- |
-
-
-removedResources |
-string[] |
-
- Names of resources that have been deleted and to be
-removed from the MCP sink node. Removed resources for missing
-resources can be ignored.
-
-When incremental is true, this contains an array of resource names to remove
-for the specified collection. This modifies the existing resource collection at
-the sink.
-
-When incremental is false, this field should be ignored.
-
- |
-
-
-nonce |
-string |
-
- Required. The nonce provides a way for RequestChange to uniquely
-reference a RequestResources.
-
- |
-
-
-incremental |
-bool |
-
- This resource response is an incremental update. The source should only send
-incremental updates if the sink requested them.
-
- |
-
-
-
-
-SinkNode
-
-Identifies a specific MCP sink node instance. The node identifier is
-presented to the resource source, which may use this identifier
-to distinguish per sink configuration for serving. This
-information is not authoritative. Authoritative identity should come
-from the underlying transport layer (e.g. rpc credentials).
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-id |
-string |
-
- An opaque identifier for the MCP node.
-
- |
-
-
-annotations |
-map<string, string> |
-
- Opaque annotations extending the node identifier.
-
- |
-
-
-
-
-google.rpc.Status
-
-The Status
type defines a logical error model that is suitable for different
-programming environments, including REST APIs and RPC APIs. It is used by
-gRPC. The error model is designed to be:
-
-
-- Simple to use and understand for most users
-- Flexible enough to meet unexpected needs
-
-
-Overview
-
-The Status
message contains three pieces of data: error code, error message,
-and error details. The error code should be an enum value of
-google.rpc.Code, but it may accept additional error codes if needed. The
-error message should be a developer-facing English message that helps
-developers understand and resolve the error. If a localized user-facing
-error message is needed, put the localized message in the error details or
-localize it in the client. The optional error details may contain arbitrary
-information about the error. There is a predefined set of error detail types
-in the package google.rpc
that can be used for common error conditions.
-
-Language mapping
-
-The Status
message is the logical representation of the error model, but it
-is not necessarily the actual wire format. When the Status
message is
-exposed in different client libraries and different wire protocols, it can be
-mapped differently. For example, it will likely be mapped to some exceptions
-in Java, but more likely mapped to some error codes in C.
-
-Other uses
-
-The error model and the Status
message can be used in a variety of
-environments, either with or without APIs, to provide a
-consistent developer experience across different environments.
-
-Example uses of this error model include:
-
-
-Partial errors. If a service needs to return partial errors to the client,
-it may embed the Status
in the normal response to indicate the partial
-errors.
-
-Workflow errors. A typical workflow has multiple steps. Each step may
-have a Status
message for error reporting.
-
-Batch operations. If a client uses batch request and batch response, the
-Status
message should be used directly inside batch response, one for
-each error sub-response.
-
-Asynchronous operations. If an API call embeds asynchronous operation
-results in its response, the status of those operations should be
-represented directly using the Status
message.
-
-Logging. If some API errors are stored in logs, the message Status
could
-be used directly after any stripping needed for security/privacy reasons.
-
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-code |
-int32 |
-
- The status code, which should be an enum value of google.rpc.Code.
-
- |
-
-
-message |
-string |
-
- A developer-facing error message, which should be in English. Any
-user-facing error message should be localized and sent in the
-google.rpc.Status.details field, or localized by the client.
-
- |
-
-
-details |
-google.protobuf.Any[] |
-
- A list of messages that carry the error details. There is a common set of
-message types for APIs to use.
-
- |
-
-
-
-
diff --git a/vendor/istio.io/api/mcp/v1alpha1/mcp.pb.go b/vendor/istio.io/api/mcp/v1alpha1/mcp.pb.go
index 2ddc33e27842..c20686b0b429 100644
--- a/vendor/istio.io/api/mcp/v1alpha1/mcp.pb.go
+++ b/vendor/istio.io/api/mcp/v1alpha1/mcp.pb.go
@@ -1541,9 +1541,9 @@ func (m *MeshConfigRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintMcp(dAtA, i, uint64(m.SinkNode.Size()))
- n1, err1 := m.SinkNode.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := m.SinkNode.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
}
@@ -1563,9 +1563,9 @@ func (m *MeshConfigRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
i++
i = encodeVarintMcp(dAtA, i, uint64(m.ErrorDetail.Size()))
- n2, err2 := m.ErrorDetail.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := m.ErrorDetail.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
}
@@ -1645,9 +1645,9 @@ func (m *IncrementalMeshConfigRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintMcp(dAtA, i, uint64(m.SinkNode.Size()))
- n3, err3 := m.SinkNode.MarshalTo(dAtA[i:])
- if err3 != nil {
- return 0, err3
+ n3, err := m.SinkNode.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n3
}
@@ -1684,9 +1684,9 @@ func (m *IncrementalMeshConfigRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
i++
i = encodeVarintMcp(dAtA, i, uint64(m.ErrorDetail.Size()))
- n4, err4 := m.ErrorDetail.MarshalTo(dAtA[i:])
- if err4 != nil {
- return 0, err4
+ n4, err := m.ErrorDetail.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n4
}
@@ -1775,9 +1775,9 @@ func (m *RequestResources) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintMcp(dAtA, i, uint64(m.SinkNode.Size()))
- n5, err5 := m.SinkNode.MarshalTo(dAtA[i:])
- if err5 != nil {
- return 0, err5
+ n5, err := m.SinkNode.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n5
}
@@ -1814,9 +1814,9 @@ func (m *RequestResources) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
i++
i = encodeVarintMcp(dAtA, i, uint64(m.ErrorDetail.Size()))
- n6, err6 := m.ErrorDetail.MarshalTo(dAtA[i:])
- if err6 != nil {
- return 0, err6
+ n6, err := m.ErrorDetail.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n6
}
diff --git a/vendor/istio.io/api/mcp/v1alpha1/metadata.pb.go b/vendor/istio.io/api/mcp/v1alpha1/metadata.pb.go
index 0af938b0a20f..3526a98e1df5 100644
--- a/vendor/istio.io/api/mcp/v1alpha1/metadata.pb.go
+++ b/vendor/istio.io/api/mcp/v1alpha1/metadata.pb.go
@@ -250,9 +250,9 @@ func (m *Metadata) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintMetadata(dAtA, i, uint64(m.CreateTime.Size()))
- n1, err1 := m.CreateTime.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := m.CreateTime.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
}
diff --git a/vendor/istio.io/api/mcp/v1alpha1/resource.pb.go b/vendor/istio.io/api/mcp/v1alpha1/resource.pb.go
index 348e21faeca9..53c10d90d118 100644
--- a/vendor/istio.io/api/mcp/v1alpha1/resource.pb.go
+++ b/vendor/istio.io/api/mcp/v1alpha1/resource.pb.go
@@ -157,9 +157,9 @@ func (m *Resource) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintResource(dAtA, i, uint64(m.Metadata.Size()))
- n1, err1 := m.Metadata.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := m.Metadata.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
}
@@ -167,9 +167,9 @@ func (m *Resource) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintResource(dAtA, i, uint64(m.Body.Size()))
- n2, err2 := m.Body.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := m.Body.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
}
diff --git a/vendor/istio.io/api/mesh/v1alpha1/config.pb.go b/vendor/istio.io/api/mesh/v1alpha1/config.pb.go
index 586ff32376b9..71c54c1e4c9b 100644
--- a/vendor/istio.io/api/mesh/v1alpha1/config.pb.go
+++ b/vendor/istio.io/api/mesh/v1alpha1/config.pb.go
@@ -25,31 +25,6 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
-// FeatureName describes the features which are currently supported.
-type FeatureName int32
-
-const (
- // The locality aware routing feature.
- // It is enabled by default in release 1.13.
- FeatureName_LOCALITY_AWARE_ROUTING FeatureName = 0
-)
-
-var FeatureName_name = map[int32]string{
- 0: "LOCALITY_AWARE_ROUTING",
-}
-
-var FeatureName_value = map[string]int32{
- "LOCALITY_AWARE_ROUTING": 0,
-}
-
-func (x FeatureName) String() string {
- return proto.EnumName(FeatureName_name, int32(x))
-}
-
-func (FeatureName) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_b5c7ece76d5d5022, []int{0}
-}
-
type MeshConfig_IngressControllerMode int32
const (
@@ -379,12 +354,10 @@ type MeshConfig struct {
// if sidecar is installed on all pods in the mesh, then this should be set to UPGRADE.
// If one or more services or namespaces do not have sidecar(s), then this should be set to DO_NOT_UPGRADE.
// It can be enabled by destination using the destinationRule.trafficPolicy.connectionPool.http.h2UpgradePolicy override.
- H2UpgradePolicy MeshConfig_H2UpgradePolicy `protobuf:"varint,41,opt,name=h2_upgrade_policy,json=h2UpgradePolicy,proto3,enum=istio.mesh.v1alpha1.MeshConfig_H2UpgradePolicy" json:"h2_upgrade_policy,omitempty"`
- // Optional: Features is used to enable/disable specific features.
- Features []*Feature `protobuf:"bytes,42,rep,name=features,proto3" json:"features,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
+ H2UpgradePolicy MeshConfig_H2UpgradePolicy `protobuf:"varint,41,opt,name=h2_upgrade_policy,json=h2UpgradePolicy,proto3,enum=istio.mesh.v1alpha1.MeshConfig_H2UpgradePolicy" json:"h2_upgrade_policy,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
func (m *MeshConfig) Reset() { *m = MeshConfig{} }
@@ -697,13 +670,6 @@ func (m *MeshConfig) GetH2UpgradePolicy() MeshConfig_H2UpgradePolicy {
return MeshConfig_DO_NOT_UPGRADE
}
-func (m *MeshConfig) GetFeatures() []*Feature {
- if m != nil {
- return m.Features
- }
- return nil
-}
-
type MeshConfig_OutboundTrafficPolicy struct {
Mode MeshConfig_OutboundTrafficPolicy_Mode `protobuf:"varint,1,opt,name=mode,proto3,enum=istio.mesh.v1alpha1.MeshConfig_OutboundTrafficPolicy_Mode" json:"mode,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1058,66 +1024,7 @@ func (m *LocalityLoadBalancerSetting_Failover) GetTo() string {
return ""
}
-// Feature specify to enable or disable a specific feature.
-type Feature struct {
- // Feature is the name of the feature.
- Feature FeatureName `protobuf:"varint,1,opt,name=feature,proto3,enum=istio.mesh.v1alpha1.FeatureName" json:"feature,omitempty"`
- // Specify true to enable the feature or false to disable the feature.
- Enable bool `protobuf:"varint,2,opt,name=enable,proto3" json:"enable,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
-}
-
-func (m *Feature) Reset() { *m = Feature{} }
-func (m *Feature) String() string { return proto.CompactTextString(m) }
-func (*Feature) ProtoMessage() {}
-func (*Feature) Descriptor() ([]byte, []int) {
- return fileDescriptor_b5c7ece76d5d5022, []int{3}
-}
-func (m *Feature) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *Feature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_Feature.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalTo(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *Feature) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Feature.Merge(m, src)
-}
-func (m *Feature) XXX_Size() int {
- return m.Size()
-}
-func (m *Feature) XXX_DiscardUnknown() {
- xxx_messageInfo_Feature.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Feature proto.InternalMessageInfo
-
-func (m *Feature) GetFeature() FeatureName {
- if m != nil {
- return m.Feature
- }
- return FeatureName_LOCALITY_AWARE_ROUTING
-}
-
-func (m *Feature) GetEnable() bool {
- if m != nil {
- return m.Enable
- }
- return false
-}
-
func init() {
- proto.RegisterEnum("istio.mesh.v1alpha1.FeatureName", FeatureName_name, FeatureName_value)
proto.RegisterEnum("istio.mesh.v1alpha1.MeshConfig_IngressControllerMode", MeshConfig_IngressControllerMode_name, MeshConfig_IngressControllerMode_value)
proto.RegisterEnum("istio.mesh.v1alpha1.MeshConfig_AuthPolicy", MeshConfig_AuthPolicy_name, MeshConfig_AuthPolicy_value)
proto.RegisterEnum("istio.mesh.v1alpha1.MeshConfig_AccessLogEncoding", MeshConfig_AccessLogEncoding_name, MeshConfig_AccessLogEncoding_value)
@@ -1130,121 +1037,114 @@ func init() {
proto.RegisterType((*LocalityLoadBalancerSetting_Distribute)(nil), "istio.mesh.v1alpha1.LocalityLoadBalancerSetting.Distribute")
proto.RegisterMapType((map[string]uint32)(nil), "istio.mesh.v1alpha1.LocalityLoadBalancerSetting.Distribute.ToEntry")
proto.RegisterType((*LocalityLoadBalancerSetting_Failover)(nil), "istio.mesh.v1alpha1.LocalityLoadBalancerSetting.Failover")
- proto.RegisterType((*Feature)(nil), "istio.mesh.v1alpha1.Feature")
}
func init() { proto.RegisterFile("mesh/v1alpha1/config.proto", fileDescriptor_b5c7ece76d5d5022) }
var fileDescriptor_b5c7ece76d5d5022 = []byte{
- // 1715 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0xef, 0x52, 0x1b, 0xc9,
- 0x11, 0xf7, 0x02, 0x36, 0x72, 0x83, 0xc4, 0x32, 0x18, 0x6e, 0x2d, 0xdf, 0x71, 0x42, 0x17, 0xdb,
- 0x3a, 0x2a, 0x25, 0xce, 0xb8, 0xae, 0x62, 0x3b, 0x9f, 0x84, 0x24, 0x6c, 0x38, 0x81, 0xa8, 0xd5,
- 0xe2, 0x8b, 0x73, 0x95, 0x9a, 0x0c, 0xbb, 0x23, 0x69, 0xc2, 0x6a, 0x47, 0xb5, 0x33, 0x8b, 0xe1,
- 0x9d, 0x92, 0xaa, 0x3c, 0x46, 0x3e, 0xe6, 0x11, 0x52, 0x7e, 0x8a, 0x7c, 0x4c, 0xcd, 0x9f, 0x45,
- 0x02, 0xab, 0x4c, 0x2e, 0xf9, 0xa6, 0xe9, 0xfe, 0xf5, 0x6f, 0x66, 0xbb, 0x7f, 0xd3, 0x3d, 0x82,
- 0xf2, 0x88, 0x8a, 0xe1, 0xce, 0xc5, 0x0b, 0x12, 0x8f, 0x87, 0xe4, 0xc5, 0x4e, 0xc8, 0x93, 0x3e,
- 0x1b, 0xd4, 0xc7, 0x29, 0x97, 0x1c, 0xad, 0x31, 0x21, 0x19, 0xaf, 0x2b, 0x44, 0x3d, 0x47, 0x94,
- 0x37, 0x07, 0x9c, 0x0f, 0x62, 0xba, 0xa3, 0x21, 0x67, 0x59, 0x7f, 0x27, 0xca, 0x52, 0x22, 0x19,
- 0x4f, 0x4c, 0x50, 0xf9, 0xf1, 0x4d, 0xc2, 0x71, 0xca, 0x2f, 0xaf, 0xac, 0x6b, 0x3b, 0xa1, 0xf2,
- 0x23, 0x4f, 0xcf, 0x59, 0x32, 0xc8, 0x01, 0x2f, 0x77, 0x22, 0x2a, 0x24, 0x4b, 0x34, 0x03, 0x4e,
- 0xb3, 0x98, 0x1a, 0x6c, 0xf5, 0xdf, 0x1b, 0x00, 0x47, 0x54, 0x0c, 0x9b, 0xfa, 0x40, 0xe8, 0xb7,
- 0x80, 0x46, 0xec, 0x92, 0xa6, 0x38, 0x1c, 0xd2, 0xf0, 0x1c, 0x0b, 0x9a, 0x5e, 0xd0, 0xd4, 0x73,
- 0x2a, 0x4e, 0xed, 0xa1, 0xef, 0x6a, 0x4f, 0x53, 0x39, 0x7a, 0xda, 0x8e, 0xea, 0xb0, 0x66, 0xd0,
- 0x29, 0x1d, 0xf3, 0x54, 0xe6, 0xf0, 0x39, 0x0d, 0x5f, 0xd5, 0x2e, 0x5f, 0x7b, 0x2c, 0x7e, 0x17,
- 0xd6, 0x23, 0x26, 0xc8, 0x59, 0x4c, 0xf1, 0x98, 0xc7, 0x2c, 0xbc, 0x32, 0xdb, 0x08, 0x6f, 0xbe,
- 0xe2, 0xd4, 0x0a, 0xfe, 0x9a, 0x75, 0x9e, 0x68, 0x9f, 0xde, 0x48, 0xa0, 0x97, 0xb0, 0x31, 0x8d,
- 0xc5, 0x7d, 0xc2, 0x62, 0xcc, 0xc7, 0x34, 0xf1, 0x1e, 0x9b, 0xa0, 0xf1, 0x04, 0xbd, 0x4f, 0x58,
- 0xdc, 0x1d, 0xd3, 0x04, 0x9d, 0xc0, 0x53, 0xc1, 0x22, 0x1a, 0x92, 0x14, 0x4b, 0x8e, 0x25, 0x8d,
- 0xe9, 0x88, 0xca, 0xf4, 0x0a, 0x0b, 0x2a, 0x84, 0x4a, 0x00, 0xe9, 0xf7, 0x59, 0xc2, 0xe4, 0x95,
- 0xb7, 0xa9, 0x39, 0xb6, 0x2c, 0x38, 0xe0, 0x41, 0x0e, 0xed, 0x19, 0x64, 0xc3, 0x02, 0xd1, 0x36,
- 0xac, 0xea, 0x14, 0xe3, 0x98, 0x09, 0x49, 0x13, 0xac, 0xbe, 0xca, 0x5b, 0xa8, 0x38, 0xb5, 0xfb,
- 0xfe, 0x8a, 0x76, 0x74, 0xb4, 0xfd, 0x84, 0xa7, 0x12, 0x3d, 0x03, 0x63, 0xc2, 0x43, 0x29, 0xc7,
- 0x06, 0x79, 0x5f, 0x23, 0x8b, 0xda, 0xfc, 0x4e, 0xca, 0xb1, 0xc6, 0xed, 0xc1, 0x4a, 0xc8, 0x93,
- 0x84, 0x86, 0x12, 0x4b, 0x36, 0xa2, 0x3c, 0x93, 0xde, 0x83, 0x8a, 0x53, 0x5b, 0xda, 0x7d, 0x5c,
- 0x37, 0xc5, 0xaf, 0xe7, 0xc5, 0xaf, 0xb7, 0x6c, 0xf1, 0xfd, 0x92, 0x8d, 0x08, 0x4c, 0x00, 0xe2,
- 0x50, 0x94, 0xe1, 0x18, 0x9f, 0x53, 0x3a, 0x26, 0x31, 0xbb, 0xa0, 0xde, 0xd7, 0x9a, 0xe1, 0xb0,
- 0x6e, 0x34, 0x35, 0x51, 0x42, 0xae, 0xac, 0x97, 0xf5, 0xa6, 0x61, 0x60, 0x3c, 0x39, 0xe1, 0x3c,
- 0xee, 0x51, 0x29, 0x59, 0x32, 0x10, 0xf5, 0xa0, 0x79, 0x32, 0xf9, 0x1d, 0x8e, 0x7f, 0xca, 0x19,
- 0xfd, 0x65, 0x39, 0xb5, 0x42, 0xdf, 0x41, 0x91, 0x25, 0x83, 0x94, 0x0a, 0x81, 0xc3, 0x98, 0x08,
- 0xe1, 0x2d, 0xea, 0x6a, 0x2f, 0x5b, 0x63, 0x53, 0xd9, 0xd0, 0x73, 0x58, 0xc9, 0x41, 0x4a, 0x13,
- 0x2c, 0xa4, 0x5e, 0x41, 0xc3, 0x4a, 0xd6, 0xdc, 0x33, 0x56, 0x34, 0x82, 0xaf, 0xae, 0xd9, 0x78,
- 0x22, 0x53, 0x1e, 0xc7, 0x34, 0xc5, 0x23, 0x1e, 0x51, 0xef, 0x61, 0xc5, 0xa9, 0x95, 0x76, 0x7f,
- 0xac, 0xcf, 0xb8, 0x1c, 0xf5, 0x89, 0x62, 0xeb, 0x07, 0x76, 0xdf, 0xeb, 0xe8, 0x23, 0x1e, 0x51,
- 0x7f, 0x9d, 0xcd, 0x32, 0xa3, 0x2e, 0x2c, 0x91, 0x4c, 0x0e, 0xad, 0xfa, 0x3c, 0xd0, 0x5b, 0x6c,
- 0xdf, 0xb5, 0x45, 0x23, 0x93, 0x43, 0xa3, 0xc9, 0xbd, 0x39, 0xcf, 0xf1, 0x81, 0x5c, 0xaf, 0xd1,
- 0x01, 0xac, 0xa6, 0x91, 0xc0, 0x29, 0xed, 0xa7, 0x54, 0x0c, 0x71, 0x44, 0x63, 0x72, 0xe5, 0x2d,
- 0xdd, 0x51, 0x44, 0xcd, 0xb2, 0x92, 0x46, 0xc2, 0x37, 0x61, 0x2d, 0x15, 0x85, 0x9e, 0x42, 0x89,
- 0x26, 0xfa, 0x6e, 0xc8, 0x94, 0x84, 0x2c, 0x19, 0x78, 0xcb, 0x5a, 0x9c, 0x45, 0x63, 0x0d, 0x8c,
- 0x51, 0x89, 0x8b, 0x84, 0xa1, 0x4a, 0x58, 0xcc, 0x07, 0xb8, 0xcf, 0x62, 0xea, 0x15, 0x75, 0x6a,
- 0x8b, 0xc6, 0xdc, 0xe1, 0x83, 0x7d, 0x16, 0x53, 0x25, 0xd8, 0x69, 0x1c, 0x4f, 0x47, 0x44, 0x7a,
- 0x9e, 0x46, 0xae, 0x4c, 0x90, 0xda, 0x8c, 0x08, 0xac, 0x4d, 0x61, 0x69, 0x12, 0xf2, 0x48, 0xed,
- 0xff, 0x44, 0xa7, 0xe7, 0xc5, 0x9d, 0xe9, 0xc9, 0xd9, 0xda, 0x36, 0xd0, 0x5f, 0x25, 0xb7, 0x4d,
- 0xa8, 0x05, 0xdf, 0xda, 0xaf, 0xa3, 0xc9, 0x05, 0xbf, 0xc2, 0x53, 0xfb, 0xe5, 0x0a, 0xa9, 0xe9,
- 0xcf, 0x7d, 0x62, 0x60, 0x6d, 0x85, 0xba, 0x66, 0xce, 0xe5, 0xf2, 0x16, 0x4a, 0x11, 0xed, 0x93,
- 0x2c, 0x96, 0xd8, 0x74, 0x50, 0xaf, 0xa4, 0x73, 0x5d, 0x99, 0x79, 0xc6, 0x13, 0x75, 0xdb, 0xcc,
- 0x21, 0xfd, 0xa2, 0x8d, 0xb3, 0x7d, 0xee, 0x39, 0x14, 0x4d, 0xe7, 0x22, 0x51, 0xa4, 0x74, 0xe2,
- 0xb9, 0x2a, 0x33, 0xba, 0x30, 0xcb, 0xda, 0xd1, 0x30, 0x76, 0x25, 0x50, 0x9e, 0xc9, 0x33, 0x9e,
- 0x25, 0x91, 0xaa, 0x4b, 0xbf, 0xcf, 0xc2, 0x5c, 0x3d, 0xab, 0x7a, 0xeb, 0x3b, 0x05, 0xda, 0xb5,
- 0xe1, 0x81, 0x89, 0x36, 0xc2, 0xf1, 0xd7, 0xf9, 0x2c, 0xf3, 0x54, 0x9a, 0xc2, 0x98, 0xd1, 0x44,
- 0x62, 0xd5, 0x99, 0x6e, 0x34, 0x4b, 0x6f, 0x6d, 0x3a, 0x4d, 0x4d, 0x8d, 0xea, 0xb1, 0x68, 0xba,
- 0x69, 0xa2, 0x0a, 0x2c, 0x8b, 0x48, 0xe0, 0x2c, 0x12, 0x78, 0x4c, 0xe4, 0xd0, 0x7b, 0xa4, 0xcb,
- 0x0e, 0x22, 0x12, 0xa7, 0x91, 0x38, 0x21, 0x72, 0xa8, 0x74, 0x2b, 0x3e, 0xd3, 0xed, 0xfa, 0x7f,
- 0xa5, 0x5b, 0x71, 0x4b, 0xb7, 0xef, 0xa0, 0x64, 0x6a, 0x81, 0x05, 0xcf, 0xd2, 0x90, 0x0a, 0x6f,
- 0xa3, 0x32, 0x5f, 0x5b, 0xda, 0xdd, 0x9a, 0x99, 0x18, 0x93, 0x94, 0x9e, 0x46, 0xfa, 0xc5, 0x70,
- 0x6a, 0xa5, 0x5b, 0xbd, 0xfd, 0x78, 0x75, 0x36, 0xc9, 0xcf, 0x69, 0x82, 0x47, 0x3c, 0x4b, 0xa4,
- 0xf7, 0x95, 0x69, 0xf5, 0xc6, 0xdb, 0x8b, 0x44, 0xa0, 0x7c, 0x47, 0xca, 0x85, 0xb6, 0x01, 0xe9,
- 0x6f, 0x15, 0x14, 0x9f, 0xbf, 0x12, 0x58, 0x10, 0xfc, 0x97, 0x8f, 0xd2, 0xfb, 0x46, 0x07, 0x94,
- 0xd4, 0x17, 0x0b, 0xfa, 0xd3, 0x2b, 0xd1, 0x23, 0x87, 0x1f, 0x25, 0xda, 0x82, 0x65, 0x99, 0x66,
- 0x42, 0xe2, 0x88, 0x8f, 0x08, 0x4b, 0xbc, 0xb2, 0xce, 0xcb, 0x92, 0xb6, 0xb5, 0xb4, 0x09, 0xbd,
- 0x86, 0xc7, 0xb9, 0xc2, 0xac, 0x2e, 0x31, 0xbd, 0xd4, 0xc3, 0x4d, 0x72, 0xef, 0xdb, 0xca, 0x7c,
- 0xed, 0xa1, 0xbf, 0x61, 0x01, 0x56, 0x94, 0x6d, 0xed, 0x0e, 0x38, 0x7a, 0x07, 0x5b, 0x79, 0xe8,
- 0x05, 0x4b, 0x65, 0x46, 0xe2, 0x19, 0x14, 0x15, 0x4d, 0xf1, 0x8d, 0x05, 0xbe, 0x37, 0xb8, 0xdb,
- 0x4c, 0x87, 0x50, 0xcd, 0x99, 0x6e, 0x8f, 0xed, 0x29, 0xaa, 0x2d, 0x4d, 0xb5, 0x69, 0x91, 0xad,
- 0x09, 0xd0, 0xcf, 0xe2, 0x09, 0xd7, 0x53, 0x28, 0xa5, 0x9c, 0x4b, 0x9c, 0x90, 0x11, 0x15, 0x63,
- 0x12, 0x52, 0xaf, 0x6a, 0xda, 0x85, 0xb2, 0x1e, 0xe7, 0x46, 0xf4, 0x67, 0x58, 0x8b, 0x79, 0x48,
- 0x62, 0x26, 0xaf, 0x70, 0x7c, 0x86, 0x85, 0x99, 0x04, 0xde, 0x77, 0x5a, 0x12, 0x3f, 0xcc, 0x2c,
- 0x65, 0xc7, 0xe2, 0x3b, 0x9c, 0x44, 0x7b, 0x24, 0x26, 0x49, 0x48, 0x53, 0x3b, 0x41, 0xfc, 0xd5,
- 0x9c, 0xac, 0x73, 0x66, 0x4d, 0xa8, 0x09, 0x6e, 0x94, 0x4c, 0x24, 0x97, 0x12, 0x49, 0xbd, 0xdf,
- 0xdc, 0x39, 0xee, 0xa2, 0x24, 0x57, 0x9b, 0x4f, 0x24, 0x45, 0x3f, 0xc0, 0xa3, 0xfc, 0x05, 0x61,
- 0xdf, 0x1c, 0x67, 0x44, 0x86, 0x43, 0xef, 0xa9, 0xae, 0x37, 0xb2, 0x3e, 0xf3, 0xe8, 0xd8, 0x53,
- 0x1e, 0xf4, 0x3b, 0xf0, 0xa6, 0x91, 0x78, 0x44, 0x2e, 0x31, 0x4d, 0x64, 0xca, 0xa8, 0xf0, 0x9e,
- 0x55, 0x9c, 0x5a, 0xd1, 0x5f, 0x4f, 0x27, 0xf0, 0x23, 0x72, 0xd9, 0x36, 0x4e, 0xd4, 0x81, 0xf5,
- 0xcf, 0x02, 0xd5, 0x98, 0xf6, 0x9e, 0xdf, 0x75, 0x68, 0x74, 0x93, 0x50, 0x8d, 0x6a, 0xf4, 0x0b,
- 0xac, 0x0e, 0x77, 0x71, 0x36, 0x1e, 0xa4, 0xe4, 0xfa, 0x42, 0x7b, 0xdf, 0xeb, 0x06, 0xbb, 0x73,
- 0x57, 0x07, 0x79, 0xb7, 0x7b, 0x6a, 0xe2, 0x6c, 0xef, 0x58, 0x19, 0xde, 0x34, 0xa0, 0x57, 0x50,
- 0xe8, 0x53, 0x22, 0xb3, 0x94, 0x0a, 0x6f, 0x5b, 0x5f, 0xbe, 0xaf, 0x67, 0x72, 0xee, 0x1b, 0x90,
- 0x7f, 0x8d, 0x2e, 0xff, 0xcd, 0x81, 0xf5, 0x99, 0x0d, 0x0a, 0x1d, 0xc3, 0x82, 0x1e, 0xc3, 0x8e,
- 0x3e, 0xe3, 0x9b, 0xff, 0xa9, 0xcb, 0xd5, 0xf5, 0x2c, 0xd6, 0x3c, 0xd5, 0x16, 0x2c, 0xe8, 0x11,
- 0xbc, 0x0a, 0x45, 0xbf, 0xfd, 0xf6, 0xa0, 0x17, 0xf8, 0x1f, 0x70, 0xf7, 0xb8, 0xf3, 0xc1, 0xbd,
- 0x87, 0x8a, 0xf0, 0xb0, 0xd1, 0xe9, 0x74, 0x7f, 0xc6, 0x8d, 0xe3, 0x0f, 0xae, 0x53, 0x5d, 0x28,
- 0xcc, 0xb9, 0x73, 0xdb, 0x8f, 0xde, 0x1f, 0xf8, 0xc1, 0x69, 0xa3, 0x83, 0x7b, 0x6d, 0xff, 0xfd,
- 0x41, 0xb3, 0xad, 0xc1, 0xd5, 0xd7, 0xb0, 0x3e, 0x73, 0xe0, 0xa3, 0x45, 0x98, 0xef, 0xee, 0xef,
- 0xbb, 0xf7, 0xd0, 0x12, 0x2c, 0xb6, 0xda, 0xfb, 0x8d, 0xd3, 0x4e, 0xe0, 0x3a, 0x08, 0xe0, 0x41,
- 0x2f, 0xf0, 0x0f, 0x9a, 0x81, 0x3b, 0x57, 0x7d, 0x06, 0x30, 0x19, 0xe4, 0xa8, 0x00, 0x0b, 0xc7,
- 0xdd, 0xe3, 0xb6, 0x7b, 0x0f, 0x95, 0x00, 0x8e, 0x4e, 0xf5, 0x4e, 0x41, 0xa7, 0xe7, 0x3a, 0xd5,
- 0xe7, 0xb0, 0xfa, 0xd9, 0x44, 0x53, 0xf0, 0xa0, 0xfd, 0x87, 0xc0, 0xbd, 0xa7, 0x7e, 0x1d, 0xf6,
- 0xba, 0xc7, 0xae, 0x53, 0xdd, 0x85, 0x95, 0x5b, 0x95, 0x41, 0x08, 0x4a, 0xad, 0x2e, 0x3e, 0xee,
- 0x06, 0xf8, 0xf4, 0xe4, 0xad, 0xdf, 0x68, 0xb5, 0xcd, 0x81, 0xf2, 0x85, 0x73, 0xb8, 0x50, 0x58,
- 0x71, 0xdd, 0xc3, 0x85, 0x02, 0x72, 0xd7, 0xaa, 0x02, 0x96, 0xa7, 0xbb, 0x21, 0xf2, 0x60, 0x31,
- 0x9f, 0x46, 0xe6, 0xc1, 0x9d, 0x2f, 0xd1, 0x01, 0x2c, 0xcb, 0x58, 0xe4, 0x97, 0x52, 0xe8, 0x07,
- 0xf6, 0xd2, 0xee, 0xb3, 0x2f, 0xbc, 0xf1, 0x82, 0x4e, 0x2f, 0x7f, 0xcc, 0xf9, 0x4b, 0x32, 0x16,
- 0xf9, 0xa2, 0xfa, 0xf7, 0x79, 0x78, 0xf2, 0x85, 0x8b, 0x8b, 0x7e, 0x01, 0x88, 0x98, 0x90, 0x29,
- 0x3b, 0xcb, 0xa4, 0x2a, 0xbe, 0x12, 0xd3, 0xef, 0x7f, 0xed, 0xf5, 0xaf, 0xb7, 0xae, 0x29, 0xfc,
- 0x29, 0x3a, 0x74, 0x0a, 0x05, 0xf5, 0x7c, 0xe7, 0xe6, 0x4f, 0x82, 0xa2, 0x7e, 0xfd, 0xab, 0xa9,
- 0xf7, 0x2d, 0x81, 0x7f, 0x4d, 0x55, 0xfe, 0xab, 0x03, 0x30, 0xd9, 0x11, 0x21, 0x58, 0xe8, 0xa7,
- 0x7c, 0x64, 0x93, 0xa8, 0x7f, 0xa3, 0x1e, 0xcc, 0x49, 0x6e, 0xf7, 0x6c, 0xfe, 0x1f, 0x9f, 0x53,
- 0x0f, 0xb8, 0xea, 0x0f, 0x57, 0xfe, 0x9c, 0xe4, 0xe5, 0x1f, 0x61, 0xd1, 0x2e, 0x91, 0x0b, 0xf3,
- 0xe7, 0xf4, 0xca, 0x6e, 0xa9, 0x7e, 0xa2, 0x47, 0x70, 0xff, 0x82, 0xc4, 0x19, 0xd5, 0xc5, 0x2a,
- 0xfa, 0x66, 0xf1, 0x66, 0xee, 0x95, 0x53, 0xae, 0x43, 0x21, 0xff, 0x88, 0x99, 0x67, 0x2d, 0xd9,
- 0xb3, 0x2a, 0xcb, 0x9c, 0xe4, 0xd5, 0x3f, 0xc1, 0xa2, 0xbd, 0xb8, 0xe8, 0x0d, 0x2c, 0xda, 0xab,
- 0x6b, 0xef, 0x65, 0xe5, 0x4b, 0xf7, 0x5c, 0x75, 0x77, 0x3f, 0x0f, 0x40, 0x1b, 0xf0, 0xc0, 0xcc,
- 0x4f, 0x4d, 0x5d, 0xf0, 0xed, 0x6a, 0xfb, 0x7b, 0x58, 0x9a, 0xc2, 0xa3, 0x32, 0x6c, 0x74, 0xba,
- 0xcd, 0x46, 0xe7, 0x20, 0xf8, 0x80, 0x1b, 0x3f, 0x37, 0xfc, 0x36, 0xf6, 0xbb, 0xa7, 0xc1, 0xc1,
- 0xf1, 0x5b, 0xf7, 0xde, 0x5e, 0xed, 0x1f, 0x9f, 0x36, 0x9d, 0x7f, 0x7e, 0xda, 0x74, 0xfe, 0xf5,
- 0x69, 0xd3, 0xf9, 0x63, 0xd9, 0x6c, 0xcd, 0xf8, 0x0e, 0x19, 0xb3, 0x9d, 0x1b, 0x7f, 0x47, 0xcf,
- 0x1e, 0xe8, 0xae, 0xf8, 0xf2, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe1, 0xea, 0xb5, 0x25, 0xf7,
- 0x0e, 0x00, 0x00,
+ // 1630 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0x51, 0x53, 0x1b, 0xc9,
+ 0x11, 0xf6, 0x0a, 0x6c, 0x70, 0x83, 0x84, 0x34, 0x18, 0xdf, 0x58, 0xce, 0x71, 0x42, 0x17, 0xdb,
+ 0x0a, 0x95, 0x12, 0x67, 0x5c, 0x57, 0xb1, 0x2f, 0x4f, 0x20, 0x09, 0x03, 0x27, 0x10, 0xb5, 0x5a,
+ 0x9c, 0x38, 0xf7, 0x30, 0x19, 0x76, 0x47, 0xd2, 0x84, 0xd5, 0xce, 0xd6, 0xce, 0x2c, 0x46, 0xff,
+ 0x29, 0xa9, 0xca, 0x2f, 0xc8, 0x73, 0x1e, 0xf3, 0x13, 0x52, 0xfe, 0x25, 0xa9, 0x99, 0xd9, 0x45,
+ 0x02, 0xab, 0x8e, 0x5c, 0xf2, 0xa6, 0xed, 0xfe, 0xfa, 0x9b, 0x99, 0xee, 0x6f, 0xba, 0x47, 0x50,
+ 0x1d, 0x33, 0x39, 0xda, 0xb9, 0x7a, 0x4d, 0xc3, 0x78, 0x44, 0x5f, 0xef, 0xf8, 0x22, 0x1a, 0xf0,
+ 0x61, 0x33, 0x4e, 0x84, 0x12, 0x68, 0x9d, 0x4b, 0xc5, 0x45, 0x53, 0x23, 0x9a, 0x39, 0xa2, 0xba,
+ 0x39, 0x14, 0x62, 0x18, 0xb2, 0x1d, 0x03, 0xb9, 0x48, 0x07, 0x3b, 0x41, 0x9a, 0x50, 0xc5, 0x45,
+ 0x64, 0x83, 0xaa, 0xcf, 0x6e, 0x13, 0xc6, 0x89, 0xb8, 0x9e, 0x64, 0xae, 0xed, 0x88, 0xa9, 0x4f,
+ 0x22, 0xb9, 0xe4, 0xd1, 0x30, 0x07, 0xbc, 0xd9, 0x09, 0x98, 0x54, 0x3c, 0x32, 0x0c, 0x24, 0x49,
+ 0x43, 0x66, 0xb1, 0xf5, 0x7f, 0x3c, 0x05, 0x38, 0x61, 0x72, 0xd4, 0x32, 0x1b, 0x42, 0xbf, 0x05,
+ 0x34, 0xe6, 0xd7, 0x2c, 0x21, 0xfe, 0x88, 0xf9, 0x97, 0x44, 0xb2, 0xe4, 0x8a, 0x25, 0xd8, 0xa9,
+ 0x39, 0x8d, 0xc7, 0x6e, 0xd9, 0x78, 0x5a, 0xda, 0xd1, 0x37, 0x76, 0xd4, 0x84, 0x75, 0x8b, 0x4e,
+ 0x58, 0x2c, 0x12, 0x95, 0xc3, 0x0b, 0x06, 0x5e, 0x31, 0x2e, 0xd7, 0x78, 0x32, 0xfc, 0x2e, 0x6c,
+ 0x04, 0x5c, 0xd2, 0x8b, 0x90, 0x91, 0x58, 0x84, 0xdc, 0x9f, 0xd8, 0x65, 0x24, 0x5e, 0xa8, 0x39,
+ 0x8d, 0x65, 0x77, 0x3d, 0x73, 0x9e, 0x19, 0x9f, 0x59, 0x48, 0xa2, 0x37, 0xf0, 0x74, 0x16, 0x4b,
+ 0x06, 0x94, 0x87, 0x44, 0xc4, 0x2c, 0xc2, 0xcf, 0x6c, 0x50, 0x3c, 0x45, 0x1f, 0x50, 0x1e, 0xf6,
+ 0x62, 0x16, 0xa1, 0x33, 0x78, 0x21, 0x79, 0xc0, 0x7c, 0x9a, 0x10, 0x25, 0x88, 0x62, 0x21, 0x1b,
+ 0x33, 0x95, 0x4c, 0x88, 0x64, 0x52, 0xea, 0x04, 0xd0, 0xc1, 0x80, 0x47, 0x5c, 0x4d, 0xf0, 0xa6,
+ 0xe1, 0xd8, 0xca, 0xc0, 0x9e, 0xf0, 0x72, 0x68, 0xdf, 0x22, 0xf7, 0x32, 0x20, 0xda, 0x86, 0x8a,
+ 0x49, 0x31, 0x09, 0xb9, 0x54, 0x2c, 0x22, 0xfa, 0x54, 0x78, 0xb1, 0xe6, 0x34, 0x1e, 0xba, 0x6b,
+ 0xc6, 0xd1, 0x35, 0xf6, 0x33, 0x91, 0x28, 0xf4, 0x12, 0xac, 0x89, 0x8c, 0x94, 0x8a, 0x2d, 0xf2,
+ 0xa1, 0x41, 0x16, 0x8d, 0xf9, 0x50, 0xa9, 0xd8, 0xe0, 0xf6, 0x61, 0xcd, 0x17, 0x51, 0xc4, 0x7c,
+ 0x45, 0x14, 0x1f, 0x33, 0x91, 0x2a, 0xfc, 0xa8, 0xe6, 0x34, 0x56, 0x76, 0x9f, 0x35, 0x6d, 0xf1,
+ 0x9b, 0x79, 0xf1, 0x9b, 0xed, 0xac, 0xf8, 0x6e, 0x29, 0x8b, 0xf0, 0x6c, 0x00, 0x12, 0x50, 0x54,
+ 0x7e, 0x4c, 0x2e, 0x19, 0x8b, 0x69, 0xc8, 0xaf, 0x18, 0xfe, 0x95, 0x61, 0x38, 0x6e, 0x5a, 0x4d,
+ 0x4d, 0x95, 0x90, 0x2b, 0xeb, 0x4d, 0xb3, 0x65, 0x19, 0xb8, 0x88, 0xce, 0x84, 0x08, 0xfb, 0x4c,
+ 0x29, 0x1e, 0x0d, 0x65, 0xd3, 0x6b, 0x9d, 0x4d, 0x7f, 0xfb, 0xf1, 0x8f, 0x39, 0xa3, 0xbb, 0xaa,
+ 0x66, 0xbe, 0xd0, 0xb7, 0x50, 0xe4, 0xd1, 0x30, 0x61, 0x52, 0x12, 0x3f, 0xa4, 0x52, 0xe2, 0x25,
+ 0x53, 0xed, 0xd5, 0xcc, 0xd8, 0xd2, 0x36, 0xf4, 0x0a, 0xd6, 0x72, 0x90, 0xd6, 0x04, 0xf7, 0x19,
+ 0x5e, 0x36, 0xb0, 0x52, 0x66, 0xee, 0x5b, 0x2b, 0x1a, 0xc3, 0x57, 0x37, 0x6c, 0x22, 0x52, 0x89,
+ 0x08, 0x43, 0x96, 0x90, 0xb1, 0x08, 0x18, 0x7e, 0x5c, 0x73, 0x1a, 0xa5, 0xdd, 0xef, 0x9b, 0x73,
+ 0x2e, 0x47, 0x73, 0xaa, 0xd8, 0xe6, 0x51, 0xb6, 0xee, 0x4d, 0xf4, 0x89, 0x08, 0x98, 0xbb, 0xc1,
+ 0xe7, 0x99, 0x51, 0x0f, 0x56, 0x68, 0xaa, 0x46, 0x99, 0xfa, 0x30, 0x98, 0x25, 0xb6, 0xef, 0x5b,
+ 0x62, 0x2f, 0x55, 0x23, 0xab, 0xc9, 0xfd, 0x02, 0x76, 0x5c, 0xa0, 0x37, 0xdf, 0xe8, 0x08, 0x2a,
+ 0x49, 0x20, 0x49, 0xc2, 0x06, 0x09, 0x93, 0x23, 0x12, 0xb0, 0x90, 0x4e, 0xf0, 0xca, 0x3d, 0x45,
+ 0x34, 0x2c, 0x6b, 0x49, 0x20, 0x5d, 0x1b, 0xd6, 0xd6, 0x51, 0xe8, 0x05, 0x94, 0x58, 0x64, 0xee,
+ 0x86, 0x4a, 0xa8, 0xcf, 0xa3, 0x21, 0x5e, 0x35, 0xe2, 0x2c, 0x5a, 0xab, 0x67, 0x8d, 0x5a, 0x5c,
+ 0xd4, 0xf7, 0x75, 0xc2, 0x42, 0x31, 0x24, 0x03, 0x1e, 0x32, 0x5c, 0x34, 0xa9, 0x2d, 0x5a, 0x73,
+ 0x57, 0x0c, 0x0f, 0x78, 0xc8, 0xb4, 0x60, 0x67, 0x71, 0x22, 0x19, 0x53, 0x85, 0xb1, 0x41, 0xae,
+ 0x4d, 0x91, 0xc6, 0x8c, 0x28, 0xac, 0xcf, 0x60, 0x59, 0xe4, 0x8b, 0x40, 0xaf, 0xff, 0xdc, 0xa4,
+ 0xe7, 0xf5, 0xbd, 0xe9, 0xc9, 0xd9, 0x3a, 0x59, 0xa0, 0x5b, 0xa1, 0x77, 0x4d, 0xa8, 0x0d, 0xdf,
+ 0x64, 0xa7, 0x63, 0xd1, 0x95, 0x98, 0x90, 0x99, 0xf5, 0x72, 0x85, 0x34, 0xcc, 0x71, 0x9f, 0x5b,
+ 0x58, 0x47, 0xa3, 0x6e, 0x98, 0x73, 0xb9, 0xbc, 0x87, 0x52, 0xc0, 0x06, 0x34, 0x0d, 0x15, 0xb1,
+ 0x1d, 0x14, 0x97, 0x4c, 0xae, 0x6b, 0x73, 0xf7, 0x78, 0xa6, 0x6f, 0x9b, 0xdd, 0xa4, 0x5b, 0xcc,
+ 0xe2, 0xb2, 0x3e, 0xf7, 0x0a, 0x8a, 0xb6, 0x73, 0xd1, 0x20, 0xd0, 0x3a, 0xc1, 0x65, 0x9d, 0x19,
+ 0x53, 0x98, 0x55, 0xe3, 0xd8, 0xb3, 0x76, 0x2d, 0x50, 0x91, 0xaa, 0x0b, 0x91, 0x46, 0x81, 0xae,
+ 0xcb, 0x60, 0xc0, 0xfd, 0x5c, 0x3d, 0x15, 0xb3, 0xf4, 0xbd, 0x02, 0xed, 0x65, 0xe1, 0x9e, 0x8d,
+ 0xb6, 0xc2, 0x71, 0x37, 0xc4, 0x3c, 0xf3, 0x4c, 0x9a, 0xfc, 0x90, 0xb3, 0x48, 0x11, 0xdd, 0x99,
+ 0x6e, 0x35, 0x4b, 0xbc, 0x3e, 0x9b, 0xa6, 0x96, 0x41, 0xf5, 0x79, 0x30, 0xdb, 0x34, 0x51, 0x0d,
+ 0x56, 0x65, 0x20, 0x49, 0x1a, 0x48, 0x12, 0x53, 0x35, 0xc2, 0x4f, 0x4c, 0xd9, 0x41, 0x06, 0xf2,
+ 0x3c, 0x90, 0x67, 0x54, 0x8d, 0xb4, 0x6e, 0xe5, 0x17, 0xba, 0xdd, 0xf8, 0xaf, 0x74, 0x2b, 0xef,
+ 0xe8, 0xf6, 0x10, 0x4a, 0xb6, 0x16, 0x44, 0x8a, 0x34, 0xf1, 0x99, 0xc4, 0x4f, 0x6b, 0x0b, 0x8d,
+ 0x95, 0xdd, 0xad, 0xb9, 0x89, 0xb1, 0x49, 0xe9, 0x1b, 0xa4, 0x5b, 0xf4, 0x67, 0xbe, 0x4c, 0xab,
+ 0xcf, 0x0e, 0xaf, 0xf7, 0xa6, 0xc4, 0x25, 0x8b, 0xc8, 0x58, 0xa4, 0x91, 0xc2, 0x5f, 0xd9, 0x56,
+ 0x6f, 0xbd, 0xfd, 0x40, 0x7a, 0xda, 0x77, 0xa2, 0x5d, 0x68, 0x1b, 0x90, 0x39, 0xab, 0x64, 0xe4,
+ 0xf2, 0xad, 0x24, 0x92, 0x92, 0xbf, 0x7c, 0x52, 0xf8, 0x6b, 0x13, 0x50, 0xd2, 0x27, 0x96, 0xec,
+ 0xc7, 0xb7, 0xb2, 0x4f, 0x8f, 0x3f, 0x29, 0xb4, 0x05, 0xab, 0x2a, 0x49, 0xa5, 0x22, 0x81, 0x18,
+ 0x53, 0x1e, 0xe1, 0xaa, 0xc9, 0xcb, 0x8a, 0xb1, 0xb5, 0x8d, 0x09, 0xbd, 0x83, 0x67, 0xb9, 0xc2,
+ 0x32, 0x5d, 0x12, 0x76, 0x6d, 0x86, 0x9b, 0x12, 0xf8, 0x9b, 0xda, 0x42, 0xe3, 0xb1, 0xfb, 0x34,
+ 0x03, 0x64, 0xa2, 0xec, 0x18, 0xb7, 0x27, 0xd0, 0x21, 0x6c, 0xe5, 0xa1, 0x57, 0x3c, 0x51, 0x29,
+ 0x0d, 0xe7, 0x50, 0xd4, 0x0c, 0xc5, 0xd7, 0x19, 0xf0, 0x83, 0xc5, 0xdd, 0x65, 0x3a, 0x86, 0x7a,
+ 0xce, 0x74, 0x77, 0x6c, 0xcf, 0x50, 0x6d, 0x19, 0xaa, 0xcd, 0x0c, 0xd9, 0x9e, 0x02, 0xdd, 0x34,
+ 0x9c, 0x72, 0xbd, 0x80, 0x52, 0x22, 0x84, 0x22, 0x11, 0x1d, 0x33, 0x19, 0x53, 0x9f, 0xe1, 0xba,
+ 0x6d, 0x17, 0xda, 0x7a, 0x9a, 0x1b, 0xd1, 0x9f, 0x61, 0x3d, 0x14, 0x3e, 0x0d, 0xb9, 0x9a, 0x90,
+ 0xf0, 0x82, 0x48, 0x3b, 0x09, 0xf0, 0xb7, 0x46, 0x12, 0xdf, 0xcd, 0x2d, 0x65, 0x37, 0xc3, 0x77,
+ 0x05, 0x0d, 0xf6, 0x69, 0x48, 0x23, 0x9f, 0x25, 0xd9, 0x04, 0x71, 0x2b, 0x39, 0x59, 0xf7, 0x22,
+ 0x33, 0xa1, 0x16, 0x94, 0x83, 0x68, 0x2a, 0xb9, 0x84, 0x2a, 0x86, 0x7f, 0x7d, 0xef, 0xb8, 0x0b,
+ 0xa2, 0x5c, 0x6d, 0x2e, 0x55, 0x0c, 0x7d, 0x07, 0x4f, 0xf2, 0x17, 0x44, 0xf6, 0xe6, 0xb8, 0xa0,
+ 0xca, 0x1f, 0xe1, 0x17, 0xa6, 0xde, 0x28, 0xf3, 0xd9, 0x47, 0xc7, 0xbe, 0xf6, 0xa0, 0xdf, 0x01,
+ 0x9e, 0x45, 0x92, 0x31, 0xbd, 0x26, 0x2c, 0x52, 0x09, 0x67, 0x12, 0xbf, 0xac, 0x39, 0x8d, 0xa2,
+ 0xbb, 0x91, 0x4c, 0xe1, 0x27, 0xf4, 0xba, 0x63, 0x9d, 0xa8, 0x0b, 0x1b, 0x5f, 0x04, 0xea, 0x31,
+ 0x8d, 0x5f, 0xdd, 0xb7, 0x69, 0x74, 0x9b, 0x50, 0x8f, 0x6a, 0xf4, 0x13, 0x54, 0x46, 0xbb, 0x24,
+ 0x8d, 0x87, 0x09, 0xbd, 0xb9, 0xd0, 0xf8, 0x37, 0xa6, 0xc1, 0xee, 0xdc, 0xd7, 0x41, 0x0e, 0x77,
+ 0xcf, 0x6d, 0x5c, 0xd6, 0x3b, 0xd6, 0x46, 0xb7, 0x0d, 0xd5, 0xbf, 0x39, 0xb0, 0x31, 0xb7, 0xcd,
+ 0xa0, 0x53, 0x58, 0x34, 0xc3, 0xd4, 0x31, 0x2b, 0xfd, 0xf0, 0x3f, 0xf5, 0xaa, 0xa6, 0x99, 0xa8,
+ 0x86, 0xa7, 0xde, 0x86, 0x45, 0x33, 0x48, 0x2b, 0x50, 0x74, 0x3b, 0xef, 0x8f, 0xfa, 0x9e, 0xfb,
+ 0x91, 0xf4, 0x4e, 0xbb, 0x1f, 0xcb, 0x0f, 0x50, 0x11, 0x1e, 0xef, 0x75, 0xbb, 0xbd, 0x3f, 0x90,
+ 0xbd, 0xd3, 0x8f, 0x65, 0xa7, 0xbe, 0xb8, 0x5c, 0x28, 0x17, 0xb6, 0x9f, 0x7c, 0x38, 0x72, 0xbd,
+ 0xf3, 0xbd, 0x2e, 0xe9, 0x77, 0xdc, 0x0f, 0x47, 0xad, 0x8e, 0x01, 0xd7, 0xdf, 0xc1, 0xc6, 0xdc,
+ 0xb1, 0x8d, 0x96, 0x60, 0xa1, 0x77, 0x70, 0x50, 0x7e, 0x80, 0x56, 0x60, 0xa9, 0xdd, 0x39, 0xd8,
+ 0x3b, 0xef, 0x7a, 0x65, 0x07, 0x01, 0x3c, 0xea, 0x7b, 0xee, 0x51, 0xcb, 0x2b, 0x17, 0xea, 0x2f,
+ 0x01, 0xa6, 0xe3, 0x18, 0x2d, 0xc3, 0xe2, 0x69, 0xef, 0xb4, 0x53, 0x7e, 0x80, 0x4a, 0x00, 0x27,
+ 0xe7, 0x66, 0x25, 0xaf, 0xdb, 0x2f, 0x3b, 0xf5, 0x57, 0x50, 0xf9, 0x62, 0x2e, 0x69, 0xb8, 0xd7,
+ 0xf9, 0xa3, 0x57, 0x7e, 0xa0, 0x7f, 0x1d, 0xf7, 0x7b, 0xa7, 0x65, 0xa7, 0xbe, 0x0b, 0x6b, 0x77,
+ 0xf2, 0x8b, 0x10, 0x94, 0xda, 0x3d, 0x72, 0xda, 0xf3, 0xc8, 0xf9, 0xd9, 0x7b, 0x77, 0xaf, 0xdd,
+ 0xb1, 0x1b, 0xca, 0x3f, 0x9c, 0xe3, 0xc5, 0xe5, 0xb5, 0x72, 0xf9, 0x78, 0x71, 0x19, 0x95, 0xd7,
+ 0xeb, 0x12, 0x56, 0x67, 0x7b, 0x1a, 0xc2, 0xb0, 0x94, 0xcf, 0x14, 0xfb, 0x6c, 0xce, 0x3f, 0xd1,
+ 0x11, 0xac, 0xaa, 0x50, 0xe6, 0x57, 0x4b, 0x9a, 0x67, 0xf2, 0xca, 0xee, 0xcb, 0x9f, 0x79, 0xa9,
+ 0x79, 0xdd, 0x7e, 0xfe, 0x24, 0x73, 0x57, 0x54, 0x28, 0xf3, 0x8f, 0xfa, 0xdf, 0x17, 0xe0, 0xf9,
+ 0xcf, 0x5c, 0x3f, 0xf4, 0x13, 0x40, 0xc0, 0xa5, 0x4a, 0xf8, 0x45, 0xaa, 0x74, 0xf1, 0x75, 0x3f,
+ 0xfe, 0xfd, 0x2f, 0xbd, 0xc4, 0xcd, 0xf6, 0x0d, 0x85, 0x3b, 0x43, 0x87, 0xce, 0x61, 0x59, 0x3f,
+ 0xc2, 0x85, 0x7d, 0xea, 0x6b, 0xea, 0x77, 0xbf, 0x98, 0xfa, 0x20, 0x23, 0x70, 0x6f, 0xa8, 0xaa,
+ 0x7f, 0x75, 0x00, 0xa6, 0x2b, 0x22, 0x04, 0x8b, 0x83, 0x44, 0x8c, 0xb3, 0x24, 0x9a, 0xdf, 0xa8,
+ 0x0f, 0x05, 0x25, 0xb2, 0x35, 0x5b, 0xff, 0xc7, 0x71, 0x9a, 0x9e, 0xd0, 0xb7, 0x7c, 0xe2, 0x16,
+ 0x94, 0xa8, 0x7e, 0x0f, 0x4b, 0xd9, 0x27, 0x2a, 0xc3, 0xc2, 0x25, 0x9b, 0x64, 0x4b, 0xea, 0x9f,
+ 0xe8, 0x09, 0x3c, 0xbc, 0xa2, 0x61, 0xca, 0x4c, 0xb1, 0x8a, 0xae, 0xfd, 0xf8, 0xa1, 0xf0, 0xd6,
+ 0xa9, 0x36, 0x61, 0x39, 0x3f, 0xc4, 0xdc, 0xbd, 0x96, 0xb2, 0xbd, 0x6a, 0x4b, 0x41, 0x89, 0xfd,
+ 0xc6, 0x3f, 0x3f, 0x6f, 0x3a, 0xff, 0xfa, 0xbc, 0xe9, 0xfc, 0xfb, 0xf3, 0xa6, 0xf3, 0xa7, 0xaa,
+ 0xdd, 0x3c, 0x17, 0x3b, 0x34, 0xe6, 0x3b, 0xb7, 0xfe, 0xca, 0x5d, 0x3c, 0x32, 0x1d, 0xe5, 0xcd,
+ 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x62, 0x2f, 0xd5, 0x1d, 0x33, 0x0e, 0x00, 0x00,
}
func (m *MeshConfig) Marshal() (dAtA []byte, err error) {
@@ -1298,9 +1198,9 @@ func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x32
i++
i = encodeVarintConfig(dAtA, i, uint64(m.ConnectTimeout.Size()))
- n1, err1 := m.ConnectTimeout.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := m.ConnectTimeout.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
}
@@ -1330,9 +1230,9 @@ func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x5a
i++
i = encodeVarintConfig(dAtA, i, uint64(m.RdsRefreshDelay.Size()))
- n2, err2 := m.RdsRefreshDelay.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := m.RdsRefreshDelay.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
}
@@ -1356,9 +1256,9 @@ func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x72
i++
i = encodeVarintConfig(dAtA, i, uint64(m.DefaultConfig.Size()))
- n3, err3 := m.DefaultConfig.MarshalTo(dAtA[i:])
- if err3 != nil {
- return 0, err3
+ n3, err := m.DefaultConfig.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n3
}
@@ -1376,9 +1276,9 @@ func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1
i++
i = encodeVarintConfig(dAtA, i, uint64(m.OutboundTrafficPolicy.Size()))
- n4, err4 := m.OutboundTrafficPolicy.MarshalTo(dAtA[i:])
- if err4 != nil {
- return 0, err4
+ n4, err := m.OutboundTrafficPolicy.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n4
}
@@ -1408,9 +1308,9 @@ func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1
i++
i = encodeVarintConfig(dAtA, i, uint64(m.SdsRefreshDelay.Size()))
- n5, err5 := m.SdsRefreshDelay.MarshalTo(dAtA[i:])
- if err5 != nil {
- return 0, err5
+ n5, err := m.SdsRefreshDelay.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n5
}
@@ -1481,9 +1381,9 @@ func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1
i++
i = encodeVarintConfig(dAtA, i, uint64(m.TcpKeepalive.Size()))
- n6, err6 := m.TcpKeepalive.MarshalTo(dAtA[i:])
- if err6 != nil {
- return 0, err6
+ n6, err := m.TcpKeepalive.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n6
}
@@ -1576,9 +1476,9 @@ func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2
i++
i = encodeVarintConfig(dAtA, i, uint64(m.LocalityLbSetting.Size()))
- n7, err7 := m.LocalityLbSetting.MarshalTo(dAtA[i:])
- if err7 != nil {
- return 0, err7
+ n7, err := m.LocalityLbSetting.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n7
}
@@ -1588,9 +1488,9 @@ func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2
i++
i = encodeVarintConfig(dAtA, i, uint64(m.DnsRefreshRate.Size()))
- n8, err8 := m.DnsRefreshRate.MarshalTo(dAtA[i:])
- if err8 != nil {
- return 0, err8
+ n8, err := m.DnsRefreshRate.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n8
}
@@ -1619,9 +1519,9 @@ func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2
i++
i = encodeVarintConfig(dAtA, i, uint64(m.ReportBatchMaxTime.Size()))
- n9, err9 := m.ReportBatchMaxTime.MarshalTo(dAtA[i:])
- if err9 != nil {
- return 0, err9
+ n9, err := m.ReportBatchMaxTime.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n9
}
@@ -1644,20 +1544,6 @@ func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) {
i++
i = encodeVarintConfig(dAtA, i, uint64(m.H2UpgradePolicy))
}
- if len(m.Features) > 0 {
- for _, msg := range m.Features {
- dAtA[i] = 0xd2
- i++
- dAtA[i] = 0x2
- i++
- i = encodeVarintConfig(dAtA, i, uint64(msg.Size()))
- n, err := msg.MarshalTo(dAtA[i:])
- if err != nil {
- return 0, err
- }
- i += n
- }
- }
if m.XXX_unrecognized != nil {
i += copy(dAtA[i:], m.XXX_unrecognized)
}
@@ -1715,9 +1601,9 @@ func (m *ConfigSource) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintConfig(dAtA, i, uint64(m.TlsSettings.Size()))
- n10, err10 := m.TlsSettings.MarshalTo(dAtA[i:])
- if err10 != nil {
- return 0, err10
+ n10, err := m.TlsSettings.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n10
}
@@ -1848,42 +1734,6 @@ func (m *LocalityLoadBalancerSetting_Failover) MarshalTo(dAtA []byte) (int, erro
return i, nil
}
-func (m *Feature) 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 *Feature) MarshalTo(dAtA []byte) (int, error) {
- var i int
- _ = i
- var l int
- _ = l
- if m.Feature != 0 {
- dAtA[i] = 0x8
- i++
- i = encodeVarintConfig(dAtA, i, uint64(m.Feature))
- }
- if m.Enable {
- dAtA[i] = 0x10
- i++
- if m.Enable {
- dAtA[i] = 1
- } else {
- dAtA[i] = 0
- }
- i++
- }
- if m.XXX_unrecognized != nil {
- i += copy(dAtA[i:], m.XXX_unrecognized)
- }
- return i, nil
-}
-
func encodeVarintConfig(dAtA []byte, offset int, v uint64) int {
for v >= 1<<7 {
dAtA[offset] = uint8(v&0x7f | 0x80)
@@ -2047,12 +1897,6 @@ func (m *MeshConfig) Size() (n int) {
if m.H2UpgradePolicy != 0 {
n += 2 + sovConfig(uint64(m.H2UpgradePolicy))
}
- if len(m.Features) > 0 {
- for _, e := range m.Features {
- l = e.Size()
- n += 2 + l + sovConfig(uint64(l))
- }
- }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -2162,24 +2006,6 @@ func (m *LocalityLoadBalancerSetting_Failover) Size() (n int) {
return n
}
-func (m *Feature) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- if m.Feature != 0 {
- n += 1 + sovConfig(uint64(m.Feature))
- }
- if m.Enable {
- n += 2
- }
- if m.XXX_unrecognized != nil {
- n += len(m.XXX_unrecognized)
- }
- return n
-}
-
func sovConfig(x uint64) (n int) {
for {
n++
@@ -3309,40 +3135,6 @@ func (m *MeshConfig) Unmarshal(dAtA []byte) error {
break
}
}
- case 42:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Features", wireType)
- }
- var msglen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowConfig
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- msglen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if msglen < 0 {
- return ErrInvalidLengthConfig
- }
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return ErrInvalidLengthConfig
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Features = append(m.Features, &Feature{})
- if err := m.Features[len(m.Features)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
- iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipConfig(dAtA[iNdEx:])
@@ -4002,99 +3794,6 @@ func (m *LocalityLoadBalancerSetting_Failover) Unmarshal(dAtA []byte) error {
}
return nil
}
-func (m *Feature) 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 ErrIntOverflowConfig
- }
- 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: Feature: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: Feature: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Feature", wireType)
- }
- m.Feature = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowConfig
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Feature |= FeatureName(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 2:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Enable", wireType)
- }
- var v int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowConfig
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- v |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- m.Enable = bool(v != 0)
- default:
- iNdEx = preIndex
- skippy, err := skipConfig(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if skippy < 0 {
- return ErrInvalidLengthConfig
- }
- if (iNdEx + skippy) < 0 {
- return ErrInvalidLengthConfig
- }
- 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 skipConfig(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0
diff --git a/vendor/istio.io/api/mesh/v1alpha1/config.proto b/vendor/istio.io/api/mesh/v1alpha1/config.proto
index 4767dad915b4..631366550db7 100644
--- a/vendor/istio.io/api/mesh/v1alpha1/config.proto
+++ b/vendor/istio.io/api/mesh/v1alpha1/config.proto
@@ -306,11 +306,8 @@ message MeshConfig {
// It can be enabled by destination using the destinationRule.trafficPolicy.connectionPool.http.h2UpgradePolicy override.
H2UpgradePolicy h2_upgrade_policy = 41;
- // Optional: Features is used to enable/disable specific features.
- repeated Feature features = 42;
-
// $hide_from_docs
- // Next available field number: 43
+ // Next available field number: 42
}
// ConfigSource describes information about a configuration store inside a
@@ -422,19 +419,3 @@ message LocalityLoadBalancerSetting{
// Note: if no OutlierDetection specified, this will not take effect.
repeated Failover failover = 2;
}
-
-// FeatureName describes the features which are currently supported.
-enum FeatureName {
- // The locality aware routing feature.
- // It is enabled by default in release 1.13.
- LOCALITY_AWARE_ROUTING = 0;
-}
-
-// Feature specify to enable or disable a specific feature.
-message Feature {
- // Feature is the name of the feature.
- FeatureName feature = 1;
-
- // Specify true to enable the feature or false to disable the feature.
- bool enable = 2;
-}
diff --git a/vendor/istio.io/api/mesh/v1alpha1/istio.mesh.v1alpha1.json b/vendor/istio.io/api/mesh/v1alpha1/istio.mesh.v1alpha1.json
new file mode 100644
index 000000000000..7b3c75e94e25
--- /dev/null
+++ b/vendor/istio.io/api/mesh/v1alpha1/istio.mesh.v1alpha1.json
@@ -0,0 +1,733 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Configuration affecting the service mesh as a whole.",
+ "version": "v1alpha1"
+ },
+ "components": {
+ "schemas": {
+ "istio.mesh.v1alpha1.MeshConfig": {
+ "description": "MeshConfig defines mesh-wide variables shared by all Envoy instances in the Istio service mesh.",
+ "type": "object",
+ "properties": {
+ "connectTimeout": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "tcpKeepalive": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive"
+ },
+ "h2UpgradePolicy": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.H2UpgradePolicy"
+ },
+ "outboundTrafficPolicy": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy"
+ },
+ "mixerCheckServer": {
+ "description": "Address of the server that will be used by the proxies for policy check calls. By using different names for mixerCheckServer and mixerReportServer, it is possible to have one set of Mixer servers handle policy check calls while another set of Mixer servers handle telemetry calls.",
+ "type": "string",
+ "format": "string"
+ },
+ "mixerReportServer": {
+ "description": "Address of the server that will be used by the proxies for policy report calls.",
+ "type": "string",
+ "format": "string"
+ },
+ "disablePolicyChecks": {
+ "description": "Disable policy checks by the Mixer service. Default is false, i.e. Mixer policy check is enabled by default.",
+ "type": "boolean"
+ },
+ "policyCheckFailOpen": {
+ "description": "Allow all traffic in cases when the Mixer policy service cannot be reached. Default is false which means the traffic is denied when the client is unable to connect to Mixer.",
+ "type": "boolean"
+ },
+ "sidecarToTelemetrySessionAffinity": {
+ "description": "Enable session affinity for Envoy Mixer reports so that calls from a proxy will always target the same Mixer instance.",
+ "type": "boolean"
+ },
+ "proxyListenPort": {
+ "description": "Port on which Envoy should listen for incoming connections from other services.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "proxyHttpPort": {
+ "description": "Port on which Envoy should listen for HTTP PROXY requests if set.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "ingressClass": {
+ "description": "Class of ingress resources to be processed by Istio ingress controller. This corresponds to the value of \"kubernetes.io/ingress.class\" annotation.",
+ "type": "string",
+ "format": "string"
+ },
+ "ingressService": {
+ "description": "Name of theKubernetes service used for the istio ingress controller.",
+ "type": "string",
+ "format": "string"
+ },
+ "ingressControllerMode": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.IngressControllerMode"
+ },
+ "authPolicy": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.AuthPolicy"
+ },
+ "rdsRefreshDelay": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "enableTracing": {
+ "description": "Flag to control generation of trace spans and request IDs. Requires a trace span collector defined in the proxy configuration.",
+ "type": "boolean"
+ },
+ "accessLogFile": {
+ "description": "File address for the proxy access log (e.g. /dev/stdout). Empty value disables access logging.",
+ "type": "string",
+ "format": "string"
+ },
+ "accessLogFormat": {
+ "description": "Format for the proxy access log Empty value results in proxy's default access log format",
+ "type": "string",
+ "format": "string"
+ },
+ "accessLogEncoding": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.AccessLogEncoding"
+ },
+ "enableEnvoyAccessLogService": {
+ "description": "This flag enables Envoy's gRPC Access Log Service. See [Access Log Service](https://www.envoyproxy.io/docs/envoy/latest/api-v2/config/accesslog/v2/als.proto) for details about Envoy's gRPC Access Log Service API.",
+ "type": "boolean"
+ },
+ "defaultConfig": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.ProxyConfig"
+ },
+ "mixerAddress": {
+ "description": "$hide_from_docs",
+ "type": "string",
+ "format": "string"
+ },
+ "enableClientSidePolicyCheck": {
+ "description": "Enables clide side policy checks.",
+ "type": "boolean"
+ },
+ "sdsUdsPath": {
+ "description": "Unix Domain Socket through which Envoy communicates with NodeAgent SDS to get key/cert for mTLS. Use secret-mount files instead of SDS if set to empty.",
+ "type": "string",
+ "format": "string"
+ },
+ "sdsRefreshDelay": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "configSources": {
+ "description": "ConfigSource describes a source of configuration data for networking rules, and other Istio configuration artifacts. Multiple data sources can be configured for a single control plane.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.ConfigSource"
+ }
+ },
+ "enableSdsTokenMount": {
+ "description": "This flag is used by secret discovery service(SDS). If set to true ([prerequisite](https://kubernetes.io/docs/concepts/storage/volumes/#projected)), Istio will inject volumes mount for Kubernetes service account trustworthy JWT(which is available with Kubernetes 1.12 or higher), so that the Kubernetes API server mounts Kubernetes service account trustworthy JWT to the Envoy container, which will be used to request key/cert eventually. This isn't supported for non-Kubernetes cases.",
+ "type": "boolean"
+ },
+ "sdsUseK8sSaJwt": {
+ "description": "This flag is used by secret discovery service(SDS). If set to true, Envoy will fetch a normal Kubernetes service account JWT from '/var/run/secrets/kubernetes.io/serviceaccount/token' (https://kubernetes.io/docs/tasks/access-application-cluster/access-cluster/#accessing-the-api-from-a-pod) and pass to sds server, which will be used to request key/cert eventually. If both enable_sds_token_mount and sds_use_k8s_sa_jwt are set to true, enable_sds_token_mount(trustworthy jwt) takes precedence. This isn't supported for non-k8s case.",
+ "type": "boolean"
+ },
+ "trustDomain": {
+ "description": "The trust domain corresponds to the trust root of a system. Refer to [SPIFEE-ID](https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE-ID.md#21-trust-domain) Fallback to old identity format(without trust domain) if not set.",
+ "type": "string",
+ "format": "string"
+ },
+ "defaultServiceExportTo": {
+ "description": "The default value for the ServiceEntry.export_to field and services imported through container registry integrations, e.g. this applies to Kubernetes Service resources. The value is a list of namespace names and reserved namespace aliases. The allowed namespace aliases are: * - All Namespaces . - Current Namespace ~ - No Namespace",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "defaultVirtualServiceExportTo": {
+ "description": "The default value for the VirtualService.export_to field. Has the same syntax as 'default_service_export_to'.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "defaultDestinationRuleExportTo": {
+ "description": "The default value for the DestinationRule.export_to field. Has the same syntax as 'default_service_export_to'.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "rootNamespace": {
+ "description": "The namespace to treat as the administrative root namespace for Istio configuration. When processing a leaf namespace Istio will search for declarations in that namespace first and if none are found it will search in the root namespace. Any matching declaration found in the root namespace is processed as if it were declared in the leaf namespace.",
+ "type": "string",
+ "format": "string"
+ },
+ "localityLbSetting": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.LocalityLoadBalancerSetting"
+ },
+ "dnsRefreshRate": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "disableReportBatch": {
+ "description": "The flag to disable report batch.",
+ "type": "boolean"
+ },
+ "reportBatchMaxEntries": {
+ "description": "When disable_report_batch is false, this value specifies the maximum number of requests that are batched in report. If left unspecified, the default value of report_batch_max_entries == 0 will use the hardcoded defaults of istio::mixerclient::ReportOptions.",
+ "type": "integer"
+ },
+ "reportBatchMaxTime": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ }
+ }
+ },
+ "istio.mesh.v1alpha1.MeshConfig.IngressControllerMode": {
+ "enum": [
+ "OFF",
+ "DEFAULT",
+ "STRICT"
+ ],
+ "default": "OFF"
+ },
+ "istio.mesh.v1alpha1.MeshConfig.AuthPolicy": {
+ "description": "$hide_from_docs",
+ "enum": [
+ "NONE",
+ "MUTUAL_TLS"
+ ],
+ "default": "NONE"
+ },
+ "istio.mesh.v1alpha1.MeshConfig.AccessLogEncoding": {
+ "enum": [
+ "TEXT",
+ "JSON"
+ ],
+ "default": "TEXT"
+ },
+ "istio.mesh.v1alpha1.ProxyConfig": {
+ "description": "ProxyConfig defines variables for individual Envoy instances.",
+ "type": "object",
+ "properties": {
+ "connectTimeout": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "configPath": {
+ "description": "Path to the generated configuration file directory. Proxy agent generates the actual configuration and stores it in this directory.",
+ "type": "string",
+ "format": "string"
+ },
+ "binaryPath": {
+ "description": "Path to the proxy binary",
+ "type": "string",
+ "format": "string"
+ },
+ "serviceCluster": {
+ "description": "Service cluster defines the name for the service_cluster that is shared by all Envoy instances. This setting corresponds to _--service-cluster_ flag in Envoy. In a typical Envoy deployment, the _service-cluster_ flag is used to identify the caller, for source-based routing scenarios.",
+ "type": "string",
+ "format": "string"
+ },
+ "drainDuration": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "parentShutdownDuration": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "discoveryAddress": {
+ "description": "Address of the discovery service exposing xDS with mTLS connection.",
+ "type": "string",
+ "format": "string"
+ },
+ "discoveryRefreshDelay": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "zipkinAddress": {
+ "description": "Address of the Zipkin service (e.g. _zipkin:9411_). DEPRECATED: Use [tracing][istio.mesh.v1alpha1.ProxyConfig.tracing] instead.",
+ "type": "string",
+ "format": "string"
+ },
+ "statsdUdpAddress": {
+ "description": "IP Address and Port of a statsd UDP listener (e.g. _10.75.241.127:9125_).",
+ "type": "string",
+ "format": "string"
+ },
+ "envoyMetricsServiceAddress": {
+ "description": "Address of the Envoy Metrics Service implementation (e.g. metrics-service:15000). See [Metric Service](https://www.envoyproxy.io/docs/envoy/latest/api-v2/config/metrics/v2/metrics_service.proto) for details about Envoy's Metrics Service API.",
+ "type": "string",
+ "format": "string"
+ },
+ "proxyAdminPort": {
+ "description": "Port on which Envoy should listen for administrative commands.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "availabilityZone": {
+ "description": "$hide_from_docs",
+ "type": "string",
+ "format": "string"
+ },
+ "controlPlaneAuthPolicy": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.AuthenticationPolicy"
+ },
+ "customConfigFile": {
+ "description": "File path of custom proxy configuration, currently used by proxies in front of Mixer and Pilot.",
+ "type": "string",
+ "format": "string"
+ },
+ "statNameLength": {
+ "description": "Maximum length of name field in Envoy's metrics. The length of the name field is determined by the length of a name field in a service and the set of labels that comprise a particular version of the service. The default value is set to 189 characters. Envoy's internal metrics take up 67 characters, for a total of 256 character name per metric. Increase the value of this field if you find that the metrics from Envoys are truncated.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "concurrency": {
+ "description": "The number of worker threads to run. Default value is number of cores on the machine.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "proxyBootstrapTemplatePath": {
+ "description": "Path to the proxy bootstrap template file",
+ "type": "string",
+ "format": "string"
+ },
+ "interceptionMode": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.ProxyConfig.InboundInterceptionMode"
+ },
+ "tracing": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.Tracing"
+ },
+ "sds": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.SDS"
+ },
+ "envoyAccessLogServiceAddress": {
+ "description": "Address of the service to which access logs from Envoys should be sent. (e.g. accesslog-service:15000). See [Access Log Service](https://www.envoyproxy.io/docs/envoy/latest/api-v2/config/accesslog/v2/als.proto) for details about Envoy's gRPC Access Log Service API.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy": {
+ "type": "object",
+ "properties": {
+ "mode": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.Mode"
+ }
+ }
+ },
+ "istio.mesh.v1alpha1.ConfigSource": {
+ "description": "ConfigSource describes information about a configuration store inside a mesh. A single control plane instance can interact with one or more data sources.",
+ "type": "object",
+ "properties": {
+ "address": {
+ "description": "Address of the server implementing the Istio Mesh Configuration protocol (MCP). Can be IP address or a fully qualified DNS name. Use fs:/// to specify a file-based backend with absolute path to the directory.",
+ "type": "string",
+ "format": "string"
+ },
+ "tlsSettings": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.TLSSettings"
+ }
+ }
+ },
+ "istio.mesh.v1alpha1.LocalityLoadBalancerSetting": {
+ "description": "Locality-weighted load balancing allows administrators to control the distribution of traffic to endpoints based on the localities of where the traffic originates and where it will terminate. These localities are specified using arbitrary labels that designate a hierarchy of localities in {region}/{zone}/{sub-zone} form. For additional detail refer to [Locality Weight](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/locality_weight) The following example shows how to setup locality weights mesh-wide.",
+ "type": "object",
+ "properties": {
+ "distribute": {
+ "description": "Optional: only one of distribute or failover can be set. Explicitly specify loadbalancing weight across different zones and geographical locations. Refer to [Locality weighted load balancing](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/locality_weight) If empty, the locality weight is set according to the endpoints number within it.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.LocalityLoadBalancerSetting.Distribute"
+ }
+ },
+ "failover": {
+ "description": "Optional: only failover or distribute can be set. Explicitly specify the region traffic will land on when endpoints in local region becomes unhealthy. Should be used together with OutlierDetection to detect unhealthy endpoints. Note: if no OutlierDetection specified, this will not take effect.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.LocalityLoadBalancerSetting.Failover"
+ }
+ }
+ }
+ },
+ "istio.mesh.v1alpha1.MeshConfig.H2UpgradePolicy": {
+ "description": "Default Policy for upgrading http1.1 connections to http2.",
+ "enum": [
+ "DO_NOT_UPGRADE",
+ "UPGRADE"
+ ],
+ "default": "DO_NOT_UPGRADE"
+ },
+ "istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.Mode": {
+ "enum": [
+ "REGISTRY_ONLY",
+ "ALLOW_ANY"
+ ],
+ "default": "REGISTRY_ONLY"
+ },
+ "istio.mesh.v1alpha1.LocalityLoadBalancerSetting.Distribute": {
+ "description": "Describes how traffic originating in the 'from' zone or sub-zone is distributed over a set of 'to' zones. Syntax for specifying a zone is {region}/{zone}/{sub-zone} and terminal wildcards are allowed on any segment of the specification. Examples: * - matches all localities us-west/* - all zones and sub-zones within the us-west region us-west/zone-1/* - all sub-zones within us-west/zone-1",
+ "type": "object",
+ "required": [
+ "to"
+ ],
+ "properties": {
+ "from": {
+ "description": "Originating locality, '/' separated, e.g. 'region/zone/sub_zone'.",
+ "type": "string",
+ "format": "string"
+ },
+ "to": {
+ "description": "Map of upstream localities to traffic distribution weights. The sum of all weights should be == 100. Any locality not assigned a weight will receive no traffic.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "integer"
+ }
+ }
+ }
+ },
+ "istio.mesh.v1alpha1.LocalityLoadBalancerSetting.Failover": {
+ "description": "Specify the traffic failover policy across regions. Since zone and sub-zone failover is supported by default this only needs to be specified for regions when the operator needs to constrain traffic failover so that the default behavior of failing over to any endpoint globally does not apply. This is useful when failing over traffic across regions would not improve service health or may need to be restricted for other reasons like regulatory controls.",
+ "type": "object",
+ "properties": {
+ "from": {
+ "description": "Originating region.",
+ "type": "string",
+ "format": "string"
+ },
+ "to": {
+ "description": "Destination region the traffic will fail over to when endpoints in the 'from' region becomes unhealthy.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.mesh.v1alpha1.Network": {
+ "description": "Network provides information about the endpoints in a routable L3 network. A single routable L3 network can have one or more service registries. Note that the network has no relation to the locality of the endpoint. The endpoint locality will be obtained from the service registry.",
+ "type": "object",
+ "properties": {
+ "endpoints": {
+ "description": "REQUIRED: The list of endpoints in the network (obtained through the constituent service registries or from CIDR ranges). All endpoints in the network are directly accessible to one another.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.Network.NetworkEndpoints"
+ }
+ },
+ "gateways": {
+ "description": "REQUIRED: Set of gateways associated with the network.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.Network.IstioNetworkGateway"
+ }
+ }
+ }
+ },
+ "istio.mesh.v1alpha1.Network.NetworkEndpoints": {
+ "description": "NetworkEndpoints describes how the network associated with an endpoint should be inferred. An endpoint will be assigned to a network based on the following rules: 1. Implicitly: If the registry explicitly provides information about the network to which the endpoint belongs to. In some cases, its possible to indicate the network associated with the endpoint by adding the `ISTIO_META_NETWORK` environment variable to the sidecar.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "fromCidr": {
+ "description": "A CIDR range for the set of endpoints in this network. The CIDR ranges for endpoints from different networks must not overlap.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "fromRegistry": {
+ "description": "Add all endpoints from the specified registry into this network. The names of the registries should correspond to the secret name that was used to configure the registry (Kubernetes multicluster) or supplied by MCP server.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ ]
+ },
+ "istio.mesh.v1alpha1.Network.IstioNetworkGateway": {
+ "description": "The gateway associated with this network. Traffic from remote networks will arrive at the specified gateway:port. All incoming traffic must use mTLS.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "port": {
+ "description": "REQUIRED: The port associated with the gateway.",
+ "type": "integer"
+ },
+ "locality": {
+ "description": "The locality associated with an explicitly specified gateway (i.e. ip)",
+ "type": "string",
+ "format": "string"
+ },
+ "registryServiceName": {
+ "description": "A fully qualified domain name of the gateway service. Pilot will lookup the service from the service registries in the network and obtain the endpoint IPs of the gateway from the service registry. Note that while the service name is a fully qualified domain name, it need not be resolvable outside the orchestration platform for the registry. e.g., this could be istio-ingressgateway.istio-system.svc.cluster.local.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "port": {
+ "description": "REQUIRED: The port associated with the gateway.",
+ "type": "integer"
+ },
+ "address": {
+ "description": "IP address or externally resolvable DNS address associated with the gateway.",
+ "type": "string",
+ "format": "string"
+ },
+ "locality": {
+ "description": "The locality associated with an explicitly specified gateway (i.e. ip)",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ ]
+ },
+ "istio.mesh.v1alpha1.MeshNetworks": {
+ "description": "MeshNetworks (config map) provides information about the set of networks inside a mesh and how to route to endpoints in each network. For example",
+ "type": "object",
+ "required": [
+ "networks"
+ ],
+ "properties": {
+ "networks": {
+ "description": "REQUIRED: The set of networks inside this mesh. Each network should have a unique name and information about how to infer the endpoints in the network as well as the gateways associated with the network.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.Network"
+ }
+ }
+ }
+ },
+ "istio.mesh.v1alpha1.AuthenticationPolicy": {
+ "description": "AuthenticationPolicy defines authentication policy. It can be set for different scopes (mesh, service …), and the most narrow scope with non-INHERIT value will be used. Mesh policy cannot be INHERIT.",
+ "enum": [
+ "NONE",
+ "MUTUAL_TLS",
+ "INHERIT"
+ ],
+ "default": "NONE"
+ },
+ "istio.mesh.v1alpha1.Tracing": {
+ "description": "Tracing defines configuration for the tracing performed by Envoy instances.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "zipkin": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.Tracing.Zipkin"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "lightstep": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.Tracing.Lightstep"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "datadog": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.Tracing.Datadog"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "stackdriver": {
+ "$ref": "#/components/schemas/istio.mesh.v1alpha1.Tracing.Stackdriver"
+ }
+ }
+ }
+ ]
+ },
+ "istio.mesh.v1alpha1.Tracing.Zipkin": {
+ "description": "Zipkin defines configuration for a Zipkin tracer.",
+ "type": "object",
+ "properties": {
+ "address": {
+ "description": "Address of the Zipkin service (e.g. _zipkin:9411_).",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.mesh.v1alpha1.Tracing.Lightstep": {
+ "description": "Defines configuration for a LightStep tracer.",
+ "type": "object",
+ "properties": {
+ "address": {
+ "description": "Address of the LightStep Satellite pool.",
+ "type": "string",
+ "format": "string"
+ },
+ "accessToken": {
+ "description": "The LightStep access token.",
+ "type": "string",
+ "format": "string"
+ },
+ "secure": {
+ "description": "True if a secure connection should be used when communicating with the pool.",
+ "type": "boolean"
+ },
+ "cacertPath": {
+ "description": "Path to the trusted cacert used to authenticate the pool.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.mesh.v1alpha1.Tracing.Datadog": {
+ "description": "Datadog defines configuration for a Datadog tracer.",
+ "type": "object",
+ "properties": {
+ "address": {
+ "description": "Address of the Datadog Agent.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.mesh.v1alpha1.Tracing.Stackdriver": {
+ "description": "Stackdriver defines configuration for a Stackdriver tracer. See [Opencensus trace config](https://github.com/census-instrumentation/opencensus-proto/blob/master/src/opencensus/proto/trace/v1/trace_config.proto) for details.",
+ "type": "object",
+ "properties": {
+ "debug": {
+ "description": "debug enables trace output to stdout. $hide_from_docs",
+ "type": "boolean"
+ },
+ "maxNumberOfAttributes": {
+ "$ref": "#/components/schemas/google.protobuf.Int64Value"
+ },
+ "maxNumberOfAnnotations": {
+ "$ref": "#/components/schemas/google.protobuf.Int64Value"
+ },
+ "maxNumberOfMessageEvents": {
+ "$ref": "#/components/schemas/google.protobuf.Int64Value"
+ }
+ }
+ },
+ "istio.mesh.v1alpha1.SDS": {
+ "description": "SDS defines secret discovery service(SDS) configuration to be used by the proxy. For workload, its values are set in sidecar injector(passed as arguments to istio-proxy container). For pilot/mixer, it's passed as arguments to istio-proxy container in pilot/mixer deployment yaml files directly.",
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "description": "True if SDS is enabled.",
+ "type": "boolean"
+ },
+ "k8sSaJwtPath": {
+ "description": "Path of k8s service account JWT path.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.mesh.v1alpha1.ProxyConfig.InboundInterceptionMode": {
+ "description": "The mode used to redirect inbound traffic to Envoy. This setting has no effect on outbound traffic: iptables REDIRECT is always used for outbound connections.",
+ "enum": [
+ "REDIRECT",
+ "TPROXY"
+ ],
+ "default": "REDIRECT"
+ },
+ "google.protobuf.Duration": {
+ "description": "The time duration between keep-alive probes. Default is to use the OS level configuration (unless overridden, Linux defaults to 75s.)",
+ "type": "object",
+ "properties": {
+ "seconds": {
+ "description": "Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years",
+ "type": "integer",
+ "format": "int64"
+ },
+ "nanos": {
+ "description": "Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "google.protobuf.Int64Value": {
+ "description": "The global default max number of message events per span. default is 200. $hide_from_docs",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The int64 value.",
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive": {
+ "description": "If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.",
+ "type": "object",
+ "properties": {
+ "time": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "probes": {
+ "description": "Maximum number of keepalive probes to send without response before deciding the connection is dead. Default is to use the OS level configuration (unless overridden, Linux defaults to 9.)",
+ "type": "integer"
+ },
+ "interval": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.TLSSettings": {
+ "description": "Use the tls_settings to specify the tls mode to use. If the MCP server uses Istio mutual TLS and shares the root CA with Pilot, specify the TLS mode as `ISTIO_MUTUAL`.",
+ "type": "object",
+ "properties": {
+ "mode": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.TLSSettings.TLSmode"
+ },
+ "clientCertificate": {
+ "description": "REQUIRED if mode is `MUTUAL`. The path to the file holding the client-side TLS certificate to use. Should be empty if mode is `ISTIO_MUTUAL`.",
+ "type": "string",
+ "format": "string"
+ },
+ "privateKey": {
+ "description": "REQUIRED if mode is `MUTUAL`. The path to the file holding the client's private key. Should be empty if mode is `ISTIO_MUTUAL`.",
+ "type": "string",
+ "format": "string"
+ },
+ "caCertificates": {
+ "description": "OPTIONAL: The path to the file containing certificate authority certificates to use in verifying a presented server certificate. If omitted, the proxy will not verify the server's certificate. Should be empty if mode is `ISTIO_MUTUAL`.",
+ "type": "string",
+ "format": "string"
+ },
+ "subjectAltNames": {
+ "description": "A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of subject_alt_names from the ServiceEntry.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "sni": {
+ "description": "SNI string to present to the server during TLS handshake.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.TLSSettings.TLSmode": {
+ "description": "REQUIRED: Indicates whether connections to this port should be secured using TLS. The value of this field determines how TLS is enforced.",
+ "enum": [
+ "DISABLE",
+ "SIMPLE",
+ "MUTUAL",
+ "ISTIO_MUTUAL"
+ ],
+ "default": "DISABLE"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/vendor/istio.io/api/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html b/vendor/istio.io/api/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html
index 03d420dbdf9c..3c50590dfc71 100644
--- a/vendor/istio.io/api/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html
+++ b/vendor/istio.io/api/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html
@@ -4,7 +4,7 @@
location: https://istio.io/docs/reference/config/istio.mesh.v1alpha1.html
layout: protoc-gen-docs
generator: protoc-gen-docs
-number_of_entries: 25
+number_of_entries: 23
---
Configuration affecting the service mesh as a whole.
@@ -81,61 +81,6 @@ ConfigSource
uses Istio mutual TLS and shares the root CA with Pilot, specify the TLS
mode as ISTIO_MUTUAL
.
-
-
-
-
-
-Feature
-
-Feature specify to enable or disable a specific feature.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-feature |
-FeatureName |
-
- Feature is the name of the feature.
-
- |
-
-
-enable |
-bool |
-
- Specify true to enable the feature or false to disable the feature.
-
- |
-
-
-
-
-FeatureName
-
-FeatureName describes the features which are currently supported.
-
-
-
-
-Name |
-Description |
-
-
-
-
-LOCALITY_AWARE_ROUTING |
-
- The locality aware routing feature.
-It is enabled by default in release 1.13.
-
|
@@ -672,14 +617,6 @@ MeshConfig
If one or more services or namespaces do not have sidecar(s), then this should be set to DONOTUPGRADE.
It can be enabled by destination using the destinationRule.trafficPolicy.connectionPool.http.h2UpgradePolicy override.
-
-
-
-features |
-Feature[] |
-
- Optional: Features is used to enable/disable specific features.
-
|
diff --git a/vendor/istio.io/api/mesh/v1alpha1/network.pb.go b/vendor/istio.io/api/mesh/v1alpha1/network.pb.go
index ae772d18fbfe..3518e1121db1 100644
--- a/vendor/istio.io/api/mesh/v1alpha1/network.pb.go
+++ b/vendor/istio.io/api/mesh/v1alpha1/network.pb.go
@@ -589,9 +589,9 @@ func (m *Network_NetworkEndpoints) MarshalTo(dAtA []byte) (int, error) {
var l int
_ = l
if m.Ne != nil {
- nn1, err1 := m.Ne.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ nn1, err := m.Ne.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn1
}
@@ -633,9 +633,9 @@ func (m *Network_IstioNetworkGateway) MarshalTo(dAtA []byte) (int, error) {
var l int
_ = l
if m.Gw != nil {
- nn2, err2 := m.Gw.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ nn2, err := m.Gw.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn2
}
@@ -707,9 +707,9 @@ func (m *MeshNetworks) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintNetwork(dAtA, i, uint64(v.Size()))
- n3, err3 := v.MarshalTo(dAtA[i:])
- if err3 != nil {
- return 0, err3
+ n3, err := v.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n3
}
diff --git a/vendor/istio.io/api/mesh/v1alpha1/proxy.pb.go b/vendor/istio.io/api/mesh/v1alpha1/proxy.pb.go
index f9f4f53f4c3f..dc37a1873cc8 100644
--- a/vendor/istio.io/api/mesh/v1alpha1/proxy.pb.go
+++ b/vendor/istio.io/api/mesh/v1alpha1/proxy.pb.go
@@ -1005,9 +1005,9 @@ func (m *Tracing) MarshalTo(dAtA []byte) (int, error) {
var l int
_ = l
if m.Tracer != nil {
- nn1, err1 := m.Tracer.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ nn1, err := m.Tracer.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn1
}
@@ -1023,9 +1023,9 @@ func (m *Tracing_Zipkin_) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintProxy(dAtA, i, uint64(m.Zipkin.Size()))
- n2, err2 := m.Zipkin.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := m.Zipkin.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
}
@@ -1037,9 +1037,9 @@ func (m *Tracing_Lightstep_) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintProxy(dAtA, i, uint64(m.Lightstep.Size()))
- n3, err3 := m.Lightstep.MarshalTo(dAtA[i:])
- if err3 != nil {
- return 0, err3
+ n3, err := m.Lightstep.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n3
}
@@ -1051,9 +1051,9 @@ func (m *Tracing_Datadog_) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintProxy(dAtA, i, uint64(m.Datadog.Size()))
- n4, err4 := m.Datadog.MarshalTo(dAtA[i:])
- if err4 != nil {
- return 0, err4
+ n4, err := m.Datadog.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n4
}
@@ -1065,9 +1065,9 @@ func (m *Tracing_Stackdriver_) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x22
i++
i = encodeVarintProxy(dAtA, i, uint64(m.Stackdriver.Size()))
- n5, err5 := m.Stackdriver.MarshalTo(dAtA[i:])
- if err5 != nil {
- return 0, err5
+ n5, err := m.Stackdriver.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n5
}
@@ -1205,9 +1205,9 @@ func (m *Tracing_Stackdriver) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintProxy(dAtA, i, uint64(m.MaxNumberOfAttributes.Size()))
- n6, err6 := m.MaxNumberOfAttributes.MarshalTo(dAtA[i:])
- if err6 != nil {
- return 0, err6
+ n6, err := m.MaxNumberOfAttributes.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n6
}
@@ -1215,9 +1215,9 @@ func (m *Tracing_Stackdriver) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintProxy(dAtA, i, uint64(m.MaxNumberOfAnnotations.Size()))
- n7, err7 := m.MaxNumberOfAnnotations.MarshalTo(dAtA[i:])
- if err7 != nil {
- return 0, err7
+ n7, err := m.MaxNumberOfAnnotations.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n7
}
@@ -1225,9 +1225,9 @@ func (m *Tracing_Stackdriver) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x22
i++
i = encodeVarintProxy(dAtA, i, uint64(m.MaxNumberOfMessageEvents.Size()))
- n8, err8 := m.MaxNumberOfMessageEvents.MarshalTo(dAtA[i:])
- if err8 != nil {
- return 0, err8
+ n8, err := m.MaxNumberOfMessageEvents.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n8
}
@@ -1311,9 +1311,9 @@ func (m *ProxyConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x22
i++
i = encodeVarintProxy(dAtA, i, uint64(m.DrainDuration.Size()))
- n9, err9 := m.DrainDuration.MarshalTo(dAtA[i:])
- if err9 != nil {
- return 0, err9
+ n9, err := m.DrainDuration.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n9
}
@@ -1321,9 +1321,9 @@ func (m *ProxyConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
i++
i = encodeVarintProxy(dAtA, i, uint64(m.ParentShutdownDuration.Size()))
- n10, err10 := m.ParentShutdownDuration.MarshalTo(dAtA[i:])
- if err10 != nil {
- return 0, err10
+ n10, err := m.ParentShutdownDuration.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n10
}
@@ -1337,9 +1337,9 @@ func (m *ProxyConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x3a
i++
i = encodeVarintProxy(dAtA, i, uint64(m.DiscoveryRefreshDelay.Size()))
- n11, err11 := m.DiscoveryRefreshDelay.MarshalTo(dAtA[i:])
- if err11 != nil {
- return 0, err11
+ n11, err := m.DiscoveryRefreshDelay.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n11
}
@@ -1353,9 +1353,9 @@ func (m *ProxyConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x4a
i++
i = encodeVarintProxy(dAtA, i, uint64(m.ConnectTimeout.Size()))
- n12, err12 := m.ConnectTimeout.MarshalTo(dAtA[i:])
- if err12 != nil {
- return 0, err12
+ n12, err := m.ConnectTimeout.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n12
}
@@ -1420,9 +1420,9 @@ func (m *ProxyConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1
i++
i = encodeVarintProxy(dAtA, i, uint64(m.Tracing.Size()))
- n13, err13 := m.Tracing.MarshalTo(dAtA[i:])
- if err13 != nil {
- return 0, err13
+ n13, err := m.Tracing.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n13
}
@@ -1440,9 +1440,9 @@ func (m *ProxyConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1
i++
i = encodeVarintProxy(dAtA, i, uint64(m.Sds.Size()))
- n14, err14 := m.Sds.MarshalTo(dAtA[i:])
- if err14 != nil {
- return 0, err14
+ n14, err := m.Sds.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n14
}
diff --git a/vendor/istio.io/api/mixer/adapter/model/v1beta1/check.pb.go b/vendor/istio.io/api/mixer/adapter/model/v1beta1/check.pb.go
index 40a9d9b5c6f5..93d0e8b15035 100644
--- a/vendor/istio.io/api/mixer/adapter/model/v1beta1/check.pb.go
+++ b/vendor/istio.io/api/mixer/adapter/model/v1beta1/check.pb.go
@@ -123,17 +123,17 @@ func (m *CheckResult) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintCheck(dAtA, i, uint64(m.Status.Size()))
- n1, err1 := m.Status.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := m.Status.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
dAtA[i] = 0x12
i++
i = encodeVarintCheck(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(m.ValidDuration)))
- n2, err2 := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.ValidDuration, dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.ValidDuration, dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
if m.ValidUseCount != 0 {
@@ -187,8 +187,8 @@ func (this *CheckResult) String() string {
return "nil"
}
s := strings.Join([]string{`&CheckResult{`,
- `Status:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Status), "Status", "rpc.Status", 1), `&`, ``, 1) + `,`,
- `ValidDuration:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ValidDuration), "Duration", "types.Duration", 1), `&`, ``, 1) + `,`,
+ `Status:` + strings.Replace(strings.Replace(this.Status.String(), "Status", "rpc.Status", 1), `&`, ``, 1) + `,`,
+ `ValidDuration:` + strings.Replace(strings.Replace(this.ValidDuration.String(), "Duration", "types.Duration", 1), `&`, ``, 1) + `,`,
`ValidUseCount:` + fmt.Sprintf("%v", this.ValidUseCount) + `,`,
`}`,
}, "")
diff --git a/vendor/istio.io/api/mixer/adapter/model/v1beta1/infrastructure_backend.pb.go b/vendor/istio.io/api/mixer/adapter/model/v1beta1/infrastructure_backend.pb.go
index dbb70bec724c..0cfdf0b5788d 100644
--- a/vendor/istio.io/api/mixer/adapter/model/v1beta1/infrastructure_backend.pb.go
+++ b/vendor/istio.io/api/mixer/adapter/model/v1beta1/infrastructure_backend.pb.go
@@ -857,9 +857,9 @@ func (m *CreateSessionRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintInfrastructureBackend(dAtA, i, uint64(m.AdapterConfig.Size()))
- n1, err1 := m.AdapterConfig.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := m.AdapterConfig.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
}
@@ -883,9 +883,9 @@ func (m *CreateSessionRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintInfrastructureBackend(dAtA, i, uint64(v.Size()))
- n2, err2 := v.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := v.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
}
@@ -919,9 +919,9 @@ func (m *CreateSessionResponse) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintInfrastructureBackend(dAtA, i, uint64(m.Status.Size()))
- n3, err3 := m.Status.MarshalTo(dAtA[i:])
- if err3 != nil {
- return 0, err3
+ n3, err := m.Status.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n3
}
@@ -947,9 +947,9 @@ func (m *ValidateRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintInfrastructureBackend(dAtA, i, uint64(m.AdapterConfig.Size()))
- n4, err4 := m.AdapterConfig.MarshalTo(dAtA[i:])
- if err4 != nil {
- return 0, err4
+ n4, err := m.AdapterConfig.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n4
}
@@ -973,9 +973,9 @@ func (m *ValidateRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintInfrastructureBackend(dAtA, i, uint64(v.Size()))
- n5, err5 := v.MarshalTo(dAtA[i:])
- if err5 != nil {
- return 0, err5
+ n5, err := v.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n5
}
@@ -1003,9 +1003,9 @@ func (m *ValidateResponse) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintInfrastructureBackend(dAtA, i, uint64(m.Status.Size()))
- n6, err6 := m.Status.MarshalTo(dAtA[i:])
- if err6 != nil {
- return 0, err6
+ n6, err := m.Status.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n6
}
@@ -1055,9 +1055,9 @@ func (m *CloseSessionResponse) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintInfrastructureBackend(dAtA, i, uint64(m.Status.Size()))
- n7, err7 := m.Status.MarshalTo(dAtA[i:])
- if err7 != nil {
- return 0, err7
+ n7, err := m.Status.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n7
}
diff --git a/vendor/istio.io/api/mixer/adapter/model/v1beta1/istio.mixer.adapter.model.v1beta1.json b/vendor/istio.io/api/mixer/adapter/model/v1beta1/istio.mixer.adapter.model.v1beta1.json
new file mode 100644
index 000000000000..bd44d23e6596
--- /dev/null
+++ b/vendor/istio.io/api/mixer/adapter/model/v1beta1/istio.mixer.adapter.model.v1beta1.json
@@ -0,0 +1,258 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Definitions used to create adapters and templates.",
+ "version": "v1beta1"
+ },
+ "components": {
+ "schemas": {
+ "istio.mixer.adapter.model.v1beta1.CheckResult": {
+ "description": "Expresses the result of a precondition check.",
+ "type": "object",
+ "properties": {
+ "validUseCount": {
+ "description": "The number of uses for which this result can be considered valid.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "istio.mixer.adapter.model.v1beta1.TemplateVariety": {
+ "description": "The available varieties of templates, controlling the semantics of what an adapter does with each instance.",
+ "enum": [
+ "TEMPLATE_VARIETY_CHECK",
+ "TEMPLATE_VARIETY_REPORT",
+ "TEMPLATE_VARIETY_QUOTA",
+ "TEMPLATE_VARIETY_ATTRIBUTE_GENERATOR",
+ "TEMPLATE_VARIETY_CHECK_WITH_OUTPUT"
+ ],
+ "default": "TEMPLATE_VARIETY_CHECK"
+ },
+ "istio.mixer.adapter.model.v1beta1.Info": {
+ "description": "Info describes an adapter or a backend that wants to provide telemetry and policy functionality to Mixer as an out of process adapter.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the adapter. It must be an RFC 1035 compatible DNS label matching the `^[a-z]([-a-z0-9]*[a-z0-9])?$` regular expression. Name is used in Istio configuration, therefore it should be descriptive but short. example: denier Vendor adapters should use a vendor prefix. example: mycompany-denier",
+ "type": "string",
+ "format": "string"
+ },
+ "description": {
+ "description": "User-friendly description of the adapter.",
+ "type": "string",
+ "format": "string"
+ },
+ "templates": {
+ "description": "Names of the templates the adapter supports.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "config": {
+ "description": "Base64 encoded proto descriptor of the adapter configuration.",
+ "type": "string",
+ "format": "string"
+ },
+ "sessionBased": {
+ "description": "True if backend has implemented the [InfrastructureBackend](https://github.com/istio/api/blob/master/mixer/adapter/model/v1beta1/infrastructure_backend.proto) service; false otherwise.",
+ "type": "boolean"
+ }
+ }
+ },
+ "istio.mixer.adapter.model.v1beta1.CreateSessionRequest": {
+ "description": "Request message for `CreateSession` method.",
+ "type": "object",
+ "required": [
+ "inferredTypes"
+ ],
+ "properties": {
+ "adapterConfig": {
+ "$ref": "#/components/schemas/google.protobuf.Any"
+ },
+ "inferredTypes": {
+ "description": "Map of instance names to their template-specific inferred type.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/google.protobuf.Any"
+ }
+ }
+ }
+ },
+ "istio.mixer.adapter.model.v1beta1.CreateSessionResponse": {
+ "description": "Response message for `CreateSession` method.",
+ "type": "object",
+ "properties": {
+ "status": {
+ "$ref": "#/components/schemas/google.rpc.Status"
+ },
+ "sessionId": {
+ "description": "Id of the created session.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.mixer.adapter.model.v1beta1.ValidateRequest": {
+ "description": "Request message for `Validate` method.",
+ "type": "object",
+ "required": [
+ "inferredTypes"
+ ],
+ "properties": {
+ "adapterConfig": {
+ "$ref": "#/components/schemas/google.protobuf.Any"
+ },
+ "inferredTypes": {
+ "description": "Map of instance names to their template-specific inferred type.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/google.protobuf.Any"
+ }
+ }
+ }
+ },
+ "istio.mixer.adapter.model.v1beta1.ValidateResponse": {
+ "description": "Response message for `Validate` method.",
+ "type": "object",
+ "properties": {
+ "status": {
+ "$ref": "#/components/schemas/google.rpc.Status"
+ }
+ }
+ },
+ "istio.mixer.adapter.model.v1beta1.CloseSessionRequest": {
+ "description": "Request message for `CloseSession` method.",
+ "type": "object",
+ "properties": {
+ "sessionId": {
+ "description": "Id of the session to be closed.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.mixer.adapter.model.v1beta1.CloseSessionResponse": {
+ "description": "Response message for `CloseSession` method.",
+ "type": "object",
+ "properties": {
+ "status": {
+ "$ref": "#/components/schemas/google.rpc.Status"
+ }
+ }
+ },
+ "istio.mixer.adapter.model.v1beta1.QuotaRequest": {
+ "description": "Expresses the quota allocation request.",
+ "type": "object",
+ "required": [
+ "quotas"
+ ],
+ "properties": {
+ "quotas": {
+ "description": "The individual quotas to allocate",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/istio.mixer.adapter.model.v1beta1.QuotaRequest.QuotaParams"
+ }
+ }
+ }
+ },
+ "istio.mixer.adapter.model.v1beta1.QuotaRequest.QuotaParams": {
+ "description": "parameters for a quota allocation",
+ "type": "object",
+ "properties": {
+ "amount": {
+ "description": "Amount of quota to allocate",
+ "type": "integer",
+ "format": "int64"
+ },
+ "bestEffort": {
+ "description": "When true, supports returning less quota than what was requested.",
+ "type": "boolean"
+ }
+ }
+ },
+ "istio.mixer.adapter.model.v1beta1.QuotaResult": {
+ "description": "Expresses the result of multiple quota allocations.",
+ "type": "object",
+ "required": [
+ "quotas"
+ ],
+ "properties": {
+ "quotas": {
+ "description": "The resulting quota, one entry per requested quota.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/istio.mixer.adapter.model.v1beta1.QuotaResult.Result"
+ }
+ }
+ }
+ },
+ "istio.mixer.adapter.model.v1beta1.QuotaResult.Result": {
+ "description": "Expresses the result of a quota allocation.",
+ "type": "object",
+ "properties": {
+ "grantedAmount": {
+ "description": "The amount of granted quota. When `QuotaParams.best_effort` is true, this will be \u003e= 0. If `QuotaParams.best_effort` is false, this will be either 0 or \u003e= `QuotaParams.amount`.",
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "istio.mixer.adapter.model.v1beta1.ReportResult": {
+ "description": "Expresses the result of a report call.",
+ "type": "object"
+ },
+ "istio.mixer.adapter.model.v1beta1.Template": {
+ "description": "Template provides the details of a Mixer template.",
+ "type": "object",
+ "properties": {
+ "descriptor": {
+ "description": "Base64 encoded proto descriptor of the template.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "google.protobuf.Any": {
+ "type": "object",
+ "properties": {
+ "typeUrl": {
+ "description": "A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one \"/\" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading \".\" is not accepted).",
+ "type": "string",
+ "format": "string"
+ },
+ "value": {
+ "description": "Must be a valid serialized protocol buffer of the above specified type.",
+ "type": "string",
+ "format": "byte"
+ }
+ }
+ },
+ "google.rpc.Status": {
+ "description": "The success/failure status of close session call.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].",
+ "type": "integer",
+ "format": "int32"
+ },
+ "message": {
+ "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.",
+ "type": "string",
+ "format": "string"
+ },
+ "details": {
+ "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/google.protobuf.Any"
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/vendor/istio.io/api/mixer/adapter/model/v1beta1/istio.mixer.adapter.model.v1beta1.pb.html b/vendor/istio.io/api/mixer/adapter/model/v1beta1/istio.mixer.adapter.model.v1beta1.pb.html
deleted file mode 100644
index 458531d585d2..000000000000
--- a/vendor/istio.io/api/mixer/adapter/model/v1beta1/istio.mixer.adapter.model.v1beta1.pb.html
+++ /dev/null
@@ -1,648 +0,0 @@
----
-title: Mixer Adapter Model
-description: Definitions used to create adapters and templates.
-layout: protoc-gen-docs
-generator: protoc-gen-docs
-number_of_entries: 17
----
-This package defines the service and types used by adapter code to serve requests from Mixer.
-This package also defines the types that are used to create Mixer templates.
-
-Services
-InfrastructureBackend
-
-InfrastructureBackend
is implemented by backends that wants to provide telemetry and policy functionality to Mixer as an
-out of process adapter.
-
-InfrastructureBackend
allows Mixer and the backends to have a session based model. In a session based model, Mixer passes
-the relevant configuration state to the backend only once and establishes a session using a session identifier.
-All future communications between Mixer and the backend uses the session identifier which refers to the previously
-passed in configuration data.
-
-For a given InfrastructureBackend
, Mixer calls the Validate
function, followed by CreateSession
. The session_id
-returned from CreateSession
is used to make subsequent request-time Handle calls and the eventual CloseSession
function.
-Mixer assumes that, given the session_id
, the backend can retrieve the necessary context to serve the
-Handle calls that contains the request-time payload (template-specific instance protobuf).
-
-rpc Validate(ValidateRequest) returns (ValidateResponse)
-
-Validates the handler configuration along with the template-specific instances that would be routed to that
-handler. The CreateSession
for a specific handler configuration is invoked only if its associated Validate
-call has returned success.
-
-rpc CreateSession(CreateSessionRequest) returns (CreateSessionResponse)
-
-Creates a session for a given handler configuration and the template-specific instances that would be routed to
-that handler. For every handler configuration, Mixer creates a separate session by invoking CreateSession
-on the backend.
-
-CreateSessionRequest
contains the adapter specific handler configuration and the inferred type information about
-the instances the handler would receive during request processing.
-
-CreateSession
must return a session_id
which Mixer uses to invoke template-specific Handle functions during
-request processing. The session_id
provides the Handle functions a way to retrieve the necessary configuration
-associated with the session. Upon Mixer configuration change, Mixer will re-invoke CreateSession
for all
-handler configurations whose existing sessions are invalidated or didn’t existed.
-
-Backend is allowed to return the same session id if given the same configuration block.
-This would happen when multiple instances of Mixer in a deployment all create sessions with the same configuration.
-Note that given individual instances of Mixer can call CloseSession
, reusing session_id
by the backend
-assumes that the backend is doing reference counting.
-
-If the backend couldn’t create a session for a specific handler configuration and
-returns non S_OK status, Mixer will not make request-time Handle calls associated with that handler configuration.
-
-rpc CloseSession(CloseSessionRequest) returns (CloseSessionResponse)
-
-Closes the session associated with the session_id
. Mixer closes a session when its associated handler
-configuration or the instance configuration changes. Backend is supposed to cleanup all the resources associated
-with the session_id referenced by CloseSessionRequest.
-
-
-Types
-CheckResult
-
-Expresses the result of a precondition check.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-status |
-google.rpc.Status |
-
- A status code of OK indicates preconditions were satisfied. Any other code indicates preconditions were not
-satisfied and details describe why.
-
- |
-
-
-validDuration |
-google.protobuf.Duration |
-
- The amount of time for which this result can be considered valid.
-
- |
-
-
-validUseCount |
-int32 |
-
- The number of uses for which this result can be considered valid.
-
- |
-
-
-
-
-CloseSessionRequest
-
-Request message for CloseSession
method.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-sessionId |
-string |
-
- Id of the session to be closed.
-
- |
-
-
-
-
-CloseSessionResponse
-
-Response message for CloseSession
method.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-status |
-google.rpc.Status |
-
- The success/failure status of close session call.
-
- |
-
-
-
-
-CreateSessionRequest
-
-Request message for CreateSession
method.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-adapterConfig |
-google.protobuf.Any |
-
- Adapter specific configuration.
-
- |
-
-
-inferredTypes |
-map<string, google.protobuf.Any> |
-
- Map of instance names to their template-specific inferred type.
-
- |
-
-
-
-
-CreateSessionResponse
-
-Response message for CreateSession
method.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-sessionId |
-string |
-
- Id of the created session.
-
- |
-
-
-status |
-google.rpc.Status |
-
- The success/failure status of create session call.
-
- |
-
-
-
-
-Info
-
-Info describes an adapter or a backend that wants to provide telemetry and policy functionality to Mixer as an
-out of process adapter.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-name |
-string |
-
- Name of the adapter. It must be an RFC 1035 compatible DNS label
-matching the ^[a-z]([-a-z0-9]*[a-z0-9])?$ regular expression.
-Name is used in Istio configuration, therefore it should be descriptive but short.
-example: denier
-Vendor adapters should use a vendor prefix.
-example: mycompany-denier
-
- |
-
-
-description |
-string |
-
- User-friendly description of the adapter.
-
- |
-
-
-templates |
-string[] |
-
- Names of the templates the adapter supports.
-
- |
-
-
-config |
-string |
-
- Base64 encoded proto descriptor of the adapter configuration.
-
- |
-
-
-sessionBased |
-bool |
-
- True if backend has implemented the
-InfrastructureBackend
-service; false otherwise.
-
-If true, during configuration time, Mixer calls the InfrastructureBackend ’ rpcs
-to validate and pass the handler configuration. And during request-time, Mixer does not pass the handler
-configuration, and only passes the template-specific Instance payload using the template-specific handle service (Example
-HandlerMetricService,
-HandlerListEntryService,
-HandleQuotaService and more).
-If session_based is false, Mixer does not expect backend to implement InfrastructureBackend service, and
-only communicates with the backends during request-time through the template-specific handle service. Without
-InfrastructureBackend service, Mixer passes the handler configuration on each call during request-time.
-
- |
-
-
-
-
-QuotaRequest
-
-Expresses the quota allocation request.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-quotas |
-map<string, QuotaRequest.QuotaParams> |
-
- The individual quotas to allocate
-
- |
-
-
-
-
-QuotaRequest.QuotaParams
-
-parameters for a quota allocation
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-amount |
-int64 |
-
- Amount of quota to allocate
-
- |
-
-
-bestEffort |
-bool |
-
- When true, supports returning less quota than what was requested.
-
- |
-
-
-
-
-QuotaResult
-
-Expresses the result of multiple quota allocations.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-quotas |
-map<string, QuotaResult.Result> |
-
- The resulting quota, one entry per requested quota.
-
- |
-
-
-
-
-QuotaResult.Result
-
-Expresses the result of a quota allocation.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-validDuration |
-google.protobuf.Duration |
-
- The amount of time for which this result can be considered valid.
-
- |
-
-
-grantedAmount |
-int64 |
-
- The amount of granted quota. When QuotaParams.best_effort is true, this will be >= 0.
-If QuotaParams.best_effort is false, this will be either 0 or >= QuotaParams.amount .
-
- |
-
-
-status |
-google.rpc.Status |
-
- A status code of OK indicates quota was fetched successfully. Any other code indicates error in fetching quota.
-
- |
-
-
-
-
-ReportResult
-
-Expresses the result of a report call.
-
-
-Template
-
-Template provides the details of a Mixer template.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-descriptor |
-string |
-
- Base64 encoded proto descriptor of the template.
-
- |
-
-
-
-
-TemplateVariety
-
-The available varieties of templates, controlling the semantics of what an adapter does with each instance.
-
-
-
-
-Name |
-Description |
-
-
-
-
-TEMPLATE_VARIETY_CHECK |
-
- Makes the template applicable for Mixer’s check calls. Instances of such template are created during
-check calls in Mixer and passed to the handlers based on the rule configurations.
-
- |
-
-
-TEMPLATE_VARIETY_REPORT |
-
- Makes the template applicable for Mixer’s report calls. Instances of such template are created during
-report calls in Mixer and passed to the handlers based on the rule configurations.
-
- |
-
-
-TEMPLATE_VARIETY_QUOTA |
-
- Makes the template applicable for Mixer’s quota calls. Instances of such template are created during
-quota check calls in Mixer and passed to the handlers based on the rule configurations.
-
- |
-
-
-TEMPLATE_VARIETY_ATTRIBUTE_GENERATOR |
-
- Makes the template applicable for Mixer’s attribute generation phase. Instances of such template are created during
-pre-processing attribute generation phase and passed to the handlers based on the rule configurations.
-
- |
-
-
-TEMPLATE_VARIETY_CHECK_WITH_OUTPUT |
-
- Makes the template applicable for Mixer’s check calls. Instances of such template are created during
-check calls in Mixer and passed to the handlers that produce values.
-
- |
-
-
-
-
-ValidateRequest
-
-Request message for Validate
method.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-adapterConfig |
-google.protobuf.Any |
-
- Adapter specific configuration.
-
- |
-
-
-inferredTypes |
-map<string, google.protobuf.Any> |
-
- Map of instance names to their template-specific inferred type.
-
- |
-
-
-
-
-ValidateResponse
-
-Response message for Validate
method.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-status |
-google.rpc.Status |
-
- The success/failure status of validation call.
-
- |
-
-
-
-
-google.rpc.Status
-
-The Status
type defines a logical error model that is suitable for different
-programming environments, including REST APIs and RPC APIs. It is used by
-gRPC. The error model is designed to be:
-
-
-- Simple to use and understand for most users
-- Flexible enough to meet unexpected needs
-
-
-Overview
-
-The Status
message contains three pieces of data: error code, error message,
-and error details. The error code should be an enum value of
-google.rpc.Code, but it may accept additional error codes if needed. The
-error message should be a developer-facing English message that helps
-developers understand and resolve the error. If a localized user-facing
-error message is needed, put the localized message in the error details or
-localize it in the client. The optional error details may contain arbitrary
-information about the error. There is a predefined set of error detail types
-in the package google.rpc
that can be used for common error conditions.
-
-Language mapping
-
-The Status
message is the logical representation of the error model, but it
-is not necessarily the actual wire format. When the Status
message is
-exposed in different client libraries and different wire protocols, it can be
-mapped differently. For example, it will likely be mapped to some exceptions
-in Java, but more likely mapped to some error codes in C.
-
-Other uses
-
-The error model and the Status
message can be used in a variety of
-environments, either with or without APIs, to provide a
-consistent developer experience across different environments.
-
-Example uses of this error model include:
-
-
-Partial errors. If a service needs to return partial errors to the client,
-it may embed the Status
in the normal response to indicate the partial
-errors.
-
-Workflow errors. A typical workflow has multiple steps. Each step may
-have a Status
message for error reporting.
-
-Batch operations. If a client uses batch request and batch response, the
-Status
message should be used directly inside batch response, one for
-each error sub-response.
-
-Asynchronous operations. If an API call embeds asynchronous operation
-results in its response, the status of those operations should be
-represented directly using the Status
message.
-
-Logging. If some API errors are stored in logs, the message Status
could
-be used directly after any stripping needed for security/privacy reasons.
-
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-code |
-int32 |
-
- The status code, which should be an enum value of google.rpc.Code.
-
- |
-
-
-message |
-string |
-
- A developer-facing error message, which should be in English. Any
-user-facing error message should be localized and sent in the
-google.rpc.Status.details field, or localized by the client.
-
- |
-
-
-details |
-google.protobuf.Any[] |
-
- A list of messages that carry the error details. There is a common set of
-message types for APIs to use.
-
- |
-
-
-
-
diff --git a/vendor/istio.io/api/mixer/adapter/model/v1beta1/quota.pb.go b/vendor/istio.io/api/mixer/adapter/model/v1beta1/quota.pb.go
index 5ab932fcaf2f..be242b6f0b63 100644
--- a/vendor/istio.io/api/mixer/adapter/model/v1beta1/quota.pb.go
+++ b/vendor/istio.io/api/mixer/adapter/model/v1beta1/quota.pb.go
@@ -271,9 +271,9 @@ func (m *QuotaRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintQuota(dAtA, i, uint64((&v).Size()))
- n1, err1 := (&v).MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := (&v).MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
}
@@ -348,9 +348,9 @@ func (m *QuotaResult) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintQuota(dAtA, i, uint64((&v).Size()))
- n2, err2 := (&v).MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := (&v).MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
}
@@ -376,9 +376,9 @@ func (m *QuotaResult_Result) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintQuota(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(m.ValidDuration)))
- n3, err3 := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.ValidDuration, dAtA[i:])
- if err3 != nil {
- return 0, err3
+ n3, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.ValidDuration, dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n3
if m.GrantedAmount != 0 {
@@ -389,9 +389,9 @@ func (m *QuotaResult_Result) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x22
i++
i = encodeVarintQuota(dAtA, i, uint64(m.Status.Size()))
- n4, err4 := m.Status.MarshalTo(dAtA[i:])
- if err4 != nil {
- return 0, err4
+ n4, err := m.Status.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n4
return i, nil
@@ -542,9 +542,9 @@ func (this *QuotaResult_Result) String() string {
return "nil"
}
s := strings.Join([]string{`&QuotaResult_Result{`,
- `ValidDuration:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ValidDuration), "Duration", "types.Duration", 1), `&`, ``, 1) + `,`,
+ `ValidDuration:` + strings.Replace(strings.Replace(this.ValidDuration.String(), "Duration", "types.Duration", 1), `&`, ``, 1) + `,`,
`GrantedAmount:` + fmt.Sprintf("%v", this.GrantedAmount) + `,`,
- `Status:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Status), "Status", "rpc.Status", 1), `&`, ``, 1) + `,`,
+ `Status:` + strings.Replace(strings.Replace(this.Status.String(), "Status", "rpc.Status", 1), `&`, ``, 1) + `,`,
`}`,
}, "")
return s
diff --git a/vendor/istio.io/api/mixer/v1/attributes.pb.go b/vendor/istio.io/api/mixer/v1/attributes.pb.go
index ee9686a7abe6..4b772b82d7d4 100644
--- a/vendor/istio.io/api/mixer/v1/attributes.pb.go
+++ b/vendor/istio.io/api/mixer/v1/attributes.pb.go
@@ -655,9 +655,9 @@ func (m *Attributes) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintAttributes(dAtA, i, uint64(v.Size()))
- n1, err1 := v.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := v.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
}
@@ -682,9 +682,9 @@ func (m *Attributes_AttributeValue) MarshalTo(dAtA []byte) (int, error) {
var l int
_ = l
if m.Value != nil {
- nn2, err2 := m.Value.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ nn2, err := m.Value.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn2
}
@@ -742,9 +742,9 @@ func (m *Attributes_AttributeValue_TimestampValue) MarshalTo(dAtA []byte) (int,
dAtA[i] = 0x3a
i++
i = encodeVarintAttributes(dAtA, i, uint64(m.TimestampValue.Size()))
- n3, err3 := m.TimestampValue.MarshalTo(dAtA[i:])
- if err3 != nil {
- return 0, err3
+ n3, err := m.TimestampValue.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n3
}
@@ -756,9 +756,9 @@ func (m *Attributes_AttributeValue_DurationValue) MarshalTo(dAtA []byte) (int, e
dAtA[i] = 0x42
i++
i = encodeVarintAttributes(dAtA, i, uint64(m.DurationValue.Size()))
- n4, err4 := m.DurationValue.MarshalTo(dAtA[i:])
- if err4 != nil {
- return 0, err4
+ n4, err := m.DurationValue.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n4
}
@@ -770,9 +770,9 @@ func (m *Attributes_AttributeValue_StringMapValue) MarshalTo(dAtA []byte) (int,
dAtA[i] = 0x4a
i++
i = encodeVarintAttributes(dAtA, i, uint64(m.StringMapValue.Size()))
- n5, err5 := m.StringMapValue.MarshalTo(dAtA[i:])
- if err5 != nil {
- return 0, err5
+ n5, err := m.StringMapValue.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n5
}
@@ -957,9 +957,9 @@ func (m *CompressedAttributes) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintAttributes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*(&v))))
- n6, err6 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*(&v), dAtA[i:])
- if err6 != nil {
- return 0, err6
+ n6, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*(&v), dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n6
}
@@ -987,9 +987,9 @@ func (m *CompressedAttributes) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintAttributes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*(&v))))
- n7, err7 := github_com_gogo_protobuf_types.StdDurationMarshalTo(*(&v), dAtA[i:])
- if err7 != nil {
- return 0, err7
+ n7, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*(&v), dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n7
}
@@ -1044,9 +1044,9 @@ func (m *CompressedAttributes) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintAttributes(dAtA, i, uint64((&v).Size()))
- n8, err8 := (&v).MarshalTo(dAtA[i:])
- if err8 != nil {
- return 0, err8
+ n8, err := (&v).MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n8
}
diff --git a/vendor/istio.io/api/mixer/v1/config/client/api_spec.pb.go b/vendor/istio.io/api/mixer/v1/config/client/api_spec.pb.go
index 25d3e74d694a..479e8e3c52d9 100644
--- a/vendor/istio.io/api/mixer/v1/config/client/api_spec.pb.go
+++ b/vendor/istio.io/api/mixer/v1/config/client/api_spec.pb.go
@@ -625,9 +625,9 @@ func (m *HTTPAPISpec) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintApiSpec(dAtA, i, uint64(m.Attributes.Size()))
- n1, err1 := m.Attributes.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := m.Attributes.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
}
@@ -677,9 +677,9 @@ func (m *HTTPAPISpecPattern) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintApiSpec(dAtA, i, uint64(m.Attributes.Size()))
- n2, err2 := m.Attributes.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := m.Attributes.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
}
@@ -690,9 +690,9 @@ func (m *HTTPAPISpecPattern) MarshalTo(dAtA []byte) (int, error) {
i += copy(dAtA[i:], m.HttpMethod)
}
if m.Pattern != nil {
- nn3, err3 := m.Pattern.MarshalTo(dAtA[i:])
- if err3 != nil {
- return 0, err3
+ nn3, err := m.Pattern.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn3
}
@@ -731,9 +731,9 @@ func (m *APIKey) MarshalTo(dAtA []byte) (int, error) {
var l int
_ = l
if m.Key != nil {
- nn4, err4 := m.Key.MarshalTo(dAtA[i:])
- if err4 != nil {
- return 0, err4
+ nn4, err := m.Key.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn4
}
@@ -1007,20 +1007,10 @@ func (this *HTTPAPISpec) String() string {
if this == nil {
return "nil"
}
- repeatedStringForPatterns := "[]*HTTPAPISpecPattern{"
- for _, f := range this.Patterns {
- repeatedStringForPatterns += strings.Replace(f.String(), "HTTPAPISpecPattern", "HTTPAPISpecPattern", 1) + ","
- }
- repeatedStringForPatterns += "}"
- repeatedStringForApiKeys := "[]*APIKey{"
- for _, f := range this.ApiKeys {
- repeatedStringForApiKeys += strings.Replace(f.String(), "APIKey", "APIKey", 1) + ","
- }
- repeatedStringForApiKeys += "}"
s := strings.Join([]string{`&HTTPAPISpec{`,
`Attributes:` + strings.Replace(fmt.Sprintf("%v", this.Attributes), "Attributes", "v1.Attributes", 1) + `,`,
- `Patterns:` + repeatedStringForPatterns + `,`,
- `ApiKeys:` + repeatedStringForApiKeys + `,`,
+ `Patterns:` + strings.Replace(fmt.Sprintf("%v", this.Patterns), "HTTPAPISpecPattern", "HTTPAPISpecPattern", 1) + `,`,
+ `ApiKeys:` + strings.Replace(fmt.Sprintf("%v", this.ApiKeys), "APIKey", "APIKey", 1) + `,`,
`}`,
}, "")
return s
@@ -1112,19 +1102,9 @@ func (this *HTTPAPISpecBinding) String() string {
if this == nil {
return "nil"
}
- repeatedStringForServices := "[]*IstioService{"
- for _, f := range this.Services {
- repeatedStringForServices += strings.Replace(fmt.Sprintf("%v", f), "IstioService", "IstioService", 1) + ","
- }
- repeatedStringForServices += "}"
- repeatedStringForApiSpecs := "[]*HTTPAPISpecReference{"
- for _, f := range this.ApiSpecs {
- repeatedStringForApiSpecs += strings.Replace(f.String(), "HTTPAPISpecReference", "HTTPAPISpecReference", 1) + ","
- }
- repeatedStringForApiSpecs += "}"
s := strings.Join([]string{`&HTTPAPISpecBinding{`,
- `Services:` + repeatedStringForServices + `,`,
- `ApiSpecs:` + repeatedStringForApiSpecs + `,`,
+ `Services:` + strings.Replace(fmt.Sprintf("%v", this.Services), "IstioService", "IstioService", 1) + `,`,
+ `ApiSpecs:` + strings.Replace(fmt.Sprintf("%v", this.ApiSpecs), "HTTPAPISpecReference", "HTTPAPISpecReference", 1) + `,`,
`}`,
}, "")
return s
diff --git a/vendor/istio.io/api/mixer/v1/config/client/client_config.pb.go b/vendor/istio.io/api/mixer/v1/config/client/client_config.pb.go
index b12e29397155..f3ba90e5bd81 100644
--- a/vendor/istio.io/api/mixer/v1/config/client/client_config.pb.go
+++ b/vendor/istio.io/api/mixer/v1/config/client/client_config.pb.go
@@ -449,9 +449,9 @@ func (m *NetworkFailPolicy) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintClientConfig(dAtA, i, uint64(m.BaseRetryWait.Size()))
- n1, err1 := m.BaseRetryWait.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := m.BaseRetryWait.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
}
@@ -459,9 +459,9 @@ func (m *NetworkFailPolicy) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x22
i++
i = encodeVarintClientConfig(dAtA, i, uint64(m.MaxRetryWait.Size()))
- n2, err2 := m.MaxRetryWait.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := m.MaxRetryWait.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
}
@@ -507,9 +507,9 @@ func (m *ServiceConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintClientConfig(dAtA, i, uint64(m.MixerAttributes.Size()))
- n3, err3 := m.MixerAttributes.MarshalTo(dAtA[i:])
- if err3 != nil {
- return 0, err3
+ n3, err := m.MixerAttributes.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n3
}
@@ -541,9 +541,9 @@ func (m *ServiceConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x3a
i++
i = encodeVarintClientConfig(dAtA, i, uint64(m.NetworkFailPolicy.Size()))
- n4, err4 := m.NetworkFailPolicy.MarshalTo(dAtA[i:])
- if err4 != nil {
- return 0, err4
+ n4, err := m.NetworkFailPolicy.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n4
}
@@ -551,9 +551,9 @@ func (m *ServiceConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x42
i++
i = encodeVarintClientConfig(dAtA, i, uint64(m.ForwardAttributes.Size()))
- n5, err5 := m.ForwardAttributes.MarshalTo(dAtA[i:])
- if err5 != nil {
- return 0, err5
+ n5, err := m.ForwardAttributes.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n5
}
@@ -609,9 +609,9 @@ func (m *TransportConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x22
i++
i = encodeVarintClientConfig(dAtA, i, uint64(m.NetworkFailPolicy.Size()))
- n6, err6 := m.NetworkFailPolicy.MarshalTo(dAtA[i:])
- if err6 != nil {
- return 0, err6
+ n6, err := m.NetworkFailPolicy.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n6
}
@@ -619,9 +619,9 @@ func (m *TransportConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
i++
i = encodeVarintClientConfig(dAtA, i, uint64(m.StatsUpdateInterval.Size()))
- n7, err7 := m.StatsUpdateInterval.MarshalTo(dAtA[i:])
- if err7 != nil {
- return 0, err7
+ n7, err := m.StatsUpdateInterval.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n7
}
@@ -641,9 +641,9 @@ func (m *TransportConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x42
i++
i = encodeVarintClientConfig(dAtA, i, uint64(m.AttributesForMixerProxy.Size()))
- n8, err8 := m.AttributesForMixerProxy.MarshalTo(dAtA[i:])
- if err8 != nil {
- return 0, err8
+ n8, err := m.AttributesForMixerProxy.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n8
}
@@ -656,9 +656,9 @@ func (m *TransportConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x52
i++
i = encodeVarintClientConfig(dAtA, i, uint64(m.ReportBatchMaxTime.Size()))
- n9, err9 := m.ReportBatchMaxTime.MarshalTo(dAtA[i:])
- if err9 != nil {
- return 0, err9
+ n9, err := m.ReportBatchMaxTime.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n9
}
@@ -684,9 +684,9 @@ func (m *HttpClientConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintClientConfig(dAtA, i, uint64(m.Transport.Size()))
- n10, err10 := m.Transport.MarshalTo(dAtA[i:])
- if err10 != nil {
- return 0, err10
+ n10, err := m.Transport.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n10
}
@@ -715,9 +715,9 @@ func (m *HttpClientConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintClientConfig(dAtA, i, uint64(v.Size()))
- n11, err11 := v.MarshalTo(dAtA[i:])
- if err11 != nil {
- return 0, err11
+ n11, err := v.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n11
}
@@ -733,9 +733,9 @@ func (m *HttpClientConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x22
i++
i = encodeVarintClientConfig(dAtA, i, uint64(m.MixerAttributes.Size()))
- n12, err12 := m.MixerAttributes.MarshalTo(dAtA[i:])
- if err12 != nil {
- return 0, err12
+ n12, err := m.MixerAttributes.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n12
}
@@ -743,9 +743,9 @@ func (m *HttpClientConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
i++
i = encodeVarintClientConfig(dAtA, i, uint64(m.ForwardAttributes.Size()))
- n13, err13 := m.ForwardAttributes.MarshalTo(dAtA[i:])
- if err13 != nil {
- return 0, err13
+ n13, err := m.ForwardAttributes.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n13
}
@@ -771,9 +771,9 @@ func (m *TcpClientConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintClientConfig(dAtA, i, uint64(m.Transport.Size()))
- n14, err14 := m.Transport.MarshalTo(dAtA[i:])
- if err14 != nil {
- return 0, err14
+ n14, err := m.Transport.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n14
}
@@ -781,9 +781,9 @@ func (m *TcpClientConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintClientConfig(dAtA, i, uint64(m.MixerAttributes.Size()))
- n15, err15 := m.MixerAttributes.MarshalTo(dAtA[i:])
- if err15 != nil {
- return 0, err15
+ n15, err := m.MixerAttributes.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n15
}
@@ -811,9 +811,9 @@ func (m *TcpClientConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
i++
i = encodeVarintClientConfig(dAtA, i, uint64(m.ConnectionQuotaSpec.Size()))
- n16, err16 := m.ConnectionQuotaSpec.MarshalTo(dAtA[i:])
- if err16 != nil {
- return 0, err16
+ n16, err := m.ConnectionQuotaSpec.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n16
}
@@ -821,9 +821,9 @@ func (m *TcpClientConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x32
i++
i = encodeVarintClientConfig(dAtA, i, uint64(m.ReportInterval.Size()))
- n17, err17 := m.ReportInterval.MarshalTo(dAtA[i:])
- if err17 != nil {
- return 0, err17
+ n17, err := m.ReportInterval.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n17
}
@@ -1045,23 +1045,13 @@ func (this *ServiceConfig) String() string {
if this == nil {
return "nil"
}
- repeatedStringForHttpApiSpec := "[]*HTTPAPISpec{"
- for _, f := range this.HttpApiSpec {
- repeatedStringForHttpApiSpec += strings.Replace(fmt.Sprintf("%v", f), "HTTPAPISpec", "HTTPAPISpec", 1) + ","
- }
- repeatedStringForHttpApiSpec += "}"
- repeatedStringForQuotaSpec := "[]*QuotaSpec{"
- for _, f := range this.QuotaSpec {
- repeatedStringForQuotaSpec += strings.Replace(fmt.Sprintf("%v", f), "QuotaSpec", "QuotaSpec", 1) + ","
- }
- repeatedStringForQuotaSpec += "}"
s := strings.Join([]string{`&ServiceConfig{`,
`DisableCheckCalls:` + fmt.Sprintf("%v", this.DisableCheckCalls) + `,`,
`DisableReportCalls:` + fmt.Sprintf("%v", this.DisableReportCalls) + `,`,
`MixerAttributes:` + strings.Replace(fmt.Sprintf("%v", this.MixerAttributes), "Attributes", "v1.Attributes", 1) + `,`,
- `HttpApiSpec:` + repeatedStringForHttpApiSpec + `,`,
- `QuotaSpec:` + repeatedStringForQuotaSpec + `,`,
- `NetworkFailPolicy:` + strings.Replace(this.NetworkFailPolicy.String(), "NetworkFailPolicy", "NetworkFailPolicy", 1) + `,`,
+ `HttpApiSpec:` + strings.Replace(fmt.Sprintf("%v", this.HttpApiSpec), "HTTPAPISpec", "HTTPAPISpec", 1) + `,`,
+ `QuotaSpec:` + strings.Replace(fmt.Sprintf("%v", this.QuotaSpec), "QuotaSpec", "QuotaSpec", 1) + `,`,
+ `NetworkFailPolicy:` + strings.Replace(fmt.Sprintf("%v", this.NetworkFailPolicy), "NetworkFailPolicy", "NetworkFailPolicy", 1) + `,`,
`ForwardAttributes:` + strings.Replace(fmt.Sprintf("%v", this.ForwardAttributes), "Attributes", "v1.Attributes", 1) + `,`,
`}`,
}, "")
@@ -1075,7 +1065,7 @@ func (this *TransportConfig) String() string {
`DisableCheckCache:` + fmt.Sprintf("%v", this.DisableCheckCache) + `,`,
`DisableQuotaCache:` + fmt.Sprintf("%v", this.DisableQuotaCache) + `,`,
`DisableReportBatch:` + fmt.Sprintf("%v", this.DisableReportBatch) + `,`,
- `NetworkFailPolicy:` + strings.Replace(this.NetworkFailPolicy.String(), "NetworkFailPolicy", "NetworkFailPolicy", 1) + `,`,
+ `NetworkFailPolicy:` + strings.Replace(fmt.Sprintf("%v", this.NetworkFailPolicy), "NetworkFailPolicy", "NetworkFailPolicy", 1) + `,`,
`StatsUpdateInterval:` + strings.Replace(fmt.Sprintf("%v", this.StatsUpdateInterval), "Duration", "types.Duration", 1) + `,`,
`CheckCluster:` + fmt.Sprintf("%v", this.CheckCluster) + `,`,
`ReportCluster:` + fmt.Sprintf("%v", this.ReportCluster) + `,`,
@@ -1101,7 +1091,7 @@ func (this *HttpClientConfig) String() string {
}
mapStringForServiceConfigs += "}"
s := strings.Join([]string{`&HttpClientConfig{`,
- `Transport:` + strings.Replace(this.Transport.String(), "TransportConfig", "TransportConfig", 1) + `,`,
+ `Transport:` + strings.Replace(fmt.Sprintf("%v", this.Transport), "TransportConfig", "TransportConfig", 1) + `,`,
`ServiceConfigs:` + mapStringForServiceConfigs + `,`,
`DefaultDestinationService:` + fmt.Sprintf("%v", this.DefaultDestinationService) + `,`,
`MixerAttributes:` + strings.Replace(fmt.Sprintf("%v", this.MixerAttributes), "Attributes", "v1.Attributes", 1) + `,`,
@@ -1115,7 +1105,7 @@ func (this *TcpClientConfig) String() string {
return "nil"
}
s := strings.Join([]string{`&TcpClientConfig{`,
- `Transport:` + strings.Replace(this.Transport.String(), "TransportConfig", "TransportConfig", 1) + `,`,
+ `Transport:` + strings.Replace(fmt.Sprintf("%v", this.Transport), "TransportConfig", "TransportConfig", 1) + `,`,
`MixerAttributes:` + strings.Replace(fmt.Sprintf("%v", this.MixerAttributes), "Attributes", "v1.Attributes", 1) + `,`,
`DisableCheckCalls:` + fmt.Sprintf("%v", this.DisableCheckCalls) + `,`,
`DisableReportCalls:` + fmt.Sprintf("%v", this.DisableReportCalls) + `,`,
diff --git a/vendor/istio.io/api/mixer/v1/config/client/istio.mixer.v1.config.client.json b/vendor/istio.io/api/mixer/v1/config/client/istio.mixer.v1.config.client.json
new file mode 100644
index 000000000000..653e6c0ea7e4
--- /dev/null
+++ b/vendor/istio.io/api/mixer/v1/config/client/istio.mixer.v1.config.client.json
@@ -0,0 +1,625 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Configuration state for the Mixer client library.",
+ "version": "client"
+ },
+ "components": {
+ "schemas": {
+ "istio.mixer.v1.config.client.HTTPAPISpec": {
+ "description": "HTTPAPISpec defines the canonical configuration for generating API-related attributes from HTTP requests based on the method and uri templated path matches. It is sufficient for defining the API surface of a service for the purposes of API attribute generation. It is not intended to represent auth, quota, documentation, or other information commonly found in other API specifications, e.g. OpenAPI.",
+ "type": "object",
+ "properties": {
+ "attributes": {
+ "$ref": "#/components/schemas/istio.mixer.v1.Attributes"
+ },
+ "patterns": {
+ "description": "List of HTTP patterns to match.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.HTTPAPISpecPattern"
+ }
+ },
+ "apiKeys": {
+ "description": "List of APIKey that describes how to extract an API-KEY from an HTTP request. The first API-Key match found in the list is used, i.e. 'OR' semantics.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.APIKey"
+ }
+ }
+ }
+ },
+ "istio.mixer.v1.config.client.HTTPAPISpecPattern": {
+ "description": "HTTPAPISpecPattern defines a single pattern to match against incoming HTTP requests. The per-pattern list of attributes is generated if both the http_method and uri_template match. In addition, the top-level list of attributes in the HTTPAPISpec is also generated.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "attributes": {
+ "$ref": "#/components/schemas/istio.mixer.v1.Attributes"
+ },
+ "httpMethod": {
+ "description": "HTTP request method to match against as defined by [rfc7231](https://tools.ietf.org/html/rfc7231#page-21). For example: GET, HEAD, POST, PUT, DELETE.",
+ "type": "string",
+ "format": "string"
+ },
+ "uriTemplate": {
+ "description": "URI template to match against as defined by [rfc6570](https://tools.ietf.org/html/rfc6570). For example, the following are valid URI templates: /pets /pets/{id} /dictionary/{term:1}/{term} /search{?q*,lang}",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "attributes": {
+ "$ref": "#/components/schemas/istio.mixer.v1.Attributes"
+ },
+ "regex": {
+ "description": "EXPERIMENTAL: ecmascript style regex-based match as defined by [EDCA-262](http://en.cppreference.com/w/cpp/regex/ecmascript). For example,",
+ "type": "string",
+ "format": "string"
+ },
+ "httpMethod": {
+ "description": "HTTP request method to match against as defined by [rfc7231](https://tools.ietf.org/html/rfc7231#page-21). For example: GET, HEAD, POST, PUT, DELETE.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ ]
+ },
+ "istio.mixer.v1.config.client.APIKey": {
+ "description": "APIKey defines the explicit configuration for generating the `request.api_key` attribute from HTTP requests.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "query": {
+ "description": "API Key is sent as a query parameter. `query` represents the query string parameter name.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "header": {
+ "description": "API key is sent in a request header. `header` represents the header name.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "cookie": {
+ "description": "API key is sent in a [cookie](https://swagger.io/docs/specification/authentication/cookie-authentication),",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ ]
+ },
+ "istio.mixer.v1.config.client.HTTPAPISpecReference": {
+ "description": "HTTPAPISpecReference defines a reference to an HTTPAPISpec. This is typically used for establishing bindings between an HTTPAPISpec and an IstioService. For example, the following defines an HTTPAPISpecReference for service `foo` in namespace `bar`.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "REQUIRED. The short name of the HTTPAPISpec. This is the resource name defined by the metadata name field.",
+ "type": "string",
+ "format": "string"
+ },
+ "namespace": {
+ "description": "Optional namespace of the HTTPAPISpec. Defaults to the encompassing HTTPAPISpecBinding's metadata namespace field.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.mixer.v1.config.client.HTTPAPISpecBinding": {
+ "description": "HTTPAPISpecBinding defines the binding between HTTPAPISpecs and one or more IstioService. For example, the following establishes a binding between the HTTPAPISpec `petstore` and service `foo` in namespace `bar`.",
+ "type": "object",
+ "properties": {
+ "services": {
+ "description": "REQUIRED. One or more services to map the listed HTTPAPISpec onto.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.IstioService"
+ }
+ },
+ "apiSpecs": {
+ "description": "REQUIRED. One or more HTTPAPISpec references that should be mapped to the specified service(s). The aggregate collection of match conditions defined in the HTTPAPISpecs should not overlap.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.HTTPAPISpecReference"
+ }
+ }
+ }
+ },
+ "istio.mixer.v1.config.client.IstioService": {
+ "description": "IstioService identifies a service and optionally service version. The FQDN of the service is composed from the name, namespace, and implementation-specific domain suffix (e.g. on Kubernetes, \"reviews\" + \"default\" + \"svc.cluster.local\" -\u003e \"reviews.default.svc.cluster.local\").",
+ "type": "object",
+ "required": [
+ "labels"
+ ],
+ "properties": {
+ "name": {
+ "description": "The short name of the service such as \"foo\".",
+ "type": "string",
+ "format": "string"
+ },
+ "namespace": {
+ "description": "Optional namespace of the service. Defaults to value of metadata namespace field.",
+ "type": "string",
+ "format": "string"
+ },
+ "domain": {
+ "description": "Domain suffix used to construct the service FQDN in implementations that support such specification.",
+ "type": "string",
+ "format": "string"
+ },
+ "service": {
+ "description": "The service FQDN.",
+ "type": "string",
+ "format": "string"
+ },
+ "labels": {
+ "description": "Optional one or more labels that uniquely identify the service version.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.mixer.v1.config.client.NetworkFailPolicy": {
+ "description": "Specifies the behavior when the client is unable to connect to Mixer.",
+ "type": "object",
+ "properties": {
+ "policy": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.NetworkFailPolicy.FailPolicy"
+ },
+ "maxRetry": {
+ "description": "Max retries on transport error.",
+ "type": "integer"
+ },
+ "baseRetryWait": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "maxRetryWait": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ }
+ }
+ },
+ "istio.mixer.v1.config.client.NetworkFailPolicy.FailPolicy": {
+ "description": "Describes the policy.",
+ "enum": [
+ "FAIL_OPEN",
+ "FAIL_CLOSE"
+ ],
+ "default": "FAIL_OPEN"
+ },
+ "istio.mixer.v1.config.client.ServiceConfig": {
+ "description": "Defines the per-service client configuration.",
+ "type": "object",
+ "properties": {
+ "disableCheckCalls": {
+ "description": "If true, do not call Mixer Check.",
+ "type": "boolean"
+ },
+ "disableReportCalls": {
+ "description": "If true, do not call Mixer Report.",
+ "type": "boolean"
+ },
+ "mixerAttributes": {
+ "$ref": "#/components/schemas/istio.mixer.v1.Attributes"
+ },
+ "httpApiSpec": {
+ "description": "HTTP API specifications to generate API attributes.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.HTTPAPISpec"
+ }
+ },
+ "quotaSpec": {
+ "description": "Quota specifications to generate quota requirements.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.QuotaSpec"
+ }
+ },
+ "networkFailPolicy": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.NetworkFailPolicy"
+ },
+ "forwardAttributes": {
+ "$ref": "#/components/schemas/istio.mixer.v1.Attributes"
+ }
+ }
+ },
+ "istio.mixer.v1.config.client.QuotaSpec": {
+ "description": "Determines the quotas used for individual requests.",
+ "type": "object",
+ "properties": {
+ "rules": {
+ "description": "A list of Quota rules.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.QuotaRule"
+ }
+ }
+ }
+ },
+ "istio.mixer.v1.config.client.TransportConfig": {
+ "description": "Defines the transport config on how to call Mixer.",
+ "type": "object",
+ "properties": {
+ "networkFailPolicy": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.NetworkFailPolicy"
+ },
+ "disableCheckCache": {
+ "description": "The flag to disable check cache.",
+ "type": "boolean"
+ },
+ "disableQuotaCache": {
+ "description": "The flag to disable quota cache.",
+ "type": "boolean"
+ },
+ "disableReportBatch": {
+ "description": "The flag to disable report batch.",
+ "type": "boolean"
+ },
+ "statsUpdateInterval": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "checkCluster": {
+ "description": "Name of the cluster that will forward check calls to a pool of mixer servers. Defaults to \"mixer_server\". By using different names for checkCluster and reportCluster, it is possible to have one set of Mixer servers handle check calls, while another set of Mixer servers handle report calls.",
+ "type": "string",
+ "format": "string"
+ },
+ "reportCluster": {
+ "description": "Name of the cluster that will forward report calls to a pool of mixer servers. Defaults to \"mixer_server\". By using different names for checkCluster and reportCluster, it is possible to have one set of Mixer servers handle check calls, while another set of Mixer servers handle report calls.",
+ "type": "string",
+ "format": "string"
+ },
+ "attributesForMixerProxy": {
+ "$ref": "#/components/schemas/istio.mixer.v1.Attributes"
+ },
+ "reportBatchMaxEntries": {
+ "description": "When disable_report_batch is false, this value specifies the maximum number of requests that are batched in report. If left unspecified, the default value of report_batch_max_entries == 0 will use the hardcoded defaults of istio::mixerclient::ReportOptions.",
+ "type": "integer"
+ },
+ "reportBatchMaxTime": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ }
+ }
+ },
+ "istio.mixer.v1.config.client.HttpClientConfig": {
+ "description": "Defines the client config for HTTP.",
+ "type": "object",
+ "required": [
+ "serviceConfigs"
+ ],
+ "properties": {
+ "mixerAttributes": {
+ "$ref": "#/components/schemas/istio.mixer.v1.Attributes"
+ },
+ "forwardAttributes": {
+ "$ref": "#/components/schemas/istio.mixer.v1.Attributes"
+ },
+ "transport": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.TransportConfig"
+ },
+ "serviceConfigs": {
+ "description": "Map of control configuration indexed by destination.service. This is used to support per-service configuration for cases where a mixerclient serves multiple services.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.ServiceConfig"
+ }
+ },
+ "defaultDestinationService": {
+ "description": "Default destination service name if none was specified in the client request.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.mixer.v1.config.client.TcpClientConfig": {
+ "description": "Defines the client config for TCP.",
+ "type": "object",
+ "properties": {
+ "disableCheckCalls": {
+ "description": "If set to true, disables Mixer check calls.",
+ "type": "boolean"
+ },
+ "disableReportCalls": {
+ "description": "If set to true, disables Mixer check calls.",
+ "type": "boolean"
+ },
+ "mixerAttributes": {
+ "$ref": "#/components/schemas/istio.mixer.v1.Attributes"
+ },
+ "transport": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.TransportConfig"
+ },
+ "connectionQuotaSpec": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.QuotaSpec"
+ },
+ "reportInterval": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ }
+ }
+ },
+ "istio.mixer.v1.config.client.QuotaRule": {
+ "description": "Specifies a rule with list of matches and list of quotas. If any clause matched, the list of quotas will be used.",
+ "type": "object",
+ "properties": {
+ "quotas": {
+ "description": "The list of quotas to charge.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.Quota"
+ }
+ },
+ "match": {
+ "description": "If empty, match all request. If any of match is true, it is matched.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.AttributeMatch"
+ }
+ }
+ }
+ },
+ "istio.mixer.v1.config.client.AttributeMatch": {
+ "description": "Specifies a match clause to match Istio attributes",
+ "type": "object",
+ "required": [
+ "clause"
+ ],
+ "properties": {
+ "clause": {
+ "description": "Map of attribute names to StringMatch type. Each map element specifies one condition to match.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.StringMatch"
+ }
+ }
+ }
+ },
+ "istio.mixer.v1.config.client.Quota": {
+ "description": "Specifies a quota to use with quota name and amount.",
+ "type": "object",
+ "properties": {
+ "quota": {
+ "description": "The quota name to charge",
+ "type": "string",
+ "format": "string"
+ },
+ "charge": {
+ "description": "The quota amount to charge",
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "istio.mixer.v1.config.client.StringMatch": {
+ "description": "Describes how to match a given string in HTTP headers. Match is case-sensitive.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "exact": {
+ "description": "exact string match",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "prefix": {
+ "description": "prefix-based match",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "regex": {
+ "description": "ECMAscript style regex-based match",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ ]
+ },
+ "istio.mixer.v1.config.client.QuotaSpecBinding": {
+ "description": "QuotaSpecBinding defines the binding between QuotaSpecs and one or more IstioService.",
+ "type": "object",
+ "properties": {
+ "services": {
+ "description": "REQUIRED. One or more services to map the listed QuotaSpec onto.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.IstioService"
+ }
+ },
+ "quotaSpecs": {
+ "description": "REQUIRED. One or more QuotaSpec references that should be mapped to the specified service(s). The aggregate collection of match conditions defined in the QuotaSpecs should not overlap.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.mixer.v1.config.client.QuotaSpecBinding.QuotaSpecReference"
+ }
+ }
+ }
+ },
+ "istio.mixer.v1.config.client.QuotaSpecBinding.QuotaSpecReference": {
+ "description": "QuotaSpecReference uniquely identifies the QuotaSpec used in the Binding.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "REQUIRED. The short name of the QuotaSpec. This is the resource name defined by the metadata name field.",
+ "type": "string",
+ "format": "string"
+ },
+ "namespace": {
+ "description": "Optional namespace of the QuotaSpec. Defaults to the value of the metadata namespace field.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "google.protobuf.Duration": {
+ "description": "Used for values of type DURATION",
+ "type": "object",
+ "properties": {
+ "seconds": {
+ "description": "Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years",
+ "type": "integer",
+ "format": "int64"
+ },
+ "nanos": {
+ "description": "Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "istio.mixer.v1.Attributes": {
+ "description": "Default attributes to send to Mixer in both Check and Report. This typically includes \"destination.ip\" and \"destination.uid\" attributes.",
+ "type": "object",
+ "required": [
+ "attributes"
+ ],
+ "properties": {
+ "attributes": {
+ "description": "A map of attribute name to its value.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/istio.mixer.v1.Attributes.AttributeValue"
+ }
+ }
+ }
+ },
+ "istio.mixer.v1.Attributes.AttributeValue": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "stringValue": {
+ "description": "Used for values of type STRING, DNS_NAME, EMAIL_ADDRESS, and URI",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "int64Value": {
+ "description": "Used for values of type INT64",
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "doubleValue": {
+ "description": "Used for values of type DOUBLE",
+ "type": "number",
+ "format": "double"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "boolValue": {
+ "description": "Used for values of type BOOL",
+ "type": "boolean"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "bytesValue": {
+ "description": "Used for values of type BYTES",
+ "type": "string",
+ "format": "byte"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "timestampValue": {
+ "$ref": "#/components/schemas/google.protobuf.Timestamp"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "durationValue": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "stringMapValue": {
+ "$ref": "#/components/schemas/istio.mixer.v1.Attributes.StringMap"
+ }
+ }
+ }
+ ]
+ },
+ "google.protobuf.Timestamp": {
+ "description": "Used for values of type TIMESTAMP",
+ "type": "object",
+ "properties": {
+ "seconds": {
+ "description": "Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.",
+ "type": "integer",
+ "format": "int64"
+ },
+ "nanos": {
+ "description": "Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "istio.mixer.v1.Attributes.StringMap": {
+ "description": "Used for values of type STRING_MAP",
+ "type": "object",
+ "required": [
+ "entries"
+ ],
+ "properties": {
+ "entries": {
+ "description": "Holds a set of name/value pairs.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/vendor/istio.io/api/mixer/v1/config/client/quota.pb.go b/vendor/istio.io/api/mixer/v1/config/client/quota.pb.go
index 87b081e71519..39fe9ff3118d 100644
--- a/vendor/istio.io/api/mixer/v1/config/client/quota.pb.go
+++ b/vendor/istio.io/api/mixer/v1/config/client/quota.pb.go
@@ -560,9 +560,9 @@ func (m *StringMatch) MarshalTo(dAtA []byte) (int, error) {
var l int
_ = l
if m.MatchType != nil {
- nn1, err1 := m.MatchType.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ nn1, err := m.MatchType.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn1
}
@@ -633,9 +633,9 @@ func (m *AttributeMatch) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintQuota(dAtA, i, uint64(v.Size()))
- n2, err2 := v.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := v.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
}
@@ -925,13 +925,8 @@ func (this *QuotaSpec) String() string {
if this == nil {
return "nil"
}
- repeatedStringForRules := "[]*QuotaRule{"
- for _, f := range this.Rules {
- repeatedStringForRules += strings.Replace(f.String(), "QuotaRule", "QuotaRule", 1) + ","
- }
- repeatedStringForRules += "}"
s := strings.Join([]string{`&QuotaSpec{`,
- `Rules:` + repeatedStringForRules + `,`,
+ `Rules:` + strings.Replace(fmt.Sprintf("%v", this.Rules), "QuotaRule", "QuotaRule", 1) + `,`,
`}`,
}, "")
return s
@@ -940,19 +935,9 @@ func (this *QuotaRule) String() string {
if this == nil {
return "nil"
}
- repeatedStringForMatch := "[]*AttributeMatch{"
- for _, f := range this.Match {
- repeatedStringForMatch += strings.Replace(f.String(), "AttributeMatch", "AttributeMatch", 1) + ","
- }
- repeatedStringForMatch += "}"
- repeatedStringForQuotas := "[]*Quota{"
- for _, f := range this.Quotas {
- repeatedStringForQuotas += strings.Replace(f.String(), "Quota", "Quota", 1) + ","
- }
- repeatedStringForQuotas += "}"
s := strings.Join([]string{`&QuotaRule{`,
- `Match:` + repeatedStringForMatch + `,`,
- `Quotas:` + repeatedStringForQuotas + `,`,
+ `Match:` + strings.Replace(fmt.Sprintf("%v", this.Match), "AttributeMatch", "AttributeMatch", 1) + `,`,
+ `Quotas:` + strings.Replace(fmt.Sprintf("%v", this.Quotas), "Quota", "Quota", 1) + `,`,
`}`,
}, "")
return s
@@ -1032,19 +1017,9 @@ func (this *QuotaSpecBinding) String() string {
if this == nil {
return "nil"
}
- repeatedStringForServices := "[]*IstioService{"
- for _, f := range this.Services {
- repeatedStringForServices += strings.Replace(fmt.Sprintf("%v", f), "IstioService", "IstioService", 1) + ","
- }
- repeatedStringForServices += "}"
- repeatedStringForQuotaSpecs := "[]*QuotaSpecBinding_QuotaSpecReference{"
- for _, f := range this.QuotaSpecs {
- repeatedStringForQuotaSpecs += strings.Replace(fmt.Sprintf("%v", f), "QuotaSpecBinding_QuotaSpecReference", "QuotaSpecBinding_QuotaSpecReference", 1) + ","
- }
- repeatedStringForQuotaSpecs += "}"
s := strings.Join([]string{`&QuotaSpecBinding{`,
- `Services:` + repeatedStringForServices + `,`,
- `QuotaSpecs:` + repeatedStringForQuotaSpecs + `,`,
+ `Services:` + strings.Replace(fmt.Sprintf("%v", this.Services), "IstioService", "IstioService", 1) + `,`,
+ `QuotaSpecs:` + strings.Replace(fmt.Sprintf("%v", this.QuotaSpecs), "QuotaSpecBinding_QuotaSpecReference", "QuotaSpecBinding_QuotaSpecReference", 1) + `,`,
`}`,
}, "")
return s
diff --git a/vendor/istio.io/api/mixer/v1/istio.mixer.v1.json b/vendor/istio.io/api/mixer/v1/istio.mixer.v1.json
new file mode 100644
index 000000000000..0b095296f8b8
--- /dev/null
+++ b/vendor/istio.io/api/mixer/v1/istio.mixer.v1.json
@@ -0,0 +1,460 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "This package defines the Mixer API that the sidecar proxy uses to perform precondition checks, manage quotas, and report telemetry.",
+ "version": "v1"
+ },
+ "components": {
+ "schemas": {
+ "istio.mixer.v1.Attributes": {
+ "description": "Attributes represents a set of typed name/value pairs. Many of Mixer's API either consume and/or return attributes.",
+ "type": "object",
+ "required": [
+ "attributes"
+ ],
+ "properties": {
+ "attributes": {
+ "description": "A map of attribute name to its value.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/istio.mixer.v1.Attributes.AttributeValue"
+ }
+ }
+ }
+ },
+ "istio.mixer.v1.Attributes.AttributeValue": {
+ "description": "Specifies one attribute value with different type.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "stringValue": {
+ "description": "Used for values of type STRING, DNS_NAME, EMAIL_ADDRESS, and URI",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "int64Value": {
+ "description": "Used for values of type INT64",
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "doubleValue": {
+ "description": "Used for values of type DOUBLE",
+ "type": "number",
+ "format": "double"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "boolValue": {
+ "description": "Used for values of type BOOL",
+ "type": "boolean"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "bytesValue": {
+ "description": "Used for values of type BYTES",
+ "type": "string",
+ "format": "byte"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "timestampValue": {
+ "$ref": "#/components/schemas/google.protobuf.Timestamp"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "durationValue": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "stringMapValue": {
+ "$ref": "#/components/schemas/istio.mixer.v1.Attributes.StringMap"
+ }
+ }
+ }
+ ]
+ },
+ "istio.mixer.v1.Attributes.StringMap": {
+ "description": "Defines a string map.",
+ "type": "object",
+ "required": [
+ "entries"
+ ],
+ "properties": {
+ "entries": {
+ "description": "Holds a set of name/value pairs.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.mixer.v1.CompressedAttributes": {
+ "description": "Defines a list of attributes in compressed format optimized for transport. Within this message, strings are referenced using integer indices into one of two string dictionaries. Positive integers index into the global deployment-wide dictionary, whereas negative integers index into the message-level dictionary instead. The message-level dictionary is carried by the `words` field of this message, the deployment-wide dictionary is determined via configuration.",
+ "type": "object",
+ "required": [
+ "strings",
+ "bytes",
+ "int64s",
+ "doubles",
+ "bools",
+ "timestamps",
+ "durations",
+ "stringMaps"
+ ],
+ "properties": {
+ "strings": {
+ "description": "Holds attributes of type STRING, DNS_NAME, EMAIL_ADDRESS, URI",
+ "type": "object",
+ "additionalProperties": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "bytes": {
+ "description": "Holds attributes of type BYTES",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "words": {
+ "description": "The message-level dictionary.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "int64s": {
+ "description": "Holds attributes of type INT64",
+ "type": "object",
+ "additionalProperties": {
+ "type": "integer",
+ "format": "int64"
+ }
+ },
+ "doubles": {
+ "description": "Holds attributes of type DOUBLE",
+ "type": "object",
+ "additionalProperties": {
+ "type": "number",
+ "format": "double"
+ }
+ },
+ "bools": {
+ "description": "Holds attributes of type BOOL",
+ "type": "object",
+ "additionalProperties": {
+ "type": "boolean"
+ }
+ },
+ "timestamps": {
+ "description": "Holds attributes of type TIMESTAMP",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/google.protobuf.Timestamp"
+ }
+ },
+ "durations": {
+ "description": "Holds attributes of type DURATION",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ }
+ },
+ "stringMaps": {
+ "description": "Holds attributes of type STRING_MAP",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/istio.mixer.v1.StringMap"
+ }
+ }
+ }
+ },
+ "istio.mixer.v1.StringMap": {
+ "description": "A map of string to string. The keys and values in this map are dictionary indices (see the [Attributes][istio.mixer.v1.CompressedAttributes] message for an explanation)",
+ "type": "object",
+ "required": [
+ "entries"
+ ],
+ "properties": {
+ "entries": {
+ "description": "Holds a set of name/value pairs.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ }
+ },
+ "istio.mixer.v1.CheckRequest": {
+ "description": "Used to get a thumbs-up/thumbs-down before performing an action.",
+ "type": "object",
+ "required": [
+ "quotas"
+ ],
+ "properties": {
+ "globalWordCount": {
+ "description": "The number of words in the global dictionary, used with to populate the attributes. This value is used as a quick way to determine whether the client is using a dictionary that the server understands.",
+ "type": "integer"
+ },
+ "deduplicationId": {
+ "description": "Used for deduplicating `Check` calls in the case of failed RPCs and retries. This should be a UUID per call, where the same UUID is used for retries of the same call.",
+ "type": "string",
+ "format": "string"
+ },
+ "quotas": {
+ "description": "The individual quotas to allocate",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/istio.mixer.v1.CheckRequest.QuotaParams"
+ }
+ }
+ }
+ },
+ "istio.mixer.v1.CheckRequest.QuotaParams": {
+ "description": "parameters for a quota allocation",
+ "type": "object",
+ "properties": {
+ "amount": {
+ "description": "Amount of quota to allocate",
+ "type": "integer",
+ "format": "int64"
+ },
+ "bestEffort": {
+ "description": "When true, supports returning less quota than what was requested.",
+ "type": "boolean"
+ }
+ }
+ },
+ "istio.mixer.v1.CheckResponse": {
+ "description": "The response generated by the Check method.",
+ "type": "object",
+ "required": [
+ "quotas"
+ ],
+ "properties": {
+ "quotas": {
+ "description": "The resulting quota, one entry per requested quota.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/istio.mixer.v1.CheckResponse.QuotaResult"
+ }
+ }
+ }
+ },
+ "istio.mixer.v1.CheckResponse.QuotaResult": {
+ "description": "Expresses the result of a quota allocation.",
+ "type": "object",
+ "properties": {
+ "grantedAmount": {
+ "description": "The amount of granted quota. When `QuotaParams.best_effort` is true, this will be \u003e= 0. If `QuotaParams.best_effort` is false, this will be either 0 or \u003e= `QuotaParams.amount`.",
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "istio.mixer.v1.CheckResponse.PreconditionResult": {
+ "description": "Expresses the result of a precondition check.",
+ "type": "object",
+ "properties": {
+ "validUseCount": {
+ "description": "The number of uses for which this result can be considered valid.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "referencedAttributes": {
+ "$ref": "#/components/schemas/istio.mixer.v1.ReferencedAttributes"
+ },
+ "routeDirective": {
+ "$ref": "#/components/schemas/istio.mixer.v1.RouteDirective"
+ }
+ }
+ },
+ "istio.mixer.v1.ReferencedAttributes": {
+ "description": "Describes the attributes that were used to determine the response. This can be used to construct a response cache.",
+ "type": "object",
+ "properties": {
+ "words": {
+ "description": "The message-level dictionary. Refer to [CompressedAttributes][istio.mixer.v1.CompressedAttributes] for information on using dictionaries.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.mixer.v1.RouteDirective": {
+ "description": "Expresses the routing manipulation actions to be performed on behalf of Mixer in response to a precondition check.",
+ "type": "object",
+ "properties": {
+ "directResponseCode": {
+ "description": "If set, enables a direct response without proxying the request to the routing destination. Required to be a value in the 2xx or 3xx range.",
+ "type": "integer"
+ },
+ "directResponseBody": {
+ "description": "Supplies the response body for the direct response. If this setting is omitted, no body is included in the generated response.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.mixer.v1.ReferencedAttributes.Condition": {
+ "description": "How an attribute's value was matched",
+ "enum": [
+ "CONDITION_UNSPECIFIED",
+ "ABSENCE",
+ "EXACT",
+ "REGEX"
+ ],
+ "default": "CONDITION_UNSPECIFIED"
+ },
+ "istio.mixer.v1.ReferencedAttributes.AttributeMatch": {
+ "description": "Describes a single attribute match.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the attribute. This is a dictionary index encoded in a manner identical to all strings in the [CompressedAttributes][istio.mixer.v1.CompressedAttributes] message.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "condition": {
+ "$ref": "#/components/schemas/istio.mixer.v1.ReferencedAttributes.Condition"
+ },
+ "regex": {
+ "description": "If a REGEX condition is provided for a STRING_MAP attribute, clients should use the regex value to match against map keys.",
+ "type": "string",
+ "format": "string"
+ },
+ "mapKey": {
+ "description": "A key in a STRING_MAP. When multiple keys from a STRING_MAP attribute were referenced, there will be multiple AttributeMatch messages with different map_key values. Values for map_key SHOULD be ignored for attributes that are not STRING_MAP.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "istio.mixer.v1.HeaderOperation": {
+ "description": "Operation on HTTP headers to replace, append, or remove a header. Header names are normalized to lower-case with dashes, e.g. \"x-request-id\". Pseudo-headers \":path\", \":authority\", and \":method\" are supported to modify the request headers.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Header name.",
+ "type": "string",
+ "format": "string"
+ },
+ "value": {
+ "description": "Header value.",
+ "type": "string",
+ "format": "string"
+ },
+ "operation": {
+ "$ref": "#/components/schemas/istio.mixer.v1.HeaderOperation.Operation"
+ }
+ }
+ },
+ "istio.mixer.v1.HeaderOperation.Operation": {
+ "description": "Operation type.",
+ "enum": [
+ "REPLACE",
+ "REMOVE",
+ "APPEND"
+ ],
+ "default": "REPLACE"
+ },
+ "istio.mixer.v1.ReportRequest": {
+ "description": "Used to report telemetry after performing one or more actions.",
+ "type": "object",
+ "properties": {
+ "globalWordCount": {
+ "description": "The number of words in the global dictionary. To detect global dictionary out of sync between client and server.",
+ "type": "integer"
+ },
+ "repeatedAttributesSemantics": {
+ "$ref": "#/components/schemas/istio.mixer.v1.ReportRequest.RepeatedAttributesSemantics"
+ },
+ "defaultWords": {
+ "description": "The default message-level dictionary for all the attributes. Individual attribute messages can have their own dictionaries, but if they don't then this set of words, if it is provided, is used instead.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.mixer.v1.ReportRequest.RepeatedAttributesSemantics": {
+ "description": "Used to signal how the sets of compressed attributes should be reconstitued server-side.",
+ "enum": [
+ "DELTA_ENCODING",
+ "INDEPENDENT_ENCODING"
+ ],
+ "default": "DELTA_ENCODING"
+ },
+ "istio.mixer.v1.ReportResponse": {
+ "description": "Used to carry responses to telemetry reports",
+ "type": "object"
+ },
+ "google.protobuf.Duration": {
+ "type": "object",
+ "properties": {
+ "seconds": {
+ "description": "Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years",
+ "type": "integer",
+ "format": "int64"
+ },
+ "nanos": {
+ "description": "Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "google.protobuf.Timestamp": {
+ "type": "object",
+ "properties": {
+ "seconds": {
+ "description": "Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.",
+ "type": "integer",
+ "format": "int64"
+ },
+ "nanos": {
+ "description": "Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/vendor/istio.io/api/mixer/v1/istio.mixer.v1.pb.html b/vendor/istio.io/api/mixer/v1/istio.mixer.v1.pb.html
deleted file mode 100644
index d3231f0a6ab4..000000000000
--- a/vendor/istio.io/api/mixer/v1/istio.mixer.v1.pb.html
+++ /dev/null
@@ -1,1013 +0,0 @@
----
-title: istio.mixer.v1
-layout: protoc-gen-docs
-generator: protoc-gen-docs
-number_of_entries: 21
----
-This package defines the Mixer API that the sidecar proxy uses to perform
-precondition checks, manage quotas, and report telemetry.
-
-Services
-Mixer
-
-Mixer provides three core features:
-
-
-Precondition Checking. Enables callers to verify a number of preconditions
-before responding to an incoming request from a service consumer.
-Preconditions can include whether the service consumer is properly
-authenticated, is on the service’s whitelist, passes ACL checks, and more.
-
-Quota Management. Enables services to allocate and free quota on a number
-of dimensions, Quotas are used as a relatively simple resource management tool
-to provide some fairness between service consumers when contending for limited
-resources. Rate limits are examples of quotas.
-
-Telemetry Reporting. Enables services to report logging and monitoring.
-In the future, it will also enable tracing and billing streams intended for
-both the service operator as well as for service consumers.
-
-
-rpc Check(CheckRequest) returns (CheckResponse)
-
-Checks preconditions and allocate quota before performing an operation.
-The preconditions enforced depend on the set of supplied attributes and
-the active configuration.
-
-rpc Report(ReportRequest) returns (ReportResponse)
-
-Reports telemetry, such as logs and metrics.
-The reported information depends on the set of supplied attributes and the
-active configuration.
-
-
-Types
-Attributes
-
-Attributes represents a set of typed name/value pairs. Many of Mixer’s
-API either consume and/or return attributes.
-
-Istio uses attributes to control the runtime behavior of services running in the service mesh.
-Attributes are named and typed pieces of metadata describing ingress and egress traffic and the
-environment this traffic occurs in. An Istio attribute carries a specific piece
-of information such as the error code of an API request, the latency of an API request, or the
-original IP address of a TCP connection. For example:
-
-request.path: xyz/abc
-request.size: 234
-request.time: 12:34:56.789 04/17/2017
-source.ip: 192.168.0.1
-target.service: example
-
-
-A given Istio deployment has a fixed vocabulary of attributes that it understands.
-The specific vocabulary is determined by the set of attribute producers being used
-in the deployment. The primary attribute producer in Istio is Envoy, although
-specialized Mixer adapters and services can also generate attributes.
-
-The common baseline set of attributes available in most Istio deployments is defined
-here.
-
-Attributes are strongly typed. The supported attribute types are defined by
-ValueType.
-Each type of value is encoded into one of the so-called transport types present
-in this message.
-
-Defines a map of attributes in uncompressed format.
-Following places may use this message:
-1) Configure Istio/Proxy with static per-proxy attributes, such as source.uid.
-2) Service IDL definition to extract api attributes for active requests.
-3) Forward attributes from client proxy to server proxy for HTTP requests.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-attributes |
-map<string, Attributes.AttributeValue> |
-
- A map of attribute name to its value.
-
- |
-
-
-
-
-Attributes.AttributeValue
-
-Specifies one attribute value with different type.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-stringValue |
-string (oneof) |
-
- Used for values of type STRING, DNSNAME, EMAILADDRESS, and URI
-
- |
-
-
-int64Value |
-int64 (oneof) |
-
- Used for values of type INT64
-
- |
-
-
-doubleValue |
-double (oneof) |
-
- Used for values of type DOUBLE
-
- |
-
-
-boolValue |
-bool (oneof) |
-
- Used for values of type BOOL
-
- |
-
-
-bytesValue |
-bytes (oneof) |
-
- Used for values of type BYTES
-
- |
-
-
-timestampValue |
-google.protobuf.Timestamp (oneof) |
-
- Used for values of type TIMESTAMP
-
- |
-
-
-durationValue |
-google.protobuf.Duration (oneof) |
-
- Used for values of type DURATION
-
- |
-
-
-stringMapValue |
-Attributes.StringMap (oneof) |
-
- Used for values of type STRING_MAP
-
- |
-
-
-
-
-Attributes.StringMap
-
-Defines a string map.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-entries |
-map<string, string> |
-
- Holds a set of name/value pairs.
-
- |
-
-
-
-
-CheckRequest
-
-Used to get a thumbs-up/thumbs-down before performing an action.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-attributes |
-CompressedAttributes |
-
- The attributes to use for this request.
-
-Mixer’s configuration determines how these attributes are used to
-establish the result returned in the response.
-
- |
-
-
-globalWordCount |
-uint32 |
-
- The number of words in the global dictionary, used with to populate the attributes.
-This value is used as a quick way to determine whether the client is using a dictionary that
-the server understands.
-
- |
-
-
-deduplicationId |
-string |
-
- Used for deduplicating Check calls in the case of failed RPCs and retries. This should be a UUID
-per call, where the same UUID is used for retries of the same call.
-
- |
-
-
-quotas |
-map<string, CheckRequest.QuotaParams> |
-
- The individual quotas to allocate
-
- |
-
-
-
-
-CheckRequest.QuotaParams
-
-parameters for a quota allocation
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-amount |
-int64 |
-
- Amount of quota to allocate
-
- |
-
-
-bestEffort |
-bool |
-
- When true, supports returning less quota than what was requested.
-
- |
-
-
-
-
-CheckResponse
-
-The response generated by the Check method.
-
-
-
-CheckResponse.PreconditionResult
-
-Expresses the result of a precondition check.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-status |
-google.rpc.Status |
-
- A status code of OK indicates all preconditions were satisfied. Any other code indicates not
-all preconditions were satisfied and details describe why.
-
- |
-
-
-validDuration |
-google.protobuf.Duration |
-
- The amount of time for which this result can be considered valid.
-
- |
-
-
-validUseCount |
-int32 |
-
- The number of uses for which this result can be considered valid.
-
- |
-
-
-referencedAttributes |
-ReferencedAttributes |
-
- The total set of attributes that were used in producing the result
-along with matching conditions.
-
- |
-
-
-routeDirective |
-RouteDirective |
-
- An optional routing directive, used to manipulate the traffic metadata
-whenever all preconditions are satisfied.
-
- |
-
-
-
-
-CheckResponse.QuotaResult
-
-Expresses the result of a quota allocation.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-validDuration |
-google.protobuf.Duration |
-
- The amount of time for which this result can be considered valid.
-
- |
-
-
-grantedAmount |
-int64 |
-
- The amount of granted quota. When QuotaParams.best_effort is true, this will be >= 0.
-If QuotaParams.best_effort is false, this will be either 0 or >= QuotaParams.amount .
-
- |
-
-
-status |
-google.rpc.Status |
-
- A status code of OK indicates quota was fetched successfully.
-Any other code indicates error in fetching quota.
-
- |
-
-
-referencedAttributes |
-ReferencedAttributes |
-
- The total set of attributes that were used in producing the result
-along with matching conditions.
-
- |
-
-
-
-
-CompressedAttributes
-
-Defines a list of attributes in compressed format optimized for transport.
-Within this message, strings are referenced using integer indices into
-one of two string dictionaries. Positive integers index into the global
-deployment-wide dictionary, whereas negative integers index into the message-level
-dictionary instead. The message-level dictionary is carried by the
-words
field of this message, the deployment-wide dictionary is determined via
-configuration.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-words |
-string[] |
-
- The message-level dictionary.
-
- |
-
-
-strings |
-map<int32, int32> |
-
- Holds attributes of type STRING, DNSNAME, EMAILADDRESS, URI
-
- |
-
-
-int64s |
-map<int32, int64> |
-
- Holds attributes of type INT64
-
- |
-
-
-doubles |
-map<int32, double> |
-
- Holds attributes of type DOUBLE
-
- |
-
-
-bools |
-map<int32, bool> |
-
- Holds attributes of type BOOL
-
- |
-
-
-timestamps |
-map<int32, google.protobuf.Timestamp> |
-
- Holds attributes of type TIMESTAMP
-
- |
-
-
-durations |
-map<int32, google.protobuf.Duration> |
-
- Holds attributes of type DURATION
-
- |
-
-
-bytes |
-map<int32, bytes> |
-
- Holds attributes of type BYTES
-
- |
-
-
-stringMaps |
-map<int32, StringMap> |
-
- Holds attributes of type STRING_MAP
-
- |
-
-
-
-
-
-
-Operation on HTTP headers to replace, append, or remove a header. Header
-names are normalized to lower-case with dashes, e.g. “x-request-id”.
-Pseudo-headers “:path”, “:authority”, and “:method” are supported to modify
-the request headers.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-
-
-
-
-
-
-
-Operation type.
-
-
-
-
-Name |
-Description |
-
-
-
-
-
-
-
-
-
-ReferencedAttributes
-
-Describes the attributes that were used to determine the response.
-This can be used to construct a response cache.
-
-
-
-ReferencedAttributes.AttributeMatch
-
-Describes a single attribute match.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-name |
-int32 |
-
- The name of the attribute. This is a dictionary index encoded in a manner identical
-to all strings in the CompressedAttributes message.
-
- |
-
-
-condition |
-ReferencedAttributes.Condition |
-
- The kind of match against the attribute value.
-
- |
-
-
-regex |
-string |
-
- If a REGEX condition is provided for a STRING_MAP attribute,
-clients should use the regex value to match against map keys.
-
- |
-
-
-mapKey |
-int32 |
-
- A key in a STRINGMAP. When multiple keys from a STRINGMAP
-attribute were referenced, there will be multiple AttributeMatch
-messages with different mapkey values. Values for mapkey SHOULD
-be ignored for attributes that are not STRING_MAP.
-
-Indices for the keys are used (taken either from the
-message dictionary from the words field or the global dictionary).
-
-If no mapkey value is provided for a STRINGMAP attribute, the
-entire STRING_MAP will be used.
-
- |
-
-
-
-
-ReferencedAttributes.Condition
-
-How an attribute’s value was matched
-
-
-
-
-Name |
-Description |
-
-
-
-
-CONDITION_UNSPECIFIED |
-
- should not occur
-
- |
-
-
-ABSENCE |
-
- match when attribute doesn’t exist
-
- |
-
-
-EXACT |
-
- match when attribute value is an exact byte-for-byte match
-
- |
-
-
-REGEX |
-
- match when attribute value matches the included regex
-
- |
-
-
-
-
-ReportRequest
-
-Used to report telemetry after performing one or more actions.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-attributes |
-CompressedAttributes[] |
-
- The attributes to use for this request.
-
-Each Attributes element represents the state of a single action. Multiple actions
-can be provided in a single message in order to improve communication efficiency. The
-client can accumulate a set of actions and send them all in one single message.
-
- |
-
-
-repeatedAttributesSemantics |
-ReportRequest.RepeatedAttributesSemantics |
-
- Indicates how to decode the attributes sets in this request.
-
- |
-
-
-defaultWords |
-string[] |
-
- The default message-level dictionary for all the attributes.
-Individual attribute messages can have their own dictionaries, but if they don’t
-then this set of words, if it is provided, is used instead.
-
-This makes it possible to share the same dictionary for all attributes in this
-request, which can substantially reduce the overall request size.
-
- |
-
-
-globalWordCount |
-uint32 |
-
- The number of words in the global dictionary.
-To detect global dictionary out of sync between client and server.
-
- |
-
-
-
-
-ReportRequest.RepeatedAttributesSemantics
-
-Used to signal how the sets of compressed attributes should be reconstitued server-side.
-
-
-
-
-Name |
-Description |
-
-
-
-
-DELTA_ENCODING |
-
- Use delta encoding between sets of compressed attributes to reduce the overall on-wire
-request size. Each individual set of attributes is used to modify the previous set.
-NOTE: There is no way with this encoding to specify attribute value deletion. This
-option should be used with extreme caution.
-
- |
-
-
-INDEPENDENT_ENCODING |
-
- Treat each set of compressed attributes as complete - independent from other sets
-in this request. This will result in on-wire duplication of attributes and values, but
-will allow for proper accounting of absent values in overall encoding.
-
- |
-
-
-
-
-ReportResponse
-
-Used to carry responses to telemetry reports
-
-
-RouteDirective
-
-Expresses the routing manipulation actions to be performed on behalf of
-Mixer in response to a precondition check.
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-
-
-directResponseCode |
-uint32 |
-
- If set, enables a direct response without proxying the request to the routing
-destination. Required to be a value in the 2xx or 3xx range.
-
- |
-
-
-directResponseBody |
-string |
-
- Supplies the response body for the direct response.
-If this setting is omitted, no body is included in the generated response.
-
- |
-
-
-
-
-StringMap
-
-A map of string to string. The keys and values in this map are dictionary
-indices (see the Attributes message for an explanation)
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-entries |
-map<int32, int32> |
-
- Holds a set of name/value pairs.
-
- |
-
-
-
-
-google.rpc.Status
-
-The Status
type defines a logical error model that is suitable for different
-programming environments, including REST APIs and RPC APIs. It is used by
-gRPC. The error model is designed to be:
-
-
-- Simple to use and understand for most users
-- Flexible enough to meet unexpected needs
-
-
-Overview
-
-The Status
message contains three pieces of data: error code, error message,
-and error details. The error code should be an enum value of
-google.rpc.Code, but it may accept additional error codes if needed. The
-error message should be a developer-facing English message that helps
-developers understand and resolve the error. If a localized user-facing
-error message is needed, put the localized message in the error details or
-localize it in the client. The optional error details may contain arbitrary
-information about the error. There is a predefined set of error detail types
-in the package google.rpc
that can be used for common error conditions.
-
-Language mapping
-
-The Status
message is the logical representation of the error model, but it
-is not necessarily the actual wire format. When the Status
message is
-exposed in different client libraries and different wire protocols, it can be
-mapped differently. For example, it will likely be mapped to some exceptions
-in Java, but more likely mapped to some error codes in C.
-
-Other uses
-
-The error model and the Status
message can be used in a variety of
-environments, either with or without APIs, to provide a
-consistent developer experience across different environments.
-
-Example uses of this error model include:
-
-
-Partial errors. If a service needs to return partial errors to the client,
-it may embed the Status
in the normal response to indicate the partial
-errors.
-
-Workflow errors. A typical workflow has multiple steps. Each step may
-have a Status
message for error reporting.
-
-Batch operations. If a client uses batch request and batch response, the
-Status
message should be used directly inside batch response, one for
-each error sub-response.
-
-Asynchronous operations. If an API call embeds asynchronous operation
-results in its response, the status of those operations should be
-represented directly using the Status
message.
-
-Logging. If some API errors are stored in logs, the message Status
could
-be used directly after any stripping needed for security/privacy reasons.
-
-
-
-
-
-Field |
-Type |
-Description |
-
-
-
-
-code |
-int32 |
-
- The status code, which should be an enum value of google.rpc.Code.
-
- |
-
-
-message |
-string |
-
- A developer-facing error message, which should be in English. Any
-user-facing error message should be localized and sent in the
-google.rpc.Status.details field, or localized by the client.
-
- |
-
-
-details |
-google.protobuf.Any[] |
-
- A list of messages that carry the error details. There is a common set of
-message types for APIs to use.
-
- |
-
-
-
-
diff --git a/vendor/istio.io/api/mixer/v1/mixer.pb.go b/vendor/istio.io/api/mixer/v1/mixer.pb.go
index f2a313cb4a9a..83deae51af82 100644
--- a/vendor/istio.io/api/mixer/v1/mixer.pb.go
+++ b/vendor/istio.io/api/mixer/v1/mixer.pb.go
@@ -882,9 +882,9 @@ func (m *CheckRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintMixer(dAtA, i, uint64(m.Attributes.Size()))
- n1, err1 := m.Attributes.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := m.Attributes.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
if m.GlobalWordCount != 0 {
@@ -917,9 +917,9 @@ func (m *CheckRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintMixer(dAtA, i, uint64((&v).Size()))
- n2, err2 := (&v).MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := (&v).MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
}
@@ -978,9 +978,9 @@ func (m *CheckResponse) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintMixer(dAtA, i, uint64(m.Precondition.Size()))
- n3, err3 := m.Precondition.MarshalTo(dAtA[i:])
- if err3 != nil {
- return 0, err3
+ n3, err := m.Precondition.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n3
if len(m.Quotas) > 0 {
@@ -1002,9 +1002,9 @@ func (m *CheckResponse) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintMixer(dAtA, i, uint64((&v).Size()))
- n4, err4 := (&v).MarshalTo(dAtA[i:])
- if err4 != nil {
- return 0, err4
+ n4, err := (&v).MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n4
}
@@ -1030,17 +1030,17 @@ func (m *CheckResponse_PreconditionResult) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintMixer(dAtA, i, uint64(m.Status.Size()))
- n5, err5 := m.Status.MarshalTo(dAtA[i:])
- if err5 != nil {
- return 0, err5
+ n5, err := m.Status.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n5
dAtA[i] = 0x12
i++
i = encodeVarintMixer(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(m.ValidDuration)))
- n6, err6 := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.ValidDuration, dAtA[i:])
- if err6 != nil {
- return 0, err6
+ n6, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.ValidDuration, dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n6
if m.ValidUseCount != 0 {
@@ -1052,9 +1052,9 @@ func (m *CheckResponse_PreconditionResult) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
i++
i = encodeVarintMixer(dAtA, i, uint64(m.ReferencedAttributes.Size()))
- n7, err7 := m.ReferencedAttributes.MarshalTo(dAtA[i:])
- if err7 != nil {
- return 0, err7
+ n7, err := m.ReferencedAttributes.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n7
}
@@ -1062,9 +1062,9 @@ func (m *CheckResponse_PreconditionResult) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x32
i++
i = encodeVarintMixer(dAtA, i, uint64(m.RouteDirective.Size()))
- n8, err8 := m.RouteDirective.MarshalTo(dAtA[i:])
- if err8 != nil {
- return 0, err8
+ n8, err := m.RouteDirective.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n8
}
@@ -1089,9 +1089,9 @@ func (m *CheckResponse_QuotaResult) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintMixer(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(m.ValidDuration)))
- n9, err9 := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.ValidDuration, dAtA[i:])
- if err9 != nil {
- return 0, err9
+ n9, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.ValidDuration, dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n9
if m.GrantedAmount != 0 {
@@ -1102,17 +1102,17 @@ func (m *CheckResponse_QuotaResult) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
i++
i = encodeVarintMixer(dAtA, i, uint64(m.ReferencedAttributes.Size()))
- n10, err10 := m.ReferencedAttributes.MarshalTo(dAtA[i:])
- if err10 != nil {
- return 0, err10
+ n10, err := m.ReferencedAttributes.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n10
dAtA[i] = 0x32
i++
i = encodeVarintMixer(dAtA, i, uint64(m.Status.Size()))
- n11, err11 := m.Status.MarshalTo(dAtA[i:])
- if err11 != nil {
- return 0, err11
+ n11, err := m.Status.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n11
return i, nil
@@ -1631,7 +1631,7 @@ func (this *CheckRequest) String() string {
}
mapStringForQuotas += "}"
s := strings.Join([]string{`&CheckRequest{`,
- `Attributes:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Attributes), "CompressedAttributes", "CompressedAttributes", 1), `&`, ``, 1) + `,`,
+ `Attributes:` + strings.Replace(strings.Replace(this.Attributes.String(), "CompressedAttributes", "CompressedAttributes", 1), `&`, ``, 1) + `,`,
`GlobalWordCount:` + fmt.Sprintf("%v", this.GlobalWordCount) + `,`,
`DeduplicationId:` + fmt.Sprintf("%v", this.DeduplicationId) + `,`,
`Quotas:` + mapStringForQuotas + `,`,
@@ -1665,7 +1665,7 @@ func (this *CheckResponse) String() string {
}
mapStringForQuotas += "}"
s := strings.Join([]string{`&CheckResponse{`,
- `Precondition:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Precondition), "CheckResponse_PreconditionResult", "CheckResponse_PreconditionResult", 1), `&`, ``, 1) + `,`,
+ `Precondition:` + strings.Replace(strings.Replace(this.Precondition.String(), "CheckResponse_PreconditionResult", "CheckResponse_PreconditionResult", 1), `&`, ``, 1) + `,`,
`Quotas:` + mapStringForQuotas + `,`,
`}`,
}, "")
@@ -1676,11 +1676,11 @@ func (this *CheckResponse_PreconditionResult) String() string {
return "nil"
}
s := strings.Join([]string{`&CheckResponse_PreconditionResult{`,
- `Status:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Status), "Status", "rpc.Status", 1), `&`, ``, 1) + `,`,
- `ValidDuration:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ValidDuration), "Duration", "types.Duration", 1), `&`, ``, 1) + `,`,
+ `Status:` + strings.Replace(strings.Replace(this.Status.String(), "Status", "rpc.Status", 1), `&`, ``, 1) + `,`,
+ `ValidDuration:` + strings.Replace(strings.Replace(this.ValidDuration.String(), "Duration", "types.Duration", 1), `&`, ``, 1) + `,`,
`ValidUseCount:` + fmt.Sprintf("%v", this.ValidUseCount) + `,`,
- `ReferencedAttributes:` + strings.Replace(this.ReferencedAttributes.String(), "ReferencedAttributes", "ReferencedAttributes", 1) + `,`,
- `RouteDirective:` + strings.Replace(this.RouteDirective.String(), "RouteDirective", "RouteDirective", 1) + `,`,
+ `ReferencedAttributes:` + strings.Replace(fmt.Sprintf("%v", this.ReferencedAttributes), "ReferencedAttributes", "ReferencedAttributes", 1) + `,`,
+ `RouteDirective:` + strings.Replace(fmt.Sprintf("%v", this.RouteDirective), "RouteDirective", "RouteDirective", 1) + `,`,
`}`,
}, "")
return s
@@ -1690,10 +1690,10 @@ func (this *CheckResponse_QuotaResult) String() string {
return "nil"
}
s := strings.Join([]string{`&CheckResponse_QuotaResult{`,
- `ValidDuration:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ValidDuration), "Duration", "types.Duration", 1), `&`, ``, 1) + `,`,
+ `ValidDuration:` + strings.Replace(strings.Replace(this.ValidDuration.String(), "Duration", "types.Duration", 1), `&`, ``, 1) + `,`,
`GrantedAmount:` + fmt.Sprintf("%v", this.GrantedAmount) + `,`,
`ReferencedAttributes:` + strings.Replace(strings.Replace(this.ReferencedAttributes.String(), "ReferencedAttributes", "ReferencedAttributes", 1), `&`, ``, 1) + `,`,
- `Status:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Status), "Status", "rpc.Status", 1), `&`, ``, 1) + `,`,
+ `Status:` + strings.Replace(strings.Replace(this.Status.String(), "Status", "rpc.Status", 1), `&`, ``, 1) + `,`,
`}`,
}, "")
return s
@@ -1702,14 +1702,9 @@ func (this *ReferencedAttributes) String() string {
if this == nil {
return "nil"
}
- repeatedStringForAttributeMatches := "[]ReferencedAttributes_AttributeMatch{"
- for _, f := range this.AttributeMatches {
- repeatedStringForAttributeMatches += fmt.Sprintf("%v", f) + ","
- }
- repeatedStringForAttributeMatches += "}"
s := strings.Join([]string{`&ReferencedAttributes{`,
`Words:` + fmt.Sprintf("%v", this.Words) + `,`,
- `AttributeMatches:` + repeatedStringForAttributeMatches + `,`,
+ `AttributeMatches:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.AttributeMatches), "ReferencedAttributes_AttributeMatch", "ReferencedAttributes_AttributeMatch", 1), `&`, ``, 1) + `,`,
`}`,
}, "")
return s
@@ -1743,19 +1738,9 @@ func (this *RouteDirective) String() string {
if this == nil {
return "nil"
}
- repeatedStringForRequestHeaderOperations := "[]HeaderOperation{"
- for _, f := range this.RequestHeaderOperations {
- repeatedStringForRequestHeaderOperations += strings.Replace(strings.Replace(f.String(), "HeaderOperation", "HeaderOperation", 1), `&`, ``, 1) + ","
- }
- repeatedStringForRequestHeaderOperations += "}"
- repeatedStringForResponseHeaderOperations := "[]HeaderOperation{"
- for _, f := range this.ResponseHeaderOperations {
- repeatedStringForResponseHeaderOperations += strings.Replace(strings.Replace(f.String(), "HeaderOperation", "HeaderOperation", 1), `&`, ``, 1) + ","
- }
- repeatedStringForResponseHeaderOperations += "}"
s := strings.Join([]string{`&RouteDirective{`,
- `RequestHeaderOperations:` + repeatedStringForRequestHeaderOperations + `,`,
- `ResponseHeaderOperations:` + repeatedStringForResponseHeaderOperations + `,`,
+ `RequestHeaderOperations:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.RequestHeaderOperations), "HeaderOperation", "HeaderOperation", 1), `&`, ``, 1) + `,`,
+ `ResponseHeaderOperations:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ResponseHeaderOperations), "HeaderOperation", "HeaderOperation", 1), `&`, ``, 1) + `,`,
`DirectResponseCode:` + fmt.Sprintf("%v", this.DirectResponseCode) + `,`,
`DirectResponseBody:` + fmt.Sprintf("%v", this.DirectResponseBody) + `,`,
`}`,
@@ -1766,13 +1751,8 @@ func (this *ReportRequest) String() string {
if this == nil {
return "nil"
}
- repeatedStringForAttributes := "[]CompressedAttributes{"
- for _, f := range this.Attributes {
- repeatedStringForAttributes += fmt.Sprintf("%v", f) + ","
- }
- repeatedStringForAttributes += "}"
s := strings.Join([]string{`&ReportRequest{`,
- `Attributes:` + repeatedStringForAttributes + `,`,
+ `Attributes:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Attributes), "CompressedAttributes", "CompressedAttributes", 1), `&`, ``, 1) + `,`,
`DefaultWords:` + fmt.Sprintf("%v", this.DefaultWords) + `,`,
`GlobalWordCount:` + fmt.Sprintf("%v", this.GlobalWordCount) + `,`,
`RepeatedAttributesSemantics:` + fmt.Sprintf("%v", this.RepeatedAttributesSemantics) + `,`,
diff --git a/vendor/istio.io/api/networking/v1alpha3/destination_rule.json b/vendor/istio.io/api/networking/v1alpha3/destination_rule.json
new file mode 100644
index 000000000000..56118ba18aa9
--- /dev/null
+++ b/vendor/istio.io/api/networking/v1alpha3/destination_rule.json
@@ -0,0 +1,401 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Configuration affecting load balancing, outlier detection, etc.",
+ "version": "v1alpha3"
+ },
+ "components": {
+ "schemas": {
+ "istio.networking.v1alpha3.DestinationRule": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "description": "REQUIRED. The name of a service from the service registry. Service names are looked up from the platform's service registry (e.g., Kubernetes services, Consul services, etc.) and from the hosts declared by [ServiceEntries](https://istio.io/docs/reference/config/networking/v1alpha3/service-entry/#ServiceEntry). Rules defined for services that do not exist in the service registry will be ignored.",
+ "type": "string",
+ "format": "string"
+ },
+ "trafficPolicy": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.TrafficPolicy"
+ },
+ "subsets": {
+ "description": "One or more named sets that represent individual versions of a service. Traffic policies can be overridden at subset level.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Subset"
+ }
+ },
+ "exportTo": {
+ "description": "A list of namespaces to which this destination rule is exported. The resolution of a destination rule to apply to a service occurs in the context of a hierarchy of namespaces. Exporting a destination rule allows it to be included in the resolution hierarchy for services in other namespaces. This feature provides a mechanism for service owners and mesh administrators to control the visibility of destination rules across namespace boundaries.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.networking.v1alpha3.TrafficPolicy": {
+ "description": "Traffic policies to apply for a specific destination, across all destination ports. See DestinationRule for examples.",
+ "type": "object",
+ "properties": {
+ "loadBalancer": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.LoadBalancerSettings"
+ },
+ "connectionPool": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.ConnectionPoolSettings"
+ },
+ "outlierDetection": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.OutlierDetection"
+ },
+ "tls": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.TLSSettings"
+ },
+ "portLevelSettings": {
+ "description": "Traffic policies specific to individual ports. Note that port level settings will override the destination-level settings. Traffic settings specified at the destination-level will not be inherited when overridden by port-level settings, i.e. default values will be applied to fields omitted in port-level traffic policies.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy"
+ }
+ }
+ }
+ },
+ "istio.networking.v1alpha3.Subset": {
+ "description": "A subset of endpoints of a service. Subsets can be used for scenarios like A/B testing, or routing to a specific version of a service. Refer to [VirtualService](https://istio.io/docs/reference/config/networking/v1alpha3/virtual-service/#VirtualService) documentation for examples of using subsets in these scenarios. In addition, traffic policies defined at the service-level can be overridden at a subset-level. The following rule uses a round robin load balancing policy for all traffic going to a subset named testversion that is composed of endpoints (e.g., pods) with labels (version:v3).",
+ "type": "object",
+ "required": [
+ "labels"
+ ],
+ "properties": {
+ "name": {
+ "description": "REQUIRED. Name of the subset. The service name and the subset name can be used for traffic splitting in a route rule.",
+ "type": "string",
+ "format": "string"
+ },
+ "trafficPolicy": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.TrafficPolicy"
+ },
+ "labels": {
+ "description": "Labels apply a filter over the endpoints of a service in the service registry. See route rules for examples of usage.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.networking.v1alpha3.LoadBalancerSettings": {
+ "description": "Load balancing policies to apply for a specific destination. See Envoy's load balancing [documentation](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/load_balancing) for more details.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "simple": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.LoadBalancerSettings.SimpleLB"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "consistentHash": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB"
+ }
+ }
+ }
+ ]
+ },
+ "istio.networking.v1alpha3.ConnectionPoolSettings": {
+ "description": "Connection pool settings for an upstream host. The settings apply to each individual host in the upstream service. See Envoy's [circuit breaker](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/circuit_breaking) for more details. Connection pool settings can be applied at the TCP level as well as at HTTP level.",
+ "type": "object",
+ "properties": {
+ "tcp": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings"
+ },
+ "http": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.OutlierDetection": {
+ "description": "A Circuit breaker implementation that tracks the status of each individual host in the upstream service. Applicable to both HTTP and TCP services. For HTTP services, hosts that continually return 5xx errors for API calls are ejected from the pool for a pre-defined period of time. For TCP services, connection timeouts or connection failures to a given host counts as an error when measuring the consecutive errors metric. See Envoy's [outlier detection](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/outlier) for more details.",
+ "type": "object",
+ "properties": {
+ "interval": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "consecutiveErrors": {
+ "description": "Number of errors before a host is ejected from the connection pool. Defaults to 5. When the upstream host is accessed over HTTP, a 502, 503 or 504 return code qualifies as an error. When the upstream host is accessed over an opaque TCP connection, connect timeouts and connection error/failure events qualify as an error.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "baseEjectionTime": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "maxEjectionPercent": {
+ "description": "Maximum % of hosts in the load balancing pool for the upstream service that can be ejected. Defaults to 10%.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "minHealthPercent": {
+ "description": "Outlier detection will be enabled as long as the associated load balancing pool has at least min_health_percent hosts in healthy mode. When the percentage of healthy hosts in the load balancing pool drops below this threshold, outlier detection will be disabled and the proxy will load balance across all hosts in the pool (healthy and unhealthy). The threshold can be disabled by setting it to 0%. The default is 0% as it's not typically applicable in k8s environments with few pods per service.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.TLSSettings": {
+ "description": "SSL/TLS related settings for upstream connections. See Envoy's [TLS context](https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/auth/cert.proto.html) for more details. These settings are common to both HTTP and TCP upstreams.",
+ "type": "object",
+ "properties": {
+ "mode": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.TLSSettings.TLSmode"
+ },
+ "clientCertificate": {
+ "description": "REQUIRED if mode is `MUTUAL`. The path to the file holding the client-side TLS certificate to use. Should be empty if mode is `ISTIO_MUTUAL`.",
+ "type": "string",
+ "format": "string"
+ },
+ "privateKey": {
+ "description": "REQUIRED if mode is `MUTUAL`. The path to the file holding the client's private key. Should be empty if mode is `ISTIO_MUTUAL`.",
+ "type": "string",
+ "format": "string"
+ },
+ "caCertificates": {
+ "description": "OPTIONAL: The path to the file containing certificate authority certificates to use in verifying a presented server certificate. If omitted, the proxy will not verify the server's certificate. Should be empty if mode is `ISTIO_MUTUAL`.",
+ "type": "string",
+ "format": "string"
+ },
+ "subjectAltNames": {
+ "description": "A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of subject_alt_names from the ServiceEntry.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "sni": {
+ "description": "SNI string to present to the server during TLS handshake.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy": {
+ "description": "Traffic policies that apply to specific ports of the service",
+ "type": "object",
+ "properties": {
+ "loadBalancer": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.LoadBalancerSettings"
+ },
+ "connectionPool": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.ConnectionPoolSettings"
+ },
+ "outlierDetection": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.OutlierDetection"
+ },
+ "tls": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.TLSSettings"
+ },
+ "port": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.PortSelector"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.PortSelector": {
+ "description": "PortSelector specifies the number of a port to be used for matching or selection for final routing.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "number": {
+ "description": "Valid port number",
+ "type": "integer"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "$hide_from_docs",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ ]
+ },
+ "istio.networking.v1alpha3.LoadBalancerSettings.SimpleLB": {
+ "description": "Standard load balancing algorithms that require no tuning.",
+ "enum": [
+ "ROUND_ROBIN",
+ "LEAST_CONN",
+ "RANDOM",
+ "PASSTHROUGH"
+ ],
+ "default": "ROUND_ROBIN"
+ },
+ "istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB": {
+ "description": "Consistent Hash-based load balancing can be used to provide soft session affinity based on HTTP headers, cookies or other properties. This load balancing policy is applicable only for HTTP connections. The affinity to a particular destination host will be lost when one or more hosts are added/removed from the destination service.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "minimumRingSize": {
+ "description": "The minimum number of virtual nodes to use for the hash ring. Defaults to 1024. Larger ring sizes result in more granular load distributions. If the number of hosts in the load balancing pool is larger than the ring size, each host will be assigned a single virtual node.",
+ "type": "integer"
+ },
+ "httpHeaderName": {
+ "description": "Hash based on a specific HTTP header.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "minimumRingSize": {
+ "description": "The minimum number of virtual nodes to use for the hash ring. Defaults to 1024. Larger ring sizes result in more granular load distributions. If the number of hosts in the load balancing pool is larger than the ring size, each host will be assigned a single virtual node.",
+ "type": "integer"
+ },
+ "httpCookie": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "minimumRingSize": {
+ "description": "The minimum number of virtual nodes to use for the hash ring. Defaults to 1024. Larger ring sizes result in more granular load distributions. If the number of hosts in the load balancing pool is larger than the ring size, each host will be assigned a single virtual node.",
+ "type": "integer"
+ },
+ "useSourceIp": {
+ "description": "Hash based on the source IP address.",
+ "type": "boolean"
+ }
+ }
+ }
+ ]
+ },
+ "istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie": {
+ "description": "Describes a HTTP cookie that will be used as the hash key for the Consistent Hash load balancer. If the cookie is not present, it will be generated.",
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "Path to set for the cookie.",
+ "type": "string",
+ "format": "string"
+ },
+ "name": {
+ "description": "REQUIRED. Name of the cookie.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings": {
+ "description": "Settings common to both HTTP and TCP upstream connections.",
+ "type": "object",
+ "properties": {
+ "maxConnections": {
+ "description": "Maximum number of HTTP1 /TCP connections to a destination host. Default 1024.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "connectTimeout": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "tcpKeepalive": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings": {
+ "description": "Settings applicable to HTTP1.1/HTTP2/GRPC connections.",
+ "type": "object",
+ "properties": {
+ "http1MaxPendingRequests": {
+ "description": "Maximum number of pending HTTP requests to a destination. Default 1024.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "http2MaxRequests": {
+ "description": "Maximum number of requests to a backend. Default 1024.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "maxRequestsPerConnection": {
+ "description": "Maximum number of requests per connection to a backend. Setting this parameter to 1 disables keep alive. Default 0, meaning \"unlimited\", up to 2^29.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "maxRetries": {
+ "description": "Maximum number of retries that can be outstanding to all hosts in a cluster at a given time. Defaults to 1024.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "idleTimeout": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "h2UpgradePolicy": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.H2UpgradePolicy"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive": {
+ "description": "TCP keepalive.",
+ "type": "object",
+ "properties": {
+ "time": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "probes": {
+ "description": "Maximum number of keepalive probes to send without response before deciding the connection is dead. Default is to use the OS level configuration (unless overridden, Linux defaults to 9.)",
+ "type": "integer"
+ },
+ "interval": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.H2UpgradePolicy": {
+ "description": "Policy for upgrading http1.1 connections to http2.",
+ "enum": [
+ "DEFAULT",
+ "DO_NOT_UPGRADE",
+ "UPGRADE"
+ ],
+ "default": "DEFAULT"
+ },
+ "istio.networking.v1alpha3.TLSSettings.TLSmode": {
+ "description": "TLS connection mode",
+ "enum": [
+ "DISABLE",
+ "SIMPLE",
+ "MUTUAL",
+ "ISTIO_MUTUAL"
+ ],
+ "default": "DISABLE"
+ },
+ "google.protobuf.Duration": {
+ "description": "$hide_from_docs",
+ "type": "object",
+ "properties": {
+ "seconds": {
+ "description": "Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years",
+ "type": "integer",
+ "format": "int64"
+ },
+ "nanos": {
+ "description": "Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/vendor/istio.io/api/networking/v1alpha3/destination_rule.pb.go b/vendor/istio.io/api/networking/v1alpha3/destination_rule.pb.go
index 9cabe6ff8b36..0286bffdaf87 100644
--- a/vendor/istio.io/api/networking/v1alpha3/destination_rule.pb.go
+++ b/vendor/istio.io/api/networking/v1alpha3/destination_rule.pb.go
@@ -1458,7 +1458,9 @@ type OutlierDetection struct {
// pool has at least min_health_percent hosts in healthy mode. When the
// percentage of healthy hosts in the load balancing pool drops below this
// threshold, outlier detection will be disabled and the proxy will load balance
- // across all hosts in the pool (healthy and unhealthy). The default is 50%.
+ // across all hosts in the pool (healthy and unhealthy). The threshold can be
+ // disabled by setting it to 0%. The default is 0% as it's not typically
+ // applicable in k8s environments with few pods per service.
MinHealthPercent int32 `protobuf:"varint,5,opt,name=min_health_percent,json=minHealthPercent,proto3" json:"min_health_percent,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@@ -1835,9 +1837,9 @@ func (m *DestinationRule) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.TrafficPolicy.Size()))
- n1, err1 := m.TrafficPolicy.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := m.TrafficPolicy.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
}
@@ -1893,9 +1895,9 @@ func (m *TrafficPolicy) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.LoadBalancer.Size()))
- n2, err2 := m.LoadBalancer.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := m.LoadBalancer.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
}
@@ -1903,9 +1905,9 @@ func (m *TrafficPolicy) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.ConnectionPool.Size()))
- n3, err3 := m.ConnectionPool.MarshalTo(dAtA[i:])
- if err3 != nil {
- return 0, err3
+ n3, err := m.ConnectionPool.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n3
}
@@ -1913,9 +1915,9 @@ func (m *TrafficPolicy) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.OutlierDetection.Size()))
- n4, err4 := m.OutlierDetection.MarshalTo(dAtA[i:])
- if err4 != nil {
- return 0, err4
+ n4, err := m.OutlierDetection.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n4
}
@@ -1923,9 +1925,9 @@ func (m *TrafficPolicy) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x22
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.Tls.Size()))
- n5, err5 := m.Tls.MarshalTo(dAtA[i:])
- if err5 != nil {
- return 0, err5
+ n5, err := m.Tls.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n5
}
@@ -1966,9 +1968,9 @@ func (m *TrafficPolicy_PortTrafficPolicy) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.Port.Size()))
- n6, err6 := m.Port.MarshalTo(dAtA[i:])
- if err6 != nil {
- return 0, err6
+ n6, err := m.Port.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n6
}
@@ -1976,9 +1978,9 @@ func (m *TrafficPolicy_PortTrafficPolicy) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.LoadBalancer.Size()))
- n7, err7 := m.LoadBalancer.MarshalTo(dAtA[i:])
- if err7 != nil {
- return 0, err7
+ n7, err := m.LoadBalancer.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n7
}
@@ -1986,9 +1988,9 @@ func (m *TrafficPolicy_PortTrafficPolicy) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.ConnectionPool.Size()))
- n8, err8 := m.ConnectionPool.MarshalTo(dAtA[i:])
- if err8 != nil {
- return 0, err8
+ n8, err := m.ConnectionPool.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n8
}
@@ -1996,9 +1998,9 @@ func (m *TrafficPolicy_PortTrafficPolicy) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x22
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.OutlierDetection.Size()))
- n9, err9 := m.OutlierDetection.MarshalTo(dAtA[i:])
- if err9 != nil {
- return 0, err9
+ n9, err := m.OutlierDetection.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n9
}
@@ -2006,9 +2008,9 @@ func (m *TrafficPolicy_PortTrafficPolicy) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.Tls.Size()))
- n10, err10 := m.Tls.MarshalTo(dAtA[i:])
- if err10 != nil {
- return 0, err10
+ n10, err := m.Tls.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n10
}
@@ -2060,9 +2062,9 @@ func (m *Subset) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.TrafficPolicy.Size()))
- n11, err11 := m.TrafficPolicy.MarshalTo(dAtA[i:])
- if err11 != nil {
- return 0, err11
+ n11, err := m.TrafficPolicy.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n11
}
@@ -2088,9 +2090,9 @@ func (m *LoadBalancerSettings) MarshalTo(dAtA []byte) (int, error) {
var l int
_ = l
if m.LbPolicy != nil {
- nn12, err12 := m.LbPolicy.MarshalTo(dAtA[i:])
- if err12 != nil {
- return 0, err12
+ nn12, err := m.LbPolicy.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn12
}
@@ -2113,9 +2115,9 @@ func (m *LoadBalancerSettings_ConsistentHash) MarshalTo(dAtA []byte) (int, error
dAtA[i] = 0x12
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.ConsistentHash.Size()))
- n13, err13 := m.ConsistentHash.MarshalTo(dAtA[i:])
- if err13 != nil {
- return 0, err13
+ n13, err := m.ConsistentHash.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n13
}
@@ -2137,9 +2139,9 @@ func (m *LoadBalancerSettings_ConsistentHashLB) MarshalTo(dAtA []byte) (int, err
var l int
_ = l
if m.HashKey != nil {
- nn14, err14 := m.HashKey.MarshalTo(dAtA[i:])
- if err14 != nil {
- return 0, err14
+ nn14, err := m.HashKey.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn14
}
@@ -2168,9 +2170,9 @@ func (m *LoadBalancerSettings_ConsistentHashLB_HttpCookie) MarshalTo(dAtA []byte
dAtA[i] = 0x12
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.HttpCookie.Size()))
- n15, err15 := m.HttpCookie.MarshalTo(dAtA[i:])
- if err15 != nil {
- return 0, err15
+ n15, err := m.HttpCookie.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n15
}
@@ -2219,9 +2221,9 @@ func (m *LoadBalancerSettings_ConsistentHashLB_HTTPCookie) MarshalTo(dAtA []byte
dAtA[i] = 0x1a
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Ttl)))
- n16, err16 := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.Ttl, dAtA[i:])
- if err16 != nil {
- return 0, err16
+ n16, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.Ttl, dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n16
}
@@ -2250,9 +2252,9 @@ func (m *ConnectionPoolSettings) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.Tcp.Size()))
- n17, err17 := m.Tcp.MarshalTo(dAtA[i:])
- if err17 != nil {
- return 0, err17
+ n17, err := m.Tcp.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n17
}
@@ -2260,9 +2262,9 @@ func (m *ConnectionPoolSettings) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.Http.Size()))
- n18, err18 := m.Http.MarshalTo(dAtA[i:])
- if err18 != nil {
- return 0, err18
+ n18, err := m.Http.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n18
}
@@ -2296,9 +2298,9 @@ func (m *ConnectionPoolSettings_TCPSettings) MarshalTo(dAtA []byte) (int, error)
dAtA[i] = 0x12
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.ConnectTimeout.Size()))
- n19, err19 := m.ConnectTimeout.MarshalTo(dAtA[i:])
- if err19 != nil {
- return 0, err19
+ n19, err := m.ConnectTimeout.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n19
}
@@ -2306,9 +2308,9 @@ func (m *ConnectionPoolSettings_TCPSettings) MarshalTo(dAtA []byte) (int, error)
dAtA[i] = 0x1a
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.TcpKeepalive.Size()))
- n20, err20 := m.TcpKeepalive.MarshalTo(dAtA[i:])
- if err20 != nil {
- return 0, err20
+ n20, err := m.TcpKeepalive.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n20
}
@@ -2342,9 +2344,9 @@ func (m *ConnectionPoolSettings_TCPSettings_TcpKeepalive) MarshalTo(dAtA []byte)
dAtA[i] = 0x12
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.Time.Size()))
- n21, err21 := m.Time.MarshalTo(dAtA[i:])
- if err21 != nil {
- return 0, err21
+ n21, err := m.Time.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n21
}
@@ -2352,9 +2354,9 @@ func (m *ConnectionPoolSettings_TCPSettings_TcpKeepalive) MarshalTo(dAtA []byte)
dAtA[i] = 0x1a
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.Interval.Size()))
- n22, err22 := m.Interval.MarshalTo(dAtA[i:])
- if err22 != nil {
- return 0, err22
+ n22, err := m.Interval.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n22
}
@@ -2403,9 +2405,9 @@ func (m *ConnectionPoolSettings_HTTPSettings) MarshalTo(dAtA []byte) (int, error
dAtA[i] = 0x2a
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.IdleTimeout.Size()))
- n23, err23 := m.IdleTimeout.MarshalTo(dAtA[i:])
- if err23 != nil {
- return 0, err23
+ n23, err := m.IdleTimeout.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n23
}
@@ -2444,9 +2446,9 @@ func (m *OutlierDetection) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.Interval.Size()))
- n24, err24 := m.Interval.MarshalTo(dAtA[i:])
- if err24 != nil {
- return 0, err24
+ n24, err := m.Interval.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n24
}
@@ -2454,9 +2456,9 @@ func (m *OutlierDetection) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintDestinationRule(dAtA, i, uint64(m.BaseEjectionTime.Size()))
- n25, err25 := m.BaseEjectionTime.MarshalTo(dAtA[i:])
- if err25 != nil {
- return 0, err25
+ n25, err := m.BaseEjectionTime.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n25
}
diff --git a/vendor/istio.io/api/networking/v1alpha3/destination_rule.pb.html b/vendor/istio.io/api/networking/v1alpha3/destination_rule.pb.html
index e696674a1200..8621a89e50ec 100644
--- a/vendor/istio.io/api/networking/v1alpha3/destination_rule.pb.html
+++ b/vendor/istio.io/api/networking/v1alpha3/destination_rule.pb.html
@@ -710,7 +710,9 @@ OutlierDetection
pool has at least minhealthpercent hosts in healthy mode. When the
percentage of healthy hosts in the load balancing pool drops below this
threshold, outlier detection will be disabled and the proxy will load balance
-across all hosts in the pool (healthy and unhealthy). The default is 50%.
+across all hosts in the pool (healthy and unhealthy). The threshold can be
+disabled by setting it to 0%. The default is 0% as it’s not typically
+applicable in k8s environments with few pods per service.
diff --git a/vendor/istio.io/api/networking/v1alpha3/destination_rule.proto b/vendor/istio.io/api/networking/v1alpha3/destination_rule.proto
index 9523da3d5b6c..1733985f91a6 100644
--- a/vendor/istio.io/api/networking/v1alpha3/destination_rule.proto
+++ b/vendor/istio.io/api/networking/v1alpha3/destination_rule.proto
@@ -511,7 +511,9 @@ message OutlierDetection {
// pool has at least min_health_percent hosts in healthy mode. When the
// percentage of healthy hosts in the load balancing pool drops below this
// threshold, outlier detection will be disabled and the proxy will load balance
- // across all hosts in the pool (healthy and unhealthy). The default is 50%.
+ // across all hosts in the pool (healthy and unhealthy). The threshold can be
+ // disabled by setting it to 0%. The default is 0% as it's not typically
+ // applicable in k8s environments with few pods per service.
int32 min_health_percent = 5;
}
diff --git a/vendor/istio.io/api/networking/v1alpha3/envoy_filter.json b/vendor/istio.io/api/networking/v1alpha3/envoy_filter.json
new file mode 100644
index 000000000000..747bd3cab343
--- /dev/null
+++ b/vendor/istio.io/api/networking/v1alpha3/envoy_filter.json
@@ -0,0 +1,543 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Customizing Envoy configuration generated by Istio.",
+ "version": "v1alpha3"
+ },
+ "components": {
+ "schemas": {
+ "istio.networking.v1alpha3.EnvoyFilter": {
+ "type": "object",
+ "required": [
+ "workloadLabels"
+ ],
+ "properties": {
+ "workloadLabels": {
+ "description": "Deprecated. Use workload_selector instead. $hide_from_docs",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "filters": {
+ "description": "$hide_from_docs",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.Filter"
+ }
+ },
+ "workloadSelector": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.WorkloadSelector"
+ },
+ "configPatches": {
+ "description": "REQUIRED. One or more patches with match conditions.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.EnvoyConfigObjectPatch"
+ }
+ }
+ }
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.Filter": {
+ "description": "Deprecated. Envoy filters to be added to a network or http filter chain. $hide_from_docs",
+ "type": "object",
+ "properties": {
+ "listenerMatch": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.DeprecatedListenerMatch"
+ },
+ "insertPosition": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.InsertPosition"
+ },
+ "filterType": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.Filter.FilterType"
+ },
+ "filterName": {
+ "description": "REQUIRED: The name of the filter to instantiate. The name must match a supported filter _compiled into_ Envoy.",
+ "type": "string",
+ "format": "string"
+ },
+ "filterConfig": {
+ "$ref": "#/components/schemas/google.protobuf.Struct"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.WorkloadSelector": {
+ "description": "WorkloadSelector specifies the criteria used to determine if the Gateway, Sidecar, or EnvoyFilter resource can be applied to a proxy. The matching criteria includes the metadata associated with a proxy, workload instance info such as labels attached to the pod/VM, or any other info that the proxy provides to Istio during the initial handshake. If multiple conditions are specified, all conditions need to match in order for the workload instance to be selected. Currently, only label based selection mechanism is supported.",
+ "type": "object",
+ "required": [
+ "labels"
+ ],
+ "properties": {
+ "labels": {
+ "description": "REQUIRED: One or more labels that indicate a specific set of pods/VMs on which this sidecar configuration should be applied. The scope of label search is restricted to the configuration namespace in which the the resource is present.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.EnvoyConfigObjectPatch": {
+ "description": "Changes to be made to various envoy config objects.",
+ "type": "object",
+ "properties": {
+ "applyTo": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.ApplyTo"
+ },
+ "match": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.EnvoyConfigObjectMatch"
+ },
+ "patch": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.Patch"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.DeprecatedListenerMatch": {
+ "description": "Deprecated. Select a listener to add the filter to based on the match conditions. All conditions specified in the ListenerMatch must be met for the filter to be applied to a listener. $hide_from_docs",
+ "type": "object",
+ "properties": {
+ "portNumber": {
+ "description": "The service port/gateway port to which traffic is being sent/received. If not specified, matches all listeners. Even though inbound listeners are generated for the instance/pod ports, only service ports should be used to match listeners.",
+ "type": "integer"
+ },
+ "portNamePrefix": {
+ "description": "Instead of using specific port numbers, a set of ports matching a given port name prefix can be selected. E.g., \"mongo\" selects ports named mongo-port, mongo, mongoDB, MONGO, etc. Matching is case insensitive.",
+ "type": "string",
+ "format": "string"
+ },
+ "listenerType": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.DeprecatedListenerMatch.ListenerType"
+ },
+ "listenerProtocol": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.DeprecatedListenerMatch.ListenerProtocol"
+ },
+ "address": {
+ "description": "One or more IP addresses to which the listener is bound. If specified, should match at least one address in the list.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.DeprecatedListenerMatch.ListenerType": {
+ "enum": [
+ "ANY",
+ "SIDECAR_INBOUND",
+ "SIDECAR_OUTBOUND",
+ "GATEWAY"
+ ],
+ "default": "ANY"
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.DeprecatedListenerMatch.ListenerProtocol": {
+ "enum": [
+ "ALL",
+ "HTTP",
+ "TCP"
+ ],
+ "default": "ALL"
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.InsertPosition": {
+ "description": "Deprecated. Indicates the relative index in the filter chain where the filter should be inserted. $hide_from_docs",
+ "type": "object",
+ "properties": {
+ "index": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.InsertPosition.Index"
+ },
+ "relativeTo": {
+ "description": "If BEFORE or AFTER position is specified, specify the name of the filter relative to which this filter should be inserted.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.InsertPosition.Index": {
+ "description": "Index/position in the filter chain.",
+ "enum": [
+ "FIRST",
+ "LAST",
+ "BEFORE",
+ "AFTER"
+ ],
+ "default": "FIRST"
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.Filter.FilterType": {
+ "enum": [
+ "INVALID",
+ "HTTP",
+ "NETWORK"
+ ],
+ "default": "INVALID"
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.ApplyTo": {
+ "description": "ApplyTo specifies where in the Envoy configuration, the given patch should be applied.",
+ "enum": [
+ "INVALID",
+ "LISTENER",
+ "FILTER_CHAIN",
+ "NETWORK_FILTER",
+ "HTTP_FILTER",
+ "ROUTE_CONFIGURATION",
+ "VIRTUAL_HOST",
+ "CLUSTER"
+ ],
+ "default": "INVALID"
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.PatchContext": {
+ "description": "PatchContext selects a class of configurations based on the traffic flow direction and workload type.",
+ "enum": [
+ "ANY",
+ "SIDECAR_INBOUND",
+ "SIDECAR_OUTBOUND",
+ "GATEWAY"
+ ],
+ "default": "ANY"
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.ProxyMatch": {
+ "description": "One or more properties of the proxy to match on.",
+ "oneOf": [
+ {
+ "type": "object",
+ "required": [
+ "metadata"
+ ],
+ "properties": {
+ "metadata": {
+ "description": "Match on the node metadata supplied by a proxy when connecting to Istio Pilot. Note that while Envoy's node metadata is of type Struct, only string key-value pairs are processed by Pilot. All keys specified in the metadata must match with exact values. The match will fail if any of the specified keys are absent or the values fail to match.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "versionGe": {
+ "description": "Version restricts the patches to sidecars or gateways with from a specific version of Istio. The Istio version for a given proxy is obtained from the node metadata field ISTIO_VERSION supplied by the proxy when connecting to Pilot. This value is embedded as an environment variable (ISTIO_META_ISTIO_VERSION) in the Istio proxy docker image. Custom proxy implementations should provide this metadata variable to take advantage of the Istio version check option.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": [
+ "metadata"
+ ],
+ "properties": {
+ "metadata": {
+ "description": "Match on the node metadata supplied by a proxy when connecting to Istio Pilot. Note that while Envoy's node metadata is of type Struct, only string key-value pairs are processed by Pilot. All keys specified in the metadata must match with exact values. The match will fail if any of the specified keys are absent or the values fail to match.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "versionEq": {
+ "description": "Checks if the Istio version in the proxy is equal to the exact version specified.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ ]
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.ClusterMatch": {
+ "description": "Conditions specified in ClusterMatch must be met for the patch to be applied to a cluster.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The exact name of the cluster to match. To match a specific cluster by name, such as the internally generated \"Passthrough\" cluster, leave all fields in clusterMatch empty, except the name.",
+ "type": "string",
+ "format": "string"
+ },
+ "portNumber": {
+ "description": "The service port for which this cluster was generated. If omitted, applies to clusters for any port.",
+ "type": "integer"
+ },
+ "service": {
+ "description": "The fully qualified service name for this cluster. If omitted, applies to clusters for any service. For services defined through service entries, the service name is same as the hosts defined in the service entry.",
+ "type": "string",
+ "format": "string"
+ },
+ "subset": {
+ "description": "The subset associated with the service. If omitted, applies to clusters for any subset of a service.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.RouteConfigurationMatch": {
+ "description": "Conditions specified in RouteConfigurationMatch must be met for the patch to be applied to a route configuration object or a specific virtual host within the route configuration.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Route configuration name to match on. Can be used to match a specific route configuration by name, such as the internally generated \"http_proxy\" route configuration for all sidecars.",
+ "type": "string",
+ "format": "string"
+ },
+ "portNumber": {
+ "description": "The service port number or gateway server port number for which this route configuration was generated. If omitted, applies to route configurations for all ports.",
+ "type": "integer"
+ },
+ "portName": {
+ "description": "Applicable only for GATEWAY context. The gateway server port name for which this route configuration was generated.",
+ "type": "string",
+ "format": "string"
+ },
+ "gateway": {
+ "description": "The Istio gateway config's namespace/name for which this route configuration was generated. Applies only if the context is GATEWAY. Should be in the namespace/name format. Use this field in conjunction with the portNumber and portName to accurately select the Envoy route configuration for a specific HTTPS server within a gateway config object.",
+ "type": "string",
+ "format": "string"
+ },
+ "vhost": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.RouteConfigurationMatch.VirtualHostMatch"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.RouteConfigurationMatch.VirtualHostMatch": {
+ "description": "Match a specific virtual host inside a route configuration.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The VirtualHosts objects generated by Istio are named as host:port, where the host typically corresponds to the VirtualService's host field or the hostname of a service in the registry.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.ListenerMatch": {
+ "description": "Conditions specified in a listener match must be met for the patch to be applied to a specific listener across all filter chains, or a specific filter chain inside the listener.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Match a specific listener by its name. The listeners generated by Pilot are typically named as IP:Port.",
+ "type": "string",
+ "format": "string"
+ },
+ "portNumber": {
+ "description": "The service port/gateway port to which traffic is being sent/received. If not specified, matches all listeners. Even though inbound listeners are generated for the instance/pod ports, only service ports should be used to match listeners.",
+ "type": "integer"
+ },
+ "portName": {
+ "description": "Instead of using specific port numbers, a set of ports matching a given service's port name can be selected. Matching is case insensitive. Not implemented. $hide_from_docs",
+ "type": "string",
+ "format": "string"
+ },
+ "filterChain": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.ListenerMatch.FilterChainMatch"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.ListenerMatch.FilterChainMatch": {
+ "description": "For listeners with multiple filter chains (e.g., inbound listeners on sidecars with permissive mTLS, gateway listeners with multiple SNI matches), the filter chain match can be used to select a specific filter chain to patch.",
+ "type": "object",
+ "properties": {
+ "sni": {
+ "description": "The SNI value used by a filter chain's match condition. This condition will evaluate to false if the filter chain has no sni match.",
+ "type": "string",
+ "format": "string"
+ },
+ "transportProtocol": {
+ "description": "Applies only to SIDECAR_INBOUND context. If non-empty, a transport protocol to consider when determining a filter chain match. This value will be compared against the transport protocol of a new connection, when it's detected by one of the listener filters.",
+ "type": "string",
+ "format": "string"
+ },
+ "filter": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.ListenerMatch.FilterMatch"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.ListenerMatch.FilterMatch": {
+ "description": "Conditions to match a specific filter within a filter chain.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The filter name to match on.",
+ "type": "string",
+ "format": "string"
+ },
+ "subFilter": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.ListenerMatch.SubFilterMatch"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.ListenerMatch.SubFilterMatch": {
+ "description": "Conditions to match a specific filter within another filter. This field is typically useful to match a HTTP filter inside the envoy.http_connection_manager network filter. This could also be applicable for thrift filters.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The filter name to match on.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.Patch": {
+ "description": "Patch specifies how the selected object should be modified.",
+ "type": "object",
+ "properties": {
+ "operation": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.Patch.Operation"
+ },
+ "value": {
+ "$ref": "#/components/schemas/google.protobuf.Struct"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.Patch.Operation": {
+ "description": "Operation denotes how the patch should be applied to the selected configuration.",
+ "enum": [
+ "INVALID",
+ "MERGE",
+ "ADD",
+ "REMOVE",
+ "INSERT_BEFORE",
+ "INSERT_AFTER"
+ ],
+ "default": "INVALID"
+ },
+ "istio.networking.v1alpha3.EnvoyFilter.EnvoyConfigObjectMatch": {
+ "description": "One or more match conditions to be met before a patch is applied to the generated configuration for a given proxy.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "context": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.PatchContext"
+ },
+ "proxy": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.ProxyMatch"
+ },
+ "listener": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.ListenerMatch"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "context": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.PatchContext"
+ },
+ "proxy": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.ProxyMatch"
+ },
+ "routeConfiguration": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.RouteConfigurationMatch"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "context": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.PatchContext"
+ },
+ "proxy": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.ProxyMatch"
+ },
+ "cluster": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.EnvoyFilter.ClusterMatch"
+ }
+ }
+ }
+ ]
+ },
+ "google.protobuf.Struct": {
+ "description": "Represents a structured value.",
+ "type": "object",
+ "required": [
+ "fields"
+ ],
+ "properties": {
+ "fields": {
+ "description": "Unordered map of dynamically typed values.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/google.protobuf.Value"
+ }
+ }
+ }
+ },
+ "google.protobuf.Value": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "nullValue": {
+ "$ref": "#/components/schemas/google.protobuf.NullValue"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "numberValue": {
+ "description": "Represents a double value.",
+ "type": "number",
+ "format": "double"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "stringValue": {
+ "description": "Represents a string value.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "boolValue": {
+ "description": "Represents a boolean value.",
+ "type": "boolean"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "structValue": {
+ "$ref": "#/components/schemas/google.protobuf.Struct"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "listValue": {
+ "$ref": "#/components/schemas/google.protobuf.ListValue"
+ }
+ }
+ }
+ ]
+ },
+ "google.protobuf.ListValue": {
+ "description": "Represents a repeated `Value`.",
+ "type": "object",
+ "properties": {
+ "values": {
+ "description": "Repeated field of dynamically typed values.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/google.protobuf.Value"
+ }
+ }
+ }
+ },
+ "google.protobuf.NullValue": {
+ "description": "Represents a null value.",
+ "type": "string",
+ "enum": [
+ "NULL_VALUE"
+ ]
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/vendor/istio.io/api/networking/v1alpha3/envoy_filter.pb.go b/vendor/istio.io/api/networking/v1alpha3/envoy_filter.pb.go
index bb6eb7eb5d2e..8c8955a4ac5c 100644
--- a/vendor/istio.io/api/networking/v1alpha3/envoy_filter.pb.go
+++ b/vendor/istio.io/api/networking/v1alpha3/envoy_filter.pb.go
@@ -481,7 +481,7 @@ func (x EnvoyFilter_Patch_Operation) String() string {
}
func (EnvoyFilter_Patch_Operation) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_16d9b2922bd3e4a9, []int{0, 6, 0}
+ return fileDescriptor_16d9b2922bd3e4a9, []int{0, 7, 0}
}
type EnvoyFilter struct {
@@ -824,6 +824,167 @@ func (m *EnvoyFilter_Filter) GetFilterConfig() *types.Struct {
return nil
}
+// One or more properties of the proxy to match on.
+type EnvoyFilter_ProxyMatch struct {
+ // Types that are valid to be assigned to VersionMatch:
+ // *EnvoyFilter_ProxyMatch_VersionGe
+ // *EnvoyFilter_ProxyMatch_VersionEq
+ VersionMatch isEnvoyFilter_ProxyMatch_VersionMatch `protobuf_oneof:"version_match"`
+ // Match on the node metadata supplied by a proxy when connecting
+ // to Istio Pilot. Note that while Envoy's node metadata is of
+ // type Struct, only string key-value pairs are processed by
+ // Pilot. All keys specified in the metadata must match with exact
+ // values. The match will fail if any of the specified keys are
+ // absent or the values fail to match.
+ Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *EnvoyFilter_ProxyMatch) Reset() { *m = EnvoyFilter_ProxyMatch{} }
+func (m *EnvoyFilter_ProxyMatch) String() string { return proto.CompactTextString(m) }
+func (*EnvoyFilter_ProxyMatch) ProtoMessage() {}
+func (*EnvoyFilter_ProxyMatch) Descriptor() ([]byte, []int) {
+ return fileDescriptor_16d9b2922bd3e4a9, []int{0, 3}
+}
+func (m *EnvoyFilter_ProxyMatch) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *EnvoyFilter_ProxyMatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_EnvoyFilter_ProxyMatch.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalTo(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *EnvoyFilter_ProxyMatch) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EnvoyFilter_ProxyMatch.Merge(m, src)
+}
+func (m *EnvoyFilter_ProxyMatch) XXX_Size() int {
+ return m.Size()
+}
+func (m *EnvoyFilter_ProxyMatch) XXX_DiscardUnknown() {
+ xxx_messageInfo_EnvoyFilter_ProxyMatch.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EnvoyFilter_ProxyMatch proto.InternalMessageInfo
+
+type isEnvoyFilter_ProxyMatch_VersionMatch interface {
+ isEnvoyFilter_ProxyMatch_VersionMatch()
+ MarshalTo([]byte) (int, error)
+ Size() int
+}
+
+type EnvoyFilter_ProxyMatch_VersionGe struct {
+ VersionGe string `protobuf:"bytes,1,opt,name=version_ge,json=versionGe,proto3,oneof"`
+}
+type EnvoyFilter_ProxyMatch_VersionEq struct {
+ VersionEq string `protobuf:"bytes,2,opt,name=version_eq,json=versionEq,proto3,oneof"`
+}
+
+func (*EnvoyFilter_ProxyMatch_VersionGe) isEnvoyFilter_ProxyMatch_VersionMatch() {}
+func (*EnvoyFilter_ProxyMatch_VersionEq) isEnvoyFilter_ProxyMatch_VersionMatch() {}
+
+func (m *EnvoyFilter_ProxyMatch) GetVersionMatch() isEnvoyFilter_ProxyMatch_VersionMatch {
+ if m != nil {
+ return m.VersionMatch
+ }
+ return nil
+}
+
+func (m *EnvoyFilter_ProxyMatch) GetVersionGe() string {
+ if x, ok := m.GetVersionMatch().(*EnvoyFilter_ProxyMatch_VersionGe); ok {
+ return x.VersionGe
+ }
+ return ""
+}
+
+func (m *EnvoyFilter_ProxyMatch) GetVersionEq() string {
+ if x, ok := m.GetVersionMatch().(*EnvoyFilter_ProxyMatch_VersionEq); ok {
+ return x.VersionEq
+ }
+ return ""
+}
+
+func (m *EnvoyFilter_ProxyMatch) GetMetadata() map[string]string {
+ if m != nil {
+ return m.Metadata
+ }
+ return nil
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*EnvoyFilter_ProxyMatch) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+ return _EnvoyFilter_ProxyMatch_OneofMarshaler, _EnvoyFilter_ProxyMatch_OneofUnmarshaler, _EnvoyFilter_ProxyMatch_OneofSizer, []interface{}{
+ (*EnvoyFilter_ProxyMatch_VersionGe)(nil),
+ (*EnvoyFilter_ProxyMatch_VersionEq)(nil),
+ }
+}
+
+func _EnvoyFilter_ProxyMatch_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+ m := msg.(*EnvoyFilter_ProxyMatch)
+ // version_match
+ switch x := m.VersionMatch.(type) {
+ case *EnvoyFilter_ProxyMatch_VersionGe:
+ _ = b.EncodeVarint(1<<3 | proto.WireBytes)
+ _ = b.EncodeStringBytes(x.VersionGe)
+ case *EnvoyFilter_ProxyMatch_VersionEq:
+ _ = b.EncodeVarint(2<<3 | proto.WireBytes)
+ _ = b.EncodeStringBytes(x.VersionEq)
+ case nil:
+ default:
+ return fmt.Errorf("EnvoyFilter_ProxyMatch.VersionMatch has unexpected type %T", x)
+ }
+ return nil
+}
+
+func _EnvoyFilter_ProxyMatch_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+ m := msg.(*EnvoyFilter_ProxyMatch)
+ switch tag {
+ case 1: // version_match.version_ge
+ if wire != proto.WireBytes {
+ return true, proto.ErrInternalBadWireType
+ }
+ x, err := b.DecodeStringBytes()
+ m.VersionMatch = &EnvoyFilter_ProxyMatch_VersionGe{x}
+ return true, err
+ case 2: // version_match.version_eq
+ if wire != proto.WireBytes {
+ return true, proto.ErrInternalBadWireType
+ }
+ x, err := b.DecodeStringBytes()
+ m.VersionMatch = &EnvoyFilter_ProxyMatch_VersionEq{x}
+ return true, err
+ default:
+ return false, nil
+ }
+}
+
+func _EnvoyFilter_ProxyMatch_OneofSizer(msg proto.Message) (n int) {
+ m := msg.(*EnvoyFilter_ProxyMatch)
+ // version_match
+ switch x := m.VersionMatch.(type) {
+ case *EnvoyFilter_ProxyMatch_VersionGe:
+ n += 1 // tag and wire
+ n += proto.SizeVarint(uint64(len(x.VersionGe)))
+ n += len(x.VersionGe)
+ case *EnvoyFilter_ProxyMatch_VersionEq:
+ n += 1 // tag and wire
+ n += proto.SizeVarint(uint64(len(x.VersionEq)))
+ n += len(x.VersionEq)
+ case nil:
+ default:
+ panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+ }
+ return n
+}
+
// Conditions specified in ClusterMatch must be met for the patch
// to be applied to a cluster.
type EnvoyFilter_ClusterMatch struct {
@@ -852,7 +1013,7 @@ func (m *EnvoyFilter_ClusterMatch) Reset() { *m = EnvoyFilter_ClusterMat
func (m *EnvoyFilter_ClusterMatch) String() string { return proto.CompactTextString(m) }
func (*EnvoyFilter_ClusterMatch) ProtoMessage() {}
func (*EnvoyFilter_ClusterMatch) Descriptor() ([]byte, []int) {
- return fileDescriptor_16d9b2922bd3e4a9, []int{0, 3}
+ return fileDescriptor_16d9b2922bd3e4a9, []int{0, 4}
}
func (m *EnvoyFilter_ClusterMatch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -943,7 +1104,7 @@ func (m *EnvoyFilter_RouteConfigurationMatch) Reset() { *m = EnvoyFilter
func (m *EnvoyFilter_RouteConfigurationMatch) String() string { return proto.CompactTextString(m) }
func (*EnvoyFilter_RouteConfigurationMatch) ProtoMessage() {}
func (*EnvoyFilter_RouteConfigurationMatch) Descriptor() ([]byte, []int) {
- return fileDescriptor_16d9b2922bd3e4a9, []int{0, 4}
+ return fileDescriptor_16d9b2922bd3e4a9, []int{0, 5}
}
func (m *EnvoyFilter_RouteConfigurationMatch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1027,7 +1188,7 @@ func (m *EnvoyFilter_RouteConfigurationMatch_VirtualHostMatch) String() string {
}
func (*EnvoyFilter_RouteConfigurationMatch_VirtualHostMatch) ProtoMessage() {}
func (*EnvoyFilter_RouteConfigurationMatch_VirtualHostMatch) Descriptor() ([]byte, []int) {
- return fileDescriptor_16d9b2922bd3e4a9, []int{0, 4, 0}
+ return fileDescriptor_16d9b2922bd3e4a9, []int{0, 5, 0}
}
func (m *EnvoyFilter_RouteConfigurationMatch_VirtualHostMatch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1075,6 +1236,8 @@ type EnvoyFilter_ListenerMatch struct {
// Instead of using specific port numbers, a set of ports matching
// a given service's port name can be selected. Matching is case
// insensitive.
+ // Not implemented.
+ // $hide_from_docs
PortName string `protobuf:"bytes,2,opt,name=port_name,json=portName,proto3" json:"port_name,omitempty"`
// Match a specific filter chain in a listener. If specified, the
// patch will be applied to the filter chain (and a specific
@@ -1093,7 +1256,7 @@ func (m *EnvoyFilter_ListenerMatch) Reset() { *m = EnvoyFilter_ListenerM
func (m *EnvoyFilter_ListenerMatch) String() string { return proto.CompactTextString(m) }
func (*EnvoyFilter_ListenerMatch) ProtoMessage() {}
func (*EnvoyFilter_ListenerMatch) Descriptor() ([]byte, []int) {
- return fileDescriptor_16d9b2922bd3e4a9, []int{0, 5}
+ return fileDescriptor_16d9b2922bd3e4a9, []int{0, 6}
}
func (m *EnvoyFilter_ListenerMatch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1187,7 +1350,7 @@ func (m *EnvoyFilter_ListenerMatch_FilterChainMatch) String() string {
}
func (*EnvoyFilter_ListenerMatch_FilterChainMatch) ProtoMessage() {}
func (*EnvoyFilter_ListenerMatch_FilterChainMatch) Descriptor() ([]byte, []int) {
- return fileDescriptor_16d9b2922bd3e4a9, []int{0, 5, 0}
+ return fileDescriptor_16d9b2922bd3e4a9, []int{0, 6, 0}
}
func (m *EnvoyFilter_ListenerMatch_FilterChainMatch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1254,7 +1417,7 @@ func (m *EnvoyFilter_ListenerMatch_FilterMatch) Reset() { *m = EnvoyFilt
func (m *EnvoyFilter_ListenerMatch_FilterMatch) String() string { return proto.CompactTextString(m) }
func (*EnvoyFilter_ListenerMatch_FilterMatch) ProtoMessage() {}
func (*EnvoyFilter_ListenerMatch_FilterMatch) Descriptor() ([]byte, []int) {
- return fileDescriptor_16d9b2922bd3e4a9, []int{0, 5, 1}
+ return fileDescriptor_16d9b2922bd3e4a9, []int{0, 6, 1}
}
func (m *EnvoyFilter_ListenerMatch_FilterMatch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1315,7 +1478,7 @@ func (m *EnvoyFilter_ListenerMatch_SubFilterMatch) Reset() {
func (m *EnvoyFilter_ListenerMatch_SubFilterMatch) String() string { return proto.CompactTextString(m) }
func (*EnvoyFilter_ListenerMatch_SubFilterMatch) ProtoMessage() {}
func (*EnvoyFilter_ListenerMatch_SubFilterMatch) Descriptor() ([]byte, []int) {
- return fileDescriptor_16d9b2922bd3e4a9, []int{0, 5, 2}
+ return fileDescriptor_16d9b2922bd3e4a9, []int{0, 6, 2}
}
func (m *EnvoyFilter_ListenerMatch_SubFilterMatch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1367,7 +1530,7 @@ func (m *EnvoyFilter_Patch) Reset() { *m = EnvoyFilter_Patch{} }
func (m *EnvoyFilter_Patch) String() string { return proto.CompactTextString(m) }
func (*EnvoyFilter_Patch) ProtoMessage() {}
func (*EnvoyFilter_Patch) Descriptor() ([]byte, []int) {
- return fileDescriptor_16d9b2922bd3e4a9, []int{0, 6}
+ return fileDescriptor_16d9b2922bd3e4a9, []int{0, 7}
}
func (m *EnvoyFilter_Patch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1410,8 +1573,15 @@ func (m *EnvoyFilter_Patch) GetValue() *types.Struct {
return nil
}
+// One or more match conditions to be met before a patch is applied
+// to the generated configuration for a given proxy.
type EnvoyFilter_EnvoyConfigObjectMatch struct {
+ // The specific config generation context to match on. Istio Pilot
+ // generates envoy configuration in the context of a gateway,
+ // inbound traffic to sidecar and outbound traffic from sidecar.
Context EnvoyFilter_PatchContext `protobuf:"varint,1,opt,name=context,proto3,enum=istio.networking.v1alpha3.EnvoyFilter_PatchContext" json:"context,omitempty"`
+ // Match on properties associated with a proxy.
+ Proxy *EnvoyFilter_ProxyMatch `protobuf:"bytes,2,opt,name=proxy,proto3" json:"proxy,omitempty"`
// Types that are valid to be assigned to ObjectTypes:
// *EnvoyFilter_EnvoyConfigObjectMatch_Listener
// *EnvoyFilter_EnvoyConfigObjectMatch_RouteConfiguration
@@ -1426,7 +1596,7 @@ func (m *EnvoyFilter_EnvoyConfigObjectMatch) Reset() { *m = EnvoyFilter_
func (m *EnvoyFilter_EnvoyConfigObjectMatch) String() string { return proto.CompactTextString(m) }
func (*EnvoyFilter_EnvoyConfigObjectMatch) ProtoMessage() {}
func (*EnvoyFilter_EnvoyConfigObjectMatch) Descriptor() ([]byte, []int) {
- return fileDescriptor_16d9b2922bd3e4a9, []int{0, 7}
+ return fileDescriptor_16d9b2922bd3e4a9, []int{0, 8}
}
func (m *EnvoyFilter_EnvoyConfigObjectMatch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1462,13 +1632,13 @@ type isEnvoyFilter_EnvoyConfigObjectMatch_ObjectTypes interface {
}
type EnvoyFilter_EnvoyConfigObjectMatch_Listener struct {
- Listener *EnvoyFilter_ListenerMatch `protobuf:"bytes,2,opt,name=listener,proto3,oneof"`
+ Listener *EnvoyFilter_ListenerMatch `protobuf:"bytes,3,opt,name=listener,proto3,oneof"`
}
type EnvoyFilter_EnvoyConfigObjectMatch_RouteConfiguration struct {
- RouteConfiguration *EnvoyFilter_RouteConfigurationMatch `protobuf:"bytes,3,opt,name=route_configuration,json=routeConfiguration,proto3,oneof"`
+ RouteConfiguration *EnvoyFilter_RouteConfigurationMatch `protobuf:"bytes,4,opt,name=route_configuration,json=routeConfiguration,proto3,oneof"`
}
type EnvoyFilter_EnvoyConfigObjectMatch_Cluster struct {
- Cluster *EnvoyFilter_ClusterMatch `protobuf:"bytes,4,opt,name=cluster,proto3,oneof"`
+ Cluster *EnvoyFilter_ClusterMatch `protobuf:"bytes,5,opt,name=cluster,proto3,oneof"`
}
func (*EnvoyFilter_EnvoyConfigObjectMatch_Listener) isEnvoyFilter_EnvoyConfigObjectMatch_ObjectTypes() {
@@ -1492,6 +1662,13 @@ func (m *EnvoyFilter_EnvoyConfigObjectMatch) GetContext() EnvoyFilter_PatchConte
return EnvoyFilter_ANY
}
+func (m *EnvoyFilter_EnvoyConfigObjectMatch) GetProxy() *EnvoyFilter_ProxyMatch {
+ if m != nil {
+ return m.Proxy
+ }
+ return nil
+}
+
func (m *EnvoyFilter_EnvoyConfigObjectMatch) GetListener() *EnvoyFilter_ListenerMatch {
if x, ok := m.GetObjectTypes().(*EnvoyFilter_EnvoyConfigObjectMatch_Listener); ok {
return x.Listener
@@ -1527,17 +1704,17 @@ func _EnvoyFilter_EnvoyConfigObjectMatch_OneofMarshaler(msg proto.Message, b *pr
// object_types
switch x := m.ObjectTypes.(type) {
case *EnvoyFilter_EnvoyConfigObjectMatch_Listener:
- _ = b.EncodeVarint(2<<3 | proto.WireBytes)
+ _ = b.EncodeVarint(3<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Listener); err != nil {
return err
}
case *EnvoyFilter_EnvoyConfigObjectMatch_RouteConfiguration:
- _ = b.EncodeVarint(3<<3 | proto.WireBytes)
+ _ = b.EncodeVarint(4<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.RouteConfiguration); err != nil {
return err
}
case *EnvoyFilter_EnvoyConfigObjectMatch_Cluster:
- _ = b.EncodeVarint(4<<3 | proto.WireBytes)
+ _ = b.EncodeVarint(5<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Cluster); err != nil {
return err
}
@@ -1551,7 +1728,7 @@ func _EnvoyFilter_EnvoyConfigObjectMatch_OneofMarshaler(msg proto.Message, b *pr
func _EnvoyFilter_EnvoyConfigObjectMatch_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*EnvoyFilter_EnvoyConfigObjectMatch)
switch tag {
- case 2: // object_types.listener
+ case 3: // object_types.listener
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
@@ -1559,7 +1736,7 @@ func _EnvoyFilter_EnvoyConfigObjectMatch_OneofUnmarshaler(msg proto.Message, tag
err := b.DecodeMessage(msg)
m.ObjectTypes = &EnvoyFilter_EnvoyConfigObjectMatch_Listener{msg}
return true, err
- case 3: // object_types.route_configuration
+ case 4: // object_types.route_configuration
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
@@ -1567,7 +1744,7 @@ func _EnvoyFilter_EnvoyConfigObjectMatch_OneofUnmarshaler(msg proto.Message, tag
err := b.DecodeMessage(msg)
m.ObjectTypes = &EnvoyFilter_EnvoyConfigObjectMatch_RouteConfiguration{msg}
return true, err
- case 4: // object_types.cluster
+ case 5: // object_types.cluster
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
@@ -1631,7 +1808,7 @@ func (m *EnvoyFilter_EnvoyConfigObjectPatch) Reset() { *m = EnvoyFilter_
func (m *EnvoyFilter_EnvoyConfigObjectPatch) String() string { return proto.CompactTextString(m) }
func (*EnvoyFilter_EnvoyConfigObjectPatch) ProtoMessage() {}
func (*EnvoyFilter_EnvoyConfigObjectPatch) Descriptor() ([]byte, []int) {
- return fileDescriptor_16d9b2922bd3e4a9, []int{0, 8}
+ return fileDescriptor_16d9b2922bd3e4a9, []int{0, 9}
}
func (m *EnvoyFilter_EnvoyConfigObjectPatch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1694,6 +1871,8 @@ func init() {
proto.RegisterType((*EnvoyFilter_DeprecatedListenerMatch)(nil), "istio.networking.v1alpha3.EnvoyFilter.DeprecatedListenerMatch")
proto.RegisterType((*EnvoyFilter_InsertPosition)(nil), "istio.networking.v1alpha3.EnvoyFilter.InsertPosition")
proto.RegisterType((*EnvoyFilter_Filter)(nil), "istio.networking.v1alpha3.EnvoyFilter.Filter")
+ proto.RegisterType((*EnvoyFilter_ProxyMatch)(nil), "istio.networking.v1alpha3.EnvoyFilter.ProxyMatch")
+ proto.RegisterMapType((map[string]string)(nil), "istio.networking.v1alpha3.EnvoyFilter.ProxyMatch.MetadataEntry")
proto.RegisterType((*EnvoyFilter_ClusterMatch)(nil), "istio.networking.v1alpha3.EnvoyFilter.ClusterMatch")
proto.RegisterType((*EnvoyFilter_RouteConfigurationMatch)(nil), "istio.networking.v1alpha3.EnvoyFilter.RouteConfigurationMatch")
proto.RegisterType((*EnvoyFilter_RouteConfigurationMatch_VirtualHostMatch)(nil), "istio.networking.v1alpha3.EnvoyFilter.RouteConfigurationMatch.VirtualHostMatch")
@@ -1711,95 +1890,101 @@ func init() {
}
var fileDescriptor_16d9b2922bd3e4a9 = []byte{
- // 1403 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x5f, 0x6f, 0x1b, 0x45,
- 0x10, 0xcf, 0xd9, 0xb9, 0x38, 0x1e, 0x3b, 0xce, 0x65, 0x53, 0x35, 0xc6, 0x54, 0x25, 0x44, 0xa8,
- 0x8a, 0x04, 0xbd, 0x40, 0x02, 0xa8, 0x2a, 0x50, 0xe1, 0x38, 0x97, 0xfa, 0x54, 0xc7, 0x67, 0xd6,
- 0x97, 0xb4, 0x45, 0x82, 0xd3, 0xd9, 0xde, 0x24, 0x47, 0x2f, 0x77, 0xc7, 0xdd, 0x3a, 0xa9, 0x25,
- 0x5e, 0x79, 0xe6, 0x01, 0xbe, 0x04, 0x0f, 0x7c, 0x00, 0xc4, 0x17, 0xe0, 0x11, 0xf1, 0x09, 0x50,
- 0x5f, 0x79, 0xe0, 0x0b, 0xf0, 0x80, 0xf6, 0xcf, 0xb9, 0x76, 0xea, 0x54, 0x4e, 0xc2, 0x93, 0x6f,
- 0x67, 0x67, 0x7e, 0x33, 0xb3, 0x33, 0xfb, 0x9b, 0x35, 0xdc, 0x09, 0x08, 0x3d, 0x0b, 0xe3, 0x67,
- 0x5e, 0x70, 0xb4, 0x71, 0xfa, 0x81, 0xeb, 0x47, 0xc7, 0xee, 0xd6, 0x06, 0x09, 0x4e, 0xc3, 0x81,
- 0x73, 0xe8, 0xf9, 0x94, 0xc4, 0x7a, 0x14, 0x87, 0x34, 0x44, 0x6f, 0x78, 0x09, 0xf5, 0x42, 0xfd,
- 0xa5, 0xb6, 0x9e, 0x6a, 0x57, 0x6e, 0x1d, 0x85, 0xe1, 0x91, 0x4f, 0x36, 0xb8, 0x62, 0xa7, 0x7f,
- 0xb8, 0x91, 0xd0, 0xb8, 0xdf, 0xa5, 0xc2, 0xb0, 0xf2, 0xf6, 0x24, 0x07, 0x89, 0xd7, 0x23, 0x5d,
- 0x57, 0x62, 0xaf, 0xfd, 0x79, 0x0b, 0x0a, 0x06, 0x73, 0xb9, 0xcb, 0x3d, 0xa2, 0x23, 0x58, 0x64,
- 0x16, 0x7e, 0xe8, 0xf6, 0x1c, 0xdf, 0xed, 0x10, 0x3f, 0x29, 0x2b, 0xab, 0xd9, 0xf5, 0xc2, 0xe6,
- 0x7d, 0xfd, 0xc2, 0x28, 0xf4, 0x11, 0x00, 0xfd, 0xb1, 0xb4, 0x6e, 0x70, 0x63, 0x23, 0xa0, 0xf1,
- 0x60, 0x3b, 0x53, 0x56, 0x70, 0xe9, 0x6c, 0x6c, 0x03, 0x3d, 0x82, 0x9c, 0x48, 0x32, 0x29, 0x67,
- 0xb8, 0x83, 0xbb, 0x53, 0x3a, 0x10, 0x3f, 0x1c, 0x33, 0x45, 0x40, 0x4f, 0x60, 0x69, 0x18, 0x75,
- 0x42, 0x7c, 0xd2, 0xa5, 0x61, 0x5c, 0xce, 0xae, 0x2a, 0xeb, 0x85, 0xcd, 0x77, 0x5f, 0x03, 0x9b,
- 0xc6, 0xda, 0x96, 0x26, 0x58, 0x3b, 0x3b, 0x27, 0x41, 0x3d, 0x28, 0x75, 0xc3, 0xe0, 0xd0, 0x3b,
- 0x72, 0x22, 0x97, 0x76, 0x8f, 0x49, 0x52, 0x9e, 0xe5, 0xd1, 0x7e, 0x36, 0x65, 0xb4, 0xfc, 0xbb,
- 0xc6, 0x11, 0xac, 0xce, 0x37, 0xa4, 0x4b, 0x5b, 0x0c, 0x06, 0x2f, 0x08, 0xd0, 0x96, 0xc0, 0xac,
- 0xfc, 0x93, 0x85, 0x95, 0x1d, 0x12, 0xc5, 0xa4, 0xeb, 0x52, 0xd2, 0x6b, 0x78, 0x09, 0x25, 0x01,
- 0x89, 0xf7, 0xd8, 0x2e, 0x7a, 0x0b, 0x0a, 0x51, 0x18, 0x53, 0x27, 0xe8, 0x9f, 0x74, 0x48, 0x5c,
- 0x56, 0x56, 0x95, 0xf5, 0x05, 0x0c, 0x4c, 0xd4, 0xe4, 0x12, 0xb4, 0x0e, 0x9a, 0x50, 0x70, 0x4f,
- 0x88, 0x13, 0xc5, 0xe4, 0xd0, 0x7b, 0x5e, 0xce, 0xac, 0x2a, 0xeb, 0x79, 0x5c, 0xe2, 0x5a, 0xee,
- 0x09, 0x69, 0x71, 0x29, 0x8a, 0x60, 0xc1, 0x97, 0xd8, 0x0e, 0x1d, 0x44, 0x84, 0x1f, 0x51, 0x69,
- 0xf3, 0xd1, 0x94, 0xb9, 0x5c, 0x10, 0xa1, 0x9e, 0xae, 0xec, 0x41, 0x44, 0x70, 0xd1, 0x1f, 0x59,
- 0xa1, 0xef, 0x60, 0x69, 0xe8, 0x91, 0x37, 0x5c, 0x37, 0xf4, 0xcb, 0xb3, 0xdc, 0xab, 0xf5, 0x3f,
- 0x79, 0x6d, 0x49, 0x58, 0xac, 0xf9, 0xe7, 0x24, 0xa8, 0x0c, 0x39, 0xb7, 0xd7, 0x8b, 0x49, 0x92,
- 0x94, 0xd5, 0xd5, 0xec, 0x7a, 0x1e, 0xa7, 0xcb, 0x35, 0x0b, 0x8a, 0xa3, 0x51, 0xa3, 0x1c, 0x64,
- 0xab, 0xcd, 0xa7, 0xda, 0x0c, 0x5a, 0x86, 0xc5, 0xb6, 0xb9, 0x63, 0xd4, 0xaa, 0xd8, 0x31, 0x9b,
- 0xdb, 0xd6, 0x7e, 0x73, 0x47, 0x53, 0xd0, 0x0d, 0xd0, 0x52, 0xa1, 0xb5, 0x6f, 0x0b, 0x69, 0x06,
- 0x15, 0x20, 0xf7, 0xb0, 0x6a, 0x1b, 0x8f, 0xab, 0x4f, 0xb5, 0xec, 0x9a, 0x0e, 0xda, 0xf9, 0x80,
- 0x38, 0x68, 0xa3, 0xa1, 0xcd, 0xa0, 0x79, 0x98, 0xad, 0xdb, 0x76, 0x4b, 0x53, 0x98, 0xc8, 0xae,
- 0xb5, 0xb4, 0x4c, 0xe5, 0x57, 0x05, 0x4a, 0x66, 0x90, 0x90, 0x98, 0xb6, 0xc2, 0xc4, 0xa3, 0x5e,
- 0x18, 0xa0, 0x2f, 0x40, 0xf5, 0x82, 0x1e, 0x79, 0xce, 0x4b, 0x5c, 0xda, 0xfc, 0x64, 0xca, 0xf3,
- 0x19, 0x47, 0xd1, 0x4d, 0x06, 0x81, 0x05, 0x12, 0xeb, 0x9d, 0x98, 0xf8, 0x2e, 0xf5, 0x4e, 0x89,
- 0x43, 0x43, 0xd9, 0x15, 0x90, 0x8a, 0xec, 0x70, 0x6d, 0x0b, 0x54, 0x6e, 0x80, 0xf2, 0xa0, 0xee,
- 0x9a, 0xb8, 0x6d, 0x8b, 0x68, 0x1b, 0xd5, 0xb6, 0xad, 0x29, 0x08, 0x60, 0x6e, 0xdb, 0xd8, 0xb5,
- 0xb0, 0xa1, 0x65, 0x98, 0x42, 0x75, 0xd7, 0x36, 0xb0, 0x96, 0xad, 0xfc, 0x96, 0x85, 0x39, 0x49,
- 0x17, 0x04, 0x4a, 0xc3, 0xfa, 0x9e, 0xb0, 0xb2, 0xf0, 0xe0, 0x0b, 0x9b, 0x0f, 0xae, 0x57, 0x5c,
- 0x3c, 0xec, 0x53, 0x71, 0x07, 0xbe, 0x86, 0x45, 0x8f, 0xa7, 0xe9, 0x44, 0x32, 0x4f, 0x9e, 0x4b,
- 0x61, 0xf3, 0xa3, 0x2b, 0x1d, 0x12, 0x2e, 0x79, 0xe3, 0x47, 0xff, 0x14, 0x0a, 0x82, 0x4a, 0x46,
- 0xaf, 0xc5, 0xbd, 0x4b, 0x11, 0x92, 0xfc, 0xe1, 0x77, 0x00, 0x0e, 0x87, 0xdf, 0xac, 0x04, 0x12,
- 0x9a, 0xdd, 0x4f, 0xde, 0xfb, 0xf9, 0x54, 0x81, 0x5d, 0x4d, 0xf4, 0x29, 0x2c, 0x48, 0x05, 0xc1,
- 0x09, 0x65, 0x95, 0x67, 0xb6, 0xa2, 0x0b, 0x6a, 0xd7, 0x53, 0x6a, 0xd7, 0xdb, 0x9c, 0xda, 0x71,
- 0x51, 0x68, 0x0b, 0x4e, 0x59, 0x7b, 0x1f, 0xe0, 0xa5, 0x63, 0xd6, 0x92, 0x66, 0xf3, 0xa0, 0xda,
- 0x30, 0x77, 0xc6, 0xba, 0xae, 0x00, 0xb9, 0xa6, 0x61, 0x3f, 0xb6, 0xf0, 0x23, 0x2d, 0x53, 0xe9,
- 0x43, 0xb1, 0xe6, 0xf7, 0x13, 0x3a, 0x35, 0xbf, 0x94, 0x21, 0x97, 0x90, 0xf8, 0xd4, 0xeb, 0x12,
- 0xd9, 0x40, 0xe9, 0x12, 0xdd, 0x84, 0xb9, 0xa4, 0xdf, 0x49, 0x08, 0xe5, 0x27, 0x96, 0xc7, 0x72,
- 0x85, 0x10, 0xcc, 0x8e, 0x24, 0xcb, 0xbf, 0x2b, 0x3f, 0x65, 0x60, 0x05, 0x87, 0x7d, 0x4a, 0x44,
- 0xe0, 0xfd, 0xd8, 0x65, 0x27, 0x3f, 0x65, 0x08, 0x6f, 0x42, 0x7e, 0x48, 0x71, 0x32, 0x88, 0xf9,
- 0x94, 0xdb, 0x58, 0x7c, 0x47, 0x2e, 0x25, 0x67, 0xee, 0x40, 0x86, 0x91, 0x2e, 0x11, 0x01, 0xf5,
- 0xf4, 0x38, 0x4c, 0x28, 0x0f, 0xa4, 0x30, 0x35, 0xe3, 0x5c, 0x10, 0xa6, 0x7e, 0xe0, 0xc5, 0xb4,
- 0xef, 0xfa, 0xf5, 0x30, 0xa1, 0xa2, 0x4b, 0x05, 0xfa, 0x30, 0x5d, 0x75, 0x24, 0xdd, 0x3b, 0xa0,
- 0x9d, 0x57, 0x1f, 0xea, 0x29, 0x23, 0x7a, 0x3f, 0xcf, 0xc2, 0xc2, 0x25, 0xf9, 0xfe, 0xb5, 0x87,
- 0x71, 0x0c, 0xc5, 0xb4, 0x9b, 0x8e, 0x5d, 0x2f, 0x90, 0x43, 0xd0, 0x98, 0x32, 0xf3, 0x71, 0x86,
- 0x15, 0xc2, 0x1a, 0xc3, 0x11, 0xf9, 0xca, 0x4e, 0xe6, 0x92, 0x89, 0x45, 0xfe, 0x45, 0x01, 0xed,
- 0xbc, 0x15, 0xd2, 0x20, 0x9b, 0x04, 0x9e, 0xcc, 0x9a, 0x7d, 0xa2, 0xbb, 0x80, 0x68, 0xec, 0x06,
- 0x09, 0x4f, 0x63, 0x38, 0x16, 0x44, 0x2a, 0x4b, 0xc3, 0x9d, 0x21, 0x8f, 0x3e, 0x81, 0x39, 0xe1,
- 0x58, 0x66, 0xf3, 0xf9, 0x35, 0xb2, 0x11, 0x89, 0x48, 0xbc, 0xca, 0xf7, 0x0a, 0x14, 0x46, 0xe4,
- 0x93, 0x2a, 0x84, 0x3a, 0x00, 0x49, 0xbf, 0x23, 0x5f, 0x64, 0x92, 0x76, 0x6a, 0x57, 0x8a, 0xa0,
- 0xdd, 0xef, 0x8c, 0x06, 0x91, 0x4f, 0xd2, 0x75, 0xe5, 0x1d, 0x28, 0x8d, 0x6f, 0x4e, 0xec, 0x95,
- 0xbf, 0x15, 0x50, 0xf9, 0x8b, 0x01, 0xd9, 0x90, 0x0f, 0x23, 0x22, 0x7a, 0x53, 0x8e, 0x8b, 0x8f,
- 0xa7, 0x0c, 0x89, 0x03, 0xe8, 0x56, 0x6a, 0x8d, 0x5f, 0x02, 0xa1, 0xbb, 0xa0, 0x9e, 0xba, 0x7e,
- 0x9f, 0xc8, 0x24, 0x2f, 0x64, 0x20, 0xa1, 0xb5, 0xf6, 0x15, 0xe4, 0x87, 0x30, 0xe3, 0xcc, 0x93,
- 0x07, 0x75, 0xcf, 0xc0, 0x0f, 0x0d, 0x31, 0xf0, 0xaa, 0x3b, 0x6c, 0x5a, 0x02, 0xcc, 0x61, 0x63,
- 0xcf, 0x3a, 0x30, 0xb4, 0x2c, 0x5a, 0x82, 0x05, 0xb3, 0xd9, 0x36, 0xb0, 0xed, 0xc8, 0xf1, 0x32,
- 0x8b, 0x34, 0x28, 0x4a, 0x91, 0x98, 0x32, 0x6a, 0xe5, 0x87, 0x2c, 0xdc, 0x7c, 0xe5, 0xf5, 0x24,
- 0x0e, 0x67, 0x0f, 0x72, 0xdd, 0x30, 0xa0, 0xe4, 0x39, 0x95, 0xc9, 0x6f, 0x5d, 0x26, 0xf9, 0x9a,
- 0x30, 0xc5, 0x29, 0x06, 0xc2, 0x30, 0x9f, 0x8e, 0x1b, 0x99, 0xfa, 0x87, 0x57, 0xa9, 0x6f, 0x7d,
- 0x06, 0x0f, 0x71, 0xd0, 0xb7, 0xb0, 0x1c, 0x33, 0x1a, 0x91, 0xa4, 0x2e, 0x79, 0x44, 0x36, 0xf0,
- 0x83, 0xeb, 0x11, 0x51, 0x7d, 0x06, 0xa3, 0xf8, 0x95, 0x2d, 0x64, 0x41, 0xae, 0x2b, 0x88, 0x5d,
- 0xf2, 0xdd, 0xb4, 0xa7, 0x32, 0x3a, 0x0e, 0xea, 0x33, 0x38, 0x45, 0xd9, 0x2e, 0x41, 0x31, 0xe4,
- 0xa7, 0xce, 0xa7, 0x62, 0x52, 0xf9, 0x57, 0x99, 0x50, 0x11, 0xd1, 0x90, 0x26, 0xcc, 0xbb, 0x51,
- 0xe4, 0x0f, 0xd8, 0x2b, 0x43, 0x94, 0x44, 0x9f, 0xd2, 0x79, 0x95, 0x99, 0xd9, 0x21, 0xce, 0xb9,
- 0xe2, 0x03, 0xb5, 0x41, 0x15, 0x2f, 0x09, 0x51, 0x8a, 0x2b, 0x3f, 0xb4, 0x25, 0x45, 0x73, 0x2c,
- 0xb4, 0x0d, 0x2a, 0x7f, 0xbf, 0xcb, 0x02, 0xbc, 0x77, 0x99, 0x7e, 0xc1, 0xc2, 0xb4, 0x52, 0x85,
- 0xe5, 0x09, 0x7f, 0x6e, 0x18, 0xbd, 0x3d, 0x23, 0x83, 0x94, 0xde, 0x9e, 0x91, 0x01, 0xba, 0x31,
- 0x7a, 0x8f, 0xf2, 0xf2, 0xba, 0xdc, 0xcf, 0xdc, 0x53, 0xd6, 0x7e, 0x54, 0x20, 0x27, 0x13, 0x1e,
- 0xbf, 0x31, 0x45, 0x98, 0x6f, 0x98, 0x6d, 0xdb, 0x68, 0x1a, 0x58, 0x53, 0xd8, 0x65, 0xd8, 0x35,
- 0x1b, 0xb6, 0x81, 0x9d, 0x5a, 0xbd, 0x6a, 0x36, 0xb5, 0x0c, 0x42, 0x50, 0x92, 0x13, 0xdc, 0x11,
- 0x3b, 0x5a, 0x16, 0x2d, 0x42, 0x81, 0xcd, 0xf7, 0x54, 0x30, 0x8b, 0x56, 0x60, 0x19, 0x5b, 0xfb,
- 0xb6, 0xe1, 0xd4, 0xac, 0xe6, 0xae, 0xf9, 0x70, 0x1f, 0x57, 0x6d, 0xd3, 0x6a, 0x6a, 0x2a, 0xc3,
- 0x3b, 0x30, 0xb1, 0xbd, 0x5f, 0x6d, 0x38, 0x75, 0xab, 0x6d, 0x6b, 0x73, 0xcc, 0x79, 0xad, 0xb1,
- 0xdf, 0x66, 0x76, 0x39, 0xf6, 0x18, 0x1e, 0xbd, 0x18, 0xd7, 0x7e, 0x0c, 0x6f, 0xeb, 0xbf, 0xbf,
- 0xb8, 0xad, 0xfc, 0xf1, 0xe2, 0xb6, 0xf2, 0xd7, 0x8b, 0xdb, 0xca, 0x97, 0xab, 0xe2, 0xac, 0xbd,
- 0x70, 0xc3, 0x8d, 0xbc, 0x8d, 0x09, 0x7f, 0x49, 0x3b, 0x73, 0x9c, 0x61, 0xb6, 0xfe, 0x0b, 0x00,
- 0x00, 0xff, 0xff, 0x43, 0x57, 0xbf, 0x1c, 0x11, 0x0f, 0x00, 0x00,
+ // 1504 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0xcf, 0x6e, 0xdb, 0x46,
+ 0x13, 0x37, 0x25, 0xd3, 0xb2, 0x46, 0x7f, 0x4c, 0xaf, 0x83, 0x58, 0x9f, 0xbe, 0x0f, 0x89, 0x3f,
+ 0xa3, 0x08, 0x0c, 0xb4, 0xa1, 0x1b, 0xbb, 0x2d, 0x82, 0xa4, 0x4d, 0x2b, 0xcb, 0xb4, 0x45, 0x44,
+ 0x96, 0xd4, 0x15, 0xed, 0x24, 0x2d, 0x5a, 0x82, 0x92, 0xd6, 0x36, 0x1b, 0x9a, 0x64, 0xc8, 0x95,
+ 0x6d, 0x01, 0xbd, 0xf6, 0x09, 0x5a, 0xa0, 0xcf, 0xd0, 0x43, 0x1f, 0xa0, 0xe8, 0x0b, 0xf4, 0xd8,
+ 0x63, 0x8f, 0x45, 0xae, 0x3d, 0xf4, 0x5c, 0xa0, 0x87, 0x62, 0xff, 0x50, 0x96, 0x1c, 0x27, 0x90,
+ 0xed, 0x9e, 0xc8, 0x9d, 0x9d, 0xf9, 0xed, 0xcc, 0xce, 0xec, 0x6f, 0x76, 0xe1, 0x8e, 0x4f, 0xe8,
+ 0x49, 0x10, 0x3d, 0x77, 0xfd, 0x83, 0xd5, 0xe3, 0x7b, 0x8e, 0x17, 0x1e, 0x3a, 0xeb, 0xab, 0xc4,
+ 0x3f, 0x0e, 0x06, 0xf6, 0xbe, 0xeb, 0x51, 0x12, 0xe9, 0x61, 0x14, 0xd0, 0x00, 0xfd, 0xc7, 0x8d,
+ 0xa9, 0x1b, 0xe8, 0x67, 0xda, 0x7a, 0xa2, 0x5d, 0xfe, 0xdf, 0x41, 0x10, 0x1c, 0x78, 0x64, 0x95,
+ 0x2b, 0x76, 0xfa, 0xfb, 0xab, 0x31, 0x8d, 0xfa, 0x5d, 0x2a, 0x0c, 0xcb, 0xff, 0xbf, 0x68, 0x81,
+ 0xd8, 0xed, 0x91, 0xae, 0x23, 0xb1, 0x97, 0xbf, 0xbf, 0x0d, 0x39, 0x83, 0x2d, 0xb9, 0xc5, 0x57,
+ 0x44, 0x07, 0x30, 0xc7, 0x2c, 0xbc, 0xc0, 0xe9, 0xd9, 0x9e, 0xd3, 0x21, 0x5e, 0x5c, 0x52, 0x96,
+ 0xd2, 0x2b, 0xb9, 0xb5, 0x07, 0xfa, 0x6b, 0xbd, 0xd0, 0x47, 0x00, 0xf4, 0x27, 0xd2, 0xba, 0xce,
+ 0x8d, 0x0d, 0x9f, 0x46, 0x83, 0x8d, 0x54, 0x49, 0xc1, 0xc5, 0x93, 0xb1, 0x09, 0xf4, 0x18, 0x32,
+ 0x22, 0xc8, 0xb8, 0x94, 0xe2, 0x0b, 0xdc, 0x9d, 0x70, 0x01, 0xf1, 0xe1, 0x98, 0x09, 0x02, 0x7a,
+ 0x0a, 0xf3, 0x43, 0xaf, 0x63, 0xe2, 0x91, 0x2e, 0x0d, 0xa2, 0x52, 0x7a, 0x49, 0x59, 0xc9, 0xad,
+ 0xbd, 0xfd, 0x06, 0xd8, 0xc4, 0xd7, 0xb6, 0x34, 0xc1, 0xda, 0xc9, 0x39, 0x09, 0xea, 0x41, 0xb1,
+ 0x1b, 0xf8, 0xfb, 0xee, 0x81, 0x1d, 0x3a, 0xb4, 0x7b, 0x48, 0xe2, 0xd2, 0x34, 0xf7, 0xf6, 0xa3,
+ 0x09, 0xbd, 0xe5, 0xff, 0x55, 0x8e, 0xd0, 0xec, 0x7c, 0x45, 0xba, 0xb4, 0xc5, 0x60, 0x70, 0x41,
+ 0x80, 0xb6, 0x04, 0x66, 0xf9, 0xcf, 0x34, 0x2c, 0x6e, 0x92, 0x30, 0x22, 0x5d, 0x87, 0x92, 0x5e,
+ 0xdd, 0x8d, 0x29, 0xf1, 0x49, 0xb4, 0xc3, 0x66, 0xd1, 0x6d, 0xc8, 0x85, 0x41, 0x44, 0x6d, 0xbf,
+ 0x7f, 0xd4, 0x21, 0x51, 0x49, 0x59, 0x52, 0x56, 0x0a, 0x18, 0x98, 0xa8, 0xc1, 0x25, 0x68, 0x05,
+ 0x34, 0xa1, 0xe0, 0x1c, 0x11, 0x3b, 0x8c, 0xc8, 0xbe, 0x7b, 0x5a, 0x4a, 0x2d, 0x29, 0x2b, 0x59,
+ 0x5c, 0xe4, 0x5a, 0xce, 0x11, 0x69, 0x71, 0x29, 0x0a, 0xa1, 0xe0, 0x49, 0x6c, 0x9b, 0x0e, 0x42,
+ 0xc2, 0xb7, 0xa8, 0xb8, 0xf6, 0x78, 0xc2, 0x58, 0x5e, 0xe3, 0xa1, 0x9e, 0x8c, 0xac, 0x41, 0x48,
+ 0x70, 0xde, 0x1b, 0x19, 0xa1, 0xaf, 0x61, 0x7e, 0xb8, 0x22, 0x2f, 0xb8, 0x6e, 0xe0, 0x95, 0xa6,
+ 0xf9, 0xaa, 0xcd, 0x7f, 0x69, 0xd5, 0x96, 0x84, 0xc5, 0x9a, 0x77, 0x4e, 0x82, 0x4a, 0x90, 0x71,
+ 0x7a, 0xbd, 0x88, 0xc4, 0x71, 0x49, 0x5d, 0x4a, 0xaf, 0x64, 0x71, 0x32, 0x5c, 0x6e, 0x42, 0x7e,
+ 0xd4, 0x6b, 0x94, 0x81, 0x74, 0xa5, 0xf1, 0x4c, 0x9b, 0x42, 0x0b, 0x30, 0xd7, 0x36, 0x37, 0x8d,
+ 0x6a, 0x05, 0xdb, 0x66, 0x63, 0xa3, 0xb9, 0xdb, 0xd8, 0xd4, 0x14, 0x74, 0x03, 0xb4, 0x44, 0xd8,
+ 0xdc, 0xb5, 0x84, 0x34, 0x85, 0x72, 0x90, 0xd9, 0xae, 0x58, 0xc6, 0x93, 0xca, 0x33, 0x2d, 0xbd,
+ 0xac, 0x83, 0x76, 0xde, 0x21, 0x0e, 0x5a, 0xaf, 0x6b, 0x53, 0x68, 0x16, 0xa6, 0x6b, 0x96, 0xd5,
+ 0xd2, 0x14, 0x26, 0xb2, 0xaa, 0x2d, 0x2d, 0x55, 0xfe, 0x49, 0x81, 0xa2, 0xe9, 0xc7, 0x24, 0xa2,
+ 0xad, 0x20, 0x76, 0xa9, 0x1b, 0xf8, 0xe8, 0x53, 0x50, 0x5d, 0xbf, 0x47, 0x4e, 0x79, 0x8a, 0x8b,
+ 0x6b, 0x0f, 0x27, 0xdc, 0x9f, 0x71, 0x14, 0xdd, 0x64, 0x10, 0x58, 0x20, 0xb1, 0xda, 0x89, 0x88,
+ 0xe7, 0x50, 0xf7, 0x98, 0xd8, 0x34, 0x90, 0x55, 0x01, 0x89, 0xc8, 0x0a, 0x96, 0xd7, 0x41, 0xe5,
+ 0x06, 0x28, 0x0b, 0xea, 0x96, 0x89, 0xdb, 0x96, 0xf0, 0xb6, 0x5e, 0x69, 0x5b, 0x9a, 0x82, 0x00,
+ 0x66, 0x36, 0x8c, 0xad, 0x26, 0x36, 0xb4, 0x14, 0x53, 0xa8, 0x6c, 0x59, 0x06, 0xd6, 0xd2, 0xe5,
+ 0x9f, 0xd3, 0x30, 0x23, 0xe9, 0x82, 0x40, 0x71, 0x98, 0xdf, 0x23, 0x96, 0x16, 0xee, 0x7c, 0x6e,
+ 0xed, 0xd1, 0xf5, 0x92, 0x8b, 0x87, 0x75, 0x2a, 0xce, 0xc0, 0x97, 0x30, 0xe7, 0xf2, 0x30, 0xed,
+ 0x50, 0xc6, 0xc9, 0x63, 0xc9, 0xad, 0xbd, 0x7f, 0xa5, 0x4d, 0xc2, 0x45, 0x77, 0x7c, 0xeb, 0x9f,
+ 0x41, 0x4e, 0x50, 0xc9, 0xe8, 0xb1, 0xb8, 0x7f, 0x29, 0x42, 0x92, 0x1f, 0x7e, 0x06, 0x60, 0x7f,
+ 0xf8, 0xcf, 0x52, 0x20, 0xa1, 0xd9, 0xf9, 0xe4, 0xb5, 0x9f, 0x4d, 0x14, 0xd8, 0xd1, 0x44, 0x1f,
+ 0x42, 0x41, 0x2a, 0x08, 0x4e, 0x28, 0xa9, 0x3c, 0xb2, 0x45, 0x5d, 0x50, 0xbb, 0x9e, 0x50, 0xbb,
+ 0xde, 0xe6, 0xd4, 0x8e, 0xf3, 0x42, 0x5b, 0x70, 0xca, 0xf2, 0xbb, 0x00, 0x67, 0x0b, 0xb3, 0x92,
+ 0x34, 0x1b, 0x7b, 0x95, 0xba, 0xb9, 0x39, 0x56, 0x75, 0x39, 0xc8, 0x34, 0x0c, 0xeb, 0x49, 0x13,
+ 0x3f, 0xd6, 0x52, 0xe5, 0xbf, 0x14, 0x80, 0x56, 0x14, 0x9c, 0x0e, 0x12, 0x7a, 0x81, 0x63, 0x12,
+ 0xc5, 0x6e, 0xe0, 0xdb, 0x07, 0x84, 0x67, 0x2f, 0x5b, 0x9b, 0xc2, 0x59, 0x29, 0xdb, 0x26, 0xa3,
+ 0x0a, 0xe4, 0x85, 0x28, 0xa1, 0x11, 0x05, 0xe3, 0x05, 0xfa, 0x1c, 0x66, 0x8f, 0x08, 0x75, 0x7a,
+ 0x0e, 0x75, 0x4a, 0x69, 0x4e, 0x8e, 0x1f, 0x4f, 0xb8, 0x73, 0x67, 0x6e, 0xe8, 0x3b, 0x12, 0x81,
+ 0x37, 0x0c, 0x3c, 0x04, 0x2c, 0x3f, 0x84, 0xc2, 0xd8, 0x14, 0xd2, 0x20, 0xfd, 0x9c, 0x0c, 0x84,
+ 0xa3, 0x98, 0xfd, 0xa2, 0x1b, 0xa0, 0x1e, 0x3b, 0x5e, 0x9f, 0xc8, 0xf2, 0x16, 0x83, 0x07, 0xa9,
+ 0xfb, 0xca, 0xc6, 0x1c, 0x14, 0x12, 0xd7, 0x79, 0x71, 0x96, 0xfb, 0x90, 0xaf, 0x7a, 0xfd, 0x98,
+ 0x4e, 0xcc, 0xad, 0x25, 0xc8, 0xc4, 0x24, 0x3a, 0x76, 0xbb, 0x09, 0x7a, 0x32, 0x44, 0x37, 0x61,
+ 0x26, 0xee, 0x77, 0x62, 0x42, 0x79, 0xb5, 0x64, 0xb1, 0x1c, 0x21, 0x04, 0xd3, 0x23, 0x89, 0xe6,
+ 0xff, 0xe5, 0xef, 0x52, 0xb0, 0x88, 0x83, 0x3e, 0x25, 0x22, 0x69, 0xfd, 0xc8, 0x61, 0x55, 0x37,
+ 0xa1, 0x0b, 0xff, 0x85, 0xec, 0x90, 0xde, 0xa5, 0x13, 0xb3, 0x09, 0xaf, 0x33, 0xff, 0x0e, 0x1c,
+ 0x4a, 0x4e, 0x9c, 0x81, 0x74, 0x23, 0x19, 0x22, 0x02, 0xea, 0xf1, 0x61, 0x10, 0x53, 0xee, 0x48,
+ 0x6e, 0x62, 0xb6, 0x7d, 0x8d, 0x9b, 0xfa, 0x9e, 0x1b, 0xd1, 0xbe, 0xe3, 0xd5, 0x82, 0x98, 0x8a,
+ 0x13, 0x2a, 0xd0, 0x87, 0xe1, 0xaa, 0x23, 0xe1, 0xde, 0x01, 0xed, 0xbc, 0xfa, 0x50, 0x4f, 0x19,
+ 0xd1, 0xfb, 0x61, 0x1a, 0x0a, 0x97, 0xec, 0x75, 0x6f, 0xdc, 0x8c, 0x43, 0xc8, 0x27, 0x27, 0xe9,
+ 0xd0, 0x71, 0x7d, 0x79, 0x01, 0x30, 0x26, 0x8c, 0x7c, 0xbc, 0xbb, 0x08, 0x61, 0x95, 0xe1, 0x88,
+ 0x78, 0xe5, 0x29, 0xe6, 0x92, 0x0b, 0x93, 0xfc, 0xa3, 0x02, 0xda, 0x79, 0x2b, 0x56, 0xad, 0xb1,
+ 0xef, 0x26, 0xd5, 0x1a, 0xfb, 0x2e, 0xba, 0x0b, 0x88, 0x46, 0x8e, 0x1f, 0xf3, 0x30, 0x86, 0x2d,
+ 0x51, 0x84, 0x32, 0x3f, 0x9c, 0x19, 0xf6, 0x90, 0xa7, 0x30, 0x23, 0x16, 0x96, 0xd1, 0x7c, 0x72,
+ 0x8d, 0x68, 0x44, 0x20, 0x12, 0xaf, 0xfc, 0x8d, 0x02, 0xb9, 0x11, 0xf9, 0x45, 0x19, 0x42, 0x1d,
+ 0x80, 0xb8, 0xdf, 0x91, 0xb7, 0x51, 0x49, 0xb9, 0xd5, 0x2b, 0x79, 0xd0, 0xee, 0x77, 0x46, 0x9d,
+ 0xc8, 0xc6, 0xc9, 0xb8, 0xfc, 0x16, 0x14, 0xc7, 0x27, 0x2f, 0xac, 0x95, 0x3f, 0x14, 0x50, 0xf9,
+ 0x6d, 0x09, 0x59, 0x90, 0x0d, 0x42, 0x22, 0x6a, 0x53, 0xb6, 0xca, 0x0f, 0x26, 0xe5, 0x1b, 0xee,
+ 0x4a, 0x33, 0xb1, 0xc6, 0x67, 0x40, 0xe8, 0xee, 0x28, 0x89, 0xbc, 0x81, 0x7d, 0x85, 0xd6, 0xf2,
+ 0x17, 0x90, 0x1d, 0xc2, 0x8c, 0xb3, 0x6e, 0x16, 0xd4, 0x1d, 0x03, 0x6f, 0x1b, 0xa2, 0xd9, 0x57,
+ 0x36, 0xd9, 0x4d, 0x01, 0x60, 0x06, 0x1b, 0x3b, 0xcd, 0x3d, 0x43, 0x4b, 0xa3, 0x79, 0x28, 0x98,
+ 0x8d, 0xb6, 0x81, 0x2d, 0x5b, 0xb6, 0xd6, 0x69, 0xa4, 0x41, 0x5e, 0x8a, 0x44, 0x87, 0x55, 0xcb,
+ 0xbf, 0xa5, 0xe1, 0xe6, 0x2b, 0x37, 0x47, 0xb1, 0x39, 0x3b, 0x90, 0xe9, 0x06, 0x3e, 0x25, 0xa7,
+ 0x54, 0x06, 0xbf, 0x7e, 0x99, 0xe0, 0xab, 0xc2, 0x14, 0x27, 0x18, 0x68, 0x1b, 0xd4, 0x90, 0xb1,
+ 0xb0, 0x8c, 0xfb, 0xde, 0xa5, 0x99, 0x1b, 0x0b, 0x7b, 0x84, 0x61, 0x36, 0xe9, 0xd9, 0xb2, 0x54,
+ 0xdf, 0xbb, 0x4a, 0xa1, 0xd4, 0xa6, 0xf0, 0x10, 0x07, 0xbd, 0x80, 0x85, 0x88, 0xf1, 0x91, 0xec,
+ 0x8c, 0x92, 0x90, 0x24, 0xa3, 0x3d, 0xba, 0x1e, 0xa3, 0xd5, 0xa6, 0x30, 0x8a, 0x5e, 0x99, 0x42,
+ 0x4d, 0xc8, 0x74, 0x45, 0x87, 0x90, 0x7d, 0x78, 0xd2, 0xed, 0x1d, 0xed, 0x2b, 0xb5, 0x29, 0x9c,
+ 0xa0, 0x6c, 0x14, 0x21, 0x1f, 0xf0, 0xf4, 0xf1, 0xab, 0x45, 0x5c, 0xfe, 0x5b, 0xb9, 0x20, 0xb5,
+ 0xa2, 0xb2, 0x4d, 0x98, 0x75, 0xc2, 0xd0, 0x1b, 0xb0, 0xab, 0x9a, 0xc8, 0xad, 0x3e, 0xe1, 0xe2,
+ 0x15, 0x66, 0x66, 0x05, 0x38, 0xe3, 0x88, 0x1f, 0xd4, 0x06, 0x55, 0x5c, 0xc7, 0x44, 0x5a, 0xaf,
+ 0xfc, 0x5a, 0x91, 0x29, 0xe6, 0x58, 0x68, 0x03, 0x54, 0xfe, 0x08, 0x92, 0xf9, 0x7d, 0xe7, 0x32,
+ 0x85, 0x87, 0x85, 0x69, 0xb9, 0x02, 0x0b, 0x17, 0xbc, 0x10, 0x2f, 0xd3, 0xd5, 0x97, 0xbf, 0x55,
+ 0x20, 0x23, 0x03, 0x1e, 0x3f, 0x7a, 0x79, 0x98, 0xad, 0x9b, 0x6d, 0xcb, 0x68, 0x18, 0x58, 0x53,
+ 0xd8, 0xa9, 0xda, 0x32, 0xeb, 0x96, 0x81, 0xed, 0x6a, 0xad, 0x62, 0x36, 0xb4, 0x14, 0x42, 0x50,
+ 0x94, 0xd7, 0x20, 0x5b, 0xcc, 0x68, 0x69, 0x34, 0x07, 0x39, 0x76, 0x49, 0x4a, 0x04, 0xd3, 0x68,
+ 0x11, 0x16, 0x70, 0x73, 0xd7, 0x32, 0xec, 0x6a, 0xb3, 0xb1, 0x65, 0x6e, 0xef, 0xe2, 0x8a, 0x65,
+ 0x36, 0x1b, 0x9a, 0xca, 0xf0, 0xf6, 0x4c, 0x6c, 0xed, 0x56, 0xea, 0x76, 0xad, 0xd9, 0xb6, 0xb4,
+ 0x19, 0xb6, 0x78, 0xb5, 0xbe, 0xdb, 0x66, 0x76, 0x19, 0xf6, 0xa2, 0x18, 0x3d, 0x61, 0xd7, 0x7e,
+ 0x51, 0x6c, 0xe8, 0xbf, 0xbc, 0xbc, 0xa5, 0xfc, 0xfa, 0xf2, 0x96, 0xf2, 0xfb, 0xcb, 0x5b, 0xca,
+ 0x67, 0x4b, 0x62, 0xaf, 0xdd, 0x60, 0xd5, 0x09, 0xdd, 0xd5, 0x0b, 0xde, 0xf5, 0x9d, 0x19, 0x4e,
+ 0x55, 0xeb, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x2b, 0xd5, 0x17, 0x40, 0x56, 0x10, 0x00, 0x00,
}
func (m *EnvoyFilter) Marshal() (dAtA []byte, err error) {
@@ -1850,9 +2035,9 @@ func (m *EnvoyFilter) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintEnvoyFilter(dAtA, i, uint64(m.WorkloadSelector.Size()))
- n1, err1 := m.WorkloadSelector.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := m.WorkloadSelector.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
}
@@ -1982,9 +2167,9 @@ func (m *EnvoyFilter_Filter) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintEnvoyFilter(dAtA, i, uint64(m.ListenerMatch.Size()))
- n2, err2 := m.ListenerMatch.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := m.ListenerMatch.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
}
@@ -1992,9 +2177,9 @@ func (m *EnvoyFilter_Filter) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintEnvoyFilter(dAtA, i, uint64(m.InsertPosition.Size()))
- n3, err3 := m.InsertPosition.MarshalTo(dAtA[i:])
- if err3 != nil {
- return 0, err3
+ n3, err := m.InsertPosition.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n3
}
@@ -2013,9 +2198,9 @@ func (m *EnvoyFilter_Filter) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
i++
i = encodeVarintEnvoyFilter(dAtA, i, uint64(m.FilterConfig.Size()))
- n4, err4 := m.FilterConfig.MarshalTo(dAtA[i:])
- if err4 != nil {
- return 0, err4
+ n4, err := m.FilterConfig.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n4
}
@@ -2025,6 +2210,67 @@ func (m *EnvoyFilter_Filter) MarshalTo(dAtA []byte) (int, error) {
return i, nil
}
+func (m *EnvoyFilter_ProxyMatch) 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 *EnvoyFilter_ProxyMatch) MarshalTo(dAtA []byte) (int, error) {
+ var i int
+ _ = i
+ var l int
+ _ = l
+ if m.VersionMatch != nil {
+ nn5, err := m.VersionMatch.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
+ }
+ i += nn5
+ }
+ if len(m.Metadata) > 0 {
+ for k, _ := range m.Metadata {
+ dAtA[i] = 0x1a
+ i++
+ v := m.Metadata[k]
+ mapSize := 1 + len(k) + sovEnvoyFilter(uint64(len(k))) + 1 + len(v) + sovEnvoyFilter(uint64(len(v)))
+ i = encodeVarintEnvoyFilter(dAtA, i, uint64(mapSize))
+ dAtA[i] = 0xa
+ i++
+ i = encodeVarintEnvoyFilter(dAtA, i, uint64(len(k)))
+ i += copy(dAtA[i:], k)
+ dAtA[i] = 0x12
+ i++
+ i = encodeVarintEnvoyFilter(dAtA, i, uint64(len(v)))
+ i += copy(dAtA[i:], v)
+ }
+ }
+ if m.XXX_unrecognized != nil {
+ i += copy(dAtA[i:], m.XXX_unrecognized)
+ }
+ return i, nil
+}
+
+func (m *EnvoyFilter_ProxyMatch_VersionGe) MarshalTo(dAtA []byte) (int, error) {
+ i := 0
+ dAtA[i] = 0xa
+ i++
+ i = encodeVarintEnvoyFilter(dAtA, i, uint64(len(m.VersionGe)))
+ i += copy(dAtA[i:], m.VersionGe)
+ return i, nil
+}
+func (m *EnvoyFilter_ProxyMatch_VersionEq) MarshalTo(dAtA []byte) (int, error) {
+ i := 0
+ dAtA[i] = 0x12
+ i++
+ i = encodeVarintEnvoyFilter(dAtA, i, uint64(len(m.VersionEq)))
+ i += copy(dAtA[i:], m.VersionEq)
+ return i, nil
+}
func (m *EnvoyFilter_ClusterMatch) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -2105,11 +2351,11 @@ func (m *EnvoyFilter_RouteConfigurationMatch) MarshalTo(dAtA []byte) (int, error
dAtA[i] = 0x22
i++
i = encodeVarintEnvoyFilter(dAtA, i, uint64(m.Vhost.Size()))
- n5, err5 := m.Vhost.MarshalTo(dAtA[i:])
- if err5 != nil {
- return 0, err5
+ n6, err := m.Vhost.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
- i += n5
+ i += n6
}
if len(m.Name) > 0 {
dAtA[i] = 0x2a
@@ -2180,11 +2426,11 @@ func (m *EnvoyFilter_ListenerMatch) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintEnvoyFilter(dAtA, i, uint64(m.FilterChain.Size()))
- n6, err6 := m.FilterChain.MarshalTo(dAtA[i:])
- if err6 != nil {
- return 0, err6
+ n7, err := m.FilterChain.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
- i += n6
+ i += n7
}
if len(m.Name) > 0 {
dAtA[i] = 0x22
@@ -2229,11 +2475,11 @@ func (m *EnvoyFilter_ListenerMatch_FilterChainMatch) MarshalTo(dAtA []byte) (int
dAtA[i] = 0x1a
i++
i = encodeVarintEnvoyFilter(dAtA, i, uint64(m.Filter.Size()))
- n7, err7 := m.Filter.MarshalTo(dAtA[i:])
- if err7 != nil {
- return 0, err7
+ n8, err := m.Filter.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
- i += n7
+ i += n8
}
if m.XXX_unrecognized != nil {
i += copy(dAtA[i:], m.XXX_unrecognized)
@@ -2266,11 +2512,11 @@ func (m *EnvoyFilter_ListenerMatch_FilterMatch) MarshalTo(dAtA []byte) (int, err
dAtA[i] = 0x12
i++
i = encodeVarintEnvoyFilter(dAtA, i, uint64(m.SubFilter.Size()))
- n8, err8 := m.SubFilter.MarshalTo(dAtA[i:])
- if err8 != nil {
- return 0, err8
+ n9, err := m.SubFilter.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
- i += n8
+ i += n9
}
if m.XXX_unrecognized != nil {
i += copy(dAtA[i:], m.XXX_unrecognized)
@@ -2329,11 +2575,11 @@ func (m *EnvoyFilter_Patch) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintEnvoyFilter(dAtA, i, uint64(m.Value.Size()))
- n9, err9 := m.Value.MarshalTo(dAtA[i:])
- if err9 != nil {
- return 0, err9
+ n10, err := m.Value.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
- i += n9
+ i += n10
}
if m.XXX_unrecognized != nil {
i += copy(dAtA[i:], m.XXX_unrecognized)
@@ -2361,12 +2607,22 @@ func (m *EnvoyFilter_EnvoyConfigObjectMatch) MarshalTo(dAtA []byte) (int, error)
i++
i = encodeVarintEnvoyFilter(dAtA, i, uint64(m.Context))
}
+ if m.Proxy != nil {
+ dAtA[i] = 0x12
+ i++
+ i = encodeVarintEnvoyFilter(dAtA, i, uint64(m.Proxy.Size()))
+ n11, err := m.Proxy.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
+ }
+ i += n11
+ }
if m.ObjectTypes != nil {
- nn10, err10 := m.ObjectTypes.MarshalTo(dAtA[i:])
- if err10 != nil {
- return 0, err10
+ nn12, err := m.ObjectTypes.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
- i += nn10
+ i += nn12
}
if m.XXX_unrecognized != nil {
i += copy(dAtA[i:], m.XXX_unrecognized)
@@ -2377,42 +2633,42 @@ func (m *EnvoyFilter_EnvoyConfigObjectMatch) MarshalTo(dAtA []byte) (int, error)
func (m *EnvoyFilter_EnvoyConfigObjectMatch_Listener) MarshalTo(dAtA []byte) (int, error) {
i := 0
if m.Listener != nil {
- dAtA[i] = 0x12
+ dAtA[i] = 0x1a
i++
i = encodeVarintEnvoyFilter(dAtA, i, uint64(m.Listener.Size()))
- n11, err11 := m.Listener.MarshalTo(dAtA[i:])
- if err11 != nil {
- return 0, err11
+ n13, err := m.Listener.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
- i += n11
+ i += n13
}
return i, nil
}
func (m *EnvoyFilter_EnvoyConfigObjectMatch_RouteConfiguration) MarshalTo(dAtA []byte) (int, error) {
i := 0
if m.RouteConfiguration != nil {
- dAtA[i] = 0x1a
+ dAtA[i] = 0x22
i++
i = encodeVarintEnvoyFilter(dAtA, i, uint64(m.RouteConfiguration.Size()))
- n12, err12 := m.RouteConfiguration.MarshalTo(dAtA[i:])
- if err12 != nil {
- return 0, err12
+ n14, err := m.RouteConfiguration.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
- i += n12
+ i += n14
}
return i, nil
}
func (m *EnvoyFilter_EnvoyConfigObjectMatch_Cluster) MarshalTo(dAtA []byte) (int, error) {
i := 0
if m.Cluster != nil {
- dAtA[i] = 0x22
+ dAtA[i] = 0x2a
i++
i = encodeVarintEnvoyFilter(dAtA, i, uint64(m.Cluster.Size()))
- n13, err13 := m.Cluster.MarshalTo(dAtA[i:])
- if err13 != nil {
- return 0, err13
+ n15, err := m.Cluster.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
- i += n13
+ i += n15
}
return i, nil
}
@@ -2440,21 +2696,21 @@ func (m *EnvoyFilter_EnvoyConfigObjectPatch) MarshalTo(dAtA []byte) (int, error)
dAtA[i] = 0x12
i++
i = encodeVarintEnvoyFilter(dAtA, i, uint64(m.Match.Size()))
- n14, err14 := m.Match.MarshalTo(dAtA[i:])
- if err14 != nil {
- return 0, err14
+ n16, err := m.Match.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
- i += n14
+ i += n16
}
if m.Patch != nil {
dAtA[i] = 0x1a
i++
i = encodeVarintEnvoyFilter(dAtA, i, uint64(m.Patch.Size()))
- n15, err15 := m.Patch.MarshalTo(dAtA[i:])
- if err15 != nil {
- return 0, err15
+ n17, err := m.Patch.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
- i += n15
+ i += n17
}
if m.XXX_unrecognized != nil {
i += copy(dAtA[i:], m.XXX_unrecognized)
@@ -2588,6 +2844,49 @@ func (m *EnvoyFilter_Filter) Size() (n int) {
return n
}
+func (m *EnvoyFilter_ProxyMatch) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.VersionMatch != nil {
+ n += m.VersionMatch.Size()
+ }
+ if len(m.Metadata) > 0 {
+ for k, v := range m.Metadata {
+ _ = k
+ _ = v
+ mapEntrySize := 1 + len(k) + sovEnvoyFilter(uint64(len(k))) + 1 + len(v) + sovEnvoyFilter(uint64(len(v)))
+ n += mapEntrySize + 1 + sovEnvoyFilter(uint64(mapEntrySize))
+ }
+ }
+ if m.XXX_unrecognized != nil {
+ n += len(m.XXX_unrecognized)
+ }
+ return n
+}
+
+func (m *EnvoyFilter_ProxyMatch_VersionGe) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.VersionGe)
+ n += 1 + l + sovEnvoyFilter(uint64(l))
+ return n
+}
+func (m *EnvoyFilter_ProxyMatch_VersionEq) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.VersionEq)
+ n += 1 + l + sovEnvoyFilter(uint64(l))
+ return n
+}
func (m *EnvoyFilter_ClusterMatch) Size() (n int) {
if m == nil {
return 0
@@ -2777,6 +3076,10 @@ func (m *EnvoyFilter_EnvoyConfigObjectMatch) Size() (n int) {
if m.Context != 0 {
n += 1 + sovEnvoyFilter(uint64(m.Context))
}
+ if m.Proxy != nil {
+ l = m.Proxy.Size()
+ n += 1 + l + sovEnvoyFilter(uint64(l))
+ }
if m.ObjectTypes != nil {
n += m.ObjectTypes.Size()
}
@@ -3636,6 +3939,251 @@ func (m *EnvoyFilter_Filter) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *EnvoyFilter_ProxyMatch) 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 ErrIntOverflowEnvoyFilter
+ }
+ 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: ProxyMatch: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ProxyMatch: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field VersionGe", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEnvoyFilter
+ }
+ 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 ErrInvalidLengthEnvoyFilter
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthEnvoyFilter
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.VersionMatch = &EnvoyFilter_ProxyMatch_VersionGe{string(dAtA[iNdEx:postIndex])}
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field VersionEq", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEnvoyFilter
+ }
+ 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 ErrInvalidLengthEnvoyFilter
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthEnvoyFilter
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.VersionMatch = &EnvoyFilter_ProxyMatch_VersionEq{string(dAtA[iNdEx:postIndex])}
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEnvoyFilter
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthEnvoyFilter
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthEnvoyFilter
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Metadata == nil {
+ m.Metadata = 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 ErrIntOverflowEnvoyFilter
+ }
+ 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 ErrIntOverflowEnvoyFilter
+ }
+ 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 ErrInvalidLengthEnvoyFilter
+ }
+ postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthEnvoyFilter
+ }
+ 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 ErrIntOverflowEnvoyFilter
+ }
+ 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 ErrInvalidLengthEnvoyFilter
+ }
+ postStringIndexmapvalue := iNdEx + intStringLenmapvalue
+ if postStringIndexmapvalue < 0 {
+ return ErrInvalidLengthEnvoyFilter
+ }
+ if postStringIndexmapvalue > l {
+ return io.ErrUnexpectedEOF
+ }
+ mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])
+ iNdEx = postStringIndexmapvalue
+ } else {
+ iNdEx = entryPreIndex
+ skippy, err := skipEnvoyFilter(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if skippy < 0 {
+ return ErrInvalidLengthEnvoyFilter
+ }
+ if (iNdEx + skippy) > postIndex {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+ m.Metadata[mapkey] = mapvalue
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipEnvoyFilter(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if skippy < 0 {
+ return ErrInvalidLengthEnvoyFilter
+ }
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthEnvoyFilter
+ }
+ 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 *EnvoyFilter_ClusterMatch) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -4789,6 +5337,42 @@ func (m *EnvoyFilter_EnvoyConfigObjectMatch) Unmarshal(dAtA []byte) error {
}
}
case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Proxy", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEnvoyFilter
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthEnvoyFilter
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthEnvoyFilter
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Proxy == nil {
+ m.Proxy = &EnvoyFilter_ProxyMatch{}
+ }
+ if err := m.Proxy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Listener", wireType)
}
@@ -4823,7 +5407,7 @@ func (m *EnvoyFilter_EnvoyConfigObjectMatch) Unmarshal(dAtA []byte) error {
}
m.ObjectTypes = &EnvoyFilter_EnvoyConfigObjectMatch_Listener{v}
iNdEx = postIndex
- case 3:
+ case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field RouteConfiguration", wireType)
}
@@ -4858,7 +5442,7 @@ func (m *EnvoyFilter_EnvoyConfigObjectMatch) Unmarshal(dAtA []byte) error {
}
m.ObjectTypes = &EnvoyFilter_EnvoyConfigObjectMatch_RouteConfiguration{v}
iNdEx = postIndex
- case 4:
+ case 5:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Cluster", wireType)
}
diff --git a/vendor/istio.io/api/networking/v1alpha3/envoy_filter.pb.html b/vendor/istio.io/api/networking/v1alpha3/envoy_filter.pb.html
index d7e0cb4a30f9..7ee91c6b1342 100644
--- a/vendor/istio.io/api/networking/v1alpha3/envoy_filter.pb.html
+++ b/vendor/istio.io/api/networking/v1alpha3/envoy_filter.pb.html
@@ -4,7 +4,7 @@
location: https://istio.io/docs/reference/config/networking/v1alpha3/envoy-filter.html
layout: protoc-gen-docs
generator: protoc-gen-docs
-number_of_entries: 18
+number_of_entries: 19
---
EnvoyFilter
provides a mechanism to customize the Envoy
configuration generated by Istio Pilot. Use EnvoyFilter to modify
@@ -419,6 +419,9 @@
EnvoyFilter.Deprecated
EnvoyFilter.EnvoyConfigObjectMatch
+One or more match conditions to be met before a patch is applied
+to the generated configuration for a given proxy.
+
@@ -432,24 +435,42 @@ EnvoyFilter.EnvoyConfigObjectMatch
context |
EnvoyFilter.PatchContext |
+ The specific config generation context to match on. Istio Pilot
+generates envoy configuration in the context of a gateway,
+inbound traffic to sidecar and outbound traffic from sidecar.
+
+ |
+
+
+proxy |
+EnvoyFilter.ProxyMatch |
+
+ Match on properties associated with a proxy.
+
|
listener |
EnvoyFilter.ListenerMatch (oneof) |
+ Match on envoy listener attributes.
+
|
routeConfiguration |
EnvoyFilter.RouteConfigurationMatch (oneof) |
+ Match on envoy HTTP route configuration attributes.
+
|
cluster |
EnvoyFilter.ClusterMatch (oneof) |
+ Match on envoy cluster attributes.
+
|
@@ -604,16 +625,6 @@ EnvoyFilter.ListenerMatch
inbound listeners are generated for the instance/pod ports, only
service ports should be used to match listeners.
-
-
-
-portName |
-string |
-
- Instead of using specific port numbers, a set of ports matching
-a given service’s port name can be selected. Matching is case
-insensitive.
-
|
@@ -906,6 +917,62 @@ EnvoyFilter.PatchContext
Gateway listener/route/cluster.
+ |
+
+
+
+
+EnvoyFilter.ProxyMatch
+
+One or more properties of the proxy to match on.
+
+
+
+
+Field |
+Type |
+Description |
+
+
+
+
+versionGe |
+string (oneof) |
+
+ Version restricts the patches to sidecars or gateways with
+from a specific version of Istio. The Istio version for a given
+proxy is obtained from the node metadata field ISTIOVERSION
+supplied by the proxy when connecting to Pilot. This value is
+embedded as an environment variable (ISTIOMETAISTIOVERSION) in
+the Istio proxy docker image. Custom proxy implementations should
+provide this metadata variable to take advantage of the Istio
+version check option.
+
+Checks if the Istio version in the proxy is greater than or
+equal to the specified value.
+
+ |
+
+
+versionEq |
+string (oneof) |
+
+ Checks if the Istio version in the proxy is equal to the
+exact version specified.
+
+ |
+
+
+metadata |
+map<string, string> |
+
+ Match on the node metadata supplied by a proxy when connecting
+to Istio Pilot. Note that while Envoy’s node metadata is of
+type Struct, only string key-value pairs are processed by
+Pilot. All keys specified in the metadata must match with exact
+values. The match will fail if any of the specified keys are
+absent or the values fail to match.
+
|
diff --git a/vendor/istio.io/api/networking/v1alpha3/envoy_filter.proto b/vendor/istio.io/api/networking/v1alpha3/envoy_filter.proto
index 6e2ecac7ccc9..2f62de2b881b 100644
--- a/vendor/istio.io/api/networking/v1alpha3/envoy_filter.proto
+++ b/vendor/istio.io/api/networking/v1alpha3/envoy_filter.proto
@@ -366,6 +366,35 @@ message EnvoyFilter {
GATEWAY = 3;
};
+ // One or more properties of the proxy to match on.
+ message ProxyMatch {
+ oneof version_match {
+ // Version restricts the patches to sidecars or gateways with
+ // from a specific version of Istio. The Istio version for a given
+ // proxy is obtained from the node metadata field ISTIO_VERSION
+ // supplied by the proxy when connecting to Pilot. This value is
+ // embedded as an environment variable (ISTIO_META_ISTIO_VERSION) in
+ // the Istio proxy docker image. Custom proxy implementations should
+ // provide this metadata variable to take advantage of the Istio
+ // version check option.
+ //
+ // Checks if the Istio version in the proxy is greater than or
+ // equal to the specified value.
+ string version_ge = 1;
+ // Checks if the Istio version in the proxy is equal to the
+ // exact version specified.
+ string version_eq = 2;
+ }
+
+ // Match on the node metadata supplied by a proxy when connecting
+ // to Istio Pilot. Note that while Envoy's node metadata is of
+ // type Struct, only string key-value pairs are processed by
+ // Pilot. All keys specified in the metadata must match with exact
+ // values. The match will fail if any of the specified keys are
+ // absent or the values fail to match.
+ map metadata = 3;
+ };
+
// Conditions specified in ClusterMatch must be met for the patch
// to be applied to a cluster.
message ClusterMatch {
@@ -490,6 +519,8 @@ message EnvoyFilter {
// Instead of using specific port numbers, a set of ports matching
// a given service's port name can be selected. Matching is case
// insensitive.
+ // Not implemented.
+ // $hide_from_docs
string port_name = 2;
// Match a specific filter chain in a listener. If specified, the
@@ -555,13 +586,24 @@ message EnvoyFilter {
google.protobuf.Struct value = 2;
};
+ // One or more match conditions to be met before a patch is applied
+ // to the generated configuration for a given proxy.
message EnvoyConfigObjectMatch {
+ // The specific config generation context to match on. Istio Pilot
+ // generates envoy configuration in the context of a gateway,
+ // inbound traffic to sidecar and outbound traffic from sidecar.
PatchContext context = 1;
+ // Match on properties associated with a proxy.
+ ProxyMatch proxy = 2;
+
oneof object_types {
- ListenerMatch listener = 2;
- RouteConfigurationMatch route_configuration = 3;
- ClusterMatch cluster = 4;
+ // Match on envoy listener attributes.
+ ListenerMatch listener = 3;
+ // Match on envoy HTTP route configuration attributes.
+ RouteConfigurationMatch route_configuration = 4;
+ // Match on envoy cluster attributes.
+ ClusterMatch cluster = 5;
}
};
diff --git a/vendor/istio.io/api/networking/v1alpha3/gateway.json b/vendor/istio.io/api/networking/v1alpha3/gateway.json
new file mode 100644
index 000000000000..21ebc6a5fe53
--- /dev/null
+++ b/vendor/istio.io/api/networking/v1alpha3/gateway.json
@@ -0,0 +1,176 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Configuration affecting edge load balancer.",
+ "version": "v1alpha3"
+ },
+ "components": {
+ "schemas": {
+ "istio.networking.v1alpha3.Gateway": {
+ "type": "object",
+ "required": [
+ "selector"
+ ],
+ "properties": {
+ "servers": {
+ "description": "REQUIRED: A list of server specifications.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Server"
+ }
+ },
+ "selector": {
+ "description": "REQUIRED: One or more labels that indicate a specific set of pods/VMs on which this gateway configuration should be applied. The scope of label search is restricted to the configuration namespace in which the the resource is present. In other words, the Gateway resource must reside in the same namespace as the gateway workload instance.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.networking.v1alpha3.Server": {
+ "description": "`Server` describes the properties of the proxy on a given load balancer port. For example,",
+ "type": "object",
+ "properties": {
+ "tls": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Server.TLSOptions"
+ },
+ "port": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Port"
+ },
+ "bind": {
+ "description": "The ip or the Unix domain socket to which the listener should be bound to. Format: `x.x.x.x` or `unix:///path/to/uds` or `unix://@foobar` (Linux abstract namespace). When using Unix domain sockets, the port number should be 0.",
+ "type": "string",
+ "format": "string"
+ },
+ "hosts": {
+ "description": "REQUIRED. One or more hosts exposed by this gateway. While typically applicable to HTTP services, it can also be used for TCP services using TLS with SNI. A host is specified as a `dnsName` with an optional `namespace/` prefix. The `dnsName` should be specified using FQDN format, optionally including a wildcard character in the left-most component (e.g., `prod/*.example.com`). Set the `dnsName` to `*` to select all `VirtualService` hosts from the specified namespace (e.g.,`prod/*`). If no `namespace/` is specified, the `VirtualService` hosts will be selected from any available namespace. Any associated `DestinationRule` in the same namespace will also be used.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "defaultEndpoint": {
+ "description": "The loopback IP endpoint or Unix domain socket to which traffic should be forwarded to by default. Format should be `127.0.0.1:PORT` or `unix:///path/to/socket` or `unix://@foobar` (Linux abstract namespace).",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.Port": {
+ "description": "Port describes the properties of a specific port of a service.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Label assigned to the port.",
+ "type": "string",
+ "format": "string"
+ },
+ "number": {
+ "description": "REQUIRED: A valid non-negative integer port number.",
+ "type": "integer"
+ },
+ "protocol": {
+ "description": "REQUIRED: The protocol exposed on the port. MUST BE one of HTTP|HTTPS|GRPC|HTTP2|MONGO|TCP|TLS. TLS implies the connection will be routed based on the SNI header to the destination without terminating the TLS connection.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.Server.TLSOptions": {
+ "type": "object",
+ "properties": {
+ "mode": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Server.TLSOptions.TLSmode"
+ },
+ "privateKey": {
+ "description": "REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file holding the server's private key.",
+ "type": "string",
+ "format": "string"
+ },
+ "caCertificates": {
+ "description": "REQUIRED if mode is `MUTUAL`. The path to a file containing certificate authority certificates to use in verifying a presented client side certificate.",
+ "type": "string",
+ "format": "string"
+ },
+ "subjectAltNames": {
+ "description": "A list of alternate names to verify the subject identity in the certificate presented by the client.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "httpsRedirect": {
+ "description": "If set to true, the load balancer will send a 301 redirect for all http connections, asking the clients to use HTTPS.",
+ "type": "boolean"
+ },
+ "serverCertificate": {
+ "description": "REQUIRED if mode is `SIMPLE` or `MUTUAL`. The path to the file holding the server-side TLS certificate to use.",
+ "type": "string",
+ "format": "string"
+ },
+ "credentialName": {
+ "description": "The credentialName stands for a unique identifier that can be used to identify the serverCertificate and the privateKey. The credentialName appended with suffix \"-cacert\" is used to identify the CaCertificates associated with this server. Gateway workloads capable of fetching credentials from a remote credential store such as Kubernetes secrets, will be configured to retrieve the serverCertificate and the privateKey using credentialName, instead of using the file system paths specified above. If using mutual TLS, gateway workload instances will retrieve the CaCertificates using credentialName-cacert. The semantics of the name are platform dependent. In Kubernetes, the default Istio supplied credential server expects the credentialName to match the name of the Kubernetes secret that holds the server certificate, the private key, and the CA certificate (if using mutual TLS). Set the `ISTIO_META_USER_SDS` metadata variable in the gateway's proxy to enable the dynamic credential fetching feature.",
+ "type": "string",
+ "format": "string"
+ },
+ "verifyCertificateSpki": {
+ "description": "An optional list of base64-encoded SHA-256 hashes of the SKPIs of authorized client certificates. Note: When both verify_certificate_hash and verify_certificate_spki are specified, a hash matching either value will result in the certificate being accepted.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "verifyCertificateHash": {
+ "description": "An optional list of hex-encoded SHA-256 hashes of the authorized client certificates. Both simple and colon separated formats are acceptable. Note: When both verify_certificate_hash and verify_certificate_spki are specified, a hash matching either value will result in the certificate being accepted.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "minProtocolVersion": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol"
+ },
+ "maxProtocolVersion": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol"
+ },
+ "cipherSuites": {
+ "description": "Optional: If specified, only support the specified cipher list. Otherwise default to the default cipher list supported by Envoy.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.networking.v1alpha3.Server.TLSOptions.TLSmode": {
+ "description": "TLS modes enforced by the proxy",
+ "enum": [
+ "PASSTHROUGH",
+ "SIMPLE",
+ "MUTUAL",
+ "AUTO_PASSTHROUGH",
+ "ISTIO_MUTUAL"
+ ],
+ "default": "PASSTHROUGH"
+ },
+ "istio.networking.v1alpha3.Server.TLSOptions.TLSProtocol": {
+ "description": "TLS protocol versions.",
+ "enum": [
+ "TLS_AUTO",
+ "TLSV1_0",
+ "TLSV1_1",
+ "TLSV1_2",
+ "TLSV1_3"
+ ],
+ "default": "TLS_AUTO"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/vendor/istio.io/api/networking/v1alpha3/gateway.pb.go b/vendor/istio.io/api/networking/v1alpha3/gateway.pb.go
index 0a560b6566ca..796053a1682d 100644
--- a/vendor/istio.io/api/networking/v1alpha3/gateway.pb.go
+++ b/vendor/istio.io/api/networking/v1alpha3/gateway.pb.go
@@ -203,8 +203,8 @@ const (
Server_TLSOptions_PASSTHROUGH Server_TLSOptions_TLSmode = 0
// Secure connections with standard TLS semantics.
Server_TLSOptions_SIMPLE Server_TLSOptions_TLSmode = 1
- // Secure connections to the upstream using mutual TLS by presenting
- // client certificates for authentication.
+ // Secure connections to the downstream using mutual TLS by presenting
+ // server certificates for authentication.
Server_TLSOptions_MUTUAL Server_TLSOptions_TLSmode = 2
// Similar to the passthrough mode, except servers with this TLS mode
// do not require an associated VirtualService to map from the SNI
@@ -217,6 +217,13 @@ const (
// their respective endpoints. Use of this mode assumes that both the
// source and the destination are using Istio mTLS to secure traffic.
Server_TLSOptions_AUTO_PASSTHROUGH Server_TLSOptions_TLSmode = 3
+ // Secure connections from the downstream using mutual TLS by presenting
+ // server certificates for authentication.
+ // Compared to Mutual mode, this mode uses certificates, representing
+ // gateway workload identity, generated automatically by Istio for
+ // mTLS authentication. When this mode is used, all other fields in
+ // `TLSOptions` should be empty.
+ Server_TLSOptions_ISTIO_MUTUAL Server_TLSOptions_TLSmode = 4
)
var Server_TLSOptions_TLSmode_name = map[int32]string{
@@ -224,6 +231,7 @@ var Server_TLSOptions_TLSmode_name = map[int32]string{
1: "SIMPLE",
2: "MUTUAL",
3: "AUTO_PASSTHROUGH",
+ 4: "ISTIO_MUTUAL",
}
var Server_TLSOptions_TLSmode_value = map[string]int32{
@@ -231,6 +239,7 @@ var Server_TLSOptions_TLSmode_value = map[string]int32{
"SIMPLE": 1,
"MUTUAL": 2,
"AUTO_PASSTHROUGH": 3,
+ "ISTIO_MUTUAL": 4,
}
func (x Server_TLSOptions_TLSmode) String() string {
@@ -557,6 +566,19 @@ type Server_TLSOptions struct {
// A list of alternate names to verify the subject identity in the
// certificate presented by the client.
SubjectAltNames []string `protobuf:"bytes,6,rep,name=subject_alt_names,json=subjectAltNames,proto3" json:"subject_alt_names,omitempty"`
+ // An optional list of base64-encoded SHA-256 hashes of the SKPIs of
+ // authorized client certificates.
+ // Note: When both verify_certificate_hash and verify_certificate_spki
+ // are specified, a hash matching either value will result in the
+ // certificate being accepted.
+ VerifyCertificateSpki []string `protobuf:"bytes,11,rep,name=verify_certificate_spki,json=verifyCertificateSpki,proto3" json:"verify_certificate_spki,omitempty"`
+ // An optional list of hex-encoded SHA-256 hashes of the
+ // authorized client certificates. Both simple and colon separated
+ // formats are acceptable.
+ // Note: When both verify_certificate_hash and verify_certificate_spki
+ // are specified, a hash matching either value will result in the
+ // certificate being accepted.
+ VerifyCertificateHash []string `protobuf:"bytes,12,rep,name=verify_certificate_hash,json=verifyCertificateHash,proto3" json:"verify_certificate_hash,omitempty"`
// Optional: Minimum TLS protocol version.
MinProtocolVersion Server_TLSOptions_TLSProtocol `protobuf:"varint,7,opt,name=min_protocol_version,json=minProtocolVersion,proto3,enum=istio.networking.v1alpha3.Server_TLSOptions_TLSProtocol" json:"min_protocol_version,omitempty"`
// Optional: Maximum TLS protocol version.
@@ -651,6 +673,20 @@ func (m *Server_TLSOptions) GetSubjectAltNames() []string {
return nil
}
+func (m *Server_TLSOptions) GetVerifyCertificateSpki() []string {
+ if m != nil {
+ return m.VerifyCertificateSpki
+ }
+ return nil
+}
+
+func (m *Server_TLSOptions) GetVerifyCertificateHash() []string {
+ if m != nil {
+ return m.VerifyCertificateHash
+ }
+ return nil
+}
+
func (m *Server_TLSOptions) GetMinProtocolVersion() Server_TLSOptions_TLSProtocol {
if m != nil {
return m.MinProtocolVersion
@@ -755,50 +791,53 @@ func init() {
func init() { proto.RegisterFile("networking/v1alpha3/gateway.proto", fileDescriptor_067d98d02f84cc0b) }
var fileDescriptor_067d98d02f84cc0b = []byte{
- // 674 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0x5d, 0x4f, 0x1a, 0x4d,
- 0x14, 0x76, 0x01, 0xf9, 0x38, 0x88, 0xac, 0x13, 0xf3, 0x66, 0x5f, 0x2f, 0xfc, 0xa0, 0x69, 0x6a,
- 0x9b, 0x76, 0x51, 0xe8, 0x85, 0xa9, 0x49, 0x13, 0xda, 0x18, 0x69, 0x8a, 0x42, 0x76, 0xc1, 0x8b,
- 0xde, 0x6c, 0x86, 0x65, 0x94, 0xd1, 0x65, 0x67, 0x33, 0x33, 0xa0, 0xfc, 0xb3, 0xfe, 0x84, 0x5e,
- 0xb6, 0xff, 0xa0, 0xb1, 0x7f, 0xa4, 0xd9, 0xd9, 0x41, 0xe8, 0x97, 0x8d, 0xe9, 0xdd, 0x39, 0xcf,
- 0x3c, 0xcf, 0x73, 0xe6, 0x9c, 0xf9, 0x80, 0x9d, 0x90, 0xc8, 0x6b, 0xc6, 0xaf, 0x68, 0x78, 0x51,
- 0x9d, 0xec, 0xe3, 0x20, 0x1a, 0xe2, 0x7a, 0xf5, 0x02, 0x4b, 0x72, 0x8d, 0xa7, 0x76, 0xc4, 0x99,
- 0x64, 0xe8, 0x7f, 0x2a, 0x24, 0x65, 0xf6, 0x9c, 0x68, 0xcf, 0x88, 0x95, 0x2f, 0x06, 0xe4, 0x8e,
- 0x13, 0x32, 0x3a, 0x84, 0x9c, 0x20, 0x7c, 0x42, 0xb8, 0xb0, 0x8c, 0xed, 0xf4, 0x6e, 0xb1, 0xb6,
- 0x63, 0xff, 0x51, 0x68, 0xbb, 0x8a, 0xe9, 0xcc, 0x14, 0xa8, 0x05, 0x79, 0x41, 0x02, 0xe2, 0x4b,
- 0xc6, 0xad, 0x94, 0x52, 0xef, 0xdd, 0xa3, 0xd6, 0x25, 0x6d, 0x57, 0x4b, 0x8e, 0x42, 0xc9, 0xa7,
- 0xce, 0x9d, 0xc3, 0xc6, 0x21, 0x94, 0x7e, 0x58, 0x42, 0x26, 0xa4, 0xaf, 0xc8, 0xd4, 0x32, 0xb6,
- 0x8d, 0xdd, 0x82, 0x13, 0x87, 0x68, 0x1d, 0x96, 0x27, 0x38, 0x18, 0x13, 0x2b, 0xa5, 0xb0, 0x24,
- 0x79, 0x95, 0x3a, 0x30, 0x2a, 0x1f, 0x73, 0x90, 0x4d, 0xb6, 0x87, 0xea, 0x90, 0x89, 0x18, 0x97,
- 0x4a, 0x57, 0xac, 0x6d, 0xdd, 0xb3, 0xa3, 0x0e, 0xe3, 0xd2, 0x51, 0x64, 0x84, 0x20, 0xd3, 0xa7,
- 0xe1, 0xc0, 0xca, 0x28, 0x63, 0x15, 0xc7, 0xd5, 0x86, 0x4c, 0x48, 0xa1, 0x7a, 0x2b, 0x38, 0x49,
- 0x82, 0x5e, 0x43, 0x5a, 0x06, 0xc2, 0x4a, 0x2b, 0xf7, 0xe7, 0x7f, 0x9d, 0x96, 0xdd, 0x6d, 0xb9,
- 0xed, 0x48, 0x52, 0x16, 0x0a, 0x27, 0x16, 0xa2, 0xa7, 0x60, 0x0e, 0xc8, 0x39, 0x1e, 0x07, 0xd2,
- 0x23, 0xe1, 0x20, 0x62, 0x34, 0x94, 0xd6, 0xb2, 0xaa, 0x5a, 0xd6, 0xf8, 0x91, 0x86, 0x37, 0xbe,
- 0x2d, 0x03, 0xcc, 0xe5, 0xe8, 0x31, 0xac, 0x0e, 0xa5, 0x8c, 0x84, 0xc7, 0xc9, 0x80, 0x72, 0xe2,
- 0x27, 0x2d, 0xe6, 0x9d, 0x92, 0x42, 0x1d, 0x0d, 0xa2, 0x26, 0x64, 0x46, 0x6c, 0x90, 0xcc, 0x68,
- 0xb5, 0xf6, 0xf2, 0x21, 0x3b, 0x8c, 0xc3, 0x58, 0xeb, 0x28, 0x07, 0xf4, 0x02, 0x50, 0x72, 0xd4,
- 0x9e, 0x4f, 0xb8, 0xa4, 0xe7, 0xd4, 0xc7, 0x92, 0xa8, 0xce, 0x0b, 0xce, 0x5a, 0xb2, 0xf2, 0x76,
- 0xbe, 0x80, 0xb6, 0xa0, 0x18, 0x71, 0x3a, 0xc1, 0x92, 0x78, 0xf1, 0xb9, 0x25, 0xa3, 0x04, 0x0d,
- 0xbd, 0x27, 0x53, 0xf4, 0x04, 0xca, 0x3e, 0x5e, 0xf4, 0x12, 0xba, 0xf3, 0x55, 0x1f, 0x2f, 0x18,
- 0x09, 0x45, 0xe4, 0x64, 0x40, 0x42, 0x49, 0x71, 0xe0, 0x85, 0x78, 0x44, 0x2c, 0xd0, 0xc4, 0x3b,
- 0xf8, 0x14, 0x8f, 0x08, 0x7a, 0x06, 0x6b, 0x62, 0xdc, 0xbf, 0x24, 0xbe, 0xf4, 0x70, 0x20, 0x15,
- 0x53, 0x58, 0x59, 0x75, 0x5c, 0x65, 0xbd, 0xd0, 0x08, 0x64, 0x4c, 0x15, 0xe8, 0x12, 0xd6, 0x47,
- 0x34, 0xf4, 0xd4, 0xf3, 0xf0, 0x59, 0xe0, 0xc5, 0x57, 0x98, 0xb2, 0xd0, 0xca, 0xa9, 0x39, 0x1d,
- 0x3c, 0x74, 0x4e, 0x1d, 0xed, 0xe3, 0xa0, 0x11, 0x0d, 0x67, 0xc9, 0x59, 0xe2, 0xa9, 0x6a, 0xe1,
- 0x9b, 0x5f, 0x6b, 0xe5, 0xff, 0xb9, 0x16, 0xbe, 0xf9, 0xb9, 0xd6, 0x23, 0x28, 0xf9, 0x34, 0x1a,
- 0x12, 0xee, 0x89, 0x31, 0x8d, 0x67, 0x5a, 0x50, 0xfd, 0xaf, 0x24, 0xa0, 0xab, 0xb0, 0x4a, 0x13,
- 0x72, 0xfa, 0x6c, 0x51, 0x19, 0x8a, 0x9d, 0x86, 0xeb, 0x76, 0x9b, 0x4e, 0xbb, 0x77, 0xdc, 0x34,
- 0x97, 0x10, 0x40, 0xd6, 0x7d, 0x77, 0xd2, 0x69, 0x1d, 0x99, 0x46, 0x1c, 0x9f, 0xf4, 0xba, 0xbd,
- 0x46, 0xcb, 0x4c, 0xa1, 0x75, 0x30, 0x1b, 0xbd, 0x6e, 0xdb, 0x5b, 0x64, 0xa7, 0x2b, 0x6d, 0x28,
- 0x2e, 0xec, 0x08, 0xad, 0x40, 0xbe, 0xdb, 0x72, 0xbd, 0x98, 0x68, 0x2e, 0xa1, 0xa2, 0x2a, 0x73,
- 0xb6, 0xef, 0xed, 0x99, 0xc6, 0x3c, 0xd9, 0x37, 0x53, 0xf3, 0xa4, 0x66, 0xa6, 0xe7, 0x49, 0xdd,
- 0xcc, 0x54, 0x4e, 0x21, 0x13, 0x3f, 0x44, 0xf4, 0x1f, 0x64, 0xc3, 0xf1, 0xa8, 0x4f, 0xb8, 0xba,
- 0xd6, 0x25, 0x47, 0x67, 0x68, 0x03, 0xf2, 0xb3, 0x39, 0xea, 0x77, 0x7f, 0x97, 0xc7, 0xcf, 0x56,
- 0xdd, 0x8e, 0xe4, 0x4e, 0xaa, 0xf8, 0x8d, 0xfd, 0xe9, 0x76, 0xd3, 0xf8, 0x7c, 0xbb, 0x69, 0x7c,
- 0xbd, 0xdd, 0x34, 0x3e, 0x6c, 0x27, 0xa3, 0xa6, 0xac, 0x8a, 0x23, 0x5a, 0xfd, 0xcd, 0xbf, 0xd9,
- 0xcf, 0x2a, 0xb7, 0xfa, 0xf7, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd0, 0x11, 0xfe, 0x50, 0x55, 0x05,
- 0x00, 0x00,
+ // 725 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0xdb, 0x6e, 0xda, 0x4a,
+ 0x14, 0x8d, 0x81, 0x70, 0xd9, 0x40, 0x70, 0x46, 0x39, 0xe7, 0xf8, 0xe4, 0x21, 0x17, 0x8e, 0x8e,
+ 0x9a, 0x56, 0xad, 0x49, 0xa0, 0xaa, 0xa2, 0x46, 0xaa, 0x44, 0xab, 0x28, 0x44, 0x25, 0x01, 0xd9,
+ 0x90, 0x87, 0xbc, 0x58, 0x83, 0x99, 0x84, 0x09, 0xc6, 0xb6, 0x66, 0x06, 0x12, 0x7e, 0xad, 0x5f,
+ 0xd0, 0xc7, 0xf6, 0x0f, 0xaa, 0x48, 0xfd, 0x8f, 0xca, 0xe3, 0x21, 0xd0, 0x4b, 0x52, 0x45, 0x7d,
+ 0xdb, 0x97, 0xb5, 0xd6, 0xde, 0xb3, 0xf7, 0xcc, 0xc0, 0xb6, 0x4f, 0xc4, 0x75, 0xc0, 0x86, 0xd4,
+ 0xbf, 0xac, 0x4c, 0xf6, 0xb0, 0x17, 0x0e, 0x70, 0xad, 0x72, 0x89, 0x05, 0xb9, 0xc6, 0x53, 0x33,
+ 0x64, 0x81, 0x08, 0xd0, 0xbf, 0x94, 0x0b, 0x1a, 0x98, 0x73, 0xa0, 0x39, 0x03, 0x96, 0x3f, 0x6b,
+ 0x90, 0x39, 0x8a, 0xc1, 0xe8, 0x00, 0x32, 0x9c, 0xb0, 0x09, 0x61, 0xdc, 0xd0, 0xb6, 0x92, 0x3b,
+ 0xf9, 0xea, 0xb6, 0x79, 0x2f, 0xd1, 0xb4, 0x25, 0xd2, 0x9a, 0x31, 0x50, 0x13, 0xb2, 0x9c, 0x78,
+ 0xc4, 0x15, 0x01, 0x33, 0x12, 0x92, 0xbd, 0xfb, 0x00, 0x5b, 0x95, 0x34, 0x6d, 0x45, 0x39, 0xf4,
+ 0x05, 0x9b, 0x5a, 0x77, 0x0a, 0xeb, 0x07, 0x50, 0xfc, 0x2e, 0x85, 0x74, 0x48, 0x0e, 0xc9, 0xd4,
+ 0xd0, 0xb6, 0xb4, 0x9d, 0x9c, 0x15, 0x99, 0x68, 0x0d, 0x96, 0x27, 0xd8, 0x1b, 0x13, 0x23, 0x21,
+ 0x63, 0xb1, 0xf3, 0x3a, 0xb1, 0xaf, 0x95, 0x3f, 0x64, 0x21, 0x1d, 0xb7, 0x87, 0x6a, 0x90, 0x0a,
+ 0x03, 0x26, 0x24, 0x2f, 0x5f, 0xdd, 0x7c, 0xa0, 0xa3, 0x76, 0xc0, 0x84, 0x25, 0xc1, 0x08, 0x41,
+ 0xaa, 0x47, 0xfd, 0xbe, 0x91, 0x92, 0xc2, 0xd2, 0x8e, 0xaa, 0x0d, 0x02, 0x2e, 0xb8, 0x3c, 0x5b,
+ 0xce, 0x8a, 0x1d, 0xf4, 0x06, 0x92, 0xc2, 0xe3, 0x46, 0x52, 0xaa, 0x3f, 0xff, 0xed, 0xb4, 0xcc,
+ 0x4e, 0xd3, 0x6e, 0x85, 0x82, 0x06, 0x3e, 0xb7, 0x22, 0x22, 0x7a, 0x0a, 0x7a, 0x9f, 0x5c, 0xe0,
+ 0xb1, 0x27, 0x1c, 0xe2, 0xf7, 0xc3, 0x80, 0xfa, 0xc2, 0x58, 0x96, 0x55, 0x4b, 0x2a, 0x7e, 0xa8,
+ 0xc2, 0xeb, 0x5f, 0xd3, 0x00, 0x73, 0x3a, 0xfa, 0x1f, 0x56, 0x06, 0x42, 0x84, 0xdc, 0x61, 0xa4,
+ 0x4f, 0x19, 0x71, 0xe3, 0x23, 0x66, 0xad, 0xa2, 0x8c, 0x5a, 0x2a, 0x88, 0x1a, 0x90, 0x1a, 0x05,
+ 0xfd, 0x78, 0x46, 0x2b, 0xd5, 0x97, 0x8f, 0xe9, 0x30, 0x32, 0x23, 0xae, 0x25, 0x15, 0xd0, 0x0b,
+ 0x40, 0xf1, 0xaa, 0x1d, 0x97, 0x30, 0x41, 0x2f, 0xa8, 0x8b, 0x05, 0x91, 0x27, 0xcf, 0x59, 0xab,
+ 0x71, 0xe6, 0xdd, 0x3c, 0x81, 0x36, 0x21, 0x1f, 0x32, 0x3a, 0xc1, 0x82, 0x38, 0xd1, 0xde, 0xe2,
+ 0x51, 0x82, 0x0a, 0xbd, 0x27, 0x53, 0xf4, 0x04, 0x4a, 0x2e, 0x5e, 0xd4, 0xe2, 0xea, 0xe4, 0x2b,
+ 0x2e, 0x5e, 0x10, 0xe2, 0x12, 0xc8, 0x48, 0x9f, 0xf8, 0x82, 0x62, 0xcf, 0xf1, 0xf1, 0x88, 0x18,
+ 0xa0, 0x80, 0x77, 0xe1, 0x53, 0x3c, 0x22, 0xe8, 0x19, 0xac, 0xf2, 0x71, 0xef, 0x8a, 0xb8, 0xc2,
+ 0xc1, 0x9e, 0x90, 0x48, 0x6e, 0xa4, 0xe5, 0xba, 0x4a, 0x2a, 0x51, 0xf7, 0x44, 0x04, 0xe5, 0xe8,
+ 0x15, 0xfc, 0x33, 0x21, 0x8c, 0x5e, 0x4c, 0x17, 0x3b, 0x70, 0x78, 0x38, 0xa4, 0x46, 0x5e, 0x32,
+ 0xfe, 0x8a, 0xd3, 0x0b, 0x9d, 0xd8, 0xe1, 0x90, 0xde, 0xc3, 0x1b, 0x60, 0x3e, 0x30, 0x0a, 0xf7,
+ 0xf0, 0x1a, 0x98, 0x0f, 0xd0, 0x15, 0xac, 0x8d, 0xa8, 0xef, 0xc8, 0xe7, 0xe8, 0x06, 0x9e, 0x13,
+ 0x3d, 0x19, 0x1a, 0xf8, 0x46, 0x46, 0xee, 0x65, 0xff, 0xb1, 0x7b, 0x69, 0x2b, 0x1d, 0x0b, 0x8d,
+ 0xa8, 0x3f, 0x73, 0xce, 0x62, 0x4d, 0x59, 0x0b, 0xdf, 0xfc, 0x5c, 0x2b, 0xfb, 0xc7, 0xb5, 0xf0,
+ 0xcd, 0x8f, 0xb5, 0xfe, 0x83, 0xa2, 0x4b, 0xc3, 0x01, 0x61, 0x0e, 0x1f, 0xd3, 0x68, 0x87, 0x39,
+ 0x39, 0x85, 0x42, 0x1c, 0xb4, 0x65, 0xac, 0x7c, 0x0e, 0x19, 0x75, 0x97, 0x50, 0x09, 0xf2, 0xed,
+ 0xba, 0x6d, 0x77, 0x1a, 0x56, 0xab, 0x7b, 0xd4, 0xd0, 0x97, 0x10, 0x40, 0xda, 0x3e, 0x3e, 0x69,
+ 0x37, 0x0f, 0x75, 0x2d, 0xb2, 0x4f, 0xba, 0x9d, 0x6e, 0xbd, 0xa9, 0x27, 0xd0, 0x1a, 0xe8, 0xf5,
+ 0x6e, 0xa7, 0xe5, 0x2c, 0xa2, 0x93, 0x48, 0x87, 0xc2, 0xb1, 0xdd, 0x39, 0x6e, 0x39, 0x0a, 0x97,
+ 0x2a, 0xb7, 0x20, 0xbf, 0xd0, 0x23, 0x2a, 0x40, 0xb6, 0xd3, 0xb4, 0x9d, 0x88, 0xaa, 0x2f, 0xa1,
+ 0xbc, 0x2c, 0x7c, 0xb6, 0xe7, 0xec, 0xea, 0xda, 0xdc, 0xd9, 0xd3, 0x13, 0x73, 0xa7, 0xaa, 0x27,
+ 0xe7, 0x4e, 0x4d, 0x4f, 0x95, 0x4f, 0x21, 0x15, 0x7d, 0x05, 0xe8, 0x6f, 0x48, 0xfb, 0xe3, 0x51,
+ 0x8f, 0x30, 0xf9, 0xb0, 0x8a, 0x96, 0xf2, 0xd0, 0x3a, 0x64, 0x67, 0x93, 0x55, 0x3f, 0xcf, 0x9d,
+ 0x1f, 0x7d, 0x1c, 0xf2, 0x7e, 0xc6, 0xaf, 0x42, 0xda, 0x6f, 0xcd, 0x8f, 0xb7, 0x1b, 0xda, 0xa7,
+ 0xdb, 0x0d, 0xed, 0xcb, 0xed, 0x86, 0x76, 0xbe, 0x15, 0x0f, 0x9f, 0x06, 0x15, 0x1c, 0xd2, 0xca,
+ 0x2f, 0x7e, 0xee, 0x5e, 0x5a, 0xaa, 0xd5, 0xbe, 0x05, 0x00, 0x00, 0xff, 0xff, 0xd4, 0x12, 0xef,
+ 0xc6, 0xd7, 0x05, 0x00, 0x00,
}
func (m *Gateway) Marshal() (dAtA []byte, err error) {
@@ -870,9 +909,9 @@ func (m *Server) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintGateway(dAtA, i, uint64(m.Port.Size()))
- n1, err1 := m.Port.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := m.Port.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
}
@@ -895,9 +934,9 @@ func (m *Server) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintGateway(dAtA, i, uint64(m.Tls.Size()))
- n2, err2 := m.Tls.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := m.Tls.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
}
@@ -1013,6 +1052,36 @@ func (m *Server_TLSOptions) MarshalTo(dAtA []byte) (int, error) {
i = encodeVarintGateway(dAtA, i, uint64(len(m.CredentialName)))
i += copy(dAtA[i:], m.CredentialName)
}
+ if len(m.VerifyCertificateSpki) > 0 {
+ for _, s := range m.VerifyCertificateSpki {
+ dAtA[i] = 0x5a
+ i++
+ l = len(s)
+ for l >= 1<<7 {
+ dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
+ l >>= 7
+ i++
+ }
+ dAtA[i] = uint8(l)
+ i++
+ i += copy(dAtA[i:], s)
+ }
+ }
+ if len(m.VerifyCertificateHash) > 0 {
+ for _, s := range m.VerifyCertificateHash {
+ dAtA[i] = 0x62
+ i++
+ l = len(s)
+ for l >= 1<<7 {
+ dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
+ l >>= 7
+ i++
+ }
+ dAtA[i] = uint8(l)
+ i++
+ i += copy(dAtA[i:], s)
+ }
+ }
if m.XXX_unrecognized != nil {
i += copy(dAtA[i:], m.XXX_unrecognized)
}
@@ -1172,6 +1241,18 @@ func (m *Server_TLSOptions) Size() (n int) {
if l > 0 {
n += 1 + l + sovGateway(uint64(l))
}
+ if len(m.VerifyCertificateSpki) > 0 {
+ for _, s := range m.VerifyCertificateSpki {
+ l = len(s)
+ n += 1 + l + sovGateway(uint64(l))
+ }
+ }
+ if len(m.VerifyCertificateHash) > 0 {
+ for _, s := range m.VerifyCertificateHash {
+ l = len(s)
+ n += 1 + l + sovGateway(uint64(l))
+ }
+ }
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -1949,6 +2030,70 @@ func (m *Server_TLSOptions) Unmarshal(dAtA []byte) error {
}
m.CredentialName = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
+ case 11:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field VerifyCertificateSpki", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGateway
+ }
+ 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 ErrInvalidLengthGateway
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGateway
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.VerifyCertificateSpki = append(m.VerifyCertificateSpki, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
+ case 12:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field VerifyCertificateHash", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGateway
+ }
+ 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 ErrInvalidLengthGateway
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGateway
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.VerifyCertificateHash = append(m.VerifyCertificateHash, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGateway(dAtA[iNdEx:])
diff --git a/vendor/istio.io/api/networking/v1alpha3/gateway.pb.html b/vendor/istio.io/api/networking/v1alpha3/gateway.pb.html
index ee451a2c8bed..e88a7d6b90a2 100644
--- a/vendor/istio.io/api/networking/v1alpha3/gateway.pb.html
+++ b/vendor/istio.io/api/networking/v1alpha3/gateway.pb.html
@@ -471,6 +471,31 @@ Server.TLSOptions
A list of alternate names to verify the subject identity in the
certificate presented by the client.
+
+
+
+verifyCertificateSpki |
+string[] |
+
+ An optional list of base64-encoded SHA-256 hashes of the SKPIs of
+authorized client certificates.
+Note: When both verifycertificatehash and verifycertificatespki
+are specified, a hash matching either value will result in the
+certificate being accepted.
+
+ |
+
+
+verifyCertificateHash |
+string[] |
+
+ An optional list of hex-encoded SHA-256 hashes of the
+authorized client certificates. Both simple and colon separated
+formats are acceptable.
+Note: When both verifycertificatehash and verifycertificatespki
+are specified, a hash matching either value will result in the
+certificate being accepted.
+
|
@@ -582,8 +607,8 @@ Server.TLSOptions.TLSmode
MUTUAL |
- Secure connections to the upstream using mutual TLS by presenting
-client certificates for authentication.
+Secure connections to the downstream using mutual TLS by presenting
+server certificates for authentication.
|
@@ -601,6 +626,18 @@ Server.TLSOptions.TLSmode
their respective endpoints. Use of this mode assumes that both the
source and the destination are using Istio mTLS to secure traffic.
+
+
+
+ISTIO_MUTUAL |
+
+ Secure connections from the downstream using mutual TLS by presenting
+server certificates for authentication.
+Compared to Mutual mode, this mode uses certificates, representing
+gateway workload identity, generated automatically by Istio for
+mTLS authentication. When this mode is used, all other fields in
+TLSOptions should be empty.
+
|
diff --git a/vendor/istio.io/api/networking/v1alpha3/gateway.proto b/vendor/istio.io/api/networking/v1alpha3/gateway.proto
index 19431a688105..5098e7eea9ed 100644
--- a/vendor/istio.io/api/networking/v1alpha3/gateway.proto
+++ b/vendor/istio.io/api/networking/v1alpha3/gateway.proto
@@ -319,8 +319,8 @@ message Server {
// Secure connections with standard TLS semantics.
SIMPLE = 1;
- // Secure connections to the upstream using mutual TLS by presenting
- // client certificates for authentication.
+ // Secure connections to the downstream using mutual TLS by presenting
+ // server certificates for authentication.
MUTUAL = 2;
// Similar to the passthrough mode, except servers with this TLS mode
@@ -334,6 +334,14 @@ message Server {
// their respective endpoints. Use of this mode assumes that both the
// source and the destination are using Istio mTLS to secure traffic.
AUTO_PASSTHROUGH = 3;
+
+ // Secure connections from the downstream using mutual TLS by presenting
+ // server certificates for authentication.
+ // Compared to Mutual mode, this mode uses certificates, representing
+ // gateway workload identity, generated automatically by Istio for
+ // mTLS authentication. When this mode is used, all other fields in
+ // `TLSOptions` should be empty.
+ ISTIO_MUTUAL = 4;
};
// Optional: Indicates whether connections to this port should be
@@ -375,6 +383,21 @@ message Server {
// A list of alternate names to verify the subject identity in the
// certificate presented by the client.
repeated string subject_alt_names = 6;
+
+ // An optional list of base64-encoded SHA-256 hashes of the SKPIs of
+ // authorized client certificates.
+ // Note: When both verify_certificate_hash and verify_certificate_spki
+ // are specified, a hash matching either value will result in the
+ // certificate being accepted.
+ repeated string verify_certificate_spki = 11;
+
+ // An optional list of hex-encoded SHA-256 hashes of the
+ // authorized client certificates. Both simple and colon separated
+ // formats are acceptable.
+ // Note: When both verify_certificate_hash and verify_certificate_spki
+ // are specified, a hash matching either value will result in the
+ // certificate being accepted.
+ repeated string verify_certificate_hash = 12;
// TLS protocol versions.
enum TLSProtocol {
diff --git a/vendor/istio.io/api/networking/v1alpha3/service_entry.json b/vendor/istio.io/api/networking/v1alpha3/service_entry.json
new file mode 100644
index 000000000000..2e411be37fd6
--- /dev/null
+++ b/vendor/istio.io/api/networking/v1alpha3/service_entry.json
@@ -0,0 +1,149 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Configuration affecting service registry.",
+ "version": "v1alpha3"
+ },
+ "components": {
+ "schemas": {
+ "istio.networking.v1alpha3.Port": {
+ "description": "Port describes the properties of a specific port of a service.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Label assigned to the port.",
+ "type": "string",
+ "format": "string"
+ },
+ "number": {
+ "description": "REQUIRED: A valid non-negative integer port number.",
+ "type": "integer"
+ },
+ "protocol": {
+ "description": "REQUIRED: The protocol exposed on the port. MUST BE one of HTTP|HTTPS|GRPC|HTTP2|MONGO|TCP|TLS. TLS implies the connection will be routed based on the SNI header to the destination without terminating the TLS connection.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.ServiceEntry": {
+ "type": "object",
+ "properties": {
+ "exportTo": {
+ "description": "A list of namespaces to which this service is exported. Exporting a service allows it to be used by sidecars, gateways and virtual services defined in other namespaces. This feature provides a mechanism for service owners and mesh administrators to control the visibility of services across namespace boundaries.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "subjectAltNames": {
+ "description": "The list of subject alternate names allowed for workload instances that implement this service. This information is used to enforce [secure-naming](https://istio.io/docs/concepts/security/#secure-naming). If specified, the proxy will verify that the server certificate's subject alternate name matches one of the specified values.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "hosts": {
+ "description": "REQUIRED. The hosts associated with the ServiceEntry. Could be a DNS name with wildcard prefix.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "addresses": {
+ "description": "The virtual IP addresses associated with the service. Could be CIDR prefix. For HTTP traffic, generated route configurations will include http route domains for both the `addresses` and `hosts` field values and the destination will be identified based on the HTTP Host/Authority header. If one or more IP addresses are specified, the incoming traffic will be identified as belonging to this service if the destination IP matches the IP/CIDRs specified in the addresses field. If the Addresses field is empty, traffic will be identified solely based on the destination port. In such scenarios, the port on which the service is being accessed must not be shared by any other service in the mesh. In other words, the sidecar will behave as a simple TCP proxy, forwarding incoming traffic on a specified port to the specified destination endpoint IP/host. Unix domain socket addresses are not supported in this field.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "ports": {
+ "description": "REQUIRED. The ports associated with the external service. If the Endpoints are Unix domain socket addresses, there must be exactly one port.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Port"
+ }
+ },
+ "location": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.ServiceEntry.Location"
+ },
+ "resolution": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.ServiceEntry.Resolution"
+ },
+ "endpoints": {
+ "description": "One or more endpoints associated with the service.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.ServiceEntry.Endpoint"
+ }
+ }
+ }
+ },
+ "istio.networking.v1alpha3.ServiceEntry.Location": {
+ "description": "Location specifies whether the service is part of Istio mesh or outside the mesh. Location determines the behavior of several features, such as service-to-service mTLS authentication, policy enforcement, etc. When communicating with services outside the mesh, Istio's mTLS authentication is disabled, and policy enforcement is performed on the client-side as opposed to server-side.",
+ "enum": [
+ "MESH_EXTERNAL",
+ "MESH_INTERNAL"
+ ],
+ "default": "MESH_EXTERNAL"
+ },
+ "istio.networking.v1alpha3.ServiceEntry.Resolution": {
+ "description": "Resolution determines how the proxy will resolve the IP addresses of the network endpoints associated with the service, so that it can route to one of them. The resolution mode specified here has no impact on how the application resolves the IP address associated with the service. The application may still have to use DNS to resolve the service to an IP so that the outbound traffic can be captured by the Proxy. Alternatively, for HTTP services, the application could directly communicate with the proxy (e.g., by setting HTTP_PROXY) to talk to these services.",
+ "enum": [
+ "NONE",
+ "STATIC",
+ "DNS"
+ ],
+ "default": "NONE"
+ },
+ "istio.networking.v1alpha3.ServiceEntry.Endpoint": {
+ "description": "Endpoint defines a network address (IP or hostname) associated with the mesh service.",
+ "type": "object",
+ "required": [
+ "labels",
+ "ports"
+ ],
+ "properties": {
+ "labels": {
+ "description": "One or more labels associated with the endpoint.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "address": {
+ "description": "REQUIRED: Address associated with the network endpoint without the port. Domain names can be used if and only if the resolution is set to DNS, and must be fully-qualified without wildcards. Use the form unix:///absolute/path/to/socket for Unix domain socket endpoints.",
+ "type": "string",
+ "format": "string"
+ },
+ "ports": {
+ "description": "Set of ports associated with the endpoint. The ports must be associated with a port name that was declared as part of the service. Do not use for `unix://` addresses.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "integer"
+ }
+ },
+ "network": {
+ "description": "Network enables Istio to group endpoints resident in the same L3 domain/network. All endpoints in the same network are assumed to be directly reachable from one another. When endpoints in different networks cannot reach each other directly, an Istio Gateway can be used to establish connectivity (usually using the AUTO_PASSTHROUGH mode in a Gateway Server). This is an advanced configuration used typically for spanning an Istio mesh over multiple clusters.",
+ "type": "string",
+ "format": "string"
+ },
+ "locality": {
+ "description": "The locality associated with the endpoint. A locality corresponds to a failure domain (e.g., country/region/zone). Arbitrary failure domain hierarchies can be represented by separating each encapsulating failure domain by /. For example, the locality of an an endpoint in US, in US-East-1 region, within availability zone az-1, in data center rack r11 can be represented as us/us-east-1/az-1/r11. Istio will configure the sidecar to route to endpoints within the same locality as the sidecar. If none of the endpoints in the locality are available, endpoints parent locality (but within the same network ID) will be chosen. For example, if there are two endpoints in same network (networkID \"n1\"), say e1 with locality us/us-east-1/az-1/r11 and e2 with locality us/us-east-1/az-2/r12, a sidecar from us/us-east-1/az-1/r11 locality will prefer e1 from the same locality over e2 from a different locality. Endpoint e2 could be the IP associated with a gateway (that bridges networks n1 and n2), or the IP associated with a standard service endpoint.",
+ "type": "string",
+ "format": "string"
+ },
+ "weight": {
+ "description": "The load balancing weight associated with the endpoint. Endpoints with higher weights will receive proportionally higher traffic.",
+ "type": "integer"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/vendor/istio.io/api/networking/v1alpha3/sidecar.json b/vendor/istio.io/api/networking/v1alpha3/sidecar.json
new file mode 100644
index 000000000000..00ca2b4d4e76
--- /dev/null
+++ b/vendor/istio.io/api/networking/v1alpha3/sidecar.json
@@ -0,0 +1,145 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Configuration affecting network reachability of a sidecar.",
+ "version": "v1alpha3"
+ },
+ "components": {
+ "schemas": {
+ "istio.networking.v1alpha3.WorkloadSelector": {
+ "description": "WorkloadSelector specifies the criteria used to determine if the Gateway, Sidecar, or EnvoyFilter resource can be applied to a proxy. The matching criteria includes the metadata associated with a proxy, workload instance info such as labels attached to the pod/VM, or any other info that the proxy provides to Istio during the initial handshake. If multiple conditions are specified, all conditions need to match in order for the workload instance to be selected. Currently, only label based selection mechanism is supported.",
+ "type": "object",
+ "required": [
+ "labels"
+ ],
+ "properties": {
+ "labels": {
+ "description": "REQUIRED: One or more labels that indicate a specific set of pods/VMs on which this sidecar configuration should be applied. The scope of label search is restricted to the configuration namespace in which the the resource is present.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.networking.v1alpha3.Port": {
+ "description": "Port describes the properties of a specific port of a service.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Label assigned to the port.",
+ "type": "string",
+ "format": "string"
+ },
+ "number": {
+ "description": "REQUIRED: A valid non-negative integer port number.",
+ "type": "integer"
+ },
+ "protocol": {
+ "description": "REQUIRED: The protocol exposed on the port. MUST BE one of HTTP|HTTPS|GRPC|HTTP2|MONGO|TCP|TLS. TLS implies the connection will be routed based on the SNI header to the destination without terminating the TLS connection.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.Sidecar": {
+ "type": "object",
+ "properties": {
+ "workloadSelector": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.WorkloadSelector"
+ },
+ "ingress": {
+ "description": "Ingress specifies the configuration of the sidecar for processing inbound traffic to the attached workload instance. If omitted, Istio will automatically configure the sidecar based on the information about the workload obtained from the orchestration platform (e.g., exposed ports, services, etc.). If specified, inbound ports are configured if and only if the workload instance is associated with a service.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.IstioIngressListener"
+ }
+ },
+ "egress": {
+ "description": "Egress specifies the configuration of the sidecar for processing outbound traffic from the attached workload instance to other services in the mesh. If omitted, Istio will automatically configure the sidecar to be able to reach every service in the mesh that is visible to this namespace.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.IstioEgressListener"
+ }
+ },
+ "outboundTrafficPolicy": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.OutboundTrafficPolicy"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.IstioIngressListener": {
+ "description": "IstioIngressListener specifies the properties of an inbound traffic listener on the sidecar proxy attached to a workload instance.",
+ "type": "object",
+ "properties": {
+ "port": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Port"
+ },
+ "bind": {
+ "description": "The ip or the Unix domain socket to which the listener should be bound to. Format: `x.x.x.x` or `unix:///path/to/uds` or `unix://@foobar` (Linux abstract namespace). If omitted, Istio will automatically configure the defaults based on imported services and the workload instances to which this configuration is applied to.",
+ "type": "string",
+ "format": "string"
+ },
+ "defaultEndpoint": {
+ "description": "REQUIRED: The loopback IP endpoint or Unix domain socket to which traffic should be forwarded to. This configuration can be used to redirect traffic arriving at the bind point on the sidecar to a port or Unix domain socket where the application workload instance is listening for connections. Format should be 127.0.0.1:PORT or `unix:///path/to/socket`",
+ "type": "string",
+ "format": "string"
+ },
+ "captureMode": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.CaptureMode"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.IstioEgressListener": {
+ "description": "IstioEgressListener specifies the properties of an outbound traffic listener on the sidecar proxy attached to a workload instance.",
+ "type": "object",
+ "properties": {
+ "port": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Port"
+ },
+ "bind": {
+ "description": "The ip or the Unix domain socket to which the listener should be bound to. Port MUST be specified if bind is not empty. Format: `x.x.x.x` or `unix:///path/to/uds` or `unix://@foobar` (Linux abstract namespace). If omitted, Istio will automatically configure the defaults based on imported services, the workload instances to which this configuration is applied to and the captureMode. If captureMode is NONE, bind will default to 127.0.0.1.",
+ "type": "string",
+ "format": "string"
+ },
+ "hosts": {
+ "description": "REQUIRED: One or more service hosts exposed by the listener in `namespace/dnsName` format. Services in the specified namespace matching `dnsName` will be exposed. The corresponding service can be a service in the service registry (e.g., a Kubernetes or cloud foundry service) or a service specified using a `ServiceEntry` or `VirtualService` configuration. Any associated `DestinationRule` in the same namespace will also be used.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "captureMode": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.CaptureMode"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.OutboundTrafficPolicy": {
+ "description": "OutboundTrafficPolicy sets the default behavior of the sidecar for handling outbound traffic from the application. If your application uses one or more external services that are not known apriori, setting the policy to ALLOW_ANY will cause the sidecars to route any unknown traffic originating from the application to its requested destination. Users are strongly encouraged to use ServiceEntries to explicitly declare any external dependencies, instead of using allow_any, so that traffic to these services can be monitored.",
+ "type": "object",
+ "properties": {
+ "mode": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.OutboundTrafficPolicy.Mode"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.CaptureMode": {
+ "description": "CaptureMode describes how traffic to a listener is expected to be captured. Applicable only when the listener is bound to an IP.",
+ "enum": [
+ "DEFAULT",
+ "IPTABLES",
+ "NONE"
+ ],
+ "default": "DEFAULT"
+ },
+ "istio.networking.v1alpha3.OutboundTrafficPolicy.Mode": {
+ "enum": [
+ "REGISTRY_ONLY",
+ "ALLOW_ANY"
+ ],
+ "default": "REGISTRY_ONLY"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/vendor/istio.io/api/networking/v1alpha3/sidecar.pb.go b/vendor/istio.io/api/networking/v1alpha3/sidecar.pb.go
index d05f8b37995f..e0790872d967 100644
--- a/vendor/istio.io/api/networking/v1alpha3/sidecar.pb.go
+++ b/vendor/istio.io/api/networking/v1alpha3/sidecar.pb.go
@@ -774,9 +774,9 @@ func (m *Sidecar) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintSidecar(dAtA, i, uint64(m.WorkloadSelector.Size()))
- n1, err1 := m.WorkloadSelector.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := m.WorkloadSelector.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
}
@@ -808,9 +808,9 @@ func (m *Sidecar) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x22
i++
i = encodeVarintSidecar(dAtA, i, uint64(m.OutboundTrafficPolicy.Size()))
- n2, err2 := m.OutboundTrafficPolicy.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := m.OutboundTrafficPolicy.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
}
@@ -839,9 +839,9 @@ func (m *IstioIngressListener) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintSidecar(dAtA, i, uint64(m.Port.Size()))
- n3, err3 := m.Port.MarshalTo(dAtA[i:])
- if err3 != nil {
- return 0, err3
+ n3, err := m.Port.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n3
}
@@ -887,9 +887,9 @@ func (m *IstioEgressListener) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintSidecar(dAtA, i, uint64(m.Port.Size()))
- n4, err4 := m.Port.MarshalTo(dAtA[i:])
- if err4 != nil {
- return 0, err4
+ n4, err := m.Port.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n4
}
diff --git a/vendor/istio.io/api/networking/v1alpha3/virtual_service.json b/vendor/istio.io/api/networking/v1alpha3/virtual_service.json
new file mode 100644
index 000000000000..e57b97168f2f
--- /dev/null
+++ b/vendor/istio.io/api/networking/v1alpha3/virtual_service.json
@@ -0,0 +1,781 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Configuration affecting label/content routing, sni routing, etc.",
+ "version": "v1alpha3"
+ },
+ "components": {
+ "schemas": {
+ "istio.networking.v1alpha3.PortSelector": {
+ "description": "PortSelector specifies the number of a port to be used for matching or selection for final routing.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "number": {
+ "description": "Valid port number",
+ "type": "integer"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "$hide_from_docs",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ ]
+ },
+ "istio.networking.v1alpha3.VirtualService": {
+ "type": "object",
+ "properties": {
+ "exportTo": {
+ "description": "A list of namespaces to which this virtual service is exported. Exporting a virtual service allows it to be used by sidecars and gateways defined in other namespaces. This feature provides a mechanism for service owners and mesh administrators to control the visibility of virtual services across namespace boundaries.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "tls": {
+ "description": "An ordered list of route rule for non-terminated TLS \u0026 HTTPS traffic. Routing is typically performed using the SNI value presented by the ClientHello message. TLS routes will be applied to platform service ports named 'https-*', 'tls-*', unterminated gateway ports using HTTPS/TLS protocols (i.e. with \"passthrough\" TLS mode) and service entry ports using HTTPS/TLS protocols. The first rule matching an incoming request is used. NOTE: Traffic 'https-*' or 'tls-*' ports without associated virtual service will be treated as opaque TCP traffic.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.TLSRoute"
+ }
+ },
+ "tcp": {
+ "description": "An ordered list of route rules for opaque TCP traffic. TCP routes will be applied to any port that is not a HTTP or TLS port. The first rule matching an incoming request is used.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.TCPRoute"
+ }
+ },
+ "http": {
+ "description": "An ordered list of route rules for HTTP traffic. HTTP routes will be applied to platform service ports named 'http-*'/'http2-*'/'grpc-*', gateway ports with protocol HTTP/HTTP2/GRPC/ TLS-terminated-HTTPS and service entry ports using HTTP/HTTP2/GRPC protocols. The first rule matching an incoming request is used.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.HTTPRoute"
+ }
+ },
+ "hosts": {
+ "description": "REQUIRED. The destination hosts to which traffic is being sent. Could be a DNS name with wildcard prefix or an IP address. Depending on the platform, short-names can also be used instead of a FQDN (i.e. has no dots in the name). In such a scenario, the FQDN of the host would be derived based on the underlying platform.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "gateways": {
+ "description": "The names of gateways and sidecars that should apply these routes. A single VirtualService is used for sidecars inside the mesh as well as for one or more gateways. The selection condition imposed by this field can be overridden using the source field in the match conditions of protocol-specific routes. The reserved word `mesh` is used to imply all the sidecars in the mesh. When this field is omitted, the default gateway (`mesh`) will be used, which would apply the rule to all sidecars in the mesh. If a list of gateway names is provided, the rules will apply only to the gateways. To apply the rules to both gateways and sidecars, specify `mesh` as one of the gateway names.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.networking.v1alpha3.HTTPRoute": {
+ "description": "Describes match conditions and actions for routing HTTP/1.1, HTTP2, and gRPC traffic. See VirtualService for usage examples.",
+ "type": "object",
+ "required": [
+ "appendHeaders",
+ "appendResponseHeaders",
+ "appendRequestHeaders"
+ ],
+ "properties": {
+ "match": {
+ "description": "Match conditions to be satisfied for the rule to be activated. All conditions inside a single match block have AND semantics, while the list of match blocks have OR semantics. The rule is matched if any one of the match blocks succeed.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.HTTPMatchRequest"
+ }
+ },
+ "route": {
+ "description": "A http rule can either redirect or forward (default) traffic. The forwarding target can be one of several versions of a service (see glossary in beginning of document). Weights associated with the service version determine the proportion of traffic it receives.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.HTTPRouteDestination"
+ }
+ },
+ "redirect": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.HTTPRedirect"
+ },
+ "rewrite": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.HTTPRewrite"
+ },
+ "websocketUpgrade": {
+ "description": "Deprecated. Websocket upgrades are done automatically starting from Istio 1.0. $hide_from_docs",
+ "type": "boolean"
+ },
+ "timeout": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "retries": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.HTTPRetry"
+ },
+ "fault": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.HTTPFaultInjection"
+ },
+ "mirror": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Destination"
+ },
+ "corsPolicy": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.CorsPolicy"
+ },
+ "appendHeaders": {
+ "description": "Use of `append_headers` is deprecated. Use the `headers` field instead.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "removeResponseHeaders": {
+ "description": "Use of `remove_response_header` is deprecated. Use the `headers` field instead.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "appendResponseHeaders": {
+ "description": "Use of `append_response_headers` is deprecated. Use the `headers` field instead.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "removeRequestHeaders": {
+ "description": "Use of `remove_request_headers` is deprecated. Use the `headers` field instead.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "appendRequestHeaders": {
+ "description": "Use of `append_request_headers` is deprecated. Use the `headers` field instead.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "headers": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Headers"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.TLSRoute": {
+ "description": "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 services in the mesh based on the SNI value.",
+ "type": "object",
+ "properties": {
+ "match": {
+ "description": "REQUIRED. Match conditions to be satisfied for the rule to be activated. All conditions inside a single match block have AND semantics, while the list of match blocks have OR semantics. The rule is matched if any one of the match blocks succeed.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.TLSMatchAttributes"
+ }
+ },
+ "route": {
+ "description": "The destination to which the connection should be forwarded to.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.RouteDestination"
+ }
+ }
+ }
+ },
+ "istio.networking.v1alpha3.TCPRoute": {
+ "description": "Describes match conditions and actions for routing TCP traffic. The following routing rule forwards traffic arriving at port 27017 for mongo.prod.svc.cluster.local to another Mongo server on port 5555.",
+ "type": "object",
+ "properties": {
+ "match": {
+ "description": "Match conditions to be satisfied for the rule to be activated. All conditions inside a single match block have AND semantics, while the list of match blocks have OR semantics. The rule is matched if any one of the match blocks succeed.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.L4MatchAttributes"
+ }
+ },
+ "route": {
+ "description": "The destination to which the connection should be forwarded to.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.RouteDestination"
+ }
+ }
+ }
+ },
+ "istio.networking.v1alpha3.Destination": {
+ "description": "Destination indicates the network addressable service to which the request/connection will be sent after processing a routing rule. The destination.host should unambiguously refer to a service in the service registry. Istio's service registry is composed of all the services found in the platform's service registry (e.g., Kubernetes services, Consul services), as well as services declared through the [ServiceEntry](https://istio.io/docs/reference/config/networking/v1alpha3/service-entry/#ServiceEntry) resource.",
+ "type": "object",
+ "properties": {
+ "host": {
+ "description": "REQUIRED. The name of a service from the service registry. Service names are looked up from the platform's service registry (e.g., Kubernetes services, Consul services, etc.) and from the hosts declared by [ServiceEntry](https://istio.io/docs/reference/config/networking/v1alpha3/service-entry/#ServiceEntry). Traffic forwarded to destinations that are not found in either of the two, will be dropped.",
+ "type": "string",
+ "format": "string"
+ },
+ "port": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.PortSelector"
+ },
+ "subset": {
+ "description": "The name of a subset within the service. Applicable only to services within the mesh. The subset must be defined in a corresponding DestinationRule.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.HTTPMatchRequest": {
+ "description": "HttpMatchRequest specifies a set of criterion to be met in order for the rule to be applied to the HTTP request. For example, the following restricts the rule to match only requests where the URL path starts with /ratings/v2/ and the request contains a custom `end-user` header with value `jason`.",
+ "type": "object",
+ "required": [
+ "headers",
+ "sourceLabels",
+ "queryParams"
+ ],
+ "properties": {
+ "method": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.StringMatch"
+ },
+ "port": {
+ "description": "Specifies the ports on the host that is being addressed. Many services only expose a single port or label ports with the protocols they support, in these cases it is not required to explicitly select the port.",
+ "type": "integer"
+ },
+ "gateways": {
+ "description": "Names of gateways where the rule should be applied to. Gateway names at the top of the VirtualService (if any) are overridden. The gateway match is independent of sourceLabels.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "headers": {
+ "description": "The header keys must be lowercase and use hyphen as the separator, e.g. _x-request-id_.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.StringMatch"
+ }
+ },
+ "uri": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.StringMatch"
+ },
+ "scheme": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.StringMatch"
+ },
+ "authority": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.StringMatch"
+ },
+ "sourceLabels": {
+ "description": "One or more labels that constrain the applicability of a rule to workloads with the given labels. If the VirtualService has a list of gateways specified at the top, it should include the reserved gateway `mesh` in order for this field to be applicable.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "queryParams": {
+ "description": "Query parameters for matching.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.StringMatch"
+ }
+ },
+ "ignoreUriCase": {
+ "description": "Flag to specify whether the URI matching should be case-insensitive.",
+ "type": "boolean"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.HTTPRouteDestination": {
+ "description": "Each routing rule is associated with one or more service versions (see glossary in beginning of document). Weights associated with the version determine the proportion of traffic it receives. For example, the following rule will route 25% of traffic for the \"reviews\" service to instances with the \"v2\" tag and the remaining traffic (i.e., 75%) to \"v1\".",
+ "type": "object",
+ "required": [
+ "appendResponseHeaders",
+ "appendRequestHeaders"
+ ],
+ "properties": {
+ "weight": {
+ "description": "REQUIRED. The proportion of traffic to be forwarded to the service version. (0-100). Sum of weights across destinations SHOULD BE == 100. If there is only one destination in a rule, the weight value is assumed to be 100.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "removeResponseHeaders": {
+ "description": "Use of `remove_response_header` is deprecated. Use the `headers` field instead.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "appendResponseHeaders": {
+ "description": "Use of `append_response_headers` is deprecated. Use the `headers` field instead.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "removeRequestHeaders": {
+ "description": "Use of `remove_request_headers` is deprecated. Use the `headers` field instead.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "appendRequestHeaders": {
+ "description": "Use of `append_request_headers` is deprecated. Use the `headers` field instead.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "headers": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Headers"
+ },
+ "destination": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Destination"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.HTTPRedirect": {
+ "description": "HTTPRedirect can be used to send a 301 redirect response to the caller, where the Authority/Host and the URI in the response can be swapped with the specified values. For example, the following rule redirects requests for /v1/getProductRatings API on the ratings service to /v1/bookRatings provided by the bookratings service.",
+ "type": "object",
+ "properties": {
+ "uri": {
+ "description": "On a redirect, overwrite the Path portion of the URL with this value. Note that the entire path will be replaced, irrespective of the request URI being matched as an exact path or prefix.",
+ "type": "string",
+ "format": "string"
+ },
+ "authority": {
+ "description": "On a redirect, overwrite the Authority/Host portion of the URL with this value.",
+ "type": "string",
+ "format": "string"
+ },
+ "redirectCode": {
+ "description": "On a redirect, Specifies the HTTP status code to use in the redirect response. The default response code is MOVED_PERMANENTLY (301).",
+ "type": "integer"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.HTTPRewrite": {
+ "description": "HTTPRewrite can be used to rewrite specific parts of a HTTP request before forwarding the request to the destination. Rewrite primitive can be used only with HTTPRouteDestination. The following example demonstrates how to rewrite the URL prefix for api call (/ratings) to ratings service before making the actual API call.",
+ "type": "object",
+ "properties": {
+ "uri": {
+ "description": "rewrite the path (or the prefix) portion of the URI with this value. If the original URI was matched based on prefix, the value provided in this field will replace the corresponding matched prefix.",
+ "type": "string",
+ "format": "string"
+ },
+ "authority": {
+ "description": "rewrite the Authority/Host header with this value.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.HTTPRetry": {
+ "description": "Describes the retry policy to use when a HTTP request fails. For example, the following rule sets the maximum number of retries to 3 when calling ratings:v1 service, with a 2s timeout per retry attempt.",
+ "type": "object",
+ "properties": {
+ "attempts": {
+ "description": "REQUIRED. Number of retries for a given request. The interval between retries will be determined automatically (25ms+). Actual number of retries attempted depends on the httpReqTimeout.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "perTryTimeout": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "retryOn": {
+ "description": "Specifies the conditions under which retry takes place. One or more policies can be specified using a ‘,’ delimited list. See the [supported policies](https://www.envoyproxy.io/docs/envoy/latest/configuration/http_filters/router_filter#x-envoy-retry-on) and [here](https://www.envoyproxy.io/docs/envoy/latest/configuration/http_filters/router_filter#x-envoy-retry-grpc-on) for more details.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.HTTPFaultInjection": {
+ "description": "HTTPFaultInjection can be used to specify one or more faults to inject while forwarding http requests to the destination specified in a route. Fault specification is part of a VirtualService rule. Faults include aborting the Http request from downstream service, and/or delaying proxying of requests. A fault rule MUST HAVE delay or abort or both.",
+ "type": "object",
+ "properties": {
+ "delay": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.HTTPFaultInjection.Delay"
+ },
+ "abort": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.HTTPFaultInjection.Abort"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.CorsPolicy": {
+ "description": "Describes the Cross-Origin Resource Sharing (CORS) policy, for a given service. Refer to [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS) for further details about cross origin resource sharing. For example, the following rule restricts cross origin requests to those originating from example.com domain using HTTP POST/GET, and sets the `Access-Control-Allow-Credentials` header to false. In addition, it only exposes `X-Foo-bar` header and sets an expiry period of 1 day.",
+ "type": "object",
+ "properties": {
+ "allowOrigin": {
+ "description": "The list of origins that are allowed to perform CORS requests. The content will be serialized into the Access-Control-Allow-Origin header. Wildcard * will allow all origins.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "allowMethods": {
+ "description": "List of HTTP methods allowed to access the resource. The content will be serialized into the Access-Control-Allow-Methods header.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "allowHeaders": {
+ "description": "List of HTTP headers that can be used when requesting the resource. Serialized to Access-Control-Allow-Headers header.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "exposeHeaders": {
+ "description": "A white list of HTTP headers that the browsers are allowed to access. Serialized into Access-Control-Expose-Headers header.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "maxAge": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ },
+ "allowCredentials": {
+ "$ref": "#/components/schemas/google.protobuf.BoolValue"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.Headers": {
+ "description": "Message headers can be manipulated when Envoy forwards requests to, or responses from, a destination service. Header manipulation rules can be specified for a specific route destination or for all destinations. The following VirtualService adds a `test` header with the value `true` to requests that are routed to any `reviews` service destination. It also romoves the `foo` response header, but only from responses coming from the `v1` subset (version) of the `reviews` service.",
+ "type": "object",
+ "properties": {
+ "response": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Headers.HeaderOperations"
+ },
+ "request": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Headers.HeaderOperations"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.Headers.HeaderOperations": {
+ "description": "HeaderOperations Describes the header manipulations to apply",
+ "type": "object",
+ "required": [
+ "set",
+ "add"
+ ],
+ "properties": {
+ "set": {
+ "description": "Overwrite the headers specified by key with the given values",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "add": {
+ "description": "Append the given values to the headers specified by keys (will create a comma-separated list of values)",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "remove": {
+ "description": "Remove a the specified headers",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.networking.v1alpha3.TLSMatchAttributes": {
+ "description": "TLS connection match attributes.",
+ "type": "object",
+ "required": [
+ "sourceLabels"
+ ],
+ "properties": {
+ "port": {
+ "description": "Specifies the port on the host that is being addressed. Many services only expose a single port or label ports with the protocols they support, in these cases it is not required to explicitly select the port.",
+ "type": "integer"
+ },
+ "gateways": {
+ "description": "Names of gateways where the rule should be applied to. Gateway names at the top of the VirtualService (if any) are overridden. The gateway match is independent of sourceLabels.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "sourceLabels": {
+ "description": "One or more labels that constrain the applicability of a rule to workloads with the given labels. If the VirtualService has a list of gateways specified at the top, it should include the reserved gateway `mesh` in order for this field to be applicable.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "destinationSubnets": {
+ "description": "IPv4 or IPv6 ip addresses of destination with optional subnet. E.g., a.b.c.d/xx form or just a.b.c.d.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "sourceSubnet": {
+ "description": "IPv4 or IPv6 ip address of source with optional subnet. E.g., a.b.c.d/xx form or just a.b.c.d $hide_from_docs",
+ "type": "string",
+ "format": "string"
+ },
+ "sniHosts": {
+ "description": "REQUIRED. SNI (server name indicator) to match on. Wildcard prefixes can be used in the SNI value, e.g., *.com will match foo.example.com as well as example.com. An SNI value must be a subset (i.e., fall within the domain) of the corresponding virtual serivce's hosts.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.networking.v1alpha3.RouteDestination": {
+ "description": "L4 routing rule weighted destination.",
+ "type": "object",
+ "properties": {
+ "weight": {
+ "description": "REQUIRED. The proportion of traffic to be forwarded to the service version. If there is only one destination in a rule, all traffic will be routed to it irrespective of the weight.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "destination": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Destination"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.L4MatchAttributes": {
+ "description": "L4 connection match attributes. Note that L4 connection matching support is incomplete.",
+ "type": "object",
+ "required": [
+ "sourceLabels"
+ ],
+ "properties": {
+ "port": {
+ "description": "Specifies the port on the host that is being addressed. Many services only expose a single port or label ports with the protocols they support, in these cases it is not required to explicitly select the port.",
+ "type": "integer"
+ },
+ "gateways": {
+ "description": "Names of gateways where the rule should be applied to. Gateway names at the top of the VirtualService (if any) are overridden. The gateway match is independent of sourceLabels.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "sourceLabels": {
+ "description": "One or more labels that constrain the applicability of a rule to workloads with the given labels. If the VirtualService has a list of gateways specified at the top, it should include the reserved gateway `mesh` in order for this field to be applicable.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "destinationSubnets": {
+ "description": "IPv4 or IPv6 ip addresses of destination with optional subnet. E.g., a.b.c.d/xx form or just a.b.c.d.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "sourceSubnet": {
+ "description": "IPv4 or IPv6 ip address of source with optional subnet. E.g., a.b.c.d/xx form or just a.b.c.d $hide_from_docs",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.networking.v1alpha3.StringMatch": {
+ "description": "Describes how to match a given string in HTTP headers. Match is case-sensitive.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "exact": {
+ "description": "exact string match",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "prefix": {
+ "description": "prefix-based match",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "regex": {
+ "description": "ECMAscript style regex-based match",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ ]
+ },
+ "istio.networking.v1alpha3.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",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "percent": {
+ "description": "Percentage of requests on which the delay will be injected (0-100). Use of integer `percent` value is deprecated. Use the double `percentage` field instead.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "percentage": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Percent"
+ },
+ "fixedDelay": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "percent": {
+ "description": "Percentage of requests on which the delay will be injected (0-100). Use of integer `percent` value is deprecated. Use the double `percentage` field instead.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "percentage": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Percent"
+ },
+ "exponentialDelay": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ }
+ }
+ }
+ ]
+ },
+ "istio.networking.v1alpha3.HTTPFaultInjection.Abort": {
+ "description": "Abort specification is used to prematurely abort a request with a pre-specified error code. The following example will return an HTTP 400 error code for 1 out of every 1000 requests to the \"ratings\" service \"v1\".",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "percent": {
+ "description": "Percentage of requests to be aborted with the error code provided (0-100). Use of integer `percent` value is deprecated. Use the double `percentage` field instead.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "percentage": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Percent"
+ },
+ "httpStatus": {
+ "description": "REQUIRED. HTTP status code to use to abort the Http request.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "percent": {
+ "description": "Percentage of requests to be aborted with the error code provided (0-100). Use of integer `percent` value is deprecated. Use the double `percentage` field instead.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "percentage": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Percent"
+ },
+ "grpcStatus": {
+ "description": "$hide_from_docs",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "percent": {
+ "description": "Percentage of requests to be aborted with the error code provided (0-100). Use of integer `percent` value is deprecated. Use the double `percentage` field instead.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "percentage": {
+ "$ref": "#/components/schemas/istio.networking.v1alpha3.Percent"
+ },
+ "http2Error": {
+ "description": "$hide_from_docs",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ ]
+ },
+ "istio.networking.v1alpha3.Percent": {
+ "description": "Percent specifies a percentage in the range of [0.0, 100.0].",
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "number",
+ "format": "double"
+ }
+ }
+ },
+ "google.protobuf.BoolValue": {
+ "description": "Indicates whether the caller is allowed to send the actual request (not the preflight) using credentials. Translates to `Access-Control-Allow-Credentials` header.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The bool value.",
+ "type": "boolean"
+ }
+ }
+ },
+ "google.protobuf.Duration": {
+ "description": "$hide_from_docs",
+ "type": "object",
+ "properties": {
+ "seconds": {
+ "description": "Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years",
+ "type": "integer",
+ "format": "int64"
+ },
+ "nanos": {
+ "description": "Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/vendor/istio.io/api/networking/v1alpha3/virtual_service.pb.go b/vendor/istio.io/api/networking/v1alpha3/virtual_service.pb.go
index 43861c8bfff0..94c562048ead 100644
--- a/vendor/istio.io/api/networking/v1alpha3/virtual_service.pb.go
+++ b/vendor/istio.io/api/networking/v1alpha3/virtual_service.pb.go
@@ -3261,9 +3261,9 @@ func (m *Destination) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Port.Size()))
- n1, err1 := m.Port.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := m.Port.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
}
@@ -3316,9 +3316,9 @@ func (m *HTTPRoute) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Redirect.Size()))
- n2, err2 := m.Redirect.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := m.Redirect.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
}
@@ -3326,9 +3326,9 @@ func (m *HTTPRoute) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x22
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Rewrite.Size()))
- n3, err3 := m.Rewrite.MarshalTo(dAtA[i:])
- if err3 != nil {
- return 0, err3
+ n3, err := m.Rewrite.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n3
}
@@ -3346,9 +3346,9 @@ func (m *HTTPRoute) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x32
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Timeout.Size()))
- n4, err4 := m.Timeout.MarshalTo(dAtA[i:])
- if err4 != nil {
- return 0, err4
+ n4, err := m.Timeout.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n4
}
@@ -3356,9 +3356,9 @@ func (m *HTTPRoute) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x3a
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Retries.Size()))
- n5, err5 := m.Retries.MarshalTo(dAtA[i:])
- if err5 != nil {
- return 0, err5
+ n5, err := m.Retries.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n5
}
@@ -3366,9 +3366,9 @@ func (m *HTTPRoute) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x42
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Fault.Size()))
- n6, err6 := m.Fault.MarshalTo(dAtA[i:])
- if err6 != nil {
- return 0, err6
+ n6, err := m.Fault.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n6
}
@@ -3376,9 +3376,9 @@ func (m *HTTPRoute) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x4a
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Mirror.Size()))
- n7, err7 := m.Mirror.MarshalTo(dAtA[i:])
- if err7 != nil {
- return 0, err7
+ n7, err := m.Mirror.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n7
}
@@ -3386,9 +3386,9 @@ func (m *HTTPRoute) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x52
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.CorsPolicy.Size()))
- n8, err8 := m.CorsPolicy.MarshalTo(dAtA[i:])
- if err8 != nil {
- return 0, err8
+ n8, err := m.CorsPolicy.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n8
}
@@ -3479,9 +3479,9 @@ func (m *HTTPRoute) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Headers.Size()))
- n9, err9 := m.Headers.MarshalTo(dAtA[i:])
- if err9 != nil {
- return 0, err9
+ n9, err := m.Headers.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n9
}
@@ -3510,9 +3510,9 @@ func (m *Headers) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Request.Size()))
- n10, err10 := m.Request.MarshalTo(dAtA[i:])
- if err10 != nil {
- return 0, err10
+ n10, err := m.Request.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n10
}
@@ -3520,9 +3520,9 @@ func (m *Headers) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Response.Size()))
- n11, err11 := m.Response.MarshalTo(dAtA[i:])
- if err11 != nil {
- return 0, err11
+ n11, err := m.Response.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n11
}
@@ -3711,9 +3711,9 @@ func (m *HTTPMatchRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Uri.Size()))
- n12, err12 := m.Uri.MarshalTo(dAtA[i:])
- if err12 != nil {
- return 0, err12
+ n12, err := m.Uri.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n12
}
@@ -3721,9 +3721,9 @@ func (m *HTTPMatchRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Scheme.Size()))
- n13, err13 := m.Scheme.MarshalTo(dAtA[i:])
- if err13 != nil {
- return 0, err13
+ n13, err := m.Scheme.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n13
}
@@ -3731,9 +3731,9 @@ func (m *HTTPMatchRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Method.Size()))
- n14, err14 := m.Method.MarshalTo(dAtA[i:])
- if err14 != nil {
- return 0, err14
+ n14, err := m.Method.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n14
}
@@ -3741,9 +3741,9 @@ func (m *HTTPMatchRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x22
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Authority.Size()))
- n15, err15 := m.Authority.MarshalTo(dAtA[i:])
- if err15 != nil {
- return 0, err15
+ n15, err := m.Authority.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n15
}
@@ -3767,9 +3767,9 @@ func (m *HTTPMatchRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintVirtualService(dAtA, i, uint64(v.Size()))
- n16, err16 := v.MarshalTo(dAtA[i:])
- if err16 != nil {
- return 0, err16
+ n16, err := v.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n16
}
@@ -3832,9 +3832,9 @@ func (m *HTTPMatchRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintVirtualService(dAtA, i, uint64(v.Size()))
- n17, err17 := v.MarshalTo(dAtA[i:])
- if err17 != nil {
- return 0, err17
+ n17, err := v.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n17
}
@@ -3875,9 +3875,9 @@ func (m *HTTPRouteDestination) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Destination.Size()))
- n18, err18 := m.Destination.MarshalTo(dAtA[i:])
- if err18 != nil {
- return 0, err18
+ n18, err := m.Destination.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n18
}
@@ -3954,9 +3954,9 @@ func (m *HTTPRouteDestination) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x3a
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Headers.Size()))
- n19, err19 := m.Headers.MarshalTo(dAtA[i:])
- if err19 != nil {
- return 0, err19
+ n19, err := m.Headers.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n19
}
@@ -3985,9 +3985,9 @@ func (m *RouteDestination) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Destination.Size()))
- n20, err20 := m.Destination.MarshalTo(dAtA[i:])
- if err20 != nil {
- return 0, err20
+ n20, err := m.Destination.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n20
}
@@ -4262,9 +4262,9 @@ func (m *StringMatch) MarshalTo(dAtA []byte) (int, error) {
var l int
_ = l
if m.MatchType != nil {
- nn21, err21 := m.MatchType.MarshalTo(dAtA[i:])
- if err21 != nil {
- return 0, err21
+ nn21, err := m.MatchType.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn21
}
@@ -4322,9 +4322,9 @@ func (m *HTTPRetry) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.PerTryTimeout.Size()))
- n22, err22 := m.PerTryTimeout.MarshalTo(dAtA[i:])
- if err22 != nil {
- return 0, err22
+ n22, err := m.PerTryTimeout.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n22
}
@@ -4419,9 +4419,9 @@ func (m *CorsPolicy) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.MaxAge.Size()))
- n23, err23 := m.MaxAge.MarshalTo(dAtA[i:])
- if err23 != nil {
- return 0, err23
+ n23, err := m.MaxAge.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n23
}
@@ -4429,9 +4429,9 @@ func (m *CorsPolicy) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x32
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.AllowCredentials.Size()))
- n24, err24 := m.AllowCredentials.MarshalTo(dAtA[i:])
- if err24 != nil {
- return 0, err24
+ n24, err := m.AllowCredentials.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n24
}
@@ -4460,9 +4460,9 @@ func (m *HTTPFaultInjection) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Delay.Size()))
- n25, err25 := m.Delay.MarshalTo(dAtA[i:])
- if err25 != nil {
- return 0, err25
+ n25, err := m.Delay.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n25
}
@@ -4470,9 +4470,9 @@ func (m *HTTPFaultInjection) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Abort.Size()))
- n26, err26 := m.Abort.MarshalTo(dAtA[i:])
- if err26 != nil {
- return 0, err26
+ n26, err := m.Abort.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n26
}
@@ -4503,9 +4503,9 @@ func (m *HTTPFaultInjection_Delay) MarshalTo(dAtA []byte) (int, error) {
i = encodeVarintVirtualService(dAtA, i, uint64(m.Percent))
}
if m.HttpDelayType != nil {
- nn27, err27 := m.HttpDelayType.MarshalTo(dAtA[i:])
- if err27 != nil {
- return 0, err27
+ nn27, err := m.HttpDelayType.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn27
}
@@ -4513,9 +4513,9 @@ func (m *HTTPFaultInjection_Delay) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Percentage.Size()))
- n28, err28 := m.Percentage.MarshalTo(dAtA[i:])
- if err28 != nil {
- return 0, err28
+ n28, err := m.Percentage.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n28
}
@@ -4531,9 +4531,9 @@ func (m *HTTPFaultInjection_Delay_FixedDelay) MarshalTo(dAtA []byte) (int, error
dAtA[i] = 0x12
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.FixedDelay.Size()))
- n29, err29 := m.FixedDelay.MarshalTo(dAtA[i:])
- if err29 != nil {
- return 0, err29
+ n29, err := m.FixedDelay.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n29
}
@@ -4545,9 +4545,9 @@ func (m *HTTPFaultInjection_Delay_ExponentialDelay) MarshalTo(dAtA []byte) (int,
dAtA[i] = 0x1a
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.ExponentialDelay.Size()))
- n30, err30 := m.ExponentialDelay.MarshalTo(dAtA[i:])
- if err30 != nil {
- return 0, err30
+ n30, err := m.ExponentialDelay.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n30
}
@@ -4574,9 +4574,9 @@ func (m *HTTPFaultInjection_Abort) MarshalTo(dAtA []byte) (int, error) {
i = encodeVarintVirtualService(dAtA, i, uint64(m.Percent))
}
if m.ErrorType != nil {
- nn31, err31 := m.ErrorType.MarshalTo(dAtA[i:])
- if err31 != nil {
- return 0, err31
+ nn31, err := m.ErrorType.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn31
}
@@ -4584,9 +4584,9 @@ func (m *HTTPFaultInjection_Abort) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
i++
i = encodeVarintVirtualService(dAtA, i, uint64(m.Percentage.Size()))
- n32, err32 := m.Percentage.MarshalTo(dAtA[i:])
- if err32 != nil {
- return 0, err32
+ n32, err := m.Percentage.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n32
}
@@ -4635,9 +4635,9 @@ func (m *PortSelector) MarshalTo(dAtA []byte) (int, error) {
var l int
_ = l
if m.Port != nil {
- nn33, err33 := m.Port.MarshalTo(dAtA[i:])
- if err33 != nil {
- return 0, err33
+ nn33, err := m.Port.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn33
}
diff --git a/vendor/istio.io/api/policy/v1beta1/cfg.pb.go b/vendor/istio.io/api/policy/v1beta1/cfg.pb.go
index e61c368167ff..ddce4e57fe30 100644
--- a/vendor/istio.io/api/policy/v1beta1/cfg.pb.go
+++ b/vendor/istio.io/api/policy/v1beta1/cfg.pb.go
@@ -2923,9 +2923,9 @@ func (m *AttributeManifest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintCfg(dAtA, i, uint64(v.Size()))
- n1, err1 := v.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := v.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
}
@@ -3024,9 +3024,9 @@ func (m *Rule) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
i++
i = encodeVarintCfg(dAtA, i, uint64(m.Sampling.Size()))
- n2, err2 := m.Sampling.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := m.Sampling.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
}
@@ -3153,9 +3153,9 @@ func (m *Instance) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintCfg(dAtA, i, uint64(m.Params.Size()))
- n3, err3 := m.Params.MarshalTo(dAtA[i:])
- if err3 != nil {
- return 0, err3
+ n3, err := m.Params.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n3
}
@@ -3224,9 +3224,9 @@ func (m *Handler) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintCfg(dAtA, i, uint64(m.Params.Size()))
- n4, err4 := m.Params.MarshalTo(dAtA[i:])
- if err4 != nil {
- return 0, err4
+ n4, err := m.Params.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n4
}
@@ -3234,9 +3234,9 @@ func (m *Handler) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x22
i++
i = encodeVarintCfg(dAtA, i, uint64(m.Connection.Size()))
- n5, err5 := m.Connection.MarshalTo(dAtA[i:])
- if err5 != nil {
- return 0, err5
+ n5, err := m.Connection.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n5
}
@@ -3282,9 +3282,9 @@ func (m *Connection) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintCfg(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Timeout)))
- n6, err6 := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.Timeout, dAtA[i:])
- if err6 != nil {
- return 0, err6
+ n6, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.Timeout, dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n6
}
@@ -3292,9 +3292,9 @@ func (m *Connection) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x22
i++
i = encodeVarintCfg(dAtA, i, uint64(m.Authentication.Size()))
- n7, err7 := m.Authentication.MarshalTo(dAtA[i:])
- if err7 != nil {
- return 0, err7
+ n7, err := m.Authentication.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n7
}
@@ -3320,9 +3320,9 @@ func (m *Sampling) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintCfg(dAtA, i, uint64(m.Random.Size()))
- n8, err8 := m.Random.MarshalTo(dAtA[i:])
- if err8 != nil {
- return 0, err8
+ n8, err := m.Random.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n8
}
@@ -3330,9 +3330,9 @@ func (m *Sampling) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintCfg(dAtA, i, uint64(m.RateLimit.Size()))
- n9, err9 := m.RateLimit.MarshalTo(dAtA[i:])
- if err9 != nil {
- return 0, err9
+ n9, err := m.RateLimit.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n9
}
@@ -3364,9 +3364,9 @@ func (m *RandomSampling) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintCfg(dAtA, i, uint64(m.PercentSampled.Size()))
- n10, err10 := m.PercentSampled.MarshalTo(dAtA[i:])
- if err10 != nil {
- return 0, err10
+ n10, err := m.PercentSampled.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n10
}
@@ -3401,9 +3401,9 @@ func (m *RateLimitSampling) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintCfg(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(m.SamplingDuration)))
- n11, err11 := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.SamplingDuration, dAtA[i:])
- if err11 != nil {
- return 0, err11
+ n11, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.SamplingDuration, dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n11
if m.MaxUnsampledEntries != 0 {
@@ -3463,9 +3463,9 @@ func (m *Authentication) MarshalTo(dAtA []byte) (int, error) {
var l int
_ = l
if m.AuthType != nil {
- nn12, err12 := m.AuthType.MarshalTo(dAtA[i:])
- if err12 != nil {
- return 0, err12
+ nn12, err := m.AuthType.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn12
}
@@ -3478,9 +3478,9 @@ func (m *Authentication_Tls) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintCfg(dAtA, i, uint64(m.Tls.Size()))
- n13, err13 := m.Tls.MarshalTo(dAtA[i:])
- if err13 != nil {
- return 0, err13
+ n13, err := m.Tls.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n13
}
@@ -3492,9 +3492,9 @@ func (m *Authentication_Mutual) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintCfg(dAtA, i, uint64(m.Mutual.Size()))
- n14, err14 := m.Mutual.MarshalTo(dAtA[i:])
- if err14 != nil {
- return 0, err14
+ n14, err := m.Mutual.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n14
}
@@ -3522,16 +3522,16 @@ func (m *Tls) MarshalTo(dAtA []byte) (int, error) {
i += copy(dAtA[i:], m.CaCertificates)
}
if m.TokenSource != nil {
- nn15, err15 := m.TokenSource.MarshalTo(dAtA[i:])
- if err15 != nil {
- return 0, err15
+ nn15, err := m.TokenSource.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn15
}
if m.TokenType != nil {
- nn16, err16 := m.TokenType.MarshalTo(dAtA[i:])
- if err16 != nil {
- return 0, err16
+ nn16, err := m.TokenType.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn16
}
@@ -3558,9 +3558,9 @@ func (m *Tls_Oauth) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintCfg(dAtA, i, uint64(m.Oauth.Size()))
- n17, err17 := m.Oauth.MarshalTo(dAtA[i:])
- if err17 != nil {
- return 0, err17
+ n17, err := m.Oauth.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n17
}
@@ -4188,27 +4188,12 @@ func (this *Rule) String() string {
if this == nil {
return "nil"
}
- repeatedStringForActions := "[]*Action{"
- for _, f := range this.Actions {
- repeatedStringForActions += strings.Replace(f.String(), "Action", "Action", 1) + ","
- }
- repeatedStringForActions += "}"
- repeatedStringForRequestHeaderOperations := "[]*Rule_HeaderOperationTemplate{"
- for _, f := range this.RequestHeaderOperations {
- repeatedStringForRequestHeaderOperations += strings.Replace(fmt.Sprintf("%v", f), "Rule_HeaderOperationTemplate", "Rule_HeaderOperationTemplate", 1) + ","
- }
- repeatedStringForRequestHeaderOperations += "}"
- repeatedStringForResponseHeaderOperations := "[]*Rule_HeaderOperationTemplate{"
- for _, f := range this.ResponseHeaderOperations {
- repeatedStringForResponseHeaderOperations += strings.Replace(fmt.Sprintf("%v", f), "Rule_HeaderOperationTemplate", "Rule_HeaderOperationTemplate", 1) + ","
- }
- repeatedStringForResponseHeaderOperations += "}"
s := strings.Join([]string{`&Rule{`,
`Match:` + fmt.Sprintf("%v", this.Match) + `,`,
- `Actions:` + repeatedStringForActions + `,`,
- `RequestHeaderOperations:` + repeatedStringForRequestHeaderOperations + `,`,
- `ResponseHeaderOperations:` + repeatedStringForResponseHeaderOperations + `,`,
- `Sampling:` + strings.Replace(this.Sampling.String(), "Sampling", "Sampling", 1) + `,`,
+ `Actions:` + strings.Replace(fmt.Sprintf("%v", this.Actions), "Action", "Action", 1) + `,`,
+ `RequestHeaderOperations:` + strings.Replace(fmt.Sprintf("%v", this.RequestHeaderOperations), "Rule_HeaderOperationTemplate", "Rule_HeaderOperationTemplate", 1) + `,`,
+ `ResponseHeaderOperations:` + strings.Replace(fmt.Sprintf("%v", this.ResponseHeaderOperations), "Rule_HeaderOperationTemplate", "Rule_HeaderOperationTemplate", 1) + `,`,
+ `Sampling:` + strings.Replace(fmt.Sprintf("%v", this.Sampling), "Sampling", "Sampling", 1) + `,`,
`}`,
}, "")
return s
@@ -4269,7 +4254,7 @@ func (this *Handler) String() string {
`Name:` + fmt.Sprintf("%v", this.Name) + `,`,
`Adapter:` + fmt.Sprintf("%v", this.Adapter) + `,`,
`Params:` + strings.Replace(fmt.Sprintf("%v", this.Params), "Struct", "types.Struct", 1) + `,`,
- `Connection:` + strings.Replace(this.Connection.String(), "Connection", "Connection", 1) + `,`,
+ `Connection:` + strings.Replace(fmt.Sprintf("%v", this.Connection), "Connection", "Connection", 1) + `,`,
`CompiledAdapter:` + fmt.Sprintf("%v", this.CompiledAdapter) + `,`,
`}`,
}, "")
@@ -4282,7 +4267,7 @@ func (this *Connection) String() string {
s := strings.Join([]string{`&Connection{`,
`Address:` + fmt.Sprintf("%v", this.Address) + `,`,
`Timeout:` + strings.Replace(fmt.Sprintf("%v", this.Timeout), "Duration", "types.Duration", 1) + `,`,
- `Authentication:` + strings.Replace(this.Authentication.String(), "Authentication", "Authentication", 1) + `,`,
+ `Authentication:` + strings.Replace(fmt.Sprintf("%v", this.Authentication), "Authentication", "Authentication", 1) + `,`,
`}`,
}, "")
return s
@@ -4292,8 +4277,8 @@ func (this *Sampling) String() string {
return "nil"
}
s := strings.Join([]string{`&Sampling{`,
- `Random:` + strings.Replace(this.Random.String(), "RandomSampling", "RandomSampling", 1) + `,`,
- `RateLimit:` + strings.Replace(this.RateLimit.String(), "RateLimitSampling", "RateLimitSampling", 1) + `,`,
+ `Random:` + strings.Replace(fmt.Sprintf("%v", this.Random), "RandomSampling", "RandomSampling", 1) + `,`,
+ `RateLimit:` + strings.Replace(fmt.Sprintf("%v", this.RateLimit), "RateLimitSampling", "RateLimitSampling", 1) + `,`,
`}`,
}, "")
return s
@@ -4304,7 +4289,7 @@ func (this *RandomSampling) String() string {
}
s := strings.Join([]string{`&RandomSampling{`,
`AttributeExpression:` + fmt.Sprintf("%v", this.AttributeExpression) + `,`,
- `PercentSampled:` + strings.Replace(this.PercentSampled.String(), "FractionalPercent", "FractionalPercent", 1) + `,`,
+ `PercentSampled:` + strings.Replace(fmt.Sprintf("%v", this.PercentSampled), "FractionalPercent", "FractionalPercent", 1) + `,`,
`UseIndependentRandomness:` + fmt.Sprintf("%v", this.UseIndependentRandomness) + `,`,
`}`,
}, "")
@@ -4315,7 +4300,7 @@ func (this *RateLimitSampling) String() string {
return "nil"
}
s := strings.Join([]string{`&RateLimitSampling{`,
- `SamplingDuration:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.SamplingDuration), "Duration", "types.Duration", 1), `&`, ``, 1) + `,`,
+ `SamplingDuration:` + strings.Replace(strings.Replace(this.SamplingDuration.String(), "Duration", "types.Duration", 1), `&`, ``, 1) + `,`,
`MaxUnsampledEntries:` + fmt.Sprintf("%v", this.MaxUnsampledEntries) + `,`,
`SamplingRate:` + fmt.Sprintf("%v", this.SamplingRate) + `,`,
`}`,
diff --git a/vendor/istio.io/api/policy/v1beta1/istio.policy.v1beta1.json b/vendor/istio.io/api/policy/v1beta1/istio.policy.v1beta1.json
new file mode 100644
index 000000000000..f27520896e2f
--- /dev/null
+++ b/vendor/istio.io/api/policy/v1beta1/istio.policy.v1beta1.json
@@ -0,0 +1,886 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Describes the rules used to configure Mixer's policy and telemetry features.",
+ "version": "v1beta1"
+ },
+ "components": {
+ "schemas": {
+ "istio.policy.v1beta1.Duration": {
+ "description": "An instance field of type Duration denotes that the expression for the field must evaluate to [ValueType.DURATION][istio.policy.v1beta1.ValueType.DURATION]",
+ "type": "object",
+ "properties": {
+ "value": {
+ "$ref": "#/components/schemas/google.protobuf.Duration"
+ }
+ }
+ },
+ "istio.policy.v1beta1.Value": {
+ "description": "An instance field of type Value denotes that the expression for the field is of dynamic type and can evaluate to any [ValueType][istio.policy.v1beta1.ValueType] enum values. For example, when authoring an instance configuration for a template that has a field `data` of type `istio.policy.v1beta1.Value`, both of the following expressions are valid `data: source.ip | ip(\"0.0.0.0\")`, `data: request.id | \"\"`; the resulting type is either ValueType.IP_ADDRESS or ValueType.STRING for the two cases respectively.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "stringValue": {
+ "description": "Used for values of type STRING",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "int64Value": {
+ "description": "Used for values of type INT64",
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "doubleValue": {
+ "description": "Used for values of type DOUBLE",
+ "type": "number",
+ "format": "double"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "boolValue": {
+ "description": "Used for values of type BOOL",
+ "type": "boolean"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "ipAddressValue": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.IPAddress"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "timestampValue": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.TimeStamp"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "durationValue": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.Duration"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "emailAddressValue": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.EmailAddress"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "dnsNameValue": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.DNSName"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "uriValue": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.Uri"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "stringMapValue": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.StringMap"
+ }
+ }
+ }
+ ]
+ },
+ "istio.policy.v1beta1.AttributeManifest": {
+ "description": "AttributeManifest describes a set of Attributes produced by some component of an Istio deployment.",
+ "type": "object",
+ "required": [
+ "attributes"
+ ],
+ "properties": {
+ "name": {
+ "description": "Required. Name of the component producing these attributes. This can be the proxy (with the canonical name `istio-proxy`) or the name of an `attributes` kind adapter in Mixer.",
+ "type": "string",
+ "format": "string"
+ },
+ "revision": {
+ "description": "Optional. The revision of this document. Assigned by server.",
+ "type": "string",
+ "format": "string"
+ },
+ "attributes": {
+ "description": "The set of attributes this Istio component will be responsible for producing at runtime. We map from attribute name to the attribute's specification. The name of an attribute, which is how attributes are referred to in aspect configuration, must conform to: Name = IDENT { SEPARATOR IDENT };",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.AttributeManifest.AttributeInfo"
+ }
+ }
+ }
+ },
+ "istio.policy.v1beta1.AttributeManifest.AttributeInfo": {
+ "description": "AttributeInfo describes the schema of an Istio `Attribute`.",
+ "type": "object",
+ "properties": {
+ "description": {
+ "description": "Optional. A human-readable description of the attribute's purpose.",
+ "type": "string",
+ "format": "string"
+ },
+ "valueType": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.ValueType"
+ }
+ }
+ },
+ "istio.policy.v1beta1.ValueType": {
+ "description": "ValueType describes the types that values in the Istio system can take. These are used to describe the type of Attributes at run time, describe the type of the result of evaluating an expression, and to describe the runtime type of fields of other descriptors.",
+ "enum": [
+ "VALUE_TYPE_UNSPECIFIED",
+ "STRING",
+ "INT64",
+ "DOUBLE",
+ "BOOL",
+ "TIMESTAMP",
+ "IP_ADDRESS",
+ "EMAIL_ADDRESS",
+ "URI",
+ "DNS_NAME",
+ "DURATION",
+ "STRING_MAP"
+ ],
+ "default": "VALUE_TYPE_UNSPECIFIED"
+ },
+ "istio.policy.v1beta1.Rule": {
+ "description": "A Rule is a selector and a set of intentions to be executed when the selector is `true`",
+ "type": "object",
+ "properties": {
+ "match": {
+ "description": "Required. Match is an attribute based predicate. When Mixer receives a request it evaluates the match expression and executes all the associated `actions` if the match evaluates to true.",
+ "type": "string",
+ "format": "string"
+ },
+ "actions": {
+ "description": "Optional. The actions that will be executed when match evaluates to `true`.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.Action"
+ }
+ },
+ "requestHeaderOperations": {
+ "description": "Optional. Templatized operations on the request headers using values produced by the rule actions. Require the check action result to be OK.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.Rule.HeaderOperationTemplate"
+ }
+ },
+ "responseHeaderOperations": {
+ "description": "Optional. Templatized operations on the response headers using values produced by the rule actions. Require the check action result to be OK.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.Rule.HeaderOperationTemplate"
+ }
+ },
+ "sampling": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.Sampling"
+ }
+ }
+ },
+ "istio.policy.v1beta1.Action": {
+ "description": "Action describes which [Handler][istio.policy.v1beta1.Handler] to invoke and what data to pass to it for processing.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Optional. A handle to refer to the results of the action.",
+ "type": "string",
+ "format": "string"
+ },
+ "handler": {
+ "description": "Required. Fully qualified name of the handler to invoke. Must match the `name` of a [Handler][istio.policy.v1beta1.Handler.name].",
+ "type": "string",
+ "format": "string"
+ },
+ "instances": {
+ "description": "Required. Each value must match the fully qualified name of the [Instance][istio.policy.v1beta1.Instance.name]s. Referenced instances are evaluated by resolving the attributes/literals for all the fields. The constructed objects are then passed to the `handler` referenced within this action.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.policy.v1beta1.Rule.HeaderOperationTemplate": {
+ "description": "A template for an HTTP header manipulation. Values in the template are expressions that may reference action outputs by name. For example, if an action `x` produces an output with a field `f`, then the header value expressions may use attribute `x.output.f` to reference the field value: ```yaml request_header_operations: - name: x-istio-header values: - x.output.f ```",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Required. Header name literal value.",
+ "type": "string",
+ "format": "string"
+ },
+ "values": {
+ "description": "Optional. Header value expressions.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "operation": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.Rule.HeaderOperationTemplate.Operation"
+ }
+ }
+ },
+ "istio.policy.v1beta1.Sampling": {
+ "description": "Sampling provides configuration of sampling strategies for Rule actions. Multiple sampling strategies are supported. When multiple strategies are configured, a request must be selected by all configured sampling strategies.",
+ "type": "object",
+ "properties": {
+ "random": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.RandomSampling"
+ },
+ "rateLimit": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.RateLimitSampling"
+ }
+ }
+ },
+ "istio.policy.v1beta1.Rule.HeaderOperationTemplate.Operation": {
+ "description": "Header operation type.",
+ "enum": [
+ "REPLACE",
+ "REMOVE",
+ "APPEND"
+ ],
+ "default": "REPLACE"
+ },
+ "istio.policy.v1beta1.Instance": {
+ "description": "An Instance tells Mixer how to create instances for particular template.",
+ "type": "object",
+ "required": [
+ "attributeBindings"
+ ],
+ "properties": {
+ "name": {
+ "description": "Required. The name of this instance",
+ "type": "string",
+ "format": "string"
+ },
+ "compiledTemplate": {
+ "description": "Required. The name of the compiled in template this instance creates instances for. For referencing non compiled-in templates, use the `template` field instead.",
+ "type": "string",
+ "format": "string"
+ },
+ "template": {
+ "description": "Required. The name of the template this instance creates instances for. For referencing compiled-in templates, use the `compiled_template` field instead.",
+ "type": "string",
+ "format": "string"
+ },
+ "params": {
+ "$ref": "#/components/schemas/google.protobuf.Struct"
+ },
+ "attributeBindings": {
+ "description": "Optional. Defines attribute bindings to map the output of attribute-producing adapters back into the attribute space. The variable `output` refers to the output template instance produced by the adapter. The following example derives `source.namespace` from `source.uid` in the context of Kubernetes: ```yaml params: # Pass the required attribute data to the adapter source_uid: source.uid | \"\" attribute_bindings: # Fill the new attributes from the adapter produced output source.namespace: output.source_namespace ```",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.policy.v1beta1.Handler": {
+ "description": "Handler allows the operator to configure a specific adapter implementation. Each adapter implementation defines its own `params` proto.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Required. Must be unique in the entire Mixer configuration. Used by [Actions][istio.policy.v1beta1.Action.handler] to refer to this handler.",
+ "type": "string",
+ "format": "string"
+ },
+ "params": {
+ "$ref": "#/components/schemas/google.protobuf.Struct"
+ },
+ "compiledAdapter": {
+ "description": "Required. The name of the compiled in adapter this handler instantiates. For referencing non compiled-in adapters, use the `adapter` field instead.",
+ "type": "string",
+ "format": "string"
+ },
+ "adapter": {
+ "description": "Required. The name of a specific adapter implementation. For referencing compiled-in adapters, use the `compiled_adapter` field instead.",
+ "type": "string",
+ "format": "string"
+ },
+ "connection": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.Connection"
+ }
+ }
+ },
+ "istio.policy.v1beta1.Connection": {
+ "description": "Connection allows the operator to specify the endpoint for out-of-process infrastructure backend. Connection is part of the handler custom resource and is specified alongside adapter specific configuration.",
+ "type": "object",
+ "properties": {
+ "address": {
+ "description": "The address of the backend.",
+ "type": "string",
+ "format": "string"
+ },
+ "authentication": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.Authentication"
+ }
+ }
+ },
+ "istio.policy.v1beta1.Authentication": {
+ "description": "Authentication allows the operator to specify the authentication of connections to out-of-process infrastructure backend.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "tls": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.Tls"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "mutual": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.Mutual"
+ }
+ }
+ }
+ ]
+ },
+ "istio.policy.v1beta1.RandomSampling": {
+ "description": "RandomSampling will filter based on the comparison of a randomly-generated value against the threshold provided.",
+ "type": "object",
+ "properties": {
+ "attributeExpression": {
+ "description": "Specifies an attribute expression to use to override the numerator in the `percent_sampled` field. If this value is set, but no value is found OR if that value is not a numeric value, then the derived sampling rate will be 0 (meaning no `Action`s are executed for a `Rule`).",
+ "type": "string",
+ "format": "string"
+ },
+ "percentSampled": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.FractionalPercent"
+ },
+ "useIndependentRandomness": {
+ "description": "By default sampling will be based on the value of the request header `x-request-id`. This behavior will cause consistent sampling across `Rule`s and for the full trace of a request through a mesh (across hosts). If that value is not present and/or `use_independent_randomness` is set to true, the sampling will be done based on the value of attribute specified in `attribute_epxression`. If that attribute does not exist, the system will behave as if the sampling rate was 0 (meaning no `Action`s are executed for a `Rule`).",
+ "type": "boolean"
+ }
+ }
+ },
+ "istio.policy.v1beta1.RateLimitSampling": {
+ "description": "RateLimitSampling provides the ability to limit the number of Rule action executions that occur over a period of time.",
+ "type": "object",
+ "properties": {
+ "maxUnsampledEntries": {
+ "description": "Number of entries to allow during the `sampling_duration` before sampling is enforced.",
+ "type": "integer",
+ "format": "int64"
+ },
+ "samplingRate": {
+ "description": "The rate at which to sample entries once the unsampled limit has been reached. Sampling will be enforced as 1 per every `sampling_rate` entries allowed.",
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "istio.policy.v1beta1.FractionalPercent": {
+ "description": "A fractional percentage is used in cases in which for performance reasons performing floating point to integer conversions during randomness calculations is undesirable. The message includes both a numerator and denominator that together determine the final fractional value.",
+ "type": "object",
+ "properties": {
+ "numerator": {
+ "description": "Specifies the numerator. Defaults to 0.",
+ "type": "integer"
+ },
+ "denominator": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.FractionalPercent.DenominatorType"
+ }
+ }
+ },
+ "istio.policy.v1beta1.FractionalPercent.DenominatorType": {
+ "description": "Fraction percentages support several fixed denominator values.",
+ "enum": [
+ "HUNDRED",
+ "TEN_THOUSAND"
+ ],
+ "default": "HUNDRED"
+ },
+ "istio.policy.v1beta1.Tls": {
+ "description": "Tls let operator specify client authentication setting when TLS is used for connection to the backend.",
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "caCertificates": {
+ "description": "The path to the file holding additional CA certificates to well known public certs.",
+ "type": "string",
+ "format": "string"
+ },
+ "serverName": {
+ "description": "Used to configure mixer TLS client to verify the hostname on the returned certificates. It is also included in the client's handshake to support SNI.",
+ "type": "string",
+ "format": "string"
+ },
+ "tokenPath": {
+ "description": "The path to the file holding the auth token (password, jwt token, api key, etc).",
+ "type": "string",
+ "format": "string"
+ },
+ "authHeader": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.Tls.AuthHeader"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "caCertificates": {
+ "description": "The path to the file holding additional CA certificates to well known public certs.",
+ "type": "string",
+ "format": "string"
+ },
+ "serverName": {
+ "description": "Used to configure mixer TLS client to verify the hostname on the returned certificates. It is also included in the client's handshake to support SNI.",
+ "type": "string",
+ "format": "string"
+ },
+ "tokenPath": {
+ "description": "The path to the file holding the auth token (password, jwt token, api key, etc).",
+ "type": "string",
+ "format": "string"
+ },
+ "customHeader": {
+ "description": "Customized header key to hold access token, e.g. x-api-key. Token will be passed as what it is.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "caCertificates": {
+ "description": "The path to the file holding additional CA certificates to well known public certs.",
+ "type": "string",
+ "format": "string"
+ },
+ "serverName": {
+ "description": "Used to configure mixer TLS client to verify the hostname on the returned certificates. It is also included in the client's handshake to support SNI.",
+ "type": "string",
+ "format": "string"
+ },
+ "oauth": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.OAuth"
+ },
+ "authHeader": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.Tls.AuthHeader"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "caCertificates": {
+ "description": "The path to the file holding additional CA certificates to well known public certs.",
+ "type": "string",
+ "format": "string"
+ },
+ "serverName": {
+ "description": "Used to configure mixer TLS client to verify the hostname on the returned certificates. It is also included in the client's handshake to support SNI.",
+ "type": "string",
+ "format": "string"
+ },
+ "oauth": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.OAuth"
+ },
+ "customHeader": {
+ "description": "Customized header key to hold access token, e.g. x-api-key. Token will be passed as what it is.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ ]
+ },
+ "istio.policy.v1beta1.Mutual": {
+ "description": "Mutual let operator specify TLS configuration for Mixer as client if mutual TLS is used to secure connection to adapter backend.",
+ "type": "object",
+ "properties": {
+ "caCertificates": {
+ "description": "The path to the file holding additional CA certificates that are needed to verify the presented adapter certificates. By default Mixer should already include Istio CA certificates and system certificates in cert pool.",
+ "type": "string",
+ "format": "string"
+ },
+ "serverName": {
+ "description": "Used to configure mixer mutual TLS client to supply server name for SNI. It is not used to verify the hostname of the peer certificate, since Istio verifies whitelisted SAN fields in mutual TLS.",
+ "type": "string",
+ "format": "string"
+ },
+ "privateKey": {
+ "description": "The path to the file holding the private key for mutual TLS. If omitted, the default Mixer private key will be used.",
+ "type": "string",
+ "format": "string"
+ },
+ "clientCertificate": {
+ "description": "The path to the file holding client certificate for mutual TLS. If omitted, the default Mixer certificates will be used.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.policy.v1beta1.OAuth": {
+ "description": "OAuth let operator specify config to fetch access token via oauth when using TLS for connection to the backend.",
+ "type": "object",
+ "required": [
+ "endpointParams"
+ ],
+ "properties": {
+ "clientId": {
+ "description": "REQUIRED. OAuth client id for mixer.",
+ "type": "string",
+ "format": "string"
+ },
+ "clientSecret": {
+ "description": "REQUIRED. The path to the file holding the client secret for oauth.",
+ "type": "string",
+ "format": "string"
+ },
+ "tokenUrl": {
+ "description": "REQUIRED. The Resource server's token endpoint URL.",
+ "type": "string",
+ "format": "string"
+ },
+ "scopes": {
+ "description": "List of requested permissions.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "endpointParams": {
+ "description": "Additional parameters for requests to the token endpoint.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.policy.v1beta1.Tls.AuthHeader": {
+ "description": "AuthHeader specifies how to pass access token with authorization header.",
+ "enum": [
+ "PLAIN",
+ "BEARER"
+ ],
+ "default": "PLAIN"
+ },
+ "istio.policy.v1beta1.DirectHttpResponse": {
+ "description": "Direct HTTP response for a client-facing error message which can be attached to an RPC error.",
+ "type": "object",
+ "required": [
+ "headers"
+ ],
+ "properties": {
+ "body": {
+ "description": "HTTP response body.",
+ "type": "string",
+ "format": "string"
+ },
+ "code": {
+ "$ref": "#/components/schemas/istio.policy.v1beta1.HttpStatusCode"
+ },
+ "headers": {
+ "description": "Optional HTTP response headers.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.policy.v1beta1.HttpStatusCode": {
+ "description": "HTTP response codes. For more details: http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml",
+ "enum": [
+ "Empty",
+ "Continue",
+ "OK",
+ "Created",
+ "Accepted",
+ "NonAuthoritativeInformation",
+ "NoContent",
+ "ResetContent",
+ "PartialContent",
+ "MultiStatus",
+ "AlreadyReported",
+ "IMUsed",
+ "MultipleChoices",
+ "MovedPermanently",
+ "Found",
+ "SeeOther",
+ "NotModified",
+ "UseProxy",
+ "TemporaryRedirect",
+ "PermanentRedirect",
+ "BadRequest",
+ "Unauthorized",
+ "PaymentRequired",
+ "Forbidden",
+ "NotFound",
+ "MethodNotAllowed",
+ "NotAcceptable",
+ "ProxyAuthenticationRequired",
+ "RequestTimeout",
+ "Conflict",
+ "Gone",
+ "LengthRequired",
+ "PreconditionFailed",
+ "PayloadTooLarge",
+ "URITooLong",
+ "UnsupportedMediaType",
+ "RangeNotSatisfiable",
+ "ExpectationFailed",
+ "MisdirectedRequest",
+ "UnprocessableEntity",
+ "Locked",
+ "FailedDependency",
+ "UpgradeRequired",
+ "PreconditionRequired",
+ "TooManyRequests",
+ "RequestHeaderFieldsTooLarge",
+ "InternalServerError",
+ "NotImplemented",
+ "BadGateway",
+ "ServiceUnavailable",
+ "GatewayTimeout",
+ "HTTPVersionNotSupported",
+ "VariantAlsoNegotiates",
+ "InsufficientStorage",
+ "LoopDetected",
+ "NotExtended",
+ "NetworkAuthenticationRequired"
+ ],
+ "default": "Empty"
+ },
+ "istio.policy.v1beta1.IPAddress": {
+ "description": "An instance field of type IPAddress denotes that the expression for the field must evaluate to [ValueType.IP_ADDRESS][istio.policy.v1beta1.ValueType.IP_ADDRESS]",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "IPAddress encoded as bytes.",
+ "type": "string",
+ "format": "byte"
+ }
+ }
+ },
+ "istio.policy.v1beta1.TimeStamp": {
+ "description": "An instance field of type TimeStamp denotes that the expression for the field must evaluate to [ValueType.TIMESTAMP][istio.policy.v1beta1.ValueType.TIMESTAMP]",
+ "type": "object",
+ "properties": {
+ "value": {
+ "$ref": "#/components/schemas/google.protobuf.Timestamp"
+ }
+ }
+ },
+ "istio.policy.v1beta1.EmailAddress": {
+ "description": "DO NOT USE !! Under Development An instance field of type EmailAddress denotes that the expression for the field must evaluate to [ValueType.EMAIL_ADDRESS][istio.policy.v1beta1.ValueType.EMAIL_ADDRESS]",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "EmailAddress encoded as string.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.policy.v1beta1.DNSName": {
+ "description": "An instance field of type DNSName denotes that the expression for the field must evaluate to [ValueType.DNS_NAME][istio.policy.v1beta1.ValueType.DNS_NAME]",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "DNSName encoded as string.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.policy.v1beta1.Uri": {
+ "description": "DO NOT USE !! Under Development An instance field of type Uri denotes that the expression for the field must evaluate to [ValueType.URI][istio.policy.v1beta1.ValueType.URI]",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Uri encoded as string.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.policy.v1beta1.StringMap": {
+ "description": "An instance field of type StringMap denotes that the expression for the field must evaluate to [ValueType.STRING_MAP][istio.policy.v1beta1.ValueType.STRING_MAP]",
+ "type": "object",
+ "required": [
+ "value"
+ ],
+ "properties": {
+ "value": {
+ "description": "StringMap encoded as a map of strings",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "google.protobuf.Duration": {
+ "description": "Duration encoded as google.protobuf.Duration.",
+ "type": "object",
+ "properties": {
+ "seconds": {
+ "description": "Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years",
+ "type": "integer",
+ "format": "int64"
+ },
+ "nanos": {
+ "description": "Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "google.protobuf.Struct": {
+ "description": "Represents a structured value.",
+ "type": "object",
+ "required": [
+ "fields"
+ ],
+ "properties": {
+ "fields": {
+ "description": "Unordered map of dynamically typed values.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/google.protobuf.Value"
+ }
+ }
+ }
+ },
+ "google.protobuf.Timestamp": {
+ "description": "TimeStamp encoded as google.protobuf.Timestamp.",
+ "type": "object",
+ "properties": {
+ "seconds": {
+ "description": "Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.",
+ "type": "integer",
+ "format": "int64"
+ },
+ "nanos": {
+ "description": "Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "google.protobuf.Value": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "nullValue": {
+ "$ref": "#/components/schemas/google.protobuf.NullValue"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "numberValue": {
+ "description": "Represents a double value.",
+ "type": "number",
+ "format": "double"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "stringValue": {
+ "description": "Represents a string value.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "boolValue": {
+ "description": "Represents a boolean value.",
+ "type": "boolean"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "structValue": {
+ "$ref": "#/components/schemas/google.protobuf.Struct"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "properties": {
+ "listValue": {
+ "$ref": "#/components/schemas/google.protobuf.ListValue"
+ }
+ }
+ }
+ ]
+ },
+ "google.protobuf.ListValue": {
+ "description": "Represents a repeated `Value`.",
+ "type": "object",
+ "properties": {
+ "values": {
+ "description": "Repeated field of dynamically typed values.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/google.protobuf.Value"
+ }
+ }
+ }
+ },
+ "google.protobuf.NullValue": {
+ "description": "Represents a null value.",
+ "type": "string",
+ "enum": [
+ "NULL_VALUE"
+ ]
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/vendor/istio.io/api/policy/v1beta1/type.pb.go b/vendor/istio.io/api/policy/v1beta1/type.pb.go
index eca7ef5797aa..4cf671c0bd43 100644
--- a/vendor/istio.io/api/policy/v1beta1/type.pb.go
+++ b/vendor/istio.io/api/policy/v1beta1/type.pb.go
@@ -1531,9 +1531,9 @@ func (m *Value) MarshalTo(dAtA []byte) (int, error) {
var l int
_ = l
if m.Value != nil {
- nn1, err1 := m.Value.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ nn1, err := m.Value.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += nn1
}
@@ -1581,9 +1581,9 @@ func (m *Value_IpAddressValue) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
i++
i = encodeVarintType(dAtA, i, uint64(m.IpAddressValue.Size()))
- n2, err2 := m.IpAddressValue.MarshalTo(dAtA[i:])
- if err2 != nil {
- return 0, err2
+ n2, err := m.IpAddressValue.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n2
}
@@ -1595,9 +1595,9 @@ func (m *Value_TimestampValue) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x32
i++
i = encodeVarintType(dAtA, i, uint64(m.TimestampValue.Size()))
- n3, err3 := m.TimestampValue.MarshalTo(dAtA[i:])
- if err3 != nil {
- return 0, err3
+ n3, err := m.TimestampValue.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n3
}
@@ -1609,9 +1609,9 @@ func (m *Value_DurationValue) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x3a
i++
i = encodeVarintType(dAtA, i, uint64(m.DurationValue.Size()))
- n4, err4 := m.DurationValue.MarshalTo(dAtA[i:])
- if err4 != nil {
- return 0, err4
+ n4, err := m.DurationValue.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n4
}
@@ -1623,9 +1623,9 @@ func (m *Value_EmailAddressValue) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x42
i++
i = encodeVarintType(dAtA, i, uint64(m.EmailAddressValue.Size()))
- n5, err5 := m.EmailAddressValue.MarshalTo(dAtA[i:])
- if err5 != nil {
- return 0, err5
+ n5, err := m.EmailAddressValue.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n5
}
@@ -1637,9 +1637,9 @@ func (m *Value_DnsNameValue) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x4a
i++
i = encodeVarintType(dAtA, i, uint64(m.DnsNameValue.Size()))
- n6, err6 := m.DnsNameValue.MarshalTo(dAtA[i:])
- if err6 != nil {
- return 0, err6
+ n6, err := m.DnsNameValue.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n6
}
@@ -1651,9 +1651,9 @@ func (m *Value_UriValue) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x52
i++
i = encodeVarintType(dAtA, i, uint64(m.UriValue.Size()))
- n7, err7 := m.UriValue.MarshalTo(dAtA[i:])
- if err7 != nil {
- return 0, err7
+ n7, err := m.UriValue.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n7
}
@@ -1665,9 +1665,9 @@ func (m *Value_StringMapValue) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x5a
i++
i = encodeVarintType(dAtA, i, uint64(m.StringMapValue.Size()))
- n8, err8 := m.StringMapValue.MarshalTo(dAtA[i:])
- if err8 != nil {
- return 0, err8
+ n8, err := m.StringMapValue.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n8
}
@@ -1716,9 +1716,9 @@ func (m *Duration) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintType(dAtA, i, uint64(m.Value.Size()))
- n9, err9 := m.Value.MarshalTo(dAtA[i:])
- if err9 != nil {
- return 0, err9
+ n9, err := m.Value.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n9
}
@@ -1744,9 +1744,9 @@ func (m *TimeStamp) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintType(dAtA, i, uint64(m.Value.Size()))
- n10, err10 := m.Value.MarshalTo(dAtA[i:])
- if err10 != nil {
- return 0, err10
+ n10, err := m.Value.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n10
}
diff --git a/vendor/istio.io/api/rbac/v1alpha1/istio.rbac.v1alpha1.json b/vendor/istio.io/api/rbac/v1alpha1/istio.rbac.v1alpha1.json
new file mode 100644
index 000000000000..90467e685fae
--- /dev/null
+++ b/vendor/istio.io/api/rbac/v1alpha1/istio.rbac.v1alpha1.json
@@ -0,0 +1,363 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Configuration for Role Based Access Control.",
+ "version": "v1alpha1"
+ },
+ "components": {
+ "schemas": {
+ "istio.rbac.v1alpha1.WorkloadSelector": {
+ "description": "This is forked from the networking/v1alpha3/sidecar.proto to avoid a direct dependency from the rbac API on networking API. TODO: Move the WorkloadSelector to a common place to be shared by other packages. WorkloadSelector specifies the criteria used to determine if the Gateway or Sidecar resource can be applied to a proxy. The matching criteria includes the metadata associated with a proxy, workload instance info such as labels attached to the pod/VM, or any other info that the proxy provides to Istio during the initial handshake. If multiple conditions are specified, all conditions need to match in order for the workload instance to be selected. Currently, only label based selection mechanism is supported.",
+ "type": "object",
+ "required": [
+ "labels"
+ ],
+ "properties": {
+ "labels": {
+ "description": "One or more labels that indicate a specific set of pods/VMs on which this sidecar configuration should be applied. The scope of label search is restricted to the configuration namespace in which the the resource is present.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.rbac.v1alpha1.AuthorizationPolicy": {
+ "description": "AuthorizationPolicy to enforce access control on a selected workload instance.",
+ "type": "object",
+ "properties": {
+ "workloadSelector": {
+ "$ref": "#/components/schemas/istio.rbac.v1alpha1.WorkloadSelector"
+ },
+ "allow": {
+ "description": "A list of bindings that specify the subjects and permissions to the selected workload instance.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.rbac.v1alpha1.ServiceRoleBinding"
+ }
+ }
+ }
+ },
+ "istio.rbac.v1alpha1.ServiceRoleBinding": {
+ "description": "ServiceRoleBinding assigns a ServiceRole to a list of subjects.",
+ "type": "object",
+ "properties": {
+ "subjects": {
+ "description": "Required. List of subjects that are assigned the ServiceRole object.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.rbac.v1alpha1.Subject"
+ }
+ },
+ "roleRef": {
+ "$ref": "#/components/schemas/istio.rbac.v1alpha1.RoleRef"
+ },
+ "mode": {
+ "$ref": "#/components/schemas/istio.rbac.v1alpha1.EnforcementMode"
+ },
+ "actions": {
+ "description": "Inline role definition. An inline role is a role that is defined inside an authorization policy, instead of explicitly defined in a ServiceRole object. Inline roles can be used for the role definitions that are not intended to be reused in other bindings, while explicit roles are reusable. Both inline roles (defined in \"actions\" field) and explicit roles (defined in ServiceRole) are supported. Users should use only one of them in a single binding. For example, the following “product-frontend” AuthorizationPolicy allows “frontend” service to view “product” service on “/info” path. ```yaml apiVersion: \"rbac.istio.io/v1alpha1\" kind: AuthorizationPolicy metadata: name: product-frontend namespace: ns1 spec: selector: labels: app: product allow: - subjects: - names: [\"cluster.local/ns/default/sa/frontend\"] actions: - paths: [\"/info\"] methods: [\"GET\"] Required. The set of access rules (permissions) that the role has.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.rbac.v1alpha1.AccessRule"
+ }
+ },
+ "role": {
+ "description": "A `role` inside a ServiceRoleBinding refers to the ServiceRole that this ServiceRoleBinding binds to. A ServiceRoleBinding can bind to a ServiceRole in the same namespace or the root namespace. A ServiceRole in the root namespace represents a mesh global ServiceRole. The value of `role` is the name of the ServiceRole, and it can start with or without a forward slash (\"/\"). When a `role` starts with \"/\", e.g. \"/service-viewer\", it means that this ServiceRoleBinding refers to the ServiceRole in the configurable Istio root namespace. When a `role` starts without \"/\", this ServiceRoleBinding refers to the ServiceRole in the same namespace as the AuthorizationPolicy's, which contains said ServiceRoleBinding.",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.rbac.v1alpha1.ServiceRole": {
+ "description": "ServiceRole specification contains a list of access rules (permissions).",
+ "type": "object",
+ "properties": {
+ "rules": {
+ "description": "Required. The set of access rules (permissions) that the role has.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.rbac.v1alpha1.AccessRule"
+ }
+ }
+ }
+ },
+ "istio.rbac.v1alpha1.AccessRule": {
+ "description": "AccessRule defines a permission to access a list of services.",
+ "type": "object",
+ "properties": {
+ "services": {
+ "description": "Required. A list of service names. Exact match, prefix match, and suffix match are supported for service names. For example, the service name \"bookstore.mtv.cluster.local\" matches \"bookstore.mtv.cluster.local\" (exact match), or \"bookstore*\" (prefix match), or \"*.mtv.cluster.local\" (suffix match). If set to [\"*\"], it refers to all services in the namespace.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "hosts": {
+ "description": "Optional. A list of HTTP hosts. This is matched against the HOST header in a HTTP request. Exact match, prefix match and suffix match are supported. For example, the host \"test.abc.com\" matches \"test.abc.com\" (exact match), or \"*.abc.com\" (prefix match), or \"test.abc.*\" (suffix match). If not specified, it matches to any host. This field should not be set for TCP services. The policy will be ignored.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "notHosts": {
+ "description": "Optional. A list of HTTP hosts that must not be matched.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "paths": {
+ "description": "Optional. A list of HTTP paths or gRPC methods. gRPC methods must be presented as fully-qualified name in the form of \"/packageName.serviceName/methodName\" and are case sensitive. Exact match, prefix match, and suffix match are supported. For example, the path \"/books/review\" matches \"/books/review\" (exact match), or \"/books/*\" (prefix match), or \"*/review\" (suffix match). If not specified, it matches to any path. This field should not be set for TCP services. The policy will be ignored.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "notPaths": {
+ "description": "Optional. A list of HTTP paths or gRPC methods that must not be matched.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "methods": {
+ "description": "Optional. A list of HTTP methods (e.g., \"GET\", \"POST\"). If not specified or specified as \"*\", it matches to any methods. This field should not be set for TCP services. The policy will be ignored. For gRPC services, only `POST` is allowed; other methods will result in denying services.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "notMethods": {
+ "description": "Optional. A list of HTTP methods that must not be matched. Note: It's an error to set methods and not_methods at the same time.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "ports": {
+ "description": "Optional. A list of port numbers of the request. If not specified, it matches to any port number. Note: It's an error to set ports and not_ports at the same time.",
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "notPorts": {
+ "description": "Optional. A list of port numbers that must not be matched. Note: It's an error to set ports and not_ports at the same time.",
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "constraints": {
+ "description": "Optional. Extra constraints in the ServiceRole specification.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.rbac.v1alpha1.AccessRule.Constraint"
+ }
+ }
+ }
+ },
+ "istio.rbac.v1alpha1.AccessRule.Constraint": {
+ "description": "Definition of a custom constraint. The supported keys are listed in the \"constraint and properties\" page.",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "Key of the constraint.",
+ "type": "string",
+ "format": "string"
+ },
+ "values": {
+ "description": "List of valid values for the constraint. Exact match, prefix match, and suffix match are supported. For example, the value \"v1alpha2\" matches \"v1alpha2\" (exact match), or \"v1*\" (prefix match), or \"*alpha2\" (suffix match).",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.rbac.v1alpha1.EnforcementMode": {
+ "description": "RBAC ServiceRoleBinding enforcement mode, used to verify new ServiceRoleBinding configs work as expected before rolling to production. RBAC engine only logs results from configs that are in permissive mode, and discards result before returning to the user.",
+ "enum": [
+ "ENFORCED",
+ "PERMISSIVE"
+ ],
+ "default": "ENFORCED"
+ },
+ "istio.rbac.v1alpha1.Subject": {
+ "description": "Subject defines an identity. The identity is either a user or identified by a set of `properties`. The supported keys in `properties` are listed in \"constraint and properties\" page.",
+ "type": "object",
+ "required": [
+ "properties"
+ ],
+ "properties": {
+ "user": {
+ "description": "Optional. The user name/ID that the subject represents.",
+ "type": "string",
+ "format": "string"
+ },
+ "names": {
+ "description": "Optional. A list of subject names. This is matched to the `source.principal` attribute. If one of subject names is \"*\", it matches to a subject with any name. Prefix and suffix matches are supported.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "notNames": {
+ "description": "Optional. A list of subject names that must not be matched.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "group": {
+ "description": "Optional. The group that the subject belongs to. Deprecated. Use groups and not_groups instead.",
+ "type": "string",
+ "format": "string"
+ },
+ "groups": {
+ "description": "Optional. A list of groups that the subject represents. This is matched to the `request.auth.claims[groups]` attribute. If not specified, it applies to any groups.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "notGroups": {
+ "description": "Optional. A list of groups that must not be matched.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "namespaces": {
+ "description": "Optional. A list of namespaces that the subject represents. This is matched to the `source.namespace` attribute. If not specified, it applies to any namespaces.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "notNamespaces": {
+ "description": "Optional. A list of namespaces that must not be matched.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "ips": {
+ "description": "Optional. A list of IP address or CIDR ranges that the subject represents. E.g. 192.168.100.2 or 10.1.0.0/16. If not specified, it applies to any IP addresses.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "notIps": {
+ "description": "Optional. A list of IP addresses or CIDR ranges that must not be matched.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "properties": {
+ "description": "Optional. The set of properties that identify the subject.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "format": "string"
+ }
+ }
+ }
+ },
+ "istio.rbac.v1alpha1.RoleRef": {
+ "description": "RoleRef refers to a role object.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Required. The name of the ServiceRole object being referenced. The ServiceRole object must be in the same namespace as the ServiceRoleBinding object.",
+ "type": "string",
+ "format": "string"
+ },
+ "kind": {
+ "description": "Required. The type of the role being referenced. Currently, \"ServiceRole\" is the only supported value for \"kind\".",
+ "type": "string",
+ "format": "string"
+ }
+ }
+ },
+ "istio.rbac.v1alpha1.RbacConfig": {
+ "description": "RbacConfig implements the ClusterRbaConfig Custom Resource Definition for controlling Istio RBAC behavior. The ClusterRbaConfig Custom Resource is a singleton where only one ClusterRbaConfig should be created globally in the mesh and the namespace should be the same to other Istio components, which usually is `istio-system`.",
+ "type": "object",
+ "properties": {
+ "mode": {
+ "$ref": "#/components/schemas/istio.rbac.v1alpha1.RbacConfig.Mode"
+ },
+ "inclusion": {
+ "$ref": "#/components/schemas/istio.rbac.v1alpha1.RbacConfig.Target"
+ },
+ "exclusion": {
+ "$ref": "#/components/schemas/istio.rbac.v1alpha1.RbacConfig.Target"
+ },
+ "enforcementMode": {
+ "$ref": "#/components/schemas/istio.rbac.v1alpha1.EnforcementMode"
+ }
+ }
+ },
+ "istio.rbac.v1alpha1.RbacConfig.Mode": {
+ "enum": [
+ "OFF",
+ "ON",
+ "ON_WITH_INCLUSION",
+ "ON_WITH_EXCLUSION"
+ ],
+ "default": "OFF"
+ },
+ "istio.rbac.v1alpha1.RbacConfig.Target": {
+ "description": "Target defines a list of services or namespaces.",
+ "type": "object",
+ "properties": {
+ "services": {
+ "description": "A list of services.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "namespaces": {
+ "description": "A list of namespaces.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ }
+ },
+ "workloadSelectors": {
+ "description": "A list of workload instances.",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/istio.rbac.v1alpha1.WorkloadSelector"
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/vendor/istio.io/api/rbac/v1alpha1/rbac.pb.go b/vendor/istio.io/api/rbac/v1alpha1/rbac.pb.go
index 54fd673227f5..a793eedd6a09 100644
--- a/vendor/istio.io/api/rbac/v1alpha1/rbac.pb.go
+++ b/vendor/istio.io/api/rbac/v1alpha1/rbac.pb.go
@@ -1197,9 +1197,9 @@ func (m *AuthorizationPolicy) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintRbac(dAtA, i, uint64(m.WorkloadSelector.Size()))
- n1, err1 := m.WorkloadSelector.MarshalTo(dAtA[i:])
- if err1 != nil {
- return 0, err1
+ n1, err := m.WorkloadSelector.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n1
}
@@ -1501,9 +1501,9 @@ func (m *ServiceRoleBinding) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintRbac(dAtA, i, uint64(m.RoleRef.Size()))
- n6, err6 := m.RoleRef.MarshalTo(dAtA[i:])
- if err6 != nil {
- return 0, err6
+ n6, err := m.RoleRef.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n6
}
@@ -1763,9 +1763,9 @@ func (m *RbacConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintRbac(dAtA, i, uint64(m.Inclusion.Size()))
- n7, err7 := m.Inclusion.MarshalTo(dAtA[i:])
- if err7 != nil {
- return 0, err7
+ n7, err := m.Inclusion.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n7
}
@@ -1773,9 +1773,9 @@ func (m *RbacConfig) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
i++
i = encodeVarintRbac(dAtA, i, uint64(m.Exclusion.Size()))
- n8, err8 := m.Exclusion.MarshalTo(dAtA[i:])
- if err8 != nil {
- return 0, err8
+ n8, err := m.Exclusion.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
}
i += n8
}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index c13a2a6347af..6f527db20eeb 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -207,16 +207,16 @@ github.com/gobwas/glob/syntax/ast
github.com/gobwas/glob/util/runes
github.com/gobwas/glob/syntax/lexer
github.com/gobwas/glob/util/strings
-# github.com/gogo/googleapis v1.1.0
+# github.com/gogo/googleapis v1.2.0
github.com/gogo/googleapis/google/rpc
github.com/gogo/googleapis/google/api
-# github.com/gogo/protobuf v1.2.1 => github.com/istio/gogo-protobuf v1.2.2-0.20190726125433-4c9abdb3090c
-github.com/gogo/protobuf/jsonpb
-github.com/gogo/protobuf/types
+# github.com/gogo/protobuf v1.2.1 => github.com/istio/gogo-protobuf v1.2.2
github.com/gogo/protobuf/proto
+github.com/gogo/protobuf/types
github.com/gogo/protobuf/gogoproto
-github.com/gogo/protobuf/sortkeys
github.com/gogo/protobuf/protoc-gen-gogo/descriptor
+github.com/gogo/protobuf/sortkeys
+github.com/gogo/protobuf/jsonpb
# github.com/gogo/status v1.0.3
github.com/gogo/status
# github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b => github.com/istio/glog v0.0.0-20190424172949-d7cfb6fa2ccd
@@ -519,9 +519,9 @@ github.com/yuin/gopher-lua/parse
github.com/yuin/gopher-lua/ast
github.com/yuin/gopher-lua/pm
# go.opencensus.io v0.21.0
+go.opencensus.io/tag
go.opencensus.io/stats
go.opencensus.io/stats/view
-go.opencensus.io/tag
go.opencensus.io/trace
go.opencensus.io/plugin/ochttp
go.opencensus.io/plugin/ochttp/propagation/b3
@@ -565,10 +565,10 @@ golang.org/x/net/publicsuffix
golang.org/x/net/internal/timeseries
golang.org/x/net/http2/hpack
golang.org/x/net/http/httpguts
-golang.org/x/net/proxy
golang.org/x/net/html/charset
-golang.org/x/net/internal/socks
+golang.org/x/net/proxy
golang.org/x/net/html
+golang.org/x/net/internal/socks
golang.org/x/net/html/atom
# golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421
golang.org/x/oauth2/google
@@ -661,7 +661,7 @@ google.golang.org/genproto/googleapis/logging/v2
google.golang.org/genproto/googleapis/appengine/logging/v1
google.golang.org/genproto/googleapis/cloud/audit
google.golang.org/genproto/googleapis/devtools/cloudtrace/v2
-# google.golang.org/grpc v1.20.1
+# google.golang.org/grpc v1.21.0
google.golang.org/grpc
google.golang.org/grpc/credentials
google.golang.org/grpc/credentials/oauth
@@ -672,11 +672,11 @@ google.golang.org/grpc/status
google.golang.org/grpc/stats
google.golang.org/grpc/balancer/roundrobin
google.golang.org/grpc/peer
-google.golang.org/grpc/grpclog
google.golang.org/grpc/balancer
google.golang.org/grpc/connectivity
google.golang.org/grpc/encoding
google.golang.org/grpc/encoding/proto
+google.golang.org/grpc/grpclog
google.golang.org/grpc/internal
google.golang.org/grpc/internal/backoff
google.golang.org/grpc/internal/balancerload
@@ -712,19 +712,19 @@ gopkg.in/square/go-jose.v2/cipher
gopkg.in/stack.v1
# gopkg.in/yaml.v2 v2.2.2
gopkg.in/yaml.v2
-# istio.io/api v0.0.0-20190718213450-0a0442bf8664
-istio.io/api/mesh/v1alpha1
+# istio.io/api v0.0.0-20190730171035-f306601671d2
+istio.io/api/annotation
istio.io/api/authentication/v1alpha1
-istio.io/api/mixer/v1/config/client
istio.io/api/networking/v1alpha3
+istio.io/api/mixer/v1
+istio.io/api/mesh/v1alpha1
+istio.io/api/mcp/v1alpha1
+istio.io/api/mixer/v1/config/client
istio.io/api/policy/v1beta1
istio.io/api/rbac/v1alpha1
-istio.io/api/mcp/v1alpha1
-istio.io/api/annotation
istio.io/api/envoy/config/filter/http/authn/v2alpha1
istio.io/api/envoy/config/filter/http/jwt_auth/v2alpha1
istio.io/api/mixer/adapter/model/v1beta1
-istio.io/api/mixer/v1
# istio.io/gogo-genproto v0.0.0-20190614210408-e88dc8b0e4db
istio.io/gogo-genproto/opencensus/proto/trace/v1
# istio.io/pkg v0.0.0-20190710182420-c26792dead42
@@ -733,30 +733,30 @@ istio.io/pkg/log
istio.io/pkg/probe
istio.io/pkg/version
istio.io/pkg/filewatcher
+istio.io/pkg/annotations
+istio.io/pkg/appsignals
+istio.io/pkg/pool
istio.io/pkg/timedfn
istio.io/pkg/ctrlz/fw
istio.io/pkg/ctrlz
istio.io/pkg/env
-istio.io/pkg/appsignals
-istio.io/pkg/pool
istio.io/pkg/cache
istio.io/pkg/attribute
istio.io/pkg/monitoring
-istio.io/pkg/annotations
istio.io/pkg/collateral/metrics
istio.io/pkg/ctrlz/assets
istio.io/pkg/ctrlz/topics
istio.io/pkg/ctrlz/topics/assets
# k8s.io/api v0.0.0-20190222213804-5cb15d344471
+k8s.io/api/core/v1
+k8s.io/api/extensions/v1beta1
k8s.io/api/admission/v1beta1
k8s.io/api/admissionregistration/v1beta1
k8s.io/api/apps/v1
-k8s.io/api/core/v1
-k8s.io/api/extensions/v1beta1
k8s.io/api/policy/v1beta1
+k8s.io/api/batch/v2alpha1
k8s.io/api/authorization/v1beta1
k8s.io/api/batch/v1
-k8s.io/api/batch/v2alpha1
k8s.io/api/authentication/v1
k8s.io/api/rbac/v1beta1
k8s.io/api/apps/v1beta1
@@ -784,24 +784,24 @@ k8s.io/api/authorization/v1
# k8s.io/apiextensions-apiserver v0.0.0-20190221221350-bfb440be4b87
k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1
-k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1
k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/fake
+k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions
-k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme
k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/fake
+k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme
# k8s.io/apimachinery v0.0.0-20190221213512-86fb29eff628
-k8s.io/apimachinery/pkg/api/errors
+k8s.io/apimachinery/pkg/util/intstr
k8s.io/apimachinery/pkg/apis/meta/v1
+k8s.io/apimachinery/pkg/runtime/schema
+k8s.io/apimachinery/pkg/util/wait
+k8s.io/apimachinery/pkg/runtime/serializer/json
k8s.io/apimachinery/pkg/apis/meta/v1/unstructured
-k8s.io/apimachinery/pkg/fields
k8s.io/apimachinery/pkg/runtime
k8s.io/apimachinery/pkg/runtime/serializer
-k8s.io/apimachinery/pkg/util/intstr
-k8s.io/apimachinery/pkg/runtime/serializer/json
-k8s.io/apimachinery/pkg/runtime/schema
k8s.io/apimachinery/pkg/watch
+k8s.io/apimachinery/pkg/api/errors
+k8s.io/apimachinery/pkg/fields
k8s.io/apimachinery/pkg/version
-k8s.io/apimachinery/pkg/util/wait
k8s.io/apimachinery/pkg/types
k8s.io/apimachinery/pkg/util/yaml
k8s.io/apimachinery/pkg/labels
@@ -810,24 +810,24 @@ k8s.io/apimachinery/pkg/util/strategicpatch
k8s.io/apimachinery/pkg/api/meta
k8s.io/apimachinery/pkg/util/uuid
k8s.io/apimachinery/pkg/api/resource
-k8s.io/apimachinery/pkg/util/validation/field
+k8s.io/apimachinery/pkg/runtime/serializer/streaming
+k8s.io/apimachinery/pkg/runtime/serializer/versioning
+k8s.io/apimachinery/pkg/util/net
+k8s.io/apimachinery/pkg/util/sets
+k8s.io/apimachinery/pkg/util/errors
+k8s.io/apimachinery/pkg/util/validation
k8s.io/apimachinery/pkg/conversion
-k8s.io/apimachinery/pkg/selection
k8s.io/apimachinery/pkg/util/json
-k8s.io/apimachinery/pkg/conversion/queryparams
-k8s.io/apimachinery/pkg/util/errors
-k8s.io/apimachinery/pkg/util/naming
-k8s.io/apimachinery/pkg/util/sets
-k8s.io/apimachinery/pkg/runtime/serializer/protobuf
-k8s.io/apimachinery/pkg/runtime/serializer/recognizer
-k8s.io/apimachinery/pkg/runtime/serializer/versioning
+k8s.io/apimachinery/pkg/selection
k8s.io/apimachinery/pkg/util/cache
k8s.io/apimachinery/pkg/util/clock
k8s.io/apimachinery/pkg/util/diff
+k8s.io/apimachinery/pkg/util/naming
+k8s.io/apimachinery/pkg/runtime/serializer/recognizer
k8s.io/apimachinery/pkg/util/framer
-k8s.io/apimachinery/pkg/runtime/serializer/streaming
-k8s.io/apimachinery/pkg/util/net
-k8s.io/apimachinery/pkg/util/validation
+k8s.io/apimachinery/pkg/conversion/queryparams
+k8s.io/apimachinery/pkg/runtime/serializer/protobuf
+k8s.io/apimachinery/pkg/util/validation/field
k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructuredscheme
k8s.io/apimachinery/pkg/util/httpstream
k8s.io/apimachinery/pkg/util/remotecommand
@@ -843,15 +843,15 @@ k8s.io/cli-runtime/pkg/genericclioptions
k8s.io/cli-runtime/pkg/genericclioptions/resource
k8s.io/cli-runtime/pkg/genericclioptions/printers
# k8s.io/client-go v10.0.0+incompatible
-k8s.io/client-go/kubernetes
-k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1
-k8s.io/client-go/tools/cache
-k8s.io/client-go/util/workqueue
k8s.io/client-go/dynamic
-k8s.io/client-go/informers
+k8s.io/client-go/kubernetes
k8s.io/client-go/plugin/pkg/client/auth/gcp
k8s.io/client-go/rest
k8s.io/client-go/tools/clientcmd
+k8s.io/client-go/tools/cache
+k8s.io/client-go/informers
+k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1
+k8s.io/client-go/util/workqueue
k8s.io/client-go/discovery
k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1
k8s.io/client-go/kubernetes/typed/apps/v1
@@ -898,12 +898,20 @@ k8s.io/client-go/tools/leaderelection/resourcelock
k8s.io/client-go/tools/record
k8s.io/client-go/listers/core/v1
k8s.io/client-go/util/flowcontrol
+k8s.io/client-go/pkg/version
+k8s.io/client-go/plugin/pkg/client/auth/exec
+k8s.io/client-go/rest/watch
+k8s.io/client-go/tools/metrics
+k8s.io/client-go/transport
+k8s.io/client-go/util/cert
+k8s.io/client-go/tools/auth
+k8s.io/client-go/tools/clientcmd/api/latest
+k8s.io/client-go/util/homedir
k8s.io/client-go/tools/pager
k8s.io/client-go/util/buffer
k8s.io/client-go/util/retry
-k8s.io/client-go/kubernetes/fake
+k8s.io/client-go/dynamic/fake
k8s.io/client-go/testing
-k8s.io/client-go/tools/cache/testing
k8s.io/client-go/informers/admissionregistration
k8s.io/client-go/informers/apps
k8s.io/client-go/informers/auditregistration
@@ -921,25 +929,49 @@ k8s.io/client-go/informers/rbac
k8s.io/client-go/informers/scheduling
k8s.io/client-go/informers/settings
k8s.io/client-go/informers/storage
-k8s.io/client-go/dynamic/fake
-k8s.io/client-go/pkg/version
-k8s.io/client-go/plugin/pkg/client/auth/exec
-k8s.io/client-go/rest/watch
-k8s.io/client-go/tools/metrics
-k8s.io/client-go/transport
-k8s.io/client-go/util/cert
-k8s.io/client-go/tools/auth
-k8s.io/client-go/tools/clientcmd/api/latest
-k8s.io/client-go/util/homedir
+k8s.io/client-go/kubernetes/fake
+k8s.io/client-go/tools/cache/testing
+k8s.io/client-go/discovery/fake
k8s.io/client-go/tools/reference
k8s.io/client-go/third_party/forked/golang/template
k8s.io/client-go/plugin/pkg/client/auth/azure
k8s.io/client-go/plugin/pkg/client/auth/openstack
k8s.io/client-go/restmapper
k8s.io/client-go/util/exec
-k8s.io/client-go/discovery/fake
k8s.io/client-go/listers/extensions/v1beta1
k8s.io/client-go/util/integer
+k8s.io/client-go/pkg/apis/clientauthentication
+k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1
+k8s.io/client-go/pkg/apis/clientauthentication/v1beta1
+k8s.io/client-go/util/connrotation
+k8s.io/client-go/tools/clientcmd/api/v1
+k8s.io/client-go/informers/admissionregistration/v1alpha1
+k8s.io/client-go/informers/admissionregistration/v1beta1
+k8s.io/client-go/informers/apps/v1
+k8s.io/client-go/informers/apps/v1beta1
+k8s.io/client-go/informers/apps/v1beta2
+k8s.io/client-go/informers/auditregistration/v1alpha1
+k8s.io/client-go/informers/autoscaling/v1
+k8s.io/client-go/informers/autoscaling/v2beta1
+k8s.io/client-go/informers/autoscaling/v2beta2
+k8s.io/client-go/informers/batch/v1
+k8s.io/client-go/informers/batch/v1beta1
+k8s.io/client-go/informers/batch/v2alpha1
+k8s.io/client-go/informers/certificates/v1beta1
+k8s.io/client-go/informers/coordination/v1beta1
+k8s.io/client-go/informers/core/v1
+k8s.io/client-go/informers/events/v1beta1
+k8s.io/client-go/informers/networking/v1
+k8s.io/client-go/informers/policy/v1beta1
+k8s.io/client-go/informers/rbac/v1
+k8s.io/client-go/informers/rbac/v1alpha1
+k8s.io/client-go/informers/rbac/v1beta1
+k8s.io/client-go/informers/scheduling/v1alpha1
+k8s.io/client-go/informers/scheduling/v1beta1
+k8s.io/client-go/informers/settings/v1alpha1
+k8s.io/client-go/informers/storage/v1
+k8s.io/client-go/informers/storage/v1alpha1
+k8s.io/client-go/informers/storage/v1beta1
k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake
k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake
k8s.io/client-go/kubernetes/typed/apps/v1/fake
@@ -972,38 +1004,6 @@ k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake
k8s.io/client-go/kubernetes/typed/storage/v1/fake
k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake
k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake
-k8s.io/client-go/informers/admissionregistration/v1alpha1
-k8s.io/client-go/informers/admissionregistration/v1beta1
-k8s.io/client-go/informers/apps/v1
-k8s.io/client-go/informers/apps/v1beta1
-k8s.io/client-go/informers/apps/v1beta2
-k8s.io/client-go/informers/auditregistration/v1alpha1
-k8s.io/client-go/informers/autoscaling/v1
-k8s.io/client-go/informers/autoscaling/v2beta1
-k8s.io/client-go/informers/autoscaling/v2beta2
-k8s.io/client-go/informers/batch/v1
-k8s.io/client-go/informers/batch/v1beta1
-k8s.io/client-go/informers/batch/v2alpha1
-k8s.io/client-go/informers/certificates/v1beta1
-k8s.io/client-go/informers/coordination/v1beta1
-k8s.io/client-go/informers/core/v1
-k8s.io/client-go/informers/events/v1beta1
-k8s.io/client-go/informers/networking/v1
-k8s.io/client-go/informers/policy/v1beta1
-k8s.io/client-go/informers/rbac/v1
-k8s.io/client-go/informers/rbac/v1alpha1
-k8s.io/client-go/informers/rbac/v1beta1
-k8s.io/client-go/informers/scheduling/v1alpha1
-k8s.io/client-go/informers/scheduling/v1beta1
-k8s.io/client-go/informers/settings/v1alpha1
-k8s.io/client-go/informers/storage/v1
-k8s.io/client-go/informers/storage/v1alpha1
-k8s.io/client-go/informers/storage/v1beta1
-k8s.io/client-go/pkg/apis/clientauthentication
-k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1
-k8s.io/client-go/pkg/apis/clientauthentication/v1beta1
-k8s.io/client-go/util/connrotation
-k8s.io/client-go/tools/clientcmd/api/v1
k8s.io/client-go/listers/admissionregistration/v1alpha1
k8s.io/client-go/listers/admissionregistration/v1beta1
k8s.io/client-go/listers/apps/v1