diff --git a/.circleci/config.yml b/.circleci/config.yml index f333c3acbb..a3edfcf89f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,7 @@ version: 2 defaults: &defaults working_directory: /src/istio.io/api docker: - - image: gcr.io/istio-testing/protoc:2018-06-12 + - image: gcr.io/istio-testing/api-build-tools:2018-10-31 environment: GOPATH: /go OUT_PATH: /src @@ -15,10 +15,12 @@ jobs: - run: command: | ./scripts/generate-protos.sh || die "could not generate *.pb.go" + make proto-commit || die "could not regenerate proto.lock" + make lint || die "Lint errors" if [[ -n $(git status --porcelain) ]]; then git status git --no-pager diff - echo "Repo has unstaged changes. Re-run ./scripts/generate-protos.sh" + echo "Repo has unstaged changes. Re-run ./scripts/generate-protos.sh or make proto-commit" exit 1 fi diff --git a/Makefile b/Makefile index 659a151c40..a74a1d6faa 100644 --- a/Makefile +++ b/Makefile @@ -10,14 +10,20 @@ ifdef CIRCLECI repo_dir = . docker_gen = /usr/bin/protoc -I/protobuf -I$(repo_dir) out_path = $(OUT_PATH) +docker_lock = protolock +docker_tool = prototool else gen_img := gcr.io/istio-testing/protoc:2018-06-12 +lock_img := gcr.io/istio-testing/protolock:2018-10-23 +all_img := gcr.io/istio-testing/api-build-tools:2018-10-31 pwd := $(shell pwd) mount_dir := /src repo_dir := istio.io/api repo_mount := $(mount_dir)/istio.io/api docker_gen := docker run --rm -v $(pwd):$(repo_mount) -w $(mount_dir) $(gen_img) -I$(repo_dir) out_path = . +docker_lock = docker run --rm -v $(pwd):$(repo_mount) -w $(repo_mount) $(lock_img) +docker_tool = docker run --rm -v $(pwd):$(repo_mount) -w $(repo_mount) $(all_img) prototool endif ######################## @@ -99,12 +105,14 @@ generate-mcp-go: $(config_mcp_pb_gos) $(config_mcp_pb_doc) $(config_mcp_pb_gos) $(config_mcp_pb_doc): $(config_mcp_protos) ## Generate mcp/v1alpha1/*.pb.go + $(config_mcp_pb_doc) + @$(docker_lock) status @$(docker_gen) $(gogofast_plugin) $(protoc_gen_docs_plugin)$(config_mcp_path) $^ generate-mcp-python: $(config_mcp_pb_pythons) $(config_mcp_pb_pythons): $(config_mcp_protos) ## Generate python/istio_api/mcp/v1alpha1/*_pb2.py + @$(docker_lock) status @$(docker_gen) $(protoc_gen_python_plugin) $^ clean-mcp: @@ -125,12 +133,14 @@ generate-mesh-go: $(mesh_pb_gos) $(mesh_pb_doc) $(mesh_pb_gos) $(mesh_pb_doc): $(mesh_protos) ## Generate mesh/v1alpha1/*.pb.go + $(mesh_pb_doc) + @$(docker_lock) status @$(docker_gen) $(gogofast_plugin) $(protoc_gen_docs_plugin)$(mesh_path) $^ generate-mesh-python: $(mesh_pb_pythons) $(mesh_pb_pythons): $(mesh_protos) ## Generate python/istio_api/mesh/v1alpha1/*_pb2.py + @$(docker_lock) status @$(docker_gen) $(protoc_gen_python_plugin) $^ clean-mesh: @@ -173,18 +183,22 @@ generate-mixer-go: \ $(mixer_v1_pb_gos) $(mixer_v1_pb_doc): $(mixer_v1_protos) ## Generate mixer/v1/*.pb.go + $(mixer_v1_pb_doc) + @$(docker_lock) status @$(docker_gen) $(gogoslick_plugin) $(protoc_gen_docs_plugin)$(mixer_v1_path) $^ $(mixer_config_client_pb_gos) $(mixer_config_client_pb_doc): $(mixer_config_client_protos) ## Generate mixer/v1/config/client/*.pb.go + $(mixer_config_client_pb_doc) + @$(docker_lock) status @$(docker_gen) $(gogoslick_plugin) $(protoc_gen_docs_plugin)$(mixer_config_client_path) $^ $(mixer_adapter_model_v1beta1_pb_gos) $(mixer_adapter_model_v1beta1_pb_doc) : $(mixer_adapter_model_v1beta1_protos) ## Generate mixer/adapter/model/v1beta1/*.pb.go + $(mixer_adapter_model_v1beta1_pb_doc) + @$(docker_lock) status @$(docker_gen) $(gogoslick_plugin) $(protoc_gen_docs_plugin)$(mixer_adapter_model_v1beta1_path) $^ $(policy_v1beta1_pb_gos) $(policy_v1beta1_pb_doc) : $(policy_v1beta1_protos) ## Generate policy/v1beta1/*.pb.go + $(policy_v1beta1_pb_doc) + @$(docker_lock) status @$(docker_gen) $(gogoslick_plugin) $(protoc_gen_docs_plugin)$(policy_v1beta1_path) $^ generate-mixer-python: \ @@ -195,18 +209,22 @@ generate-mixer-python: \ $(mixer_v1_pb_pythons): $(mixer_v1_protos) ## Generate python/istio_api/mixer/v1/*_pb2.py + @$(docker_lock) status @$(docker_gen) $(protoc_gen_python_plugin) $^ $(mixer_config_client_pb_pythons): $(mixer_config_client_protos) ## Generate python/istio_api/mixer/v1/config/client/*_pb2.py + @$(docker_lock) status @$(docker_gen) $(protoc_gen_python_plugin) $^ $(mixer_adapter_model_v1beta1_pb_pythons): $(mixer_adapter_model_v1beta1_protos) ## Generate python/istio_api/mixer/adapter/model/v1beta1/*_pb2.py + @$(docker_lock) status @$(docker_gen) $(protoc_gen_python_plugin) $^ $(policy_v1beta1_pb_pythons): $(policy_v1beta1_protos) ## Generate python/istio_api/policy/v1beta1/*_pb2.py + @$(docker_lock) status @$(docker_gen) $(protoc_gen_python_plugin) $^ clean-mixer: @@ -227,12 +245,14 @@ generate-routing-go: $(routing_v1alpha3_pb_gos) $(routing_v1alpha3_pb_doc) $(routing_v1alpha3_pb_gos) $(routing_v1alpha3_pb_doc): $(routing_v1alpha3_protos) ## Generate networking/v1alpha3/*.pb.go + @$(docker_lock) status @$(docker_gen) $(gogofast_plugin) $(protoc_gen_docs_plugin)$(routing_v1alpha3_path) $^ generate-routing-python: $(routing_v1alpha3_pb_pythons) $(routing_v1alpha3_pb_pythons): $(routing_v1alpha3_protos) ## Generate python/istio_api/networking/v1alpha3/*_pb2.py + @$(docker_lock) status @$(docker_gen) $(protoc_gen_python_plugin) $^ clean-routing: @@ -253,12 +273,14 @@ generate-rbac-go: $(rbac_v1alpha1_pb_gos) $(rbac_v1alpha1_pb_doc) $(rbac_v1alpha1_pb_gos) $(rbac_v1alpha1_pb_doc): $(rbac_v1alpha1_protos) ## Generate rbac/v1alpha1/*.pb.go + @$(docker_lock) status @$(docker_gen) $(gogofast_plugin) $(protoc_gen_docs_plugin)$(rbac_v1alpha1_path) $^ generate-rbac-python: $(rbac_v1alpha1_protos) $(rbac_v1alpha1_pb_pythons): $(rbac_v1alpha1_protos) ## Generate python/istio_api/rbac/v1alpha1/*_pb2.py + @$(docker_lock) status @$(docker_gen) $(protoc_gen_python_plugin) $^ clean-rbac: @@ -280,12 +302,14 @@ generate-authn-go: $(authn_v1alpha1_pb_gos) $(authn_v1alpha1_pb_doc) $(authn_v1alpha1_pb_gos) $(authn_v1alpha1_pb_doc): $(authn_v1alpha1_protos) ## Generate authentication/v1alpha1/*.pb.go + @$(docker_lock) status @$(docker_gen) $(gogofast_plugin) $(protoc_gen_docs_plugin)$(authn_v1alpha1_path) $^ generate-authn-python: $(authn_v1alpha1_pb_pythons) $(authn_v1alpha1_pb_pythons): $(authn_v1alpha1_protos) ## Generate python/istio_api/authentication/v1alpha1/*_pb2.py + @$(docker_lock) status @$(docker_gen) $(protoc_gen_python_plugin) $^ clean-authn: @@ -306,6 +330,7 @@ generate-envoy-go: $(envoy_pb_gos) $(envoy_pb_doc) # Envoy APIs is internal APIs, documents is not required. $(envoy_pb_gos): $(envoy_protos) ## Generate envoy/*/*.pb.go + @$(docker_lock) status @$(docker_gen) $(gogofast_plugin) $^ generate-envoy-python: $(envoy_pb_pythons) @@ -313,11 +338,26 @@ generate-envoy-python: $(envoy_pb_pythons) # Envoy APIs is internal APIs, documents is not required. $(envoy_pb_pythons): $(envoy_protos) ## Generate envoy/*/*_pb2.py + @$(docker_lock) status @$(docker_gen) $(protoc_gen_python_plugin) $^ clean-envoy: rm -f $(envoy_pb_gos) +##################### +# Protolock +##################### + +proto-commit: + @$(docker_lock) commit + +##################### +# Lint +##################### + +lint: + @$(docker_tool) lint --protoc-bin-path=/usr/bin/protoc --protoc-wkt-path=/protobuf + ##################### # Cleanup ##################### diff --git a/README.md b/README.md index c0d77bc87a..7e014a9c5e 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,12 @@ When making changes to the protos in this repository, your changes **must** comp ## Updating -After the [protobuf](https://github.com/google/protobuf) definitions are updated, the corresponding `*pb.go` and `_pb2.py` files must be generated by running `scripts/generate-protos.sh` and submitted as part of the same PR as the updated definitions. +After the [protobuf](https://github.com/google/protobuf) definitions +are updated, the corresponding `*pb.go` and `_pb2.py` files must be +generated by running `scripts/generate-protos.sh` and submitted as +part of the same PR as the updated definitions. Also `make +proto-commit` must be run to update the proto.lock file with new +changes. + If releasing a new tagged version, please update python/istio-api/setup.py version to reflect. diff --git a/envoy/config/filter/http/authn/v2alpha1/config.pb.go b/envoy/config/filter/http/authn/v2alpha1/config.pb.go index 997b12af92..4600d1e76b 100644 --- a/envoy/config/filter/http/authn/v2alpha1/config.pb.go +++ b/envoy/config/filter/http/authn/v2alpha1/config.pb.go @@ -7,6 +7,7 @@ It is generated from these files: envoy/config/filter/http/authn/v2alpha1/config.proto envoy/config/filter/http/jwt_auth/v2alpha1/config.proto + envoy/config/filter/network/tcp_cluster_rewrite/v2alpha1/config.proto It has these top-level messages: FilterConfig @@ -16,6 +17,7 @@ RemoteJwks JwtHeader JwtAuthentication + TcpClusterRewrite */ package v2alpha1 diff --git a/envoy/config/filter/network/tcp_cluster_rewrite/v2alpha1/config.pb.go b/envoy/config/filter/network/tcp_cluster_rewrite/v2alpha1/config.pb.go new file mode 100644 index 0000000000..8240044eaf --- /dev/null +++ b/envoy/config/filter/network/tcp_cluster_rewrite/v2alpha1/config.pb.go @@ -0,0 +1,346 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: envoy/config/filter/network/tcp_cluster_rewrite/v2alpha1/config.proto + +package v2alpha1 + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// TcpClusterRewrite is the config for the TCP cluster rewrite filter. +type TcpClusterRewrite struct { + // Specifies the regex pattern to be matched in the cluster name. + ClusterPattern string `protobuf:"bytes,1,opt,name=cluster_pattern,json=clusterPattern,proto3" json:"cluster_pattern,omitempty"` + // Specifies the replacement for the matched cluster pattern. + ClusterReplacement string `protobuf:"bytes,2,opt,name=cluster_replacement,json=clusterReplacement,proto3" json:"cluster_replacement,omitempty"` +} + +func (m *TcpClusterRewrite) Reset() { *m = TcpClusterRewrite{} } +func (m *TcpClusterRewrite) String() string { return proto.CompactTextString(m) } +func (*TcpClusterRewrite) ProtoMessage() {} +func (*TcpClusterRewrite) Descriptor() ([]byte, []int) { return fileDescriptorConfig, []int{0} } + +func (m *TcpClusterRewrite) GetClusterPattern() string { + if m != nil { + return m.ClusterPattern + } + return "" +} + +func (m *TcpClusterRewrite) GetClusterReplacement() string { + if m != nil { + return m.ClusterReplacement + } + return "" +} + +func init() { + proto.RegisterType((*TcpClusterRewrite)(nil), "istio.envoy.config.filter.network.tcp_cluster_rewrite.v2alpha1.TcpClusterRewrite") +} +func (m *TcpClusterRewrite) 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 *TcpClusterRewrite) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.ClusterPattern) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintConfig(dAtA, i, uint64(len(m.ClusterPattern))) + i += copy(dAtA[i:], m.ClusterPattern) + } + if len(m.ClusterReplacement) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintConfig(dAtA, i, uint64(len(m.ClusterReplacement))) + i += copy(dAtA[i:], m.ClusterReplacement) + } + return i, nil +} + +func encodeVarintConfig(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *TcpClusterRewrite) Size() (n int) { + var l int + _ = l + l = len(m.ClusterPattern) + if l > 0 { + n += 1 + l + sovConfig(uint64(l)) + } + l = len(m.ClusterReplacement) + if l > 0 { + n += 1 + l + sovConfig(uint64(l)) + } + return n +} + +func sovConfig(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozConfig(x uint64) (n int) { + return sovConfig(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *TcpClusterRewrite) 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: TcpClusterRewrite: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TcpClusterRewrite: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterPattern", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + 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 ErrInvalidLengthConfig + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ClusterPattern = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterReplacement", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + 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 ErrInvalidLengthConfig + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ClusterReplacement = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipConfig(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthConfig + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipConfig(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowConfig + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowConfig + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowConfig + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthConfig + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowConfig + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipConfig(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthConfig = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowConfig = fmt.Errorf("proto: integer overflow") +) + +func init() { + proto.RegisterFile("envoy/config/filter/network/tcp_cluster_rewrite/v2alpha1/config.proto", fileDescriptorConfig) +} + +var fileDescriptorConfig = []byte{ + // 213 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x4d, 0xcd, 0x2b, 0xcb, + 0xaf, 0xd4, 0x4f, 0xce, 0xcf, 0x4b, 0xcb, 0x4c, 0xd7, 0x4f, 0xcb, 0xcc, 0x29, 0x49, 0x2d, 0xd2, + 0xcf, 0x4b, 0x2d, 0x29, 0xcf, 0x2f, 0xca, 0xd6, 0x2f, 0x49, 0x2e, 0x88, 0x4f, 0xce, 0x29, 0x2d, + 0x2e, 0x49, 0x2d, 0x8a, 0x2f, 0x4a, 0x2d, 0x2f, 0xca, 0x2c, 0x49, 0xd5, 0x2f, 0x33, 0x4a, 0xcc, + 0x29, 0xc8, 0x48, 0x34, 0x84, 0x6a, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xb2, 0xcb, 0x2c, + 0x2e, 0xc9, 0xcc, 0xd7, 0x03, 0x1b, 0xa6, 0x07, 0x95, 0x81, 0x18, 0xa6, 0x07, 0x35, 0x4c, 0x0f, + 0x8b, 0x61, 0x7a, 0x30, 0xc3, 0x94, 0x72, 0xb9, 0x04, 0x43, 0x92, 0x0b, 0x9c, 0x21, 0xd2, 0x41, + 0x10, 0x59, 0x21, 0x75, 0x2e, 0x7e, 0x98, 0x86, 0x82, 0xc4, 0x92, 0x92, 0xd4, 0xa2, 0x3c, 0x09, + 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20, 0x3e, 0xa8, 0x70, 0x00, 0x44, 0x54, 0x48, 0x9f, 0x4b, 0x18, + 0x61, 0x72, 0x41, 0x4e, 0x62, 0x72, 0x6a, 0x6e, 0x6a, 0x5e, 0x89, 0x04, 0x13, 0x58, 0xb1, 0x50, + 0x32, 0xcc, 0x54, 0xb8, 0x8c, 0x53, 0xf0, 0x89, 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e, + 0x78, 0x24, 0xc7, 0x18, 0xe5, 0x0a, 0x71, 0x7c, 0x66, 0xbe, 0x7e, 0x62, 0x41, 0xa6, 0x3e, 0xb9, + 0x01, 0x92, 0xc4, 0x06, 0x0e, 0x0a, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0xda, 0x0d, 0xa4, + 0x2b, 0x53, 0x01, 0x00, 0x00, +} diff --git a/envoy/config/filter/network/tcp_cluster_rewrite/v2alpha1/config.proto b/envoy/config/filter/network/tcp_cluster_rewrite/v2alpha1/config.proto new file mode 100644 index 0000000000..bdcd47e3d5 --- /dev/null +++ b/envoy/config/filter/network/tcp_cluster_rewrite/v2alpha1/config.proto @@ -0,0 +1,29 @@ +// Copyright 2018 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. + +syntax = "proto3"; + +// $title: TCP cluster rewrite filter configuration for Envoy. + +package istio.envoy.config.filter.network.tcp_cluster_rewrite.v2alpha1; + +option go_package = "istio.io/api/envoy/config/filter/network/tcp_cluster_rewrite/v2alpha1"; + +// TcpClusterRewrite is the config for the TCP cluster rewrite filter. +message TcpClusterRewrite { + // Specifies the regex pattern to be matched in the cluster name. + string cluster_pattern = 1; + // Specifies the replacement for the matched cluster pattern. + string cluster_replacement = 2; +} diff --git a/mesh/v1alpha1/config.pb.go b/mesh/v1alpha1/config.pb.go index d29e86a5c8..98218b7feb 100644 --- a/mesh/v1alpha1/config.pb.go +++ b/mesh/v1alpha1/config.pb.go @@ -218,6 +218,10 @@ type MeshConfig struct { // for k8s service account JWT, so that K8s API server mounts k8s service account JWT to envoy container, which // will be used to generate key/cert eventually. This isn't supported for non-k8s case. EnableSdsTokenMount bool `protobuf:"varint,23,opt,name=enable_sds_token_mount,json=enableSdsTokenMount,proto3" json:"enable_sds_token_mount,omitempty"` + // The trust domain corresponds to the trust root of a system. + // Refer to 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. + TrustDomain string `protobuf:"bytes,26,opt,name=trust_domain,json=trustDomain,proto3" json:"trust_domain,omitempty"` } func (m *MeshConfig) Reset() { *m = MeshConfig{} } @@ -386,6 +390,13 @@ func (m *MeshConfig) GetEnableSdsTokenMount() bool { return false } +func (m *MeshConfig) GetTrustDomain() string { + if m != nil { + return m.TrustDomain + } + return "" +} + 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"` } @@ -658,6 +669,14 @@ func (m *MeshConfig) MarshalTo(dAtA []byte) (int, error) { } i++ } + if len(m.TrustDomain) > 0 { + dAtA[i] = 0xd2 + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintConfig(dAtA, i, uint64(len(m.TrustDomain))) + i += copy(dAtA[i:], m.TrustDomain) + } return i, nil } @@ -815,6 +834,10 @@ func (m *MeshConfig) Size() (n int) { if m.PolicyCheckFailOpen { n += 3 } + l = len(m.TrustDomain) + if l > 0 { + n += 2 + l + sovConfig(uint64(l)) + } return n } @@ -1487,6 +1510,35 @@ func (m *MeshConfig) Unmarshal(dAtA []byte) error { } } m.PolicyCheckFailOpen = bool(v != 0) + case 26: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TrustDomain", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowConfig + } + 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 ErrInvalidLengthConfig + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TrustDomain = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipConfig(dAtA[iNdEx:]) @@ -1797,68 +1849,69 @@ var ( func init() { proto.RegisterFile("mesh/v1alpha1/config.proto", fileDescriptorConfig) } var fileDescriptorConfig = []byte{ - // 1001 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0xdd, 0x4e, 0xe3, 0x46, - 0x14, 0x5e, 0x43, 0x16, 0xc2, 0xc9, 0x9f, 0x19, 0x36, 0xcb, 0x90, 0x56, 0x34, 0xa5, 0x2a, 0x1b, - 0xa1, 0xca, 0xd1, 0x82, 0x7a, 0xd1, 0xde, 0x85, 0x00, 0xbb, 0x59, 0x05, 0x82, 0x6c, 0xb3, 0x15, - 0xbd, 0x19, 0x19, 0x7b, 0x92, 0x8c, 0x70, 0x3c, 0xae, 0x67, 0xbc, 0x5d, 0xae, 0xfb, 0x58, 0x7d, - 0x81, 0x5e, 0xf6, 0x11, 0x2a, 0x9e, 0xa4, 0x9a, 0x19, 0x07, 0x42, 0x1b, 0x89, 0xaa, 0x97, 0xfe, - 0xbe, 0xef, 0xcc, 0xf1, 0xf9, 0xce, 0x39, 0x33, 0xd0, 0x9a, 0x51, 0x31, 0xed, 0x7e, 0x7a, 0x1b, - 0xc4, 0xe9, 0x34, 0x78, 0xdb, 0x0d, 0x79, 0x32, 0x66, 0x13, 0x27, 0xcd, 0xb8, 0xe4, 0x68, 0x8b, - 0x09, 0xc9, 0xb8, 0xa3, 0x14, 0xce, 0x5c, 0xd1, 0xda, 0x9d, 0x70, 0x3e, 0x89, 0x69, 0x57, 0x4b, - 0x6e, 0xf2, 0x71, 0x37, 0xca, 0xb3, 0x40, 0x32, 0x9e, 0x98, 0xa0, 0xd6, 0xce, 0xd3, 0x03, 0xd3, - 0x8c, 0x7f, 0xbe, 0x2b, 0xa8, 0x83, 0x84, 0xca, 0x5f, 0x79, 0x76, 0xcb, 0x92, 0xc9, 0x5c, 0x70, - 0xd4, 0x8d, 0xa8, 0x90, 0x2c, 0xd1, 0x27, 0x90, 0x2c, 0x8f, 0xa9, 0xd1, 0xee, 0xfd, 0x56, 0x03, - 0x38, 0xa7, 0x62, 0xda, 0xd7, 0x3f, 0x84, 0xbe, 0x03, 0x34, 0x63, 0x9f, 0x69, 0x46, 0xc2, 0x29, - 0x0d, 0x6f, 0x89, 0xa0, 0xd9, 0x27, 0x9a, 0x61, 0xab, 0x6d, 0x75, 0x36, 0x5c, 0x5b, 0x33, 0x7d, - 0x45, 0x78, 0x1a, 0x47, 0x0e, 0x6c, 0x19, 0x75, 0x46, 0x53, 0x9e, 0xc9, 0xb9, 0x7c, 0x45, 0xcb, - 0x37, 0x35, 0xe5, 0x6a, 0xa6, 0xd0, 0x1f, 0x42, 0x33, 0x62, 0x22, 0xb8, 0x89, 0x29, 0x49, 0x79, - 0xcc, 0xc2, 0x3b, 0x93, 0x46, 0xe0, 0xd5, 0xb6, 0xd5, 0x29, 0xbb, 0x5b, 0x05, 0x79, 0xa9, 0x39, - 0x9d, 0x48, 0xa0, 0x03, 0xd8, 0xd4, 0xb5, 0x91, 0x98, 0x09, 0x49, 0x13, 0xa2, 0x8e, 0xc3, 0xa5, - 0xb6, 0xd5, 0x79, 0xe9, 0x36, 0x34, 0x31, 0xd4, 0xf8, 0x25, 0xcf, 0x24, 0xda, 0x07, 0x03, 0x91, - 0xa9, 0x94, 0xa9, 0x51, 0xbe, 0xd4, 0xca, 0x9a, 0x86, 0xdf, 0x4b, 0x99, 0x6a, 0xdd, 0x31, 0x34, - 0x42, 0x9e, 0x24, 0x34, 0x94, 0x44, 0xb2, 0x19, 0xe5, 0xb9, 0xc4, 0x6b, 0x6d, 0xab, 0x53, 0x39, - 0xdc, 0x71, 0x8c, 0xeb, 0xce, 0xdc, 0x75, 0xe7, 0xa4, 0x70, 0xdd, 0xad, 0x17, 0x11, 0xbe, 0x09, - 0x40, 0xdf, 0x40, 0x8d, 0x25, 0x93, 0x8c, 0x0a, 0x41, 0xc2, 0x38, 0x10, 0x02, 0xaf, 0xeb, 0xaa, - 0xab, 0x05, 0xd8, 0x57, 0x18, 0x7a, 0x03, 0x8d, 0xb9, 0x48, 0x79, 0xc3, 0x42, 0x8a, 0xcb, 0x5a, - 0x56, 0x2f, 0x60, 0xcf, 0xa0, 0x68, 0x06, 0xdb, 0x0f, 0xa7, 0xf1, 0x44, 0x66, 0x3c, 0x8e, 0x69, - 0x46, 0x66, 0x3c, 0xa2, 0x78, 0xa3, 0x6d, 0x75, 0xea, 0x87, 0xdf, 0x3b, 0x4b, 0x86, 0xc4, 0x79, - 0xec, 0x9c, 0x33, 0x28, 0xf2, 0x3e, 0x44, 0x9f, 0xf3, 0x88, 0xba, 0x4d, 0xb6, 0x0c, 0x46, 0x23, - 0xa8, 0x04, 0xb9, 0x9c, 0x16, 0x5d, 0xc0, 0xa0, 0x53, 0x1c, 0x3c, 0x97, 0xa2, 0x97, 0xcb, 0xa9, - 0xe9, 0xcd, 0xf1, 0x0a, 0xb6, 0x5c, 0x08, 0x1e, 0xbe, 0xd1, 0x00, 0x36, 0xb3, 0x48, 0x90, 0x8c, - 0x8e, 0x33, 0x2a, 0xa6, 0x24, 0xa2, 0x71, 0x70, 0x87, 0x2b, 0xcf, 0x78, 0xaa, 0x4f, 0x69, 0x64, - 0x91, 0x70, 0x4d, 0xd8, 0x89, 0x8a, 0x42, 0xdf, 0x42, 0x9d, 0x26, 0x7a, 0x46, 0x64, 0x16, 0x84, - 0x2c, 0x99, 0xe0, 0xaa, 0x9e, 0x8e, 0x9a, 0x41, 0x7d, 0x03, 0xaa, 0x5e, 0x07, 0x61, 0xa8, 0x0c, - 0x8b, 0xf9, 0x84, 0x8c, 0x59, 0x4c, 0x71, 0x4d, 0x5b, 0x5b, 0x33, 0xf0, 0x90, 0x4f, 0xce, 0x58, - 0x4c, 0xd1, 0x3b, 0xa8, 0x47, 0x74, 0x1c, 0xe4, 0xb1, 0x24, 0x66, 0xe9, 0x70, 0x5d, 0xff, 0x56, - 0x7b, 0x69, 0xb5, 0x97, 0x6a, 0x4e, 0x4c, 0xb9, 0x6e, 0xad, 0x88, 0x2b, 0x56, 0xe3, 0x0d, 0xd4, - 0xcc, 0xb0, 0x07, 0x51, 0xa4, 0x2c, 0xc5, 0xb6, 0x4a, 0xa7, 0x6b, 0xa8, 0x6a, 0xa2, 0x67, 0x70, - 0xf4, 0x0b, 0x6c, 0xf3, 0x5c, 0xde, 0xf0, 0x3c, 0x89, 0x54, 0x09, 0xe3, 0x31, 0x0b, 0xe7, 0x46, - 0x6f, 0xea, 0xd4, 0xcf, 0xf6, 0x72, 0x54, 0x84, 0xfb, 0x26, 0x7a, 0xc1, 0xf3, 0x26, 0x5f, 0x46, - 0xa1, 0x13, 0xf8, 0xaa, 0xf0, 0x2c, 0x8c, 0x19, 0x4d, 0x24, 0x11, 0x2c, 0x7a, 0xba, 0x63, 0x78, - 0x4b, 0x9b, 0xf8, 0x85, 0x91, 0xf5, 0xb5, 0xca, 0x63, 0xd1, 0xe2, 0xae, 0xa1, 0x36, 0x54, 0x45, - 0x24, 0x48, 0x1e, 0x09, 0x92, 0x06, 0x72, 0x8a, 0x5f, 0x69, 0x3f, 0x41, 0x44, 0xe2, 0x2a, 0x12, - 0x97, 0x81, 0x9c, 0xaa, 0x36, 0x8b, 0x7f, 0xb5, 0xb9, 0xf9, 0x9f, 0xda, 0x2c, 0xfe, 0xd1, 0xe6, - 0xf7, 0x50, 0x37, 0xfd, 0x20, 0x82, 0xe7, 0x59, 0x48, 0x05, 0x7e, 0xdd, 0x5e, 0xed, 0x54, 0x0e, - 0xbf, 0x5e, 0x6a, 0x8e, 0x31, 0xc6, 0xd3, 0x4a, 0xb7, 0x16, 0x2e, 0x7c, 0x09, 0x74, 0x04, 0xaf, - 0x8b, 0xe2, 0xd5, 0xbf, 0x49, 0x7e, 0x4b, 0x13, 0x32, 0xe3, 0x79, 0x22, 0xf1, 0xb6, 0xb9, 0x56, - 0x0c, 0xeb, 0x45, 0xc2, 0x57, 0xdc, 0xb9, 0xa2, 0xd4, 0xb5, 0xb2, 0x38, 0x3e, 0x3c, 0x9b, 0x05, - 0x12, 0x63, 0x5d, 0x70, 0xe3, 0x71, 0x80, 0x34, 0xac, 0x12, 0x2c, 0x5a, 0x49, 0xc6, 0x01, 0x8b, - 0x09, 0x4f, 0x69, 0x82, 0x77, 0x4c, 0x82, 0xf4, 0xd1, 0xc4, 0xb3, 0x80, 0xc5, 0xa3, 0x94, 0x26, - 0xad, 0xdf, 0x2d, 0x68, 0x2e, 0xed, 0x23, 0x72, 0xa1, 0xa4, 0x17, 0xdb, 0xd2, 0x5b, 0xf7, 0xe3, - 0xff, 0x1a, 0x06, 0x47, 0xad, 0xb1, 0x36, 0x56, 0x9f, 0xb5, 0x77, 0x01, 0x25, 0xbd, 0xd8, 0x4d, - 0xa8, 0xb9, 0xa7, 0xef, 0x06, 0x9e, 0xef, 0x5e, 0x93, 0xd1, 0xc5, 0xf0, 0xda, 0x7e, 0xd1, 0x5a, - 0x29, 0x5b, 0x68, 0x13, 0x36, 0x7a, 0xc3, 0xe1, 0xe8, 0x27, 0xd2, 0xbb, 0xb8, 0xb6, 0x2d, 0x0d, - 0x7d, 0x09, 0xaf, 0x3e, 0x0e, 0x5c, 0xff, 0xaa, 0x37, 0x24, 0xde, 0xa9, 0xfb, 0x71, 0xd0, 0x3f, - 0x35, 0x01, 0x2b, 0x8a, 0xdd, 0xfb, 0x01, 0x9a, 0x4b, 0x2f, 0x14, 0xb4, 0x0e, 0xab, 0xa3, 0xb3, - 0x33, 0xfb, 0x05, 0xaa, 0xc0, 0xfa, 0xc9, 0xe9, 0x59, 0xef, 0x6a, 0xe8, 0xdb, 0x16, 0x02, 0x58, - 0xf3, 0x7c, 0x77, 0xd0, 0xf7, 0xed, 0x95, 0xbd, 0x7d, 0x80, 0xc7, 0x8b, 0x02, 0x95, 0xa1, 0x74, - 0x31, 0xba, 0x38, 0xb5, 0x5f, 0xa0, 0x3a, 0xc0, 0xf9, 0x95, 0xce, 0xe7, 0x0f, 0x3d, 0xdb, 0xfa, - 0x50, 0x2a, 0x37, 0x6c, 0xfb, 0x43, 0xa9, 0x8c, 0xec, 0xad, 0x3d, 0x01, 0xd5, 0xc5, 0x0e, 0x23, - 0x0c, 0xeb, 0xf3, 0x2d, 0x33, 0x6f, 0xcf, 0xfc, 0x13, 0x0d, 0xa0, 0x2a, 0x63, 0x75, 0x9b, 0x4a, - 0xc9, 0x92, 0x89, 0xd0, 0x6f, 0x4d, 0xe5, 0x70, 0xbf, 0x30, 0xf1, 0xf1, 0xe1, 0x9b, 0x5b, 0x79, - 0xe4, 0xf8, 0x43, 0xcf, 0x2b, 0xd4, 0x6e, 0x45, 0xc6, 0x62, 0xfe, 0x71, 0xdc, 0xf9, 0xe3, 0x7e, - 0xd7, 0xfa, 0xf3, 0x7e, 0xd7, 0xfa, 0xeb, 0x7e, 0xd7, 0xfa, 0xb9, 0x65, 0x4e, 0x60, 0xbc, 0x1b, - 0xa4, 0xac, 0xfb, 0xe4, 0x71, 0xbd, 0x59, 0xd3, 0x33, 0x7d, 0xf4, 0x77, 0x00, 0x00, 0x00, 0xff, - 0xff, 0xaa, 0xfd, 0x16, 0xd2, 0xc5, 0x07, 0x00, 0x00, + // 1022 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0xdd, 0x4e, 0x23, 0x47, + 0x13, 0xdd, 0x01, 0x2f, 0x98, 0xf2, 0xdf, 0xd0, 0xac, 0x97, 0xc6, 0xdf, 0x27, 0xe2, 0x25, 0x0a, + 0x6b, 0xa1, 0x68, 0xac, 0x05, 0xe5, 0x22, 0xb9, 0x33, 0x06, 0x76, 0xbd, 0x32, 0x18, 0x8d, 0xcd, + 0x46, 0xe4, 0xa6, 0x35, 0xcc, 0xb4, 0xed, 0x16, 0xe3, 0xe9, 0xc9, 0x74, 0xcf, 0x66, 0x79, 0xa1, + 0xbc, 0x44, 0x5e, 0x20, 0x97, 0x79, 0x84, 0x88, 0x27, 0x89, 0xa6, 0x7a, 0x0c, 0x26, 0xb1, 0x44, + 0x94, 0xcb, 0x3e, 0x75, 0xaa, 0xaa, 0xeb, 0x54, 0x55, 0x37, 0x34, 0x66, 0x5c, 0x4d, 0xdb, 0x9f, + 0xdf, 0x79, 0x61, 0x3c, 0xf5, 0xde, 0xb5, 0x7d, 0x19, 0x8d, 0xc5, 0xc4, 0x89, 0x13, 0xa9, 0x25, + 0xd9, 0x12, 0x4a, 0x0b, 0xe9, 0x64, 0x0c, 0x67, 0xce, 0x68, 0xec, 0x4e, 0xa4, 0x9c, 0x84, 0xbc, + 0x8d, 0x94, 0x9b, 0x74, 0xdc, 0x0e, 0xd2, 0xc4, 0xd3, 0x42, 0x46, 0xc6, 0xa9, 0xb1, 0xf3, 0x34, + 0x60, 0x9c, 0xc8, 0x2f, 0x77, 0xb9, 0xe9, 0x20, 0xe2, 0xfa, 0x17, 0x99, 0xdc, 0x8a, 0x68, 0x32, + 0x27, 0x1c, 0xb5, 0x03, 0xae, 0xb4, 0x88, 0x30, 0x02, 0x4b, 0xd2, 0x90, 0x1b, 0xee, 0xde, 0xaf, + 0x15, 0x80, 0x73, 0xae, 0xa6, 0x5d, 0xbc, 0x10, 0xf9, 0x16, 0xc8, 0x4c, 0x7c, 0xe1, 0x09, 0xf3, + 0xa7, 0xdc, 0xbf, 0x65, 0x8a, 0x27, 0x9f, 0x79, 0x42, 0xad, 0xa6, 0xd5, 0xda, 0x70, 0x6d, 0xb4, + 0x74, 0x33, 0xc3, 0x10, 0x71, 0xe2, 0xc0, 0x96, 0x61, 0x27, 0x3c, 0x96, 0x89, 0x9e, 0xd3, 0x57, + 0x90, 0xbe, 0x89, 0x26, 0x17, 0x2d, 0x39, 0xff, 0x10, 0xea, 0x81, 0x50, 0xde, 0x4d, 0xc8, 0x59, + 0x2c, 0x43, 0xe1, 0xdf, 0x99, 0x34, 0x8a, 0xae, 0x36, 0xad, 0x56, 0xd1, 0xdd, 0xca, 0x8d, 0x97, + 0x68, 0xc3, 0x44, 0x8a, 0x1c, 0xc0, 0x26, 0xd6, 0xc6, 0x42, 0xa1, 0x34, 0x8f, 0x58, 0x16, 0x8e, + 0x16, 0x9a, 0x56, 0xeb, 0xa5, 0x5b, 0x43, 0x43, 0x1f, 0xf1, 0x4b, 0x99, 0x68, 0xb2, 0x0f, 0x06, + 0x62, 0x53, 0xad, 0x63, 0xc3, 0x7c, 0x89, 0xcc, 0x0a, 0xc2, 0x1f, 0xb4, 0x8e, 0x91, 0x77, 0x0c, + 0x35, 0x5f, 0x46, 0x11, 0xf7, 0x35, 0xd3, 0x62, 0xc6, 0x65, 0xaa, 0xe9, 0x5a, 0xd3, 0x6a, 0x95, + 0x0e, 0x77, 0x1c, 0xa3, 0xba, 0x33, 0x57, 0xdd, 0x39, 0xc9, 0x55, 0x77, 0xab, 0xb9, 0xc7, 0xc8, + 0x38, 0x90, 0xaf, 0xa1, 0x22, 0xa2, 0x49, 0xc2, 0x95, 0x62, 0x7e, 0xe8, 0x29, 0x45, 0xd7, 0xb1, + 0xea, 0x72, 0x0e, 0x76, 0x33, 0x8c, 0xbc, 0x85, 0xda, 0x9c, 0x94, 0x69, 0x23, 0x7c, 0x4e, 0x8b, + 0x48, 0xab, 0xe6, 0xf0, 0xd0, 0xa0, 0x64, 0x06, 0xdb, 0x0f, 0xd1, 0x64, 0xa4, 0x13, 0x19, 0x86, + 0x3c, 0x61, 0x33, 0x19, 0x70, 0xba, 0xd1, 0xb4, 0x5a, 0xd5, 0xc3, 0xef, 0x9c, 0x25, 0x43, 0xe2, + 0x3c, 0x76, 0xce, 0xe9, 0xe5, 0x79, 0x1f, 0xbc, 0xcf, 0x65, 0xc0, 0xdd, 0xba, 0x58, 0x06, 0x93, + 0x01, 0x94, 0xbc, 0x54, 0x4f, 0xf3, 0x2e, 0x50, 0xc0, 0x14, 0x07, 0xcf, 0xa5, 0xe8, 0xa4, 0x7a, + 0x6a, 0x7a, 0x73, 0xbc, 0x42, 0x2d, 0x17, 0xbc, 0x87, 0x33, 0xe9, 0xc1, 0x66, 0x12, 0x28, 0x96, + 0xf0, 0x71, 0xc2, 0xd5, 0x94, 0x05, 0x3c, 0xf4, 0xee, 0x68, 0xe9, 0x19, 0x4d, 0x31, 0x4a, 0x2d, + 0x09, 0x94, 0x6b, 0xdc, 0x4e, 0x32, 0x2f, 0xf2, 0x0d, 0x54, 0x79, 0x84, 0x33, 0xa2, 0x13, 0xcf, + 0x17, 0xd1, 0x84, 0x96, 0x71, 0x3a, 0x2a, 0x06, 0x1d, 0x19, 0x30, 0xeb, 0xb5, 0xe7, 0xfb, 0x99, + 0x60, 0xa1, 0x9c, 0xb0, 0xb1, 0x08, 0x39, 0xad, 0xa0, 0xb4, 0x15, 0x03, 0xf7, 0xe5, 0xe4, 0x4c, + 0x84, 0x9c, 0xbc, 0x87, 0x6a, 0xc0, 0xc7, 0x5e, 0x1a, 0x6a, 0x66, 0x96, 0x8e, 0x56, 0xf1, 0x5a, + 0xcd, 0xa5, 0xd5, 0x5e, 0x66, 0x73, 0x62, 0xca, 0x75, 0x2b, 0xb9, 0x5f, 0xbe, 0x1a, 0x6f, 0xa1, + 0x62, 0x86, 0xdd, 0x0b, 0x82, 0x4c, 0x52, 0x6a, 0x67, 0xe9, 0xb0, 0x86, 0x32, 0x1a, 0x3a, 0x06, + 0x27, 0x3f, 0xc3, 0xb6, 0x4c, 0xf5, 0x8d, 0x4c, 0xa3, 0x20, 0x2b, 0x61, 0x3c, 0x16, 0xfe, 0x5c, + 0xe8, 0x4d, 0x4c, 0xfd, 0x6c, 0x2f, 0x07, 0xb9, 0xfb, 0xc8, 0x78, 0x2f, 0x68, 0x5e, 0x97, 0xcb, + 0x4c, 0xe4, 0x04, 0xbe, 0xca, 0x35, 0xf3, 0x43, 0xc1, 0x23, 0xcd, 0x94, 0x08, 0x9e, 0xee, 0x18, + 0xdd, 0x42, 0x11, 0xff, 0x67, 0x68, 0x5d, 0x64, 0x0d, 0x45, 0xb0, 0xb8, 0x6b, 0xa4, 0x09, 0x65, + 0x15, 0x28, 0x96, 0x06, 0x8a, 0xc5, 0x9e, 0x9e, 0xd2, 0x57, 0xa8, 0x27, 0xa8, 0x40, 0x5d, 0x05, + 0xea, 0xd2, 0xd3, 0xd3, 0xac, 0xcd, 0xea, 0x1f, 0x6d, 0xae, 0xff, 0xab, 0x36, 0xab, 0xbf, 0xb5, + 0xf9, 0x03, 0x54, 0x4d, 0x3f, 0x98, 0x92, 0x69, 0xe2, 0x73, 0x45, 0x5f, 0x37, 0x57, 0x5b, 0xa5, + 0xc3, 0x37, 0x4b, 0xc5, 0x31, 0xc2, 0x0c, 0x91, 0xe9, 0x56, 0xfc, 0x85, 0x93, 0x22, 0x47, 0xf0, + 0x3a, 0x2f, 0x3e, 0xbb, 0x9b, 0x96, 0xb7, 0x3c, 0x62, 0x33, 0x99, 0x46, 0x9a, 0x6e, 0x9b, 0x67, + 0xc5, 0x58, 0x87, 0x81, 0x1a, 0x65, 0xb6, 0xf3, 0xcc, 0x94, 0x3d, 0x2b, 0x8b, 0xe3, 0x23, 0x93, + 0x99, 0xa7, 0x29, 0xc5, 0x82, 0x6b, 0x8f, 0x03, 0x84, 0x70, 0x96, 0x60, 0x51, 0x4a, 0x36, 0xf6, + 0x44, 0xc8, 0x64, 0xcc, 0x23, 0xba, 0x63, 0x12, 0xc4, 0x8f, 0x22, 0x9e, 0x79, 0x22, 0x1c, 0xc4, + 0x3c, 0x22, 0x6f, 0xa0, 0xac, 0x93, 0x54, 0x69, 0x16, 0xc8, 0x99, 0x27, 0x22, 0xda, 0xc0, 0xd8, + 0x25, 0xc4, 0x4e, 0x10, 0x6a, 0xfc, 0x66, 0x41, 0x7d, 0x69, 0xab, 0x89, 0x0b, 0x05, 0xdc, 0x7d, + 0x0b, 0x17, 0xf3, 0x87, 0xff, 0x34, 0x2f, 0x4e, 0xb6, 0xe9, 0xa8, 0x3d, 0xc6, 0xda, 0xbb, 0x80, + 0x02, 0xee, 0x7e, 0x1d, 0x2a, 0xee, 0xe9, 0xfb, 0xde, 0x70, 0xe4, 0x5e, 0xb3, 0xc1, 0x45, 0xff, + 0xda, 0x7e, 0xd1, 0x58, 0x29, 0x5a, 0x64, 0x13, 0x36, 0x3a, 0xfd, 0xfe, 0xe0, 0x47, 0xd6, 0xb9, + 0xb8, 0xb6, 0x2d, 0x84, 0xfe, 0x0f, 0xaf, 0x3e, 0xf5, 0xdc, 0xd1, 0x55, 0xa7, 0xcf, 0x86, 0xa7, + 0xee, 0xa7, 0x5e, 0xf7, 0xd4, 0x38, 0xac, 0x64, 0xd6, 0xbd, 0xef, 0xa1, 0xbe, 0xf4, 0xcd, 0x21, + 0xeb, 0xb0, 0x3a, 0x38, 0x3b, 0xb3, 0x5f, 0x90, 0x12, 0xac, 0x9f, 0x9c, 0x9e, 0x75, 0xae, 0xfa, + 0x23, 0xdb, 0x22, 0x00, 0x6b, 0xc3, 0x91, 0xdb, 0xeb, 0x8e, 0xec, 0x95, 0xbd, 0x7d, 0x80, 0xc7, + 0xb7, 0x84, 0x14, 0xa1, 0x70, 0x31, 0xb8, 0x38, 0xb5, 0x5f, 0x90, 0x2a, 0xc0, 0xf9, 0x15, 0xe6, + 0x1b, 0xf5, 0x87, 0xb6, 0xf5, 0xb1, 0x50, 0xac, 0xd9, 0xf6, 0xc7, 0x42, 0x91, 0xd8, 0x5b, 0x7b, + 0x0a, 0xca, 0x8b, 0x43, 0x40, 0x28, 0xac, 0xcf, 0x17, 0xd1, 0x7c, 0x4f, 0xf3, 0x23, 0xe9, 0x41, + 0x59, 0x87, 0xd9, 0x83, 0xab, 0xb5, 0x88, 0x26, 0x0a, 0xbf, 0xa3, 0xd2, 0xe1, 0x7e, 0x2e, 0xe2, + 0xe3, 0xdf, 0x38, 0x97, 0xf2, 0xc8, 0x19, 0xf5, 0x87, 0xc3, 0x9c, 0xed, 0x96, 0x74, 0xa8, 0xe6, + 0x87, 0xe3, 0xd6, 0xef, 0xf7, 0xbb, 0xd6, 0x1f, 0xf7, 0xbb, 0xd6, 0x9f, 0xf7, 0xbb, 0xd6, 0x4f, + 0x0d, 0x13, 0x41, 0xc8, 0xb6, 0x17, 0x8b, 0xf6, 0x93, 0xff, 0xf7, 0x66, 0x0d, 0xc7, 0xfe, 0xe8, + 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc5, 0x33, 0xb9, 0xa7, 0xe8, 0x07, 0x00, 0x00, } diff --git a/mesh/v1alpha1/config.proto b/mesh/v1alpha1/config.proto index 941f6476be..38b2b2faec 100644 --- a/mesh/v1alpha1/config.proto +++ b/mesh/v1alpha1/config.proto @@ -182,8 +182,13 @@ message MeshConfig { // will be used to generate key/cert eventually. This isn't supported for non-k8s case. bool enable_sds_token_mount = 23; + // The trust domain corresponds to the trust root of a system. + // Refer to 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. + string trust_domain = 26; + // $hide_from_docs - // Next available field number: 26 + // Next available field number: 27 } // ConfigSource describes information about a configuration store inside a diff --git a/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html b/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html index 65b39dd6d3..e5ade7fc3e 100644 --- a/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html +++ b/mesh/v1alpha1/istio.mesh.v1alpha1.pb.html @@ -276,6 +276,16 @@

MeshConfig

rules, and other Istio configuration artifacts. Multiple data sources can be configured for a single control plane.

+ + + +trustDomain +string + +

The trust domain corresponds to the trust root of a system. +Refer to 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.

+ diff --git a/mixer/v1/attributes.pb.go b/mixer/v1/attributes.pb.go index 3d0fa8a1cb..67c8b71078 100644 --- a/mixer/v1/attributes.pb.go +++ b/mixer/v1/attributes.pb.go @@ -6,9 +6,7 @@ It is generated from these files: mixer/v1/attributes.proto - mixer/v1/check.proto - mixer/v1/report.proto - mixer/v1/service.proto + mixer/v1/mixer.proto It has these top-level messages: Attributes diff --git a/mixer/v1/check.pb.go b/mixer/v1/mixer.pb.go similarity index 68% rename from mixer/v1/check.pb.go rename to mixer/v1/mixer.pb.go index 12bdcb5f6a..0f6c334879 100644 --- a/mixer/v1/check.pb.go +++ b/mixer/v1/mixer.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: mixer/v1/check.proto +// source: mixer/v1/mixer.proto package v1 @@ -14,6 +14,9 @@ import time "time" import strconv "strconv" +import context "golang.org/x/net/context" +import grpc "google.golang.org/grpc" + import types "github.com/gogo/protobuf/types" import strings "strings" @@ -52,7 +55,7 @@ var ReferencedAttributes_Condition_value = map[string]int32{ } func (ReferencedAttributes_Condition) EnumDescriptor() ([]byte, []int) { - return fileDescriptorCheck, []int{2, 0} + return fileDescriptorMixer, []int{2, 0} } // Operation type. @@ -76,7 +79,7 @@ var HeaderOperation_Operation_value = map[string]int32{ } func (HeaderOperation_Operation) EnumDescriptor() ([]byte, []int) { - return fileDescriptorCheck, []int{3, 0} + return fileDescriptorMixer, []int{3, 0} } // Used to get a thumbs-up/thumbs-down before performing an action. @@ -99,7 +102,7 @@ type CheckRequest struct { func (m *CheckRequest) Reset() { *m = CheckRequest{} } func (*CheckRequest) ProtoMessage() {} -func (*CheckRequest) Descriptor() ([]byte, []int) { return fileDescriptorCheck, []int{0} } +func (*CheckRequest) Descriptor() ([]byte, []int) { return fileDescriptorMixer, []int{0} } // parameters for a quota allocation type CheckRequest_QuotaParams struct { @@ -111,7 +114,7 @@ type CheckRequest_QuotaParams struct { func (m *CheckRequest_QuotaParams) Reset() { *m = CheckRequest_QuotaParams{} } func (*CheckRequest_QuotaParams) ProtoMessage() {} -func (*CheckRequest_QuotaParams) Descriptor() ([]byte, []int) { return fileDescriptorCheck, []int{0, 0} } +func (*CheckRequest_QuotaParams) Descriptor() ([]byte, []int) { return fileDescriptorMixer, []int{0, 0} } // The response generated by the Check method. type CheckResponse struct { @@ -123,7 +126,7 @@ type CheckResponse struct { func (m *CheckResponse) Reset() { *m = CheckResponse{} } func (*CheckResponse) ProtoMessage() {} -func (*CheckResponse) Descriptor() ([]byte, []int) { return fileDescriptorCheck, []int{1} } +func (*CheckResponse) Descriptor() ([]byte, []int) { return fileDescriptorMixer, []int{1} } // Expresses the result of a precondition check. type CheckResponse_PreconditionResult struct { @@ -145,7 +148,7 @@ type CheckResponse_PreconditionResult struct { func (m *CheckResponse_PreconditionResult) Reset() { *m = CheckResponse_PreconditionResult{} } func (*CheckResponse_PreconditionResult) ProtoMessage() {} func (*CheckResponse_PreconditionResult) Descriptor() ([]byte, []int) { - return fileDescriptorCheck, []int{1, 0} + return fileDescriptorMixer, []int{1, 0} } // Expresses the result of a quota allocation. @@ -163,7 +166,7 @@ type CheckResponse_QuotaResult struct { func (m *CheckResponse_QuotaResult) Reset() { *m = CheckResponse_QuotaResult{} } func (*CheckResponse_QuotaResult) ProtoMessage() {} func (*CheckResponse_QuotaResult) Descriptor() ([]byte, []int) { - return fileDescriptorCheck, []int{1, 1} + return fileDescriptorMixer, []int{1, 1} } // Describes the attributes that were used to determine the response. @@ -178,7 +181,7 @@ type ReferencedAttributes struct { func (m *ReferencedAttributes) Reset() { *m = ReferencedAttributes{} } func (*ReferencedAttributes) ProtoMessage() {} -func (*ReferencedAttributes) Descriptor() ([]byte, []int) { return fileDescriptorCheck, []int{2} } +func (*ReferencedAttributes) Descriptor() ([]byte, []int) { return fileDescriptorMixer, []int{2} } // Describes a single attribute match. type ReferencedAttributes_AttributeMatch struct { @@ -206,7 +209,7 @@ type ReferencedAttributes_AttributeMatch struct { func (m *ReferencedAttributes_AttributeMatch) Reset() { *m = ReferencedAttributes_AttributeMatch{} } func (*ReferencedAttributes_AttributeMatch) ProtoMessage() {} func (*ReferencedAttributes_AttributeMatch) Descriptor() ([]byte, []int) { - return fileDescriptorCheck, []int{2, 0} + return fileDescriptorMixer, []int{2, 0} } // Operation on HTTP headers to replace, append, or remove a header. Header @@ -224,7 +227,7 @@ type HeaderOperation struct { func (m *HeaderOperation) Reset() { *m = HeaderOperation{} } func (*HeaderOperation) ProtoMessage() {} -func (*HeaderOperation) Descriptor() ([]byte, []int) { return fileDescriptorCheck, []int{3} } +func (*HeaderOperation) Descriptor() ([]byte, []int) { return fileDescriptorMixer, []int{3} } // Expresses the routing manipulation actions to be performed on behalf of // Mixer in response to a successful precondition check. @@ -243,7 +246,50 @@ type RouteDirective struct { func (m *RouteDirective) Reset() { *m = RouteDirective{} } func (*RouteDirective) ProtoMessage() {} -func (*RouteDirective) Descriptor() ([]byte, []int) { return fileDescriptorCheck, []int{4} } +func (*RouteDirective) Descriptor() ([]byte, []int) { return fileDescriptorMixer, []int{4} } + +// Used to report telemetry after performing one or more actions. +type ReportRequest struct { + // 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. + // + // Although each `Attributes` message is semantically treated as an independent + // stand-alone entity unrelated to the other attributes within the message, this + // message format leverages delta-encoding between attribute messages in order to + // substantially reduce the request size and improve end-to-end efficiency. Each + // individual set of attributes is used to modify the previous set. This eliminates + // the need to redundantly send the same attributes multiple times over within + // a single request. + // + // If a client is not sophisticated and doesn't want to use delta-encoding, + // a degenerate case is to include all attributes in every individual message. + Attributes []CompressedAttributes `protobuf:"bytes,1,rep,name=attributes" json:"attributes"` + // 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. + DefaultWords []string `protobuf:"bytes,2,rep,name=default_words,json=defaultWords" json:"default_words,omitempty"` + // The number of words in the global dictionary. + // To detect global dictionary out of sync between client and server. + GlobalWordCount uint32 `protobuf:"varint,3,opt,name=global_word_count,json=globalWordCount,proto3" json:"global_word_count,omitempty"` +} + +func (m *ReportRequest) Reset() { *m = ReportRequest{} } +func (*ReportRequest) ProtoMessage() {} +func (*ReportRequest) Descriptor() ([]byte, []int) { return fileDescriptorMixer, []int{5} } + +// Used to carry responses to telemetry reports +type ReportResponse struct { +} + +func (m *ReportResponse) Reset() { *m = ReportResponse{} } +func (*ReportResponse) ProtoMessage() {} +func (*ReportResponse) Descriptor() ([]byte, []int) { return fileDescriptorMixer, []int{6} } func init() { proto.RegisterType((*CheckRequest)(nil), "istio.mixer.v1.CheckRequest") @@ -255,6 +301,8 @@ func init() { proto.RegisterType((*ReferencedAttributes_AttributeMatch)(nil), "istio.mixer.v1.ReferencedAttributes.AttributeMatch") proto.RegisterType((*HeaderOperation)(nil), "istio.mixer.v1.HeaderOperation") proto.RegisterType((*RouteDirective)(nil), "istio.mixer.v1.RouteDirective") + proto.RegisterType((*ReportRequest)(nil), "istio.mixer.v1.ReportRequest") + proto.RegisterType((*ReportResponse)(nil), "istio.mixer.v1.ReportResponse") proto.RegisterEnum("istio.mixer.v1.ReferencedAttributes_Condition", ReferencedAttributes_Condition_name, ReferencedAttributes_Condition_value) proto.RegisterEnum("istio.mixer.v1.HeaderOperation_Operation", HeaderOperation_Operation_name, HeaderOperation_Operation_value) } @@ -272,6 +320,124 @@ func (x HeaderOperation_Operation) String() string { } return strconv.Itoa(int(x)) } + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// Client API for Mixer service + +type MixerClient interface { + // Checks preconditions and allocate quota before performing an operation. + // The preconditions enforced depend on the set of supplied attributes and + // the active configuration. + Check(ctx context.Context, in *CheckRequest, opts ...grpc.CallOption) (*CheckResponse, error) + // Reports telemetry, such as logs and metrics. + // The reported information depends on the set of supplied attributes and the + // active configuration. + Report(ctx context.Context, in *ReportRequest, opts ...grpc.CallOption) (*ReportResponse, error) +} + +type mixerClient struct { + cc *grpc.ClientConn +} + +func NewMixerClient(cc *grpc.ClientConn) MixerClient { + return &mixerClient{cc} +} + +func (c *mixerClient) Check(ctx context.Context, in *CheckRequest, opts ...grpc.CallOption) (*CheckResponse, error) { + out := new(CheckResponse) + err := grpc.Invoke(ctx, "/istio.mixer.v1.Mixer/Check", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *mixerClient) Report(ctx context.Context, in *ReportRequest, opts ...grpc.CallOption) (*ReportResponse, error) { + out := new(ReportResponse) + err := grpc.Invoke(ctx, "/istio.mixer.v1.Mixer/Report", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for Mixer service + +type MixerServer interface { + // Checks preconditions and allocate quota before performing an operation. + // The preconditions enforced depend on the set of supplied attributes and + // the active configuration. + Check(context.Context, *CheckRequest) (*CheckResponse, error) + // Reports telemetry, such as logs and metrics. + // The reported information depends on the set of supplied attributes and the + // active configuration. + Report(context.Context, *ReportRequest) (*ReportResponse, error) +} + +func RegisterMixerServer(s *grpc.Server, srv MixerServer) { + s.RegisterService(&_Mixer_serviceDesc, srv) +} + +func _Mixer_Check_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MixerServer).Check(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/istio.mixer.v1.Mixer/Check", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MixerServer).Check(ctx, req.(*CheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Mixer_Report_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReportRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MixerServer).Report(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/istio.mixer.v1.Mixer/Report", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MixerServer).Report(ctx, req.(*ReportRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Mixer_serviceDesc = grpc.ServiceDesc{ + ServiceName: "istio.mixer.v1.Mixer", + HandlerType: (*MixerServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Check", + Handler: _Mixer_Check_Handler, + }, + { + MethodName: "Report", + Handler: _Mixer_Report_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "mixer/v1/mixer.proto", +} + func (m *CheckRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -289,7 +455,7 @@ func (m *CheckRequest) MarshalTo(dAtA []byte) (int, error) { _ = l dAtA[i] = 0xa i++ - i = encodeVarintCheck(dAtA, i, uint64(m.Attributes.Size())) + i = encodeVarintMixer(dAtA, i, uint64(m.Attributes.Size())) n1, err := m.Attributes.MarshalTo(dAtA[i:]) if err != nil { return 0, err @@ -298,12 +464,12 @@ func (m *CheckRequest) MarshalTo(dAtA []byte) (int, error) { if m.GlobalWordCount != 0 { dAtA[i] = 0x10 i++ - i = encodeVarintCheck(dAtA, i, uint64(m.GlobalWordCount)) + i = encodeVarintMixer(dAtA, i, uint64(m.GlobalWordCount)) } if len(m.DeduplicationId) > 0 { dAtA[i] = 0x1a i++ - i = encodeVarintCheck(dAtA, i, uint64(len(m.DeduplicationId))) + i = encodeVarintMixer(dAtA, i, uint64(len(m.DeduplicationId))) i += copy(dAtA[i:], m.DeduplicationId) } if len(m.Quotas) > 0 { @@ -314,17 +480,17 @@ func (m *CheckRequest) MarshalTo(dAtA []byte) (int, error) { msgSize := 0 if (&v) != nil { msgSize = (&v).Size() - msgSize += 1 + sovCheck(uint64(msgSize)) + msgSize += 1 + sovMixer(uint64(msgSize)) } - mapSize := 1 + len(k) + sovCheck(uint64(len(k))) + msgSize - i = encodeVarintCheck(dAtA, i, uint64(mapSize)) + mapSize := 1 + len(k) + sovMixer(uint64(len(k))) + msgSize + i = encodeVarintMixer(dAtA, i, uint64(mapSize)) dAtA[i] = 0xa i++ - i = encodeVarintCheck(dAtA, i, uint64(len(k))) + i = encodeVarintMixer(dAtA, i, uint64(len(k))) i += copy(dAtA[i:], k) dAtA[i] = 0x12 i++ - i = encodeVarintCheck(dAtA, i, uint64((&v).Size())) + i = encodeVarintMixer(dAtA, i, uint64((&v).Size())) n2, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err @@ -353,7 +519,7 @@ func (m *CheckRequest_QuotaParams) MarshalTo(dAtA []byte) (int, error) { if m.Amount != 0 { dAtA[i] = 0x8 i++ - i = encodeVarintCheck(dAtA, i, uint64(m.Amount)) + i = encodeVarintMixer(dAtA, i, uint64(m.Amount)) } if m.BestEffort { dAtA[i] = 0x10 @@ -385,7 +551,7 @@ func (m *CheckResponse) MarshalTo(dAtA []byte) (int, error) { _ = l dAtA[i] = 0x12 i++ - i = encodeVarintCheck(dAtA, i, uint64(m.Precondition.Size())) + i = encodeVarintMixer(dAtA, i, uint64(m.Precondition.Size())) n3, err := m.Precondition.MarshalTo(dAtA[i:]) if err != nil { return 0, err @@ -399,17 +565,17 @@ func (m *CheckResponse) MarshalTo(dAtA []byte) (int, error) { msgSize := 0 if (&v) != nil { msgSize = (&v).Size() - msgSize += 1 + sovCheck(uint64(msgSize)) + msgSize += 1 + sovMixer(uint64(msgSize)) } - mapSize := 1 + len(k) + sovCheck(uint64(len(k))) + msgSize - i = encodeVarintCheck(dAtA, i, uint64(mapSize)) + mapSize := 1 + len(k) + sovMixer(uint64(len(k))) + msgSize + i = encodeVarintMixer(dAtA, i, uint64(mapSize)) dAtA[i] = 0xa i++ - i = encodeVarintCheck(dAtA, i, uint64(len(k))) + i = encodeVarintMixer(dAtA, i, uint64(len(k))) i += copy(dAtA[i:], k) dAtA[i] = 0x12 i++ - i = encodeVarintCheck(dAtA, i, uint64((&v).Size())) + i = encodeVarintMixer(dAtA, i, uint64((&v).Size())) n4, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err @@ -437,7 +603,7 @@ func (m *CheckResponse_PreconditionResult) MarshalTo(dAtA []byte) (int, error) { _ = l dAtA[i] = 0xa i++ - i = encodeVarintCheck(dAtA, i, uint64(m.Status.Size())) + i = encodeVarintMixer(dAtA, i, uint64(m.Status.Size())) n5, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err @@ -445,7 +611,7 @@ func (m *CheckResponse_PreconditionResult) MarshalTo(dAtA []byte) (int, error) { i += n5 dAtA[i] = 0x12 i++ - i = encodeVarintCheck(dAtA, i, uint64(types.SizeOfStdDuration(m.ValidDuration))) + i = encodeVarintMixer(dAtA, i, uint64(types.SizeOfStdDuration(m.ValidDuration))) n6, err := types.StdDurationMarshalTo(m.ValidDuration, dAtA[i:]) if err != nil { return 0, err @@ -454,12 +620,12 @@ func (m *CheckResponse_PreconditionResult) MarshalTo(dAtA []byte) (int, error) { if m.ValidUseCount != 0 { dAtA[i] = 0x18 i++ - i = encodeVarintCheck(dAtA, i, uint64(m.ValidUseCount)) + i = encodeVarintMixer(dAtA, i, uint64(m.ValidUseCount)) } if m.ReferencedAttributes != nil { dAtA[i] = 0x2a i++ - i = encodeVarintCheck(dAtA, i, uint64(m.ReferencedAttributes.Size())) + i = encodeVarintMixer(dAtA, i, uint64(m.ReferencedAttributes.Size())) n7, err := m.ReferencedAttributes.MarshalTo(dAtA[i:]) if err != nil { return 0, err @@ -469,7 +635,7 @@ func (m *CheckResponse_PreconditionResult) MarshalTo(dAtA []byte) (int, error) { if m.RouteDirective != nil { dAtA[i] = 0x32 i++ - i = encodeVarintCheck(dAtA, i, uint64(m.RouteDirective.Size())) + i = encodeVarintMixer(dAtA, i, uint64(m.RouteDirective.Size())) n8, err := m.RouteDirective.MarshalTo(dAtA[i:]) if err != nil { return 0, err @@ -496,7 +662,7 @@ func (m *CheckResponse_QuotaResult) MarshalTo(dAtA []byte) (int, error) { _ = l dAtA[i] = 0xa i++ - i = encodeVarintCheck(dAtA, i, uint64(types.SizeOfStdDuration(m.ValidDuration))) + i = encodeVarintMixer(dAtA, i, uint64(types.SizeOfStdDuration(m.ValidDuration))) n9, err := types.StdDurationMarshalTo(m.ValidDuration, dAtA[i:]) if err != nil { return 0, err @@ -505,11 +671,11 @@ func (m *CheckResponse_QuotaResult) MarshalTo(dAtA []byte) (int, error) { if m.GrantedAmount != 0 { dAtA[i] = 0x10 i++ - i = encodeVarintCheck(dAtA, i, uint64(m.GrantedAmount)) + i = encodeVarintMixer(dAtA, i, uint64(m.GrantedAmount)) } dAtA[i] = 0x2a i++ - i = encodeVarintCheck(dAtA, i, uint64(m.ReferencedAttributes.Size())) + i = encodeVarintMixer(dAtA, i, uint64(m.ReferencedAttributes.Size())) n10, err := m.ReferencedAttributes.MarshalTo(dAtA[i:]) if err != nil { return 0, err @@ -552,7 +718,7 @@ func (m *ReferencedAttributes) MarshalTo(dAtA []byte) (int, error) { for _, msg := range m.AttributeMatches { dAtA[i] = 0x12 i++ - i = encodeVarintCheck(dAtA, i, uint64(msg.Size())) + i = encodeVarintMixer(dAtA, i, uint64(msg.Size())) n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err @@ -581,23 +747,23 @@ func (m *ReferencedAttributes_AttributeMatch) MarshalTo(dAtA []byte) (int, error if m.Name != 0 { dAtA[i] = 0x8 i++ - i = encodeVarintCheck(dAtA, i, uint64((uint32(m.Name)<<1)^uint32((m.Name>>31)))) + i = encodeVarintMixer(dAtA, i, uint64((uint32(m.Name)<<1)^uint32((m.Name>>31)))) } if m.Condition != 0 { dAtA[i] = 0x10 i++ - i = encodeVarintCheck(dAtA, i, uint64(m.Condition)) + i = encodeVarintMixer(dAtA, i, uint64(m.Condition)) } if len(m.Regex) > 0 { dAtA[i] = 0x1a i++ - i = encodeVarintCheck(dAtA, i, uint64(len(m.Regex))) + i = encodeVarintMixer(dAtA, i, uint64(len(m.Regex))) i += copy(dAtA[i:], m.Regex) } if m.MapKey != 0 { dAtA[i] = 0x20 i++ - i = encodeVarintCheck(dAtA, i, uint64((uint32(m.MapKey)<<1)^uint32((m.MapKey>>31)))) + i = encodeVarintMixer(dAtA, i, uint64((uint32(m.MapKey)<<1)^uint32((m.MapKey>>31)))) } return i, nil } @@ -620,19 +786,19 @@ func (m *HeaderOperation) MarshalTo(dAtA []byte) (int, error) { if len(m.Name) > 0 { dAtA[i] = 0xa i++ - i = encodeVarintCheck(dAtA, i, uint64(len(m.Name))) + i = encodeVarintMixer(dAtA, i, uint64(len(m.Name))) i += copy(dAtA[i:], m.Name) } if len(m.Value) > 0 { dAtA[i] = 0x12 i++ - i = encodeVarintCheck(dAtA, i, uint64(len(m.Value))) + i = encodeVarintMixer(dAtA, i, uint64(len(m.Value))) i += copy(dAtA[i:], m.Value) } if m.Operation != 0 { dAtA[i] = 0x18 i++ - i = encodeVarintCheck(dAtA, i, uint64(m.Operation)) + i = encodeVarintMixer(dAtA, i, uint64(m.Operation)) } return i, nil } @@ -656,7 +822,7 @@ func (m *RouteDirective) MarshalTo(dAtA []byte) (int, error) { for _, msg := range m.RequestHeaderOperations { dAtA[i] = 0xa i++ - i = encodeVarintCheck(dAtA, i, uint64(msg.Size())) + i = encodeVarintMixer(dAtA, i, uint64(msg.Size())) n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err @@ -668,7 +834,7 @@ func (m *RouteDirective) MarshalTo(dAtA []byte) (int, error) { for _, msg := range m.ResponseHeaderOperations { dAtA[i] = 0x12 i++ - i = encodeVarintCheck(dAtA, i, uint64(msg.Size())) + i = encodeVarintMixer(dAtA, i, uint64(msg.Size())) n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err @@ -679,18 +845,86 @@ func (m *RouteDirective) MarshalTo(dAtA []byte) (int, error) { if m.DirectResponseCode != 0 { dAtA[i] = 0x18 i++ - i = encodeVarintCheck(dAtA, i, uint64(m.DirectResponseCode)) + i = encodeVarintMixer(dAtA, i, uint64(m.DirectResponseCode)) } if len(m.DirectResponseBody) > 0 { dAtA[i] = 0x22 i++ - i = encodeVarintCheck(dAtA, i, uint64(len(m.DirectResponseBody))) + i = encodeVarintMixer(dAtA, i, uint64(len(m.DirectResponseBody))) i += copy(dAtA[i:], m.DirectResponseBody) } return i, nil } -func encodeVarintCheck(dAtA []byte, offset int, v uint64) int { +func (m *ReportRequest) 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 *ReportRequest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Attributes) > 0 { + for _, msg := range m.Attributes { + dAtA[i] = 0xa + i++ + i = encodeVarintMixer(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.DefaultWords) > 0 { + for _, s := range m.DefaultWords { + dAtA[i] = 0x12 + 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.GlobalWordCount != 0 { + dAtA[i] = 0x18 + i++ + i = encodeVarintMixer(dAtA, i, uint64(m.GlobalWordCount)) + } + return i, nil +} + +func (m *ReportResponse) 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 *ReportResponse) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + return i, nil +} + +func encodeVarintMixer(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 @@ -703,21 +937,21 @@ func (m *CheckRequest) Size() (n int) { var l int _ = l l = m.Attributes.Size() - n += 1 + l + sovCheck(uint64(l)) + n += 1 + l + sovMixer(uint64(l)) if m.GlobalWordCount != 0 { - n += 1 + sovCheck(uint64(m.GlobalWordCount)) + n += 1 + sovMixer(uint64(m.GlobalWordCount)) } l = len(m.DeduplicationId) if l > 0 { - n += 1 + l + sovCheck(uint64(l)) + n += 1 + l + sovMixer(uint64(l)) } if len(m.Quotas) > 0 { for k, v := range m.Quotas { _ = k _ = v l = v.Size() - mapEntrySize := 1 + len(k) + sovCheck(uint64(len(k))) + 1 + l + sovCheck(uint64(l)) - n += mapEntrySize + 1 + sovCheck(uint64(mapEntrySize)) + mapEntrySize := 1 + len(k) + sovMixer(uint64(len(k))) + 1 + l + sovMixer(uint64(l)) + n += mapEntrySize + 1 + sovMixer(uint64(mapEntrySize)) } } return n @@ -727,7 +961,7 @@ func (m *CheckRequest_QuotaParams) Size() (n int) { var l int _ = l if m.Amount != 0 { - n += 1 + sovCheck(uint64(m.Amount)) + n += 1 + sovMixer(uint64(m.Amount)) } if m.BestEffort { n += 2 @@ -739,14 +973,14 @@ func (m *CheckResponse) Size() (n int) { var l int _ = l l = m.Precondition.Size() - n += 1 + l + sovCheck(uint64(l)) + n += 1 + l + sovMixer(uint64(l)) if len(m.Quotas) > 0 { for k, v := range m.Quotas { _ = k _ = v l = v.Size() - mapEntrySize := 1 + len(k) + sovCheck(uint64(len(k))) + 1 + l + sovCheck(uint64(l)) - n += mapEntrySize + 1 + sovCheck(uint64(mapEntrySize)) + mapEntrySize := 1 + len(k) + sovMixer(uint64(len(k))) + 1 + l + sovMixer(uint64(l)) + n += mapEntrySize + 1 + sovMixer(uint64(mapEntrySize)) } } return n @@ -756,19 +990,19 @@ func (m *CheckResponse_PreconditionResult) Size() (n int) { var l int _ = l l = m.Status.Size() - n += 1 + l + sovCheck(uint64(l)) + n += 1 + l + sovMixer(uint64(l)) l = types.SizeOfStdDuration(m.ValidDuration) - n += 1 + l + sovCheck(uint64(l)) + n += 1 + l + sovMixer(uint64(l)) if m.ValidUseCount != 0 { - n += 1 + sovCheck(uint64(m.ValidUseCount)) + n += 1 + sovMixer(uint64(m.ValidUseCount)) } if m.ReferencedAttributes != nil { l = m.ReferencedAttributes.Size() - n += 1 + l + sovCheck(uint64(l)) + n += 1 + l + sovMixer(uint64(l)) } if m.RouteDirective != nil { l = m.RouteDirective.Size() - n += 1 + l + sovCheck(uint64(l)) + n += 1 + l + sovMixer(uint64(l)) } return n } @@ -777,12 +1011,12 @@ func (m *CheckResponse_QuotaResult) Size() (n int) { var l int _ = l l = types.SizeOfStdDuration(m.ValidDuration) - n += 1 + l + sovCheck(uint64(l)) + n += 1 + l + sovMixer(uint64(l)) if m.GrantedAmount != 0 { - n += 1 + sovCheck(uint64(m.GrantedAmount)) + n += 1 + sovMixer(uint64(m.GrantedAmount)) } l = m.ReferencedAttributes.Size() - n += 1 + l + sovCheck(uint64(l)) + n += 1 + l + sovMixer(uint64(l)) return n } @@ -792,13 +1026,13 @@ func (m *ReferencedAttributes) Size() (n int) { if len(m.Words) > 0 { for _, s := range m.Words { l = len(s) - n += 1 + l + sovCheck(uint64(l)) + n += 1 + l + sovMixer(uint64(l)) } } if len(m.AttributeMatches) > 0 { for _, e := range m.AttributeMatches { l = e.Size() - n += 1 + l + sovCheck(uint64(l)) + n += 1 + l + sovMixer(uint64(l)) } } return n @@ -808,17 +1042,17 @@ func (m *ReferencedAttributes_AttributeMatch) Size() (n int) { var l int _ = l if m.Name != 0 { - n += 1 + sozCheck(uint64(m.Name)) + n += 1 + sozMixer(uint64(m.Name)) } if m.Condition != 0 { - n += 1 + sovCheck(uint64(m.Condition)) + n += 1 + sovMixer(uint64(m.Condition)) } l = len(m.Regex) if l > 0 { - n += 1 + l + sovCheck(uint64(l)) + n += 1 + l + sovMixer(uint64(l)) } if m.MapKey != 0 { - n += 1 + sozCheck(uint64(m.MapKey)) + n += 1 + sozMixer(uint64(m.MapKey)) } return n } @@ -828,14 +1062,14 @@ func (m *HeaderOperation) Size() (n int) { _ = l l = len(m.Name) if l > 0 { - n += 1 + l + sovCheck(uint64(l)) + n += 1 + l + sovMixer(uint64(l)) } l = len(m.Value) if l > 0 { - n += 1 + l + sovCheck(uint64(l)) + n += 1 + l + sovMixer(uint64(l)) } if m.Operation != 0 { - n += 1 + sovCheck(uint64(m.Operation)) + n += 1 + sovMixer(uint64(m.Operation)) } return n } @@ -846,26 +1080,53 @@ func (m *RouteDirective) Size() (n int) { if len(m.RequestHeaderOperations) > 0 { for _, e := range m.RequestHeaderOperations { l = e.Size() - n += 1 + l + sovCheck(uint64(l)) + n += 1 + l + sovMixer(uint64(l)) } } if len(m.ResponseHeaderOperations) > 0 { for _, e := range m.ResponseHeaderOperations { l = e.Size() - n += 1 + l + sovCheck(uint64(l)) + n += 1 + l + sovMixer(uint64(l)) } } if m.DirectResponseCode != 0 { - n += 1 + sovCheck(uint64(m.DirectResponseCode)) + n += 1 + sovMixer(uint64(m.DirectResponseCode)) } l = len(m.DirectResponseBody) if l > 0 { - n += 1 + l + sovCheck(uint64(l)) + n += 1 + l + sovMixer(uint64(l)) + } + return n +} + +func (m *ReportRequest) Size() (n int) { + var l int + _ = l + if len(m.Attributes) > 0 { + for _, e := range m.Attributes { + l = e.Size() + n += 1 + l + sovMixer(uint64(l)) + } + } + if len(m.DefaultWords) > 0 { + for _, s := range m.DefaultWords { + l = len(s) + n += 1 + l + sovMixer(uint64(l)) + } + } + if m.GlobalWordCount != 0 { + n += 1 + sovMixer(uint64(m.GlobalWordCount)) } return n } -func sovCheck(x uint64) (n int) { +func (m *ReportResponse) Size() (n int) { + var l int + _ = l + return n +} + +func sovMixer(x uint64) (n int) { for { n++ x >>= 7 @@ -875,8 +1136,8 @@ func sovCheck(x uint64) (n int) { } return n } -func sozCheck(x uint64) (n int) { - return sovCheck(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +func sozMixer(x uint64) (n int) { + return sovMixer(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } func (this *CheckRequest) String() string { if this == nil { @@ -1008,7 +1269,28 @@ func (this *RouteDirective) String() string { }, "") return s } -func valueToStringCheck(v interface{}) string { +func (this *ReportRequest) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ReportRequest{`, + `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) + `,`, + `}`, + }, "") + return s +} +func (this *ReportResponse) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ReportResponse{`, + `}`, + }, "") + return s +} +func valueToStringMixer(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { return "nil" @@ -1024,7 +1306,7 @@ func (m *CheckRequest) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1052,7 +1334,7 @@ func (m *CheckRequest) Unmarshal(dAtA []byte) error { var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1065,7 +1347,7 @@ func (m *CheckRequest) Unmarshal(dAtA []byte) error { } } if msglen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + msglen if postIndex > l { @@ -1082,7 +1364,7 @@ func (m *CheckRequest) Unmarshal(dAtA []byte) error { m.GlobalWordCount = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1101,7 +1383,7 @@ func (m *CheckRequest) Unmarshal(dAtA []byte) error { var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1115,7 +1397,7 @@ func (m *CheckRequest) Unmarshal(dAtA []byte) error { } intStringLen := int(stringLen) if intStringLen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + intStringLen if postIndex > l { @@ -1130,7 +1412,7 @@ func (m *CheckRequest) Unmarshal(dAtA []byte) error { var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1143,7 +1425,7 @@ func (m *CheckRequest) Unmarshal(dAtA []byte) error { } } if msglen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + msglen if postIndex > l { @@ -1159,7 +1441,7 @@ func (m *CheckRequest) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1176,7 +1458,7 @@ func (m *CheckRequest) Unmarshal(dAtA []byte) error { var stringLenmapkey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1190,7 +1472,7 @@ func (m *CheckRequest) Unmarshal(dAtA []byte) error { } intStringLenmapkey := int(stringLenmapkey) if intStringLenmapkey < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postStringIndexmapkey := iNdEx + intStringLenmapkey if postStringIndexmapkey > l { @@ -1202,7 +1484,7 @@ func (m *CheckRequest) Unmarshal(dAtA []byte) error { var mapmsglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1215,11 +1497,11 @@ func (m *CheckRequest) Unmarshal(dAtA []byte) error { } } if mapmsglen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postmsgIndex := iNdEx + mapmsglen if mapmsglen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } if postmsgIndex > l { return io.ErrUnexpectedEOF @@ -1231,12 +1513,12 @@ func (m *CheckRequest) Unmarshal(dAtA []byte) error { iNdEx = postmsgIndex } else { iNdEx = entryPreIndex - skippy, err := skipCheck(dAtA[iNdEx:]) + skippy, err := skipMixer(dAtA[iNdEx:]) if err != nil { return err } if skippy < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF @@ -1248,12 +1530,12 @@ func (m *CheckRequest) Unmarshal(dAtA []byte) error { iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipCheck(dAtA[iNdEx:]) + skippy, err := skipMixer(dAtA[iNdEx:]) if err != nil { return err } if skippy < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -1275,7 +1557,7 @@ func (m *CheckRequest_QuotaParams) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1303,7 +1585,7 @@ func (m *CheckRequest_QuotaParams) Unmarshal(dAtA []byte) error { m.Amount = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1322,7 +1604,7 @@ func (m *CheckRequest_QuotaParams) Unmarshal(dAtA []byte) error { var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1337,12 +1619,12 @@ func (m *CheckRequest_QuotaParams) Unmarshal(dAtA []byte) error { m.BestEffort = bool(v != 0) default: iNdEx = preIndex - skippy, err := skipCheck(dAtA[iNdEx:]) + skippy, err := skipMixer(dAtA[iNdEx:]) if err != nil { return err } if skippy < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -1364,7 +1646,7 @@ func (m *CheckResponse) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1392,7 +1674,7 @@ func (m *CheckResponse) Unmarshal(dAtA []byte) error { var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1405,7 +1687,7 @@ func (m *CheckResponse) Unmarshal(dAtA []byte) error { } } if msglen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + msglen if postIndex > l { @@ -1422,7 +1704,7 @@ func (m *CheckResponse) Unmarshal(dAtA []byte) error { var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1435,7 +1717,7 @@ func (m *CheckResponse) Unmarshal(dAtA []byte) error { } } if msglen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + msglen if postIndex > l { @@ -1451,7 +1733,7 @@ func (m *CheckResponse) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1468,7 +1750,7 @@ func (m *CheckResponse) Unmarshal(dAtA []byte) error { var stringLenmapkey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1482,7 +1764,7 @@ func (m *CheckResponse) Unmarshal(dAtA []byte) error { } intStringLenmapkey := int(stringLenmapkey) if intStringLenmapkey < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postStringIndexmapkey := iNdEx + intStringLenmapkey if postStringIndexmapkey > l { @@ -1494,7 +1776,7 @@ func (m *CheckResponse) Unmarshal(dAtA []byte) error { var mapmsglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1507,11 +1789,11 @@ func (m *CheckResponse) Unmarshal(dAtA []byte) error { } } if mapmsglen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postmsgIndex := iNdEx + mapmsglen if mapmsglen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } if postmsgIndex > l { return io.ErrUnexpectedEOF @@ -1523,12 +1805,12 @@ func (m *CheckResponse) Unmarshal(dAtA []byte) error { iNdEx = postmsgIndex } else { iNdEx = entryPreIndex - skippy, err := skipCheck(dAtA[iNdEx:]) + skippy, err := skipMixer(dAtA[iNdEx:]) if err != nil { return err } if skippy < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF @@ -1540,12 +1822,12 @@ func (m *CheckResponse) Unmarshal(dAtA []byte) error { iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipCheck(dAtA[iNdEx:]) + skippy, err := skipMixer(dAtA[iNdEx:]) if err != nil { return err } if skippy < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -1567,7 +1849,7 @@ func (m *CheckResponse_PreconditionResult) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1595,7 +1877,7 @@ func (m *CheckResponse_PreconditionResult) Unmarshal(dAtA []byte) error { var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1608,7 +1890,7 @@ func (m *CheckResponse_PreconditionResult) Unmarshal(dAtA []byte) error { } } if msglen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + msglen if postIndex > l { @@ -1625,7 +1907,7 @@ func (m *CheckResponse_PreconditionResult) Unmarshal(dAtA []byte) error { var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1638,7 +1920,7 @@ func (m *CheckResponse_PreconditionResult) Unmarshal(dAtA []byte) error { } } if msglen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + msglen if postIndex > l { @@ -1655,7 +1937,7 @@ func (m *CheckResponse_PreconditionResult) Unmarshal(dAtA []byte) error { m.ValidUseCount = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1674,7 +1956,7 @@ func (m *CheckResponse_PreconditionResult) Unmarshal(dAtA []byte) error { var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1687,7 +1969,7 @@ func (m *CheckResponse_PreconditionResult) Unmarshal(dAtA []byte) error { } } if msglen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + msglen if postIndex > l { @@ -1707,7 +1989,7 @@ func (m *CheckResponse_PreconditionResult) Unmarshal(dAtA []byte) error { var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1720,7 +2002,7 @@ func (m *CheckResponse_PreconditionResult) Unmarshal(dAtA []byte) error { } } if msglen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + msglen if postIndex > l { @@ -1735,12 +2017,12 @@ func (m *CheckResponse_PreconditionResult) Unmarshal(dAtA []byte) error { iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipCheck(dAtA[iNdEx:]) + skippy, err := skipMixer(dAtA[iNdEx:]) if err != nil { return err } if skippy < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -1762,7 +2044,7 @@ func (m *CheckResponse_QuotaResult) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1790,7 +2072,7 @@ func (m *CheckResponse_QuotaResult) Unmarshal(dAtA []byte) error { var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1803,7 +2085,7 @@ func (m *CheckResponse_QuotaResult) Unmarshal(dAtA []byte) error { } } if msglen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + msglen if postIndex > l { @@ -1820,7 +2102,7 @@ func (m *CheckResponse_QuotaResult) Unmarshal(dAtA []byte) error { m.GrantedAmount = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1839,7 +2121,7 @@ func (m *CheckResponse_QuotaResult) Unmarshal(dAtA []byte) error { var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1852,7 +2134,7 @@ func (m *CheckResponse_QuotaResult) Unmarshal(dAtA []byte) error { } } if msglen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + msglen if postIndex > l { @@ -1864,12 +2146,12 @@ func (m *CheckResponse_QuotaResult) Unmarshal(dAtA []byte) error { iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipCheck(dAtA[iNdEx:]) + skippy, err := skipMixer(dAtA[iNdEx:]) if err != nil { return err } if skippy < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -1891,7 +2173,7 @@ func (m *ReferencedAttributes) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1919,7 +2201,7 @@ func (m *ReferencedAttributes) Unmarshal(dAtA []byte) error { var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1933,7 +2215,7 @@ func (m *ReferencedAttributes) Unmarshal(dAtA []byte) error { } intStringLen := int(stringLen) if intStringLen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + intStringLen if postIndex > l { @@ -1948,7 +2230,7 @@ func (m *ReferencedAttributes) Unmarshal(dAtA []byte) error { var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -1961,7 +2243,7 @@ func (m *ReferencedAttributes) Unmarshal(dAtA []byte) error { } } if msglen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + msglen if postIndex > l { @@ -1974,12 +2256,12 @@ func (m *ReferencedAttributes) Unmarshal(dAtA []byte) error { iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipCheck(dAtA[iNdEx:]) + skippy, err := skipMixer(dAtA[iNdEx:]) if err != nil { return err } if skippy < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -2001,7 +2283,7 @@ func (m *ReferencedAttributes_AttributeMatch) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2029,7 +2311,7 @@ func (m *ReferencedAttributes_AttributeMatch) Unmarshal(dAtA []byte) error { var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2050,7 +2332,7 @@ func (m *ReferencedAttributes_AttributeMatch) Unmarshal(dAtA []byte) error { m.Condition = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2069,7 +2351,7 @@ func (m *ReferencedAttributes_AttributeMatch) Unmarshal(dAtA []byte) error { var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2083,7 +2365,7 @@ func (m *ReferencedAttributes_AttributeMatch) Unmarshal(dAtA []byte) error { } intStringLen := int(stringLen) if intStringLen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + intStringLen if postIndex > l { @@ -2098,7 +2380,7 @@ func (m *ReferencedAttributes_AttributeMatch) Unmarshal(dAtA []byte) error { var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2114,12 +2396,12 @@ func (m *ReferencedAttributes_AttributeMatch) Unmarshal(dAtA []byte) error { m.MapKey = v default: iNdEx = preIndex - skippy, err := skipCheck(dAtA[iNdEx:]) + skippy, err := skipMixer(dAtA[iNdEx:]) if err != nil { return err } if skippy < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -2141,7 +2423,7 @@ func (m *HeaderOperation) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2169,7 +2451,7 @@ func (m *HeaderOperation) Unmarshal(dAtA []byte) error { var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2183,7 +2465,7 @@ func (m *HeaderOperation) Unmarshal(dAtA []byte) error { } intStringLen := int(stringLen) if intStringLen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + intStringLen if postIndex > l { @@ -2198,7 +2480,7 @@ func (m *HeaderOperation) Unmarshal(dAtA []byte) error { var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2212,7 +2494,7 @@ func (m *HeaderOperation) Unmarshal(dAtA []byte) error { } intStringLen := int(stringLen) if intStringLen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + intStringLen if postIndex > l { @@ -2227,7 +2509,7 @@ func (m *HeaderOperation) Unmarshal(dAtA []byte) error { m.Operation = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2241,12 +2523,12 @@ func (m *HeaderOperation) Unmarshal(dAtA []byte) error { } default: iNdEx = preIndex - skippy, err := skipCheck(dAtA[iNdEx:]) + skippy, err := skipMixer(dAtA[iNdEx:]) if err != nil { return err } if skippy < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -2268,7 +2550,7 @@ func (m *RouteDirective) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2296,7 +2578,7 @@ func (m *RouteDirective) Unmarshal(dAtA []byte) error { var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2309,7 +2591,7 @@ func (m *RouteDirective) Unmarshal(dAtA []byte) error { } } if msglen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + msglen if postIndex > l { @@ -2327,7 +2609,7 @@ func (m *RouteDirective) Unmarshal(dAtA []byte) error { var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2340,7 +2622,7 @@ func (m *RouteDirective) Unmarshal(dAtA []byte) error { } } if msglen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + msglen if postIndex > l { @@ -2358,7 +2640,7 @@ func (m *RouteDirective) Unmarshal(dAtA []byte) error { m.DirectResponseCode = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2377,7 +2659,7 @@ func (m *RouteDirective) Unmarshal(dAtA []byte) error { var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowCheck + return ErrIntOverflowMixer } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2391,7 +2673,7 @@ func (m *RouteDirective) Unmarshal(dAtA []byte) error { } intStringLen := int(stringLen) if intStringLen < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } postIndex := iNdEx + intStringLen if postIndex > l { @@ -2401,12 +2683,191 @@ func (m *RouteDirective) Unmarshal(dAtA []byte) error { iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipCheck(dAtA[iNdEx:]) + skippy, err := skipMixer(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMixer + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ReportRequest) 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 ErrIntOverflowMixer + } + 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: ReportRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReportRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Attributes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMixer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMixer + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Attributes = append(m.Attributes, CompressedAttributes{}) + if err := m.Attributes[len(m.Attributes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DefaultWords", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMixer + } + 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 ErrInvalidLengthMixer + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DefaultWords = append(m.DefaultWords, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field GlobalWordCount", wireType) + } + m.GlobalWordCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMixer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.GlobalWordCount |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipMixer(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMixer + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ReportResponse) 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 ErrIntOverflowMixer + } + 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: ReportResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReportResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipMixer(dAtA[iNdEx:]) if err != nil { return err } if skippy < 0 { - return ErrInvalidLengthCheck + return ErrInvalidLengthMixer } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -2420,14 +2881,14 @@ func (m *RouteDirective) Unmarshal(dAtA []byte) error { } return nil } -func skipCheck(dAtA []byte) (n int, err error) { +func skipMixer(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return 0, ErrIntOverflowCheck + return 0, ErrIntOverflowMixer } if iNdEx >= l { return 0, io.ErrUnexpectedEOF @@ -2444,7 +2905,7 @@ func skipCheck(dAtA []byte) (n int, err error) { case 0: for shift := uint(0); ; shift += 7 { if shift >= 64 { - return 0, ErrIntOverflowCheck + return 0, ErrIntOverflowMixer } if iNdEx >= l { return 0, io.ErrUnexpectedEOF @@ -2462,7 +2923,7 @@ func skipCheck(dAtA []byte) (n int, err error) { var length int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return 0, ErrIntOverflowCheck + return 0, ErrIntOverflowMixer } if iNdEx >= l { return 0, io.ErrUnexpectedEOF @@ -2476,7 +2937,7 @@ func skipCheck(dAtA []byte) (n int, err error) { } iNdEx += length if length < 0 { - return 0, ErrInvalidLengthCheck + return 0, ErrInvalidLengthMixer } return iNdEx, nil case 3: @@ -2485,7 +2946,7 @@ func skipCheck(dAtA []byte) (n int, err error) { var start int = iNdEx for shift := uint(0); ; shift += 7 { if shift >= 64 { - return 0, ErrIntOverflowCheck + return 0, ErrIntOverflowMixer } if iNdEx >= l { return 0, io.ErrUnexpectedEOF @@ -2501,7 +2962,7 @@ func skipCheck(dAtA []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipCheck(dAtA[start:]) + next, err := skipMixer(dAtA[start:]) if err != nil { return 0, err } @@ -2521,77 +2982,83 @@ func skipCheck(dAtA []byte) (n int, err error) { } var ( - ErrInvalidLengthCheck = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowCheck = fmt.Errorf("proto: integer overflow") + ErrInvalidLengthMixer = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowMixer = fmt.Errorf("proto: integer overflow") ) -func init() { proto.RegisterFile("mixer/v1/check.proto", fileDescriptorCheck) } - -var fileDescriptorCheck = []byte{ - // 1039 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xbf, 0x73, 0xe3, 0xc4, - 0x17, 0xb7, 0xfc, 0x2b, 0xd1, 0xf3, 0xc5, 0x71, 0x76, 0x9c, 0x6f, 0x1c, 0x17, 0x4a, 0xc6, 0xf3, - 0x85, 0xf1, 0x51, 0xc8, 0xb9, 0x5c, 0xc3, 0x50, 0xc0, 0x38, 0x8a, 0x12, 0x1c, 0xee, 0x12, 0xb3, - 0xb9, 0x83, 0xe3, 0x1a, 0x8d, 0x2c, 0x6d, 0x1c, 0xcd, 0xd9, 0x5e, 0xdd, 0x4a, 0x0a, 0x97, 0x8e, - 0x19, 0xfe, 0x01, 0x4a, 0x5a, 0x1a, 0x86, 0xbf, 0x80, 0x8a, 0x3f, 0x20, 0xe5, 0x95, 0x54, 0x40, - 0x0c, 0xcc, 0x50, 0x5e, 0x49, 0xc9, 0x68, 0x77, 0x25, 0xdb, 0xb1, 0x8f, 0x0b, 0x0c, 0xdd, 0xee, - 0xfb, 0xf1, 0x79, 0xef, 0x7d, 0xf4, 0x79, 0x3b, 0x82, 0xea, 0xd0, 0x7b, 0x41, 0x58, 0xeb, 0xe2, - 0x5e, 0xcb, 0x39, 0x27, 0xce, 0x33, 0xdd, 0x67, 0x34, 0xa4, 0xa8, 0xec, 0x05, 0xa1, 0x47, 0x75, - 0xee, 0xd3, 0x2f, 0xee, 0xd5, 0xab, 0x7d, 0xda, 0xa7, 0xdc, 0xd5, 0x8a, 0x4f, 0x22, 0xaa, 0xae, - 0xf5, 0x29, 0xed, 0x0f, 0x48, 0x8b, 0xdf, 0x7a, 0xd1, 0x59, 0xcb, 0x8d, 0x98, 0x1d, 0x7a, 0x74, - 0x24, 0xfd, 0x1b, 0xd2, 0xcf, 0x7c, 0xa7, 0x15, 0x84, 0x76, 0x18, 0x05, 0xd2, 0xb1, 0x99, 0x16, - 0xb5, 0xc3, 0x90, 0x79, 0xbd, 0x28, 0x24, 0xd2, 0xd5, 0xf8, 0x36, 0x07, 0x77, 0x8c, 0xb8, 0x13, - 0x4c, 0x9e, 0x47, 0x24, 0x08, 0xd1, 0x11, 0xc0, 0x24, 0xa8, 0xa6, 0x6c, 0x2b, 0xcd, 0xd2, 0xee, - 0xff, 0xf5, 0xd9, 0xfe, 0x74, 0x83, 0x0e, 0x7d, 0x46, 0x82, 0x80, 0xb8, 0xed, 0x34, 0x76, 0x2f, - 0x7f, 0xf5, 0xd3, 0x56, 0x06, 0x4f, 0x65, 0xa3, 0x77, 0x60, 0xad, 0x3f, 0xa0, 0x3d, 0x7b, 0x60, - 0x7d, 0x4e, 0x99, 0x6b, 0x39, 0x34, 0x1a, 0x85, 0xb5, 0xec, 0xb6, 0xd2, 0x5c, 0xc1, 0xab, 0xc2, - 0xf1, 0x29, 0x65, 0xae, 0x11, 0x9b, 0xd1, 0x5d, 0xa8, 0xb8, 0xc4, 0x8d, 0xfc, 0x81, 0xe7, 0xf0, - 0x99, 0x2c, 0xcf, 0xad, 0xe5, 0xb6, 0x95, 0xa6, 0x8a, 0x57, 0x67, 0xec, 0x1d, 0x17, 0x1d, 0x40, - 0xf1, 0x79, 0x44, 0x43, 0x3b, 0xa8, 0xe5, 0xb7, 0x73, 0xcd, 0xd2, 0x6e, 0x73, 0xae, 0xbd, 0xa9, - 0x81, 0xf4, 0x8f, 0x79, 0xa8, 0x39, 0x0a, 0xd9, 0xa5, 0x6c, 0x51, 0x66, 0xd7, 0x0f, 0xa0, 0xc4, - 0x9d, 0x5d, 0x9b, 0xd9, 0xc3, 0x00, 0xfd, 0x0f, 0x8a, 0xf6, 0x90, 0xb7, 0x18, 0x4f, 0x9d, 0xc3, - 0xf2, 0x86, 0xb6, 0xa0, 0xd4, 0x23, 0x41, 0x68, 0x91, 0xb3, 0x33, 0xca, 0x44, 0xff, 0xcb, 0x18, - 0x62, 0x93, 0xc9, 0x2d, 0x75, 0x47, 0xe2, 0x88, 0x22, 0xa8, 0x02, 0xb9, 0x67, 0xe4, 0x92, 0x83, - 0xa8, 0x38, 0x3e, 0xa2, 0xf7, 0xa1, 0x70, 0x61, 0x0f, 0x22, 0xc2, 0x73, 0x6f, 0xd5, 0xaf, 0x68, - 0x09, 0x8b, 0xb4, 0xf7, 0xb2, 0xef, 0x2a, 0x8d, 0xdf, 0x8b, 0xb0, 0x22, 0xe3, 0x02, 0x9f, 0x8e, - 0x02, 0x82, 0x9e, 0xc2, 0x1d, 0x9f, 0x11, 0x87, 0x8e, 0x5c, 0x2f, 0x26, 0x46, 0x82, 0xef, 0xbc, - 0x06, 0x5c, 0x24, 0xe9, 0xdd, 0xa9, 0x0c, 0x4c, 0x82, 0x68, 0x10, 0x4a, 0x52, 0x66, 0xb0, 0xd0, - 0x61, 0x4a, 0x71, 0x8e, 0x53, 0x7c, 0xf7, 0xef, 0x51, 0x5f, 0xcf, 0xf1, 0x6f, 0x59, 0x40, 0xf3, - 0x35, 0xd1, 0x0e, 0x14, 0x85, 0x42, 0xa5, 0xc2, 0x90, 0x2e, 0xb4, 0xab, 0x33, 0xdf, 0xd1, 0x4f, - 0xb9, 0x27, 0x01, 0x12, 0x71, 0xe8, 0x08, 0xca, 0x17, 0xf6, 0xc0, 0x73, 0xad, 0x44, 0xf4, 0x72, - 0xde, 0xcd, 0x24, 0x33, 0xd9, 0x0a, 0x7d, 0x5f, 0x06, 0xec, 0x2d, 0xc7, 0x00, 0x5f, 0xff, 0xbc, - 0xa5, 0xe0, 0x15, 0x9e, 0x9a, 0x38, 0xd0, 0xdb, 0xb0, 0x2a, 0xb0, 0xa2, 0x80, 0x48, 0x55, 0xc6, - 0x52, 0x2b, 0xc8, 0xb8, 0xc7, 0x01, 0x11, 0x9a, 0xfc, 0x0c, 0xd6, 0x19, 0x39, 0x23, 0x8c, 0x8c, - 0x1c, 0xe2, 0x5a, 0x53, 0x6b, 0x51, 0x58, 0xbc, 0x16, 0x38, 0x0d, 0x9e, 0xac, 0x05, 0xae, 0xb2, - 0x05, 0x56, 0x74, 0x08, 0xab, 0x8c, 0x46, 0x21, 0xb1, 0x5c, 0x8f, 0x11, 0x27, 0xf4, 0x2e, 0x48, - 0xad, 0xc8, 0x41, 0xb5, 0x39, 0xd0, 0x38, 0x6c, 0x3f, 0x89, 0xc2, 0x65, 0x36, 0x73, 0x3f, 0xca, - 0x2f, 0xe7, 0x2b, 0x85, 0xfa, 0xb5, 0x22, 0x35, 0x28, 0xf9, 0x9d, 0x67, 0x4b, 0xf9, 0xd7, 0x6c, - 0xbd, 0x05, 0xe5, 0x3e, 0xb3, 0x47, 0x61, 0x4c, 0xc1, 0x30, 0x5d, 0xe1, 0x1c, 0x5e, 0x91, 0xd6, - 0xb6, 0x58, 0x13, 0xeb, 0x3f, 0x20, 0x4b, 0x7e, 0xf3, 0x85, 0x94, 0xd5, 0xdd, 0x37, 0xad, 0xd9, - 0x07, 0xb3, 0x6b, 0x76, 0x1b, 0xcd, 0x0a, 0xba, 0xa6, 0xf7, 0xec, 0xcb, 0x1c, 0x54, 0x17, 0xb5, - 0x86, 0xaa, 0x50, 0x88, 0x5f, 0xb1, 0x58, 0xb1, 0xb9, 0xa6, 0x8a, 0xc5, 0x05, 0x9d, 0xc1, 0x5a, - 0x3a, 0xaa, 0x35, 0xb4, 0x43, 0xe7, 0x9c, 0x04, 0xb5, 0x2c, 0xdf, 0x99, 0xfb, 0xb7, 0x99, 0x58, - 0x4f, 0x8f, 0x0f, 0xe3, 0x64, 0x49, 0x40, 0xc5, 0x9e, 0xb1, 0x92, 0xa0, 0xfe, 0x8d, 0x02, 0xe5, - 0xd9, 0x50, 0x84, 0x20, 0x3f, 0xb2, 0x87, 0x84, 0x33, 0xb0, 0x86, 0xf9, 0x19, 0x3d, 0x00, 0x75, - 0xf6, 0x41, 0x28, 0xef, 0xea, 0xb7, 0x6a, 0xc3, 0x48, 0x17, 0x74, 0x02, 0x10, 0x8f, 0xcc, 0x48, - 0x9f, 0xbc, 0x90, 0x0f, 0xb1, 0xb8, 0xa0, 0x0d, 0x58, 0x1a, 0xda, 0xbe, 0x15, 0x93, 0x9f, 0xe7, - 0xa5, 0x8b, 0x43, 0xdb, 0xff, 0x88, 0x5c, 0x36, 0x3a, 0xa0, 0xa6, 0x30, 0x68, 0x13, 0xd6, 0x8d, - 0x93, 0xe3, 0xfd, 0xce, 0xa3, 0xce, 0xc9, 0xb1, 0xf5, 0xf8, 0xf8, 0xb4, 0x6b, 0x1a, 0x9d, 0x83, - 0x8e, 0xb9, 0x5f, 0xc9, 0xa0, 0x12, 0x2c, 0xb5, 0xf7, 0x4e, 0xcd, 0x63, 0xc3, 0xac, 0x28, 0x48, - 0x85, 0x82, 0xf9, 0xa4, 0x6d, 0x3c, 0xaa, 0x64, 0xe3, 0x23, 0x36, 0x0f, 0xcd, 0x27, 0x95, 0x5c, - 0xe3, 0x7b, 0x05, 0x56, 0x3f, 0x24, 0xb6, 0x4b, 0xd8, 0x89, 0x4f, 0xa4, 0x0e, 0xa7, 0xe7, 0x55, - 0xe5, 0xbc, 0xd5, 0xe9, 0x4f, 0xae, 0xca, 0xef, 0x88, 0x0e, 0x41, 0xa5, 0x49, 0x1a, 0xef, 0xbd, - 0x3c, 0x2f, 0x86, 0x1b, 0xe8, 0x7a, 0x7a, 0xc2, 0x93, 0xdc, 0xc6, 0x0e, 0xa8, 0x93, 0xfa, 0x25, - 0x58, 0xc2, 0x66, 0xf7, 0x41, 0xdb, 0x30, 0x2b, 0x19, 0x04, 0x50, 0xc4, 0xe6, 0xc3, 0x93, 0x4f, - 0xe2, 0x11, 0x00, 0x8a, 0xed, 0x6e, 0xd7, 0x3c, 0xde, 0xaf, 0x64, 0x1b, 0x3f, 0x64, 0xa1, 0x3c, - 0xbb, 0xb1, 0xc8, 0x86, 0x4d, 0x26, 0xde, 0x76, 0xeb, 0x9c, 0x17, 0xb5, 0xd2, 0x02, 0x42, 0x4c, - 0xa5, 0xdd, 0xad, 0x37, 0x74, 0x27, 0x65, 0xb1, 0x21, 0x71, 0x6e, 0x78, 0x03, 0xe4, 0x40, 0x9d, - 0x49, 0x5d, 0x2f, 0xa8, 0x91, 0xfd, 0x27, 0x35, 0x6a, 0x09, 0xd0, 0x5c, 0x91, 0x1d, 0xa8, 0x8a, - 0xc7, 0xca, 0x4a, 0x6b, 0x39, 0xd4, 0x25, 0x9c, 0xe0, 0x15, 0x8c, 0x84, 0x2f, 0x59, 0x2f, 0x83, - 0xba, 0x64, 0x51, 0x46, 0x8f, 0xba, 0x42, 0x36, 0xea, 0xcd, 0x8c, 0x3d, 0xea, 0x5e, 0xee, 0x1d, - 0x5d, 0x5d, 0x6b, 0x99, 0x97, 0xd7, 0x5a, 0xe6, 0xc7, 0x6b, 0x2d, 0xf3, 0xea, 0x5a, 0xcb, 0x7c, - 0x31, 0xd6, 0x94, 0xef, 0xc6, 0x5a, 0xe6, 0x6a, 0xac, 0x29, 0x2f, 0xc7, 0x9a, 0xf2, 0xcb, 0x58, - 0x53, 0xfe, 0x18, 0x6b, 0x99, 0x57, 0x63, 0x4d, 0xf9, 0xea, 0x57, 0x2d, 0xf3, 0x74, 0x5d, 0x4c, - 0xe5, 0xd1, 0x96, 0xed, 0x7b, 0xad, 0xe4, 0x47, 0xe7, 0x4f, 0x45, 0xe9, 0x15, 0xf9, 0x1b, 0x77, - 0xff, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x12, 0xef, 0x74, 0xf2, 0x73, 0x09, 0x00, 0x00, +func init() { proto.RegisterFile("mixer/v1/mixer.proto", fileDescriptorMixer) } + +var fileDescriptorMixer = []byte{ + // 1133 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xbf, 0x73, 0xe3, 0x44, + 0x14, 0xb6, 0x2c, 0xdb, 0x89, 0x9f, 0x63, 0xc7, 0xd9, 0x71, 0x88, 0xe3, 0xe1, 0x94, 0x8c, 0xf9, + 0x31, 0x3e, 0x0a, 0x39, 0x97, 0x6b, 0x18, 0x0a, 0x18, 0xc7, 0x51, 0x82, 0xc3, 0x25, 0x31, 0xca, + 0x1d, 0x77, 0x5c, 0xa3, 0x91, 0xa5, 0xb5, 0xa3, 0x39, 0xdb, 0xab, 0x5b, 0x49, 0xe1, 0xd2, 0xdd, + 0x0c, 0xff, 0x00, 0x25, 0x43, 0x47, 0xc3, 0x50, 0x50, 0x53, 0xf1, 0x07, 0xa4, 0xbc, 0x92, 0x0a, + 0x88, 0x81, 0x19, 0xca, 0x2b, 0x29, 0x19, 0xed, 0xae, 0x14, 0x3b, 0x76, 0x72, 0x01, 0xae, 0xdb, + 0xdd, 0xf7, 0xde, 0xf7, 0xde, 0xfb, 0xf4, 0xbe, 0xd5, 0x42, 0x69, 0xe0, 0x3c, 0xc3, 0xb4, 0x7e, + 0x72, 0xa7, 0xce, 0x16, 0xaa, 0x4b, 0x89, 0x4f, 0x50, 0xc1, 0xf1, 0x7c, 0x87, 0xa8, 0xfc, 0xe8, + 0xe4, 0x4e, 0xa5, 0xd4, 0x23, 0x3d, 0xc2, 0x4c, 0xf5, 0x70, 0xc5, 0xbd, 0x2a, 0x4a, 0x8f, 0x90, + 0x5e, 0x1f, 0xd7, 0xd9, 0xae, 0x13, 0x74, 0xeb, 0x76, 0x40, 0x4d, 0xdf, 0x21, 0x43, 0x61, 0x5f, + 0x11, 0x76, 0xea, 0x5a, 0x75, 0xcf, 0x37, 0xfd, 0xc0, 0x13, 0x86, 0xd5, 0x38, 0xa9, 0xe9, 0xfb, + 0xd4, 0xe9, 0x04, 0x3e, 0x16, 0xa6, 0xea, 0x77, 0x32, 0x2c, 0x34, 0x8f, 0xb1, 0xf5, 0x44, 0xc7, + 0x4f, 0x03, 0xec, 0xf9, 0x68, 0x0f, 0xe0, 0xc2, 0xa9, 0x2c, 0xad, 0x4b, 0xb5, 0xdc, 0xe6, 0xdb, + 0xea, 0x64, 0x7d, 0x6a, 0x93, 0x0c, 0x5c, 0x8a, 0x3d, 0x0f, 0xdb, 0x8d, 0xd8, 0x77, 0x2b, 0x75, + 0xf6, 0xcb, 0x5a, 0x42, 0x1f, 0x8b, 0x46, 0xef, 0xc1, 0x52, 0xaf, 0x4f, 0x3a, 0x66, 0xdf, 0xf8, + 0x82, 0x50, 0xdb, 0xb0, 0x48, 0x30, 0xf4, 0xcb, 0xc9, 0x75, 0xa9, 0x96, 0xd7, 0x17, 0xb9, 0xe1, + 0x21, 0xa1, 0x76, 0x33, 0x3c, 0x46, 0xb7, 0xa1, 0x68, 0x63, 0x3b, 0x70, 0xfb, 0x8e, 0xc5, 0x7a, + 0x32, 0x1c, 0xbb, 0x2c, 0xaf, 0x4b, 0xb5, 0xac, 0xbe, 0x38, 0x71, 0xde, 0xb2, 0xd1, 0x0e, 0x64, + 0x9e, 0x06, 0xc4, 0x37, 0xbd, 0x72, 0x6a, 0x5d, 0xae, 0xe5, 0x36, 0x6b, 0x53, 0xe5, 0x8d, 0x35, + 0xa4, 0x7e, 0xca, 0x5c, 0xb5, 0xa1, 0x4f, 0x4f, 0x45, 0x89, 0x22, 0xba, 0xb2, 0x03, 0x39, 0x66, + 0x6c, 0x9b, 0xd4, 0x1c, 0x78, 0xe8, 0x0d, 0xc8, 0x98, 0x03, 0x56, 0x62, 0xd8, 0xb5, 0xac, 0x8b, + 0x1d, 0x5a, 0x83, 0x5c, 0x07, 0x7b, 0xbe, 0x81, 0xbb, 0x5d, 0x42, 0x79, 0xfd, 0xf3, 0x3a, 0x84, + 0x47, 0x1a, 0x3b, 0xa9, 0x58, 0x02, 0x87, 0x27, 0x41, 0x45, 0x90, 0x9f, 0xe0, 0x53, 0x06, 0x92, + 0xd5, 0xc3, 0x25, 0xfa, 0x10, 0xd2, 0x27, 0x66, 0x3f, 0xc0, 0x2c, 0xf6, 0x46, 0xf5, 0xf2, 0x92, + 0x74, 0x1e, 0xf6, 0x41, 0xf2, 0x7d, 0xa9, 0xfa, 0x67, 0x06, 0xf2, 0xc2, 0xcf, 0x73, 0xc9, 0xd0, + 0xc3, 0xe8, 0x31, 0x2c, 0xb8, 0x14, 0x5b, 0x64, 0x68, 0x3b, 0x21, 0x31, 0x02, 0x7c, 0xe3, 0x0a, + 0x70, 0x1e, 0xa4, 0xb6, 0xc7, 0x22, 0x74, 0xec, 0x05, 0x7d, 0x5f, 0x90, 0x32, 0x81, 0x85, 0x76, + 0x63, 0x8a, 0x65, 0x46, 0xf1, 0xed, 0xeb, 0x51, 0xaf, 0xe6, 0xf8, 0x8f, 0x24, 0xa0, 0xe9, 0x9c, + 0x68, 0x03, 0x32, 0x7c, 0x42, 0xc5, 0x84, 0x21, 0x95, 0xcf, 0xae, 0x4a, 0x5d, 0x4b, 0x3d, 0x62, + 0x96, 0x08, 0x88, 0xfb, 0xa1, 0x3d, 0x28, 0x9c, 0x98, 0x7d, 0xc7, 0x36, 0xa2, 0xa1, 0x17, 0xfd, + 0xae, 0x46, 0x91, 0x91, 0x2a, 0xd4, 0x6d, 0xe1, 0xb0, 0x35, 0x1f, 0x02, 0x7c, 0xfd, 0xeb, 0x9a, + 0xa4, 0xe7, 0x59, 0x68, 0x64, 0x40, 0xef, 0xc2, 0x22, 0xc7, 0x0a, 0x3c, 0x2c, 0xa6, 0x32, 0x1c, + 0xb5, 0xb4, 0xf0, 0x7b, 0xe0, 0x61, 0x3e, 0x93, 0x9f, 0xc3, 0x32, 0xc5, 0x5d, 0x4c, 0xf1, 0xd0, + 0xc2, 0xb6, 0x31, 0x26, 0x8b, 0xf4, 0x6c, 0x59, 0xe8, 0xb1, 0xf3, 0x85, 0x2c, 0xf4, 0x12, 0x9d, + 0x71, 0x8a, 0x76, 0x61, 0x91, 0x92, 0xc0, 0xc7, 0x86, 0xed, 0x50, 0x6c, 0xf9, 0xce, 0x09, 0x2e, + 0x67, 0x18, 0xa8, 0x32, 0x05, 0x1a, 0xba, 0x6d, 0x47, 0x5e, 0x7a, 0x81, 0x4e, 0xec, 0xf7, 0x52, + 0xf3, 0xa9, 0x62, 0xba, 0x72, 0x2e, 0x89, 0x19, 0x14, 0xfc, 0x4e, 0xb3, 0x25, 0xfd, 0x67, 0xb6, + 0xde, 0x81, 0x42, 0x8f, 0x9a, 0x43, 0x3f, 0xa4, 0x60, 0x10, 0x4b, 0x58, 0xd6, 0xf3, 0xe2, 0xb4, + 0xc1, 0x65, 0x62, 0xbc, 0x06, 0xb2, 0xc4, 0x37, 0x9f, 0x49, 0x59, 0xc5, 0x7e, 0x95, 0xcc, 0x3e, + 0x9a, 0x94, 0xd9, 0x4d, 0x66, 0x96, 0xd3, 0x35, 0xae, 0xb3, 0x2f, 0x65, 0x28, 0xcd, 0x2a, 0x0d, + 0x95, 0x20, 0x1d, 0xde, 0x62, 0xe1, 0xc4, 0xca, 0xb5, 0xac, 0xce, 0x37, 0xa8, 0x0b, 0x4b, 0x71, + 0xab, 0xc6, 0xc0, 0xf4, 0xad, 0x63, 0xec, 0x95, 0x93, 0x4c, 0x33, 0x77, 0x6f, 0xd2, 0xb1, 0x1a, + 0x2f, 0xf7, 0xc3, 0x60, 0x41, 0x40, 0xd1, 0x9c, 0x38, 0xc5, 0x5e, 0xe5, 0x5b, 0x09, 0x0a, 0x93, + 0xae, 0x08, 0x41, 0x6a, 0x68, 0x0e, 0x30, 0x63, 0x60, 0x49, 0x67, 0x6b, 0x74, 0x0f, 0xb2, 0x93, + 0x17, 0x42, 0x61, 0x53, 0xbd, 0x51, 0x19, 0xcd, 0x58, 0xa0, 0x17, 0x00, 0x61, 0xcb, 0x14, 0xf7, + 0xf0, 0x33, 0x71, 0x11, 0xf3, 0x0d, 0x5a, 0x81, 0xb9, 0x81, 0xe9, 0x1a, 0x21, 0xf9, 0x29, 0x96, + 0x3a, 0x33, 0x30, 0xdd, 0x4f, 0xf0, 0x69, 0xb5, 0x05, 0xd9, 0x18, 0x06, 0xad, 0xc2, 0x72, 0xf3, + 0xf0, 0x60, 0xbb, 0x75, 0xbf, 0x75, 0x78, 0x60, 0x3c, 0x38, 0x38, 0x6a, 0x6b, 0xcd, 0xd6, 0x4e, + 0x4b, 0xdb, 0x2e, 0x26, 0x50, 0x0e, 0xe6, 0x1a, 0x5b, 0x47, 0xda, 0x41, 0x53, 0x2b, 0x4a, 0x28, + 0x0b, 0x69, 0xed, 0x51, 0xa3, 0x79, 0xbf, 0x98, 0x0c, 0x97, 0xba, 0xb6, 0xab, 0x3d, 0x2a, 0xca, + 0xd5, 0x1f, 0x25, 0x58, 0xfc, 0x18, 0x9b, 0x36, 0xa6, 0x87, 0x2e, 0x16, 0x73, 0x38, 0xde, 0x6f, + 0x56, 0xf4, 0x5b, 0x1a, 0xff, 0xe4, 0x59, 0xf1, 0x1d, 0xd1, 0x2e, 0x64, 0x49, 0x14, 0xc6, 0x6a, + 0x2f, 0x4c, 0x0f, 0xc3, 0x25, 0x74, 0x35, 0x5e, 0xe9, 0x17, 0xb1, 0xd5, 0x0d, 0xc8, 0x5e, 0xe4, + 0xcf, 0xc1, 0x9c, 0xae, 0xb5, 0xef, 0x35, 0x9a, 0x5a, 0x31, 0x81, 0x00, 0x32, 0xba, 0xb6, 0x7f, + 0xf8, 0x59, 0xd8, 0x02, 0x40, 0xa6, 0xd1, 0x6e, 0x6b, 0x07, 0xdb, 0xc5, 0x64, 0xf5, 0xa7, 0x24, + 0x14, 0x26, 0x15, 0x8b, 0x4c, 0x58, 0xa5, 0xfc, 0x6e, 0x37, 0x8e, 0x59, 0x52, 0x23, 0x4e, 0xc0, + 0x87, 0x29, 0xb7, 0xb9, 0xf6, 0x8a, 0xea, 0xc4, 0x58, 0xac, 0x08, 0x9c, 0x4b, 0x56, 0x0f, 0x59, + 0x50, 0xa1, 0x62, 0xae, 0x67, 0xe4, 0x48, 0xfe, 0x9b, 0x1c, 0xe5, 0x08, 0x68, 0x2a, 0xc9, 0x06, + 0x94, 0xf8, 0x65, 0x65, 0xc4, 0xb9, 0x2c, 0x62, 0x63, 0x46, 0x70, 0x5e, 0x47, 0xdc, 0x16, 0xc9, + 0xab, 0x49, 0x6c, 0x3c, 0x2b, 0xa2, 0x43, 0x6c, 0x3e, 0x36, 0xd9, 0xcb, 0x11, 0x5b, 0xc4, 0x3e, + 0xad, 0xfe, 0x20, 0x41, 0x5e, 0xc7, 0x2e, 0xa1, 0xfe, 0x55, 0xef, 0x11, 0xf9, 0x7f, 0xbc, 0x47, + 0xde, 0x82, 0xbc, 0x8d, 0xbb, 0x66, 0xd0, 0xf7, 0x0d, 0x2e, 0xe5, 0x24, 0x93, 0xf2, 0x82, 0x38, + 0x7c, 0xc8, 0x14, 0x3d, 0xf3, 0xd1, 0x22, 0xcf, 0x7c, 0xb4, 0x54, 0x8b, 0x50, 0x88, 0xaa, 0xe5, + 0x4d, 0x6c, 0x7e, 0x23, 0x41, 0x7a, 0x3f, 0x2c, 0x0b, 0xed, 0x40, 0x9a, 0x5d, 0x38, 0xe8, 0xcd, + 0xeb, 0x7e, 0xf7, 0x95, 0x5b, 0xd7, 0xde, 0x52, 0xd5, 0x04, 0x6a, 0x41, 0x86, 0xe7, 0x40, 0xb7, + 0xa6, 0x95, 0x3c, 0xc6, 0x54, 0x45, 0xb9, 0xca, 0x1c, 0x41, 0x6d, 0xed, 0x9f, 0x9d, 0x2b, 0x89, + 0x17, 0xe7, 0x4a, 0xe2, 0xe7, 0x73, 0x25, 0xf1, 0xf2, 0x5c, 0x49, 0x3c, 0x1f, 0x29, 0xd2, 0xf7, + 0x23, 0x25, 0x71, 0x36, 0x52, 0xa4, 0x17, 0x23, 0x45, 0xfa, 0x6d, 0xa4, 0x48, 0x7f, 0x8d, 0x94, + 0xc4, 0xcb, 0x91, 0x22, 0x7d, 0xf5, 0xbb, 0x92, 0x78, 0xbc, 0xcc, 0x21, 0x1d, 0x52, 0x37, 0x5d, + 0xa7, 0x1e, 0x3d, 0x23, 0x9f, 0x4b, 0xd2, 0xdf, 0x92, 0xd4, 0xc9, 0xb0, 0x9f, 0xc8, 0xdd, 0x7f, + 0x02, 0x00, 0x00, 0xff, 0xff, 0x06, 0x71, 0x2e, 0x4b, 0xd4, 0x0a, 0x00, 0x00, } diff --git a/mixer/v1/check.proto b/mixer/v1/mixer.proto similarity index 69% rename from mixer/v1/check.proto rename to mixer/v1/mixer.proto index 68c89ba6f5..8d95d91ed0 100644 --- a/mixer/v1/check.proto +++ b/mixer/v1/mixer.proto @@ -14,9 +14,12 @@ syntax = "proto3"; +// This package defines the Mixer API that the sidecar proxy uses to perform +// precondition checks, manage quotas, and report telemetry. package istio.mixer.v1; option go_package = "istio.io/api/mixer/v1"; +option cc_generic_services = true; import "gogoproto/gogo.proto"; import "google/protobuf/duration.proto"; @@ -28,6 +31,33 @@ option (gogoproto.equal_all) = false; option (gogoproto.gostring_all) = false; option cc_enable_arenas = true; +// 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. +service Mixer { + // Checks preconditions and allocate quota before performing an operation. + // The preconditions enforced depend on the set of supplied attributes and + // the active configuration. + rpc Check(CheckRequest) returns (CheckResponse) {} + + // Reports telemetry, such as logs and metrics. + // The reported information depends on the set of supplied attributes and the + // active configuration. + rpc Report(ReportRequest) returns (ReportResponse) {} +} + // Used to get a thumbs-up/thumbs-down before performing an action. message CheckRequest { // parameters for a quota allocation @@ -188,3 +218,40 @@ message RouteDirective { // If this setting is omitted, no body is included in the generated response. string direct_response_body = 4; } + +// Used to report telemetry after performing one or more actions. +message ReportRequest { + // 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. + // + // Although each `Attributes` message is semantically treated as an independent + // stand-alone entity unrelated to the other attributes within the message, this + // message format leverages delta-encoding between attribute messages in order to + // substantially reduce the request size and improve end-to-end efficiency. Each + // individual set of attributes is used to modify the previous set. This eliminates + // the need to redundantly send the same attributes multiple times over within + // a single request. + // + // If a client is not sophisticated and doesn't want to use delta-encoding, + // a degenerate case is to include all attributes in every individual message. + repeated CompressedAttributes attributes = 1 [(gogoproto.nullable) = false]; + + // 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. + repeated string default_words = 2; + + // The number of words in the global dictionary. + // To detect global dictionary out of sync between client and server. + uint32 global_word_count = 3; +} + +// Used to carry responses to telemetry reports +message ReportResponse { +} diff --git a/mixer/v1/report.pb.go b/mixer/v1/report.pb.go deleted file mode 100644 index d1383edf20..0000000000 --- a/mixer/v1/report.pb.go +++ /dev/null @@ -1,521 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: mixer/v1/report.proto - -package v1 - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import strings "strings" -import reflect "reflect" - -import io "io" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// Used to report telemetry after performing one or more actions. -type ReportRequest struct { - // 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. - // - // Although each `Attributes` message is semantically treated as an independent - // stand-alone entity unrelated to the other attributes within the message, this - // message format leverages delta-encoding between attribute messages in order to - // substantially reduce the request size and improve end-to-end efficiency. Each - // individual set of attributes is used to modify the previous set. This eliminates - // the need to redundantly send the same attributes multiple times over within - // a single request. - // - // If a client is not sophisticated and doesn't want to use delta-encoding, - // a degenerate case is to include all attributes in every individual message. - Attributes []CompressedAttributes `protobuf:"bytes,1,rep,name=attributes" json:"attributes"` - // 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. - DefaultWords []string `protobuf:"bytes,2,rep,name=default_words,json=defaultWords" json:"default_words,omitempty"` - // The number of words in the global dictionary. - // To detect global dictionary out of sync between client and server. - GlobalWordCount uint32 `protobuf:"varint,3,opt,name=global_word_count,json=globalWordCount,proto3" json:"global_word_count,omitempty"` -} - -func (m *ReportRequest) Reset() { *m = ReportRequest{} } -func (*ReportRequest) ProtoMessage() {} -func (*ReportRequest) Descriptor() ([]byte, []int) { return fileDescriptorReport, []int{0} } - -// Used to carry responses to telemetry reports -type ReportResponse struct { -} - -func (m *ReportResponse) Reset() { *m = ReportResponse{} } -func (*ReportResponse) ProtoMessage() {} -func (*ReportResponse) Descriptor() ([]byte, []int) { return fileDescriptorReport, []int{1} } - -func init() { - proto.RegisterType((*ReportRequest)(nil), "istio.mixer.v1.ReportRequest") - proto.RegisterType((*ReportResponse)(nil), "istio.mixer.v1.ReportResponse") -} -func (m *ReportRequest) 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 *ReportRequest) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Attributes) > 0 { - for _, msg := range m.Attributes { - dAtA[i] = 0xa - i++ - i = encodeVarintReport(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.DefaultWords) > 0 { - for _, s := range m.DefaultWords { - dAtA[i] = 0x12 - 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.GlobalWordCount != 0 { - dAtA[i] = 0x18 - i++ - i = encodeVarintReport(dAtA, i, uint64(m.GlobalWordCount)) - } - return i, nil -} - -func (m *ReportResponse) 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 *ReportResponse) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - return i, nil -} - -func encodeVarintReport(dAtA []byte, offset int, v uint64) int { - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return offset + 1 -} -func (m *ReportRequest) Size() (n int) { - var l int - _ = l - if len(m.Attributes) > 0 { - for _, e := range m.Attributes { - l = e.Size() - n += 1 + l + sovReport(uint64(l)) - } - } - if len(m.DefaultWords) > 0 { - for _, s := range m.DefaultWords { - l = len(s) - n += 1 + l + sovReport(uint64(l)) - } - } - if m.GlobalWordCount != 0 { - n += 1 + sovReport(uint64(m.GlobalWordCount)) - } - return n -} - -func (m *ReportResponse) Size() (n int) { - var l int - _ = l - return n -} - -func sovReport(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozReport(x uint64) (n int) { - return sovReport(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *ReportRequest) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ReportRequest{`, - `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) + `,`, - `}`, - }, "") - return s -} -func (this *ReportResponse) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ReportResponse{`, - `}`, - }, "") - return s -} -func valueToStringReport(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *ReportRequest) 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 ErrIntOverflowReport - } - 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: ReportRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ReportRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Attributes", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowReport - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthReport - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Attributes = append(m.Attributes, CompressedAttributes{}) - if err := m.Attributes[len(m.Attributes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DefaultWords", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowReport - } - 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 ErrInvalidLengthReport - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DefaultWords = append(m.DefaultWords, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field GlobalWordCount", wireType) - } - m.GlobalWordCount = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowReport - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.GlobalWordCount |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipReport(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthReport - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ReportResponse) 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 ErrIntOverflowReport - } - 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: ReportResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ReportResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipReport(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthReport - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipReport(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowReport - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowReport - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowReport - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLengthReport - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowReport - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := skipReport(dAtA[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - } - return iNdEx, nil - case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") -} - -var ( - ErrInvalidLengthReport = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowReport = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("mixer/v1/report.proto", fileDescriptorReport) } - -var fileDescriptorReport = []byte{ - // 294 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x90, 0x31, 0x4e, 0xc3, 0x30, - 0x14, 0x86, 0x6d, 0x8a, 0x90, 0x30, 0xb4, 0x40, 0x44, 0xa5, 0xd0, 0xe1, 0x11, 0x15, 0x86, 0x88, - 0x21, 0x51, 0xe1, 0x04, 0xb4, 0x5b, 0xc7, 0x2c, 0x48, 0x2c, 0x55, 0x42, 0x4c, 0x64, 0x29, 0xed, - 0x0b, 0xb6, 0x53, 0x18, 0x39, 0x02, 0xc7, 0x60, 0xe0, 0x20, 0x19, 0x3b, 0x32, 0x21, 0x62, 0x16, - 0xc6, 0x8e, 0x8c, 0x28, 0x09, 0x2d, 0xb0, 0x59, 0xff, 0xf7, 0x3d, 0xdb, 0xef, 0x67, 0xdd, 0xa9, - 0x78, 0xe0, 0xd2, 0x9f, 0x0f, 0x7c, 0xc9, 0x33, 0x94, 0xda, 0xcb, 0x24, 0x6a, 0xb4, 0x3a, 0x42, - 0x69, 0x81, 0x5e, 0x0d, 0xbd, 0xf9, 0xa0, 0x77, 0x98, 0x60, 0x82, 0x35, 0xf2, 0xab, 0x53, 0x63, - 0xf5, 0x8e, 0xd6, 0xc3, 0xa1, 0xd6, 0x52, 0x44, 0xb9, 0xe6, 0xaa, 0x41, 0xfd, 0x17, 0xca, 0xda, - 0x41, 0x7d, 0x63, 0xc0, 0xef, 0x72, 0xae, 0xb4, 0x35, 0x66, 0xec, 0xd7, 0xb2, 0xa9, 0xd3, 0x72, - 0x77, 0xce, 0x4f, 0xbd, 0xff, 0xef, 0x78, 0x23, 0x9c, 0x66, 0x92, 0x2b, 0xc5, 0xe3, 0xcb, 0xb5, - 0x3b, 0xdc, 0x2c, 0xde, 0x8e, 0x49, 0xf0, 0x67, 0xda, 0x3a, 0x61, 0xed, 0x98, 0xdf, 0x86, 0x79, - 0xaa, 0x27, 0xf7, 0x28, 0x63, 0x65, 0x6f, 0x38, 0x2d, 0x77, 0x3b, 0xd8, 0xfd, 0x09, 0xaf, 0xaa, - 0xcc, 0x3a, 0x63, 0x07, 0x49, 0x8a, 0x51, 0x98, 0xd6, 0xce, 0xe4, 0x06, 0xf3, 0x99, 0xb6, 0x5b, - 0x0e, 0x75, 0xdb, 0xc1, 0x5e, 0x03, 0x2a, 0x6f, 0x54, 0xc5, 0xfd, 0x7d, 0xd6, 0x59, 0xfd, 0x56, - 0x65, 0x38, 0x53, 0x7c, 0x38, 0x2e, 0x4a, 0x20, 0x8b, 0x12, 0xc8, 0x6b, 0x09, 0x64, 0x59, 0x02, - 0x79, 0x34, 0x40, 0x9f, 0x0d, 0x90, 0xc2, 0x00, 0x5d, 0x18, 0xa0, 0xef, 0x06, 0xe8, 0xa7, 0x01, - 0xb2, 0x34, 0x40, 0x9f, 0x3e, 0x80, 0x5c, 0x77, 0x9b, 0x5d, 0x04, 0xfa, 0x61, 0x26, 0xfc, 0x55, - 0x35, 0x5f, 0x94, 0x46, 0x5b, 0x75, 0x27, 0x17, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x09, 0xd3, - 0xb7, 0xd0, 0x6d, 0x01, 0x00, 0x00, -} diff --git a/mixer/v1/report.proto b/mixer/v1/report.proto deleted file mode 100644 index f5e0cdbb8a..0000000000 --- a/mixer/v1/report.proto +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2016 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. - -syntax = "proto3"; - -package istio.mixer.v1; - -option go_package = "istio.io/api/mixer/v1"; - -import "gogoproto/gogo.proto"; -import "mixer/v1/attributes.proto"; - -option (gogoproto.goproto_getters_all) = false; -option (gogoproto.equal_all) = false; -option (gogoproto.gostring_all) = false; -option cc_enable_arenas = true; - -// Used to report telemetry after performing one or more actions. -message ReportRequest { - // 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. - // - // Although each `Attributes` message is semantically treated as an independent - // stand-alone entity unrelated to the other attributes within the message, this - // message format leverages delta-encoding between attribute messages in order to - // substantially reduce the request size and improve end-to-end efficiency. Each - // individual set of attributes is used to modify the previous set. This eliminates - // the need to redundantly send the same attributes multiple times over within - // a single request. - // - // If a client is not sophisticated and doesn't want to use delta-encoding, - // a degenerate case is to include all attributes in every individual message. - repeated CompressedAttributes attributes = 1 [(gogoproto.nullable) = false]; - - // 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. - repeated string default_words = 2; - - // The number of words in the global dictionary. - // To detect global dictionary out of sync between client and server. - uint32 global_word_count = 3; -} - -// Used to carry responses to telemetry reports -message ReportResponse { -} diff --git a/mixer/v1/service.pb.go b/mixer/v1/service.pb.go deleted file mode 100644 index 40fa3b078d..0000000000 --- a/mixer/v1/service.pb.go +++ /dev/null @@ -1,153 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: mixer/v1/service.proto - -package v1 - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" - -import context "golang.org/x/net/context" -import grpc "google.golang.org/grpc" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConn - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 - -// Client API for Mixer service - -type MixerClient interface { - // Checks preconditions and allocate quota before performing an operation. - // The preconditions enforced depend on the set of supplied attributes and - // the active configuration. - Check(ctx context.Context, in *CheckRequest, opts ...grpc.CallOption) (*CheckResponse, error) - // Reports telemetry, such as logs and metrics. - // The reported information depends on the set of supplied attributes and the - // active configuration. - Report(ctx context.Context, in *ReportRequest, opts ...grpc.CallOption) (*ReportResponse, error) -} - -type mixerClient struct { - cc *grpc.ClientConn -} - -func NewMixerClient(cc *grpc.ClientConn) MixerClient { - return &mixerClient{cc} -} - -func (c *mixerClient) Check(ctx context.Context, in *CheckRequest, opts ...grpc.CallOption) (*CheckResponse, error) { - out := new(CheckResponse) - err := grpc.Invoke(ctx, "/istio.mixer.v1.Mixer/Check", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *mixerClient) Report(ctx context.Context, in *ReportRequest, opts ...grpc.CallOption) (*ReportResponse, error) { - out := new(ReportResponse) - err := grpc.Invoke(ctx, "/istio.mixer.v1.Mixer/Report", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// Server API for Mixer service - -type MixerServer interface { - // Checks preconditions and allocate quota before performing an operation. - // The preconditions enforced depend on the set of supplied attributes and - // the active configuration. - Check(context.Context, *CheckRequest) (*CheckResponse, error) - // Reports telemetry, such as logs and metrics. - // The reported information depends on the set of supplied attributes and the - // active configuration. - Report(context.Context, *ReportRequest) (*ReportResponse, error) -} - -func RegisterMixerServer(s *grpc.Server, srv MixerServer) { - s.RegisterService(&_Mixer_serviceDesc, srv) -} - -func _Mixer_Check_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CheckRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MixerServer).Check(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/istio.mixer.v1.Mixer/Check", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MixerServer).Check(ctx, req.(*CheckRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Mixer_Report_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ReportRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MixerServer).Report(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/istio.mixer.v1.Mixer/Report", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MixerServer).Report(ctx, req.(*ReportRequest)) - } - return interceptor(ctx, in, info, handler) -} - -var _Mixer_serviceDesc = grpc.ServiceDesc{ - ServiceName: "istio.mixer.v1.Mixer", - HandlerType: (*MixerServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "Check", - Handler: _Mixer_Check_Handler, - }, - { - MethodName: "Report", - Handler: _Mixer_Report_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "mixer/v1/service.proto", -} - -func init() { proto.RegisterFile("mixer/v1/service.proto", fileDescriptorService) } - -var fileDescriptorService = []byte{ - // 216 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xcb, 0xcd, 0xac, 0x48, - 0x2d, 0xd2, 0x2f, 0x33, 0xd4, 0x2f, 0x4e, 0x2d, 0x2a, 0xcb, 0x4c, 0x4e, 0xd5, 0x2b, 0x28, 0xca, - 0x2f, 0xc9, 0x17, 0xe2, 0xcb, 0x2c, 0x2e, 0xc9, 0xcc, 0xd7, 0x03, 0xcb, 0xea, 0x95, 0x19, 0x4a, - 0x89, 0xc0, 0xd5, 0x25, 0x67, 0xa4, 0x26, 0x67, 0x43, 0x54, 0x49, 0x89, 0xc2, 0x45, 0x8b, 0x52, - 0x0b, 0xf2, 0x8b, 0x4a, 0x20, 0xc2, 0x46, 0xb3, 0x18, 0xb9, 0x58, 0x7d, 0x41, 0x32, 0x42, 0x6e, - 0x5c, 0xac, 0xce, 0x20, 0xf5, 0x42, 0x32, 0x7a, 0xa8, 0x06, 0xea, 0x81, 0x85, 0x83, 0x52, 0x0b, - 0x4b, 0x53, 0x8b, 0x4b, 0xa4, 0x64, 0x71, 0xc8, 0x16, 0x17, 0xe4, 0xe7, 0x15, 0xa7, 0x2a, 0x31, - 0x08, 0x79, 0x72, 0xb1, 0x05, 0x81, 0x6d, 0x10, 0xc2, 0x50, 0x0a, 0x11, 0x87, 0x99, 0x24, 0x87, - 0x4b, 0x1a, 0x66, 0x94, 0x93, 0xdb, 0x85, 0x87, 0x72, 0x0c, 0x37, 0x1e, 0xca, 0x31, 0x7c, 0x78, - 0x28, 0xc7, 0xd8, 0xf0, 0x48, 0x8e, 0x71, 0xc5, 0x23, 0x39, 0xc6, 0x13, 0x8f, 0xe4, 0x18, 0x2f, - 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0xf1, 0xc5, 0x23, 0x39, 0x86, 0x0f, 0x8f, 0xe4, 0x18, - 0x27, 0x3c, 0x96, 0x63, 0x88, 0x12, 0x85, 0x18, 0x97, 0x99, 0xaf, 0x9f, 0x58, 0x90, 0xa9, 0x0f, - 0xf3, 0x6e, 0x03, 0x23, 0x63, 0x12, 0x1b, 0xd8, 0xaf, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xd8, 0x38, 0xef, 0x37, 0x42, 0x01, 0x00, 0x00, -} diff --git a/mixer/v1/service.proto b/mixer/v1/service.proto deleted file mode 100644 index 18b78eb9fc..0000000000 --- a/mixer/v1/service.proto +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2016 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. - -syntax = "proto3"; - -// This package defines the Mixer API that the sidecar proxy uses to perform -// precondition checks, manage quotas, and report telemetry. -package istio.mixer.v1; - -option go_package = "istio.io/api/mixer/v1"; -option cc_generic_services = true; - -import "mixer/v1/check.proto"; -import "mixer/v1/report.proto"; - -// 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. -service Mixer { - // Checks preconditions and allocate quota before performing an operation. - // The preconditions enforced depend on the set of supplied attributes and - // the active configuration. - rpc Check(CheckRequest) returns (CheckResponse) {} - - // Reports telemetry, such as logs and metrics. - // The reported information depends on the set of supplied attributes and the - // active configuration. - rpc Report(ReportRequest) returns (ReportResponse) {} -} diff --git a/networking/v1alpha3/destination_rule.pb.go b/networking/v1alpha3/destination_rule.pb.go index 3274215922..5e36f5a482 100644 --- a/networking/v1alpha3/destination_rule.pb.go +++ b/networking/v1alpha3/destination_rule.pb.go @@ -1079,7 +1079,7 @@ func (m *OutlierDetection) GetMinHealthPercent() int32 { } // SSL/TLS related settings for upstream connections. See Envoy's [TLS -// context](https://www.envoyproxy.io/docs/envoy/latest/api-v1/cluster_manager/cluster_ssl.html#config-cluster-manager-cluster-ssl) +// 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. // // For example, the following rule configures a client to use mutual TLS diff --git a/networking/v1alpha3/destination_rule.proto b/networking/v1alpha3/destination_rule.proto index 3976fc6acf..188fdc6a1a 100644 --- a/networking/v1alpha3/destination_rule.proto +++ b/networking/v1alpha3/destination_rule.proto @@ -393,7 +393,7 @@ message ConnectionPoolSettings { // 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/outlier) -// for more details. +// for more details. // // The following rule sets a connection pool size of 100 connections and // 1000 concurrent HTTP2 requests, with no more than 10 req/connection to @@ -452,7 +452,7 @@ message OutlierDetection { } // SSL/TLS related settings for upstream connections. See Envoy's [TLS -// context](https://www.envoyproxy.io/docs/envoy/latest/api-v1/cluster_manager/cluster_ssl.html#config-cluster-manager-cluster-ssl) +// 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. // // For example, the following rule configures a client to use mutual TLS diff --git a/networking/v1alpha3/istio.networking.v1alpha3.pb.html b/networking/v1alpha3/istio.networking.v1alpha3.pb.html index 048d538527..69a40b7a19 100644 --- a/networking/v1alpha3/istio.networking.v1alpha3.pb.html +++ b/networking/v1alpha3/istio.networking.v1alpha3.pb.html @@ -3585,7 +3585,7 @@

TLSRoute

TLSSettings

-

SSL/TLS related settings for upstream connections. See Envoy’s TLS +

SSL/TLS related settings for upstream connections. See Envoy’s TLS context for more details. These settings are common to both HTTP and TCP upstreams.

diff --git a/policy/v1beta1/cfg.pb.go b/policy/v1beta1/cfg.pb.go index dd72e0615c..b7c9766a33 100644 --- a/policy/v1beta1/cfg.pb.go +++ b/policy/v1beta1/cfg.pb.go @@ -35,7 +35,7 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" import google_protobuf1 "github.com/gogo/protobuf/types" -import google_protobuf2 "github.com/gogo/protobuf/types" +import _ "github.com/gogo/protobuf/types" import time "time" @@ -621,7 +621,7 @@ type Connection struct { // The address of the backend. Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` // Timeout for remote calls to the backend. - Timeout *google_protobuf2.Duration `protobuf:"bytes,3,opt,name=timeout" json:"timeout,omitempty"` + Timeout *time.Duration `protobuf:"bytes,3,opt,name=timeout,stdduration" json:"timeout,omitempty"` } func (m *Connection) Reset() { *m = Connection{} } @@ -635,7 +635,7 @@ func (m *Connection) GetAddress() string { return "" } -func (m *Connection) GetTimeout() *google_protobuf2.Duration { +func (m *Connection) GetTimeout() *time.Duration { if m != nil { return m.Timeout } @@ -1107,7 +1107,13 @@ func (this *Connection) Equal(that interface{}) bool { if this.Address != that1.Address { return false } - if !this.Timeout.Equal(that1.Timeout) { + if this.Timeout != nil && that1.Timeout != nil { + if *this.Timeout != *that1.Timeout { + return false + } + } else if this.Timeout != nil { + return false + } else if that1.Timeout != nil { return false } return true @@ -1360,9 +1366,7 @@ func (this *Connection) GoString() string { s := make([]string, 0, 6) s = append(s, "&v1beta1.Connection{") s = append(s, "Address: "+fmt.Sprintf("%#v", this.Address)+",\n") - if this.Timeout != nil { - s = append(s, "Timeout: "+fmt.Sprintf("%#v", this.Timeout)+",\n") - } + s = append(s, "Timeout: "+fmt.Sprintf("%#v", this.Timeout)+",\n") s = append(s, "}") return strings.Join(s, "") } @@ -1831,8 +1835,8 @@ func (m *Connection) MarshalTo(dAtA []byte) (int, error) { if m.Timeout != nil { dAtA[i] = 0x1a i++ - i = encodeVarintCfg(dAtA, i, uint64(m.Timeout.Size())) - n6, err := m.Timeout.MarshalTo(dAtA[i:]) + i = encodeVarintCfg(dAtA, i, uint64(types.SizeOfStdDuration(*m.Timeout))) + n6, err := types.StdDurationMarshalTo(*m.Timeout, dAtA[i:]) if err != nil { return 0, err } @@ -2171,7 +2175,7 @@ func (m *Connection) Size() (n int) { n += 1 + l + sovCfg(uint64(l)) } if m.Timeout != nil { - l = m.Timeout.Size() + l = types.SizeOfStdDuration(*m.Timeout) n += 1 + l + sovCfg(uint64(l)) } return n @@ -3795,9 +3799,9 @@ func (m *Connection) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Timeout == nil { - m.Timeout = &google_protobuf2.Duration{} + m.Timeout = new(time.Duration) } - if err := m.Timeout.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := types.StdDurationUnmarshal(m.Timeout, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -4384,75 +4388,75 @@ var ( func init() { proto.RegisterFile("policy/v1beta1/cfg.proto", fileDescriptorCfg) } var fileDescriptorCfg = []byte{ - // 1118 bytes of a gzipped FileDescriptorProto + // 1120 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0x4f, 0x6f, 0x1b, 0x45, - 0x14, 0xf7, 0xc6, 0xa9, 0xff, 0x3c, 0x37, 0x89, 0x33, 0x0d, 0x8d, 0x6b, 0xa2, 0x4d, 0x64, 0x90, - 0xe8, 0x01, 0xad, 0x1b, 0x57, 0x50, 0x54, 0x45, 0x88, 0xa4, 0x76, 0x95, 0x88, 0x36, 0xb1, 0x26, - 0x49, 0x11, 0xe5, 0xb0, 0x9a, 0x78, 0x27, 0xce, 0x08, 0xef, 0xec, 0x76, 0x77, 0x36, 0x4a, 0x6e, - 0x5c, 0xb8, 0xf7, 0xc8, 0x47, 0x80, 0x2f, 0xc1, 0x95, 0x1c, 0x2b, 0xf5, 0xd2, 0x13, 0x10, 0x73, - 0xe1, 0x82, 0xd4, 0x03, 0x1f, 0x00, 0xed, 0xec, 0xcc, 0xae, 0xeb, 0xd8, 0x88, 0x70, 0xdb, 0x79, - 0xbf, 0xf7, 0xef, 0xf7, 0xde, 0x9b, 0xb7, 0x03, 0x35, 0xdf, 0x1b, 0xb0, 0xde, 0x79, 0xf3, 0x74, - 0xfd, 0x88, 0x0a, 0xb2, 0xde, 0xec, 0x1d, 0xf7, 0x2d, 0x3f, 0xf0, 0x84, 0x87, 0x96, 0x58, 0x28, - 0x98, 0x67, 0x25, 0xb8, 0xa5, 0xf0, 0xfa, 0x52, 0xdf, 0xeb, 0x7b, 0x52, 0xa1, 0x19, 0x7f, 0x25, - 0xba, 0xf5, 0x95, 0xbe, 0xe7, 0xf5, 0x07, 0xb4, 0x29, 0x4f, 0x47, 0xd1, 0x71, 0x33, 0x14, 0x41, - 0xd4, 0x13, 0x0a, 0x35, 0xc7, 0x51, 0x27, 0x0a, 0x88, 0x60, 0x1e, 0x57, 0xf8, 0xea, 0x58, 0x0e, - 0xa7, 0x64, 0x10, 0x51, 0x5b, 0x9c, 0xfb, 0x34, 0x51, 0x68, 0x7c, 0x9f, 0x87, 0xc5, 0x4d, 0x21, - 0x02, 0x76, 0x14, 0x09, 0xfa, 0x94, 0x70, 0x76, 0x4c, 0x43, 0x81, 0xea, 0x50, 0x0a, 0xe8, 0x29, - 0x0b, 0x99, 0xc7, 0x6b, 0xc6, 0x9a, 0x71, 0xb7, 0x8c, 0xd3, 0x33, 0x42, 0x30, 0xcb, 0x89, 0x4b, - 0x6b, 0x33, 0x52, 0x2e, 0xbf, 0xd1, 0x57, 0x00, 0x44, 0x3b, 0x09, 0x6b, 0xf9, 0xb5, 0xfc, 0xdd, - 0x4a, 0xeb, 0x81, 0x35, 0x89, 0xa5, 0x75, 0x25, 0x58, 0x26, 0x09, 0x3b, 0x5c, 0x04, 0xe7, 0x78, - 0xc4, 0x55, 0xfd, 0x05, 0xcc, 0xa5, 0xf0, 0x0e, 0x3f, 0xf6, 0xd0, 0x1a, 0x54, 0x1c, 0x1a, 0xf6, - 0x02, 0xe6, 0x8b, 0x2c, 0xb9, 0x51, 0x11, 0xfa, 0x1c, 0x20, 0x63, 0x29, 0xb3, 0x9c, 0x6f, 0xad, - 0x4e, 0xce, 0xe5, 0x59, 0xac, 0x77, 0x70, 0xee, 0x53, 0x5c, 0x3e, 0xd5, 0x9f, 0x75, 0x01, 0x0b, - 0x63, 0x19, 0xa1, 0x2a, 0xe4, 0xbf, 0xa5, 0xe7, 0x2a, 0x58, 0xfc, 0x89, 0xbe, 0x84, 0x1b, 0xd2, - 0x42, 0xfa, 0xaf, 0xb4, 0x3e, 0xb9, 0x36, 0xd7, 0x98, 0x0c, 0x4e, 0x7c, 0x3c, 0x9c, 0xf9, 0xcc, - 0x68, 0x5c, 0xcc, 0xc2, 0x2c, 0x8e, 0x06, 0x14, 0x2d, 0xc1, 0x0d, 0x97, 0x88, 0xde, 0x89, 0x8a, - 0x96, 0x1c, 0xd0, 0xa7, 0x50, 0x24, 0xbd, 0x98, 0x5e, 0x58, 0x9b, 0x91, 0xd5, 0x5d, 0x99, 0x12, - 0x51, 0x2a, 0x61, 0xad, 0x8c, 0x38, 0xdc, 0x09, 0xe8, 0x8b, 0x88, 0x86, 0xc2, 0x3e, 0xa1, 0xc4, - 0xa1, 0x81, 0xed, 0xf9, 0x34, 0x99, 0x10, 0xdd, 0xa7, 0xd6, 0x64, 0x4f, 0x71, 0x32, 0xd6, 0xb6, - 0xb4, 0xd9, 0xd3, 0x26, 0x07, 0xd4, 0xf5, 0x07, 0x44, 0x50, 0xbc, 0xac, 0x9c, 0x8e, 0xe1, 0x21, - 0xf2, 0xa1, 0x1e, 0xd0, 0xd0, 0xf7, 0x78, 0x48, 0x27, 0x04, 0x9c, 0xfd, 0xdf, 0x01, 0x6b, 0xda, - 0xeb, 0x95, 0x88, 0x0f, 0xa1, 0x14, 0x12, 0xd7, 0x1f, 0x30, 0xde, 0xaf, 0xdd, 0x90, 0xcd, 0x30, - 0x27, 0xfb, 0xdf, 0x57, 0x5a, 0x38, 0xd5, 0xaf, 0xbf, 0x36, 0x60, 0x79, 0x4a, 0xc4, 0x74, 0xcc, - 0x8d, 0x91, 0x31, 0xbf, 0x0d, 0x05, 0xd9, 0xb1, 0xa4, 0x09, 0x65, 0xac, 0x4e, 0xe8, 0x39, 0x94, - 0x53, 0x96, 0xb5, 0xbc, 0x9c, 0xb8, 0x8d, 0xeb, 0x93, 0xb4, 0x52, 0x09, 0xce, 0xdc, 0x35, 0xee, - 0x41, 0x39, 0x95, 0xa3, 0x0a, 0x14, 0x71, 0xa7, 0xfb, 0x64, 0xf3, 0x51, 0xa7, 0x9a, 0x43, 0x00, - 0x05, 0xdc, 0x79, 0xba, 0xf7, 0xac, 0x53, 0x35, 0xe2, 0xef, 0xcd, 0x6e, 0xb7, 0xb3, 0xdb, 0xae, - 0xce, 0x34, 0x0e, 0xa0, 0x90, 0x8c, 0x01, 0xaa, 0x41, 0xf1, 0x84, 0x70, 0x67, 0x40, 0x03, 0x75, - 0x5b, 0xf5, 0x11, 0xad, 0x40, 0x99, 0xf1, 0x50, 0x10, 0xde, 0x53, 0xf7, 0xb5, 0x8c, 0x33, 0x41, - 0xca, 0x7d, 0x36, 0xe3, 0xde, 0xf8, 0x65, 0x06, 0x4a, 0x3b, 0x4a, 0x63, 0x62, 0x71, 0xea, 0x50, - 0x12, 0x8a, 0x89, 0x8a, 0x96, 0x9e, 0x51, 0x13, 0x0a, 0x3e, 0x09, 0x88, 0x1b, 0xca, 0xea, 0x54, - 0x5a, 0xcb, 0x56, 0xb2, 0xb7, 0x2c, 0xbd, 0xb7, 0xac, 0x7d, 0xb9, 0xd5, 0xb0, 0x52, 0x43, 0x0e, - 0xa0, 0x74, 0x0b, 0xd8, 0x47, 0x8c, 0x3b, 0x8c, 0xf7, 0xf5, 0xfc, 0x4c, 0xb9, 0x6c, 0x3a, 0xb9, - 0xec, 0x8e, 0x6d, 0x29, 0xbb, 0x64, 0xad, 0x2c, 0x92, 0x71, 0x39, 0xb2, 0x60, 0xb1, 0xe7, 0xb9, - 0x3e, 0x1b, 0x50, 0xc7, 0x4e, 0x73, 0xff, 0xfb, 0xaf, 0x9f, 0xd6, 0x64, 0xfa, 0x55, 0x8d, 0xe9, - 0x06, 0xd5, 0xdb, 0x70, 0x7b, 0xb2, 0xf3, 0x09, 0x1b, 0x62, 0x69, 0x74, 0x43, 0x94, 0x47, 0xaf, - 0xfa, 0x1b, 0x03, 0x8a, 0xdb, 0xaa, 0x0f, 0x93, 0x0a, 0x59, 0x83, 0x22, 0x71, 0x88, 0x2f, 0xb2, - 0xae, 0xa9, 0xe3, 0xf5, 0xcb, 0xf8, 0x05, 0x40, 0xcf, 0xe3, 0x9c, 0xca, 0x71, 0x90, 0xed, 0xac, - 0xb4, 0xd6, 0x26, 0x97, 0xef, 0x51, 0xaa, 0x87, 0x47, 0x6c, 0xd0, 0xc7, 0x90, 0x96, 0xc1, 0xd6, - 0x59, 0xa5, 0x15, 0x5a, 0xd0, 0xd0, 0x66, 0x82, 0x34, 0xbe, 0x01, 0xc8, 0xfc, 0x24, 0x44, 0x9c, - 0x80, 0x86, 0x61, 0x46, 0x44, 0x1e, 0xd1, 0x7d, 0x28, 0x0a, 0xe6, 0x52, 0x2f, 0x12, 0x8a, 0xc9, - 0x9d, 0x2b, 0x4c, 0xda, 0xea, 0x47, 0x86, 0xb5, 0x66, 0xe3, 0xa5, 0x01, 0x25, 0x7d, 0x89, 0xd1, - 0x06, 0x14, 0x02, 0xc2, 0x1d, 0xcf, 0x95, 0xa5, 0xab, 0xb4, 0x3e, 0x9c, 0x72, 0xdf, 0xa4, 0x4e, - 0x7a, 0xf5, 0x95, 0x0d, 0x7a, 0x0c, 0x10, 0x10, 0x41, 0xed, 0x01, 0x73, 0x99, 0x50, 0x3b, 0xfc, - 0xa3, 0x69, 0x1e, 0x04, 0x7d, 0x12, 0xab, 0xa5, 0x4e, 0xca, 0x81, 0x16, 0x35, 0x5e, 0x1b, 0x30, - 0xff, 0x6e, 0x08, 0xb4, 0x0e, 0x4b, 0xd9, 0xe4, 0xd2, 0x33, 0x3f, 0xe6, 0x9b, 0xfd, 0xa9, 0x6e, - 0xa5, 0x58, 0x27, 0x85, 0x50, 0x17, 0x16, 0x7c, 0x1a, 0xf4, 0x28, 0x17, 0xb6, 0x5c, 0x4d, 0xd4, - 0xf9, 0xf7, 0x94, 0x1e, 0x07, 0xc9, 0x7a, 0x27, 0x83, 0x6e, 0x62, 0x86, 0xe7, 0x95, 0xfd, 0x7e, - 0x62, 0x8e, 0x36, 0xa0, 0x1e, 0x85, 0xd4, 0x66, 0xdc, 0xa1, 0x3e, 0xe5, 0x4e, 0xec, 0x39, 0x61, - 0xce, 0xe3, 0x66, 0xc4, 0x25, 0x2f, 0xe1, 0x5a, 0x14, 0xd2, 0x9d, 0x4c, 0x01, 0xa7, 0x78, 0xe3, - 0x67, 0x03, 0x16, 0xaf, 0xd0, 0x46, 0x5d, 0x58, 0xd4, 0x8b, 0xd3, 0xd6, 0xaf, 0x0c, 0x55, 0xfc, - 0xe9, 0xdd, 0xdb, 0x2a, 0x5d, 0xfc, 0xba, 0x9a, 0xfb, 0xe1, 0xb7, 0x55, 0x03, 0x57, 0xb5, 0xb5, - 0xc6, 0x50, 0x0b, 0xde, 0x73, 0xc9, 0x99, 0x1d, 0x71, 0xc5, 0xda, 0xa6, 0x5c, 0x04, 0x8c, 0x26, - 0xd3, 0x92, 0xc7, 0xb7, 0x5c, 0x72, 0x76, 0xa8, 0xb1, 0x4e, 0x02, 0xa1, 0x0f, 0x60, 0x2e, 0xcd, - 0x22, 0xee, 0x83, 0x24, 0x93, 0xc7, 0x37, 0xb5, 0x30, 0xce, 0x5b, 0x12, 0xb8, 0x52, 0xa4, 0x78, - 0xe7, 0xf1, 0xc8, 0x8d, 0x57, 0xa9, 0x17, 0xc8, 0xc4, 0xe7, 0x70, 0x26, 0x40, 0x5f, 0xc7, 0x0f, - 0x0b, 0xee, 0xb9, 0x8c, 0x4b, 0x3c, 0x79, 0x37, 0x3c, 0xf8, 0x8f, 0x0d, 0xb0, 0xda, 0x99, 0xa9, - 0x7c, 0x4f, 0x8c, 0xfa, 0x6a, 0xdc, 0x83, 0x85, 0x31, 0x3c, 0x5e, 0xe4, 0xdb, 0x87, 0xbb, 0x6d, - 0xdc, 0x69, 0x57, 0x73, 0xa8, 0x0a, 0x37, 0x0f, 0x3a, 0xbb, 0xf6, 0xc1, 0xf6, 0xde, 0xe1, 0xfe, - 0xe6, 0x6e, 0xbb, 0x6a, 0x6c, 0xed, 0xbc, 0xba, 0x34, 0x73, 0x6f, 0x2e, 0xcd, 0xdc, 0xdb, 0x4b, - 0xd3, 0xf8, 0x6e, 0x68, 0x1a, 0x3f, 0x0e, 0x4d, 0xe3, 0x62, 0x68, 0x1a, 0xaf, 0x86, 0xa6, 0xf1, - 0xfb, 0xd0, 0x34, 0xfe, 0x1c, 0x9a, 0xb9, 0xb7, 0x43, 0xd3, 0x78, 0xf9, 0x87, 0x99, 0x7b, 0xfe, - 0x7e, 0x92, 0x24, 0xf3, 0x9a, 0xc4, 0x67, 0xcd, 0x77, 0x5f, 0x7c, 0x47, 0x05, 0xd9, 0x93, 0xfb, - 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x81, 0xf1, 0xc8, 0x2d, 0x8e, 0x0a, 0x00, 0x00, + 0x14, 0xf7, 0xc6, 0xae, 0xff, 0x3c, 0x37, 0x89, 0x33, 0x0d, 0x8d, 0x6b, 0xa2, 0x4d, 0x64, 0x90, + 0xe8, 0x01, 0xad, 0x1b, 0x23, 0x28, 0x54, 0x11, 0x22, 0xa9, 0x5d, 0x25, 0xa2, 0x4d, 0xac, 0x49, + 0x52, 0x44, 0x2f, 0xab, 0x89, 0x77, 0xe2, 0x8c, 0xf0, 0xce, 0x6e, 0x77, 0x67, 0xa3, 0xe4, 0xc6, + 0x85, 0x7b, 0x8f, 0x7c, 0x04, 0xf8, 0x12, 0x5c, 0xc9, 0xb1, 0x52, 0x2f, 0x3d, 0x01, 0x31, 0x17, + 0x2e, 0x48, 0x3d, 0xf0, 0x01, 0xd0, 0xce, 0xce, 0xec, 0xba, 0x8e, 0x53, 0x11, 0x6e, 0x3b, 0xef, + 0xf7, 0xfe, 0xfd, 0xde, 0x7b, 0xf3, 0x76, 0xa0, 0xee, 0x7b, 0x43, 0xd6, 0x3f, 0x6b, 0x9d, 0xac, + 0x1d, 0x52, 0x41, 0xd6, 0x5a, 0xfd, 0xa3, 0x81, 0xe5, 0x07, 0x9e, 0xf0, 0xd0, 0x22, 0x0b, 0x05, + 0xf3, 0xac, 0x04, 0xb7, 0x14, 0xde, 0x58, 0x1c, 0x78, 0x03, 0x4f, 0x2a, 0xb4, 0xe2, 0xaf, 0x44, + 0xb7, 0xb1, 0x3c, 0xf0, 0xbc, 0xc1, 0x90, 0xb6, 0xe4, 0xe9, 0x30, 0x3a, 0x6a, 0x85, 0x22, 0x88, + 0xfa, 0x42, 0xa1, 0xe6, 0x24, 0xea, 0x44, 0x01, 0x11, 0xcc, 0xe3, 0x0a, 0x5f, 0x99, 0xc8, 0xe1, + 0x84, 0x0c, 0x23, 0x6a, 0x8b, 0x33, 0x9f, 0x26, 0x0a, 0xcd, 0x1f, 0xf2, 0xb0, 0xb0, 0x21, 0x44, + 0xc0, 0x0e, 0x23, 0x41, 0x9f, 0x10, 0xce, 0x8e, 0x68, 0x28, 0x50, 0x03, 0xca, 0x01, 0x3d, 0x61, + 0x21, 0xf3, 0x78, 0xdd, 0x58, 0x35, 0xee, 0x56, 0x70, 0x7a, 0x46, 0x08, 0x0a, 0x9c, 0xb8, 0xb4, + 0x3e, 0x23, 0xe5, 0xf2, 0x1b, 0x7d, 0x03, 0x40, 0xb4, 0x93, 0xb0, 0x9e, 0x5f, 0xcd, 0xdf, 0xad, + 0xb6, 0xef, 0x5b, 0xd3, 0x58, 0x5a, 0x97, 0x82, 0x65, 0x92, 0xb0, 0xcb, 0x45, 0x70, 0x86, 0xc7, + 0x5c, 0x35, 0x9e, 0xc3, 0x6c, 0x0a, 0x6f, 0xf3, 0x23, 0x0f, 0xad, 0x42, 0xd5, 0xa1, 0x61, 0x3f, + 0x60, 0xbe, 0xc8, 0x92, 0x1b, 0x17, 0xa1, 0x2f, 0x01, 0x32, 0x96, 0x32, 0xcb, 0xb9, 0xf6, 0xca, + 0xf4, 0x5c, 0x9e, 0xc6, 0x7a, 0xfb, 0x67, 0x3e, 0xc5, 0x95, 0x13, 0xfd, 0xd9, 0x10, 0x30, 0x3f, + 0x91, 0x11, 0xaa, 0x41, 0xfe, 0x3b, 0x7a, 0xa6, 0x82, 0xc5, 0x9f, 0xe8, 0x6b, 0xb8, 0x21, 0x2d, + 0xa4, 0xff, 0x6a, 0xfb, 0xd3, 0x6b, 0x73, 0x8d, 0xc9, 0xe0, 0xc4, 0xc7, 0x83, 0x99, 0xcf, 0x8d, + 0xe6, 0x79, 0x01, 0x0a, 0x38, 0x1a, 0x52, 0xb4, 0x08, 0x37, 0x5c, 0x22, 0xfa, 0xc7, 0x2a, 0x5a, + 0x72, 0x40, 0x9f, 0x41, 0x89, 0xf4, 0x63, 0x7a, 0x61, 0x7d, 0x46, 0x56, 0x77, 0xf9, 0x8a, 0x88, + 0x52, 0x09, 0x6b, 0x65, 0xc4, 0xe1, 0x4e, 0x40, 0x9f, 0x47, 0x34, 0x14, 0xf6, 0x31, 0x25, 0x0e, + 0x0d, 0x6c, 0xcf, 0xa7, 0xc9, 0x84, 0xe8, 0x3e, 0xb5, 0xa7, 0x7b, 0x8a, 0x93, 0xb1, 0xb6, 0xa4, + 0xcd, 0xae, 0x36, 0xd9, 0xa7, 0xae, 0x3f, 0x24, 0x82, 0xe2, 0x25, 0xe5, 0x74, 0x02, 0x0f, 0x91, + 0x0f, 0x8d, 0x80, 0x86, 0xbe, 0xc7, 0x43, 0x3a, 0x25, 0x60, 0xe1, 0x7f, 0x07, 0xac, 0x6b, 0xaf, + 0x97, 0x22, 0x3e, 0x80, 0x72, 0x48, 0x5c, 0x7f, 0xc8, 0xf8, 0xa0, 0x7e, 0x43, 0x36, 0xc3, 0x9c, + 0xee, 0x7f, 0x4f, 0x69, 0xe1, 0x54, 0xbf, 0xf1, 0xca, 0x80, 0xa5, 0x2b, 0x22, 0xa6, 0x63, 0x6e, + 0x8c, 0x8d, 0xf9, 0x6d, 0x28, 0xca, 0x8e, 0x25, 0x4d, 0xa8, 0x60, 0x75, 0x42, 0xcf, 0xa0, 0x92, + 0xb2, 0xac, 0xe7, 0xe5, 0xc4, 0xad, 0x5f, 0x9f, 0xa4, 0x95, 0x4a, 0x70, 0xe6, 0xae, 0x79, 0x0f, + 0x2a, 0xa9, 0x1c, 0x55, 0xa1, 0x84, 0xbb, 0xbd, 0xc7, 0x1b, 0x0f, 0xbb, 0xb5, 0x1c, 0x02, 0x28, + 0xe2, 0xee, 0x93, 0xdd, 0xa7, 0xdd, 0x9a, 0x11, 0x7f, 0x6f, 0xf4, 0x7a, 0xdd, 0x9d, 0x4e, 0x6d, + 0xa6, 0xb9, 0x0f, 0xc5, 0x64, 0x0c, 0x50, 0x1d, 0x4a, 0xc7, 0x84, 0x3b, 0x43, 0x1a, 0xa8, 0xdb, + 0xaa, 0x8f, 0x68, 0x19, 0x2a, 0x8c, 0x87, 0x82, 0xf0, 0xbe, 0xba, 0xaf, 0x15, 0x9c, 0x09, 0x52, + 0xee, 0x85, 0x8c, 0x7b, 0xf3, 0xd7, 0x19, 0x28, 0x6f, 0x2b, 0x8d, 0xa9, 0xc5, 0x69, 0x40, 0x59, + 0x28, 0x26, 0x2a, 0x5a, 0x7a, 0x46, 0x2d, 0x28, 0xfa, 0x24, 0x20, 0x6e, 0x28, 0xab, 0x53, 0x6d, + 0x2f, 0x59, 0xc9, 0xde, 0xb2, 0xf4, 0xde, 0xb2, 0xf6, 0xe4, 0x56, 0xc3, 0x4a, 0x0d, 0x39, 0x80, + 0xd2, 0x2d, 0x60, 0x1f, 0x32, 0xee, 0x30, 0x3e, 0xd0, 0xf3, 0x73, 0xc5, 0x65, 0xd3, 0xc9, 0x65, + 0x77, 0x6c, 0x53, 0xd9, 0x25, 0x6b, 0x65, 0x81, 0x4c, 0xca, 0x91, 0x05, 0x0b, 0x7d, 0xcf, 0xf5, + 0xd9, 0x90, 0x3a, 0x76, 0x9a, 0xfb, 0x3f, 0x7f, 0xff, 0xbc, 0x2a, 0xd3, 0xaf, 0x69, 0x4c, 0x37, + 0xa8, 0xd1, 0x81, 0xdb, 0xd3, 0x9d, 0x4f, 0xd9, 0x10, 0x8b, 0xe3, 0x1b, 0xa2, 0x32, 0x7e, 0xd5, + 0x5f, 0x1b, 0x50, 0xda, 0x52, 0x7d, 0x98, 0x56, 0xc8, 0x3a, 0x94, 0x88, 0x43, 0x7c, 0x91, 0x75, + 0x4d, 0x1d, 0xaf, 0x5f, 0xc6, 0xaf, 0x00, 0xfa, 0x1e, 0xe7, 0x54, 0x8e, 0x83, 0x6c, 0x67, 0xb5, + 0xbd, 0x3a, 0xbd, 0x7c, 0x0f, 0x53, 0x3d, 0x3c, 0x66, 0x83, 0x3e, 0x86, 0xb4, 0x0c, 0xb6, 0xce, + 0x2a, 0xad, 0xd0, 0xbc, 0x86, 0x36, 0x12, 0xa4, 0x49, 0x00, 0x32, 0x3f, 0x09, 0x11, 0x27, 0xa0, + 0x61, 0x98, 0x11, 0x91, 0x47, 0xf4, 0x05, 0x94, 0x04, 0x73, 0xa9, 0x17, 0x09, 0xc5, 0xe4, 0xce, + 0x25, 0x26, 0x1d, 0xf5, 0x23, 0xdb, 0x2c, 0xfc, 0xf8, 0xfb, 0x8a, 0x81, 0xb5, 0x7e, 0xf3, 0x85, + 0x01, 0x65, 0x7d, 0x95, 0xd1, 0x3a, 0x14, 0x03, 0xc2, 0x1d, 0xcf, 0x95, 0x05, 0xac, 0xb6, 0x3f, + 0xbc, 0xe2, 0xd6, 0x49, 0x9d, 0x74, 0x01, 0x28, 0x1b, 0xf4, 0x08, 0x20, 0x20, 0x82, 0xda, 0x43, + 0xe6, 0x32, 0xa1, 0x36, 0xf9, 0x47, 0x57, 0x79, 0x10, 0xf4, 0x71, 0xac, 0x96, 0x3a, 0xa9, 0x04, + 0x5a, 0xd4, 0x7c, 0x65, 0xc0, 0xdc, 0xdb, 0x21, 0xd0, 0x1a, 0x2c, 0x66, 0xf3, 0x4b, 0x4f, 0xfd, + 0x98, 0x75, 0xf6, 0xbf, 0xba, 0x95, 0x62, 0xdd, 0x14, 0x42, 0x3d, 0x98, 0xf7, 0x69, 0xd0, 0xa7, + 0x5c, 0xd8, 0x72, 0x41, 0x51, 0xe7, 0xdd, 0x29, 0x3d, 0x0a, 0x92, 0x25, 0x4f, 0x86, 0xbd, 0xc4, + 0x0c, 0xcf, 0x29, 0xfb, 0xbd, 0xc4, 0x1c, 0xad, 0x43, 0x23, 0x0a, 0xa9, 0xcd, 0xb8, 0x43, 0x7d, + 0xca, 0x9d, 0xd8, 0x73, 0xc2, 0x9c, 0xc7, 0x2d, 0x89, 0x0b, 0x5f, 0xc6, 0xf5, 0x28, 0xa4, 0xdb, + 0x99, 0x02, 0x4e, 0xf1, 0xe6, 0x2f, 0x06, 0x2c, 0x5c, 0xa2, 0x8d, 0x7a, 0xb0, 0xa0, 0xd7, 0xa7, + 0xad, 0xdf, 0x1a, 0xaa, 0xf8, 0xef, 0xe8, 0x61, 0xf9, 0xfc, 0xb7, 0x95, 0x9c, 0xec, 0x63, 0x4d, + 0x5b, 0x6b, 0x0c, 0xb5, 0xe1, 0x3d, 0x97, 0x9c, 0xda, 0x11, 0x57, 0xac, 0x6d, 0xca, 0x45, 0xc0, + 0x68, 0x32, 0x33, 0x79, 0x7c, 0xcb, 0x25, 0xa7, 0x07, 0x1a, 0xeb, 0x26, 0x10, 0xfa, 0x00, 0x66, + 0xd3, 0x2c, 0xe2, 0x3e, 0x48, 0x32, 0x79, 0x7c, 0x53, 0x0b, 0xe3, 0xbc, 0x25, 0x81, 0x4b, 0x45, + 0x8a, 0x37, 0x1f, 0x8f, 0xdc, 0x78, 0xa1, 0x7a, 0x81, 0x4c, 0x7c, 0x16, 0x67, 0x02, 0xf4, 0x6d, + 0xfc, 0xbc, 0xe0, 0x9e, 0xcb, 0xb8, 0xc4, 0x93, 0xd7, 0xc3, 0xfd, 0xff, 0xd8, 0x00, 0xab, 0x93, + 0x99, 0xca, 0x57, 0xc5, 0xb8, 0xaf, 0xe6, 0x3d, 0x98, 0x9f, 0xc0, 0xe3, 0x75, 0xbe, 0x75, 0xb0, + 0xd3, 0xc1, 0xdd, 0x4e, 0x2d, 0x87, 0x6a, 0x70, 0x73, 0xbf, 0xbb, 0x63, 0xef, 0x6f, 0xed, 0x1e, + 0xec, 0x6d, 0xec, 0x74, 0x6a, 0xc6, 0xe6, 0xf6, 0xcb, 0x0b, 0x33, 0xf7, 0xfa, 0xc2, 0xcc, 0xbd, + 0xb9, 0x30, 0x8d, 0xef, 0x47, 0xa6, 0xf1, 0xd3, 0xc8, 0x34, 0xce, 0x47, 0xa6, 0xf1, 0x72, 0x64, + 0x1a, 0x7f, 0x8c, 0x4c, 0xe3, 0xaf, 0x91, 0x99, 0x7b, 0x33, 0x32, 0x8d, 0x17, 0x7f, 0x9a, 0xb9, + 0x67, 0xef, 0x27, 0x49, 0x32, 0xaf, 0x45, 0x7c, 0xd6, 0x7a, 0xfb, 0xdd, 0x77, 0x58, 0x94, 0x3d, + 0xf9, 0xe4, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x28, 0x43, 0xbf, 0xa9, 0x94, 0x0a, 0x00, 0x00, } diff --git a/policy/v1beta1/cfg.proto b/policy/v1beta1/cfg.proto index 786df844d2..0e829b0ca4 100644 --- a/policy/v1beta1/cfg.proto +++ b/policy/v1beta1/cfg.proto @@ -346,7 +346,7 @@ message Connection { string address = 2; // Timeout for remote calls to the backend. - google.protobuf.Duration timeout = 3; + google.protobuf.Duration timeout = 3 [(gogoproto.stdduration) = true]; // TODO: Add auth related fields. } diff --git a/proto.lock b/proto.lock new file mode 100644 index 0000000000..17752c00c6 --- /dev/null +++ b/proto.lock @@ -0,0 +1,4474 @@ +{ + "definitions": [ + { + "protopath": "authentication:/:v1alpha1:/:policy.proto", + "def": { + "enums": [ + { + "name": "MutualTls.Mode", + "enum_fields": [ + { + "name": "STRICT", + "integer": 0 + }, + { + "name": "PERMISSIVE", + "integer": 1 + } + ] + }, + { + "name": "PrincipalBinding", + "enum_fields": [ + { + "name": "USE_PEER", + "integer": 0 + }, + { + "name": "USE_ORIGIN", + "integer": 1 + } + ] + } + ], + "messages": [ + { + "name": "StringMatch", + "fields": [ + { + "id": 1, + "name": "exact", + "type": "string" + }, + { + "id": 2, + "name": "prefix", + "type": "string" + }, + { + "id": 3, + "name": "suffix", + "type": "string" + }, + { + "id": 4, + "name": "regex", + "type": "string" + } + ] + }, + { + "name": "MutualTls", + "fields": [ + { + "id": 1, + "name": "allow_tls", + "type": "bool" + }, + { + "id": 2, + "name": "mode", + "type": "Mode" + } + ] + }, + { + "name": "Jwt", + "fields": [ + { + "id": 1, + "name": "issuer", + "type": "string" + }, + { + "id": 2, + "name": "audiences", + "type": "string", + "is_repeated": true + }, + { + "id": 3, + "name": "jwks_uri", + "type": "string" + }, + { + "id": 6, + "name": "jwt_headers", + "type": "string", + "is_repeated": true + }, + { + "id": 7, + "name": "jwt_params", + "type": "string", + "is_repeated": true + }, + { + "id": 9, + "name": "trigger_rules", + "type": "TriggerRule", + "is_repeated": true + } + ], + "messages": [ + { + "name": "TriggerRule", + "fields": [ + { + "id": 1, + "name": "excluded_paths", + "type": "StringMatch", + "is_repeated": true + }, + { + "id": 2, + "name": "included_paths", + "type": "StringMatch", + "is_repeated": true + } + ] + } + ] + }, + { + "name": "PeerAuthenticationMethod", + "fields": [ + { + "id": 1, + "name": "mtls", + "type": "MutualTls" + }, + { + "id": 2, + "name": "jwt", + "type": "Jwt" + } + ] + }, + { + "name": "OriginAuthenticationMethod", + "fields": [ + { + "id": 1, + "name": "jwt", + "type": "Jwt" + } + ] + }, + { + "name": "Policy", + "fields": [ + { + "id": 1, + "name": "targets", + "type": "TargetSelector", + "is_repeated": true + }, + { + "id": 2, + "name": "peers", + "type": "PeerAuthenticationMethod", + "is_repeated": true + }, + { + "id": 3, + "name": "peer_is_optional", + "type": "bool" + }, + { + "id": 4, + "name": "origins", + "type": "OriginAuthenticationMethod", + "is_repeated": true + }, + { + "id": 5, + "name": "origin_is_optional", + "type": "bool" + }, + { + "id": 6, + "name": "principal_binding", + "type": "PrincipalBinding" + } + ] + }, + { + "name": "TargetSelector", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "ports", + "type": "PortSelector", + "is_repeated": true + } + ] + }, + { + "name": "PortSelector", + "fields": [ + { + "id": 1, + "name": "number", + "type": "uint32" + }, + { + "id": 2, + "name": "name", + "type": "string" + } + ] + } + ] + } + }, + { + "protopath": "envoy:/:config:/:filter:/:http:/:authn:/:v2alpha1:/:config.proto", + "def": { + "messages": [ + { + "name": "FilterConfig", + "fields": [ + { + "id": 1, + "name": "policy", + "type": "istio.authentication.v1alpha1.Policy" + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 2, + "name": "jwt_output_payload_locations", + "type": "string" + } + } + ] + } + ] + } + }, + { + "protopath": "envoy:/:config:/:filter:/:http:/:jwt_auth:/:v2alpha1:/:config.proto", + "def": { + "messages": [ + { + "name": "HttpUri", + "fields": [ + { + "id": 1, + "name": "uri", + "type": "string" + }, + { + "id": 2, + "name": "cluster", + "type": "string" + }, + { + "id": 3, + "name": "timeout", + "type": "google.protobuf.Duration" + } + ] + }, + { + "name": "DataSource", + "fields": [ + { + "id": 1, + "name": "filename", + "type": "string" + }, + { + "id": 2, + "name": "inline_bytes", + "type": "bytes" + }, + { + "id": 3, + "name": "inline_string", + "type": "string" + } + ] + }, + { + "name": "JwtRule", + "fields": [ + { + "id": 1, + "name": "issuer", + "type": "string" + }, + { + "id": 2, + "name": "audiences", + "type": "string", + "is_repeated": true + }, + { + "id": 3, + "name": "remote_jwks", + "type": "RemoteJwks" + }, + { + "id": 4, + "name": "local_jwks", + "type": "DataSource" + }, + { + "id": 5, + "name": "forward", + "type": "bool" + }, + { + "id": 6, + "name": "from_headers", + "type": "JwtHeader", + "is_repeated": true + }, + { + "id": 7, + "name": "from_params", + "type": "string", + "is_repeated": true + }, + { + "id": 8, + "name": "forward_payload_header", + "type": "string" + } + ] + }, + { + "name": "RemoteJwks", + "fields": [ + { + "id": 1, + "name": "http_uri", + "type": "HttpUri" + }, + { + "id": 2, + "name": "cache_duration", + "type": "google.protobuf.Duration" + } + ] + }, + { + "name": "JwtHeader", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "value_prefix", + "type": "string" + } + ] + }, + { + "name": "JwtAuthentication", + "fields": [ + { + "id": 1, + "name": "rules", + "type": "JwtRule", + "is_repeated": true + }, + { + "id": 2, + "name": "allow_missing_or_failed", + "type": "bool" + } + ] + } + ] + } + }, + { + "protopath": "envoy:/:config:/:filter:/:network:/:tcp_cluster_rewrite:/:v2alpha1:/:config.proto", + "def": { + "messages": [ + { + "name": "TcpClusterRewrite", + "fields": [ + { + "id": 1, + "name": "cluster_pattern", + "type": "string" + }, + { + "id": 2, + "name": "cluster_replacement", + "type": "string" + } + ] + } + ] + } + }, + { + "protopath": "mcp:/:v1alpha1:/:envelope.proto", + "def": { + "messages": [ + { + "name": "Envelope", + "fields": [ + { + "id": 1, + "name": "metadata", + "type": "istio.mcp.v1alpha1.Metadata" + }, + { + "id": 2, + "name": "resource", + "type": "google.protobuf.Any" + } + ] + } + ] + } + }, + { + "protopath": "mcp:/:v1alpha1:/:mcp.proto", + "def": { + "messages": [ + { + "name": "Client", + "fields": [ + { + "id": 1, + "name": "id", + "type": "string" + }, + { + "id": 2, + "name": "metadata", + "type": "google.protobuf.Struct" + } + ] + }, + { + "name": "MeshConfigRequest", + "fields": [ + { + "id": 1, + "name": "version_info", + "type": "string" + }, + { + "id": 2, + "name": "client", + "type": "Client" + }, + { + "id": 3, + "name": "type_url", + "type": "string" + }, + { + "id": 4, + "name": "response_nonce", + "type": "string" + }, + { + "id": 5, + "name": "error_detail", + "type": "google.rpc.Status" + } + ] + }, + { + "name": "MeshConfigResponse", + "fields": [ + { + "id": 1, + "name": "version_info", + "type": "string" + }, + { + "id": 2, + "name": "envelopes", + "type": "Envelope", + "is_repeated": true + }, + { + "id": 3, + "name": "type_url", + "type": "string" + }, + { + "id": 4, + "name": "nonce", + "type": "string" + } + ] + }, + { + "name": "IncrementalMeshConfigRequest", + "fields": [ + { + "id": 1, + "name": "client", + "type": "Client" + }, + { + "id": 2, + "name": "type_url", + "type": "string" + }, + { + "id": 4, + "name": "response_nonce", + "type": "string" + }, + { + "id": 5, + "name": "error_detail", + "type": "google.rpc.Status" + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 3, + "name": "initial_resource_versions", + "type": "string" + } + } + ] + }, + { + "name": "IncrementalMeshConfigResponse", + "fields": [ + { + "id": 1, + "name": "system_version_info", + "type": "string" + }, + { + "id": 2, + "name": "envelopes", + "type": "Envelope", + "is_repeated": true + }, + { + "id": 3, + "name": "removed_resources", + "type": "string", + "is_repeated": true + }, + { + "id": 4, + "name": "nonce", + "type": "string" + } + ] + } + ], + "services": [ + { + "name": "AggregatedMeshConfigService", + "rpcs": [ + { + "name": "StreamAggregatedResources", + "in_type": "MeshConfigRequest", + "out_type": "MeshConfigResponse", + "in_streamed": true, + "out_streamed": true + }, + { + "name": "IncrementalAggregatedResources", + "in_type": "IncrementalMeshConfigRequest", + "out_type": "IncrementalMeshConfigResponse", + "in_streamed": true, + "out_streamed": true + } + ] + } + ] + } + }, + { + "protopath": "mcp:/:v1alpha1:/:metadata.proto", + "def": { + "messages": [ + { + "name": "Metadata", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "create_time", + "type": "google.protobuf.Timestamp" + }, + { + "id": 3, + "name": "version", + "type": "string" + } + ] + } + ] + } + }, + { + "protopath": "mesh:/:v1alpha1:/:config.proto", + "def": { + "enums": [ + { + "name": "MeshConfig.IngressControllerMode", + "enum_fields": [ + { + "name": "OFF", + "integer": 0 + }, + { + "name": "DEFAULT", + "integer": 1 + }, + { + "name": "STRICT", + "integer": 2 + } + ] + }, + { + "name": "MeshConfig.AuthPolicy", + "enum_fields": [ + { + "name": "NONE", + "integer": 0 + }, + { + "name": "MUTUAL_TLS", + "integer": 1 + } + ] + }, + { + "name": "OutboundTrafficPolicy.Mode", + "enum_fields": [ + { + "name": "REGISTRY_ONLY", + "integer": 0 + }, + { + "name": "ALLOW_ANY", + "integer": 1 + }, + { + "name": "VIRTUAL_SERVICE_ONLY", + "integer": 2 + } + ] + } + ], + "messages": [ + { + "name": "MeshConfig", + "fields": [ + { + "id": 1, + "name": "mixer_check_server", + "type": "string" + }, + { + "id": 2, + "name": "mixer_report_server", + "type": "string" + }, + { + "id": 3, + "name": "disable_policy_checks", + "type": "bool" + }, + { + "id": 25, + "name": "policy_check_fail_open", + "type": "bool" + }, + { + "id": 4, + "name": "proxy_listen_port", + "type": "int32" + }, + { + "id": 5, + "name": "proxy_http_port", + "type": "int32" + }, + { + "id": 6, + "name": "connect_timeout", + "type": "google.protobuf.Duration" + }, + { + "id": 7, + "name": "ingress_class", + "type": "string" + }, + { + "id": 8, + "name": "ingress_service", + "type": "string" + }, + { + "id": 9, + "name": "ingress_controller_mode", + "type": "IngressControllerMode" + }, + { + "id": 10, + "name": "auth_policy", + "type": "AuthPolicy" + }, + { + "id": 11, + "name": "rds_refresh_delay", + "type": "google.protobuf.Duration" + }, + { + "id": 12, + "name": "enable_tracing", + "type": "bool" + }, + { + "id": 13, + "name": "access_log_file", + "type": "string" + }, + { + "id": 24, + "name": "access_log_format", + "type": "string" + }, + { + "id": 14, + "name": "default_config", + "type": "ProxyConfig" + }, + { + "id": 16, + "name": "mixer_address", + "type": "string" + }, + { + "id": 17, + "name": "outbound_traffic_policy", + "type": "OutboundTrafficPolicy" + }, + { + "id": 19, + "name": "enable_client_side_policy_check", + "type": "bool" + }, + { + "id": 20, + "name": "sds_uds_path", + "type": "string" + }, + { + "id": 21, + "name": "sds_refresh_delay", + "type": "google.protobuf.Duration" + }, + { + "id": 22, + "name": "config_sources", + "type": "ConfigSource", + "is_repeated": true + }, + { + "id": 23, + "name": "enable_sds_token_mount", + "type": "bool" + }, + { + "id": 26, + "name": "trust_domain", + "type": "string" + } + ], + "reserved_ids": [ + 15, + 18 + ], + "messages": [ + { + "name": "OutboundTrafficPolicy", + "fields": [ + { + "id": 1, + "name": "mode", + "type": "Mode" + } + ] + } + ] + }, + { + "name": "ConfigSource", + "fields": [ + { + "id": 1, + "name": "address", + "type": "string" + }, + { + "id": 2, + "name": "tls_settings", + "type": "istio.networking.v1alpha3.TLSSettings" + } + ] + } + ] + } + }, + { + "protopath": "mesh:/:v1alpha1:/:network.proto", + "def": { + "messages": [ + { + "name": "Network", + "fields": [ + { + "id": 2, + "name": "endpoints", + "type": "NetworkEndpoints", + "is_repeated": true + }, + { + "id": 3, + "name": "gateways", + "type": "IstioNetworkGateway", + "is_repeated": true + } + ], + "messages": [ + { + "name": "NetworkEndpoints", + "fields": [ + { + "id": 1, + "name": "from_cidr", + "type": "string" + }, + { + "id": 2, + "name": "from_registry", + "type": "string" + } + ] + }, + { + "name": "IstioNetworkGateway", + "fields": [ + { + "id": 1, + "name": "registry_service_name", + "type": "string" + }, + { + "id": 2, + "name": "address", + "type": "string" + }, + { + "id": 3, + "name": "port", + "type": "uint32" + }, + { + "id": 4, + "name": "locality", + "type": "string" + } + ] + } + ] + }, + { + "name": "MeshNetworks", + "maps": [ + { + "key_type": "string", + "field": { + "id": 1, + "name": "networks", + "type": "Network" + } + } + ] + } + ] + } + }, + { + "protopath": "mesh:/:v1alpha1:/:proxy.proto", + "def": { + "enums": [ + { + "name": "AuthenticationPolicy", + "enum_fields": [ + { + "name": "NONE", + "integer": 0 + }, + { + "name": "MUTUAL_TLS", + "integer": 1 + }, + { + "name": "INHERIT", + "integer": 1000 + } + ] + }, + { + "name": "ProxyConfig.InboundInterceptionMode", + "enum_fields": [ + { + "name": "REDIRECT", + "integer": 0 + }, + { + "name": "TPROXY", + "integer": 1 + } + ] + } + ], + "messages": [ + { + "name": "Tracing", + "fields": [ + { + "id": 1, + "name": "zipkin", + "type": "Zipkin" + }, + { + "id": 2, + "name": "lightstep", + "type": "Lightstep" + } + ], + "messages": [ + { + "name": "Zipkin", + "fields": [ + { + "id": 1, + "name": "address", + "type": "string" + } + ] + }, + { + "name": "Lightstep", + "fields": [ + { + "id": 1, + "name": "address", + "type": "string" + }, + { + "id": 2, + "name": "access_token", + "type": "string" + }, + { + "id": 3, + "name": "secure", + "type": "bool" + }, + { + "id": 4, + "name": "cacert_path", + "type": "string" + } + ] + } + ] + }, + { + "name": "ProxyConfig", + "fields": [ + { + "id": 1, + "name": "config_path", + "type": "string" + }, + { + "id": 2, + "name": "binary_path", + "type": "string" + }, + { + "id": 3, + "name": "service_cluster", + "type": "string" + }, + { + "id": 4, + "name": "drain_duration", + "type": "google.protobuf.Duration" + }, + { + "id": 5, + "name": "parent_shutdown_duration", + "type": "google.protobuf.Duration" + }, + { + "id": 6, + "name": "discovery_address", + "type": "string" + }, + { + "id": 7, + "name": "discovery_refresh_delay", + "type": "google.protobuf.Duration" + }, + { + "id": 8, + "name": "zipkin_address", + "type": "string" + }, + { + "id": 9, + "name": "connect_timeout", + "type": "google.protobuf.Duration" + }, + { + "id": 10, + "name": "statsd_udp_address", + "type": "string" + }, + { + "id": 11, + "name": "proxy_admin_port", + "type": "int32" + }, + { + "id": 12, + "name": "availability_zone", + "type": "string" + }, + { + "id": 13, + "name": "control_plane_auth_policy", + "type": "AuthenticationPolicy" + }, + { + "id": 14, + "name": "custom_config_file", + "type": "string" + }, + { + "id": 15, + "name": "stat_name_length", + "type": "int32" + }, + { + "id": 16, + "name": "concurrency", + "type": "int32" + }, + { + "id": 17, + "name": "proxy_bootstrap_template_path", + "type": "string" + }, + { + "id": 18, + "name": "interception_mode", + "type": "InboundInterceptionMode" + }, + { + "id": 19, + "name": "tracing", + "type": "Tracing" + } + ] + } + ] + } + }, + { + "protopath": "mixer:/:adapter:/:model:/:v1beta1:/:check.proto", + "def": { + "messages": [ + { + "name": "CheckResult", + "fields": [ + { + "id": 1, + "name": "status", + "type": "google.rpc.Status" + }, + { + "id": 2, + "name": "valid_duration", + "type": "google.protobuf.Duration" + }, + { + "id": 3, + "name": "valid_use_count", + "type": "int32" + } + ] + } + ] + } + }, + { + "protopath": "mixer:/:adapter:/:model:/:v1beta1:/:extensions.proto", + "def": { + "enums": [ + { + "name": "TemplateVariety", + "enum_fields": [ + { + "name": "TEMPLATE_VARIETY_CHECK", + "integer": 0 + }, + { + "name": "TEMPLATE_VARIETY_REPORT", + "integer": 1 + }, + { + "name": "TEMPLATE_VARIETY_QUOTA", + "integer": 2 + }, + { + "name": "TEMPLATE_VARIETY_ATTRIBUTE_GENERATOR", + "integer": 3 + }, + { + "name": "TEMPLATE_VARIETY_CHECK_WITH_OUTPUT", + "integer": 4 + } + ] + } + ], + "messages": [ + { + "name": "google.protobuf.FileOptions", + "fields": [ + { + "id": 72295727, + "name": "template_variety", + "type": "TemplateVariety" + }, + { + "id": 72295888, + "name": "template_name", + "type": "string" + } + ] + } + ] + } + }, + { + "protopath": "mixer:/:adapter:/:model:/:v1beta1:/:info.proto", + "def": { + "messages": [ + { + "name": "Info", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "description", + "type": "string" + }, + { + "id": 3, + "name": "templates", + "type": "string", + "is_repeated": true + }, + { + "id": 4, + "name": "config", + "type": "string" + }, + { + "id": 5, + "name": "session_based", + "type": "bool" + } + ] + } + ] + } + }, + { + "protopath": "mixer:/:adapter:/:model:/:v1beta1:/:infrastructure_backend.proto", + "def": { + "messages": [ + { + "name": "CreateSessionRequest", + "fields": [ + { + "id": 1, + "name": "adapter_config", + "type": "google.protobuf.Any" + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 2, + "name": "inferred_types", + "type": "google.protobuf.Any" + } + } + ] + }, + { + "name": "CreateSessionResponse", + "fields": [ + { + "id": 1, + "name": "session_id", + "type": "string" + }, + { + "id": 2, + "name": "status", + "type": "google.rpc.Status" + } + ] + }, + { + "name": "ValidateRequest", + "fields": [ + { + "id": 1, + "name": "adapter_config", + "type": "google.protobuf.Any" + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 2, + "name": "inferred_types", + "type": "google.protobuf.Any" + } + } + ] + }, + { + "name": "ValidateResponse", + "fields": [ + { + "id": 1, + "name": "status", + "type": "google.rpc.Status" + } + ] + }, + { + "name": "CloseSessionRequest", + "fields": [ + { + "id": 1, + "name": "session_id", + "type": "string" + } + ] + }, + { + "name": "CloseSessionResponse", + "fields": [ + { + "id": 1, + "name": "status", + "type": "google.rpc.Status" + } + ] + } + ], + "services": [ + { + "name": "InfrastructureBackend", + "rpcs": [ + { + "name": "Validate", + "in_type": "ValidateRequest", + "out_type": "ValidateResponse" + }, + { + "name": "CreateSession", + "in_type": "CreateSessionRequest", + "out_type": "CreateSessionResponse" + }, + { + "name": "CloseSession", + "in_type": "CloseSessionRequest", + "out_type": "CloseSessionResponse" + } + ] + } + ] + } + }, + { + "protopath": "mixer:/:adapter:/:model:/:v1beta1:/:quota.proto", + "def": { + "messages": [ + { + "name": "QuotaRequest", + "maps": [ + { + "key_type": "string", + "field": { + "id": 1, + "name": "quotas", + "type": "QuotaParams" + } + } + ], + "messages": [ + { + "name": "QuotaParams", + "fields": [ + { + "id": 1, + "name": "amount", + "type": "int64" + }, + { + "id": 2, + "name": "best_effort", + "type": "bool" + } + ] + } + ] + }, + { + "name": "QuotaResult", + "maps": [ + { + "key_type": "string", + "field": { + "id": 1, + "name": "quotas", + "type": "Result" + } + } + ], + "messages": [ + { + "name": "Result", + "fields": [ + { + "id": 2, + "name": "valid_duration", + "type": "google.protobuf.Duration" + }, + { + "id": 3, + "name": "granted_amount", + "type": "int64" + } + ] + } + ] + } + ] + } + }, + { + "protopath": "mixer:/:adapter:/:model:/:v1beta1:/:report.proto", + "def": { + "messages": [ + { + "name": "ReportResult" + } + ] + } + }, + { + "protopath": "mixer:/:adapter:/:model:/:v1beta1:/:template.proto", + "def": { + "messages": [ + { + "name": "Template", + "fields": [ + { + "id": 1, + "name": "descriptor", + "type": "string" + } + ] + } + ] + } + }, + { + "protopath": "mixer:/:v1:/:attributes.proto", + "def": { + "messages": [ + { + "name": "Attributes", + "maps": [ + { + "key_type": "string", + "field": { + "id": 1, + "name": "attributes", + "type": "AttributeValue" + } + } + ], + "messages": [ + { + "name": "AttributeValue", + "fields": [ + { + "id": 2, + "name": "string_value", + "type": "string" + }, + { + "id": 3, + "name": "int64_value", + "type": "int64" + }, + { + "id": 4, + "name": "double_value", + "type": "double" + }, + { + "id": 5, + "name": "bool_value", + "type": "bool" + }, + { + "id": 6, + "name": "bytes_value", + "type": "bytes" + }, + { + "id": 7, + "name": "timestamp_value", + "type": "google.protobuf.Timestamp" + }, + { + "id": 8, + "name": "duration_value", + "type": "google.protobuf.Duration" + }, + { + "id": 9, + "name": "string_map_value", + "type": "StringMap" + } + ] + }, + { + "name": "StringMap", + "maps": [ + { + "key_type": "string", + "field": { + "id": 1, + "name": "entries", + "type": "string" + } + } + ] + } + ] + }, + { + "name": "CompressedAttributes", + "fields": [ + { + "id": 1, + "name": "words", + "type": "string", + "is_repeated": true + } + ], + "maps": [ + { + "key_type": "sint32", + "field": { + "id": 2, + "name": "strings", + "type": "sint32" + } + }, + { + "key_type": "sint32", + "field": { + "id": 3, + "name": "int64s", + "type": "int64" + } + }, + { + "key_type": "sint32", + "field": { + "id": 4, + "name": "doubles", + "type": "double" + } + }, + { + "key_type": "sint32", + "field": { + "id": 5, + "name": "bools", + "type": "bool" + } + }, + { + "key_type": "sint32", + "field": { + "id": 6, + "name": "timestamps", + "type": "google.protobuf.Timestamp" + } + }, + { + "key_type": "sint32", + "field": { + "id": 7, + "name": "durations", + "type": "google.protobuf.Duration" + } + }, + { + "key_type": "sint32", + "field": { + "id": 8, + "name": "bytes", + "type": "bytes" + } + }, + { + "key_type": "sint32", + "field": { + "id": 9, + "name": "string_maps", + "type": "StringMap" + } + } + ] + }, + { + "name": "StringMap", + "maps": [ + { + "key_type": "sint32", + "field": { + "id": 1, + "name": "entries", + "type": "sint32" + } + } + ] + } + ] + } + }, + { + "protopath": "mixer:/:v1:/:config:/:client:/:api_spec.proto", + "def": { + "messages": [ + { + "name": "HTTPAPISpec", + "fields": [ + { + "id": 1, + "name": "attributes", + "type": "Attributes" + }, + { + "id": 2, + "name": "patterns", + "type": "HTTPAPISpecPattern", + "is_repeated": true + }, + { + "id": 3, + "name": "api_keys", + "type": "APIKey", + "is_repeated": true + } + ] + }, + { + "name": "HTTPAPISpecPattern", + "fields": [ + { + "id": 1, + "name": "attributes", + "type": "Attributes" + }, + { + "id": 2, + "name": "http_method", + "type": "string" + }, + { + "id": 3, + "name": "uri_template", + "type": "string" + }, + { + "id": 4, + "name": "regex", + "type": "string" + } + ] + }, + { + "name": "APIKey", + "fields": [ + { + "id": 1, + "name": "query", + "type": "string" + }, + { + "id": 2, + "name": "header", + "type": "string" + }, + { + "id": 3, + "name": "cookie", + "type": "string" + } + ] + }, + { + "name": "HTTPAPISpecReference", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "namespace", + "type": "string" + } + ] + }, + { + "name": "HTTPAPISpecBinding", + "fields": [ + { + "id": 1, + "name": "services", + "type": "IstioService", + "is_repeated": true + }, + { + "id": 2, + "name": "api_specs", + "type": "HTTPAPISpecReference", + "is_repeated": true + } + ] + } + ] + } + }, + { + "protopath": "mixer:/:v1:/:config:/:client:/:client_config.proto", + "def": { + "enums": [ + { + "name": "NetworkFailPolicy.FailPolicy", + "enum_fields": [ + { + "name": "FAIL_OPEN", + "integer": 0 + }, + { + "name": "FAIL_CLOSE", + "integer": 1 + } + ] + } + ], + "messages": [ + { + "name": "NetworkFailPolicy", + "fields": [ + { + "id": 1, + "name": "policy", + "type": "FailPolicy" + } + ] + }, + { + "name": "ServiceConfig", + "fields": [ + { + "id": 1, + "name": "disable_check_calls", + "type": "bool" + }, + { + "id": 2, + "name": "disable_report_calls", + "type": "bool" + }, + { + "id": 3, + "name": "mixer_attributes", + "type": "Attributes" + }, + { + "id": 4, + "name": "http_api_spec", + "type": "HTTPAPISpec", + "is_repeated": true + }, + { + "id": 5, + "name": "quota_spec", + "type": "QuotaSpec", + "is_repeated": true + }, + { + "id": 7, + "name": "network_fail_policy", + "type": "NetworkFailPolicy" + }, + { + "id": 8, + "name": "forward_attributes", + "type": "Attributes" + } + ] + }, + { + "name": "TransportConfig", + "fields": [ + { + "id": 1, + "name": "disable_check_cache", + "type": "bool" + }, + { + "id": 2, + "name": "disable_quota_cache", + "type": "bool" + }, + { + "id": 3, + "name": "disable_report_batch", + "type": "bool" + }, + { + "id": 4, + "name": "network_fail_policy", + "type": "NetworkFailPolicy" + }, + { + "id": 5, + "name": "stats_update_interval", + "type": "google.protobuf.Duration" + }, + { + "id": 6, + "name": "check_cluster", + "type": "string" + }, + { + "id": 7, + "name": "report_cluster", + "type": "string" + }, + { + "id": 8, + "name": "attributes_for_mixer_proxy", + "type": "Attributes" + } + ] + }, + { + "name": "HttpClientConfig", + "fields": [ + { + "id": 1, + "name": "transport", + "type": "TransportConfig" + }, + { + "id": 3, + "name": "default_destination_service", + "type": "string" + }, + { + "id": 4, + "name": "mixer_attributes", + "type": "Attributes" + }, + { + "id": 5, + "name": "forward_attributes", + "type": "Attributes" + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 2, + "name": "service_configs", + "type": "ServiceConfig" + } + } + ] + }, + { + "name": "TcpClientConfig", + "fields": [ + { + "id": 1, + "name": "transport", + "type": "TransportConfig" + }, + { + "id": 2, + "name": "mixer_attributes", + "type": "Attributes" + }, + { + "id": 3, + "name": "disable_check_calls", + "type": "bool" + }, + { + "id": 4, + "name": "disable_report_calls", + "type": "bool" + }, + { + "id": 5, + "name": "connection_quota_spec", + "type": "QuotaSpec" + }, + { + "id": 6, + "name": "report_interval", + "type": "google.protobuf.Duration" + } + ] + } + ] + } + }, + { + "protopath": "mixer:/:v1:/:config:/:client:/:quota.proto", + "def": { + "messages": [ + { + "name": "QuotaSpec", + "fields": [ + { + "id": 1, + "name": "rules", + "type": "QuotaRule", + "is_repeated": true + } + ] + }, + { + "name": "QuotaRule", + "fields": [ + { + "id": 1, + "name": "match", + "type": "AttributeMatch", + "is_repeated": true + }, + { + "id": 2, + "name": "quotas", + "type": "Quota", + "is_repeated": true + } + ] + }, + { + "name": "StringMatch", + "fields": [ + { + "id": 1, + "name": "exact", + "type": "string" + }, + { + "id": 2, + "name": "prefix", + "type": "string" + }, + { + "id": 3, + "name": "regex", + "type": "string" + } + ] + }, + { + "name": "AttributeMatch", + "maps": [ + { + "key_type": "string", + "field": { + "id": 1, + "name": "clause", + "type": "StringMatch" + } + } + ] + }, + { + "name": "Quota", + "fields": [ + { + "id": 1, + "name": "quota", + "type": "string" + }, + { + "id": 2, + "name": "charge", + "type": "int64" + } + ] + }, + { + "name": "QuotaSpecBinding", + "fields": [ + { + "id": 1, + "name": "services", + "type": "IstioService", + "is_repeated": true + }, + { + "id": 2, + "name": "quota_specs", + "type": "QuotaSpecReference", + "is_repeated": true + } + ], + "messages": [ + { + "name": "QuotaSpecReference", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "namespace", + "type": "string" + } + ] + } + ] + } + ] + } + }, + { + "protopath": "mixer:/:v1:/:config:/:client:/:service.proto", + "def": { + "messages": [ + { + "name": "IstioService", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "namespace", + "type": "string" + }, + { + "id": 3, + "name": "domain", + "type": "string" + }, + { + "id": 4, + "name": "service", + "type": "string" + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 5, + "name": "labels", + "type": "string" + } + } + ] + } + ] + } + }, + { + "protopath": "mixer:/:v1:/:mixer.proto", + "def": { + "enums": [ + { + "name": "ReferencedAttributes.Condition", + "enum_fields": [ + { + "name": "CONDITION_UNSPECIFIED", + "integer": 0 + }, + { + "name": "ABSENCE", + "integer": 1 + }, + { + "name": "EXACT", + "integer": 2 + }, + { + "name": "REGEX", + "integer": 3 + } + ] + }, + { + "name": "HeaderOperation.Operation", + "enum_fields": [ + { + "name": "REPLACE", + "integer": 0 + }, + { + "name": "REMOVE", + "integer": 1 + }, + { + "name": "APPEND", + "integer": 2 + } + ] + } + ], + "messages": [ + { + "name": "CheckRequest", + "fields": [ + { + "id": 1, + "name": "attributes", + "type": "CompressedAttributes" + }, + { + "id": 2, + "name": "global_word_count", + "type": "uint32" + }, + { + "id": 3, + "name": "deduplication_id", + "type": "string" + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 4, + "name": "quotas", + "type": "QuotaParams" + } + } + ], + "messages": [ + { + "name": "QuotaParams", + "fields": [ + { + "id": 1, + "name": "amount", + "type": "int64" + }, + { + "id": 2, + "name": "best_effort", + "type": "bool" + } + ] + } + ] + }, + { + "name": "CheckResponse", + "fields": [ + { + "id": 2, + "name": "precondition", + "type": "PreconditionResult" + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 3, + "name": "quotas", + "type": "QuotaResult" + } + } + ], + "messages": [ + { + "name": "PreconditionResult", + "fields": [ + { + "id": 1, + "name": "status", + "type": "google.rpc.Status" + }, + { + "id": 2, + "name": "valid_duration", + "type": "google.protobuf.Duration" + }, + { + "id": 3, + "name": "valid_use_count", + "type": "int32" + }, + { + "id": 5, + "name": "referenced_attributes", + "type": "ReferencedAttributes" + }, + { + "id": 6, + "name": "route_directive", + "type": "RouteDirective" + } + ], + "reserved_ids": [ + 4 + ] + }, + { + "name": "QuotaResult", + "fields": [ + { + "id": 1, + "name": "valid_duration", + "type": "google.protobuf.Duration" + }, + { + "id": 2, + "name": "granted_amount", + "type": "int64" + }, + { + "id": 5, + "name": "referenced_attributes", + "type": "ReferencedAttributes" + } + ] + } + ] + }, + { + "name": "ReferencedAttributes", + "fields": [ + { + "id": 1, + "name": "words", + "type": "string", + "is_repeated": true + }, + { + "id": 2, + "name": "attribute_matches", + "type": "AttributeMatch", + "is_repeated": true + } + ], + "messages": [ + { + "name": "AttributeMatch", + "fields": [ + { + "id": 1, + "name": "name", + "type": "sint32" + }, + { + "id": 2, + "name": "condition", + "type": "Condition" + }, + { + "id": 3, + "name": "regex", + "type": "string" + }, + { + "id": 4, + "name": "map_key", + "type": "sint32" + } + ] + } + ] + }, + { + "name": "HeaderOperation", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "value", + "type": "string" + }, + { + "id": 3, + "name": "operation", + "type": "Operation" + } + ] + }, + { + "name": "RouteDirective", + "fields": [ + { + "id": 1, + "name": "request_header_operations", + "type": "HeaderOperation", + "is_repeated": true + }, + { + "id": 2, + "name": "response_header_operations", + "type": "HeaderOperation", + "is_repeated": true + }, + { + "id": 3, + "name": "direct_response_code", + "type": "uint32" + }, + { + "id": 4, + "name": "direct_response_body", + "type": "string" + } + ] + }, + { + "name": "ReportRequest", + "fields": [ + { + "id": 1, + "name": "attributes", + "type": "CompressedAttributes", + "is_repeated": true + }, + { + "id": 2, + "name": "default_words", + "type": "string", + "is_repeated": true + }, + { + "id": 3, + "name": "global_word_count", + "type": "uint32" + } + ] + }, + { + "name": "ReportResponse" + } + ], + "services": [ + { + "name": "Mixer", + "rpcs": [ + { + "name": "Check", + "in_type": "CheckRequest", + "out_type": "CheckResponse" + }, + { + "name": "Report", + "in_type": "ReportRequest", + "out_type": "ReportResponse" + } + ] + } + ] + } + }, + { + "protopath": "networking:/:v1alpha3:/:destination_rule.proto", + "def": { + "enums": [ + { + "name": "LoadBalancerSettings.SimpleLB", + "enum_fields": [ + { + "name": "ROUND_ROBIN", + "integer": 0 + }, + { + "name": "LEAST_CONN", + "integer": 1 + }, + { + "name": "RANDOM", + "integer": 2 + }, + { + "name": "PASSTHROUGH", + "integer": 3 + } + ] + }, + { + "name": "TLSSettings.TLSmode", + "enum_fields": [ + { + "name": "DISABLE", + "integer": 0 + }, + { + "name": "SIMPLE", + "integer": 1 + }, + { + "name": "MUTUAL", + "integer": 2 + }, + { + "name": "ISTIO_MUTUAL", + "integer": 3 + } + ] + } + ], + "messages": [ + { + "name": "DestinationRule", + "fields": [ + { + "id": 1, + "name": "host", + "type": "string" + }, + { + "id": 2, + "name": "traffic_policy", + "type": "TrafficPolicy" + }, + { + "id": 3, + "name": "subsets", + "type": "Subset", + "is_repeated": true + } + ] + }, + { + "name": "TrafficPolicy", + "fields": [ + { + "id": 1, + "name": "load_balancer", + "type": "LoadBalancerSettings" + }, + { + "id": 2, + "name": "connection_pool", + "type": "ConnectionPoolSettings" + }, + { + "id": 3, + "name": "outlier_detection", + "type": "OutlierDetection" + }, + { + "id": 4, + "name": "tls", + "type": "TLSSettings" + }, + { + "id": 5, + "name": "port_level_settings", + "type": "PortTrafficPolicy", + "is_repeated": true + } + ], + "messages": [ + { + "name": "PortTrafficPolicy", + "fields": [ + { + "id": 1, + "name": "port", + "type": "PortSelector" + }, + { + "id": 2, + "name": "load_balancer", + "type": "LoadBalancerSettings" + }, + { + "id": 3, + "name": "connection_pool", + "type": "ConnectionPoolSettings" + }, + { + "id": 4, + "name": "outlier_detection", + "type": "OutlierDetection" + }, + { + "id": 5, + "name": "tls", + "type": "TLSSettings" + } + ] + } + ] + }, + { + "name": "Subset", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 3, + "name": "traffic_policy", + "type": "TrafficPolicy" + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 2, + "name": "labels", + "type": "string" + } + } + ] + }, + { + "name": "LoadBalancerSettings", + "fields": [ + { + "id": 1, + "name": "simple", + "type": "SimpleLB" + }, + { + "id": 2, + "name": "consistent_hash", + "type": "ConsistentHashLB" + } + ], + "messages": [ + { + "name": "ConsistentHashLB", + "fields": [ + { + "id": 1, + "name": "http_header_name", + "type": "string" + }, + { + "id": 2, + "name": "http_cookie", + "type": "HTTPCookie" + }, + { + "id": 3, + "name": "use_source_ip", + "type": "bool" + }, + { + "id": 4, + "name": "minimum_ring_size", + "type": "uint64" + } + ], + "messages": [ + { + "name": "HTTPCookie", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "path", + "type": "string" + }, + { + "id": 3, + "name": "ttl", + "type": "google.protobuf.Duration" + } + ] + } + ] + } + ] + }, + { + "name": "ConnectionPoolSettings", + "fields": [ + { + "id": 1, + "name": "tcp", + "type": "TCPSettings" + }, + { + "id": 2, + "name": "http", + "type": "HTTPSettings" + } + ], + "messages": [ + { + "name": "TCPSettings", + "fields": [ + { + "id": 1, + "name": "max_connections", + "type": "int32" + }, + { + "id": 2, + "name": "connect_timeout", + "type": "google.protobuf.Duration" + } + ] + }, + { + "name": "HTTPSettings", + "fields": [ + { + "id": 1, + "name": "http1_max_pending_requests", + "type": "int32" + }, + { + "id": 2, + "name": "http2_max_requests", + "type": "int32" + }, + { + "id": 3, + "name": "max_requests_per_connection", + "type": "int32" + }, + { + "id": 4, + "name": "max_retries", + "type": "int32" + } + ] + } + ] + }, + { + "name": "OutlierDetection", + "fields": [ + { + "id": 1, + "name": "consecutive_errors", + "type": "int32" + }, + { + "id": 2, + "name": "interval", + "type": "google.protobuf.Duration" + }, + { + "id": 3, + "name": "base_ejection_time", + "type": "google.protobuf.Duration" + }, + { + "id": 4, + "name": "max_ejection_percent", + "type": "int32" + }, + { + "id": 5, + "name": "min_health_percent", + "type": "int32" + } + ] + }, + { + "name": "TLSSettings", + "fields": [ + { + "id": 1, + "name": "mode", + "type": "TLSmode" + }, + { + "id": 2, + "name": "client_certificate", + "type": "string" + }, + { + "id": 3, + "name": "private_key", + "type": "string" + }, + { + "id": 4, + "name": "ca_certificates", + "type": "string" + }, + { + "id": 5, + "name": "subject_alt_names", + "type": "string", + "is_repeated": true + }, + { + "id": 6, + "name": "sni", + "type": "string" + } + ] + } + ] + } + }, + { + "protopath": "networking:/:v1alpha3:/:envoy_filter.proto", + "def": { + "enums": [ + { + "name": "ListenerMatch.ListenerType", + "enum_fields": [ + { + "name": "ANY", + "integer": 0 + }, + { + "name": "SIDECAR_INBOUND", + "integer": 1 + }, + { + "name": "SIDECAR_OUTBOUND", + "integer": 2 + }, + { + "name": "GATEWAY", + "integer": 3 + } + ] + }, + { + "name": "ListenerMatch.ListenerProtocol", + "enum_fields": [ + { + "name": "ALL", + "integer": 0 + }, + { + "name": "HTTP", + "integer": 1 + }, + { + "name": "TCP", + "integer": 2 + } + ] + }, + { + "name": "InsertPosition.Index", + "enum_fields": [ + { + "name": "FIRST", + "integer": 0 + }, + { + "name": "LAST", + "integer": 1 + }, + { + "name": "BEFORE", + "integer": 2 + }, + { + "name": "AFTER", + "integer": 3 + } + ] + }, + { + "name": "Filter.FilterType", + "enum_fields": [ + { + "name": "INVALID", + "integer": 0 + }, + { + "name": "HTTP", + "integer": 1 + }, + { + "name": "NETWORK", + "integer": 2 + } + ] + } + ], + "messages": [ + { + "name": "EnvoyFilter", + "fields": [ + { + "id": 2, + "name": "filters", + "type": "Filter", + "is_repeated": true + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 1, + "name": "workload_labels", + "type": "string" + } + } + ], + "messages": [ + { + "name": "ListenerMatch", + "fields": [ + { + "id": 1, + "name": "port_number", + "type": "uint32" + }, + { + "id": 2, + "name": "port_name_prefix", + "type": "string" + }, + { + "id": 3, + "name": "listener_type", + "type": "ListenerType" + }, + { + "id": 4, + "name": "listener_protocol", + "type": "ListenerProtocol" + }, + { + "id": 5, + "name": "address", + "type": "string", + "is_repeated": true + } + ] + }, + { + "name": "InsertPosition", + "fields": [ + { + "id": 1, + "name": "index", + "type": "Index" + }, + { + "id": 2, + "name": "relative_to", + "type": "string" + } + ] + }, + { + "name": "Filter", + "fields": [ + { + "id": 1, + "name": "listener_match", + "type": "ListenerMatch" + }, + { + "id": 2, + "name": "insert_position", + "type": "InsertPosition" + }, + { + "id": 3, + "name": "filter_type", + "type": "FilterType" + }, + { + "id": 4, + "name": "filter_name", + "type": "string" + }, + { + "id": 5, + "name": "filter_config", + "type": "google.protobuf.Struct" + } + ] + } + ] + } + ] + } + }, + { + "protopath": "networking:/:v1alpha3:/:gateway.proto", + "def": { + "enums": [ + { + "name": "TLSOptions.TLSmode", + "enum_fields": [ + { + "name": "PASSTHROUGH", + "integer": 0 + }, + { + "name": "SIMPLE", + "integer": 1 + }, + { + "name": "MUTUAL", + "integer": 2 + }, + { + "name": "AUTO_PASSTHROUGH", + "integer": 3 + } + ] + }, + { + "name": "TLSOptions.TLSProtocol", + "enum_fields": [ + { + "name": "TLS_AUTO", + "integer": 0 + }, + { + "name": "TLSV1_0", + "integer": 1 + }, + { + "name": "TLSV1_1", + "integer": 2 + }, + { + "name": "TLSV1_2", + "integer": 3 + }, + { + "name": "TLSV1_3", + "integer": 4 + } + ] + } + ], + "messages": [ + { + "name": "Gateway", + "fields": [ + { + "id": 1, + "name": "servers", + "type": "Server", + "is_repeated": true + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 2, + "name": "selector", + "type": "string" + } + } + ] + }, + { + "name": "Server", + "fields": [ + { + "id": 1, + "name": "port", + "type": "Port" + }, + { + "id": 2, + "name": "hosts", + "type": "string", + "is_repeated": true + }, + { + "id": 3, + "name": "tls", + "type": "TLSOptions" + } + ], + "messages": [ + { + "name": "TLSOptions", + "fields": [ + { + "id": 1, + "name": "https_redirect", + "type": "bool" + }, + { + "id": 2, + "name": "mode", + "type": "TLSmode" + }, + { + "id": 3, + "name": "server_certificate", + "type": "string" + }, + { + "id": 4, + "name": "private_key", + "type": "string" + }, + { + "id": 5, + "name": "ca_certificates", + "type": "string" + }, + { + "id": 6, + "name": "subject_alt_names", + "type": "string", + "is_repeated": true + }, + { + "id": 7, + "name": "min_protocol_version", + "type": "TLSProtocol" + }, + { + "id": 8, + "name": "max_protocol_version", + "type": "TLSProtocol" + }, + { + "id": 9, + "name": "cipher_suites", + "type": "string", + "is_repeated": true + } + ] + } + ] + }, + { + "name": "Port", + "fields": [ + { + "id": 1, + "name": "number", + "type": "uint32" + }, + { + "id": 2, + "name": "protocol", + "type": "string" + }, + { + "id": 3, + "name": "name", + "type": "string" + } + ] + } + ] + } + }, + { + "protopath": "networking:/:v1alpha3:/:service_entry.proto", + "def": { + "enums": [ + { + "name": "ServiceEntry.Location", + "enum_fields": [ + { + "name": "MESH_EXTERNAL", + "integer": 0 + }, + { + "name": "MESH_INTERNAL", + "integer": 1 + } + ] + }, + { + "name": "ServiceEntry.Resolution", + "enum_fields": [ + { + "name": "NONE", + "integer": 0 + }, + { + "name": "STATIC", + "integer": 1 + }, + { + "name": "DNS", + "integer": 2 + } + ] + } + ], + "messages": [ + { + "name": "ServiceEntry", + "fields": [ + { + "id": 1, + "name": "hosts", + "type": "string", + "is_repeated": true + }, + { + "id": 2, + "name": "addresses", + "type": "string", + "is_repeated": true + }, + { + "id": 3, + "name": "ports", + "type": "Port", + "is_repeated": true + }, + { + "id": 4, + "name": "location", + "type": "Location" + }, + { + "id": 5, + "name": "resolution", + "type": "Resolution" + }, + { + "id": 6, + "name": "endpoints", + "type": "Endpoint", + "is_repeated": true + } + ], + "messages": [ + { + "name": "Endpoint", + "fields": [ + { + "id": 1, + "name": "address", + "type": "string" + }, + { + "id": 4, + "name": "network", + "type": "string" + }, + { + "id": 5, + "name": "locality", + "type": "string" + }, + { + "id": 6, + "name": "weight", + "type": "uint32" + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 2, + "name": "ports", + "type": "uint32" + } + }, + { + "key_type": "string", + "field": { + "id": 3, + "name": "labels", + "type": "string" + } + } + ] + } + ] + } + ] + } + }, + { + "protopath": "networking:/:v1alpha3:/:virtual_service.proto", + "def": { + "messages": [ + { + "name": "VirtualService", + "fields": [ + { + "id": 1, + "name": "hosts", + "type": "string", + "is_repeated": true + }, + { + "id": 2, + "name": "gateways", + "type": "string", + "is_repeated": true + }, + { + "id": 3, + "name": "http", + "type": "HTTPRoute", + "is_repeated": true + }, + { + "id": 5, + "name": "tls", + "type": "TLSRoute", + "is_repeated": true + }, + { + "id": 4, + "name": "tcp", + "type": "TCPRoute", + "is_repeated": true + } + ] + }, + { + "name": "Destination", + "fields": [ + { + "id": 1, + "name": "host", + "type": "string" + }, + { + "id": 2, + "name": "subset", + "type": "string" + }, + { + "id": 3, + "name": "port", + "type": "PortSelector" + } + ] + }, + { + "name": "HTTPRoute", + "fields": [ + { + "id": 1, + "name": "match", + "type": "HTTPMatchRequest", + "is_repeated": true + }, + { + "id": 2, + "name": "route", + "type": "HTTPRouteDestination", + "is_repeated": true + }, + { + "id": 3, + "name": "redirect", + "type": "HTTPRedirect" + }, + { + "id": 4, + "name": "rewrite", + "type": "HTTPRewrite" + }, + { + "id": 5, + "name": "websocket_upgrade", + "type": "bool" + }, + { + "id": 6, + "name": "timeout", + "type": "google.protobuf.Duration" + }, + { + "id": 7, + "name": "retries", + "type": "HTTPRetry" + }, + { + "id": 8, + "name": "fault", + "type": "HTTPFaultInjection" + }, + { + "id": 9, + "name": "mirror", + "type": "Destination" + }, + { + "id": 10, + "name": "cors_policy", + "type": "CorsPolicy" + }, + { + "id": 12, + "name": "remove_response_headers", + "type": "string", + "is_repeated": true + }, + { + "id": 14, + "name": "remove_request_headers", + "type": "string", + "is_repeated": true + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 11, + "name": "append_headers", + "type": "string" + } + }, + { + "key_type": "string", + "field": { + "id": 13, + "name": "append_response_headers", + "type": "string" + } + }, + { + "key_type": "string", + "field": { + "id": 15, + "name": "append_request_headers", + "type": "string" + } + } + ] + }, + { + "name": "TLSRoute", + "fields": [ + { + "id": 1, + "name": "match", + "type": "TLSMatchAttributes", + "is_repeated": true + }, + { + "id": 2, + "name": "route", + "type": "RouteDestination", + "is_repeated": true + } + ] + }, + { + "name": "TCPRoute", + "fields": [ + { + "id": 1, + "name": "match", + "type": "L4MatchAttributes", + "is_repeated": true + }, + { + "id": 2, + "name": "route", + "type": "RouteDestination", + "is_repeated": true + } + ] + }, + { + "name": "HTTPMatchRequest", + "fields": [ + { + "id": 1, + "name": "uri", + "type": "StringMatch" + }, + { + "id": 2, + "name": "scheme", + "type": "StringMatch" + }, + { + "id": 3, + "name": "method", + "type": "StringMatch" + }, + { + "id": 4, + "name": "authority", + "type": "StringMatch" + }, + { + "id": 6, + "name": "port", + "type": "uint32" + }, + { + "id": 8, + "name": "gateways", + "type": "string", + "is_repeated": true + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 5, + "name": "headers", + "type": "StringMatch" + } + }, + { + "key_type": "string", + "field": { + "id": 7, + "name": "source_labels", + "type": "string" + } + } + ] + }, + { + "name": "HTTPRouteDestination", + "fields": [ + { + "id": 1, + "name": "destination", + "type": "Destination" + }, + { + "id": 2, + "name": "weight", + "type": "int32" + }, + { + "id": 3, + "name": "remove_response_headers", + "type": "string", + "is_repeated": true + }, + { + "id": 5, + "name": "remove_request_headers", + "type": "string", + "is_repeated": true + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 4, + "name": "append_response_headers", + "type": "string" + } + }, + { + "key_type": "string", + "field": { + "id": 6, + "name": "append_request_headers", + "type": "string" + } + } + ] + }, + { + "name": "RouteDestination", + "fields": [ + { + "id": 1, + "name": "destination", + "type": "Destination" + }, + { + "id": 2, + "name": "weight", + "type": "int32" + } + ] + }, + { + "name": "L4MatchAttributes", + "fields": [ + { + "id": 1, + "name": "destination_subnets", + "type": "string", + "is_repeated": true + }, + { + "id": 2, + "name": "port", + "type": "uint32" + }, + { + "id": 3, + "name": "source_subnet", + "type": "string" + }, + { + "id": 5, + "name": "gateways", + "type": "string", + "is_repeated": true + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 4, + "name": "source_labels", + "type": "string" + } + } + ] + }, + { + "name": "TLSMatchAttributes", + "fields": [ + { + "id": 1, + "name": "sni_hosts", + "type": "string", + "is_repeated": true + }, + { + "id": 2, + "name": "destination_subnets", + "type": "string", + "is_repeated": true + }, + { + "id": 3, + "name": "port", + "type": "uint32" + }, + { + "id": 4, + "name": "source_subnet", + "type": "string" + }, + { + "id": 6, + "name": "gateways", + "type": "string", + "is_repeated": true + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 5, + "name": "source_labels", + "type": "string" + } + } + ] + }, + { + "name": "HTTPRedirect", + "fields": [ + { + "id": 1, + "name": "uri", + "type": "string" + }, + { + "id": 2, + "name": "authority", + "type": "string" + } + ] + }, + { + "name": "HTTPRewrite", + "fields": [ + { + "id": 1, + "name": "uri", + "type": "string" + }, + { + "id": 2, + "name": "authority", + "type": "string" + } + ] + }, + { + "name": "StringMatch", + "fields": [ + { + "id": 1, + "name": "exact", + "type": "string" + }, + { + "id": 2, + "name": "prefix", + "type": "string" + }, + { + "id": 3, + "name": "regex", + "type": "string" + } + ] + }, + { + "name": "HTTPRetry", + "fields": [ + { + "id": 1, + "name": "attempts", + "type": "int32" + }, + { + "id": 2, + "name": "per_try_timeout", + "type": "google.protobuf.Duration" + }, + { + "id": 3, + "name": "retry_on", + "type": "string" + } + ] + }, + { + "name": "CorsPolicy", + "fields": [ + { + "id": 1, + "name": "allow_origin", + "type": "string", + "is_repeated": true + }, + { + "id": 2, + "name": "allow_methods", + "type": "string", + "is_repeated": true + }, + { + "id": 3, + "name": "allow_headers", + "type": "string", + "is_repeated": true + }, + { + "id": 4, + "name": "expose_headers", + "type": "string", + "is_repeated": true + }, + { + "id": 5, + "name": "max_age", + "type": "google.protobuf.Duration" + }, + { + "id": 6, + "name": "allow_credentials", + "type": "google.protobuf.BoolValue" + } + ] + }, + { + "name": "HTTPFaultInjection", + "fields": [ + { + "id": 1, + "name": "delay", + "type": "Delay" + }, + { + "id": 2, + "name": "abort", + "type": "Abort" + } + ], + "messages": [ + { + "name": "Delay", + "fields": [ + { + "id": 1, + "name": "percent", + "type": "int32" + }, + { + "id": 2, + "name": "fixed_delay", + "type": "google.protobuf.Duration" + }, + { + "id": 3, + "name": "exponential_delay", + "type": "google.protobuf.Duration" + }, + { + "id": 5, + "name": "percentage", + "type": "Percent" + } + ] + }, + { + "name": "Abort", + "fields": [ + { + "id": 1, + "name": "percent", + "type": "int32" + }, + { + "id": 2, + "name": "http_status", + "type": "int32" + }, + { + "id": 3, + "name": "grpc_status", + "type": "string" + }, + { + "id": 4, + "name": "http2_error", + "type": "string" + }, + { + "id": 5, + "name": "percentage", + "type": "Percent" + } + ] + } + ] + }, + { + "name": "PortSelector", + "fields": [ + { + "id": 1, + "name": "number", + "type": "uint32" + }, + { + "id": 2, + "name": "name", + "type": "string" + } + ] + }, + { + "name": "Percent", + "fields": [ + { + "id": 1, + "name": "value", + "type": "double" + } + ] + } + ] + } + }, + { + "protopath": "policy:/:v1beta1:/:cfg.proto", + "def": { + "enums": [ + { + "name": "HeaderOperationTemplate.Operation", + "enum_fields": [ + { + "name": "REPLACE", + "integer": 0 + }, + { + "name": "REMOVE", + "integer": 1 + }, + { + "name": "APPEND", + "integer": 2 + } + ] + }, + { + "name": "FractionalPercent.DenominatorType", + "enum_fields": [ + { + "name": "HUNDRED", + "integer": 0 + }, + { + "name": "TEN_THOUSAND", + "integer": 1 + } + ] + } + ], + "messages": [ + { + "name": "AttributeManifest", + "fields": [ + { + "id": 1, + "name": "revision", + "type": "string" + }, + { + "id": 2, + "name": "name", + "type": "string" + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 3, + "name": "attributes", + "type": "AttributeInfo" + } + } + ], + "messages": [ + { + "name": "AttributeInfo", + "fields": [ + { + "id": 1, + "name": "description", + "type": "string" + }, + { + "id": 2, + "name": "value_type", + "type": "istio.policy.v1beta1.ValueType" + } + ] + } + ] + }, + { + "name": "Rule", + "fields": [ + { + "id": 1, + "name": "match", + "type": "string" + }, + { + "id": 2, + "name": "actions", + "type": "Action", + "is_repeated": true + }, + { + "id": 3, + "name": "request_header_operations", + "type": "HeaderOperationTemplate", + "is_repeated": true + }, + { + "id": 4, + "name": "response_header_operations", + "type": "HeaderOperationTemplate", + "is_repeated": true + }, + { + "id": 5, + "name": "sampling", + "type": "Sampling" + } + ], + "messages": [ + { + "name": "HeaderOperationTemplate", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "values", + "type": "string", + "is_repeated": true + }, + { + "id": 3, + "name": "operation", + "type": "Operation" + } + ] + } + ] + }, + { + "name": "Action", + "fields": [ + { + "id": 2, + "name": "handler", + "type": "string" + }, + { + "id": 3, + "name": "instances", + "type": "string", + "is_repeated": true + }, + { + "id": 4, + "name": "name", + "type": "string" + } + ] + }, + { + "name": "Instance", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 67794676, + "name": "compiled_template", + "type": "string" + }, + { + "id": 2, + "name": "template", + "type": "string" + }, + { + "id": 3, + "name": "params", + "type": "google.protobuf.Struct" + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 4, + "name": "attribute_bindings", + "type": "string" + } + } + ] + }, + { + "name": "Handler", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 67794676, + "name": "compiled_adapter", + "type": "string" + }, + { + "id": 2, + "name": "adapter", + "type": "string" + }, + { + "id": 3, + "name": "params", + "type": "google.protobuf.Struct" + }, + { + "id": 4, + "name": "connection", + "type": "Connection" + } + ] + }, + { + "name": "Connection", + "fields": [ + { + "id": 2, + "name": "address", + "type": "string" + }, + { + "id": 3, + "name": "timeout", + "type": "google.protobuf.Duration" + } + ] + }, + { + "name": "Sampling", + "fields": [ + { + "id": 1, + "name": "random", + "type": "RandomSampling" + }, + { + "id": 2, + "name": "rate_limit", + "type": "RateLimitSampling" + } + ] + }, + { + "name": "RandomSampling", + "fields": [ + { + "id": 1, + "name": "attribute_expression", + "type": "string" + }, + { + "id": 2, + "name": "percent_sampled", + "type": "FractionalPercent" + }, + { + "id": 3, + "name": "use_independent_randomness", + "type": "bool" + } + ] + }, + { + "name": "RateLimitSampling", + "fields": [ + { + "id": 1, + "name": "sampling_duration", + "type": "google.protobuf.Duration" + }, + { + "id": 2, + "name": "max_unsampled_entries", + "type": "int64" + }, + { + "id": 3, + "name": "sampling_rate", + "type": "int64" + } + ] + }, + { + "name": "FractionalPercent", + "fields": [ + { + "id": 1, + "name": "numerator", + "type": "uint32" + }, + { + "id": 2, + "name": "denominator", + "type": "DenominatorType" + } + ] + } + ] + } + }, + { + "protopath": "policy:/:v1beta1:/:type.proto", + "def": { + "messages": [ + { + "name": "Value", + "fields": [ + { + "id": 1, + "name": "string_value", + "type": "string" + }, + { + "id": 2, + "name": "int64_value", + "type": "int64" + }, + { + "id": 3, + "name": "double_value", + "type": "double" + }, + { + "id": 4, + "name": "bool_value", + "type": "bool" + }, + { + "id": 5, + "name": "ip_address_value", + "type": "IPAddress" + }, + { + "id": 6, + "name": "timestamp_value", + "type": "TimeStamp" + }, + { + "id": 7, + "name": "duration_value", + "type": "Duration" + }, + { + "id": 8, + "name": "email_address_value", + "type": "EmailAddress" + }, + { + "id": 9, + "name": "dns_name_value", + "type": "DNSName" + }, + { + "id": 10, + "name": "uri_value", + "type": "Uri" + } + ] + }, + { + "name": "IPAddress", + "fields": [ + { + "id": 1, + "name": "value", + "type": "bytes" + } + ] + }, + { + "name": "Duration", + "fields": [ + { + "id": 1, + "name": "value", + "type": "google.protobuf.Duration" + } + ] + }, + { + "name": "TimeStamp", + "fields": [ + { + "id": 1, + "name": "value", + "type": "google.protobuf.Timestamp" + } + ] + }, + { + "name": "DNSName", + "fields": [ + { + "id": 1, + "name": "value", + "type": "string" + } + ] + }, + { + "name": "EmailAddress", + "fields": [ + { + "id": 1, + "name": "value", + "type": "string" + } + ] + }, + { + "name": "Uri", + "fields": [ + { + "id": 1, + "name": "value", + "type": "string" + } + ] + } + ] + } + }, + { + "protopath": "policy:/:v1beta1:/:value_type.proto", + "def": { + "enums": [ + { + "name": "ValueType", + "enum_fields": [ + { + "name": "VALUE_TYPE_UNSPECIFIED", + "integer": 0 + }, + { + "name": "STRING", + "integer": 1 + }, + { + "name": "INT64", + "integer": 2 + }, + { + "name": "DOUBLE", + "integer": 3 + }, + { + "name": "BOOL", + "integer": 4 + }, + { + "name": "TIMESTAMP", + "integer": 5 + }, + { + "name": "IP_ADDRESS", + "integer": 6 + }, + { + "name": "EMAIL_ADDRESS", + "integer": 7 + }, + { + "name": "URI", + "integer": 8 + }, + { + "name": "DNS_NAME", + "integer": 9 + }, + { + "name": "DURATION", + "integer": 10 + }, + { + "name": "STRING_MAP", + "integer": 11 + } + ] + } + ] + } + }, + { + "protopath": "rbac:/:v1alpha1:/:rbac.proto", + "def": { + "enums": [ + { + "name": "EnforcementMode", + "enum_fields": [ + { + "name": "ENFORCED", + "integer": 0 + }, + { + "name": "PERMISSIVE", + "integer": 1 + } + ] + }, + { + "name": "RbacConfig.Mode", + "enum_fields": [ + { + "name": "OFF", + "integer": 0 + }, + { + "name": "ON", + "integer": 1 + }, + { + "name": "ON_WITH_INCLUSION", + "integer": 2 + }, + { + "name": "ON_WITH_EXCLUSION", + "integer": 3 + } + ] + } + ], + "messages": [ + { + "name": "ServiceRole", + "fields": [ + { + "id": 1, + "name": "rules", + "type": "AccessRule", + "is_repeated": true + } + ] + }, + { + "name": "AccessRule", + "fields": [ + { + "id": 1, + "name": "services", + "type": "string", + "is_repeated": true + }, + { + "id": 2, + "name": "paths", + "type": "string", + "is_repeated": true + }, + { + "id": 3, + "name": "methods", + "type": "string", + "is_repeated": true + }, + { + "id": 4, + "name": "constraints", + "type": "Constraint", + "is_repeated": true + } + ], + "messages": [ + { + "name": "Constraint", + "fields": [ + { + "id": 1, + "name": "key", + "type": "string" + }, + { + "id": 2, + "name": "values", + "type": "string", + "is_repeated": true + } + ] + } + ] + }, + { + "name": "ServiceRoleBinding", + "fields": [ + { + "id": 1, + "name": "subjects", + "type": "Subject", + "is_repeated": true + }, + { + "id": 2, + "name": "roleRef", + "type": "RoleRef" + }, + { + "id": 3, + "name": "mode", + "type": "EnforcementMode" + } + ] + }, + { + "name": "Subject", + "fields": [ + { + "id": 1, + "name": "user", + "type": "string" + }, + { + "id": 2, + "name": "group", + "type": "string" + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 3, + "name": "properties", + "type": "string" + } + } + ] + }, + { + "name": "RoleRef", + "fields": [ + { + "id": 1, + "name": "kind", + "type": "string" + }, + { + "id": 2, + "name": "name", + "type": "string" + } + ] + }, + { + "name": "RbacConfig", + "fields": [ + { + "id": 1, + "name": "mode", + "type": "Mode" + }, + { + "id": 2, + "name": "inclusion", + "type": "Target" + }, + { + "id": 3, + "name": "exclusion", + "type": "Target" + }, + { + "id": 4, + "name": "enforcement_mode", + "type": "EnforcementMode" + } + ], + "messages": [ + { + "name": "Target", + "fields": [ + { + "id": 1, + "name": "services", + "type": "string", + "is_repeated": true + }, + { + "id": 2, + "name": "namespaces", + "type": "string", + "is_repeated": true + } + ] + } + ] + } + ] + } + } + ] +} \ No newline at end of file diff --git a/prototool.yaml b/prototool.yaml new file mode 100644 index 0000000000..57e67aac35 --- /dev/null +++ b/prototool.yaml @@ -0,0 +1,26 @@ +protoc: + # This is ignored because we always run with + # --protoc-bin-path=/usr/bin/protoc to use the protoc from our + # container + version: 3.6.1 + +lint: + # Linter files to ignore. + ignores: + - id: MESSAGE_FIELD_NAMES_LOWER_SNAKE_CASE + files: + - rbac/v1alpha1/rbac.proto + - id: ENUM_FIELD_NAMES_UPPER_SNAKE_CASE + files: + - networking/v1alpha3/gateway.proto + + # Linter rules. + rules: + # The specific linters to remove. + remove: + - FILE_OPTIONS_REQUIRE_JAVA_MULTIPLE_FILES + - FILE_OPTIONS_REQUIRE_JAVA_OUTER_CLASSNAME + - FILE_OPTIONS_REQUIRE_JAVA_PACKAGE + - FILE_OPTIONS_EQUAL_GO_PACKAGE_PB_SUFFIX + - ENUM_FIELD_PREFIXES + - ENUM_ZERO_VALUES_INVALID diff --git a/prow/api-presubmit.sh b/prow/api-presubmit.sh index b879e9803b..da4ece7da5 100755 --- a/prow/api-presubmit.sh +++ b/prow/api-presubmit.sh @@ -41,11 +41,13 @@ ROOT=$(dirname $WD) cd ${ROOT} ./scripts/generate-protos.sh || die "Could not generate *.pb.go" +make proto-commit || die "Could not commit new proto.lock" +make lint || die "Lint errors" if [[ -n $(git status --porcelain) ]]; then git status git diff - die "Repo has unstaged changes. Re-run ./scripts/generate-protos.sh" + die "Repo has unstaged changes. Re-run ./scripts/generate-protos.sh or make proto-commit" fi exit 0 diff --git a/python/istio_api/envoy/config/filter/network/tcp_cluster_rewrite/v2alpha1/config_pb2.py b/python/istio_api/envoy/config/filter/network/tcp_cluster_rewrite/v2alpha1/config_pb2.py new file mode 100644 index 0000000000..f88de6ad71 --- /dev/null +++ b/python/istio_api/envoy/config/filter/network/tcp_cluster_rewrite/v2alpha1/config_pb2.py @@ -0,0 +1,78 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: envoy/config/filter/network/tcp_cluster_rewrite/v2alpha1/config.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='envoy/config/filter/network/tcp_cluster_rewrite/v2alpha1/config.proto', + package='istio.envoy.config.filter.network.tcp_cluster_rewrite.v2alpha1', + syntax='proto3', + serialized_pb=_b('\nEenvoy/config/filter/network/tcp_cluster_rewrite/v2alpha1/config.proto\x12>istio.envoy.config.filter.network.tcp_cluster_rewrite.v2alpha1\"I\n\x11TcpClusterRewrite\x12\x17\n\x0f\x63luster_pattern\x18\x01 \x01(\t\x12\x1b\n\x13\x63luster_replacement\x18\x02 \x01(\tBGZEistio.io/api/envoy/config/filter/network/tcp_cluster_rewrite/v2alpha1b\x06proto3') +) + + + + +_TCPCLUSTERREWRITE = _descriptor.Descriptor( + name='TcpClusterRewrite', + full_name='istio.envoy.config.filter.network.tcp_cluster_rewrite.v2alpha1.TcpClusterRewrite', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='cluster_pattern', full_name='istio.envoy.config.filter.network.tcp_cluster_rewrite.v2alpha1.TcpClusterRewrite.cluster_pattern', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cluster_replacement', full_name='istio.envoy.config.filter.network.tcp_cluster_rewrite.v2alpha1.TcpClusterRewrite.cluster_replacement', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=137, + serialized_end=210, +) + +DESCRIPTOR.message_types_by_name['TcpClusterRewrite'] = _TCPCLUSTERREWRITE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +TcpClusterRewrite = _reflection.GeneratedProtocolMessageType('TcpClusterRewrite', (_message.Message,), dict( + DESCRIPTOR = _TCPCLUSTERREWRITE, + __module__ = 'envoy.config.filter.network.tcp_cluster_rewrite.v2alpha1.config_pb2' + # @@protoc_insertion_point(class_scope:istio.envoy.config.filter.network.tcp_cluster_rewrite.v2alpha1.TcpClusterRewrite) + )) +_sym_db.RegisterMessage(TcpClusterRewrite) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('ZEistio.io/api/envoy/config/filter/network/tcp_cluster_rewrite/v2alpha1')) +# @@protoc_insertion_point(module_scope) diff --git a/python/istio_api/mesh/v1alpha1/config_pb2.py b/python/istio_api/mesh/v1alpha1/config_pb2.py index c13f214454..e6fc3b9567 100644 --- a/python/istio_api/mesh/v1alpha1/config_pb2.py +++ b/python/istio_api/mesh/v1alpha1/config_pb2.py @@ -22,7 +22,7 @@ name='mesh/v1alpha1/config.proto', package='istio.mesh.v1alpha1', syntax='proto3', - serialized_pb=_b('\n\x1amesh/v1alpha1/config.proto\x12\x13istio.mesh.v1alpha1\x1a\x1egoogle/protobuf/duration.proto\x1a\x19mesh/v1alpha1/proxy.proto\x1a*networking/v1alpha3/destination_rule.proto\"\xeb\t\n\nMeshConfig\x12\x1a\n\x12mixer_check_server\x18\x01 \x01(\t\x12\x1b\n\x13mixer_report_server\x18\x02 \x01(\t\x12\x1d\n\x15\x64isable_policy_checks\x18\x03 \x01(\x08\x12\x1e\n\x16policy_check_fail_open\x18\x19 \x01(\x08\x12\x19\n\x11proxy_listen_port\x18\x04 \x01(\x05\x12\x17\n\x0fproxy_http_port\x18\x05 \x01(\x05\x12\x32\n\x0f\x63onnect_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x15\n\ringress_class\x18\x07 \x01(\t\x12\x17\n\x0fingress_service\x18\x08 \x01(\t\x12V\n\x17ingress_controller_mode\x18\t \x01(\x0e\x32\x35.istio.mesh.v1alpha1.MeshConfig.IngressControllerMode\x12\x43\n\x0b\x61uth_policy\x18\n \x01(\x0e\x32*.istio.mesh.v1alpha1.MeshConfig.AuthPolicyB\x02\x18\x01\x12\x38\n\x11rds_refresh_delay\x18\x0b \x01(\x0b\x32\x19.google.protobuf.DurationB\x02\x18\x01\x12\x16\n\x0e\x65nable_tracing\x18\x0c \x01(\x08\x12\x17\n\x0f\x61\x63\x63\x65ss_log_file\x18\r \x01(\t\x12\x19\n\x11\x61\x63\x63\x65ss_log_format\x18\x18 \x01(\t\x12\x38\n\x0e\x64\x65\x66\x61ult_config\x18\x0e \x01(\x0b\x32 .istio.mesh.v1alpha1.ProxyConfig\x12\x19\n\rmixer_address\x18\x10 \x01(\tB\x02\x18\x01\x12Z\n\x17outbound_traffic_policy\x18\x11 \x01(\x0b\x32\x35.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicyB\x02\x18\x01\x12\'\n\x1f\x65nable_client_side_policy_check\x18\x13 \x01(\x08\x12\x14\n\x0csds_uds_path\x18\x14 \x01(\t\x12\x38\n\x11sds_refresh_delay\x18\x15 \x01(\x0b\x32\x19.google.protobuf.DurationB\x02\x18\x01\x12\x39\n\x0e\x63onfig_sources\x18\x16 \x03(\x0b\x32!.istio.mesh.v1alpha1.ConfigSource\x12\x1e\n\x16\x65nable_sds_token_mount\x18\x17 \x01(\x08\x1a\xb5\x01\n\x15OutboundTrafficPolicy\x12L\n\x04mode\x18\x01 \x01(\x0e\x32:.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.ModeB\x02\x18\x01\"N\n\x04Mode\x12\x15\n\rREGISTRY_ONLY\x10\x00\x1a\x02\x08\x01\x12\x11\n\tALLOW_ANY\x10\x01\x1a\x02\x08\x01\x12\x1c\n\x14VIRTUAL_SERVICE_ONLY\x10\x02\x1a\x02\x08\x01\"9\n\x15IngressControllerMode\x12\x07\n\x03OFF\x10\x00\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x01\x12\n\n\x06STRICT\x10\x02\"&\n\nAuthPolicy\x12\x08\n\x04NONE\x10\x00\x12\x0e\n\nMUTUAL_TLS\x10\x01J\x04\x08\x0f\x10\x10J\x04\x08\x12\x10\x13\"]\n\x0c\x43onfigSource\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12<\n\x0ctls_settings\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.TLSSettingsB\x1cZ\x1aistio.io/api/mesh/v1alpha1b\x06proto3') + serialized_pb=_b('\n\x1amesh/v1alpha1/config.proto\x12\x13istio.mesh.v1alpha1\x1a\x1egoogle/protobuf/duration.proto\x1a\x19mesh/v1alpha1/proxy.proto\x1a*networking/v1alpha3/destination_rule.proto\"\x81\n\n\nMeshConfig\x12\x1a\n\x12mixer_check_server\x18\x01 \x01(\t\x12\x1b\n\x13mixer_report_server\x18\x02 \x01(\t\x12\x1d\n\x15\x64isable_policy_checks\x18\x03 \x01(\x08\x12\x1e\n\x16policy_check_fail_open\x18\x19 \x01(\x08\x12\x19\n\x11proxy_listen_port\x18\x04 \x01(\x05\x12\x17\n\x0fproxy_http_port\x18\x05 \x01(\x05\x12\x32\n\x0f\x63onnect_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x15\n\ringress_class\x18\x07 \x01(\t\x12\x17\n\x0fingress_service\x18\x08 \x01(\t\x12V\n\x17ingress_controller_mode\x18\t \x01(\x0e\x32\x35.istio.mesh.v1alpha1.MeshConfig.IngressControllerMode\x12\x43\n\x0b\x61uth_policy\x18\n \x01(\x0e\x32*.istio.mesh.v1alpha1.MeshConfig.AuthPolicyB\x02\x18\x01\x12\x38\n\x11rds_refresh_delay\x18\x0b \x01(\x0b\x32\x19.google.protobuf.DurationB\x02\x18\x01\x12\x16\n\x0e\x65nable_tracing\x18\x0c \x01(\x08\x12\x17\n\x0f\x61\x63\x63\x65ss_log_file\x18\r \x01(\t\x12\x19\n\x11\x61\x63\x63\x65ss_log_format\x18\x18 \x01(\t\x12\x38\n\x0e\x64\x65\x66\x61ult_config\x18\x0e \x01(\x0b\x32 .istio.mesh.v1alpha1.ProxyConfig\x12\x19\n\rmixer_address\x18\x10 \x01(\tB\x02\x18\x01\x12Z\n\x17outbound_traffic_policy\x18\x11 \x01(\x0b\x32\x35.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicyB\x02\x18\x01\x12\'\n\x1f\x65nable_client_side_policy_check\x18\x13 \x01(\x08\x12\x14\n\x0csds_uds_path\x18\x14 \x01(\t\x12\x38\n\x11sds_refresh_delay\x18\x15 \x01(\x0b\x32\x19.google.protobuf.DurationB\x02\x18\x01\x12\x39\n\x0e\x63onfig_sources\x18\x16 \x03(\x0b\x32!.istio.mesh.v1alpha1.ConfigSource\x12\x1e\n\x16\x65nable_sds_token_mount\x18\x17 \x01(\x08\x12\x14\n\x0ctrust_domain\x18\x1a \x01(\t\x1a\xb5\x01\n\x15OutboundTrafficPolicy\x12L\n\x04mode\x18\x01 \x01(\x0e\x32:.istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.ModeB\x02\x18\x01\"N\n\x04Mode\x12\x15\n\rREGISTRY_ONLY\x10\x00\x1a\x02\x08\x01\x12\x11\n\tALLOW_ANY\x10\x01\x1a\x02\x08\x01\x12\x1c\n\x14VIRTUAL_SERVICE_ONLY\x10\x02\x1a\x02\x08\x01\"9\n\x15IngressControllerMode\x12\x07\n\x03OFF\x10\x00\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x01\x12\n\n\x06STRICT\x10\x02\"&\n\nAuthPolicy\x12\x08\n\x04NONE\x10\x00\x12\x0e\n\nMUTUAL_TLS\x10\x01J\x04\x08\x0f\x10\x10J\x04\x08\x12\x10\x13\"]\n\x0c\x43onfigSource\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12<\n\x0ctls_settings\x18\x02 \x01(\x0b\x32&.istio.networking.v1alpha3.TLSSettingsB\x1cZ\x1aistio.io/api/mesh/v1alpha1b\x06proto3') , dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,mesh_dot_v1alpha1_dot_proxy__pb2.DESCRIPTOR,networking_dot_v1alpha3_dot_destination__rule__pb2.DESCRIPTOR,]) @@ -49,8 +49,8 @@ ], containing_type=None, options=None, - serialized_start=1225, - serialized_end=1303, + serialized_start=1247, + serialized_end=1325, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE) @@ -75,8 +75,8 @@ ], containing_type=None, options=None, - serialized_start=1305, - serialized_end=1362, + serialized_start=1327, + serialized_end=1384, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_INGRESSCONTROLLERMODE) @@ -97,8 +97,8 @@ ], containing_type=None, options=None, - serialized_start=1364, - serialized_end=1402, + serialized_start=1386, + serialized_end=1424, ) _sym_db.RegisterEnumDescriptor(_MESHCONFIG_AUTHPOLICY) @@ -130,8 +130,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1122, - serialized_end=1303, + serialized_start=1144, + serialized_end=1325, ) _MESHCONFIG = _descriptor.Descriptor( @@ -302,6 +302,13 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='trust_domain', full_name='istio.mesh.v1alpha1.MeshConfig.trust_domain', index=23, + number=26, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -317,7 +324,7 @@ oneofs=[ ], serialized_start=155, - serialized_end=1414, + serialized_end=1436, ) @@ -354,8 +361,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1416, - serialized_end=1509, + serialized_start=1438, + serialized_end=1531, ) _MESHCONFIG_OUTBOUNDTRAFFICPOLICY.fields_by_name['mode'].enum_type = _MESHCONFIG_OUTBOUNDTRAFFICPOLICY_MODE diff --git a/python/istio_api/mixer/v1/check_pb2.py b/python/istio_api/mixer/v1/mixer_pb2.py similarity index 86% rename from python/istio_api/mixer/v1/check_pb2.py rename to python/istio_api/mixer/v1/mixer_pb2.py index d4fbbd9c57..1741dfbdb7 100644 --- a/python/istio_api/mixer/v1/check_pb2.py +++ b/python/istio_api/mixer/v1/mixer_pb2.py @@ -1,5 +1,5 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! -# source: mixer/v1/check.proto +# source: mixer/v1/mixer.proto import sys _b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) @@ -20,10 +20,10 @@ DESCRIPTOR = _descriptor.FileDescriptor( - name='mixer/v1/check.proto', + name='mixer/v1/mixer.proto', package='istio.mixer.v1', syntax='proto3', - serialized_pb=_b('\n\x14mixer/v1/check.proto\x12\x0eistio.mixer.v1\x1a\x14gogoproto/gogo.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x17google/rpc/status.proto\x1a\x19mixer/v1/attributes.proto\"\xd0\x02\n\x0c\x43heckRequest\x12>\n\nattributes\x18\x01 \x01(\x0b\x32$.istio.mixer.v1.CompressedAttributesB\x04\xc8\xde\x1f\x00\x12\x19\n\x11global_word_count\x18\x02 \x01(\r\x12\x18\n\x10\x64\x65\x64uplication_id\x18\x03 \x01(\t\x12>\n\x06quotas\x18\x04 \x03(\x0b\x32(.istio.mixer.v1.CheckRequest.QuotasEntryB\x04\xc8\xde\x1f\x00\x1a\x32\n\x0bQuotaParams\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x03\x12\x13\n\x0b\x62\x65st_effort\x18\x02 \x01(\x08\x1aW\n\x0bQuotasEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x37\n\x05value\x18\x02 \x01(\x0b\x32(.istio.mixer.v1.CheckRequest.QuotaParams:\x02\x38\x01\"\xc3\x05\n\rCheckResponse\x12L\n\x0cprecondition\x18\x02 \x01(\x0b\x32\x30.istio.mixer.v1.CheckResponse.PreconditionResultB\x04\xc8\xde\x1f\x00\x12?\n\x06quotas\x18\x03 \x03(\x0b\x32).istio.mixer.v1.CheckResponse.QuotasEntryB\x04\xc8\xde\x1f\x00\x1a\x98\x02\n\x12PreconditionResult\x12(\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.StatusB\x04\xc8\xde\x1f\x00\x12;\n\x0evalid_duration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01\x12\x17\n\x0fvalid_use_count\x18\x03 \x01(\x05\x12\x43\n\x15referenced_attributes\x18\x05 \x01(\x0b\x32$.istio.mixer.v1.ReferencedAttributes\x12\x37\n\x0froute_directive\x18\x06 \x01(\x0b\x32\x1e.istio.mixer.v1.RouteDirectiveJ\x04\x08\x04\x10\x05\x1a\xad\x01\n\x0bQuotaResult\x12;\n\x0evalid_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01\x12\x16\n\x0egranted_amount\x18\x02 \x01(\x03\x12I\n\x15referenced_attributes\x18\x05 \x01(\x0b\x32$.istio.mixer.v1.ReferencedAttributesB\x04\xc8\xde\x1f\x00\x1aX\n\x0bQuotasEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32).istio.mixer.v1.CheckResponse.QuotaResult:\x02\x38\x01\"\xca\x02\n\x14ReferencedAttributes\x12\r\n\x05words\x18\x01 \x03(\t\x12T\n\x11\x61ttribute_matches\x18\x02 \x03(\x0b\x32\x33.istio.mixer.v1.ReferencedAttributes.AttributeMatchB\x04\xc8\xde\x1f\x00\x1a\x81\x01\n\x0e\x41ttributeMatch\x12\x0c\n\x04name\x18\x01 \x01(\x11\x12\x41\n\tcondition\x18\x02 \x01(\x0e\x32..istio.mixer.v1.ReferencedAttributes.Condition\x12\r\n\x05regex\x18\x03 \x01(\t\x12\x0f\n\x07map_key\x18\x04 \x01(\x11\"I\n\tCondition\x12\x19\n\x15\x43ONDITION_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x41\x42SENCE\x10\x01\x12\t\n\x05\x45XACT\x10\x02\x12\t\n\x05REGEX\x10\x03\"\x9e\x01\n\x0fHeaderOperation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x12<\n\toperation\x18\x03 \x01(\x0e\x32).istio.mixer.v1.HeaderOperation.Operation\"0\n\tOperation\x12\x0b\n\x07REPLACE\x10\x00\x12\n\n\x06REMOVE\x10\x01\x12\n\n\x06\x41PPEND\x10\x02\"\xe1\x01\n\x0eRouteDirective\x12H\n\x19request_header_operations\x18\x01 \x03(\x0b\x32\x1f.istio.mixer.v1.HeaderOperationB\x04\xc8\xde\x1f\x00\x12I\n\x1aresponse_header_operations\x18\x02 \x03(\x0b\x32\x1f.istio.mixer.v1.HeaderOperationB\x04\xc8\xde\x1f\x00\x12\x1c\n\x14\x64irect_response_code\x18\x03 \x01(\r\x12\x1c\n\x14\x64irect_response_body\x18\x04 \x01(\tB&Z\x15istio.io/api/mixer/v1\xf8\x01\x01\xc8\xe1\x1e\x00\xa8\xe2\x1e\x00\xf0\xe1\x1e\x00\x62\x06proto3') + serialized_pb=_b('\n\x14mixer/v1/mixer.proto\x12\x0eistio.mixer.v1\x1a\x14gogoproto/gogo.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x17google/rpc/status.proto\x1a\x19mixer/v1/attributes.proto\"\xd0\x02\n\x0c\x43heckRequest\x12>\n\nattributes\x18\x01 \x01(\x0b\x32$.istio.mixer.v1.CompressedAttributesB\x04\xc8\xde\x1f\x00\x12\x19\n\x11global_word_count\x18\x02 \x01(\r\x12\x18\n\x10\x64\x65\x64uplication_id\x18\x03 \x01(\t\x12>\n\x06quotas\x18\x04 \x03(\x0b\x32(.istio.mixer.v1.CheckRequest.QuotasEntryB\x04\xc8\xde\x1f\x00\x1a\x32\n\x0bQuotaParams\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x03\x12\x13\n\x0b\x62\x65st_effort\x18\x02 \x01(\x08\x1aW\n\x0bQuotasEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x37\n\x05value\x18\x02 \x01(\x0b\x32(.istio.mixer.v1.CheckRequest.QuotaParams:\x02\x38\x01\"\xc3\x05\n\rCheckResponse\x12L\n\x0cprecondition\x18\x02 \x01(\x0b\x32\x30.istio.mixer.v1.CheckResponse.PreconditionResultB\x04\xc8\xde\x1f\x00\x12?\n\x06quotas\x18\x03 \x03(\x0b\x32).istio.mixer.v1.CheckResponse.QuotasEntryB\x04\xc8\xde\x1f\x00\x1a\x98\x02\n\x12PreconditionResult\x12(\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.StatusB\x04\xc8\xde\x1f\x00\x12;\n\x0evalid_duration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01\x12\x17\n\x0fvalid_use_count\x18\x03 \x01(\x05\x12\x43\n\x15referenced_attributes\x18\x05 \x01(\x0b\x32$.istio.mixer.v1.ReferencedAttributes\x12\x37\n\x0froute_directive\x18\x06 \x01(\x0b\x32\x1e.istio.mixer.v1.RouteDirectiveJ\x04\x08\x04\x10\x05\x1a\xad\x01\n\x0bQuotaResult\x12;\n\x0evalid_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01\x12\x16\n\x0egranted_amount\x18\x02 \x01(\x03\x12I\n\x15referenced_attributes\x18\x05 \x01(\x0b\x32$.istio.mixer.v1.ReferencedAttributesB\x04\xc8\xde\x1f\x00\x1aX\n\x0bQuotasEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32).istio.mixer.v1.CheckResponse.QuotaResult:\x02\x38\x01\"\xca\x02\n\x14ReferencedAttributes\x12\r\n\x05words\x18\x01 \x03(\t\x12T\n\x11\x61ttribute_matches\x18\x02 \x03(\x0b\x32\x33.istio.mixer.v1.ReferencedAttributes.AttributeMatchB\x04\xc8\xde\x1f\x00\x1a\x81\x01\n\x0e\x41ttributeMatch\x12\x0c\n\x04name\x18\x01 \x01(\x11\x12\x41\n\tcondition\x18\x02 \x01(\x0e\x32..istio.mixer.v1.ReferencedAttributes.Condition\x12\r\n\x05regex\x18\x03 \x01(\t\x12\x0f\n\x07map_key\x18\x04 \x01(\x11\"I\n\tCondition\x12\x19\n\x15\x43ONDITION_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x41\x42SENCE\x10\x01\x12\t\n\x05\x45XACT\x10\x02\x12\t\n\x05REGEX\x10\x03\"\x9e\x01\n\x0fHeaderOperation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x12<\n\toperation\x18\x03 \x01(\x0e\x32).istio.mixer.v1.HeaderOperation.Operation\"0\n\tOperation\x12\x0b\n\x07REPLACE\x10\x00\x12\n\n\x06REMOVE\x10\x01\x12\n\n\x06\x41PPEND\x10\x02\"\xe1\x01\n\x0eRouteDirective\x12H\n\x19request_header_operations\x18\x01 \x03(\x0b\x32\x1f.istio.mixer.v1.HeaderOperationB\x04\xc8\xde\x1f\x00\x12I\n\x1aresponse_header_operations\x18\x02 \x03(\x0b\x32\x1f.istio.mixer.v1.HeaderOperationB\x04\xc8\xde\x1f\x00\x12\x1c\n\x14\x64irect_response_code\x18\x03 \x01(\r\x12\x1c\n\x14\x64irect_response_body\x18\x04 \x01(\t\"\x81\x01\n\rReportRequest\x12>\n\nattributes\x18\x01 \x03(\x0b\x32$.istio.mixer.v1.CompressedAttributesB\x04\xc8\xde\x1f\x00\x12\x15\n\rdefault_words\x18\x02 \x03(\t\x12\x19\n\x11global_word_count\x18\x03 \x01(\r\"\x10\n\x0eReportResponse2\x9a\x01\n\x05Mixer\x12\x46\n\x05\x43heck\x12\x1c.istio.mixer.v1.CheckRequest\x1a\x1d.istio.mixer.v1.CheckResponse\"\x00\x12I\n\x06Report\x12\x1d.istio.mixer.v1.ReportRequest\x1a\x1e.istio.mixer.v1.ReportResponse\"\x00\x42)Z\x15istio.io/api/mixer/v1\x80\x01\x01\xf8\x01\x01\xc8\xe1\x1e\x00\xa8\xe2\x1e\x00\xf0\xe1\x1e\x00\x62\x06proto3') , dependencies=[gogoproto_dot_gogo__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,mixer_dot_v1_dot_attributes__pb2.DESCRIPTOR,]) @@ -576,6 +576,75 @@ serialized_end=1915, ) + +_REPORTREQUEST = _descriptor.Descriptor( + name='ReportRequest', + full_name='istio.mixer.v1.ReportRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='attributes', full_name='istio.mixer.v1.ReportRequest.attributes', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000')), file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='default_words', full_name='istio.mixer.v1.ReportRequest.default_words', index=1, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='global_word_count', full_name='istio.mixer.v1.ReportRequest.global_word_count', index=2, + number=3, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1918, + serialized_end=2047, +) + + +_REPORTRESPONSE = _descriptor.Descriptor( + name='ReportResponse', + full_name='istio.mixer.v1.ReportResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2049, + serialized_end=2065, +) + _CHECKREQUEST_QUOTAPARAMS.containing_type = _CHECKREQUEST _CHECKREQUEST_QUOTASENTRY.fields_by_name['value'].message_type = _CHECKREQUEST_QUOTAPARAMS _CHECKREQUEST_QUOTASENTRY.containing_type = _CHECKREQUEST @@ -601,30 +670,33 @@ _HEADEROPERATION_OPERATION.containing_type = _HEADEROPERATION _ROUTEDIRECTIVE.fields_by_name['request_header_operations'].message_type = _HEADEROPERATION _ROUTEDIRECTIVE.fields_by_name['response_header_operations'].message_type = _HEADEROPERATION +_REPORTREQUEST.fields_by_name['attributes'].message_type = mixer_dot_v1_dot_attributes__pb2._COMPRESSEDATTRIBUTES DESCRIPTOR.message_types_by_name['CheckRequest'] = _CHECKREQUEST DESCRIPTOR.message_types_by_name['CheckResponse'] = _CHECKRESPONSE DESCRIPTOR.message_types_by_name['ReferencedAttributes'] = _REFERENCEDATTRIBUTES DESCRIPTOR.message_types_by_name['HeaderOperation'] = _HEADEROPERATION DESCRIPTOR.message_types_by_name['RouteDirective'] = _ROUTEDIRECTIVE +DESCRIPTOR.message_types_by_name['ReportRequest'] = _REPORTREQUEST +DESCRIPTOR.message_types_by_name['ReportResponse'] = _REPORTRESPONSE _sym_db.RegisterFileDescriptor(DESCRIPTOR) CheckRequest = _reflection.GeneratedProtocolMessageType('CheckRequest', (_message.Message,), dict( QuotaParams = _reflection.GeneratedProtocolMessageType('QuotaParams', (_message.Message,), dict( DESCRIPTOR = _CHECKREQUEST_QUOTAPARAMS, - __module__ = 'mixer.v1.check_pb2' + __module__ = 'mixer.v1.mixer_pb2' # @@protoc_insertion_point(class_scope:istio.mixer.v1.CheckRequest.QuotaParams) )) , QuotasEntry = _reflection.GeneratedProtocolMessageType('QuotasEntry', (_message.Message,), dict( DESCRIPTOR = _CHECKREQUEST_QUOTASENTRY, - __module__ = 'mixer.v1.check_pb2' + __module__ = 'mixer.v1.mixer_pb2' # @@protoc_insertion_point(class_scope:istio.mixer.v1.CheckRequest.QuotasEntry) )) , DESCRIPTOR = _CHECKREQUEST, - __module__ = 'mixer.v1.check_pb2' + __module__ = 'mixer.v1.mixer_pb2' # @@protoc_insertion_point(class_scope:istio.mixer.v1.CheckRequest) )) _sym_db.RegisterMessage(CheckRequest) @@ -635,26 +707,26 @@ PreconditionResult = _reflection.GeneratedProtocolMessageType('PreconditionResult', (_message.Message,), dict( DESCRIPTOR = _CHECKRESPONSE_PRECONDITIONRESULT, - __module__ = 'mixer.v1.check_pb2' + __module__ = 'mixer.v1.mixer_pb2' # @@protoc_insertion_point(class_scope:istio.mixer.v1.CheckResponse.PreconditionResult) )) , QuotaResult = _reflection.GeneratedProtocolMessageType('QuotaResult', (_message.Message,), dict( DESCRIPTOR = _CHECKRESPONSE_QUOTARESULT, - __module__ = 'mixer.v1.check_pb2' + __module__ = 'mixer.v1.mixer_pb2' # @@protoc_insertion_point(class_scope:istio.mixer.v1.CheckResponse.QuotaResult) )) , QuotasEntry = _reflection.GeneratedProtocolMessageType('QuotasEntry', (_message.Message,), dict( DESCRIPTOR = _CHECKRESPONSE_QUOTASENTRY, - __module__ = 'mixer.v1.check_pb2' + __module__ = 'mixer.v1.mixer_pb2' # @@protoc_insertion_point(class_scope:istio.mixer.v1.CheckResponse.QuotasEntry) )) , DESCRIPTOR = _CHECKRESPONSE, - __module__ = 'mixer.v1.check_pb2' + __module__ = 'mixer.v1.mixer_pb2' # @@protoc_insertion_point(class_scope:istio.mixer.v1.CheckResponse) )) _sym_db.RegisterMessage(CheckResponse) @@ -666,12 +738,12 @@ AttributeMatch = _reflection.GeneratedProtocolMessageType('AttributeMatch', (_message.Message,), dict( DESCRIPTOR = _REFERENCEDATTRIBUTES_ATTRIBUTEMATCH, - __module__ = 'mixer.v1.check_pb2' + __module__ = 'mixer.v1.mixer_pb2' # @@protoc_insertion_point(class_scope:istio.mixer.v1.ReferencedAttributes.AttributeMatch) )) , DESCRIPTOR = _REFERENCEDATTRIBUTES, - __module__ = 'mixer.v1.check_pb2' + __module__ = 'mixer.v1.mixer_pb2' # @@protoc_insertion_point(class_scope:istio.mixer.v1.ReferencedAttributes) )) _sym_db.RegisterMessage(ReferencedAttributes) @@ -679,21 +751,35 @@ HeaderOperation = _reflection.GeneratedProtocolMessageType('HeaderOperation', (_message.Message,), dict( DESCRIPTOR = _HEADEROPERATION, - __module__ = 'mixer.v1.check_pb2' + __module__ = 'mixer.v1.mixer_pb2' # @@protoc_insertion_point(class_scope:istio.mixer.v1.HeaderOperation) )) _sym_db.RegisterMessage(HeaderOperation) RouteDirective = _reflection.GeneratedProtocolMessageType('RouteDirective', (_message.Message,), dict( DESCRIPTOR = _ROUTEDIRECTIVE, - __module__ = 'mixer.v1.check_pb2' + __module__ = 'mixer.v1.mixer_pb2' # @@protoc_insertion_point(class_scope:istio.mixer.v1.RouteDirective) )) _sym_db.RegisterMessage(RouteDirective) +ReportRequest = _reflection.GeneratedProtocolMessageType('ReportRequest', (_message.Message,), dict( + DESCRIPTOR = _REPORTREQUEST, + __module__ = 'mixer.v1.mixer_pb2' + # @@protoc_insertion_point(class_scope:istio.mixer.v1.ReportRequest) + )) +_sym_db.RegisterMessage(ReportRequest) + +ReportResponse = _reflection.GeneratedProtocolMessageType('ReportResponse', (_message.Message,), dict( + DESCRIPTOR = _REPORTRESPONSE, + __module__ = 'mixer.v1.mixer_pb2' + # @@protoc_insertion_point(class_scope:istio.mixer.v1.ReportResponse) + )) +_sym_db.RegisterMessage(ReportResponse) + DESCRIPTOR.has_options = True -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\025istio.io/api/mixer/v1\370\001\001\310\341\036\000\250\342\036\000\360\341\036\000')) +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\025istio.io/api/mixer/v1\200\001\001\370\001\001\310\341\036\000\250\342\036\000\360\341\036\000')) _CHECKREQUEST_QUOTASENTRY.has_options = True _CHECKREQUEST_QUOTASENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) _CHECKREQUEST.fields_by_name['attributes'].has_options = True @@ -720,4 +806,39 @@ _ROUTEDIRECTIVE.fields_by_name['request_header_operations']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000')) _ROUTEDIRECTIVE.fields_by_name['response_header_operations'].has_options = True _ROUTEDIRECTIVE.fields_by_name['response_header_operations']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000')) +_REPORTREQUEST.fields_by_name['attributes'].has_options = True +_REPORTREQUEST.fields_by_name['attributes']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000')) + +_MIXER = _descriptor.ServiceDescriptor( + name='Mixer', + full_name='istio.mixer.v1.Mixer', + file=DESCRIPTOR, + index=0, + options=None, + serialized_start=2068, + serialized_end=2222, + methods=[ + _descriptor.MethodDescriptor( + name='Check', + full_name='istio.mixer.v1.Mixer.Check', + index=0, + containing_service=None, + input_type=_CHECKREQUEST, + output_type=_CHECKRESPONSE, + options=None, + ), + _descriptor.MethodDescriptor( + name='Report', + full_name='istio.mixer.v1.Mixer.Report', + index=1, + containing_service=None, + input_type=_REPORTREQUEST, + output_type=_REPORTRESPONSE, + options=None, + ), +]) +_sym_db.RegisterServiceDescriptor(_MIXER) + +DESCRIPTOR.services_by_name['Mixer'] = _MIXER + # @@protoc_insertion_point(module_scope) diff --git a/python/istio_api/mixer/v1/report_pb2.py b/python/istio_api/mixer/v1/report_pb2.py deleted file mode 100644 index fa8527dc4a..0000000000 --- a/python/istio_api/mixer/v1/report_pb2.py +++ /dev/null @@ -1,123 +0,0 @@ -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: mixer/v1/report.proto - -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -from google.protobuf import descriptor_pb2 -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 -from mixer.v1 import attributes_pb2 as mixer_dot_v1_dot_attributes__pb2 - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='mixer/v1/report.proto', - package='istio.mixer.v1', - syntax='proto3', - serialized_pb=_b('\n\x15mixer/v1/report.proto\x12\x0eistio.mixer.v1\x1a\x14gogoproto/gogo.proto\x1a\x19mixer/v1/attributes.proto\"\x81\x01\n\rReportRequest\x12>\n\nattributes\x18\x01 \x03(\x0b\x32$.istio.mixer.v1.CompressedAttributesB\x04\xc8\xde\x1f\x00\x12\x15\n\rdefault_words\x18\x02 \x03(\t\x12\x19\n\x11global_word_count\x18\x03 \x01(\r\"\x10\n\x0eReportResponseB&Z\x15istio.io/api/mixer/v1\xf8\x01\x01\xc8\xe1\x1e\x00\xa8\xe2\x1e\x00\xf0\xe1\x1e\x00\x62\x06proto3') - , - dependencies=[gogoproto_dot_gogo__pb2.DESCRIPTOR,mixer_dot_v1_dot_attributes__pb2.DESCRIPTOR,]) - - - - -_REPORTREQUEST = _descriptor.Descriptor( - name='ReportRequest', - full_name='istio.mixer.v1.ReportRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='attributes', full_name='istio.mixer.v1.ReportRequest.attributes', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000')), file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='default_words', full_name='istio.mixer.v1.ReportRequest.default_words', index=1, - number=2, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='global_word_count', full_name='istio.mixer.v1.ReportRequest.global_word_count', index=2, - number=3, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=91, - serialized_end=220, -) - - -_REPORTRESPONSE = _descriptor.Descriptor( - name='ReportResponse', - full_name='istio.mixer.v1.ReportResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=222, - serialized_end=238, -) - -_REPORTREQUEST.fields_by_name['attributes'].message_type = mixer_dot_v1_dot_attributes__pb2._COMPRESSEDATTRIBUTES -DESCRIPTOR.message_types_by_name['ReportRequest'] = _REPORTREQUEST -DESCRIPTOR.message_types_by_name['ReportResponse'] = _REPORTRESPONSE -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -ReportRequest = _reflection.GeneratedProtocolMessageType('ReportRequest', (_message.Message,), dict( - DESCRIPTOR = _REPORTREQUEST, - __module__ = 'mixer.v1.report_pb2' - # @@protoc_insertion_point(class_scope:istio.mixer.v1.ReportRequest) - )) -_sym_db.RegisterMessage(ReportRequest) - -ReportResponse = _reflection.GeneratedProtocolMessageType('ReportResponse', (_message.Message,), dict( - DESCRIPTOR = _REPORTRESPONSE, - __module__ = 'mixer.v1.report_pb2' - # @@protoc_insertion_point(class_scope:istio.mixer.v1.ReportResponse) - )) -_sym_db.RegisterMessage(ReportResponse) - - -DESCRIPTOR.has_options = True -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\025istio.io/api/mixer/v1\370\001\001\310\341\036\000\250\342\036\000\360\341\036\000')) -_REPORTREQUEST.fields_by_name['attributes'].has_options = True -_REPORTREQUEST.fields_by_name['attributes']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000')) -# @@protoc_insertion_point(module_scope) diff --git a/python/istio_api/mixer/v1/service_pb2.py b/python/istio_api/mixer/v1/service_pb2.py deleted file mode 100644 index b58970d080..0000000000 --- a/python/istio_api/mixer/v1/service_pb2.py +++ /dev/null @@ -1,68 +0,0 @@ -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: mixer/v1/service.proto - -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -from google.protobuf import descriptor_pb2 -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from mixer.v1 import check_pb2 as mixer_dot_v1_dot_check__pb2 -from mixer.v1 import report_pb2 as mixer_dot_v1_dot_report__pb2 - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='mixer/v1/service.proto', - package='istio.mixer.v1', - syntax='proto3', - serialized_pb=_b('\n\x16mixer/v1/service.proto\x12\x0eistio.mixer.v1\x1a\x14mixer/v1/check.proto\x1a\x15mixer/v1/report.proto2\x9a\x01\n\x05Mixer\x12\x46\n\x05\x43heck\x12\x1c.istio.mixer.v1.CheckRequest\x1a\x1d.istio.mixer.v1.CheckResponse\"\x00\x12I\n\x06Report\x12\x1d.istio.mixer.v1.ReportRequest\x1a\x1e.istio.mixer.v1.ReportResponse\"\x00\x42\x1aZ\x15istio.io/api/mixer/v1\x80\x01\x01\x62\x06proto3') - , - dependencies=[mixer_dot_v1_dot_check__pb2.DESCRIPTOR,mixer_dot_v1_dot_report__pb2.DESCRIPTOR,]) - - - -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - - -DESCRIPTOR.has_options = True -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\025istio.io/api/mixer/v1\200\001\001')) - -_MIXER = _descriptor.ServiceDescriptor( - name='Mixer', - full_name='istio.mixer.v1.Mixer', - file=DESCRIPTOR, - index=0, - options=None, - serialized_start=88, - serialized_end=242, - methods=[ - _descriptor.MethodDescriptor( - name='Check', - full_name='istio.mixer.v1.Mixer.Check', - index=0, - containing_service=None, - input_type=mixer_dot_v1_dot_check__pb2._CHECKREQUEST, - output_type=mixer_dot_v1_dot_check__pb2._CHECKRESPONSE, - options=None, - ), - _descriptor.MethodDescriptor( - name='Report', - full_name='istio.mixer.v1.Mixer.Report', - index=1, - containing_service=None, - input_type=mixer_dot_v1_dot_report__pb2._REPORTREQUEST, - output_type=mixer_dot_v1_dot_report__pb2._REPORTRESPONSE, - options=None, - ), -]) -_sym_db.RegisterServiceDescriptor(_MIXER) - -DESCRIPTOR.services_by_name['Mixer'] = _MIXER - -# @@protoc_insertion_point(module_scope) diff --git a/python/istio_api/policy/v1beta1/cfg_pb2.py b/python/istio_api/policy/v1beta1/cfg_pb2.py index ee38377654..10627fd188 100644 --- a/python/istio_api/policy/v1beta1/cfg_pb2.py +++ b/python/istio_api/policy/v1beta1/cfg_pb2.py @@ -23,7 +23,7 @@ name='policy/v1beta1/cfg.proto', package='istio.policy.v1beta1', syntax='proto3', - serialized_pb=_b('\n\x18policy/v1beta1/cfg.proto\x12\x14istio.policy.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fpolicy/v1beta1/value_type.proto\"\xc5\x02\n\x11\x41ttributeManifest\x12\x10\n\x08revision\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12K\n\nattributes\x18\x03 \x03(\x0b\x32\x37.istio.policy.v1beta1.AttributeManifest.AttributesEntry\x1aY\n\rAttributeInfo\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12\x33\n\nvalue_type\x18\x02 \x01(\x0e\x32\x1f.istio.policy.v1beta1.ValueType\x1ah\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x44\n\x05value\x18\x02 \x01(\x0b\x32\x35.istio.policy.v1beta1.AttributeManifest.AttributeInfo:\x02\x38\x01\"\xe2\x03\n\x04Rule\x12\r\n\x05match\x18\x01 \x01(\t\x12-\n\x07\x61\x63tions\x18\x02 \x03(\x0b\x32\x1c.istio.policy.v1beta1.Action\x12U\n\x19request_header_operations\x18\x03 \x03(\x0b\x32\x32.istio.policy.v1beta1.Rule.HeaderOperationTemplate\x12V\n\x1aresponse_header_operations\x18\x04 \x03(\x0b\x32\x32.istio.policy.v1beta1.Rule.HeaderOperationTemplate\x12\x30\n\x08sampling\x18\x05 \x01(\x0b\x32\x1e.istio.policy.v1beta1.Sampling\x1a\xba\x01\n\x17HeaderOperationTemplate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06values\x18\x02 \x03(\t\x12O\n\toperation\x18\x03 \x01(\x0e\x32<.istio.policy.v1beta1.Rule.HeaderOperationTemplate.Operation\"0\n\tOperation\x12\x0b\n\x07REPLACE\x10\x00\x12\n\n\x06REMOVE\x10\x01\x12\n\n\x06\x41PPEND\x10\x02\":\n\x06\x41\x63tion\x12\x0f\n\x07handler\x18\x02 \x01(\t\x12\x11\n\tinstances\x18\x03 \x03(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\"\xfe\x01\n\x08Instance\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1c\n\x11\x63ompiled_template\x18\xf4\xed\xa9 \x01(\t\x12\x10\n\x08template\x18\x02 \x01(\t\x12\'\n\x06params\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12Q\n\x12\x61ttribute_bindings\x18\x04 \x03(\x0b\x32\x35.istio.policy.v1beta1.Instance.AttributeBindingsEntry\x1a\x38\n\x16\x41ttributeBindingsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa4\x01\n\x07Handler\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1b\n\x10\x63ompiled_adapter\x18\xf4\xed\xa9 \x01(\t\x12\x0f\n\x07\x61\x64\x61pter\x18\x02 \x01(\t\x12\'\n\x06params\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x34\n\nconnection\x18\x04 \x01(\x0b\x32 .istio.policy.v1beta1.Connection\"I\n\nConnection\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12*\n\x07timeout\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\"}\n\x08Sampling\x12\x34\n\x06random\x18\x01 \x01(\x0b\x32$.istio.policy.v1beta1.RandomSampling\x12;\n\nrate_limit\x18\x02 \x01(\x0b\x32\'.istio.policy.v1beta1.RateLimitSampling\"\x94\x01\n\x0eRandomSampling\x12\x1c\n\x14\x61ttribute_expression\x18\x01 \x01(\t\x12@\n\x0fpercent_sampled\x18\x02 \x01(\x0b\x32\'.istio.policy.v1beta1.FractionalPercent\x12\"\n\x1ause_independent_randomness\x18\x03 \x01(\x08\"\x89\x01\n\x11RateLimitSampling\x12>\n\x11sampling_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01\x12\x1d\n\x15max_unsampled_entries\x18\x02 \x01(\x03\x12\x15\n\rsampling_rate\x18\x03 \x01(\x03\"\xa6\x01\n\x11\x46ractionalPercent\x12\x11\n\tnumerator\x18\x01 \x01(\r\x12L\n\x0b\x64\x65nominator\x18\x02 \x01(\x0e\x32\x37.istio.policy.v1beta1.FractionalPercent.DenominatorType\"0\n\x0f\x44\x65nominatorType\x12\x0b\n\x07HUNDRED\x10\x00\x12\x10\n\x0cTEN_THOUSAND\x10\x01\x42\x1dZ\x1bistio.io/api/policy/v1beta1b\x06proto3') + serialized_pb=_b('\n\x18policy/v1beta1/cfg.proto\x12\x14istio.policy.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fpolicy/v1beta1/value_type.proto\"\xc5\x02\n\x11\x41ttributeManifest\x12\x10\n\x08revision\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12K\n\nattributes\x18\x03 \x03(\x0b\x32\x37.istio.policy.v1beta1.AttributeManifest.AttributesEntry\x1aY\n\rAttributeInfo\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12\x33\n\nvalue_type\x18\x02 \x01(\x0e\x32\x1f.istio.policy.v1beta1.ValueType\x1ah\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x44\n\x05value\x18\x02 \x01(\x0b\x32\x35.istio.policy.v1beta1.AttributeManifest.AttributeInfo:\x02\x38\x01\"\xe2\x03\n\x04Rule\x12\r\n\x05match\x18\x01 \x01(\t\x12-\n\x07\x61\x63tions\x18\x02 \x03(\x0b\x32\x1c.istio.policy.v1beta1.Action\x12U\n\x19request_header_operations\x18\x03 \x03(\x0b\x32\x32.istio.policy.v1beta1.Rule.HeaderOperationTemplate\x12V\n\x1aresponse_header_operations\x18\x04 \x03(\x0b\x32\x32.istio.policy.v1beta1.Rule.HeaderOperationTemplate\x12\x30\n\x08sampling\x18\x05 \x01(\x0b\x32\x1e.istio.policy.v1beta1.Sampling\x1a\xba\x01\n\x17HeaderOperationTemplate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06values\x18\x02 \x03(\t\x12O\n\toperation\x18\x03 \x01(\x0e\x32<.istio.policy.v1beta1.Rule.HeaderOperationTemplate.Operation\"0\n\tOperation\x12\x0b\n\x07REPLACE\x10\x00\x12\n\n\x06REMOVE\x10\x01\x12\n\n\x06\x41PPEND\x10\x02\":\n\x06\x41\x63tion\x12\x0f\n\x07handler\x18\x02 \x01(\t\x12\x11\n\tinstances\x18\x03 \x03(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\"\xfe\x01\n\x08Instance\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1c\n\x11\x63ompiled_template\x18\xf4\xed\xa9 \x01(\t\x12\x10\n\x08template\x18\x02 \x01(\t\x12\'\n\x06params\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12Q\n\x12\x61ttribute_bindings\x18\x04 \x03(\x0b\x32\x35.istio.policy.v1beta1.Instance.AttributeBindingsEntry\x1a\x38\n\x16\x41ttributeBindingsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa4\x01\n\x07Handler\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1b\n\x10\x63ompiled_adapter\x18\xf4\xed\xa9 \x01(\t\x12\x0f\n\x07\x61\x64\x61pter\x18\x02 \x01(\t\x12\'\n\x06params\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x34\n\nconnection\x18\x04 \x01(\x0b\x32 .istio.policy.v1beta1.Connection\"O\n\nConnection\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x30\n\x07timeout\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x04\x98\xdf\x1f\x01\"}\n\x08Sampling\x12\x34\n\x06random\x18\x01 \x01(\x0b\x32$.istio.policy.v1beta1.RandomSampling\x12;\n\nrate_limit\x18\x02 \x01(\x0b\x32\'.istio.policy.v1beta1.RateLimitSampling\"\x94\x01\n\x0eRandomSampling\x12\x1c\n\x14\x61ttribute_expression\x18\x01 \x01(\t\x12@\n\x0fpercent_sampled\x18\x02 \x01(\x0b\x32\'.istio.policy.v1beta1.FractionalPercent\x12\"\n\x1ause_independent_randomness\x18\x03 \x01(\x08\"\x89\x01\n\x11RateLimitSampling\x12>\n\x11sampling_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01\x12\x1d\n\x15max_unsampled_entries\x18\x02 \x01(\x03\x12\x15\n\rsampling_rate\x18\x03 \x01(\x03\"\xa6\x01\n\x11\x46ractionalPercent\x12\x11\n\tnumerator\x18\x01 \x01(\r\x12L\n\x0b\x64\x65nominator\x18\x02 \x01(\x0e\x32\x37.istio.policy.v1beta1.FractionalPercent.DenominatorType\"0\n\x0f\x44\x65nominatorType\x12\x0b\n\x07HUNDRED\x10\x00\x12\x10\n\x0cTEN_THOUSAND\x10\x01\x42\x1dZ\x1bistio.io/api/policy/v1beta1b\x06proto3') , dependencies=[gogoproto_dot_gogo__pb2.DESCRIPTOR,google_dot_protobuf_dot_struct__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,policy_dot_v1beta1_dot_value__type__pb2.DESCRIPTOR,]) @@ -72,8 +72,8 @@ ], containing_type=None, options=None, - serialized_start=2076, - serialized_end=2124, + serialized_start=2082, + serialized_end=2130, ) _sym_db.RegisterEnumDescriptor(_FRACTIONALPERCENT_DENOMINATORTYPE) @@ -521,7 +521,7 @@ has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - options=None, file=DESCRIPTOR), + options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\230\337\037\001')), file=DESCRIPTOR), ], extensions=[ ], @@ -535,7 +535,7 @@ oneofs=[ ], serialized_start=1464, - serialized_end=1537, + serialized_end=1543, ) @@ -572,8 +572,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1539, - serialized_end=1664, + serialized_start=1545, + serialized_end=1670, ) @@ -617,8 +617,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1667, - serialized_end=1815, + serialized_start=1673, + serialized_end=1821, ) @@ -662,8 +662,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1818, - serialized_end=1955, + serialized_start=1824, + serialized_end=1961, ) @@ -701,8 +701,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1958, - serialized_end=2124, + serialized_start=1964, + serialized_end=2130, ) _ATTRIBUTEMANIFEST_ATTRIBUTEINFO.fields_by_name['value_type'].enum_type = policy_dot_v1beta1_dot_value__type__pb2._VALUETYPE @@ -850,6 +850,8 @@ _ATTRIBUTEMANIFEST_ATTRIBUTESENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) _INSTANCE_ATTRIBUTEBINDINGSENTRY.has_options = True _INSTANCE_ATTRIBUTEBINDINGSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')) +_CONNECTION.fields_by_name['timeout'].has_options = True +_CONNECTION.fields_by_name['timeout']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\230\337\037\001')) _RATELIMITSAMPLING.fields_by_name['sampling_duration'].has_options = True _RATELIMITSAMPLING.fields_by_name['sampling_duration']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\230\337\037\001')) # @@protoc_insertion_point(module_scope) diff --git a/scripts/pre-commit b/scripts/pre-commit index 1c4dfe873f..7a9d2a96da 100755 --- a/scripts/pre-commit +++ b/scripts/pre-commit @@ -32,4 +32,10 @@ if [ $BRANCH_NAME != '(no branch)' ]; then echo "generating pb.go files..." scripts/generate-protos.sh + + echo "Updating proto.lock" + make proto-commit + + echo "Checking lint" + make lint fi diff --git a/tools/all/Dockerfile b/tools/all/Dockerfile new file mode 100644 index 0000000000..0c8c47956e --- /dev/null +++ b/tools/all/Dockerfile @@ -0,0 +1,24 @@ +FROM alpine:3.7 as prototool_download + +RUN apk update && \ + apk add curl && \ + curl -sSL https://github.com/uber/prototool/releases/download/v1.3.0/prototool-Linux-x86_64 \ + -o /usr/bin/prototool && \ + chmod +x /usr/bin/prototool + +FROM gcr.io/istio-testing/protolock:2018-10-23 as protolock + +FROM gcr.io/istio-testing/protoc:2018-06-12 + +COPY --from=protolock \ + /usr/bin/protolock \ + /usr/bin/ + +COPY --from=prototool_download \ + /usr/bin/prototool \ + /usr/bin/ + +RUN apk update && \ + apk add libc6-compat + +ENTRYPOINT [] diff --git a/tools/all/build-and-push.sh b/tools/all/build-and-push.sh new file mode 100755 index 0000000000..4f4a2d5eb3 --- /dev/null +++ b/tools/all/build-and-push.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +# This is a temporary script, only to be used until we have a better official +# place and procedure for generation. PLEASE use with caution +# (read: not for general usage). + +HUB=gcr.io/istio-testing +VERSION=$(date +%Y-%m-%d) + +docker build --no-cache -t $HUB/api-build-tools:$VERSION . + +gcloud docker -- push $HUB/api-build-tools:$VERSION diff --git a/docker/Dockerfile b/tools/protoc/Dockerfile similarity index 100% rename from docker/Dockerfile rename to tools/protoc/Dockerfile diff --git a/docker/build-and-push.sh b/tools/protoc/build-and-push.sh similarity index 100% rename from docker/build-and-push.sh rename to tools/protoc/build-and-push.sh diff --git a/tools/protolock/Dockerfile b/tools/protolock/Dockerfile new file mode 100644 index 0000000000..fed68f2583 --- /dev/null +++ b/tools/protolock/Dockerfile @@ -0,0 +1,19 @@ +FROM alpine:3.7 as builder +RUN apk update +RUN apk add --no-cache go>1.10 git build-base +ENV GOPATH=/go \ + PATH=/go/bin/:$PATH \ + OUTDIR=/out +RUN mkdir -p ${OUTDIR}/usr/bin/ +RUN go get -u -v -ldflags '-w -s' \ + github.com/nilslice/protolock/... \ + && install ${GOPATH}/bin/protolock ${OUTDIR}/usr/bin/ + +FROM znly/upx as packer +COPY --from=builder /out/ /out/ +RUN upx --lzma \ + /out/usr/bin/protolock + +FROM alpine:3.7 +COPY --from=packer /out/ / +ENTRYPOINT ["/usr/bin/protolock"] diff --git a/tools/protolock/build-and-push.sh b/tools/protolock/build-and-push.sh new file mode 100755 index 0000000000..83473eb004 --- /dev/null +++ b/tools/protolock/build-and-push.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +# This is a temporary script, only to be used until we have a better official +# place and procedure for generation. PLEASE use with caution +# (read: not for general usage). + +HUB=gcr.io/istio-testing +VERSION=$(date +%Y-%m-%d) + +docker build --no-cache -t $HUB/protolock:$VERSION . + +gcloud docker -- push $HUB/protolock:$VERSION