From 503041f216078e767bdde3c4cc2333f0fdce5961 Mon Sep 17 00:00:00 2001 From: "R.B. Boyer" Date: Fri, 26 Feb 2021 16:23:15 -0600 Subject: [PATCH] xds: default to speaking xDS v3, but allow for v2 to be spoken upon request (#9658) - Also add support for envoy 1.17.0 --- .changelog/9658.txt | 6 + .circleci/config.yml | 36 +- agent/xds/clusters.go | 193 +- agent/xds/clusters_test.go | 109 +- agent/xds/config.go | 6 +- agent/xds/endpoints.go | 74 +- agent/xds/endpoints_test.go | 108 +- agent/xds/envoy_versioning.go | 8 +- agent/xds/envoy_versioning_test.go | 25 +- agent/xds/failover_math.go | 4 +- agent/xds/golden_test.go | 6 - agent/xds/listeners.go | 301 +- agent/xds/listeners_test.go | 66 +- agent/xds/proxysupport/proxysupport.go | 2 +- agent/xds/rbac.go | 172 +- agent/xds/rbac_test.go | 30 +- agent/xds/response.go | 28 +- agent/xds/routes.go | 147 +- agent/xds/routes_test.go | 114 +- agent/xds/server.go | 56 +- agent/xds/server_oss.go | 4 +- agent/xds/server_test.go | 26 +- ...t-proxy-lb-in-resolver.envoy-1-17-x.golden | 190 + ...-in-resolver.v2compat.envoy-1-17-x.golden} | 9 +- ...ith-chain-and-failover.envoy-1-17-x.golden | 132 + ...and-failover.v2compat.envoy-1-17-x.golden} | 6 +- ...th-chain-and-overrides.envoy-1-17-x.golden | 135 + ...nd-overrides.v2compat.envoy-1-17-x.golden} | 6 +- ...ith-chain-external-sni.envoy-1-17-x.golden | 132 + ...external-sni.v2compat.envoy-1-17-x.golden} | 6 +- ...nnect-proxy-with-chain.envoy-1-17-x.golden | 132 + ...y-with-chain.v2compat.envoy-1-17-x.golden} | 6 +- ...ocal-gateway-triggered.envoy-1-17-x.golden | 132 + ...ay-triggered.v2compat.envoy-1-17-x.golden} | 6 +- ...-through-local-gateway.envoy-1-17-x.golden | 132 + ...ocal-gateway.v2compat.envoy-1-17-x.golden} | 6 +- ...mote-gateway-triggered.envoy-1-17-x.golden | 132 + ...ay-triggered.v2compat.envoy-1-17-x.golden} | 6 +- ...through-remote-gateway.envoy-1-17-x.golden | 132 + ...mote-gateway.v2compat.envoy-1-17-x.golden} | 6 +- ...ocal-gateway-triggered.envoy-1-17-x.golden | 132 + ...ay-triggered.v2compat.envoy-1-17-x.golden} | 6 +- ...-through-local-gateway.envoy-1-16-x.golden | 130 - ...-through-local-gateway.envoy-1-17-x.golden | 132 + ...local-gateway.v2compat.envoy-1-17-x.golden | 132 + ...mote-gateway-triggered.envoy-1-17-x.golden | 132 + ...ay-triggered.v2compat.envoy-1-17-x.golden} | 6 +- ...through-remote-gateway.envoy-1-16-x.golden | 130 - ...through-remote-gateway.envoy-1-17-x.golden | 132 + ...emote-gateway.v2compat.envoy-1-17-x.golden | 132 + ...s-max-connections-only.envoy-1-17-x.golden | 140 + ...ections-only.v2compat.envoy-1-17-x.golden} | 6 +- ...tom-limits-set-to-zero.envoy-1-17-x.golden | 144 + ...-set-to-zero.v2compat.envoy-1-17-x.golden} | 6 +- .../custom-limits.envoy-1-17-x.golden | 144 + ...ustom-limits.v2compat.envoy-1-17-x.golden} | 6 +- .../custom-local-app.envoy-1-17-x.golden | 131 + ...tom-local-app.v2compat.envoy-1-17-x.golden | 131 + .../custom-timeouts.envoy-1-17-x.golden | 132 + ...tom-timeouts.v2compat.envoy-1-17-x.golden} | 6 +- ...upstream-default-chain.envoy-1-17-x.golden | 130 + ...efault-chain.v2compat.envoy-1-17-x.golden} | 28 +- .../custom-upstream.envoy-1-17-x.golden | 130 + ...tom-upstream.v2compat.envoy-1-17-x.golden} | 28 +- .../clusters/defaults.envoy-1-17-x.golden | 132 + ... => defaults.v2compat.envoy-1-17-x.golden} | 6 +- ...grpc-new-cluster-http1.envoy-1-17-x.golden | 60 + ...luster-http1.v2compat.envoy-1-17-x.golden} | 0 ...-paths-local-app-paths.envoy-1-17-x.golden | 32 + ...al-app-paths.v2compat.envoy-1-17-x.golden} | 0 ...aths-new-cluster-http2.envoy-1-17-x.golden | 60 + ...luster-http2.v2compat.envoy-1-17-x.golden} | 0 ...ss-gateway-no-services.envoy-1-17-x.golden | 7 + ...-no-services.v2compat.envoy-1-17-x.golden} | 2 - .../ingress-gateway.envoy-1-17-x.golden | 60 + ...ress-gateway.v2compat.envoy-1-17-x.golden} | 3 +- ...ngress-lb-in-resolver.envoy-1-17-x.golden} | 44 +- ...-in-resolver.v2compat.envoy-1-17-x.golden} | 6 +- ...ners-duplicate-service.envoy-1-17-x.golden | 113 + ...cate-service.v2compat.envoy-1-17-x.golden} | 6 +- ...with-resolver-redirect.envoy-1-17-x.golden | 113 + ...ver-redirect.v2compat.envoy-1-17-x.golden} | 6 +- ...ith-chain-and-failover.envoy-1-17-x.golden | 60 + ...and-failover.v2compat.envoy-1-17-x.golden} | 3 +- ...th-chain-and-overrides.envoy-1-17-x.golden | 63 + ...nd-overrides.v2compat.envoy-1-17-x.golden} | 3 +- ...ith-chain-external-sni.envoy-1-17-x.golden | 60 + ...external-sni.v2compat.envoy-1-17-x.golden} | 3 +- .../ingress-with-chain.envoy-1-17-x.golden | 60 + ...s-with-chain.v2compat.envoy-1-17-x.golden} | 3 +- ...ocal-gateway-triggered.envoy-1-17-x.golden | 60 + ...ay-triggered.v2compat.envoy-1-17-x.golden} | 3 +- ...-through-local-gateway.envoy-1-17-x.golden | 60 + ...ocal-gateway.v2compat.envoy-1-17-x.golden} | 3 +- ...mote-gateway-triggered.envoy-1-17-x.golden | 60 + ...ay-triggered.v2compat.envoy-1-17-x.golden} | 3 +- ...through-remote-gateway.envoy-1-17-x.golden | 60 + ...mote-gateway.v2compat.envoy-1-17-x.golden} | 3 +- ...ocal-gateway-triggered.envoy-1-17-x.golden | 60 + ...ay-triggered.v2compat.envoy-1-17-x.golden} | 3 +- ...-through-local-gateway.envoy-1-16-x.golden | 59 - ...-through-local-gateway.envoy-1-17-x.golden | 60 + ...local-gateway.v2compat.envoy-1-17-x.golden | 60 + ...mote-gateway-triggered.envoy-1-17-x.golden | 60 + ...ay-triggered.v2compat.envoy-1-17-x.golden} | 3 +- ...through-remote-gateway.envoy-1-16-x.golden | 59 - ...through-remote-gateway.envoy-1-17-x.golden | 60 + ...emote-gateway.v2compat.envoy-1-17-x.golden | 60 + ...ateway-hash-lb-ignored.envoy-1-17-x.golden | 156 + ...h-lb-ignored.v2compat.envoy-1-17-x.golden} | 15 +- ...ignore-extra-resolvers.envoy-1-17-x.golden | 156 + ...ra-resolvers.v2compat.envoy-1-17-x.golden} | 15 +- ...sh-gateway-no-services.envoy-1-17-x.golden | 7 + ...-no-services.v2compat.envoy-1-17-x.golden} | 2 - ...y-non-hash-lb-injected.envoy-1-17-x.golden | 168 + ...-lb-injected.v2compat.envoy-1-17-x.golden} | 15 +- ...ateway-service-subsets.envoy-1-17-x.golden | 156 + ...vice-subsets.v2compat.envoy-1-17-x.golden} | 15 +- ...teway-service-timeouts.envoy-1-17-x.golden | 156 + ...ice-timeouts.v2compat.envoy-1-17-x.golden} | 15 +- ...sing-federation-states.envoy-1-17-x.golden | 122 + ...ation-states.v2compat.envoy-1-17-x.golden} | 9 +- .../clusters/mesh-gateway.envoy-1-17-x.golden | 122 + ...mesh-gateway.v2compat.envoy-1-17-x.golden} | 9 +- ...with-resolver-redirect.envoy-1-17-x.golden | 185 + ...ver-redirect.v2compat.envoy-1-17-x.golden} | 9 +- ...stname-service-subsets.envoy-1-17-x.golden | 252 + ...vice-subsets.v2compat.envoy-1-17-x.golden} | 3 +- ...ignore-extra-resolvers.envoy-1-17-x.golden | 228 + ...ra-resolvers.v2compat.envoy-1-17-x.golden} | 9 +- ...ting-gateway-lb-config.envoy-1-17-x.golden | 243 + ...ay-lb-config.v2compat.envoy-1-17-x.golden} | 9 +- ...ng-gateway-no-services.envoy-1-17-x.golden | 7 + ...-no-services.v2compat.envoy-1-17-x.golden} | 2 - ...ateway-service-subsets.envoy-1-17-x.golden | 260 + ...vice-subsets.v2compat.envoy-1-17-x.golden} | 9 +- .../terminating-gateway.envoy-1-17-x.golden | 162 + ...ting-gateway.v2compat.envoy-1-17-x.golden} | 3 +- ...ith-chain-and-failover.envoy-1-17-x.golden | 73 + ...and-failover.v2compat.envoy-1-17-x.golden} | 0 ...th-chain-and-overrides.envoy-1-17-x.golden | 41 + ...nd-overrides.v2compat.envoy-1-17-x.golden} | 0 ...ith-chain-external-sni.envoy-1-17-x.golden | 41 + ...external-sni.v2compat.envoy-1-17-x.golden} | 0 ...nnect-proxy-with-chain.envoy-1-17-x.golden | 41 + ...y-with-chain.v2compat.envoy-1-17-x.golden} | 0 ...ain-and-custom-cluster.envoy-1-17-x.golden | 41 + ...stom-cluster.v2compat.envoy-1-17-x.golden} | 0 ...ocal-gateway-triggered.envoy-1-17-x.golden | 41 + ...ay-triggered.v2compat.envoy-1-17-x.golden} | 0 ...-through-local-gateway.envoy-1-17-x.golden | 41 + ...ocal-gateway.v2compat.envoy-1-17-x.golden} | 0 ...mote-gateway-triggered.envoy-1-17-x.golden | 41 + ...ay-triggered.v2compat.envoy-1-17-x.golden} | 0 ...through-remote-gateway.envoy-1-17-x.golden | 41 + ...mote-gateway.v2compat.envoy-1-17-x.golden} | 0 ...ocal-gateway-triggered.envoy-1-17-x.golden | 41 + ...ay-triggered.v2compat.envoy-1-17-x.golden} | 0 ...-through-local-gateway.envoy-1-17-x.golden | 41 + ...ocal-gateway.v2compat.envoy-1-17-x.golden} | 0 ...mote-gateway-triggered.envoy-1-17-x.golden | 41 + ...ay-triggered.v2compat.envoy-1-17-x.golden} | 0 ...through-remote-gateway.envoy-1-17-x.golden | 41 + ...mote-gateway.v2compat.envoy-1-17-x.golden} | 0 .../endpoints/defaults.envoy-1-17-x.golden | 75 + ... => defaults.v2compat.envoy-1-17-x.golden} | 0 ...ss-gateway-no-services.envoy-1-17-x.golden | 7 + ...-no-services.v2compat.envoy-1-17-x.golden} | 2 - .../ingress-gateway.envoy-1-17-x.golden | 41 + ...ress-gateway.v2compat.envoy-1-17-x.golden} | 0 ...ners-duplicate-service.envoy-1-17-x.golden | 75 + ...cate-service.v2compat.envoy-1-17-x.golden} | 0 ...with-resolver-redirect.envoy-1-17-x.golden | 75 + ...ver-redirect.v2compat.envoy-1-17-x.golden} | 0 ...ith-chain-and-failover.envoy-1-17-x.golden | 73 + ...and-failover.v2compat.envoy-1-17-x.golden} | 0 ...th-chain-and-overrides.envoy-1-17-x.golden | 41 + ...nd-overrides.v2compat.envoy-1-17-x.golden} | 0 ...ith-chain-external-sni.envoy-1-17-x.golden | 41 + ...external-sni.v2compat.envoy-1-17-x.golden} | 0 .../ingress-with-chain.envoy-1-17-x.golden | 41 + ...s-with-chain.v2compat.envoy-1-17-x.golden} | 0 ...ocal-gateway-triggered.envoy-1-17-x.golden | 41 + ...ay-triggered.v2compat.envoy-1-17-x.golden} | 0 ...-through-local-gateway.envoy-1-17-x.golden | 41 + ...ocal-gateway.v2compat.envoy-1-17-x.golden} | 0 ...mote-gateway-triggered.envoy-1-17-x.golden | 41 + ...ay-triggered.v2compat.envoy-1-17-x.golden} | 0 ...through-remote-gateway.envoy-1-17-x.golden | 41 + ...mote-gateway.v2compat.envoy-1-17-x.golden} | 0 ...ocal-gateway-triggered.envoy-1-17-x.golden | 41 + ...ay-triggered.v2compat.envoy-1-17-x.golden} | 0 ...-through-local-gateway.envoy-1-17-x.golden | 41 + ...ocal-gateway.v2compat.envoy-1-17-x.golden} | 0 ...mote-gateway-triggered.envoy-1-17-x.golden | 41 + ...ay-triggered.v2compat.envoy-1-17-x.golden} | 0 ...through-remote-gateway.envoy-1-17-x.golden | 41 + ...mote-gateway.v2compat.envoy-1-17-x.golden} | 0 ...default-service-subset.envoy-1-17-x.golden | 221 + ...rvice-subset.v2compat.envoy-1-17-x.golden} | 0 ...sh-gateway-no-services.envoy-1-17-x.golden | 7 + ...-no-services.v2compat.envoy-1-17-x.golden} | 2 - ...ateway-service-subsets.envoy-1-17-x.golden | 269 + ...vice-subsets.v2compat.envoy-1-17-x.golden} | 0 ...sing-federation-states.envoy-1-17-x.golden | 145 + ...ation-states.v2compat.envoy-1-17-x.golden} | 0 .../mesh-gateway.envoy-1-17-x.golden | 145 + ...mesh-gateway.v2compat.envoy-1-17-x.golden} | 0 ...with-resolver-redirect.envoy-1-17-x.golden | 75 + ...ver-redirect.v2compat.envoy-1-17-x.golden} | 0 ...default-service-subset.envoy-1-17-x.golden | 73 + ...rvice-subset.v2compat.envoy-1-17-x.golden} | 0 ...ng-gateway-no-services.envoy-1-17-x.golden | 7 + ...-no-services.v2compat.envoy-1-17-x.golden} | 2 - ...ateway-service-subsets.envoy-1-17-x.golden | 85 + ...vice-subsets.v2compat.envoy-1-17-x.golden} | 0 .../terminating-gateway.envoy-1-17-x.golden | 41 + ...ting-gateway.v2compat.envoy-1-17-x.golden} | 0 ...th-chain-and-overrides.envoy-1-17-x.golden | 143 + ...nd-overrides.v2compat.envoy-1-17-x.golden} | 5 +- ...ith-chain-external-sni.envoy-1-17-x.golden | 119 + ...external-sni.v2compat.envoy-1-17-x.golden} | 0 ...-proxy-with-grpc-chain.envoy-1-17-x.golden | 143 + ...h-grpc-chain.v2compat.envoy-1-17-x.golden} | 5 +- ...-proxy-with-http-chain.envoy-1-17-x.golden | 137 + ...h-http-chain.v2compat.envoy-1-17-x.golden} | 3 +- ...proxy-with-http2-chain.envoy-1-17-x.golden | 140 + ...-http2-chain.v2compat.envoy-1-17-x.golden} | 3 +- ...-through-local-gateway.envoy-1-17-x.golden | 119 + ...ocal-gateway.v2compat.envoy-1-17-x.golden} | 0 ...through-remote-gateway.envoy-1-17-x.golden | 119 + ...mote-gateway.v2compat.envoy-1-17-x.golden} | 0 ...t-proxy-with-tcp-chain.envoy-1-17-x.golden | 119 + ...th-tcp-chain.v2compat.envoy-1-17-x.golden} | 0 ...public-listener-http-2.envoy-1-17-x.golden | 141 + ...tener-http-2.v2compat.envoy-1-17-x.golden} | 0 ...-listener-http-missing.envoy-1-17-x.golden | 118 + ...http-missing.v2compat.envoy-1-17-x.golden} | 0 ...m-public-listener-http.envoy-1-17-x.golden | 141 + ...istener-http.v2compat.envoy-1-17-x.golden} | 0 ...custom-public-listener.envoy-1-17-x.golden | 118 + ...lic-listener.v2compat.envoy-1-17-x.golden} | 0 ...nored-with-disco-chain.envoy-1-17-x.golden | 119 + ...-disco-chain.v2compat.envoy-1-17-x.golden} | 0 .../custom-upstream.envoy-1-17-x.golden | 118 + ...tom-upstream.v2compat.envoy-1-17-x.golden} | 0 .../listeners/defaults.envoy-1-17-x.golden | 119 + ... => defaults.v2compat.envoy-1-17-x.golden} | 0 .../expose-checks.envoy-1-17-x.golden | 120 + ...xpose-checks.v2compat.envoy-1-17-x.golden} | 0 ...-paths-local-app-paths.envoy-1-17-x.golden | 159 + ...al-app-paths.v2compat.envoy-1-17-x.golden} | 0 ...aths-new-cluster-http2.envoy-1-17-x.golden | 162 + ...luster-http2.v2compat.envoy-1-17-x.golden} | 0 ...listener-with-timeouts.envoy-1-17-x.golden | 149 + ...ith-timeouts.v2compat.envoy-1-17-x.golden} | 0 .../http-public-listener.envoy-1-17-x.golden | 148 + ...lic-listener.v2compat.envoy-1-17-x.golden} | 0 .../http-upstream.envoy-1-17-x.golden | 149 + ...ttp-upstream.v2compat.envoy-1-17-x.golden} | 0 ...ess-gateway-bind-addrs.envoy-1-17-x.golden | 82 + ...y-bind-addrs.v2compat.envoy-1-17-x.golden} | 0 ...ss-gateway-no-services.envoy-1-17-x.golden | 7 + ...-no-services.v2compat.envoy-1-17-x.golden} | 2 - .../ingress-gateway.envoy-1-17-x.golden | 32 + ...ress-gateway.v2compat.envoy-1-17-x.golden} | 0 ...http-multiple-services.envoy-1-17-x.golden | 93 + ...ple-services.v2compat.envoy-1-17-x.golden} | 6 +- ...with-resolver-redirect.envoy-1-17-x.golden | 50 + ...ver-redirect.v2compat.envoy-1-17-x.golden} | 3 +- ...th-chain-and-overrides.envoy-1-17-x.golden | 56 + ...nd-overrides.v2compat.envoy-1-17-x.golden} | 5 +- ...ith-chain-external-sni.envoy-1-17-x.golden | 32 + ...external-sni.v2compat.envoy-1-17-x.golden} | 0 ...-through-local-gateway.envoy-1-17-x.golden | 32 + ...ocal-gateway.v2compat.envoy-1-17-x.golden} | 0 ...through-remote-gateway.envoy-1-17-x.golden | 32 + ...mote-gateway.v2compat.envoy-1-17-x.golden} | 0 ...ress-with-tls-listener.envoy-1-17-x.golden | 59 + ...tls-listener.v2compat.envoy-1-17-x.golden} | 0 ...ener-bind-address-port.envoy-1-17-x.golden | 119 + ...address-port.v2compat.envoy-1-17-x.golden} | 0 .../listener-bind-address.envoy-1-17-x.golden | 119 + ...bind-address.v2compat.envoy-1-17-x.golden} | 0 .../listener-bind-port.envoy-1-17-x.golden | 119 + ...er-bind-port.v2compat.envoy-1-17-x.golden} | 0 ...teway-custom-addresses.envoy-1-17-x.golden | 339 ++ ...om-addresses.v2compat.envoy-1-17-x.golden} | 0 ...sh-gateway-no-services.envoy-1-17-x.golden | 39 + ...-no-services.v2compat.envoy-1-17-x.golden} | 0 ...teway-tagged-addresses.envoy-1-17-x.golden | 173 + ...ed-addresses.v2compat.envoy-1-17-x.golden} | 0 ...sing-federation-states.envoy-1-17-x.golden | 90 + ...ation-states.v2compat.envoy-1-17-x.golden} | 0 .../mesh-gateway.envoy-1-17-x.golden | 90 + ...mesh-gateway.v2compat.envoy-1-17-x.golden} | 0 ...with-resolver-redirect.envoy-1-17-x.golden | 137 + ...ver-redirect.v2compat.envoy-1-17-x.golden} | 3 +- ...m-and-tagged-addresses.envoy-1-17-x.golden | 505 ++ ...ed-addresses.v2compat.envoy-1-17-x.golden} | 0 ...ng-gateway-no-api-cert.envoy-1-17-x.golden | 202 + ...-no-api-cert.v2compat.envoy-1-17-x.golden} | 0 ...ng-gateway-no-services.envoy-1-17-x.golden | 40 + ...-no-services.v2compat.envoy-1-17-x.golden} | 0 ...ateway-service-subsets.envoy-1-17-x.golden | 415 ++ ...vice-subsets.v2compat.envoy-1-17-x.golden} | 9 +- .../terminating-gateway.envoy-1-17-x.golden | 256 + ...ting-gateway.v2compat.envoy-1-17-x.golden} | 0 ...ault-allow-kitchen-sink--httpfilter.golden | 2 +- ...w-kitchen-sink--httpfilter.v2compat.golden | 104 + .../rbac/default-allow-kitchen-sink.golden | 2 +- ...default-allow-kitchen-sink.v2compat.golden | 105 + .../default-allow-one-deny--httpfilter.golden | 2 +- ...allow-one-deny--httpfilter.v2compat.golden | 32 + .../rbac/default-allow-one-deny.golden | 2 +- .../default-allow-one-deny.v2compat.golden | 33 + ...w-service-wildcard-deny--httpfilter.golden | 2 +- ...-wildcard-deny--httpfilter.v2compat.golden | 32 + ...default-allow-service-wildcard-deny.golden | 2 +- ...llow-service-wildcard-deny.v2compat.golden | 33 + ...with-kitchen-sink-perms--httpfilter.golden | 2 +- ...hen-sink-perms--httpfilter.v2compat.golden | 240 + ...e-intention-with-kitchen-sink-perms.golden | 2 +- ...on-with-kitchen-sink-perms.v2compat.golden | 33 + ...ath-deny-and-path-allow--httpfilter.golden | 2 +- ...and-path-allow--httpfilter.v2compat.golden | 58 + ...-allow-two-path-deny-and-path-allow.golden | 2 +- ...o-path-deny-and-path-allow.v2compat.golden | 33 + ...default-deny-allow-deny--httpfilter.golden | 2 +- ...eny-allow-deny--httpfilter.v2compat.golden | 51 + .../rbac/default-deny-allow-deny.golden | 2 +- .../default-deny-allow-deny.v2compat.golden | 52 + ...fault-deny-kitchen-sink--httpfilter.golden | 2 +- ...y-kitchen-sink--httpfilter.v2compat.golden | 103 + .../rbac/default-deny-kitchen-sink.golden | 2 +- .../default-deny-kitchen-sink.v2compat.golden | 104 + ...t-deny-mixed-precedence--httpfilter.golden | 2 +- ...xed-precedence--httpfilter.v2compat.golden | 31 + .../rbac/default-deny-mixed-precedence.golden | 2 +- ...ault-deny-mixed-precedence.v2compat.golden | 32 + .../default-deny-one-allow--httpfilter.golden | 2 +- ...deny-one-allow--httpfilter.v2compat.golden | 31 + .../rbac/default-deny-one-allow.golden | 2 +- .../default-deny-one-allow.v2compat.golden | 32 + ...-service-wildcard-allow--httpfilter.golden | 2 +- ...wildcard-allow--httpfilter.v2compat.golden | 31 + ...default-deny-service-wildcard-allow.golden | 2 +- ...eny-service-wildcard-allow.v2compat.golden | 32 + ...with-kitchen-sink-perms--httpfilter.golden | 2 +- ...hen-sink-perms--httpfilter.v2compat.golden | 239 + ...e-intention-with-kitchen-sink-perms.golden | 2 +- ...on-with-kitchen-sink-perms.v2compat.golden | 10 + ...ath-deny-and-path-allow--httpfilter.golden | 2 +- ...and-path-allow--httpfilter.v2compat.golden | 59 + ...t-deny-two-path-deny-and-path-allow.golden | 2 +- ...o-path-deny-and-path-allow.v2compat.golden | 10 + ...t-proxy-lb-in-resolver.envoy-1-17-x.golden | 67 + ...-in-resolver.v2compat.envoy-1-17-x.golden} | 0 ...th-chain-and-overrides.envoy-1-17-x.golden | 30 + ...nd-overrides.v2compat.envoy-1-17-x.golden} | 0 ...-with-chain-and-router.envoy-1-17-x.golden | 362 ++ ...n-and-router.v2compat.envoy-1-17-x.golden} | 0 ...ith-chain-and-splitter.envoy-1-17-x.golden | 46 + ...and-splitter.v2compat.envoy-1-17-x.golden} | 0 ...ith-chain-external-sni.envoy-1-17-x.golden | 30 + ...external-sni.v2compat.envoy-1-17-x.golden} | 0 ...nnect-proxy-with-chain.envoy-1-17-x.golden | 30 + ...y-with-chain.v2compat.envoy-1-17-x.golden} | 0 ...proxy-with-grpc-router.envoy-1-17-x.golden | 38 + ...-grpc-router.v2compat.envoy-1-17-x.golden} | 0 .../defaults-no-chain.envoy-1-17-x.golden | 7 + ...lts-no-chain.v2compat.envoy-1-17-x.golden} | 2 - ...ress-defaults-no-chain.envoy-1-17-x.golden | 7 + ...lts-no-chain.v2compat.envoy-1-17-x.golden} | 2 - ...http-multiple-services.envoy-1-17-x.golden | 91 + ...ple-services.v2compat.envoy-1-17-x.golden} | 0 ...ingress-lb-in-resolver.envoy-1-17-x.golden | 68 + ...-in-resolver.v2compat.envoy-1-17-x.golden} | 0 ...with-resolver-redirect.envoy-1-17-x.golden | 43 + ...ver-redirect.v2compat.envoy-1-17-x.golden} | 0 ...th-chain-and-overrides.envoy-1-17-x.golden | 7 + ...nd-overrides.v2compat.envoy-1-17-x.golden} | 2 - ...-with-chain-and-router.envoy-1-17-x.golden | 363 ++ ...n-and-router.v2compat.envoy-1-17-x.golden} | 0 ...ith-chain-and-splitter.envoy-1-17-x.golden | 47 + ...and-splitter.v2compat.envoy-1-17-x.golden} | 0 ...ith-chain-external-sni.envoy-1-17-x.golden | 7 + ...external-sni.v2compat.envoy-1-17-x.golden} | 2 - .../ingress-with-chain.envoy-1-16-x.golden | 7 - .../ingress-with-chain.envoy-1-17-x.golden | 7 + ...ss-with-chain.v2compat.envoy-1-17-x.golden | 5 + ...gress-with-grpc-router.envoy-1-17-x.golden | 39 + ...-grpc-router.v2compat.envoy-1-17-x.golden} | 0 ...with-resolver-redirect.envoy-1-17-x.golden | 42 + ...ver-redirect.v2compat.envoy-1-17-x.golden} | 0 ...ting-gateway-lb-config.envoy-1-17-x.golden | 133 + ...ay-lb-config.v2compat.envoy-1-17-x.golden} | 0 agent/xds/testing.go | 58 +- agent/xds/version_compat.go | 488 ++ command/connect/envoy/bootstrap_config.go | 13 +- .../connect/envoy/bootstrap_config_test.go | 19 +- command/connect/envoy/bootstrap_tpl.go | 22 +- ..._ADDR-with-https-scheme-enables-tls.golden | 12 +- .../envoy/testdata/access-log-path.golden | 10 +- .../connect/envoy/testdata/defaults.golden | 10 +- .../envoy/testdata/existing-ca-file.golden | 12 +- .../envoy/testdata/existing-ca-path.golden | 12 +- .../envoy/testdata/extra_-multiple.golden | 10 +- .../envoy/testdata/extra_-single.golden | 10 +- .../envoy/testdata/grpc-addr-config.golden | 10 +- .../envoy/testdata/grpc-addr-env.golden | 10 +- .../envoy/testdata/grpc-addr-flag.golden | 10 +- .../envoy/testdata/grpc-addr-unix.golden | 10 +- .../ingress-gateway-address-specified.golden | 13 +- .../ingress-gateway-no-auto-register.golden | 13 +- ...-register-with-service-and-proxy-id.golden | 13 +- ...ister-with-service-without-proxy-id.golden | 13 +- .../envoy/testdata/ingress-gateway.golden | 13 +- .../testdata/stats-config-override.golden | 10 +- .../connect/envoy/testdata/token-arg.golden | 10 +- .../connect/envoy/testdata/token-env.golden | 10 +- .../envoy/testdata/token-file-arg.golden | 10 +- .../envoy/testdata/token-file-env.golden | 10 +- .../testdata/zipkin-tracing-config.golden | 10 +- .../connect/envoy/case-zipkin/service_s1.hcl | 2 +- .../connect/envoy/case-zipkin/service_s2.hcl | 2 +- test/integration/connect/envoy/helpers.bash | 15 +- test/integration/connect/envoy/run-tests.sh | 17 +- .../connect/envoy/test-envoy-versions.sh | 5 + .../envoy/config/accesslog/v3/accesslog.pb.go | 1098 ++++ .../accesslog/v3/accesslog.pb.validate.go | 1339 +++++ .../config/cluster/v3/circuit_breaker.pb.go | 262 + .../cluster/v3/circuit_breaker.pb.validate.go | 345 ++ .../envoy/config/cluster/v3/cluster.pb.go | 1867 +++++++ .../config/cluster/v3/cluster.pb.validate.go | 2066 ++++++++ .../envoy/config/cluster/v3/filter.pb.go | 101 + .../config/cluster/v3/filter.pb.validate.go | 118 + .../config/cluster/v3/outlier_detection.pb.go | 277 + .../v3/outlier_detection.pb.validate.go | 325 ++ .../envoy/config/core/v3/address.pb.go | 511 ++ .../config/core/v3/address.pb.validate.go | 601 +++ .../envoy/config/core/v3/backoff.pb.go | 101 + .../config/core/v3/backoff.pb.validate.go | 151 + .../envoy/config/core/v3/base.pb.go | 1315 +++++ .../envoy/config/core/v3/base.pb.validate.go | 1568 ++++++ .../envoy/config/core/v3/config_source.pb.go | 492 ++ .../core/v3/config_source.pb.validate.go | 525 ++ .../config/core/v3/event_service_config.pb.go | 118 + .../v3/event_service_config.pb.validate.go | 126 + .../config/core/v3/grpc_method_list.pb.go | 142 + .../core/v3/grpc_method_list.pb.validate.go | 198 + .../envoy/config/core/v3/grpc_service.pb.go | 1012 ++++ .../core/v3/grpc_service.pb.validate.go | 1154 +++++ .../envoy/config/core/v3/health_check.pb.go | 895 ++++ .../core/v3/health_check.pb.validate.go | 1052 ++++ .../envoy/config/core/v3/http_uri.pb.go | 138 + .../config/core/v3/http_uri.pb.validate.go | 155 + .../envoy/config/core/v3/protocol.pb.go | 661 +++ .../config/core/v3/protocol.pb.validate.go | 905 ++++ .../envoy/config/core/v3/socket_option.pb.go | 201 + .../core/v3/socket_option.pb.validate.go | 131 + .../envoy/config/endpoint/v3/endpoint.pb.go | 262 + .../endpoint/v3/endpoint.pb.validate.go | 355 ++ .../endpoint/v3/endpoint_components.pb.go | 343 ++ .../v3/endpoint_components.pb.validate.go | 425 ++ .../config/endpoint/v3/load_report.pb.go | 460 ++ .../endpoint/v3/load_report.pb.validate.go | 537 ++ .../tls_inspector/v2/tls_inspector.pb.go | 79 + .../v2/tls_inspector.pb.validate.go | 102 + .../network/sni_cluster/v2/sni_cluster.pb.go | 79 + .../sni_cluster/v2/sni_cluster.pb.validate.go | 101 + .../config/listener/v3/api_listener.pb.go | 89 + .../listener/v3/api_listener.pb.validate.go | 112 + .../envoy/config/listener/v3/listener.pb.go | 478 ++ .../listener/v3/listener.pb.validate.go | 538 ++ .../listener/v3/listener_components.pb.go | 707 +++ .../v3/listener_components.pb.validate.go | 742 +++ .../config/listener/v3/quic_config.pb.go | 113 + .../listener/v3/quic_config.pb.validate.go | 134 + .../listener/v3/udp_listener_config.pb.go | 180 + .../v3/udp_listener_config.pb.validate.go | 201 + .../config/metrics/v2/metrics_service.pb.go | 90 + .../metrics/v2/metrics_service.pb.validate.go | 121 + .../envoy/config/metrics/v2/stats.pb.go | 619 +++ .../config/metrics/v2/stats.pb.validate.go | 663 +++ .../config/metrics/v3/metrics_service.pb.go | 92 + .../metrics/v3/metrics_service.pb.validate.go | 121 + .../envoy/config/metrics/v3/stats.pb.go | 626 +++ .../config/metrics/v3/stats.pb.validate.go | 663 +++ .../envoy/config/rbac/v3/rbac.pb.go | 740 +++ .../envoy/config/rbac/v3/rbac.pb.validate.go | 856 ++++ .../envoy/config/route/v3/route.pb.go | 226 + .../config/route/v3/route.pb.validate.go | 310 ++ .../config/route/v3/route_components.pb.go | 3755 ++++++++++++++ .../route/v3/route_components.pb.validate.go | 4521 +++++++++++++++++ .../envoy/config/route/v3/scoped_route.pb.go | 222 + .../route/v3/scoped_route.pb.validate.go | 306 ++ .../envoy/config/trace/v3/trace.pb.go | 749 +++ .../config/trace/v3/trace.pb.validate.go | 751 +++ .../envoy/config/trace/v3/xray.pb.go | 112 + .../envoy/config/trace/v3/xray.pb.validate.go | 128 + .../filters/http/rbac/v3/rbac.pb.go | 144 + .../filters/http/rbac/v3/rbac.pb.validate.go | 196 + .../tls_inspector/v3/tls_inspector.pb.go | 79 + .../v3/tls_inspector.pb.validate.go | 102 + .../v3/http_connection_manager.pb.go | 1603 ++++++ .../v3/http_connection_manager.pb.validate.go | 1765 +++++++ .../filters/network/rbac/v3/rbac.pb.go | 151 + .../network/rbac/v3/rbac.pb.validate.go | 130 + .../network/sni_cluster/v3/sni_cluster.pb.go | 79 + .../sni_cluster/v3/sni_cluster.pb.validate.go | 101 + .../network/tcp_proxy/v3/tcp_proxy.pb.go | 515 ++ .../tcp_proxy/v3/tcp_proxy.pb.validate.go | 694 +++ .../transport_sockets/tls/v3/cert.pb.go | 1174 +++++ .../tls/v3/cert.pb.validate.go | 1368 +++++ .../service/auth/v2/attribute_context.pb.go | 392 -- .../auth/v2/attribute_context.pb.validate.go | 406 -- .../envoy/service/auth/v2/external_auth.pb.go | 378 -- .../auth/v2/external_auth.pb.validate.go | 396 -- .../envoy/service/discovery/v3/ads.pb.go | 268 + .../service/discovery/v3/ads.pb.validate.go | 101 + .../service/discovery/v3/discovery.pb.go | 470 ++ .../discovery/v3/discovery.pb.validate.go | 487 ++ .../envoy/type/matcher/v3/metadata.pb.go | 178 + .../type/matcher/v3/metadata.pb.validate.go | 235 + .../envoy/type/matcher/v3/node.pb.go | 96 + .../envoy/type/matcher/v3/node.pb.validate.go | 127 + .../envoy/type/matcher/v3/number.pb.go | 132 + .../type/matcher/v3/number.pb.validate.go | 127 + .../envoy/type/matcher/v3/path.pb.go | 114 + .../envoy/type/matcher/v3/path.pb.validate.go | 131 + .../envoy/type/matcher/v3/regex.pb.go | 223 + .../type/matcher/v3/regex.pb.validate.go | 294 ++ .../envoy/type/matcher/v3/string.pb.go | 237 + .../type/matcher/v3/string.pb.validate.go | 252 + .../envoy/type/matcher/v3/struct.pb.go | 167 + .../type/matcher/v3/struct.pb.validate.go | 227 + .../envoy/type/matcher/v3/value.pb.go | 298 ++ .../type/matcher/v3/value.pb.validate.go | 320 ++ .../envoy/type/metadata/v3/metadata.pb.go | 417 ++ .../type/metadata/v3/metadata.pb.validate.go | 608 +++ .../envoy/type/tracing/v3/custom_tag.pb.go | 381 ++ .../type/tracing/v3/custom_tag.pb.validate.go | 488 ++ .../envoy/type/v3/hash_policy.pb.go | 147 + .../envoy/type/v3/hash_policy.pb.validate.go | 190 + .../go-control-plane/envoy/type/v3/http.pb.go | 71 + .../envoy/type/v3/http.pb.validate.go | 37 + .../envoy/type/v3/http_status.pb.go | 324 ++ .../envoy/type/v3/http_status.pb.validate.go | 119 + .../envoy/type/v3/percent.pb.go | 172 + .../envoy/type/v3/percent.pb.validate.go | 184 + .../envoy/type/v3/range.pb.go | 191 + .../envoy/type/v3/range.pb.validate.go | 242 + .../envoy/type/v3/semantic_version.pb.go | 104 + .../type/v3/semantic_version.pb.validate.go | 108 + .../envoy/type/v3/token_bucket.pb.go | 112 + .../envoy/type/v3/token_bucket.pb.validate.go | 148 + vendor/modules.txt | 25 +- website/content/commands/connect/envoy.mdx | 2 +- .../content/docs/connect/proxies/envoy.mdx | 2 +- 560 files changed, 78440 insertions(+), 2992 deletions(-) create mode 100644 .changelog/9658.txt create mode 100644 agent/xds/testdata/clusters/connect-proxy-lb-in-resolver.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{connect-proxy-lb-in-resolver.envoy-1-16-x.golden => connect-proxy-lb-in-resolver.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/connect-proxy-with-chain-and-failover.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{connect-proxy-with-chain.envoy-1-16-x.golden => connect-proxy-with-chain-and-failover.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/connect-proxy-with-chain-and-overrides.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{connect-proxy-with-chain-and-overrides.envoy-1-16-x.golden => connect-proxy-with-chain-and-overrides.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/connect-proxy-with-chain-external-sni.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{connect-proxy-with-chain-external-sni.envoy-1-16-x.golden => connect-proxy-with-chain-external-sni.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/connect-proxy-with-chain.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{connect-proxy-with-chain-and-failover.envoy-1-16-x.golden => connect-proxy-with-chain.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-16-x.golden => connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-16-x.golden => connect-proxy-with-tcp-chain-double-failover-through-local-gateway.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-16-x.golden => connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{connect-proxy-with-tcp-chain-double-failover-through-local-gateway.envoy-1-16-x.golden => connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-16-x.golden => connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden} (98%) delete mode 100644 agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden create mode 100644 agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden create mode 100644 agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden create mode 100644 agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-16-x.golden => connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden} (98%) delete mode 100644 agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden create mode 100644 agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden create mode 100644 agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden create mode 100644 agent/xds/testdata/clusters/custom-limits-max-connections-only.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{custom-limits-max-connections-only.envoy-1-16-x.golden => custom-limits-max-connections-only.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/custom-limits-set-to-zero.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{custom-limits-set-to-zero.envoy-1-16-x.golden => custom-limits-set-to-zero.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/custom-limits.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{custom-limits.envoy-1-16-x.golden => custom-limits.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/custom-local-app.envoy-1-17-x.golden create mode 100644 agent/xds/testdata/clusters/custom-local-app.v2compat.envoy-1-17-x.golden create mode 100644 agent/xds/testdata/clusters/custom-timeouts.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{custom-timeouts.envoy-1-16-x.golden => custom-timeouts.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/custom-upstream-default-chain.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{custom-upstream-default-chain.envoy-1-16-x.golden => custom-upstream-default-chain.v2compat.envoy-1-17-x.golden} (93%) create mode 100644 agent/xds/testdata/clusters/custom-upstream.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{custom-upstream.envoy-1-16-x.golden => custom-upstream.v2compat.envoy-1-17-x.golden} (93%) create mode 100644 agent/xds/testdata/clusters/defaults.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{defaults.envoy-1-16-x.golden => defaults.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/expose-paths-grpc-new-cluster-http1.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{expose-paths-grpc-new-cluster-http1.envoy-1-16-x.golden => expose-paths-grpc-new-cluster-http1.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/clusters/expose-paths-local-app-paths.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{expose-paths-local-app-paths.envoy-1-16-x.golden => expose-paths-local-app-paths.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/clusters/expose-paths-new-cluster-http2.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{expose-paths-new-cluster-http2.envoy-1-16-x.golden => expose-paths-new-cluster-http2.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/clusters/ingress-gateway-no-services.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{ingress-gateway-no-services.envoy-1-16-x.golden => ingress-gateway-no-services.v2compat.envoy-1-17-x.golden} (82%) create mode 100644 agent/xds/testdata/clusters/ingress-gateway.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{ingress-gateway.envoy-1-16-x.golden => ingress-gateway.v2compat.envoy-1-17-x.golden} (98%) rename agent/xds/testdata/clusters/{custom-local-app.envoy-1-16-x.golden => ingress-lb-in-resolver.envoy-1-17-x.golden} (85%) rename agent/xds/testdata/clusters/{ingress-lb-in-resolver.envoy-1-16-x.golden => ingress-lb-in-resolver.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/ingress-multiple-listeners-duplicate-service.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{ingress-multiple-listeners-duplicate-service.envoy-1-16-x.golden => ingress-multiple-listeners-duplicate-service.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/ingress-splitter-with-resolver-redirect.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{ingress-splitter-with-resolver-redirect.envoy-1-16-x.golden => ingress-splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/ingress-with-chain-and-failover.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{ingress-with-tcp-chain-double-failover-through-local-gateway.envoy-1-16-x.golden => ingress-with-chain-and-failover.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/ingress-with-chain-and-overrides.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{ingress-with-chain-and-overrides.envoy-1-16-x.golden => ingress-with-chain-and-overrides.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/ingress-with-chain-external-sni.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{ingress-with-chain-external-sni.envoy-1-16-x.golden => ingress-with-chain-external-sni.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/ingress-with-chain.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{ingress-with-chain.envoy-1-16-x.golden => ingress-with-chain.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-16-x.golden => ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{ingress-with-chain-and-failover.envoy-1-16-x.golden => ingress-with-tcp-chain-double-failover-through-local-gateway.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-16-x.golden => ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{ingress-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-16-x.golden => ingress-with-tcp-chain-double-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{ingress-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-16-x.golden => ingress-with-tcp-chain-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden} (98%) delete mode 100644 agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden create mode 100644 agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden create mode 100644 agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden create mode 100644 agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{ingress-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-16-x.golden => ingress-with-tcp-chain-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden} (98%) delete mode 100644 agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden create mode 100644 agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden create mode 100644 agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden create mode 100644 agent/xds/testdata/clusters/mesh-gateway-hash-lb-ignored.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{mesh-gateway-service-subsets.envoy-1-16-x.golden => mesh-gateway-hash-lb-ignored.v2compat.envoy-1-17-x.golden} (93%) create mode 100644 agent/xds/testdata/clusters/mesh-gateway-ignore-extra-resolvers.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{mesh-gateway-hash-lb-ignored.envoy-1-16-x.golden => mesh-gateway-ignore-extra-resolvers.v2compat.envoy-1-17-x.golden} (93%) create mode 100644 agent/xds/testdata/clusters/mesh-gateway-no-services.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{mesh-gateway-no-services.envoy-1-16-x.golden => mesh-gateway-no-services.v2compat.envoy-1-17-x.golden} (82%) create mode 100644 agent/xds/testdata/clusters/mesh-gateway-non-hash-lb-injected.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{mesh-gateway-non-hash-lb-injected.envoy-1-16-x.golden => mesh-gateway-non-hash-lb-injected.v2compat.envoy-1-17-x.golden} (93%) create mode 100644 agent/xds/testdata/clusters/mesh-gateway-service-subsets.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{mesh-gateway-ignore-extra-resolvers.envoy-1-16-x.golden => mesh-gateway-service-subsets.v2compat.envoy-1-17-x.golden} (93%) create mode 100644 agent/xds/testdata/clusters/mesh-gateway-service-timeouts.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{mesh-gateway-service-timeouts.envoy-1-16-x.golden => mesh-gateway-service-timeouts.v2compat.envoy-1-17-x.golden} (93%) create mode 100644 agent/xds/testdata/clusters/mesh-gateway-using-federation-states.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{mesh-gateway.envoy-1-16-x.golden => mesh-gateway-using-federation-states.v2compat.envoy-1-17-x.golden} (95%) create mode 100644 agent/xds/testdata/clusters/mesh-gateway.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{mesh-gateway-using-federation-states.envoy-1-16-x.golden => mesh-gateway.v2compat.envoy-1-17-x.golden} (95%) create mode 100644 agent/xds/testdata/clusters/splitter-with-resolver-redirect.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{splitter-with-resolver-redirect.envoy-1-16-x.golden => splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/clusters/terminating-gateway-hostname-service-subsets.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{terminating-gateway-hostname-service-subsets.envoy-1-16-x.golden => terminating-gateway-hostname-service-subsets.v2compat.envoy-1-17-x.golden} (99%) create mode 100644 agent/xds/testdata/clusters/terminating-gateway-ignore-extra-resolvers.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{terminating-gateway-ignore-extra-resolvers.envoy-1-16-x.golden => terminating-gateway-ignore-extra-resolvers.v2compat.envoy-1-17-x.golden} (97%) create mode 100644 agent/xds/testdata/clusters/terminating-gateway-lb-config.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{terminating-gateway-lb-config.envoy-1-16-x.golden => terminating-gateway-lb-config.v2compat.envoy-1-17-x.golden} (97%) create mode 100644 agent/xds/testdata/clusters/terminating-gateway-no-services.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{terminating-gateway-no-services.envoy-1-16-x.golden => terminating-gateway-no-services.v2compat.envoy-1-17-x.golden} (82%) create mode 100644 agent/xds/testdata/clusters/terminating-gateway-service-subsets.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{terminating-gateway-service-subsets.envoy-1-16-x.golden => terminating-gateway-service-subsets.v2compat.envoy-1-17-x.golden} (97%) create mode 100644 agent/xds/testdata/clusters/terminating-gateway.envoy-1-17-x.golden rename agent/xds/testdata/clusters/{terminating-gateway.envoy-1-16-x.golden => terminating-gateway.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/endpoints/connect-proxy-with-chain-and-failover.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{connect-proxy-with-chain-and-failover.envoy-1-16-x.golden => connect-proxy-with-chain-and-failover.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/connect-proxy-with-chain-and-overrides.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{connect-proxy-with-chain-and-overrides.envoy-1-16-x.golden => connect-proxy-with-chain-and-overrides.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/connect-proxy-with-chain-external-sni.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{connect-proxy-with-chain-external-sni.envoy-1-16-x.golden => connect-proxy-with-chain-external-sni.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/connect-proxy-with-chain.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{connect-proxy-with-chain.envoy-1-16-x.golden => connect-proxy-with-chain.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/connect-proxy-with-default-chain-and-custom-cluster.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{connect-proxy-with-default-chain-and-custom-cluster.envoy-1-16-x.golden => connect-proxy-with-default-chain-and-custom-cluster.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-16-x.golden => connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-local-gateway.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{connect-proxy-with-tcp-chain-double-failover-through-local-gateway.envoy-1-16-x.golden => connect-proxy-with-tcp-chain-double-failover-through-local-gateway.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-16-x.golden => connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-16-x.golden => connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-16-x.golden => connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden => connect-proxy-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-16-x.golden => connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden => connect-proxy-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/defaults.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{defaults.envoy-1-16-x.golden => defaults.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/ingress-gateway-no-services.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{mesh-gateway-no-services.envoy-1-16-x.golden => ingress-gateway-no-services.v2compat.envoy-1-17-x.golden} (84%) create mode 100644 agent/xds/testdata/endpoints/ingress-gateway.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{ingress-gateway.envoy-1-16-x.golden => ingress-gateway.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/ingress-multiple-listeners-duplicate-service.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{ingress-multiple-listeners-duplicate-service.envoy-1-16-x.golden => ingress-multiple-listeners-duplicate-service.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/ingress-splitter-with-resolver-redirect.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{ingress-splitter-with-resolver-redirect.envoy-1-16-x.golden => ingress-splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/ingress-with-chain-and-failover.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{ingress-with-chain-and-failover.envoy-1-16-x.golden => ingress-with-chain-and-failover.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/ingress-with-chain-and-overrides.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{ingress-with-chain-and-overrides.envoy-1-16-x.golden => ingress-with-chain-and-overrides.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/ingress-with-chain-external-sni.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{ingress-with-chain-external-sni.envoy-1-16-x.golden => ingress-with-chain-external-sni.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/ingress-with-chain.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{ingress-with-chain.envoy-1-16-x.golden => ingress-with-chain.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-16-x.golden => ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-local-gateway.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{ingress-with-tcp-chain-double-failover-through-local-gateway.envoy-1-16-x.golden => ingress-with-tcp-chain-double-failover-through-local-gateway.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-16-x.golden => ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{ingress-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-16-x.golden => ingress-with-tcp-chain-double-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{ingress-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-16-x.golden => ingress-with-tcp-chain-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden => ingress-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{ingress-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-16-x.golden => ingress-with-tcp-chain-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden => ingress-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/mesh-gateway-default-service-subset.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{mesh-gateway-default-service-subset.envoy-1-16-x.golden => mesh-gateway-default-service-subset.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/mesh-gateway-no-services.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{terminating-gateway-no-services.envoy-1-16-x.golden => mesh-gateway-no-services.v2compat.envoy-1-17-x.golden} (84%) create mode 100644 agent/xds/testdata/endpoints/mesh-gateway-service-subsets.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{mesh-gateway-service-subsets.envoy-1-16-x.golden => mesh-gateway-service-subsets.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/mesh-gateway-using-federation-states.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{mesh-gateway-using-federation-states.envoy-1-16-x.golden => mesh-gateway-using-federation-states.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/mesh-gateway.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{mesh-gateway.envoy-1-16-x.golden => mesh-gateway.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/splitter-with-resolver-redirect.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{splitter-with-resolver-redirect.envoy-1-16-x.golden => splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/terminating-gateway-default-service-subset.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{terminating-gateway-default-service-subset.envoy-1-16-x.golden => terminating-gateway-default-service-subset.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/terminating-gateway-no-services.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{ingress-gateway-no-services.envoy-1-16-x.golden => terminating-gateway-no-services.v2compat.envoy-1-17-x.golden} (84%) create mode 100644 agent/xds/testdata/endpoints/terminating-gateway-service-subsets.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{terminating-gateway-service-subsets.envoy-1-16-x.golden => terminating-gateway-service-subsets.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/endpoints/terminating-gateway.envoy-1-17-x.golden rename agent/xds/testdata/endpoints/{terminating-gateway.envoy-1-16-x.golden => terminating-gateway.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/connect-proxy-with-chain-and-overrides.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{connect-proxy-with-grpc-chain.envoy-1-16-x.golden => connect-proxy-with-chain-and-overrides.v2compat.envoy-1-17-x.golden} (97%) create mode 100644 agent/xds/testdata/listeners/connect-proxy-with-chain-external-sni.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{connect-proxy-with-chain-external-sni.envoy-1-16-x.golden => connect-proxy-with-chain-external-sni.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/connect-proxy-with-grpc-chain.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{connect-proxy-with-chain-and-overrides.envoy-1-16-x.golden => connect-proxy-with-grpc-chain.v2compat.envoy-1-17-x.golden} (97%) create mode 100644 agent/xds/testdata/listeners/connect-proxy-with-http-chain.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{connect-proxy-with-http-chain.envoy-1-16-x.golden => connect-proxy-with-http-chain.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/listeners/connect-proxy-with-http2-chain.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{connect-proxy-with-http2-chain.envoy-1-16-x.golden => connect-proxy-with-http2-chain.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/listeners/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden => connect-proxy-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden => connect-proxy-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/connect-proxy-with-tcp-chain.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{connect-proxy-with-tcp-chain.envoy-1-16-x.golden => connect-proxy-with-tcp-chain.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/custom-public-listener-http-2.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{custom-public-listener-http-2.envoy-1-16-x.golden => custom-public-listener-http-2.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/custom-public-listener-http-missing.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{custom-public-listener-http-missing.envoy-1-16-x.golden => custom-public-listener-http-missing.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/custom-public-listener-http.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{custom-public-listener-http.envoy-1-16-x.golden => custom-public-listener-http.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/custom-public-listener.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{custom-public-listener.envoy-1-16-x.golden => custom-public-listener.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/custom-upstream-ignored-with-disco-chain.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{custom-upstream-ignored-with-disco-chain.envoy-1-16-x.golden => custom-upstream-ignored-with-disco-chain.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/custom-upstream.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{custom-upstream.envoy-1-16-x.golden => custom-upstream.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/defaults.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{defaults.envoy-1-16-x.golden => defaults.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/expose-checks.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{expose-checks.envoy-1-16-x.golden => expose-checks.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/expose-paths-local-app-paths.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{expose-paths-local-app-paths.envoy-1-16-x.golden => expose-paths-local-app-paths.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/expose-paths-new-cluster-http2.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{expose-paths-new-cluster-http2.envoy-1-16-x.golden => expose-paths-new-cluster-http2.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/http-listener-with-timeouts.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{http-listener-with-timeouts.envoy-1-16-x.golden => http-listener-with-timeouts.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/http-public-listener.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{http-public-listener.envoy-1-16-x.golden => http-public-listener.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/http-upstream.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{http-upstream.envoy-1-16-x.golden => http-upstream.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/ingress-gateway-bind-addrs.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{ingress-gateway-bind-addrs.envoy-1-16-x.golden => ingress-gateway-bind-addrs.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/ingress-gateway-no-services.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{ingress-gateway-no-services.envoy-1-16-x.golden => ingress-gateway-no-services.v2compat.envoy-1-17-x.golden} (82%) create mode 100644 agent/xds/testdata/listeners/ingress-gateway.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{ingress-gateway.envoy-1-16-x.golden => ingress-gateway.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/ingress-http-multiple-services.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{ingress-http-multiple-services.envoy-1-16-x.golden => ingress-http-multiple-services.v2compat.envoy-1-17-x.golden} (94%) create mode 100644 agent/xds/testdata/listeners/ingress-splitter-with-resolver-redirect.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{ingress-splitter-with-resolver-redirect.envoy-1-16-x.golden => ingress-splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden} (94%) create mode 100644 agent/xds/testdata/listeners/ingress-with-chain-and-overrides.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{ingress-with-chain-and-overrides.envoy-1-16-x.golden => ingress-with-chain-and-overrides.v2compat.envoy-1-17-x.golden} (90%) create mode 100644 agent/xds/testdata/listeners/ingress-with-chain-external-sni.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{ingress-with-chain-external-sni.envoy-1-16-x.golden => ingress-with-chain-external-sni.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden => ingress-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden => ingress-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/ingress-with-tls-listener.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{ingress-with-tls-listener.envoy-1-16-x.golden => ingress-with-tls-listener.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/listener-bind-address-port.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{listener-bind-address-port.envoy-1-16-x.golden => listener-bind-address-port.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/listener-bind-address.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{listener-bind-address.envoy-1-16-x.golden => listener-bind-address.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/listener-bind-port.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{listener-bind-port.envoy-1-16-x.golden => listener-bind-port.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/mesh-gateway-custom-addresses.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{mesh-gateway-custom-addresses.envoy-1-16-x.golden => mesh-gateway-custom-addresses.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/mesh-gateway-no-services.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{mesh-gateway-no-services.envoy-1-16-x.golden => mesh-gateway-no-services.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/mesh-gateway-tagged-addresses.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{mesh-gateway-tagged-addresses.envoy-1-16-x.golden => mesh-gateway-tagged-addresses.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/mesh-gateway-using-federation-states.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{mesh-gateway-using-federation-states.envoy-1-16-x.golden => mesh-gateway-using-federation-states.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/mesh-gateway.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{mesh-gateway.envoy-1-16-x.golden => mesh-gateway.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/splitter-with-resolver-redirect.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{splitter-with-resolver-redirect.envoy-1-16-x.golden => splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden} (98%) create mode 100644 agent/xds/testdata/listeners/terminating-gateway-custom-and-tagged-addresses.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{terminating-gateway-custom-and-tagged-addresses.envoy-1-16-x.golden => terminating-gateway-custom-and-tagged-addresses.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/terminating-gateway-no-api-cert.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{terminating-gateway-no-api-cert.envoy-1-16-x.golden => terminating-gateway-no-api-cert.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/terminating-gateway-no-services.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{terminating-gateway-no-services.envoy-1-16-x.golden => terminating-gateway-no-services.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/listeners/terminating-gateway-service-subsets.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{terminating-gateway-service-subsets.envoy-1-16-x.golden => terminating-gateway-service-subsets.v2compat.envoy-1-17-x.golden} (99%) create mode 100644 agent/xds/testdata/listeners/terminating-gateway.envoy-1-17-x.golden rename agent/xds/testdata/listeners/{terminating-gateway.envoy-1-16-x.golden => terminating-gateway.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/rbac/default-allow-kitchen-sink--httpfilter.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-allow-kitchen-sink.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-allow-one-deny--httpfilter.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-allow-one-deny.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-allow-service-wildcard-deny--httpfilter.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-allow-service-wildcard-deny.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-allow-single-intention-with-kitchen-sink-perms--httpfilter.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-allow-single-intention-with-kitchen-sink-perms.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-allow-two-path-deny-and-path-allow--httpfilter.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-allow-two-path-deny-and-path-allow.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-deny-allow-deny--httpfilter.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-deny-allow-deny.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-deny-kitchen-sink--httpfilter.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-deny-kitchen-sink.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-deny-mixed-precedence--httpfilter.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-deny-mixed-precedence.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-deny-one-allow--httpfilter.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-deny-one-allow.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-deny-service-wildcard-allow--httpfilter.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-deny-service-wildcard-allow.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-deny-single-intention-with-kitchen-sink-perms--httpfilter.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-deny-single-intention-with-kitchen-sink-perms.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-deny-two-path-deny-and-path-allow--httpfilter.v2compat.golden create mode 100644 agent/xds/testdata/rbac/default-deny-two-path-deny-and-path-allow.v2compat.golden create mode 100644 agent/xds/testdata/routes/connect-proxy-lb-in-resolver.envoy-1-17-x.golden rename agent/xds/testdata/routes/{connect-proxy-lb-in-resolver.envoy-1-16-x.golden => connect-proxy-lb-in-resolver.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/routes/connect-proxy-with-chain-and-overrides.envoy-1-17-x.golden rename agent/xds/testdata/routes/{connect-proxy-with-chain-and-overrides.envoy-1-16-x.golden => connect-proxy-with-chain-and-overrides.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/routes/connect-proxy-with-chain-and-router.envoy-1-17-x.golden rename agent/xds/testdata/routes/{connect-proxy-with-chain-and-router.envoy-1-16-x.golden => connect-proxy-with-chain-and-router.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/routes/connect-proxy-with-chain-and-splitter.envoy-1-17-x.golden rename agent/xds/testdata/routes/{connect-proxy-with-chain-and-splitter.envoy-1-16-x.golden => connect-proxy-with-chain-and-splitter.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/routes/connect-proxy-with-chain-external-sni.envoy-1-17-x.golden rename agent/xds/testdata/routes/{connect-proxy-with-chain-external-sni.envoy-1-16-x.golden => connect-proxy-with-chain-external-sni.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/routes/connect-proxy-with-chain.envoy-1-17-x.golden rename agent/xds/testdata/routes/{connect-proxy-with-chain.envoy-1-16-x.golden => connect-proxy-with-chain.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/routes/connect-proxy-with-grpc-router.envoy-1-17-x.golden rename agent/xds/testdata/routes/{connect-proxy-with-grpc-router.envoy-1-16-x.golden => connect-proxy-with-grpc-router.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/routes/defaults-no-chain.envoy-1-17-x.golden rename agent/xds/testdata/routes/{ingress-defaults-no-chain.envoy-1-16-x.golden => defaults-no-chain.v2compat.envoy-1-17-x.golden} (84%) create mode 100644 agent/xds/testdata/routes/ingress-defaults-no-chain.envoy-1-17-x.golden rename agent/xds/testdata/routes/{ingress-with-chain-and-overrides.envoy-1-16-x.golden => ingress-defaults-no-chain.v2compat.envoy-1-17-x.golden} (84%) create mode 100644 agent/xds/testdata/routes/ingress-http-multiple-services.envoy-1-17-x.golden rename agent/xds/testdata/routes/{ingress-http-multiple-services.envoy-1-16-x.golden => ingress-http-multiple-services.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/routes/ingress-lb-in-resolver.envoy-1-17-x.golden rename agent/xds/testdata/routes/{ingress-lb-in-resolver.envoy-1-16-x.golden => ingress-lb-in-resolver.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/routes/ingress-splitter-with-resolver-redirect.envoy-1-17-x.golden rename agent/xds/testdata/routes/{ingress-splitter-with-resolver-redirect.envoy-1-16-x.golden => ingress-splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/routes/ingress-with-chain-and-overrides.envoy-1-17-x.golden rename agent/xds/testdata/routes/{ingress-with-chain-external-sni.envoy-1-16-x.golden => ingress-with-chain-and-overrides.v2compat.envoy-1-17-x.golden} (84%) create mode 100644 agent/xds/testdata/routes/ingress-with-chain-and-router.envoy-1-17-x.golden rename agent/xds/testdata/routes/{ingress-with-chain-and-router.envoy-1-16-x.golden => ingress-with-chain-and-router.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/routes/ingress-with-chain-and-splitter.envoy-1-17-x.golden rename agent/xds/testdata/routes/{ingress-with-chain-and-splitter.envoy-1-16-x.golden => ingress-with-chain-and-splitter.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/routes/ingress-with-chain-external-sni.envoy-1-17-x.golden rename agent/xds/testdata/routes/{defaults-no-chain.envoy-1-16-x.golden => ingress-with-chain-external-sni.v2compat.envoy-1-17-x.golden} (84%) delete mode 100644 agent/xds/testdata/routes/ingress-with-chain.envoy-1-16-x.golden create mode 100644 agent/xds/testdata/routes/ingress-with-chain.envoy-1-17-x.golden create mode 100644 agent/xds/testdata/routes/ingress-with-chain.v2compat.envoy-1-17-x.golden create mode 100644 agent/xds/testdata/routes/ingress-with-grpc-router.envoy-1-17-x.golden rename agent/xds/testdata/routes/{ingress-with-grpc-router.envoy-1-16-x.golden => ingress-with-grpc-router.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/routes/splitter-with-resolver-redirect.envoy-1-17-x.golden rename agent/xds/testdata/routes/{splitter-with-resolver-redirect.envoy-1-16-x.golden => splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/testdata/routes/terminating-gateway-lb-config.envoy-1-17-x.golden rename agent/xds/testdata/routes/{terminating-gateway-lb-config.envoy-1-16-x.golden => terminating-gateway-lb-config.v2compat.envoy-1-17-x.golden} (100%) create mode 100644 agent/xds/version_compat.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/accesslog/v3/accesslog.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/accesslog/v3/accesslog.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/circuit_breaker.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/circuit_breaker.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/cluster.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/cluster.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/filter.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/filter.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/outlier_detection.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/outlier_detection.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/address.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/address.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/backoff.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/backoff.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/base.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/base.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/config_source.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/config_source.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/event_service_config.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/event_service_config.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/grpc_method_list.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/grpc_method_list.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/grpc_service.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/grpc_service.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/health_check.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/health_check.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/http_uri.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/http_uri.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/protocol.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/protocol.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/socket_option.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/socket_option.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/endpoint.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/endpoint.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/endpoint_components.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/endpoint_components.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/load_report.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/load_report.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/filter/listener/tls_inspector/v2/tls_inspector.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/filter/listener/tls_inspector/v2/tls_inspector.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/filter/network/sni_cluster/v2/sni_cluster.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/filter/network/sni_cluster/v2/sni_cluster.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/api_listener.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/api_listener.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/listener.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/listener.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/listener_components.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/listener_components.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/quic_config.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/quic_config.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/udp_listener_config.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/udp_listener_config.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v2/metrics_service.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v2/metrics_service.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v2/stats.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v2/stats.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3/metrics_service.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3/metrics_service.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3/stats.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3/stats.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/rbac/v3/rbac.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/rbac/v3/rbac.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/route.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/route.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/route_components.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/route_components.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/scoped_route.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/scoped_route.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/trace/v3/trace.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/trace/v3/trace.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/trace/v3/xray.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/config/trace/v3/xray.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/rbac/v3/rbac.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/rbac/v3/rbac.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/listener/tls_inspector/v3/tls_inspector.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/listener/tls_inspector/v3/tls_inspector.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/rbac/v3/rbac.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/rbac/v3/rbac.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/sni_cluster/v3/sni_cluster.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/sni_cluster/v3/sni_cluster.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/tcp_proxy/v3/tcp_proxy.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/tcp_proxy/v3/tcp_proxy.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3/cert.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3/cert.pb.validate.go delete mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/service/auth/v2/attribute_context.pb.go delete mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/service/auth/v2/attribute_context.pb.validate.go delete mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/service/auth/v2/external_auth.pb.go delete mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/service/auth/v2/external_auth.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3/ads.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3/ads.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3/discovery.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3/discovery.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/metadata.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/metadata.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/node.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/node.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/number.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/number.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/path.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/path.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/regex.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/regex.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/string.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/string.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/struct.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/struct.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/value.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/value.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/metadata/v3/metadata.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/metadata/v3/metadata.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3/custom_tag.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3/custom_tag.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/hash_policy.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/hash_policy.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/http.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/http.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/http_status.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/http_status.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/percent.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/percent.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/range.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/range.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/semantic_version.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/semantic_version.pb.validate.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/token_bucket.pb.go create mode 100644 vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/token_bucket.pb.validate.go diff --git a/.changelog/9658.txt b/.changelog/9658.txt new file mode 100644 index 000000000..2cc505052 --- /dev/null +++ b/.changelog/9658.txt @@ -0,0 +1,6 @@ +```release-note:improvement +xds: default to speaking xDS v3, but allow for v2 to be spoken upon request +``` +```release-note:improvement +xds: add supoprt for envoy 1.17.0 +``` diff --git a/.circleci/config.yml b/.circleci/config.yml index 41de62c7d..0f41679b5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -819,17 +819,38 @@ jobs: path: *TEST_RESULTS_DIR - run: *notify-slack-failure + envoy-integration-test-1_14_6-v2compat: + <<: *ENVOY_TESTS + environment: + ENVOY_VERSION: "1.14.6" + TEST_V2_XDS: "1" + envoy-integration-test-1_15_3: <<: *ENVOY_TESTS environment: ENVOY_VERSION: "1.15.3" + envoy-integration-test-1_15_3-v2compat: + <<: *ENVOY_TESTS + environment: + ENVOY_VERSION: "1.15.3" + TEST_V2_XDS: "1" + envoy-integration-test-1_16_2: <<: *ENVOY_TESTS environment: ENVOY_VERSION: "1.16.2" - # TODO(rb): add in 1.17.0 support when v3 is ready + envoy-integration-test-1_16_2-v2compat: + <<: *ENVOY_TESTS + environment: + ENVOY_VERSION: "1.16.2" + TEST_V2_XDS: "1" + + envoy-integration-test-1_17_0: + <<: *ENVOY_TESTS + environment: + ENVOY_VERSION: "1.17.0" # run integration tests for the connect ca providers test-connect-ca-providers: @@ -1042,13 +1063,24 @@ workflows: - envoy-integration-test-1_14_6: requires: - dev-build + - envoy-integration-test-1_14_6-v2compat: + requires: + - dev-build - envoy-integration-test-1_15_3: requires: - dev-build + - envoy-integration-test-1_15_3-v2compat: + requires: + - dev-build - envoy-integration-test-1_16_2: requires: - dev-build - # TODO(rb): add in 1.17.0 support when v3 is ready + - envoy-integration-test-1_16_2-v2compat: + requires: + - dev-build + - envoy-integration-test-1_17_0: + requires: + - dev-build website: unless: << pipeline.parameters.trigger-load-test >> diff --git a/agent/xds/clusters.go b/agent/xds/clusters.go index 70e4c8cf2..fa527e2a7 100644 --- a/agent/xds/clusters.go +++ b/agent/xds/clusters.go @@ -1,17 +1,15 @@ package xds import ( - "encoding/json" "errors" "fmt" "time" - envoy "github.com/envoyproxy/go-control-plane/envoy/api/v2" - envoyauth "github.com/envoyproxy/go-control-plane/envoy/api/v2/auth" - envoycluster "github.com/envoyproxy/go-control-plane/envoy/api/v2/cluster" - envoycore "github.com/envoyproxy/go-control-plane/envoy/api/v2/core" - envoyendpoint "github.com/envoyproxy/go-control-plane/envoy/api/v2/endpoint" - envoytype "github.com/envoyproxy/go-control-plane/envoy/type" + envoy_cluster_v3 "github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3" + envoy_core_v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + envoy_endpoint_v3 "github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3" + envoy_tls_v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3" + envoy_type_v3 "github.com/envoyproxy/go-control-plane/envoy/type/v3" "github.com/golang/protobuf/jsonpb" "github.com/golang/protobuf/proto" @@ -259,7 +257,7 @@ func (s *Server) makeGatewayServiceClusters( return clusters, nil } -func (s *Server) injectGatewayServiceAddons(cfgSnap *proxycfg.ConfigSnapshot, c *envoy.Cluster, svc structs.ServiceName, lb *structs.LoadBalancer) error { +func (s *Server) injectGatewayServiceAddons(cfgSnap *proxycfg.ConfigSnapshot, c *envoy_cluster_v3.Cluster, svc structs.ServiceName, lb *structs.LoadBalancer) error { switch cfgSnap.Kind { case structs.ServiceKindMeshGateway: // We can't apply hash based LB config to mesh gateways because they rely on inspecting HTTP attributes @@ -272,7 +270,7 @@ func (s *Server) injectGatewayServiceAddons(cfgSnap *proxycfg.ConfigSnapshot, c case structs.ServiceKindTerminatingGateway: // Context used for TLS origination to the cluster if mapping, ok := cfgSnap.TerminatingGateway.GatewayServices[svc]; ok && mapping.CAFile != "" { - tlsContext := &envoyauth.UpstreamTlsContext{ + tlsContext := &envoy_tls_v3.UpstreamTlsContext{ CommonTlsContext: makeCommonTLSContextFromFiles(mapping.CAFile, mapping.CertFile, mapping.KeyFile), } if mapping.SNI != "" { @@ -332,8 +330,8 @@ func (s *Server) clustersFromSnapshotIngressGateway(cfgSnap *proxycfg.ConfigSnap return clusters, nil } -func (s *Server) makeAppCluster(cfgSnap *proxycfg.ConfigSnapshot, name, pathProtocol string, port int) (*envoy.Cluster, error) { - var c *envoy.Cluster +func (s *Server) makeAppCluster(cfgSnap *proxycfg.ConfigSnapshot, name, pathProtocol string, port int) (*envoy_cluster_v3.Cluster, error) { + var c *envoy_cluster_v3.Cluster var err error cfg, err := ParseProxyConfig(cfgSnap.Proxy.Config) @@ -352,15 +350,15 @@ func (s *Server) makeAppCluster(cfgSnap *proxycfg.ConfigSnapshot, name, pathProt if addr == "" { addr = "127.0.0.1" } - c = &envoy.Cluster{ + c = &envoy_cluster_v3.Cluster{ Name: name, ConnectTimeout: ptypes.DurationProto(time.Duration(cfg.LocalConnectTimeoutMs) * time.Millisecond), - ClusterDiscoveryType: &envoy.Cluster_Type{Type: envoy.Cluster_STATIC}, - LoadAssignment: &envoy.ClusterLoadAssignment{ + ClusterDiscoveryType: &envoy_cluster_v3.Cluster_Type{Type: envoy_cluster_v3.Cluster_STATIC}, + LoadAssignment: &envoy_endpoint_v3.ClusterLoadAssignment{ ClusterName: name, - Endpoints: []*envoyendpoint.LocalityLbEndpoints{ + Endpoints: []*envoy_endpoint_v3.LocalityLbEndpoints{ { - LbEndpoints: []*envoyendpoint.LbEndpoint{ + LbEndpoints: []*envoy_endpoint_v3.LbEndpoint{ makeEndpoint(addr, port), }, }, @@ -372,14 +370,14 @@ func (s *Server) makeAppCluster(cfgSnap *proxycfg.ConfigSnapshot, name, pathProt protocol = cfg.Protocol } if protocol == "http2" || protocol == "grpc" { - c.Http2ProtocolOptions = &envoycore.Http2ProtocolOptions{} + c.Http2ProtocolOptions = &envoy_core_v3.Http2ProtocolOptions{} } return c, err } -func (s *Server) makeUpstreamClusterForPreparedQuery(upstream structs.Upstream, cfgSnap *proxycfg.ConfigSnapshot) (*envoy.Cluster, error) { - var c *envoy.Cluster +func (s *Server) makeUpstreamClusterForPreparedQuery(upstream structs.Upstream, cfgSnap *proxycfg.ConfigSnapshot) (*envoy_cluster_v3.Cluster, error) { + var c *envoy_cluster_v3.Cluster var err error dc := upstream.Datacenter @@ -403,29 +401,30 @@ func (s *Server) makeUpstreamClusterForPreparedQuery(upstream structs.Upstream, } if c == nil { - c = &envoy.Cluster{ + c = &envoy_cluster_v3.Cluster{ Name: sni, ConnectTimeout: ptypes.DurationProto(time.Duration(cfg.ConnectTimeoutMs) * time.Millisecond), - ClusterDiscoveryType: &envoy.Cluster_Type{Type: envoy.Cluster_EDS}, - EdsClusterConfig: &envoy.Cluster_EdsClusterConfig{ - EdsConfig: &envoycore.ConfigSource{ - ConfigSourceSpecifier: &envoycore.ConfigSource_Ads{ - Ads: &envoycore.AggregatedConfigSource{}, + ClusterDiscoveryType: &envoy_cluster_v3.Cluster_Type{Type: envoy_cluster_v3.Cluster_EDS}, + EdsClusterConfig: &envoy_cluster_v3.Cluster_EdsClusterConfig{ + EdsConfig: &envoy_core_v3.ConfigSource{ + ResourceApiVersion: envoy_core_v3.ApiVersion_V3, + ConfigSourceSpecifier: &envoy_core_v3.ConfigSource_Ads{ + Ads: &envoy_core_v3.AggregatedConfigSource{}, }, }, }, - CircuitBreakers: &envoycluster.CircuitBreakers{ + CircuitBreakers: &envoy_cluster_v3.CircuitBreakers{ Thresholds: makeThresholdsIfNeeded(cfg.Limits), }, OutlierDetection: cfg.PassiveHealthCheck.AsOutlierDetection(), } if cfg.Protocol == "http2" || cfg.Protocol == "grpc" { - c.Http2ProtocolOptions = &envoycore.Http2ProtocolOptions{} + c.Http2ProtocolOptions = &envoy_core_v3.Http2ProtocolOptions{} } } // Enable TLS upstream with the configured client certificate. - tlsContext := &envoyauth.UpstreamTlsContext{ + tlsContext := &envoy_tls_v3.UpstreamTlsContext{ CommonTlsContext: makeCommonTLSContextFromLeaf(cfgSnap, cfgSnap.Leaf()), Sni: sni, } @@ -444,7 +443,7 @@ func (s *Server) makeUpstreamClustersForDiscoveryChain( chain *structs.CompiledDiscoveryChain, chainEndpoints map[string]structs.CheckServiceNodes, cfgSnap *proxycfg.ConfigSnapshot, -) ([]*envoy.Cluster, error) { +) ([]*envoy_cluster_v3.Cluster, error) { if chain == nil { return nil, fmt.Errorf("cannot create upstream cluster without discovery chain for %s", upstream.Identifier()) } @@ -457,7 +456,7 @@ func (s *Server) makeUpstreamClustersForDiscoveryChain( "error", err) } - var escapeHatchCluster *envoy.Cluster + var escapeHatchCluster *envoy_cluster_v3.Cluster if cfg.ClusterJSON != "" { if chain.IsDefault() { // If you haven't done anything to setup the discovery chain, then @@ -473,7 +472,7 @@ func (s *Server) makeUpstreamClustersForDiscoveryChain( } } - var out []*envoy.Cluster + var out []*envoy_cluster_v3.Cluster for _, node := range chain.Nodes { if node.Type != structs.DiscoveryGraphNodeTypeResolver { continue @@ -504,24 +503,25 @@ func (s *Server) makeUpstreamClustersForDiscoveryChain( } s.Logger.Debug("generating cluster for", "cluster", clusterName) - c := &envoy.Cluster{ + c := &envoy_cluster_v3.Cluster{ Name: clusterName, AltStatName: clusterName, ConnectTimeout: ptypes.DurationProto(node.Resolver.ConnectTimeout), - ClusterDiscoveryType: &envoy.Cluster_Type{Type: envoy.Cluster_EDS}, - CommonLbConfig: &envoy.Cluster_CommonLbConfig{ - HealthyPanicThreshold: &envoytype.Percent{ + ClusterDiscoveryType: &envoy_cluster_v3.Cluster_Type{Type: envoy_cluster_v3.Cluster_EDS}, + CommonLbConfig: &envoy_cluster_v3.Cluster_CommonLbConfig{ + HealthyPanicThreshold: &envoy_type_v3.Percent{ Value: 0, // disable panic threshold }, }, - EdsClusterConfig: &envoy.Cluster_EdsClusterConfig{ - EdsConfig: &envoycore.ConfigSource{ - ConfigSourceSpecifier: &envoycore.ConfigSource_Ads{ - Ads: &envoycore.AggregatedConfigSource{}, + EdsClusterConfig: &envoy_cluster_v3.Cluster_EdsClusterConfig{ + EdsConfig: &envoy_core_v3.ConfigSource{ + ResourceApiVersion: envoy_core_v3.ApiVersion_V3, + ConfigSourceSpecifier: &envoy_core_v3.ConfigSource_Ads{ + Ads: &envoy_core_v3.AggregatedConfigSource{}, }, }, }, - CircuitBreakers: &envoycluster.CircuitBreakers{ + CircuitBreakers: &envoy_cluster_v3.CircuitBreakers{ Thresholds: makeThresholdsIfNeeded(cfg.Limits), }, OutlierDetection: cfg.PassiveHealthCheck.AsOutlierDetection(), @@ -545,11 +545,11 @@ func (s *Server) makeUpstreamClustersForDiscoveryChain( } if proto == "http2" || proto == "grpc" { - c.Http2ProtocolOptions = &envoycore.Http2ProtocolOptions{} + c.Http2ProtocolOptions = &envoy_core_v3.Http2ProtocolOptions{} } // Enable TLS upstream with the configured client certificate. - tlsContext := &envoyauth.UpstreamTlsContext{ + tlsContext := &envoy_tls_v3.UpstreamTlsContext{ CommonTlsContext: makeCommonTLSContextFromLeaf(cfgSnap, cfgSnap.Leaf()), Sni: sni, } @@ -572,7 +572,7 @@ func (s *Server) makeUpstreamClustersForDiscoveryChain( // Overlay what the user provided. escapeHatchCluster.TransportSocket = defaultCluster.TransportSocket - out = []*envoy.Cluster{escapeHatchCluster} + out = []*envoy_cluster_v3.Cluster{escapeHatchCluster} } return out, nil @@ -590,32 +590,20 @@ func (s *Server) makeUpstreamClustersForDiscoveryChain( // immediately. It's also probably not a bad thing to support long-term since // any config generated by other systems will likely be in canonical protobuf // from rather than our slight variant in JSON/hcl. -func makeClusterFromUserConfig(configJSON string) (*envoy.Cluster, error) { - var jsonFields map[string]*json.RawMessage - if err := json.Unmarshal([]byte(configJSON), &jsonFields); err != nil { - fmt.Println("Custom error", err, configJSON) +func makeClusterFromUserConfig(configJSON string) (*envoy_cluster_v3.Cluster, error) { + // Type field is present so decode it as a types.Any + var any any.Any + err := jsonpb.UnmarshalString(configJSON, &any) + if err != nil { return nil, err } - var c envoy.Cluster - - if _, ok := jsonFields["@type"]; ok { - // Type field is present so decode it as a types.Any - var any any.Any - err := jsonpb.UnmarshalString(configJSON, &any) - if err != nil { - return nil, err - } - // And then unmarshal the listener again... - err = proto.Unmarshal(any.Value, &c) - if err != nil { - return nil, err - } - return &c, err + // And then unmarshal the listener again... + var c envoy_cluster_v3.Cluster + err = proto.Unmarshal(any.Value, &c) + if err != nil { + return nil, err } - - // No @type so try decoding as a straight cluster. - err := jsonpb.UnmarshalString(configJSON, &c) return &c, err } @@ -637,7 +625,7 @@ type gatewayClusterOpts struct { } // makeGatewayCluster creates an Envoy cluster for a mesh or terminating gateway -func (s *Server) makeGatewayCluster(snap *proxycfg.ConfigSnapshot, opts gatewayClusterOpts) *envoy.Cluster { +func (s *Server) makeGatewayCluster(snap *proxycfg.ConfigSnapshot, opts gatewayClusterOpts) *envoy_cluster_v3.Cluster { cfg, err := ParseGatewayConfig(snap.Proxy.Config) if err != nil { // Don't hard fail on a config typo, just warn. The parse func returns @@ -648,12 +636,12 @@ func (s *Server) makeGatewayCluster(snap *proxycfg.ConfigSnapshot, opts gatewayC opts.connectTimeout = time.Duration(cfg.ConnectTimeoutMs) * time.Millisecond } - cluster := &envoy.Cluster{ + cluster := &envoy_cluster_v3.Cluster{ Name: opts.name, ConnectTimeout: ptypes.DurationProto(opts.connectTimeout), // Having an empty config enables outlier detection with default config. - OutlierDetection: &envoycluster.OutlierDetection{}, + OutlierDetection: &envoy_cluster_v3.OutlierDetection{}, } useEDS := true @@ -663,11 +651,12 @@ func (s *Server) makeGatewayCluster(snap *proxycfg.ConfigSnapshot, opts gatewayC // If none of the service instances are addressed by a hostname we provide the endpoint IP addresses via EDS if useEDS { - cluster.ClusterDiscoveryType = &envoy.Cluster_Type{Type: envoy.Cluster_EDS} - cluster.EdsClusterConfig = &envoy.Cluster_EdsClusterConfig{ - EdsConfig: &envoycore.ConfigSource{ - ConfigSourceSpecifier: &envoycore.ConfigSource_Ads{ - Ads: &envoycore.AggregatedConfigSource{}, + cluster.ClusterDiscoveryType = &envoy_cluster_v3.Cluster_Type{Type: envoy_cluster_v3.Cluster_EDS} + cluster.EdsClusterConfig = &envoy_cluster_v3.Cluster_EdsClusterConfig{ + EdsConfig: &envoy_core_v3.ConfigSource{ + ResourceApiVersion: envoy_core_v3.ApiVersion_V3, + ConfigSourceSpecifier: &envoy_core_v3.ConfigSource_Ads{ + Ads: &envoy_core_v3.AggregatedConfigSource{}, }, }, } @@ -678,28 +667,28 @@ func (s *Server) makeGatewayCluster(snap *proxycfg.ConfigSnapshot, opts gatewayC // by setting a DNS cluster type and passing the hostname endpoints via CDS. rate := 10 * time.Second cluster.DnsRefreshRate = ptypes.DurationProto(rate) - cluster.DnsLookupFamily = envoy.Cluster_V4_ONLY + cluster.DnsLookupFamily = envoy_cluster_v3.Cluster_V4_ONLY - discoveryType := envoy.Cluster_Type{Type: envoy.Cluster_LOGICAL_DNS} + discoveryType := envoy_cluster_v3.Cluster_Type{Type: envoy_cluster_v3.Cluster_LOGICAL_DNS} if cfg.DNSDiscoveryType == "strict_dns" { - discoveryType.Type = envoy.Cluster_STRICT_DNS + discoveryType.Type = envoy_cluster_v3.Cluster_STRICT_DNS } cluster.ClusterDiscoveryType = &discoveryType - endpoints := make([]*envoyendpoint.LbEndpoint, 0, 1) + endpoints := make([]*envoy_endpoint_v3.LbEndpoint, 0, 1) uniqueHostnames := make(map[string]bool) var ( hostname string idx int - fallback *envoyendpoint.LbEndpoint + fallback *envoy_endpoint_v3.LbEndpoint ) for i, e := range opts.hostnameEndpoints { addr, port := e.BestAddress(opts.isRemote) uniqueHostnames[addr] = true health, weight := calculateEndpointHealthAndWeight(e, opts.onlyPassing) - if health == envoycore.HealthStatus_UNHEALTHY { + if health == envoy_core_v3.HealthStatus_UNHEALTHY { fallback = makeLbEndpoint(addr, port, health, weight) continue } @@ -734,9 +723,9 @@ func (s *Server) makeGatewayCluster(snap *proxycfg.ConfigSnapshot, opts gatewayC "dc", dc, "service", service.String()) } - cluster.LoadAssignment = &envoy.ClusterLoadAssignment{ + cluster.LoadAssignment = &envoy_endpoint_v3.ClusterLoadAssignment{ ClusterName: cluster.Name, - Endpoints: []*envoyendpoint.LocalityLbEndpoints{ + Endpoints: []*envoy_endpoint_v3.LocalityLbEndpoints{ { LbEndpoints: endpoints, }, @@ -745,7 +734,7 @@ func (s *Server) makeGatewayCluster(snap *proxycfg.ConfigSnapshot, opts gatewayC return cluster } -func makeThresholdsIfNeeded(limits UpstreamLimits) []*envoycluster.CircuitBreakers_Thresholds { +func makeThresholdsIfNeeded(limits UpstreamLimits) []*envoy_cluster_v3.CircuitBreakers_Thresholds { var empty UpstreamLimits // Make sure to not create any thresholds when passed the zero-value in order // to rely on Envoy defaults @@ -753,7 +742,7 @@ func makeThresholdsIfNeeded(limits UpstreamLimits) []*envoycluster.CircuitBreake return nil } - threshold := &envoycluster.CircuitBreakers_Thresholds{} + threshold := &envoy_cluster_v3.CircuitBreakers_Thresholds{} // Likewise, make sure to not set any threshold values on the zero-value in // order to rely on Envoy defaults if limits.MaxConnections != nil { @@ -766,18 +755,18 @@ func makeThresholdsIfNeeded(limits UpstreamLimits) []*envoycluster.CircuitBreake threshold.MaxRequests = makeUint32Value(*limits.MaxConcurrentRequests) } - return []*envoycluster.CircuitBreakers_Thresholds{threshold} + return []*envoy_cluster_v3.CircuitBreakers_Thresholds{threshold} } -func makeLbEndpoint(addr string, port int, health envoycore.HealthStatus, weight int) *envoyendpoint.LbEndpoint { - return &envoyendpoint.LbEndpoint{ - HostIdentifier: &envoyendpoint.LbEndpoint_Endpoint{ - Endpoint: &envoyendpoint.Endpoint{ - Address: &envoycore.Address{ - Address: &envoycore.Address_SocketAddress{ - SocketAddress: &envoycore.SocketAddress{ +func makeLbEndpoint(addr string, port int, health envoy_core_v3.HealthStatus, weight int) *envoy_endpoint_v3.LbEndpoint { + return &envoy_endpoint_v3.LbEndpoint{ + HostIdentifier: &envoy_endpoint_v3.LbEndpoint_Endpoint{ + Endpoint: &envoy_endpoint_v3.Endpoint{ + Address: &envoy_core_v3.Address{ + Address: &envoy_core_v3.Address_SocketAddress{ + SocketAddress: &envoy_core_v3.SocketAddress{ Address: addr, - PortSpecifier: &envoycore.SocketAddress_PortValue{ + PortSpecifier: &envoy_core_v3.SocketAddress_PortValue{ PortValue: uint32(port), }, }, @@ -790,7 +779,7 @@ func makeLbEndpoint(addr string, port int, health envoycore.HealthStatus, weight } } -func injectLBToCluster(ec *structs.LoadBalancer, c *envoy.Cluster) error { +func injectLBToCluster(ec *structs.LoadBalancer, c *envoy_cluster_v3.Cluster) error { if ec == nil { return nil } @@ -799,34 +788,34 @@ func injectLBToCluster(ec *structs.LoadBalancer, c *envoy.Cluster) error { case "": return nil case structs.LBPolicyLeastRequest: - c.LbPolicy = envoy.Cluster_LEAST_REQUEST + c.LbPolicy = envoy_cluster_v3.Cluster_LEAST_REQUEST if ec.LeastRequestConfig != nil { - c.LbConfig = &envoy.Cluster_LeastRequestLbConfig_{ - LeastRequestLbConfig: &envoy.Cluster_LeastRequestLbConfig{ + c.LbConfig = &envoy_cluster_v3.Cluster_LeastRequestLbConfig_{ + LeastRequestLbConfig: &envoy_cluster_v3.Cluster_LeastRequestLbConfig{ ChoiceCount: &wrappers.UInt32Value{Value: ec.LeastRequestConfig.ChoiceCount}, }, } } case structs.LBPolicyRoundRobin: - c.LbPolicy = envoy.Cluster_ROUND_ROBIN + c.LbPolicy = envoy_cluster_v3.Cluster_ROUND_ROBIN case structs.LBPolicyRandom: - c.LbPolicy = envoy.Cluster_RANDOM + c.LbPolicy = envoy_cluster_v3.Cluster_RANDOM case structs.LBPolicyRingHash: - c.LbPolicy = envoy.Cluster_RING_HASH + c.LbPolicy = envoy_cluster_v3.Cluster_RING_HASH if ec.RingHashConfig != nil { - c.LbConfig = &envoy.Cluster_RingHashLbConfig_{ - RingHashLbConfig: &envoy.Cluster_RingHashLbConfig{ + c.LbConfig = &envoy_cluster_v3.Cluster_RingHashLbConfig_{ + RingHashLbConfig: &envoy_cluster_v3.Cluster_RingHashLbConfig{ MinimumRingSize: &wrappers.UInt64Value{Value: ec.RingHashConfig.MinimumRingSize}, MaximumRingSize: &wrappers.UInt64Value{Value: ec.RingHashConfig.MaximumRingSize}, }, } } case structs.LBPolicyMaglev: - c.LbPolicy = envoy.Cluster_MAGLEV + c.LbPolicy = envoy_cluster_v3.Cluster_MAGLEV default: return fmt.Errorf("unsupported load balancer policy %q for cluster %q", ec.Policy, c.Name) diff --git a/agent/xds/clusters_test.go b/agent/xds/clusters_test.go index 21cd89188..751b2327f 100644 --- a/agent/xds/clusters_test.go +++ b/agent/xds/clusters_test.go @@ -8,7 +8,7 @@ import ( "text/template" "time" - envoy "github.com/envoyproxy/go-control-plane/envoy/api/v2" + envoy_cluster_v3 "github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3" "github.com/golang/protobuf/ptypes/wrappers" testinf "github.com/mitchellh/go-testing-interface" @@ -625,8 +625,6 @@ func TestClustersFromSnapshot(t *testing.T) { t.Run("envoy-"+envoyVersion, func(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - require := require.New(t) - // Sanity check default with no overrides first snap := tt.create(t) @@ -647,21 +645,41 @@ func TestClustersFromSnapshot(t *testing.T) { ProxyFeatures: sf, } clusters, err := s.clustersFromSnapshot(cInfo, snap) - require.NoError(err) + require.NoError(t, err) + sort.Slice(clusters, func(i, j int) bool { - return clusters[i].(*envoy.Cluster).Name < clusters[j].(*envoy.Cluster).Name + return clusters[i].(*envoy_cluster_v3.Cluster).Name < clusters[j].(*envoy_cluster_v3.Cluster).Name }) + r, err := createResponse(ClusterType, "00000001", "00000001", clusters) - require.NoError(err) + require.NoError(t, err) - gotJSON := responseToJSON(t, r) + t.Run("current", func(t *testing.T) { + gotJSON := protoToJSON(t, r) - gName := tt.name - if tt.overrideGoldenName != "" { - gName = tt.overrideGoldenName - } + gName := tt.name + if tt.overrideGoldenName != "" { + gName = tt.overrideGoldenName + } - require.JSONEq(goldenEnvoy(t, filepath.Join("clusters", gName), envoyVersion, latestEnvoyVersion, gotJSON), gotJSON) + require.JSONEq(t, goldenEnvoy(t, filepath.Join("clusters", gName), envoyVersion, latestEnvoyVersion, gotJSON), gotJSON) + }) + + t.Run("v2-compat", func(t *testing.T) { + respV2, err := convertDiscoveryResponseToV2(r) + require.NoError(t, err) + + gotJSON := protoToJSON(t, respV2) + + gName := tt.name + if tt.overrideGoldenName != "" { + gName = tt.overrideGoldenName + } + + gName += ".v2compat" + + require.JSONEq(t, goldenEnvoy(t, filepath.Join("clusters", gName), envoyVersion, latestEnvoyVersion, gotJSON), gotJSON) + }) }) } }) @@ -672,7 +690,7 @@ func expectClustersJSONResources(snap *proxycfg.ConfigSnapshot) map[string]strin return map[string]string{ "local_app": ` { - "@type": "type.googleapis.com/envoy.api.v2.Cluster", + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", "name": "local_app", "type": "STATIC", "connectTimeout": "5s", @@ -698,11 +716,12 @@ func expectClustersJSONResources(snap *proxycfg.ConfigSnapshot) map[string]strin }`, "db": ` { - "@type": "type.googleapis.com/envoy.api.v2.Cluster", + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", "type": "EDS", "edsClusterConfig": { "edsConfig": { + "resourceApiVersion": "V3", "ads": { } @@ -723,11 +742,12 @@ func expectClustersJSONResources(snap *proxycfg.ConfigSnapshot) map[string]strin }`, "prepared_query:geo-cache": ` { - "@type": "type.googleapis.com/envoy.api.v2.Cluster", + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", "type": "EDS", "edsClusterConfig": { "edsConfig": { + "resourceApiVersion": "V3", "ads": { } @@ -768,7 +788,7 @@ func expectClustersJSONFromResources(snap *proxycfg.ConfigSnapshot, v, n uint64, return `{ "versionInfo": "` + hexString(v) + `", "resources": [` + resJSON + `], - "typeUrl": "type.googleapis.com/envoy.api.v2.Cluster", + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", "nonce": "` + hexString(n) + `" }` } @@ -783,26 +803,37 @@ type customClusterJSONOptions struct { } var customAppClusterJSONTpl = `{ - "@type": "type.googleapis.com/envoy.api.v2.Cluster", + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", {{ if .TLSContext -}} "transport_socket": { "name": "tls", "typed_config": { - "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", {{ .TLSContext }} } }, {{- end }} "name": "{{ .Name }}", "connectTimeout": "15s", - "hosts": [ - { - "socketAddress": { - "address": "127.0.0.1", - "portValue": 8080 + "loadAssignment": { + "clusterName": "{{ .Name }}", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] } - } - ] + ] + } }` var customAppClusterJSONTemplate = template.Must(template.New("").Parse(customAppClusterJSONTpl)) @@ -835,35 +866,35 @@ func TestEnvoyLBConfig_InjectToCluster(t *testing.T) { var tests = []struct { name string lb *structs.LoadBalancer - expected *envoy.Cluster + expected *envoy_cluster_v3.Cluster }{ { name: "skip empty", lb: &structs.LoadBalancer{ Policy: "", }, - expected: &envoy.Cluster{}, + expected: &envoy_cluster_v3.Cluster{}, }, { name: "round robin", lb: &structs.LoadBalancer{ Policy: structs.LBPolicyRoundRobin, }, - expected: &envoy.Cluster{LbPolicy: envoy.Cluster_ROUND_ROBIN}, + expected: &envoy_cluster_v3.Cluster{LbPolicy: envoy_cluster_v3.Cluster_ROUND_ROBIN}, }, { name: "random", lb: &structs.LoadBalancer{ Policy: structs.LBPolicyRandom, }, - expected: &envoy.Cluster{LbPolicy: envoy.Cluster_RANDOM}, + expected: &envoy_cluster_v3.Cluster{LbPolicy: envoy_cluster_v3.Cluster_RANDOM}, }, { name: "maglev", lb: &structs.LoadBalancer{ Policy: structs.LBPolicyMaglev, }, - expected: &envoy.Cluster{LbPolicy: envoy.Cluster_MAGLEV}, + expected: &envoy_cluster_v3.Cluster{LbPolicy: envoy_cluster_v3.Cluster_MAGLEV}, }, { name: "ring_hash", @@ -874,10 +905,10 @@ func TestEnvoyLBConfig_InjectToCluster(t *testing.T) { MaximumRingSize: 7, }, }, - expected: &envoy.Cluster{ - LbPolicy: envoy.Cluster_RING_HASH, - LbConfig: &envoy.Cluster_RingHashLbConfig_{ - RingHashLbConfig: &envoy.Cluster_RingHashLbConfig{ + expected: &envoy_cluster_v3.Cluster{ + LbPolicy: envoy_cluster_v3.Cluster_RING_HASH, + LbConfig: &envoy_cluster_v3.Cluster_RingHashLbConfig_{ + RingHashLbConfig: &envoy_cluster_v3.Cluster_RingHashLbConfig{ MinimumRingSize: &wrappers.UInt64Value{Value: 3}, MaximumRingSize: &wrappers.UInt64Value{Value: 7}, }, @@ -892,10 +923,10 @@ func TestEnvoyLBConfig_InjectToCluster(t *testing.T) { ChoiceCount: 3, }, }, - expected: &envoy.Cluster{ - LbPolicy: envoy.Cluster_LEAST_REQUEST, - LbConfig: &envoy.Cluster_LeastRequestLbConfig_{ - LeastRequestLbConfig: &envoy.Cluster_LeastRequestLbConfig{ + expected: &envoy_cluster_v3.Cluster{ + LbPolicy: envoy_cluster_v3.Cluster_LEAST_REQUEST, + LbConfig: &envoy_cluster_v3.Cluster_LeastRequestLbConfig_{ + LeastRequestLbConfig: &envoy_cluster_v3.Cluster_LeastRequestLbConfig{ ChoiceCount: &wrappers.UInt32Value{Value: 3}, }, }, @@ -905,7 +936,7 @@ func TestEnvoyLBConfig_InjectToCluster(t *testing.T) { for _, tc := range tests { t.Run(tc.name, func(t *testing.T) { - var c envoy.Cluster + var c envoy_cluster_v3.Cluster err := injectLBToCluster(tc.lb, &c) require.NoError(t, err) diff --git a/agent/xds/config.go b/agent/xds/config.go index dd8bf9adf..57fb0d25e 100644 --- a/agent/xds/config.go +++ b/agent/xds/config.go @@ -4,7 +4,7 @@ import ( "strings" "time" - envoycluster "github.com/envoyproxy/go-control-plane/envoy/api/v2/cluster" + envoy_cluster_v3 "github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3" "github.com/golang/protobuf/ptypes" "github.com/golang/protobuf/ptypes/wrappers" @@ -217,8 +217,8 @@ type PassiveHealthCheck struct { // Return an envoy.OutlierDetection populated by the values from this struct. // If all values are zero a default empty OutlierDetection will be returned to // enable outlier detection with default values. -func (p PassiveHealthCheck) AsOutlierDetection() *envoycluster.OutlierDetection { - od := &envoycluster.OutlierDetection{} +func (p PassiveHealthCheck) AsOutlierDetection() *envoy_cluster_v3.OutlierDetection { + od := &envoy_cluster_v3.OutlierDetection{} if p.Interval != 0 { od.Interval = ptypes.DurationProto(p.Interval) } diff --git a/agent/xds/endpoints.go b/agent/xds/endpoints.go index 69992ea8a..71ec1e7b5 100644 --- a/agent/xds/endpoints.go +++ b/agent/xds/endpoints.go @@ -4,9 +4,9 @@ import ( "errors" "fmt" - envoy "github.com/envoyproxy/go-control-plane/envoy/api/v2" - envoycore "github.com/envoyproxy/go-control-plane/envoy/api/v2/core" - envoyendpoint "github.com/envoyproxy/go-control-plane/envoy/api/v2/endpoint" + envoy_cluster_v3 "github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3" + envoy_core_v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + envoy_endpoint_v3 "github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3" "github.com/golang/protobuf/proto" bexpr "github.com/hashicorp/go-bexpr" @@ -163,26 +163,26 @@ func (s *Server) endpointsFromSnapshotMeshGateway(cfgSnap *proxycfg.ConfigSnapsh // generate endpoints for our servers if WAN federation is enabled if cfgSnap.ServiceMeta[structs.MetaWANFederationKey] == "1" && cfgSnap.ServerSNIFn != nil { - var allServersLbEndpoints []*envoyendpoint.LbEndpoint + var allServersLbEndpoints []*envoy_endpoint_v3.LbEndpoint for _, srv := range cfgSnap.MeshGateway.ConsulServers { clusterName := cfgSnap.ServerSNIFn(cfgSnap.Datacenter, srv.Node.Node) addr, port := srv.BestAddress(false /*wan*/) - lbEndpoint := &envoyendpoint.LbEndpoint{ - HostIdentifier: &envoyendpoint.LbEndpoint_Endpoint{ - Endpoint: &envoyendpoint.Endpoint{ + lbEndpoint := &envoy_endpoint_v3.LbEndpoint{ + HostIdentifier: &envoy_endpoint_v3.LbEndpoint_Endpoint{ + Endpoint: &envoy_endpoint_v3.Endpoint{ Address: makeAddress(addr, port), }, }, - HealthStatus: envoycore.HealthStatus_UNKNOWN, + HealthStatus: envoy_core_v3.HealthStatus_UNKNOWN, } - cla := &envoy.ClusterLoadAssignment{ + cla := &envoy_endpoint_v3.ClusterLoadAssignment{ ClusterName: clusterName, - Endpoints: []*envoyendpoint.LocalityLbEndpoints{{ - LbEndpoints: []*envoyendpoint.LbEndpoint{lbEndpoint}, + Endpoints: []*envoy_endpoint_v3.LocalityLbEndpoints{{ + LbEndpoints: []*envoy_endpoint_v3.LbEndpoint{lbEndpoint}, }}, } allServersLbEndpoints = append(allServersLbEndpoints, lbEndpoint) @@ -192,9 +192,9 @@ func (s *Server) endpointsFromSnapshotMeshGateway(cfgSnap *proxycfg.ConfigSnapsh // And add one catch all so that remote datacenters can dial ANY server // in this datacenter without knowing its name. - resources = append(resources, &envoy.ClusterLoadAssignment{ + resources = append(resources, &envoy_endpoint_v3.ClusterLoadAssignment{ ClusterName: cfgSnap.ServerSNIFn(cfgSnap.Datacenter, ""), - Endpoints: []*envoyendpoint.LocalityLbEndpoints{{ + Endpoints: []*envoy_endpoint_v3.LocalityLbEndpoints{{ LbEndpoints: allServersLbEndpoints, }}, }) @@ -290,10 +290,10 @@ func (s *Server) endpointsFromSnapshotIngressGateway(cfgSnap *proxycfg.ConfigSna return resources, nil } -func makeEndpoint(host string, port int) *envoyendpoint.LbEndpoint { - return &envoyendpoint.LbEndpoint{ - HostIdentifier: &envoyendpoint.LbEndpoint_Endpoint{ - Endpoint: &envoyendpoint.Endpoint{ +func makeEndpoint(host string, port int) *envoy_endpoint_v3.LbEndpoint { + return &envoy_endpoint_v3.LbEndpoint{ + HostIdentifier: &envoy_endpoint_v3.LbEndpoint_Endpoint{ + Endpoint: &envoy_endpoint_v3.Endpoint{ Address: makeAddress(host, port), }, }, @@ -320,7 +320,7 @@ func (s *Server) endpointsFromDiscoveryChain( "error", err) } - var escapeHatchCluster *envoy.Cluster + var escapeHatchCluster *envoy_cluster_v3.Cluster if cfg.ClusterJSON != "" { if chain.IsDefault() { // If you haven't done anything to setup the discovery chain, then @@ -418,17 +418,17 @@ func (s *Server) endpointsFromDiscoveryChain( type loadAssignmentEndpointGroup struct { Endpoints structs.CheckServiceNodes OnlyPassing bool - OverrideHealth envoycore.HealthStatus + OverrideHealth envoy_core_v3.HealthStatus } -func makeLoadAssignment(clusterName string, endpointGroups []loadAssignmentEndpointGroup, localDatacenter string) *envoy.ClusterLoadAssignment { - cla := &envoy.ClusterLoadAssignment{ +func makeLoadAssignment(clusterName string, endpointGroups []loadAssignmentEndpointGroup, localDatacenter string) *envoy_endpoint_v3.ClusterLoadAssignment { + cla := &envoy_endpoint_v3.ClusterLoadAssignment{ ClusterName: clusterName, - Endpoints: make([]*envoyendpoint.LocalityLbEndpoints, 0, len(endpointGroups)), + Endpoints: make([]*envoy_endpoint_v3.LocalityLbEndpoints, 0, len(endpointGroups)), } if len(endpointGroups) > 1 { - cla.Policy = &envoy.ClusterLoadAssignment_Policy{ + cla.Policy = &envoy_endpoint_v3.ClusterLoadAssignment_Policy{ // We choose such a large value here that the failover math should // in effect not happen until zero instances are healthy. OverprovisioningFactor: makeUint32Value(100000), @@ -437,20 +437,20 @@ func makeLoadAssignment(clusterName string, endpointGroups []loadAssignmentEndpo for priority, endpointGroup := range endpointGroups { endpoints := endpointGroup.Endpoints - es := make([]*envoyendpoint.LbEndpoint, 0, len(endpoints)) + es := make([]*envoy_endpoint_v3.LbEndpoint, 0, len(endpoints)) for _, ep := range endpoints { // TODO (mesh-gateway) - should we respect the translate_wan_addrs configuration here or just always use the wan for cross-dc? addr, port := ep.BestAddress(localDatacenter != ep.Node.Datacenter) healthStatus, weight := calculateEndpointHealthAndWeight(ep, endpointGroup.OnlyPassing) - if endpointGroup.OverrideHealth != envoycore.HealthStatus_UNKNOWN { + if endpointGroup.OverrideHealth != envoy_core_v3.HealthStatus_UNKNOWN { healthStatus = endpointGroup.OverrideHealth } - es = append(es, &envoyendpoint.LbEndpoint{ - HostIdentifier: &envoyendpoint.LbEndpoint_Endpoint{ - Endpoint: &envoyendpoint.Endpoint{ + es = append(es, &envoy_endpoint_v3.LbEndpoint{ + HostIdentifier: &envoy_endpoint_v3.LbEndpoint_Endpoint{ + Endpoint: &envoy_endpoint_v3.Endpoint{ Address: makeAddress(addr, port), }, }, @@ -459,7 +459,7 @@ func makeLoadAssignment(clusterName string, endpointGroups []loadAssignmentEndpo }) } - cla.Endpoints = append(cla.Endpoints, &envoyendpoint.LocalityLbEndpoints{ + cla.Endpoints = append(cla.Endpoints, &envoy_endpoint_v3.LocalityLbEndpoints{ Priority: uint32(priority), LbEndpoints: es, }) @@ -505,11 +505,11 @@ func makeLoadAssignmentEndpointGroup( } // But we will use the health from the actual backend service. - overallHealth := envoycore.HealthStatus_UNHEALTHY + overallHealth := envoy_core_v3.HealthStatus_UNHEALTHY for _, ep := range realEndpoints { health, _ := calculateEndpointHealthAndWeight(ep, target.Subset.OnlyPassing) - if health == envoycore.HealthStatus_HEALTHY { - overallHealth = envoycore.HealthStatus_HEALTHY + if health == envoy_core_v3.HealthStatus_HEALTHY { + overallHealth = envoy_core_v3.HealthStatus_HEALTHY break } } @@ -523,8 +523,8 @@ func makeLoadAssignmentEndpointGroup( func calculateEndpointHealthAndWeight( ep structs.CheckServiceNode, onlyPassing bool, -) (envoycore.HealthStatus, int) { - healthStatus := envoycore.HealthStatus_HEALTHY +) (envoy_core_v3.HealthStatus, int) { + healthStatus := envoy_core_v3.HealthStatus_HEALTHY weight := 1 if ep.Service.Weights != nil { weight = ep.Service.Weights.Passing @@ -532,10 +532,10 @@ func calculateEndpointHealthAndWeight( for _, chk := range ep.Checks { if chk.Status == api.HealthCritical { - healthStatus = envoycore.HealthStatus_UNHEALTHY + healthStatus = envoy_core_v3.HealthStatus_UNHEALTHY } if onlyPassing && chk.Status != api.HealthPassing { - healthStatus = envoycore.HealthStatus_UNHEALTHY + healthStatus = envoy_core_v3.HealthStatus_UNHEALTHY } if chk.Status == api.HealthWarning && ep.Service.Weights != nil { weight = ep.Service.Weights.Warning @@ -545,7 +545,7 @@ func calculateEndpointHealthAndWeight( // (likely) or Passing (weirdly) weight has been set to 0 effectively making // this instance unhealthy and should not be sent traffic. if weight < 1 { - healthStatus = envoycore.HealthStatus_UNHEALTHY + healthStatus = envoy_core_v3.HealthStatus_UNHEALTHY weight = 1 } if weight > 128 { diff --git a/agent/xds/endpoints_test.go b/agent/xds/endpoints_test.go index 8322e308c..b1df33726 100644 --- a/agent/xds/endpoints_test.go +++ b/agent/xds/endpoints_test.go @@ -5,9 +5,8 @@ import ( "sort" "testing" - envoy "github.com/envoyproxy/go-control-plane/envoy/api/v2" - envoycore "github.com/envoyproxy/go-control-plane/envoy/api/v2/core" - envoyendpoint "github.com/envoyproxy/go-control-plane/envoy/api/v2/endpoint" + envoy_core_v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + envoy_endpoint_v3 "github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3" "github.com/mitchellh/copystructure" testinf "github.com/mitchellh/go-testing-interface" @@ -99,7 +98,7 @@ func Test_makeLoadAssignment(t *testing.T) { name string clusterName string endpoints []loadAssignmentEndpointGroup - want *envoy.ClusterLoadAssignment + want *envoy_endpoint_v3.ClusterLoadAssignment }{ { name: "no instances", @@ -107,10 +106,10 @@ func Test_makeLoadAssignment(t *testing.T) { endpoints: []loadAssignmentEndpointGroup{ {Endpoints: nil}, }, - want: &envoy.ClusterLoadAssignment{ + want: &envoy_endpoint_v3.ClusterLoadAssignment{ ClusterName: "service:test", - Endpoints: []*envoyendpoint.LocalityLbEndpoints{{ - LbEndpoints: []*envoyendpoint.LbEndpoint{}, + Endpoints: []*envoy_endpoint_v3.LocalityLbEndpoints{{ + LbEndpoints: []*envoy_endpoint_v3.LbEndpoint{}, }}, }, }, @@ -120,24 +119,24 @@ func Test_makeLoadAssignment(t *testing.T) { endpoints: []loadAssignmentEndpointGroup{ {Endpoints: testCheckServiceNodes}, }, - want: &envoy.ClusterLoadAssignment{ + want: &envoy_endpoint_v3.ClusterLoadAssignment{ ClusterName: "service:test", - Endpoints: []*envoyendpoint.LocalityLbEndpoints{{ - LbEndpoints: []*envoyendpoint.LbEndpoint{ + Endpoints: []*envoy_endpoint_v3.LocalityLbEndpoints{{ + LbEndpoints: []*envoy_endpoint_v3.LbEndpoint{ { - HostIdentifier: &envoyendpoint.LbEndpoint_Endpoint{ - Endpoint: &envoyendpoint.Endpoint{ + HostIdentifier: &envoy_endpoint_v3.LbEndpoint_Endpoint{ + Endpoint: &envoy_endpoint_v3.Endpoint{ Address: makeAddress("10.10.10.10", 1234), }}, - HealthStatus: envoycore.HealthStatus_HEALTHY, + HealthStatus: envoy_core_v3.HealthStatus_HEALTHY, LoadBalancingWeight: makeUint32Value(1), }, { - HostIdentifier: &envoyendpoint.LbEndpoint_Endpoint{ - Endpoint: &envoyendpoint.Endpoint{ + HostIdentifier: &envoy_endpoint_v3.LbEndpoint_Endpoint{ + Endpoint: &envoy_endpoint_v3.Endpoint{ Address: makeAddress("10.10.10.20", 1234), }}, - HealthStatus: envoycore.HealthStatus_HEALTHY, + HealthStatus: envoy_core_v3.HealthStatus_HEALTHY, LoadBalancingWeight: makeUint32Value(1), }, }, @@ -150,24 +149,24 @@ func Test_makeLoadAssignment(t *testing.T) { endpoints: []loadAssignmentEndpointGroup{ {Endpoints: testWeightedCheckServiceNodes}, }, - want: &envoy.ClusterLoadAssignment{ + want: &envoy_endpoint_v3.ClusterLoadAssignment{ ClusterName: "service:test", - Endpoints: []*envoyendpoint.LocalityLbEndpoints{{ - LbEndpoints: []*envoyendpoint.LbEndpoint{ + Endpoints: []*envoy_endpoint_v3.LocalityLbEndpoints{{ + LbEndpoints: []*envoy_endpoint_v3.LbEndpoint{ { - HostIdentifier: &envoyendpoint.LbEndpoint_Endpoint{ - Endpoint: &envoyendpoint.Endpoint{ + HostIdentifier: &envoy_endpoint_v3.LbEndpoint_Endpoint{ + Endpoint: &envoy_endpoint_v3.Endpoint{ Address: makeAddress("10.10.10.10", 1234), }}, - HealthStatus: envoycore.HealthStatus_HEALTHY, + HealthStatus: envoy_core_v3.HealthStatus_HEALTHY, LoadBalancingWeight: makeUint32Value(10), }, { - HostIdentifier: &envoyendpoint.LbEndpoint_Endpoint{ - Endpoint: &envoyendpoint.Endpoint{ + HostIdentifier: &envoy_endpoint_v3.LbEndpoint_Endpoint{ + Endpoint: &envoy_endpoint_v3.Endpoint{ Address: makeAddress("10.10.10.20", 1234), }}, - HealthStatus: envoycore.HealthStatus_HEALTHY, + HealthStatus: envoy_core_v3.HealthStatus_HEALTHY, LoadBalancingWeight: makeUint32Value(5), }, }, @@ -180,24 +179,24 @@ func Test_makeLoadAssignment(t *testing.T) { endpoints: []loadAssignmentEndpointGroup{ {Endpoints: testWarningCheckServiceNodes}, }, - want: &envoy.ClusterLoadAssignment{ + want: &envoy_endpoint_v3.ClusterLoadAssignment{ ClusterName: "service:test", - Endpoints: []*envoyendpoint.LocalityLbEndpoints{{ - LbEndpoints: []*envoyendpoint.LbEndpoint{ + Endpoints: []*envoy_endpoint_v3.LocalityLbEndpoints{{ + LbEndpoints: []*envoy_endpoint_v3.LbEndpoint{ { - HostIdentifier: &envoyendpoint.LbEndpoint_Endpoint{ - Endpoint: &envoyendpoint.Endpoint{ + HostIdentifier: &envoy_endpoint_v3.LbEndpoint_Endpoint{ + Endpoint: &envoy_endpoint_v3.Endpoint{ Address: makeAddress("10.10.10.10", 1234), }}, - HealthStatus: envoycore.HealthStatus_HEALTHY, + HealthStatus: envoy_core_v3.HealthStatus_HEALTHY, LoadBalancingWeight: makeUint32Value(1), }, { - HostIdentifier: &envoyendpoint.LbEndpoint_Endpoint{ - Endpoint: &envoyendpoint.Endpoint{ + HostIdentifier: &envoy_endpoint_v3.LbEndpoint_Endpoint{ + Endpoint: &envoy_endpoint_v3.Endpoint{ Address: makeAddress("10.10.10.20", 1234), }}, - HealthStatus: envoycore.HealthStatus_UNHEALTHY, + HealthStatus: envoy_core_v3.HealthStatus_UNHEALTHY, LoadBalancingWeight: makeUint32Value(1), }, }, @@ -217,7 +216,7 @@ func Test_makeLoadAssignment(t *testing.T) { } } -func Test_endpointsFromSnapshot(t *testing.T) { +func TestEndpointsFromSnapshot(t *testing.T) { if testing.Short() { t.Skip("too slow for testing.Short") } @@ -564,8 +563,6 @@ func Test_endpointsFromSnapshot(t *testing.T) { t.Run("envoy-"+envoyVersion, func(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - require := require.New(t) - // Sanity check default with no overrides first snap := tt.create(t) @@ -586,21 +583,40 @@ func Test_endpointsFromSnapshot(t *testing.T) { ProxyFeatures: sf, } endpoints, err := s.endpointsFromSnapshot(cInfo, snap) + require.NoError(t, err) + sort.Slice(endpoints, func(i, j int) bool { - return endpoints[i].(*envoy.ClusterLoadAssignment).ClusterName < endpoints[j].(*envoy.ClusterLoadAssignment).ClusterName + return endpoints[i].(*envoy_endpoint_v3.ClusterLoadAssignment).ClusterName < endpoints[j].(*envoy_endpoint_v3.ClusterLoadAssignment).ClusterName }) - require.NoError(err) r, err := createResponse(EndpointType, "00000001", "00000001", endpoints) - require.NoError(err) + require.NoError(t, err) - gotJSON := responseToJSON(t, r) + t.Run("current", func(t *testing.T) { + gotJSON := protoToJSON(t, r) - gName := tt.name - if tt.overrideGoldenName != "" { - gName = tt.overrideGoldenName - } + gName := tt.name + if tt.overrideGoldenName != "" { + gName = tt.overrideGoldenName + } - require.JSONEq(goldenEnvoy(t, filepath.Join("endpoints", gName), envoyVersion, latestEnvoyVersion, gotJSON), gotJSON) + require.JSONEq(t, goldenEnvoy(t, filepath.Join("endpoints", gName), envoyVersion, latestEnvoyVersion, gotJSON), gotJSON) + }) + + t.Run("v2-compat", func(t *testing.T) { + respV2, err := convertDiscoveryResponseToV2(r) + require.NoError(t, err) + + gotJSON := protoToJSON(t, respV2) + + gName := tt.name + if tt.overrideGoldenName != "" { + gName = tt.overrideGoldenName + } + + gName += ".v2compat" + + require.JSONEq(t, goldenEnvoy(t, filepath.Join("endpoints", gName), envoyVersion, latestEnvoyVersion, gotJSON), gotJSON) + }) }) } }) diff --git a/agent/xds/envoy_versioning.go b/agent/xds/envoy_versioning.go index ab07936f8..30a642e99 100644 --- a/agent/xds/envoy_versioning.go +++ b/agent/xds/envoy_versioning.go @@ -3,7 +3,7 @@ package xds import ( "fmt" - envoycore "github.com/envoyproxy/go-control-plane/envoy/api/v2/core" + envoy_core_v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" "github.com/hashicorp/go-version" ) @@ -26,7 +26,7 @@ type supportedProxyFeatures struct { // add version dependent feature flags here } -func determineSupportedProxyFeatures(node *envoycore.Node) (supportedProxyFeatures, error) { +func determineSupportedProxyFeatures(node *envoy_core_v3.Node) (supportedProxyFeatures, error) { version := determineEnvoyVersionFromNode(node) return determineSupportedProxyFeaturesFromVersion(version) } @@ -62,7 +62,7 @@ func determineSupportedProxyFeaturesFromVersion(version *version.Version) (suppo return supportedProxyFeatures{}, nil } -func determineEnvoyVersionFromNode(node *envoycore.Node) *version.Version { +func determineEnvoyVersionFromNode(node *envoy_core_v3.Node) *version.Version { if node == nil { return nil } @@ -75,7 +75,7 @@ func determineEnvoyVersionFromNode(node *envoycore.Node) *version.Version { return nil } - bv, ok := node.UserAgentVersionType.(*envoycore.Node_UserAgentBuildVersion) + bv, ok := node.UserAgentVersionType.(*envoy_core_v3.Node_UserAgentBuildVersion) if !ok { // NOTE: we could sniff for *envoycore.Node_UserAgentVersion and do more regex but official builds don't have this problem. return nil diff --git a/agent/xds/envoy_versioning_test.go b/agent/xds/envoy_versioning_test.go index 7dd7755ff..cb7a9cb57 100644 --- a/agent/xds/envoy_versioning_test.go +++ b/agent/xds/envoy_versioning_test.go @@ -3,8 +3,8 @@ package xds import ( "testing" - envoycore "github.com/envoyproxy/go-control-plane/envoy/api/v2/core" - envoytype "github.com/envoyproxy/go-control-plane/envoy/type" + envoy_core_v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + envoy_type_v3 "github.com/envoyproxy/go-control-plane/envoy/type/v3" "github.com/hashicorp/go-version" "github.com/stretchr/testify/require" @@ -14,19 +14,19 @@ import ( func TestDetermineEnvoyVersionFromNode(t *testing.T) { cases := map[string]struct { - node *envoycore.Node + node *envoy_core_v3.Node expect *version.Version }{ "empty": { - node: &envoycore.Node{}, + node: &envoy_core_v3.Node{}, expect: nil, }, "user agent build version but no user agent": { - node: &envoycore.Node{ + node: &envoy_core_v3.Node{ UserAgentName: "", - UserAgentVersionType: &envoycore.Node_UserAgentBuildVersion{ - UserAgentBuildVersion: &envoycore.BuildVersion{ - Version: &envoytype.SemanticVersion{ + UserAgentVersionType: &envoy_core_v3.Node_UserAgentBuildVersion{ + UserAgentBuildVersion: &envoy_core_v3.BuildVersion{ + Version: &envoy_type_v3.SemanticVersion{ MajorNumber: 1, MinorNumber: 14, Patch: 4, @@ -37,11 +37,11 @@ func TestDetermineEnvoyVersionFromNode(t *testing.T) { expect: nil, }, "user agent build version with user agent": { - node: &envoycore.Node{ + node: &envoy_core_v3.Node{ UserAgentName: "envoy", - UserAgentVersionType: &envoycore.Node_UserAgentBuildVersion{ - UserAgentBuildVersion: &envoycore.BuildVersion{ - Version: &envoytype.SemanticVersion{ + UserAgentVersionType: &envoy_core_v3.Node_UserAgentBuildVersion{ + UserAgentBuildVersion: &envoy_core_v3.BuildVersion{ + Version: &envoy_type_v3.SemanticVersion{ MajorNumber: 1, MinorNumber: 14, Patch: 4, @@ -105,6 +105,7 @@ func TestDetermineSupportedProxyFeaturesFromString(t *testing.T) { "1.14.1", "1.14.2", "1.14.3", "1.14.4", "1.14.5", "1.14.6", "1.15.0", "1.15.1", "1.15.2", "1.15.3", "1.16.0", "1.16.1", "1.16.2", + "1.17.0", } { cases[v] = testcase{expect: supportedProxyFeatures{}} } diff --git a/agent/xds/failover_math.go b/agent/xds/failover_math.go index 0bd11ee72..4ebae8932 100644 --- a/agent/xds/failover_math.go +++ b/agent/xds/failover_math.go @@ -1,7 +1,7 @@ package xds import ( - envoycore "github.com/envoyproxy/go-control-plane/envoy/api/v2/core" + envoy_core_v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" "github.com/hashicorp/consul/agent/structs" ) @@ -28,7 +28,7 @@ func firstHealthyTarget( } for _, ep := range endpoints { healthStatus, _ := calculateEndpointHealthAndWeight(ep, target.Subset.OnlyPassing) - if healthStatus == envoycore.HealthStatus_HEALTHY { + if healthStatus == envoy_core_v3.HealthStatus_HEALTHY { return targetID } } diff --git a/agent/xds/golden_test.go b/agent/xds/golden_test.go index d4af1075f..78baf8baa 100644 --- a/agent/xds/golden_test.go +++ b/agent/xds/golden_test.go @@ -8,8 +8,6 @@ import ( "path/filepath" "testing" - envoy "github.com/envoyproxy/go-control-plane/envoy/api/v2" - "github.com/golang/protobuf/jsonpb" "github.com/golang/protobuf/proto" "github.com/hashicorp/go-version" @@ -130,10 +128,6 @@ func loadTestResource(t *testing.T, name string) string { return string(expected) } -func responseToJSON(t *testing.T, r *envoy.DiscoveryResponse) string { - return protoToJSON(t, r) -} - func protoToJSON(t *testing.T, pb proto.Message) string { t.Helper() m := jsonpb.Marshaler{ diff --git a/agent/xds/listeners.go b/agent/xds/listeners.go index 604580c35..3e5f552f4 100644 --- a/agent/xds/listeners.go +++ b/agent/xds/listeners.go @@ -11,14 +11,13 @@ import ( "strings" "time" - envoy "github.com/envoyproxy/go-control-plane/envoy/api/v2" - envoyauth "github.com/envoyproxy/go-control-plane/envoy/api/v2/auth" - envoycore "github.com/envoyproxy/go-control-plane/envoy/api/v2/core" - envoylistener "github.com/envoyproxy/go-control-plane/envoy/api/v2/listener" - envoyroute "github.com/envoyproxy/go-control-plane/envoy/api/v2/route" - envoyhttp "github.com/envoyproxy/go-control-plane/envoy/config/filter/network/http_connection_manager/v2" - envoytcp "github.com/envoyproxy/go-control-plane/envoy/config/filter/network/tcp_proxy/v2" - envoytype "github.com/envoyproxy/go-control-plane/envoy/type" + envoy_core_v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + envoy_listener_v3 "github.com/envoyproxy/go-control-plane/envoy/config/listener/v3" + envoy_route_v3 "github.com/envoyproxy/go-control-plane/envoy/config/route/v3" + envoy_http_v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3" + envoy_tcp_proxy_v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/tcp_proxy/v3" + envoy_tls_v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3" + envoy_type_v3 "github.com/envoyproxy/go-control-plane/envoy/type/v3" "github.com/golang/protobuf/jsonpb" "github.com/golang/protobuf/proto" @@ -255,7 +254,7 @@ func (s *Server) listenersFromSnapshotGateway(cInfo connectionInfo, cfgSnap *pro } seen[a.ServiceAddress] = true - var l *envoy.Listener + var l *envoy_listener_v3.Listener switch cfgSnap.Kind { case structs.ServiceKindTerminatingGateway: @@ -286,9 +285,9 @@ func (s *Server) makeIngressGatewayListeners(address string, cfgSnap *proxycfg.C var resources []proto.Message for listenerKey, upstreams := range cfgSnap.IngressGateway.Upstreams { - var tlsContext *envoyauth.DownstreamTlsContext + var tlsContext *envoy_tls_v3.DownstreamTlsContext if cfgSnap.IngressGateway.TLSEnabled { - tlsContext = &envoyauth.DownstreamTlsContext{ + tlsContext = &envoy_tls_v3.DownstreamTlsContext{ CommonTlsContext: makeCommonTLSContextFromLeaf(cfgSnap, cfgSnap.Leaf()), RequireClientCertificate: &wrappers.BoolValue{Value: false}, } @@ -317,7 +316,7 @@ func (s *Server) makeIngressGatewayListeners(address string, cfgSnap *proxycfg.C resources = append(resources, upstreamListener) } else { // If multiple upstreams share this port, make a special listener for the protocol. - listener := makeListener(listenerKey.Protocol, address, listenerKey.Port, envoycore.TrafficDirection_OUTBOUND) + listener := makeListener(listenerKey.Protocol, address, listenerKey.Port, envoy_core_v3.TrafficDirection_OUTBOUND) opts := listenerFilterOpts{ useRDS: true, protocol: listenerKey.Protocol, @@ -338,9 +337,9 @@ func (s *Server) makeIngressGatewayListeners(address string, cfgSnap *proxycfg.C return nil, err } - listener.FilterChains = []*envoylistener.FilterChain{ + listener.FilterChains = []*envoy_listener_v3.FilterChain{ { - Filters: []*envoylistener.Filter{ + Filters: []*envoy_listener_v3.Filter{ filter, }, TransportSocket: transportSocket, @@ -364,8 +363,8 @@ func (s *Server) makeIngressGatewayListeners(address string, cfgSnap *proxycfg.C // changes them, we actually create a whole new listener on the new address and // port. Envoy should take care of closing the old one once it sees it's no // longer in the config. -func makeListener(name, addr string, port int, trafficDirection envoycore.TrafficDirection) *envoy.Listener { - return &envoy.Listener{ +func makeListener(name, addr string, port int, trafficDirection envoy_core_v3.TrafficDirection) *envoy_listener_v3.Listener { + return &envoy_listener_v3.Listener{ Name: fmt.Sprintf("%s:%s:%d", name, addr, port), Address: makeAddress(addr, port), TrafficDirection: trafficDirection, @@ -384,13 +383,13 @@ func makeListener(name, addr string, port int, trafficDirection envoycore.Traffi // immediately. It's also probably not a bad thing to support long-term since // any config generated by other systems will likely be in canonical protobuf // from rather than our slight variant in JSON/hcl. -func makeListenerFromUserConfig(configJSON string) (*envoy.Listener, error) { +func makeListenerFromUserConfig(configJSON string) (*envoy_listener_v3.Listener, error) { // Type field is present so decode it as a any.Any var any any.Any if err := jsonpb.UnmarshalString(configJSON, &any); err != nil { return nil, err } - var l envoy.Listener + var l envoy_listener_v3.Listener if err := proto.Unmarshal(any.Value, &l); err != nil { return nil, err } @@ -399,7 +398,7 @@ func makeListenerFromUserConfig(configJSON string) (*envoy.Listener, error) { // Ensure that the first filter in each filter chain of a public listener is // the authz filter to prevent unauthorized access. -func (s *Server) injectConnectFilters(_ connectionInfo, cfgSnap *proxycfg.ConfigSnapshot, listener *envoy.Listener) error { +func (s *Server) injectConnectFilters(_ connectionInfo, cfgSnap *proxycfg.ConfigSnapshot, listener *envoy_listener_v3.Listener) error { authzFilter, err := makeRBACNetworkFilter( cfgSnap.ConnectProxy.Intentions, cfgSnap.IntentionDefaultAllow, @@ -411,7 +410,7 @@ func (s *Server) injectConnectFilters(_ connectionInfo, cfgSnap *proxycfg.Config for idx := range listener.FilterChains { // Insert our authz filter before any others listener.FilterChains[idx].Filters = - append([]*envoylistener.Filter{ + append([]*envoy_listener_v3.Filter{ authzFilter, }, listener.FilterChains[idx].Filters...) } @@ -425,12 +424,12 @@ const ( // Locate the existing http connect manager L4 filter and inject our RBAC filter at the top. func (s *Server) injectHTTPFilterOnFilterChains( - listener *envoy.Listener, - authzFilter *envoyhttp.HttpFilter, + listener *envoy_listener_v3.Listener, + authzFilter *envoy_http_v3.HttpFilter, ) error { for chainIdx, chain := range listener.FilterChains { var ( - hcmFilter *envoylistener.Filter + hcmFilter *envoy_listener_v3.Filter hcmFilterIdx int ) @@ -452,9 +451,9 @@ func (s *Server) injectHTTPFilterOnFilterChains( } var ( - hcm envoyhttp.HttpConnectionManager + hcm envoy_http_v3.HttpConnectionManager ) - tc, ok := hcmFilter.ConfigType.(*envoylistener.Filter_TypedConfig) + tc, ok := hcmFilter.ConfigType.(*envoy_listener_v3.Filter_TypedConfig) if !ok { return fmt.Errorf( "filter chain %d has a %q filter with an unsupported config type: %T", @@ -469,7 +468,7 @@ func (s *Server) injectHTTPFilterOnFilterChains( } // Insert our authz filter before any others - hcm.HttpFilters = append([]*envoyhttp.HttpFilter{ + hcm.HttpFilters = append([]*envoy_http_v3.HttpFilter{ authzFilter, }, hcm.HttpFilters...) @@ -489,9 +488,9 @@ func (s *Server) injectHTTPFilterOnFilterChains( // for now as it allows them to specify custom listener params in config but // still get our certs delivered dynamically and intentions enforced without // coming up with some complicated templating/merging solution. -func (s *Server) injectConnectTLSOnFilterChains(_ connectionInfo, cfgSnap *proxycfg.ConfigSnapshot, listener *envoy.Listener) error { +func (s *Server) injectConnectTLSOnFilterChains(_ connectionInfo, cfgSnap *proxycfg.ConfigSnapshot, listener *envoy_listener_v3.Listener) error { for idx := range listener.FilterChains { - tlsContext := &envoyauth.DownstreamTlsContext{ + tlsContext := &envoy_tls_v3.DownstreamTlsContext{ CommonTlsContext: makeCommonTLSContextFromLeaf(cfgSnap, cfgSnap.Leaf()), RequireClientCertificate: &wrappers.BoolValue{Value: true}, } @@ -505,7 +504,7 @@ func (s *Server) injectConnectTLSOnFilterChains(_ connectionInfo, cfgSnap *proxy } func (s *Server) makePublicListener(cInfo connectionInfo, cfgSnap *proxycfg.ConfigSnapshot) (proto.Message, error) { - var l *envoy.Listener + var l *envoy_listener_v3.Listener var err error cfg, err := ParseProxyConfig(cfgSnap.Proxy.Config) @@ -545,7 +544,7 @@ func (s *Server) makePublicListener(cInfo connectionInfo, cfgSnap *proxycfg.Conf port = cfg.BindPort } - l = makeListener(PublicListenerName, addr, port, envoycore.TrafficDirection_INBOUND) + l = makeListener(PublicListenerName, addr, port, envoy_core_v3.TrafficDirection_INBOUND) opts := listenerFilterOpts{ useRDS: false, @@ -572,9 +571,9 @@ func (s *Server) makePublicListener(cInfo connectionInfo, cfgSnap *proxycfg.Conf if err != nil { return nil, err } - l.FilterChains = []*envoylistener.FilterChain{ + l.FilterChains = []*envoy_listener_v3.FilterChain{ { - Filters: []*envoylistener.Filter{ + Filters: []*envoy_listener_v3.Filter{ filter, }, }, @@ -638,7 +637,7 @@ func (s *Server) makeExposedCheckListener(cfgSnap *proxycfg.ConfigSnapshot, clus strippedPath := r.ReplaceAllString(path.Path, "") listenerName := fmt.Sprintf("exposed_path_%s", strippedPath) - l := makeListener(listenerName, addr, path.ListenerPort, envoycore.TrafficDirection_INBOUND) + l := makeListener(listenerName, addr, path.ListenerPort, envoy_core_v3.TrafficDirection_INBOUND) filterName := fmt.Sprintf("exposed_path_filter_%s_%d", strippedPath, path.ListenerPort) @@ -657,8 +656,8 @@ func (s *Server) makeExposedCheckListener(cfgSnap *proxycfg.ConfigSnapshot, clus return nil, err } - chain := &envoylistener.FilterChain{ - Filters: []*envoylistener.Filter{f}, + chain := &envoy_listener_v3.FilterChain{ + Filters: []*envoy_listener_v3.Filter{f}, } // For registered checks restrict traffic sources to localhost and Consul's advertise addr @@ -674,26 +673,26 @@ func (s *Server) makeExposedCheckListener(cfgSnap *proxycfg.ConfigSnapshot, clus advertiseLen = 128 } - ranges := make([]*envoycore.CidrRange, 0, 3) + ranges := make([]*envoy_core_v3.CidrRange, 0, 3) ranges = append(ranges, - &envoycore.CidrRange{AddressPrefix: "127.0.0.1", PrefixLen: &wrappers.UInt32Value{Value: 8}}, - &envoycore.CidrRange{AddressPrefix: advertise, PrefixLen: &wrappers.UInt32Value{Value: uint32(advertiseLen)}}, + &envoy_core_v3.CidrRange{AddressPrefix: "127.0.0.1", PrefixLen: &wrappers.UInt32Value{Value: 8}}, + &envoy_core_v3.CidrRange{AddressPrefix: advertise, PrefixLen: &wrappers.UInt32Value{Value: uint32(advertiseLen)}}, ) if ok, err := kernelSupportsIPv6(); err != nil { return nil, err } else if ok { ranges = append(ranges, - &envoycore.CidrRange{AddressPrefix: "::1", PrefixLen: &wrappers.UInt32Value{Value: 128}}, + &envoy_core_v3.CidrRange{AddressPrefix: "::1", PrefixLen: &wrappers.UInt32Value{Value: 128}}, ) } - chain.FilterChainMatch = &envoylistener.FilterChainMatch{ + chain.FilterChainMatch = &envoy_listener_v3.FilterChainMatch{ SourcePrefixRanges: ranges, } } - l.FilterChains = []*envoylistener.FilterChain{chain} + l.FilterChains = []*envoy_listener_v3.FilterChain{chain} return l, err } @@ -703,14 +702,14 @@ func (s *Server) makeTerminatingGatewayListener( cfgSnap *proxycfg.ConfigSnapshot, name, addr string, port int, -) (*envoy.Listener, error) { - l := makeListener(name, addr, port, envoycore.TrafficDirection_INBOUND) +) (*envoy_listener_v3.Listener, error) { + l := makeListener(name, addr, port, envoy_core_v3.TrafficDirection_INBOUND) tlsInspector, err := makeTLSInspectorListenerFilter() if err != nil { return nil, err } - l.ListenerFilters = []*envoylistener.ListenerFilter{tlsInspector} + l.ListenerFilters = []*envoy_listener_v3.ListenerFilter{tlsInspector} // Make a FilterChain for each linked service // Match on the cluster name, @@ -787,8 +786,8 @@ func (s *Server) makeTerminatingGatewayListener( if err != nil { return nil, err } - fallback := &envoylistener.FilterChain{ - Filters: []*envoylistener.Filter{ + fallback := &envoy_listener_v3.FilterChain{ + Filters: []*envoy_listener_v3.Filter{ {Name: "envoy.filters.network.sni_cluster"}, tcpProxy, }, @@ -805,8 +804,8 @@ func (s *Server) makeFilterChainTerminatingGateway( service structs.ServiceName, intentions structs.Intentions, protocol string, -) (*envoylistener.FilterChain, error) { - tlsContext := &envoyauth.DownstreamTlsContext{ +) (*envoy_listener_v3.FilterChain, error) { + tlsContext := &envoy_tls_v3.DownstreamTlsContext{ CommonTlsContext: makeCommonTLSContextFromLeaf(cfgSnap, cfgSnap.TerminatingGateway.ServiceLeaves[service]), RequireClientCertificate: &wrappers.BoolValue{Value: true}, } @@ -815,9 +814,9 @@ func (s *Server) makeFilterChainTerminatingGateway( return nil, err } - filterChain := &envoylistener.FilterChain{ + filterChain := &envoy_listener_v3.FilterChain{ FilterChainMatch: makeSNIFilterChainMatch(cluster), - Filters: make([]*envoylistener.Filter, 0, 3), + Filters: make([]*envoy_listener_v3.Filter, 0, 3), TransportSocket: transportSocket, } @@ -872,7 +871,7 @@ func (s *Server) makeFilterChainTerminatingGateway( return filterChain, nil } -func (s *Server) makeMeshGatewayListener(name, addr string, port int, cfgSnap *proxycfg.ConfigSnapshot) (*envoy.Listener, error) { +func (s *Server) makeMeshGatewayListener(name, addr string, port int, cfgSnap *proxycfg.ConfigSnapshot) (*envoy_listener_v3.Listener, error) { tlsInspector, err := makeTLSInspectorListenerFilter() if err != nil { return nil, err @@ -890,15 +889,15 @@ func (s *Server) makeMeshGatewayListener(name, addr string, port int, cfgSnap *p return nil, err } - sniClusterChain := &envoylistener.FilterChain{ - Filters: []*envoylistener.Filter{ + sniClusterChain := &envoy_listener_v3.FilterChain{ + Filters: []*envoy_listener_v3.Filter{ sniCluster, tcpProxy, }, } - l := makeListener(name, addr, port, envoycore.TrafficDirection_UNSPECIFIED) - l.ListenerFilters = []*envoylistener.ListenerFilter{tlsInspector} + l := makeListener(name, addr, port, envoy_core_v3.TrafficDirection_UNSPECIFIED) + l.ListenerFilters = []*envoy_listener_v3.ListenerFilter{tlsInspector} // TODO (mesh-gateway) - Do we need to create clusters for all the old trust domains as well? // We need 1 Filter Chain per datacenter @@ -914,11 +913,11 @@ func (s *Server) makeMeshGatewayListener(name, addr string, port int, cfgSnap *p return nil, err } - l.FilterChains = append(l.FilterChains, &envoylistener.FilterChain{ - FilterChainMatch: &envoylistener.FilterChainMatch{ + l.FilterChains = append(l.FilterChains, &envoy_listener_v3.FilterChain{ + FilterChainMatch: &envoy_listener_v3.FilterChainMatch{ ServerNames: []string{fmt.Sprintf("*.%s", clusterName)}, }, - Filters: []*envoylistener.Filter{ + Filters: []*envoy_listener_v3.Filter{ dcTCPProxy, }, }) @@ -936,11 +935,11 @@ func (s *Server) makeMeshGatewayListener(name, addr string, port int, cfgSnap *p return nil, err } - l.FilterChains = append(l.FilterChains, &envoylistener.FilterChain{ - FilterChainMatch: &envoylistener.FilterChainMatch{ + l.FilterChains = append(l.FilterChains, &envoy_listener_v3.FilterChain{ + FilterChainMatch: &envoy_listener_v3.FilterChainMatch{ ServerNames: []string{fmt.Sprintf("*.%s", clusterName)}, }, - Filters: []*envoylistener.Filter{ + Filters: []*envoy_listener_v3.Filter{ dcTCPProxy, }, }) @@ -956,11 +955,11 @@ func (s *Server) makeMeshGatewayListener(name, addr string, port int, cfgSnap *p return nil, err } - l.FilterChains = append(l.FilterChains, &envoylistener.FilterChain{ - FilterChainMatch: &envoylistener.FilterChainMatch{ + l.FilterChains = append(l.FilterChains, &envoy_listener_v3.FilterChain{ + FilterChainMatch: &envoy_listener_v3.FilterChainMatch{ ServerNames: []string{fmt.Sprintf("%s", clusterName)}, }, - Filters: []*envoylistener.Filter{ + Filters: []*envoy_listener_v3.Filter{ dcTCPProxy, }, }) @@ -979,13 +978,13 @@ func (s *Server) makeUpstreamListenerForDiscoveryChain( address string, chain *structs.CompiledDiscoveryChain, cfgSnap *proxycfg.ConfigSnapshot, - tlsContext *envoyauth.DownstreamTlsContext, + tlsContext *envoy_tls_v3.DownstreamTlsContext, ) (proto.Message, error) { if address == "" { address = "127.0.0.1" } upstreamID := u.Identifier() - l := makeListener(upstreamID, address, u.LocalBindPort, envoycore.TrafficDirection_OUTBOUND) + l := makeListener(upstreamID, address, u.LocalBindPort, envoy_core_v3.TrafficDirection_OUTBOUND) cfg := getAndModifyUpstreamConfigForListener(s.Logger, u, chain) if cfg.ListenerJSON != "" { @@ -1061,9 +1060,9 @@ func (s *Server) makeUpstreamListenerForDiscoveryChain( return nil, err } - l.FilterChains = []*envoylistener.FilterChain{ + l.FilterChains = []*envoy_listener_v3.FilterChain{ { - Filters: []*envoylistener.Filter{ + Filters: []*envoy_listener_v3.Filter{ filter, }, TransportSocket: transportSocket, @@ -1128,10 +1127,10 @@ type listenerFilterOpts struct { statPrefix string routePath string requestTimeoutMs *int - httpAuthzFilter *envoyhttp.HttpFilter + httpAuthzFilter *envoy_http_v3.HttpFilter } -func makeListenerFilter(opts listenerFilterOpts) (*envoylistener.Filter, error) { +func makeListenerFilter(opts listenerFilterOpts) (*envoy_listener_v3.Filter, error) { switch opts.protocol { case "grpc", "http2", "http": return makeHTTPFilter(opts) @@ -1147,25 +1146,25 @@ func makeListenerFilter(opts listenerFilterOpts) (*envoylistener.Filter, error) } } -func makeTLSInspectorListenerFilter() (*envoylistener.ListenerFilter, error) { - return &envoylistener.ListenerFilter{Name: "envoy.filters.listener.tls_inspector"}, nil +func makeTLSInspectorListenerFilter() (*envoy_listener_v3.ListenerFilter, error) { + return &envoy_listener_v3.ListenerFilter{Name: "envoy.filters.listener.tls_inspector"}, nil } -func makeSNIFilterChainMatch(sniMatch string) *envoylistener.FilterChainMatch { - return &envoylistener.FilterChainMatch{ +func makeSNIFilterChainMatch(sniMatch string) *envoy_listener_v3.FilterChainMatch { + return &envoy_listener_v3.FilterChainMatch{ ServerNames: []string{sniMatch}, } } -func makeSNIClusterFilter() (*envoylistener.Filter, error) { +func makeSNIClusterFilter() (*envoy_listener_v3.Filter, error) { // This filter has no config which is why we are not calling make - return &envoylistener.Filter{Name: "envoy.filters.network.sni_cluster"}, nil + return &envoy_listener_v3.Filter{Name: "envoy.filters.network.sni_cluster"}, nil } -func makeTCPProxyFilter(filterName, cluster, statPrefix string) (*envoylistener.Filter, error) { - cfg := &envoytcp.TcpProxy{ +func makeTCPProxyFilter(filterName, cluster, statPrefix string) (*envoy_listener_v3.Filter, error) { + cfg := &envoy_tcp_proxy_v3.TcpProxy{ StatPrefix: makeStatPrefix(statPrefix, filterName), - ClusterSpecifier: &envoytcp.TcpProxy_Cluster{Cluster: cluster}, + ClusterSpecifier: &envoy_tcp_proxy_v3.TcpProxy_Cluster{Cluster: cluster}, } return makeFilter("envoy.filters.network.tcp_proxy", cfg) } @@ -1177,20 +1176,20 @@ func makeStatPrefix(prefix, filterName string) string { return fmt.Sprintf("%s%s", prefix, strings.Replace(filterName, ":", "_", -1)) } -func makeHTTPFilter(opts listenerFilterOpts) (*envoylistener.Filter, error) { - cfg := &envoyhttp.HttpConnectionManager{ +func makeHTTPFilter(opts listenerFilterOpts) (*envoy_listener_v3.Filter, error) { + cfg := &envoy_http_v3.HttpConnectionManager{ StatPrefix: makeStatPrefix(opts.statPrefix, opts.filterName), - CodecType: envoyhttp.HttpConnectionManager_AUTO, - HttpFilters: []*envoyhttp.HttpFilter{ + CodecType: envoy_http_v3.HttpConnectionManager_AUTO, + HttpFilters: []*envoy_http_v3.HttpFilter{ { Name: "envoy.filters.http.router", }, }, - Tracing: &envoyhttp.HttpConnectionManager_Tracing{ + Tracing: &envoy_http_v3.HttpConnectionManager_Tracing{ // Don't trace any requests by default unless the client application // explicitly propagates trace headers that indicate this should be // sampled. - RandomSampling: &envoytype.Percent{Value: 0.0}, + RandomSampling: &envoy_type_v3.Percent{Value: 0.0}, }, } @@ -1198,12 +1197,13 @@ func makeHTTPFilter(opts listenerFilterOpts) (*envoylistener.Filter, error) { if opts.cluster != "" { return nil, fmt.Errorf("cannot specify cluster name when using RDS") } - cfg.RouteSpecifier = &envoyhttp.HttpConnectionManager_Rds{ - Rds: &envoyhttp.Rds{ + cfg.RouteSpecifier = &envoy_http_v3.HttpConnectionManager_Rds{ + Rds: &envoy_http_v3.Rds{ RouteConfigName: opts.routeName, - ConfigSource: &envoycore.ConfigSource{ - ConfigSourceSpecifier: &envoycore.ConfigSource_Ads{ - Ads: &envoycore.AggregatedConfigSource{}, + ConfigSource: &envoy_core_v3.ConfigSource{ + ResourceApiVersion: envoy_core_v3.ApiVersion_V3, + ConfigSourceSpecifier: &envoy_core_v3.ConfigSource_Ads{ + Ads: &envoy_core_v3.AggregatedConfigSource{}, }, }, }, @@ -1213,9 +1213,9 @@ func makeHTTPFilter(opts listenerFilterOpts) (*envoylistener.Filter, error) { return nil, fmt.Errorf("must specify cluster name when not using RDS") } - route := &envoyroute.Route{ - Match: &envoyroute.RouteMatch{ - PathSpecifier: &envoyroute.RouteMatch_Prefix{ + route := &envoy_route_v3.Route{ + Match: &envoy_route_v3.RouteMatch{ + PathSpecifier: &envoy_route_v3.RouteMatch_Prefix{ Prefix: "/", }, // TODO(banks) Envoy supports matching only valid GRPC @@ -1224,9 +1224,9 @@ func makeHTTPFilter(opts listenerFilterOpts) (*envoylistener.Filter, error) { // although docs say it was supported by 1.8.0. Going to defer // that until we've updated the deps. }, - Action: &envoyroute.Route_Route{ - Route: &envoyroute.RouteAction{ - ClusterSpecifier: &envoyroute.RouteAction_Cluster{ + Action: &envoy_route_v3.Route_Route{ + Route: &envoy_route_v3.RouteAction{ + ClusterSpecifier: &envoy_route_v3.RouteAction_Cluster{ Cluster: opts.cluster, }, }, @@ -1240,17 +1240,17 @@ func makeHTTPFilter(opts listenerFilterOpts) (*envoylistener.Filter, error) { // If a path is provided, do not match on a catch-all prefix if opts.routePath != "" { - route.Match.PathSpecifier = &envoyroute.RouteMatch_Path{Path: opts.routePath} + route.Match.PathSpecifier = &envoy_route_v3.RouteMatch_Path{Path: opts.routePath} } - cfg.RouteSpecifier = &envoyhttp.HttpConnectionManager_RouteConfig{ - RouteConfig: &envoy.RouteConfiguration{ + cfg.RouteSpecifier = &envoy_http_v3.HttpConnectionManager_RouteConfig{ + RouteConfig: &envoy_route_v3.RouteConfiguration{ Name: opts.routeName, - VirtualHosts: []*envoyroute.VirtualHost{ + VirtualHosts: []*envoy_route_v3.VirtualHost{ { Name: opts.filterName, Domains: []string{"*"}, - Routes: []*envoyroute.Route{ + Routes: []*envoy_route_v3.Route{ route, }, }, @@ -1260,7 +1260,7 @@ func makeHTTPFilter(opts listenerFilterOpts) (*envoylistener.Filter, error) { } if opts.protocol == "http2" || opts.protocol == "grpc" { - cfg.Http2ProtocolOptions = &envoycore.Http2ProtocolOptions{} + cfg.Http2ProtocolOptions = &envoy_core_v3.Http2ProtocolOptions{} } // Like injectConnectFilters for L4, here we ensure that the first filter @@ -1268,46 +1268,44 @@ func makeHTTPFilter(opts listenerFilterOpts) (*envoylistener.Filter, error) { // chain of a public listener is the authz filter to prevent unauthorized // access and that every filter chain uses our TLS certs. if opts.httpAuthzFilter != nil { - cfg.HttpFilters = append([]*envoyhttp.HttpFilter{opts.httpAuthzFilter}, cfg.HttpFilters...) + cfg.HttpFilters = append([]*envoy_http_v3.HttpFilter{opts.httpAuthzFilter}, cfg.HttpFilters...) } if opts.protocol == "grpc" { // Add grpc bridge before router and authz - cfg.HttpFilters = append([]*envoyhttp.HttpFilter{{ - Name: "envoy.grpc_http1_bridge", + cfg.HttpFilters = append([]*envoy_http_v3.HttpFilter{{ + Name: "envoy.filters.http.grpc_http1_bridge", }}, cfg.HttpFilters...) } return makeFilter("envoy.filters.network.http_connection_manager", cfg) } -func makeFilter(name string, cfg proto.Message) (*envoylistener.Filter, error) { - filter := &envoylistener.Filter{ - Name: name, - } +func makeFilter(name string, cfg proto.Message) (*envoy_listener_v3.Filter, error) { any, err := ptypes.MarshalAny(cfg) if err != nil { return nil, err } - filter.ConfigType = &envoylistener.Filter_TypedConfig{TypedConfig: any} - - return filter, nil -} - -func makeEnvoyHTTPFilter(name string, cfg proto.Message) (*envoyhttp.HttpFilter, error) { - any, err := ptypes.MarshalAny(cfg) - if err != nil { - return nil, err - } - - return &envoyhttp.HttpFilter{ + return &envoy_listener_v3.Filter{ Name: name, - ConfigType: &envoyhttp.HttpFilter_TypedConfig{TypedConfig: any}, + ConfigType: &envoy_listener_v3.Filter_TypedConfig{TypedConfig: any}, }, nil } -func makeCommonTLSContextFromLeaf(cfgSnap *proxycfg.ConfigSnapshot, leaf *structs.IssuedCert) *envoyauth.CommonTlsContext { +func makeEnvoyHTTPFilter(name string, cfg proto.Message) (*envoy_http_v3.HttpFilter, error) { + any, err := ptypes.MarshalAny(cfg) + if err != nil { + return nil, err + } + + return &envoy_http_v3.HttpFilter{ + Name: name, + ConfigType: &envoy_http_v3.HttpFilter_TypedConfig{TypedConfig: any}, + }, nil +} + +func makeCommonTLSContextFromLeaf(cfgSnap *proxycfg.ConfigSnapshot, leaf *structs.IssuedCert) *envoy_tls_v3.CommonTlsContext { // Concatenate all the root PEMs into one. if cfgSnap.Roots == nil { return nil @@ -1319,27 +1317,27 @@ func makeCommonTLSContextFromLeaf(cfgSnap *proxycfg.ConfigSnapshot, leaf *struct rootPEMS += root.RootCert } - return &envoyauth.CommonTlsContext{ - TlsParams: &envoyauth.TlsParameters{}, - TlsCertificates: []*envoyauth.TlsCertificate{ + return &envoy_tls_v3.CommonTlsContext{ + TlsParams: &envoy_tls_v3.TlsParameters{}, + TlsCertificates: []*envoy_tls_v3.TlsCertificate{ { - CertificateChain: &envoycore.DataSource{ - Specifier: &envoycore.DataSource_InlineString{ + CertificateChain: &envoy_core_v3.DataSource{ + Specifier: &envoy_core_v3.DataSource_InlineString{ InlineString: leaf.CertPEM, }, }, - PrivateKey: &envoycore.DataSource{ - Specifier: &envoycore.DataSource_InlineString{ + PrivateKey: &envoy_core_v3.DataSource{ + Specifier: &envoy_core_v3.DataSource_InlineString{ InlineString: leaf.PrivateKeyPEM, }, }, }, }, - ValidationContextType: &envoyauth.CommonTlsContext_ValidationContext{ - ValidationContext: &envoyauth.CertificateValidationContext{ + ValidationContextType: &envoy_tls_v3.CommonTlsContext_ValidationContext{ + ValidationContext: &envoy_tls_v3.CertificateValidationContext{ // TODO(banks): later for L7 support we may need to configure ALPN here. - TrustedCa: &envoycore.DataSource{ - Specifier: &envoycore.DataSource_InlineString{ + TrustedCa: &envoy_core_v3.DataSource{ + Specifier: &envoy_core_v3.DataSource_InlineString{ InlineString: rootPEMS, }, }, @@ -1348,45 +1346,44 @@ func makeCommonTLSContextFromLeaf(cfgSnap *proxycfg.ConfigSnapshot, leaf *struct } } -func makeDownstreamTLSTransportSocket(tlsContext *envoyauth.DownstreamTlsContext) (*envoycore.TransportSocket, error) { +func makeDownstreamTLSTransportSocket(tlsContext *envoy_tls_v3.DownstreamTlsContext) (*envoy_core_v3.TransportSocket, error) { if tlsContext == nil { return nil, nil } return makeTransportSocket("tls", tlsContext) } -func makeUpstreamTLSTransportSocket(tlsContext *envoyauth.UpstreamTlsContext) (*envoycore.TransportSocket, error) { +func makeUpstreamTLSTransportSocket(tlsContext *envoy_tls_v3.UpstreamTlsContext) (*envoy_core_v3.TransportSocket, error) { if tlsContext == nil { return nil, nil } - return makeTransportSocket("tls", tlsContext) } -func makeTransportSocket(name string, config proto.Message) (*envoycore.TransportSocket, error) { +func makeTransportSocket(name string, config proto.Message) (*envoy_core_v3.TransportSocket, error) { any, err := ptypes.MarshalAny(config) if err != nil { return nil, err } - return &envoycore.TransportSocket{ + return &envoy_core_v3.TransportSocket{ Name: name, - ConfigType: &envoycore.TransportSocket_TypedConfig{ + ConfigType: &envoy_core_v3.TransportSocket_TypedConfig{ TypedConfig: any, }, }, nil } -func makeCommonTLSContextFromFiles(caFile, certFile, keyFile string) *envoyauth.CommonTlsContext { - ctx := envoyauth.CommonTlsContext{ - TlsParams: &envoyauth.TlsParameters{}, +func makeCommonTLSContextFromFiles(caFile, certFile, keyFile string) *envoy_tls_v3.CommonTlsContext { + ctx := envoy_tls_v3.CommonTlsContext{ + TlsParams: &envoy_tls_v3.TlsParameters{}, } // Verify certificate of peer if caFile is specified if caFile != "" { - ctx.ValidationContextType = &envoyauth.CommonTlsContext_ValidationContext{ - ValidationContext: &envoyauth.CertificateValidationContext{ - TrustedCa: &envoycore.DataSource{ - Specifier: &envoycore.DataSource_Filename{ + ctx.ValidationContextType = &envoy_tls_v3.CommonTlsContext_ValidationContext{ + ValidationContext: &envoy_tls_v3.CertificateValidationContext{ + TrustedCa: &envoy_core_v3.DataSource{ + Specifier: &envoy_core_v3.DataSource_Filename{ Filename: caFile, }, }, @@ -1396,15 +1393,15 @@ func makeCommonTLSContextFromFiles(caFile, certFile, keyFile string) *envoyauth. // Present certificate for mTLS if cert and key files are specified if certFile != "" && keyFile != "" { - ctx.TlsCertificates = []*envoyauth.TlsCertificate{ + ctx.TlsCertificates = []*envoy_tls_v3.TlsCertificate{ { - CertificateChain: &envoycore.DataSource{ - Specifier: &envoycore.DataSource_Filename{ + CertificateChain: &envoy_core_v3.DataSource{ + Specifier: &envoy_core_v3.DataSource_Filename{ Filename: certFile, }, }, - PrivateKey: &envoycore.DataSource{ - Specifier: &envoycore.DataSource_Filename{ + PrivateKey: &envoy_core_v3.DataSource{ + Specifier: &envoy_core_v3.DataSource_Filename{ Filename: keyFile, }, }, diff --git a/agent/xds/listeners_test.go b/agent/xds/listeners_test.go index d647d5010..d68a9074e 100644 --- a/agent/xds/listeners_test.go +++ b/agent/xds/listeners_test.go @@ -8,7 +8,7 @@ import ( "text/template" "time" - envoy "github.com/envoyproxy/go-control-plane/envoy/api/v2" + envoy_listener_v3 "github.com/envoyproxy/go-control-plane/envoy/config/listener/v3" testinf "github.com/mitchellh/go-testing-interface" "github.com/stretchr/testify/require" @@ -485,8 +485,6 @@ func TestListenersFromSnapshot(t *testing.T) { t.Run("envoy-"+envoyVersion, func(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - require := require.New(t) - // Sanity check default with no overrides first snap := tt.create(t) @@ -510,25 +508,43 @@ func TestListenersFromSnapshot(t *testing.T) { ProxyFeatures: sf, } listeners, err := s.listenersFromSnapshot(cInfo, snap) - require.NoError(err) + require.NoError(t, err) // The order of listeners returned via LDS isn't relevant, so it's safe // to sort these for the purposes of test comparisons. sort.Slice(listeners, func(i, j int) bool { - return listeners[i].(*envoy.Listener).Name < listeners[j].(*envoy.Listener).Name + return listeners[i].(*envoy_listener_v3.Listener).Name < listeners[j].(*envoy_listener_v3.Listener).Name }) r, err := createResponse(ListenerType, "00000001", "00000001", listeners) - require.NoError(err) + require.NoError(t, err) - gotJSON := responseToJSON(t, r) + t.Run("current", func(t *testing.T) { + gotJSON := protoToJSON(t, r) - gName := tt.name - if tt.overrideGoldenName != "" { - gName = tt.overrideGoldenName - } + gName := tt.name + if tt.overrideGoldenName != "" { + gName = tt.overrideGoldenName + } - require.JSONEq(goldenEnvoy(t, filepath.Join("listeners", gName), envoyVersion, latestEnvoyVersion, gotJSON), gotJSON) + require.JSONEq(t, goldenEnvoy(t, filepath.Join("listeners", gName), envoyVersion, latestEnvoyVersion, gotJSON), gotJSON) + }) + + t.Run("v2-compat", func(t *testing.T) { + respV2, err := convertDiscoveryResponseToV2(r) + require.NoError(t, err) + + gotJSON := protoToJSON(t, respV2) + + gName := tt.name + if tt.overrideGoldenName != "" { + gName = tt.overrideGoldenName + } + + gName += ".v2compat" + + require.JSONEq(t, goldenEnvoy(t, filepath.Join("listeners", gName), envoyVersion, latestEnvoyVersion, gotJSON), gotJSON) + }) }) } }) @@ -538,7 +554,7 @@ func TestListenersFromSnapshot(t *testing.T) { func expectListenerJSONResources(snap *proxycfg.ConfigSnapshot) map[string]string { return map[string]string{ "public_listener": `{ - "@type": "type.googleapis.com/envoy.api.v2.Listener", + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", "name": "public_listener:0.0.0.0:9999", "address": { "socketAddress": { @@ -554,7 +570,7 @@ func expectListenerJSONResources(snap *proxycfg.ConfigSnapshot) map[string]strin { "name": "envoy.filters.network.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", "rules": { }, "statPrefix": "connect_authz" @@ -563,7 +579,7 @@ func expectListenerJSONResources(snap *proxycfg.ConfigSnapshot) map[string]strin { "name": "envoy.filters.network.tcp_proxy", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.tcp_proxy.v2.TcpProxy", + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", "cluster": "local_app", "statPrefix": "public_listener" } @@ -573,7 +589,7 @@ func expectListenerJSONResources(snap *proxycfg.ConfigSnapshot) map[string]strin ] }`, "db": `{ - "@type": "type.googleapis.com/envoy.api.v2.Listener", + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", "name": "db:127.0.0.1:9191", "address": { "socketAddress": { @@ -588,7 +604,7 @@ func expectListenerJSONResources(snap *proxycfg.ConfigSnapshot) map[string]strin { "name": "envoy.filters.network.tcp_proxy", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.tcp_proxy.v2.TcpProxy", + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", "statPrefix": "upstream.db.default.dc1" } @@ -598,7 +614,7 @@ func expectListenerJSONResources(snap *proxycfg.ConfigSnapshot) map[string]strin ] }`, "prepared_query:geo-cache": `{ - "@type": "type.googleapis.com/envoy.api.v2.Listener", + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", "name": "prepared_query:geo-cache:127.10.10.10:8181", "address": { "socketAddress": { @@ -613,7 +629,7 @@ func expectListenerJSONResources(snap *proxycfg.ConfigSnapshot) map[string]strin { "name": "envoy.filters.network.tcp_proxy", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.tcp_proxy.v2.TcpProxy", + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", "statPrefix": "upstream.prepared_query_geo-cache" } @@ -646,7 +662,7 @@ func expectListenerJSONFromResources(snap *proxycfg.ConfigSnapshot, v, n uint64, return `{ "versionInfo": "` + hexString(v) + `", "resources": [` + resJSON + `], - "typeUrl": "type.googleapis.com/envoy.api.v2.Listener", + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", "nonce": "` + hexString(n) + `" }` } @@ -661,7 +677,7 @@ type customListenerJSONOptions struct { } const customListenerJSONTpl = `{ - "@type": "type.googleapis.com/envoy.api.v2.Listener", + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", "name": "{{ .Name }}", "address": { "socketAddress": { @@ -675,7 +691,7 @@ const customListenerJSONTpl = `{ "transport_socket": { "name": "tls", "typed_config": { - "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", {{ .TLSContext }} } }, @@ -684,7 +700,7 @@ const customListenerJSONTpl = `{ { "name": "envoy.filters.network.tcp_proxy", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.tcp_proxy.v2.TcpProxy", + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", "cluster": "random-cluster", "statPrefix": "foo-stats" } @@ -700,7 +716,7 @@ type customHTTPListenerJSONOptions struct { } const customHTTPListenerJSONTpl = `{ - "@type": "type.googleapis.com/envoy.api.v2.Listener", + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", "name": "{{ .Name }}", "address": { "socketAddress": { @@ -714,7 +730,7 @@ const customHTTPListenerJSONTpl = `{ { "name": "{{ .HTTPConnectionManagerName }}", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager", + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", "http_filters": [ { "name": "envoy.filters.http.router" diff --git a/agent/xds/proxysupport/proxysupport.go b/agent/xds/proxysupport/proxysupport.go index 6470b84a3..63130aaf4 100644 --- a/agent/xds/proxysupport/proxysupport.go +++ b/agent/xds/proxysupport/proxysupport.go @@ -7,7 +7,7 @@ package proxysupport // // see: https://www.consul.io/docs/connect/proxies/envoy#supported-versions var EnvoyVersions = []string{ - // TODO(rb): add in 1.17.0 when the v3 support comes + "1.17.0", "1.16.2", "1.15.3", "1.14.6", diff --git a/agent/xds/rbac.go b/agent/xds/rbac.go index 47c5cb482..4a05c96a0 100644 --- a/agent/xds/rbac.go +++ b/agent/xds/rbac.go @@ -5,37 +5,37 @@ import ( "sort" "strings" - envoylistener "github.com/envoyproxy/go-control-plane/envoy/api/v2/listener" - envoyroute "github.com/envoyproxy/go-control-plane/envoy/api/v2/route" - envoyhttprbac "github.com/envoyproxy/go-control-plane/envoy/config/filter/http/rbac/v2" - envoyhttp "github.com/envoyproxy/go-control-plane/envoy/config/filter/network/http_connection_manager/v2" - envoynetrbac "github.com/envoyproxy/go-control-plane/envoy/config/filter/network/rbac/v2" - envoyrbac "github.com/envoyproxy/go-control-plane/envoy/config/rbac/v2" - envoymatcher "github.com/envoyproxy/go-control-plane/envoy/type/matcher" + envoy_listener_v3 "github.com/envoyproxy/go-control-plane/envoy/config/listener/v3" + envoy_rbac_v3 "github.com/envoyproxy/go-control-plane/envoy/config/rbac/v3" + envoy_route_v3 "github.com/envoyproxy/go-control-plane/envoy/config/route/v3" + envoy_http_rbac_v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/rbac/v3" + envoy_http_v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3" + envoy_network_rbac_v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/rbac/v3" + envoy_matcher_v3 "github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3" "github.com/hashicorp/consul/agent/structs" ) -func makeRBACNetworkFilter(intentions structs.Intentions, intentionDefaultAllow bool) (*envoylistener.Filter, error) { +func makeRBACNetworkFilter(intentions structs.Intentions, intentionDefaultAllow bool) (*envoy_listener_v3.Filter, error) { rules, err := makeRBACRules(intentions, intentionDefaultAllow, false) if err != nil { return nil, err } - cfg := &envoynetrbac.RBAC{ + cfg := &envoy_network_rbac_v3.RBAC{ StatPrefix: "connect_authz", Rules: rules, } return makeFilter("envoy.filters.network.rbac", cfg) } -func makeRBACHTTPFilter(intentions structs.Intentions, intentionDefaultAllow bool) (*envoyhttp.HttpFilter, error) { +func makeRBACHTTPFilter(intentions structs.Intentions, intentionDefaultAllow bool) (*envoy_http_v3.HttpFilter, error) { rules, err := makeRBACRules(intentions, intentionDefaultAllow, true) if err != nil { return nil, err } - cfg := &envoyhttprbac.RBAC{ + cfg := &envoy_http_rbac_v3.RBAC{ Rules: rules, } return makeEnvoyHTTPFilter("envoy.filters.http.rbac", cfg) @@ -227,17 +227,17 @@ type rbacIntention struct { // that marked them. Skip bool - ComputedPrincipal *envoyrbac.Principal + ComputedPrincipal *envoy_rbac_v3.Principal } -func (r *rbacIntention) FlattenPrincipal() *envoyrbac.Principal { +func (r *rbacIntention) FlattenPrincipal() *envoy_rbac_v3.Principal { r.NotSources = simplifyNotSourceSlice(r.NotSources) if len(r.NotSources) == 0 { return idPrincipal(r.Source) } - andIDs := make([]*envoyrbac.Principal, 0, len(r.NotSources)+1) + andIDs := make([]*envoy_rbac_v3.Principal, 0, len(r.NotSources)+1) andIDs = append(andIDs, idPrincipal(r.Source)) for _, src := range r.NotSources { andIDs = append(andIDs, notPrincipal( @@ -251,23 +251,23 @@ type rbacPermission struct { Definition *structs.IntentionPermission Action intentionAction - Perm *envoyrbac.Permission - NotPerms []*envoyrbac.Permission + Perm *envoy_rbac_v3.Permission + NotPerms []*envoy_rbac_v3.Permission // Skip is field used to indicate that this permission can be deleted in // the final pass. Items marked as true should generally not escape the // method that marked them. Skip bool - ComputedPermission *envoyrbac.Permission + ComputedPermission *envoy_rbac_v3.Permission } -func (p *rbacPermission) Flatten() *envoyrbac.Permission { +func (p *rbacPermission) Flatten() *envoy_rbac_v3.Permission { if len(p.NotPerms) == 0 { return p.Perm } - parts := make([]*envoyrbac.Permission, 0, len(p.NotPerms)+1) + parts := make([]*envoy_rbac_v3.Permission, 0, len(p.NotPerms)+1) parts = append(parts, p.Perm) for _, notPerm := range p.NotPerms { parts = append(parts, notPermission(notPerm)) @@ -357,7 +357,7 @@ func simplifyNotSourceSlice(notSources []structs.ServiceName) []structs.ServiceN // : DENY // // Which really is just an allow-list of [A, C AND NOT(B)] -func makeRBACRules(intentions structs.Intentions, intentionDefaultAllow bool, isHTTP bool) (*envoyrbac.RBAC, error) { +func makeRBACRules(intentions structs.Intentions, intentionDefaultAllow bool, isHTTP bool) (*envoy_rbac_v3.RBAC, error) { // Note that we DON'T explicitly validate the trust-domain matches ours. // // For now we don't validate the trust domain of the _destination_ at all. @@ -378,15 +378,15 @@ func makeRBACRules(intentions structs.Intentions, intentionDefaultAllow bool, is // Normalize: if we are in default-deny then all intentions must be allows and vice versa intentionDefaultAction := intentionActionFromBool(intentionDefaultAllow) - var rbacAction envoyrbac.RBAC_Action + var rbacAction envoy_rbac_v3.RBAC_Action if intentionDefaultAllow { // The RBAC policies deny access to principals. The rest is allowed. // This is block-list style access control. - rbacAction = envoyrbac.RBAC_DENY + rbacAction = envoy_rbac_v3.RBAC_DENY } else { // The RBAC policies grant access to principals. The rest is denied. // This is safe-list style access control. This is the default type. - rbacAction = envoyrbac.RBAC_ALLOW + rbacAction = envoy_rbac_v3.RBAC_ALLOW } // Remove source and permissions precedence. @@ -394,21 +394,21 @@ func makeRBACRules(intentions structs.Intentions, intentionDefaultAllow bool, is // For L4: we should generate one big Policy listing all Principals // For L7: we should generate one Policy per Principal and list all of the Permissions - rbac := &envoyrbac.RBAC{ + rbac := &envoy_rbac_v3.RBAC{ Action: rbacAction, - Policies: make(map[string]*envoyrbac.Policy), + Policies: make(map[string]*envoy_rbac_v3.Policy), } - var principalsL4 []*envoyrbac.Principal + var principalsL4 []*envoy_rbac_v3.Principal for i, rbacIxn := range rbacIxns { if len(rbacIxn.Permissions) > 0 { if !isHTTP { panic("invalid state: L7 permissions present for TCP service") } // For L7: we should generate one Policy per Principal and list all of the Permissions - policy := &envoyrbac.Policy{ - Principals: []*envoyrbac.Principal{rbacIxn.ComputedPrincipal}, - Permissions: make([]*envoyrbac.Permission, 0, len(rbacIxn.Permissions)), + policy := &envoy_rbac_v3.Policy{ + Principals: []*envoy_rbac_v3.Principal{rbacIxn.ComputedPrincipal}, + Permissions: make([]*envoy_rbac_v3.Permission, 0, len(rbacIxn.Permissions)), } for _, perm := range rbacIxn.Permissions { policy.Permissions = append(policy.Permissions, perm.ComputedPermission) @@ -420,9 +420,9 @@ func makeRBACRules(intentions structs.Intentions, intentionDefaultAllow bool, is } } if len(principalsL4) > 0 { - rbac.Policies["consul-intentions-layer4"] = &envoyrbac.Policy{ + rbac.Policies["consul-intentions-layer4"] = &envoy_rbac_v3.Policy{ Principals: principalsL4, - Permissions: []*envoyrbac.Permission{anyPermission()}, + Permissions: []*envoy_rbac_v3.Permission{anyPermission()}, } } @@ -502,32 +502,32 @@ func countWild(src structs.ServiceName) int { return 0 } -func andPrincipals(ids []*envoyrbac.Principal) *envoyrbac.Principal { - return &envoyrbac.Principal{ - Identifier: &envoyrbac.Principal_AndIds{ - AndIds: &envoyrbac.Principal_Set{ +func andPrincipals(ids []*envoy_rbac_v3.Principal) *envoy_rbac_v3.Principal { + return &envoy_rbac_v3.Principal{ + Identifier: &envoy_rbac_v3.Principal_AndIds{ + AndIds: &envoy_rbac_v3.Principal_Set{ Ids: ids, }, }, } } -func notPrincipal(id *envoyrbac.Principal) *envoyrbac.Principal { - return &envoyrbac.Principal{ - Identifier: &envoyrbac.Principal_NotId{ +func notPrincipal(id *envoy_rbac_v3.Principal) *envoy_rbac_v3.Principal { + return &envoy_rbac_v3.Principal{ + Identifier: &envoy_rbac_v3.Principal_NotId{ NotId: id, }, } } -func idPrincipal(src structs.ServiceName) *envoyrbac.Principal { +func idPrincipal(src structs.ServiceName) *envoy_rbac_v3.Principal { pattern := makeSpiffePattern(src.NamespaceOrDefault(), src.Name) - return &envoyrbac.Principal{ - Identifier: &envoyrbac.Principal_Authenticated_{ - Authenticated: &envoyrbac.Principal_Authenticated{ - PrincipalName: &envoymatcher.StringMatcher{ - MatchPattern: &envoymatcher.StringMatcher_SafeRegex{ + return &envoy_rbac_v3.Principal{ + Identifier: &envoy_rbac_v3.Principal_Authenticated_{ + Authenticated: &envoy_rbac_v3.Principal_Authenticated{ + PrincipalName: &envoy_matcher_v3.StringMatcher{ + MatchPattern: &envoy_matcher_v3.StringMatcher_SafeRegex{ SafeRegex: makeEnvoyRegexMatch(pattern), }, }, @@ -552,28 +552,28 @@ func makeSpiffePattern(sourceNS, sourceName string) string { } } -func anyPermission() *envoyrbac.Permission { - return &envoyrbac.Permission{ - Rule: &envoyrbac.Permission_Any{Any: true}, +func anyPermission() *envoy_rbac_v3.Permission { + return &envoy_rbac_v3.Permission{ + Rule: &envoy_rbac_v3.Permission_Any{Any: true}, } } -func convertPermission(perm *structs.IntentionPermission) *envoyrbac.Permission { +func convertPermission(perm *structs.IntentionPermission) *envoy_rbac_v3.Permission { // NOTE: this does not do anything with perm.Action if perm.HTTP == nil { return anyPermission() } - var parts []*envoyrbac.Permission + var parts []*envoy_rbac_v3.Permission switch { case perm.HTTP.PathExact != "": - parts = append(parts, &envoyrbac.Permission{ - Rule: &envoyrbac.Permission_UrlPath{ - UrlPath: &envoymatcher.PathMatcher{ - Rule: &envoymatcher.PathMatcher_Path{ - Path: &envoymatcher.StringMatcher{ - MatchPattern: &envoymatcher.StringMatcher_Exact{ + parts = append(parts, &envoy_rbac_v3.Permission{ + Rule: &envoy_rbac_v3.Permission_UrlPath{ + UrlPath: &envoy_matcher_v3.PathMatcher{ + Rule: &envoy_matcher_v3.PathMatcher_Path{ + Path: &envoy_matcher_v3.StringMatcher{ + MatchPattern: &envoy_matcher_v3.StringMatcher_Exact{ Exact: perm.HTTP.PathExact, }, }, @@ -582,12 +582,12 @@ func convertPermission(perm *structs.IntentionPermission) *envoyrbac.Permission }, }) case perm.HTTP.PathPrefix != "": - parts = append(parts, &envoyrbac.Permission{ - Rule: &envoyrbac.Permission_UrlPath{ - UrlPath: &envoymatcher.PathMatcher{ - Rule: &envoymatcher.PathMatcher_Path{ - Path: &envoymatcher.StringMatcher{ - MatchPattern: &envoymatcher.StringMatcher_Prefix{ + parts = append(parts, &envoy_rbac_v3.Permission{ + Rule: &envoy_rbac_v3.Permission_UrlPath{ + UrlPath: &envoy_matcher_v3.PathMatcher{ + Rule: &envoy_matcher_v3.PathMatcher_Path{ + Path: &envoy_matcher_v3.StringMatcher{ + MatchPattern: &envoy_matcher_v3.StringMatcher_Prefix{ Prefix: perm.HTTP.PathPrefix, }, }, @@ -596,12 +596,12 @@ func convertPermission(perm *structs.IntentionPermission) *envoyrbac.Permission }, }) case perm.HTTP.PathRegex != "": - parts = append(parts, &envoyrbac.Permission{ - Rule: &envoyrbac.Permission_UrlPath{ - UrlPath: &envoymatcher.PathMatcher{ - Rule: &envoymatcher.PathMatcher_Path{ - Path: &envoymatcher.StringMatcher{ - MatchPattern: &envoymatcher.StringMatcher_SafeRegex{ + parts = append(parts, &envoy_rbac_v3.Permission{ + Rule: &envoy_rbac_v3.Permission_UrlPath{ + UrlPath: &envoy_matcher_v3.PathMatcher{ + Rule: &envoy_matcher_v3.PathMatcher_Path{ + Path: &envoy_matcher_v3.StringMatcher{ + MatchPattern: &envoy_matcher_v3.StringMatcher_SafeRegex{ SafeRegex: makeEnvoyRegexMatch(perm.HTTP.PathRegex), }, }, @@ -612,29 +612,29 @@ func convertPermission(perm *structs.IntentionPermission) *envoyrbac.Permission } for _, hdr := range perm.HTTP.Header { - eh := &envoyroute.HeaderMatcher{ + eh := &envoy_route_v3.HeaderMatcher{ Name: hdr.Name, } switch { case hdr.Exact != "": - eh.HeaderMatchSpecifier = &envoyroute.HeaderMatcher_ExactMatch{ + eh.HeaderMatchSpecifier = &envoy_route_v3.HeaderMatcher_ExactMatch{ ExactMatch: hdr.Exact, } case hdr.Regex != "": - eh.HeaderMatchSpecifier = &envoyroute.HeaderMatcher_SafeRegexMatch{ + eh.HeaderMatchSpecifier = &envoy_route_v3.HeaderMatcher_SafeRegexMatch{ SafeRegexMatch: makeEnvoyRegexMatch(hdr.Regex), } case hdr.Prefix != "": - eh.HeaderMatchSpecifier = &envoyroute.HeaderMatcher_PrefixMatch{ + eh.HeaderMatchSpecifier = &envoy_route_v3.HeaderMatcher_PrefixMatch{ PrefixMatch: hdr.Prefix, } case hdr.Suffix != "": - eh.HeaderMatchSpecifier = &envoyroute.HeaderMatcher_SuffixMatch{ + eh.HeaderMatchSpecifier = &envoy_route_v3.HeaderMatcher_SuffixMatch{ SuffixMatch: hdr.Suffix, } case hdr.Present: - eh.HeaderMatchSpecifier = &envoyroute.HeaderMatcher_PresentMatch{ + eh.HeaderMatchSpecifier = &envoy_route_v3.HeaderMatcher_PresentMatch{ PresentMatch: true, } default: @@ -645,8 +645,8 @@ func convertPermission(perm *structs.IntentionPermission) *envoyrbac.Permission eh.InvertMatch = true } - parts = append(parts, &envoyrbac.Permission{ - Rule: &envoyrbac.Permission_Header{ + parts = append(parts, &envoy_rbac_v3.Permission{ + Rule: &envoy_rbac_v3.Permission_Header{ Header: eh, }, }) @@ -655,15 +655,15 @@ func convertPermission(perm *structs.IntentionPermission) *envoyrbac.Permission if len(perm.HTTP.Methods) > 0 { methodHeaderRegex := strings.Join(perm.HTTP.Methods, "|") - eh := &envoyroute.HeaderMatcher{ + eh := &envoy_route_v3.HeaderMatcher{ Name: ":method", - HeaderMatchSpecifier: &envoyroute.HeaderMatcher_SafeRegexMatch{ + HeaderMatchSpecifier: &envoy_route_v3.HeaderMatcher_SafeRegexMatch{ SafeRegexMatch: makeEnvoyRegexMatch(methodHeaderRegex), }, } - parts = append(parts, &envoyrbac.Permission{ - Rule: &envoyrbac.Permission_Header{ + parts = append(parts, &envoy_rbac_v3.Permission{ + Rule: &envoy_rbac_v3.Permission_Header{ Header: eh, }, }) @@ -674,22 +674,22 @@ func convertPermission(perm *structs.IntentionPermission) *envoyrbac.Permission return andPermissions(parts) } -func notPermission(perm *envoyrbac.Permission) *envoyrbac.Permission { - return &envoyrbac.Permission{ - Rule: &envoyrbac.Permission_NotRule{NotRule: perm}, +func notPermission(perm *envoy_rbac_v3.Permission) *envoy_rbac_v3.Permission { + return &envoy_rbac_v3.Permission{ + Rule: &envoy_rbac_v3.Permission_NotRule{NotRule: perm}, } } -func andPermissions(perms []*envoyrbac.Permission) *envoyrbac.Permission { +func andPermissions(perms []*envoy_rbac_v3.Permission) *envoy_rbac_v3.Permission { switch len(perms) { case 0: return anyPermission() case 1: return perms[0] default: - return &envoyrbac.Permission{ - Rule: &envoyrbac.Permission_AndRules{ - AndRules: &envoyrbac.Permission_Set{ + return &envoy_rbac_v3.Permission{ + Rule: &envoy_rbac_v3.Permission_AndRules{ + AndRules: &envoy_rbac_v3.Permission_Set{ Rules: perms, }, }, diff --git a/agent/xds/rbac_test.go b/agent/xds/rbac_test.go index 762705302..2e91857ac 100644 --- a/agent/xds/rbac_test.go +++ b/agent/xds/rbac_test.go @@ -248,17 +248,39 @@ func TestMakeRBACNetworkAndHTTPFilters(t *testing.T) { filter, err := makeRBACNetworkFilter(tt.intentions, tt.intentionDefaultAllow) require.NoError(t, err) - gotJSON := protoToJSON(t, filter) + t.Run("current", func(t *testing.T) { + gotJSON := protoToJSON(t, filter) - require.JSONEq(t, goldenSimple(t, filepath.Join("rbac", name), gotJSON), gotJSON) + require.JSONEq(t, goldenSimple(t, filepath.Join("rbac", name), gotJSON), gotJSON) + }) + + t.Run("v2-compat", func(t *testing.T) { + filterV2, err := convertNetFilterToV2(filter) + require.NoError(t, err) + + gotJSON := protoToJSON(t, filterV2) + + require.JSONEq(t, goldenSimple(t, filepath.Join("rbac", name+".v2compat"), gotJSON), gotJSON) + }) }) t.Run("http filter", func(t *testing.T) { filter, err := makeRBACHTTPFilter(tt.intentions, tt.intentionDefaultAllow) require.NoError(t, err) - gotJSON := protoToJSON(t, filter) + t.Run("current", func(t *testing.T) { + gotJSON := protoToJSON(t, filter) - require.JSONEq(t, goldenSimple(t, filepath.Join("rbac", name+"--httpfilter"), gotJSON), gotJSON) + require.JSONEq(t, goldenSimple(t, filepath.Join("rbac", name+"--httpfilter"), gotJSON), gotJSON) + }) + + t.Run("v2-compat", func(t *testing.T) { + filterV2, err := convertHttpFilterToV2(filter) + require.NoError(t, err) + + gotJSON := protoToJSON(t, filterV2) + + require.JSONEq(t, goldenSimple(t, filepath.Join("rbac", name+"--httpfilter.v2compat"), gotJSON), gotJSON) + }) }) }) } diff --git a/agent/xds/response.go b/agent/xds/response.go index 8015bcc22..1c9f7fba8 100644 --- a/agent/xds/response.go +++ b/agent/xds/response.go @@ -1,16 +1,16 @@ package xds import ( - envoy "github.com/envoyproxy/go-control-plane/envoy/api/v2" - envoycore "github.com/envoyproxy/go-control-plane/envoy/api/v2/core" - envoymatcher "github.com/envoyproxy/go-control-plane/envoy/type/matcher" + envoy_core_v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + envoy_discovery_v3 "github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3" + envoy_matcher_v3 "github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3" "github.com/golang/protobuf/proto" "github.com/golang/protobuf/ptypes/any" "github.com/golang/protobuf/ptypes/wrappers" ) -func createResponse(typeURL string, version, nonce string, resources []proto.Message) (*envoy.DiscoveryResponse, error) { +func createResponse(typeURL string, version, nonce string, resources []proto.Message) (*envoy_discovery_v3.DiscoveryResponse, error) { anys := make([]*any.Any, 0, len(resources)) for _, r := range resources { if r == nil { @@ -29,7 +29,7 @@ func createResponse(typeURL string, version, nonce string, resources []proto.Mes Value: data, }) } - resp := &envoy.DiscoveryResponse{ + resp := &envoy_discovery_v3.DiscoveryResponse{ VersionInfo: version, Resources: anys, TypeUrl: typeURL, @@ -38,12 +38,12 @@ func createResponse(typeURL string, version, nonce string, resources []proto.Mes return resp, nil } -func makeAddress(ip string, port int) *envoycore.Address { - return &envoycore.Address{ - Address: &envoycore.Address_SocketAddress{ - SocketAddress: &envoycore.SocketAddress{ +func makeAddress(ip string, port int) *envoy_core_v3.Address { + return &envoy_core_v3.Address{ + Address: &envoy_core_v3.Address_SocketAddress{ + SocketAddress: &envoy_core_v3.SocketAddress{ Address: ip, - PortSpecifier: &envoycore.SocketAddress_PortValue{ + PortSpecifier: &envoy_core_v3.SocketAddress_PortValue{ PortValue: uint32(port), }, }, @@ -59,10 +59,10 @@ func makeBoolValue(n bool) *wrappers.BoolValue { return &wrappers.BoolValue{Value: n} } -func makeEnvoyRegexMatch(patt string) *envoymatcher.RegexMatcher { - return &envoymatcher.RegexMatcher{ - EngineType: &envoymatcher.RegexMatcher_GoogleRe2{ - GoogleRe2: &envoymatcher.RegexMatcher_GoogleRE2{}, +func makeEnvoyRegexMatch(patt string) *envoy_matcher_v3.RegexMatcher { + return &envoy_matcher_v3.RegexMatcher{ + EngineType: &envoy_matcher_v3.RegexMatcher_GoogleRe2{ + GoogleRe2: &envoy_matcher_v3.RegexMatcher_GoogleRE2{}, }, Regex: patt, } diff --git a/agent/xds/routes.go b/agent/xds/routes.go index ffed3693b..acc71a478 100644 --- a/agent/xds/routes.go +++ b/agent/xds/routes.go @@ -7,9 +7,8 @@ import ( "strings" "time" - envoy "github.com/envoyproxy/go-control-plane/envoy/api/v2" - envoyroute "github.com/envoyproxy/go-control-plane/envoy/api/v2/route" - envoymatcher "github.com/envoyproxy/go-control-plane/envoy/type/matcher" + envoy_route_v3 "github.com/envoyproxy/go-control-plane/envoy/config/route/v3" + envoy_matcher_v3 "github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3" "github.com/golang/protobuf/proto" "github.com/golang/protobuf/ptypes" @@ -64,9 +63,9 @@ func routesForConnectProxy( return nil, err } - route := &envoy.RouteConfiguration{ + route := &envoy_route_v3.RouteConfiguration{ Name: upstreamID, - VirtualHosts: []*envoyroute.VirtualHost{virtualHost}, + VirtualHosts: []*envoy_route_v3.VirtualHost{virtualHost}, // ValidateClusters defaults to true when defined statically and false // when done via RDS. Re-set the sane value of true to prevent // null-routing traffic. @@ -135,20 +134,20 @@ func (s *Server) routesFromSnapshotTerminatingGateway(_ connectionInfo, cfgSnap return resources, nil } -func makeNamedDefaultRouteWithLB(clusterName string, lb *structs.LoadBalancer) (*envoy.RouteConfiguration, error) { +func makeNamedDefaultRouteWithLB(clusterName string, lb *structs.LoadBalancer) (*envoy_route_v3.RouteConfiguration, error) { action := makeRouteActionFromName(clusterName) if err := injectLBToRouteAction(lb, action.Route); err != nil { return nil, fmt.Errorf("failed to apply load balancer configuration to route action: %v", err) } - return &envoy.RouteConfiguration{ + return &envoy_route_v3.RouteConfiguration{ Name: clusterName, - VirtualHosts: []*envoyroute.VirtualHost{ + VirtualHosts: []*envoy_route_v3.VirtualHost{ { Name: clusterName, Domains: []string{"*"}, - Routes: []*envoyroute.Route{ + Routes: []*envoy_route_v3.Route{ { Match: makeDefaultRouteMatch(), Action: action, @@ -178,7 +177,7 @@ func routesForIngressGateway( continue } - upstreamRoute := &envoy.RouteConfiguration{ + upstreamRoute := &envoy_route_v3.RouteConfiguration{ Name: listenerKey.RouteName(), // ValidateClusters defaults to true when defined statically and false // when done via RDS. Re-set the sane value of true to prevent @@ -257,8 +256,8 @@ func makeUpstreamRouteForDiscoveryChain( routeName string, chain *structs.CompiledDiscoveryChain, serviceDomains []string, -) (*envoyroute.VirtualHost, error) { - var routes []*envoyroute.Route +) (*envoy_route_v3.VirtualHost, error) { + var routes []*envoy_route_v3.Route startNode := chain.Nodes[chain.StartNode] if startNode == nil { @@ -267,13 +266,13 @@ func makeUpstreamRouteForDiscoveryChain( switch startNode.Type { case structs.DiscoveryGraphNodeTypeRouter: - routes = make([]*envoyroute.Route, 0, len(startNode.Routes)) + routes = make([]*envoy_route_v3.Route, 0, len(startNode.Routes)) for _, discoveryRoute := range startNode.Routes { routeMatch := makeRouteMatchForDiscoveryRoute(cInfo, discoveryRoute) var ( - routeAction *envoyroute.Route_Route + routeAction *envoy_route_v3.Route_Route err error ) @@ -319,7 +318,7 @@ func makeUpstreamRouteForDiscoveryChain( } if destination.HasRetryFeatures() { - retryPolicy := &envoyroute.RetryPolicy{} + retryPolicy := &envoy_route_v3.RetryPolicy{} if destination.NumRetries > 0 { retryPolicy.NumRetries = makeUint32Value(int(destination.NumRetries)) } @@ -341,7 +340,7 @@ func makeUpstreamRouteForDiscoveryChain( } } - routes = append(routes, &envoyroute.Route{ + routes = append(routes, &envoy_route_v3.Route{ Match: routeMatch, Action: routeAction, }) @@ -361,12 +360,12 @@ func makeUpstreamRouteForDiscoveryChain( return nil, fmt.Errorf("failed to apply load balancer configuration to route action: %v", err) } - defaultRoute := &envoyroute.Route{ + defaultRoute := &envoy_route_v3.Route{ Match: makeDefaultRouteMatch(), Action: routeAction, } - routes = []*envoyroute.Route{defaultRoute} + routes = []*envoy_route_v3.Route{defaultRoute} case structs.DiscoveryGraphNodeTypeResolver: routeAction := makeRouteActionForChainCluster(startNode.Resolver.Target, chain) @@ -379,18 +378,18 @@ func makeUpstreamRouteForDiscoveryChain( return nil, fmt.Errorf("failed to apply load balancer configuration to route action: %v", err) } - defaultRoute := &envoyroute.Route{ + defaultRoute := &envoy_route_v3.Route{ Match: makeDefaultRouteMatch(), Action: routeAction, } - routes = []*envoyroute.Route{defaultRoute} + routes = []*envoy_route_v3.Route{defaultRoute} default: return nil, fmt.Errorf("unknown first node in discovery chain of type: %s", startNode.Type) } - host := &envoyroute.VirtualHost{ + host := &envoy_route_v3.VirtualHost{ Name: routeName, Domains: serviceDomains, Routes: routes, @@ -399,59 +398,59 @@ func makeUpstreamRouteForDiscoveryChain( return host, nil } -func makeRouteMatchForDiscoveryRoute(_ connectionInfo, discoveryRoute *structs.DiscoveryRoute) *envoyroute.RouteMatch { +func makeRouteMatchForDiscoveryRoute(_ connectionInfo, discoveryRoute *structs.DiscoveryRoute) *envoy_route_v3.RouteMatch { match := discoveryRoute.Definition.Match if match == nil || match.IsEmpty() { return makeDefaultRouteMatch() } - em := &envoyroute.RouteMatch{} + em := &envoy_route_v3.RouteMatch{} switch { case match.HTTP.PathExact != "": - em.PathSpecifier = &envoyroute.RouteMatch_Path{ + em.PathSpecifier = &envoy_route_v3.RouteMatch_Path{ Path: match.HTTP.PathExact, } case match.HTTP.PathPrefix != "": - em.PathSpecifier = &envoyroute.RouteMatch_Prefix{ + em.PathSpecifier = &envoy_route_v3.RouteMatch_Prefix{ Prefix: match.HTTP.PathPrefix, } case match.HTTP.PathRegex != "": - em.PathSpecifier = &envoyroute.RouteMatch_SafeRegex{ + em.PathSpecifier = &envoy_route_v3.RouteMatch_SafeRegex{ SafeRegex: makeEnvoyRegexMatch(match.HTTP.PathRegex), } default: - em.PathSpecifier = &envoyroute.RouteMatch_Prefix{ + em.PathSpecifier = &envoy_route_v3.RouteMatch_Prefix{ Prefix: "/", } } if len(match.HTTP.Header) > 0 { - em.Headers = make([]*envoyroute.HeaderMatcher, 0, len(match.HTTP.Header)) + em.Headers = make([]*envoy_route_v3.HeaderMatcher, 0, len(match.HTTP.Header)) for _, hdr := range match.HTTP.Header { - eh := &envoyroute.HeaderMatcher{ + eh := &envoy_route_v3.HeaderMatcher{ Name: hdr.Name, } switch { case hdr.Exact != "": - eh.HeaderMatchSpecifier = &envoyroute.HeaderMatcher_ExactMatch{ + eh.HeaderMatchSpecifier = &envoy_route_v3.HeaderMatcher_ExactMatch{ ExactMatch: hdr.Exact, } case hdr.Regex != "": - eh.HeaderMatchSpecifier = &envoyroute.HeaderMatcher_SafeRegexMatch{ + eh.HeaderMatchSpecifier = &envoy_route_v3.HeaderMatcher_SafeRegexMatch{ SafeRegexMatch: makeEnvoyRegexMatch(hdr.Regex), } case hdr.Prefix != "": - eh.HeaderMatchSpecifier = &envoyroute.HeaderMatcher_PrefixMatch{ + eh.HeaderMatchSpecifier = &envoy_route_v3.HeaderMatcher_PrefixMatch{ PrefixMatch: hdr.Prefix, } case hdr.Suffix != "": - eh.HeaderMatchSpecifier = &envoyroute.HeaderMatcher_SuffixMatch{ + eh.HeaderMatchSpecifier = &envoy_route_v3.HeaderMatcher_SuffixMatch{ SuffixMatch: hdr.Suffix, } case hdr.Present: - eh.HeaderMatchSpecifier = &envoyroute.HeaderMatcher_PresentMatch{ + eh.HeaderMatchSpecifier = &envoy_route_v3.HeaderMatcher_PresentMatch{ PresentMatch: true, } default: @@ -469,9 +468,9 @@ func makeRouteMatchForDiscoveryRoute(_ connectionInfo, discoveryRoute *structs.D if len(match.HTTP.Methods) > 0 { methodHeaderRegex := strings.Join(match.HTTP.Methods, "|") - eh := &envoyroute.HeaderMatcher{ + eh := &envoy_route_v3.HeaderMatcher{ Name: ":method", - HeaderMatchSpecifier: &envoyroute.HeaderMatcher_SafeRegexMatch{ + HeaderMatchSpecifier: &envoy_route_v3.HeaderMatcher_SafeRegexMatch{ SafeRegexMatch: makeEnvoyRegexMatch(methodHeaderRegex), }, } @@ -480,31 +479,31 @@ func makeRouteMatchForDiscoveryRoute(_ connectionInfo, discoveryRoute *structs.D } if len(match.HTTP.QueryParam) > 0 { - em.QueryParameters = make([]*envoyroute.QueryParameterMatcher, 0, len(match.HTTP.QueryParam)) + em.QueryParameters = make([]*envoy_route_v3.QueryParameterMatcher, 0, len(match.HTTP.QueryParam)) for _, qm := range match.HTTP.QueryParam { - eq := &envoyroute.QueryParameterMatcher{ + eq := &envoy_route_v3.QueryParameterMatcher{ Name: qm.Name, } switch { case qm.Exact != "": - eq.QueryParameterMatchSpecifier = &envoyroute.QueryParameterMatcher_StringMatch{ - StringMatch: &envoymatcher.StringMatcher{ - MatchPattern: &envoymatcher.StringMatcher_Exact{ + eq.QueryParameterMatchSpecifier = &envoy_route_v3.QueryParameterMatcher_StringMatch{ + StringMatch: &envoy_matcher_v3.StringMatcher{ + MatchPattern: &envoy_matcher_v3.StringMatcher_Exact{ Exact: qm.Exact, }, }, } case qm.Regex != "": - eq.QueryParameterMatchSpecifier = &envoyroute.QueryParameterMatcher_StringMatch{ - StringMatch: &envoymatcher.StringMatcher{ - MatchPattern: &envoymatcher.StringMatcher_SafeRegex{ + eq.QueryParameterMatchSpecifier = &envoy_route_v3.QueryParameterMatcher_StringMatch{ + StringMatch: &envoy_matcher_v3.StringMatcher{ + MatchPattern: &envoy_matcher_v3.StringMatcher_SafeRegex{ SafeRegex: makeEnvoyRegexMatch(qm.Regex), }, }, } case qm.Present: - eq.QueryParameterMatchSpecifier = &envoyroute.QueryParameterMatcher_PresentMatch{ + eq.QueryParameterMatchSpecifier = &envoy_route_v3.QueryParameterMatcher_PresentMatch{ PresentMatch: true, } default: @@ -518,9 +517,9 @@ func makeRouteMatchForDiscoveryRoute(_ connectionInfo, discoveryRoute *structs.D return em } -func makeDefaultRouteMatch() *envoyroute.RouteMatch { - return &envoyroute.RouteMatch{ - PathSpecifier: &envoyroute.RouteMatch_Prefix{ +func makeDefaultRouteMatch() *envoy_route_v3.RouteMatch { + return &envoy_route_v3.RouteMatch{ + PathSpecifier: &envoy_route_v3.RouteMatch_Prefix{ Prefix: "/", }, // TODO(banks) Envoy supports matching only valid GRPC @@ -531,23 +530,23 @@ func makeDefaultRouteMatch() *envoyroute.RouteMatch { } } -func makeRouteActionForChainCluster(targetID string, chain *structs.CompiledDiscoveryChain) *envoyroute.Route_Route { +func makeRouteActionForChainCluster(targetID string, chain *structs.CompiledDiscoveryChain) *envoy_route_v3.Route_Route { target := chain.Targets[targetID] return makeRouteActionFromName(CustomizeClusterName(target.Name, chain)) } -func makeRouteActionFromName(clusterName string) *envoyroute.Route_Route { - return &envoyroute.Route_Route{ - Route: &envoyroute.RouteAction{ - ClusterSpecifier: &envoyroute.RouteAction_Cluster{ +func makeRouteActionFromName(clusterName string) *envoy_route_v3.Route_Route { + return &envoy_route_v3.Route_Route{ + Route: &envoy_route_v3.RouteAction{ + ClusterSpecifier: &envoy_route_v3.RouteAction_Cluster{ Cluster: clusterName, }, }, } } -func makeRouteActionForSplitter(splits []*structs.DiscoverySplit, chain *structs.CompiledDiscoveryChain) (*envoyroute.Route_Route, error) { - clusters := make([]*envoyroute.WeightedCluster_ClusterWeight, 0, len(splits)) +func makeRouteActionForSplitter(splits []*structs.DiscoverySplit, chain *structs.CompiledDiscoveryChain) (*envoy_route_v3.Route_Route, error) { + clusters := make([]*envoy_route_v3.WeightedCluster_ClusterWeight, 0, len(splits)) for _, split := range splits { nextNode := chain.Nodes[split.NextNode] @@ -562,7 +561,7 @@ func makeRouteActionForSplitter(splits []*structs.DiscoverySplit, chain *structs // The smallest representable weight is 1/10000 or .01% but envoy // deals with integers so scale everything up by 100x. - cw := &envoyroute.WeightedCluster_ClusterWeight{ + cw := &envoy_route_v3.WeightedCluster_ClusterWeight{ Weight: makeUint32Value(int(split.Weight * 100)), Name: clusterName, } @@ -570,10 +569,10 @@ func makeRouteActionForSplitter(splits []*structs.DiscoverySplit, chain *structs clusters = append(clusters, cw) } - return &envoyroute.Route_Route{ - Route: &envoyroute.RouteAction{ - ClusterSpecifier: &envoyroute.RouteAction_WeightedClusters{ - WeightedClusters: &envoyroute.WeightedCluster{ + return &envoy_route_v3.Route_Route{ + Route: &envoy_route_v3.RouteAction{ + ClusterSpecifier: &envoy_route_v3.RouteAction_WeightedClusters{ + WeightedClusters: &envoy_route_v3.WeightedCluster{ Clusters: clusters, TotalWeight: makeUint32Value(10000), // scaled up 100% }, @@ -582,17 +581,17 @@ func makeRouteActionForSplitter(splits []*structs.DiscoverySplit, chain *structs }, nil } -func injectLBToRouteAction(lb *structs.LoadBalancer, action *envoyroute.RouteAction) error { +func injectLBToRouteAction(lb *structs.LoadBalancer, action *envoy_route_v3.RouteAction) error { if lb == nil || !lb.IsHashBased() { return nil } - result := make([]*envoyroute.RouteAction_HashPolicy, 0, len(lb.HashPolicies)) + result := make([]*envoy_route_v3.RouteAction_HashPolicy, 0, len(lb.HashPolicies)) for _, policy := range lb.HashPolicies { if policy.SourceIP { - result = append(result, &envoyroute.RouteAction_HashPolicy{ - PolicySpecifier: &envoyroute.RouteAction_HashPolicy_ConnectionProperties_{ - ConnectionProperties: &envoyroute.RouteAction_HashPolicy_ConnectionProperties{ + result = append(result, &envoy_route_v3.RouteAction_HashPolicy{ + PolicySpecifier: &envoy_route_v3.RouteAction_HashPolicy_ConnectionProperties_{ + ConnectionProperties: &envoy_route_v3.RouteAction_HashPolicy_ConnectionProperties{ SourceIp: true, }, }, @@ -604,16 +603,16 @@ func injectLBToRouteAction(lb *structs.LoadBalancer, action *envoyroute.RouteAct switch policy.Field { case structs.HashPolicyHeader: - result = append(result, &envoyroute.RouteAction_HashPolicy{ - PolicySpecifier: &envoyroute.RouteAction_HashPolicy_Header_{ - Header: &envoyroute.RouteAction_HashPolicy_Header{ + result = append(result, &envoy_route_v3.RouteAction_HashPolicy{ + PolicySpecifier: &envoy_route_v3.RouteAction_HashPolicy_Header_{ + Header: &envoy_route_v3.RouteAction_HashPolicy_Header{ HeaderName: policy.FieldValue, }, }, Terminal: policy.Terminal, }) case structs.HashPolicyCookie: - cookie := envoyroute.RouteAction_HashPolicy_Cookie{ + cookie := envoy_route_v3.RouteAction_HashPolicy_Cookie{ Name: policy.FieldValue, } if policy.CookieConfig != nil { @@ -628,16 +627,16 @@ func injectLBToRouteAction(lb *structs.LoadBalancer, action *envoyroute.RouteAct cookie.Ttl = ptypes.DurationProto(0 * time.Second) } } - result = append(result, &envoyroute.RouteAction_HashPolicy{ - PolicySpecifier: &envoyroute.RouteAction_HashPolicy_Cookie_{ + result = append(result, &envoy_route_v3.RouteAction_HashPolicy{ + PolicySpecifier: &envoy_route_v3.RouteAction_HashPolicy_Cookie_{ Cookie: &cookie, }, Terminal: policy.Terminal, }) case structs.HashPolicyQueryParam: - result = append(result, &envoyroute.RouteAction_HashPolicy{ - PolicySpecifier: &envoyroute.RouteAction_HashPolicy_QueryParameter_{ - QueryParameter: &envoyroute.RouteAction_HashPolicy_QueryParameter{ + result = append(result, &envoy_route_v3.RouteAction_HashPolicy{ + PolicySpecifier: &envoy_route_v3.RouteAction_HashPolicy_QueryParameter_{ + QueryParameter: &envoy_route_v3.RouteAction_HashPolicy_QueryParameter{ Name: policy.FieldValue, }, }, diff --git a/agent/xds/routes_test.go b/agent/xds/routes_test.go index 31ae09cf2..7311e92ae 100644 --- a/agent/xds/routes_test.go +++ b/agent/xds/routes_test.go @@ -6,8 +6,7 @@ import ( "testing" "time" - envoy "github.com/envoyproxy/go-control-plane/envoy/api/v2" - envoyroute "github.com/envoyproxy/go-control-plane/envoy/api/v2/route" + envoy_route_v3 "github.com/envoyproxy/go-control-plane/envoy/config/route/v3" "github.com/golang/protobuf/ptypes" testinf "github.com/mitchellh/go-testing-interface" @@ -245,8 +244,6 @@ func TestRoutesFromSnapshot(t *testing.T) { t.Run("envoy-"+envoyVersion, func(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - require := require.New(t) - // Sanity check default with no overrides first snap := tt.create(t) @@ -265,21 +262,40 @@ func TestRoutesFromSnapshot(t *testing.T) { ProxyFeatures: sf, } routes, err := s.routesFromSnapshot(cInfo, snap) - require.NoError(err) + require.NoError(t, err) + sort.Slice(routes, func(i, j int) bool { - return routes[i].(*envoy.RouteConfiguration).Name < routes[j].(*envoy.RouteConfiguration).Name + return routes[i].(*envoy_route_v3.RouteConfiguration).Name < routes[j].(*envoy_route_v3.RouteConfiguration).Name }) r, err := createResponse(RouteType, "00000001", "00000001", routes) - require.NoError(err) + require.NoError(t, err) - gotJSON := responseToJSON(t, r) + t.Run("current", func(t *testing.T) { + gotJSON := protoToJSON(t, r) - gName := tt.name - if tt.overrideGoldenName != "" { - gName = tt.overrideGoldenName - } + gName := tt.name + if tt.overrideGoldenName != "" { + gName = tt.overrideGoldenName + } - require.JSONEq(goldenEnvoy(t, filepath.Join("routes", gName), envoyVersion, latestEnvoyVersion, gotJSON), gotJSON) + require.JSONEq(t, goldenEnvoy(t, filepath.Join("routes", gName), envoyVersion, latestEnvoyVersion, gotJSON), gotJSON) + }) + + t.Run("v2-compat", func(t *testing.T) { + respV2, err := convertDiscoveryResponseToV2(r) + require.NoError(t, err) + + gotJSON := protoToJSON(t, respV2) + + gName := tt.name + if tt.overrideGoldenName != "" { + gName = tt.overrideGoldenName + } + + gName += ".v2compat" + + require.JSONEq(t, goldenEnvoy(t, filepath.Join("routes", gName), envoyVersion, latestEnvoyVersion, gotJSON), gotJSON) + }) }) } }) @@ -290,7 +306,7 @@ func TestEnvoyLBConfig_InjectToRouteAction(t *testing.T) { var tests = []struct { name string lb *structs.LoadBalancer - expected *envoyroute.RouteAction + expected *envoy_route_v3.RouteAction }{ { name: "empty", @@ -298,7 +314,7 @@ func TestEnvoyLBConfig_InjectToRouteAction(t *testing.T) { Policy: "", }, // we only modify route actions for hash-based LB policies - expected: &envoyroute.RouteAction{}, + expected: &envoy_route_v3.RouteAction{}, }, { name: "least request", @@ -309,7 +325,7 @@ func TestEnvoyLBConfig_InjectToRouteAction(t *testing.T) { }, }, // we only modify route actions for hash-based LB policies - expected: &envoyroute.RouteAction{}, + expected: &envoy_route_v3.RouteAction{}, }, { name: "headers", @@ -327,11 +343,11 @@ func TestEnvoyLBConfig_InjectToRouteAction(t *testing.T) { }, }, }, - expected: &envoyroute.RouteAction{ - HashPolicy: []*envoyroute.RouteAction_HashPolicy{ + expected: &envoy_route_v3.RouteAction{ + HashPolicy: []*envoy_route_v3.RouteAction_HashPolicy{ { - PolicySpecifier: &envoyroute.RouteAction_HashPolicy_Header_{ - Header: &envoyroute.RouteAction_HashPolicy_Header{ + PolicySpecifier: &envoy_route_v3.RouteAction_HashPolicy_Header_{ + Header: &envoy_route_v3.RouteAction_HashPolicy_Header{ HeaderName: "x-route-key", }, }, @@ -356,19 +372,19 @@ func TestEnvoyLBConfig_InjectToRouteAction(t *testing.T) { }, }, }, - expected: &envoyroute.RouteAction{ - HashPolicy: []*envoyroute.RouteAction_HashPolicy{ + expected: &envoy_route_v3.RouteAction{ + HashPolicy: []*envoy_route_v3.RouteAction_HashPolicy{ { - PolicySpecifier: &envoyroute.RouteAction_HashPolicy_Cookie_{ - Cookie: &envoyroute.RouteAction_HashPolicy_Cookie{ + PolicySpecifier: &envoy_route_v3.RouteAction_HashPolicy_Cookie_{ + Cookie: &envoy_route_v3.RouteAction_HashPolicy_Cookie{ Name: "red-velvet", }, }, Terminal: true, }, { - PolicySpecifier: &envoyroute.RouteAction_HashPolicy_Cookie_{ - Cookie: &envoyroute.RouteAction_HashPolicy_Cookie{ + PolicySpecifier: &envoy_route_v3.RouteAction_HashPolicy_Cookie_{ + Cookie: &envoy_route_v3.RouteAction_HashPolicy_Cookie{ Name: "oatmeal", }, }, @@ -391,11 +407,11 @@ func TestEnvoyLBConfig_InjectToRouteAction(t *testing.T) { }, }, }, - expected: &envoyroute.RouteAction{ - HashPolicy: []*envoyroute.RouteAction_HashPolicy{ + expected: &envoy_route_v3.RouteAction{ + HashPolicy: []*envoy_route_v3.RouteAction_HashPolicy{ { - PolicySpecifier: &envoyroute.RouteAction_HashPolicy_Cookie_{ - Cookie: &envoyroute.RouteAction_HashPolicy_Cookie{ + PolicySpecifier: &envoy_route_v3.RouteAction_HashPolicy_Cookie_{ + Cookie: &envoy_route_v3.RouteAction_HashPolicy_Cookie{ Name: "oatmeal", Ttl: ptypes.DurationProto(0 * time.Second), }, @@ -418,11 +434,11 @@ func TestEnvoyLBConfig_InjectToRouteAction(t *testing.T) { }, }, }, - expected: &envoyroute.RouteAction{ - HashPolicy: []*envoyroute.RouteAction_HashPolicy{ + expected: &envoy_route_v3.RouteAction{ + HashPolicy: []*envoy_route_v3.RouteAction_HashPolicy{ { - PolicySpecifier: &envoyroute.RouteAction_HashPolicy_Cookie_{ - Cookie: &envoyroute.RouteAction_HashPolicy_Cookie{ + PolicySpecifier: &envoy_route_v3.RouteAction_HashPolicy_Cookie_{ + Cookie: &envoy_route_v3.RouteAction_HashPolicy_Cookie{ Name: "oatmeal", Path: "/oven", Ttl: nil, @@ -443,11 +459,11 @@ func TestEnvoyLBConfig_InjectToRouteAction(t *testing.T) { }, }, }, - expected: &envoyroute.RouteAction{ - HashPolicy: []*envoyroute.RouteAction_HashPolicy{ + expected: &envoy_route_v3.RouteAction{ + HashPolicy: []*envoy_route_v3.RouteAction_HashPolicy{ { - PolicySpecifier: &envoyroute.RouteAction_HashPolicy_ConnectionProperties_{ - ConnectionProperties: &envoyroute.RouteAction_HashPolicy_ConnectionProperties{ + PolicySpecifier: &envoy_route_v3.RouteAction_HashPolicy_ConnectionProperties_{ + ConnectionProperties: &envoy_route_v3.RouteAction_HashPolicy_ConnectionProperties{ SourceIp: true, }, }, @@ -488,19 +504,19 @@ func TestEnvoyLBConfig_InjectToRouteAction(t *testing.T) { }, }, }, - expected: &envoyroute.RouteAction{ - HashPolicy: []*envoyroute.RouteAction_HashPolicy{ + expected: &envoy_route_v3.RouteAction{ + HashPolicy: []*envoy_route_v3.RouteAction_HashPolicy{ { - PolicySpecifier: &envoyroute.RouteAction_HashPolicy_ConnectionProperties_{ - ConnectionProperties: &envoyroute.RouteAction_HashPolicy_ConnectionProperties{ + PolicySpecifier: &envoy_route_v3.RouteAction_HashPolicy_ConnectionProperties_{ + ConnectionProperties: &envoy_route_v3.RouteAction_HashPolicy_ConnectionProperties{ SourceIp: true, }, }, Terminal: true, }, { - PolicySpecifier: &envoyroute.RouteAction_HashPolicy_Cookie_{ - Cookie: &envoyroute.RouteAction_HashPolicy_Cookie{ + PolicySpecifier: &envoy_route_v3.RouteAction_HashPolicy_Cookie_{ + Cookie: &envoy_route_v3.RouteAction_HashPolicy_Cookie{ Name: "oatmeal", Ttl: ptypes.DurationProto(10 * time.Second), Path: "/oven", @@ -508,8 +524,8 @@ func TestEnvoyLBConfig_InjectToRouteAction(t *testing.T) { }, }, { - PolicySpecifier: &envoyroute.RouteAction_HashPolicy_Cookie_{ - Cookie: &envoyroute.RouteAction_HashPolicy_Cookie{ + PolicySpecifier: &envoy_route_v3.RouteAction_HashPolicy_Cookie_{ + Cookie: &envoy_route_v3.RouteAction_HashPolicy_Cookie{ Name: "chocolate-chip", Ttl: ptypes.DurationProto(0 * time.Second), Path: "/oven", @@ -517,8 +533,8 @@ func TestEnvoyLBConfig_InjectToRouteAction(t *testing.T) { }, }, { - PolicySpecifier: &envoyroute.RouteAction_HashPolicy_Header_{ - Header: &envoyroute.RouteAction_HashPolicy_Header{ + PolicySpecifier: &envoy_route_v3.RouteAction_HashPolicy_Header_{ + Header: &envoy_route_v3.RouteAction_HashPolicy_Header{ HeaderName: "special-header", }, }, @@ -531,7 +547,7 @@ func TestEnvoyLBConfig_InjectToRouteAction(t *testing.T) { for _, tc := range tests { t.Run(tc.name, func(t *testing.T) { - var ra envoyroute.RouteAction + var ra envoy_route_v3.RouteAction err := injectLBToRouteAction(tc.lb, &ra) require.NoError(t, err) diff --git a/agent/xds/server.go b/agent/xds/server.go index d4c0b97bf..672e77b50 100644 --- a/agent/xds/server.go +++ b/agent/xds/server.go @@ -4,13 +4,14 @@ import ( "context" "errors" "fmt" - "github.com/hashicorp/consul/logging" "sync/atomic" "time" - envoy "github.com/envoyproxy/go-control-plane/envoy/api/v2" - envoycore "github.com/envoyproxy/go-control-plane/envoy/api/v2/core" - envoydisco "github.com/envoyproxy/go-control-plane/envoy/service/discovery/v2" + "github.com/hashicorp/consul/logging" + + envoy_config_core_v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + envoy_discovery_v2 "github.com/envoyproxy/go-control-plane/envoy/service/discovery/v2" + envoy_discovery_v3 "github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3" "github.com/golang/protobuf/proto" "github.com/hashicorp/go-hclog" @@ -27,25 +28,26 @@ import ( ) // ADSStream is a shorter way of referring to this thing... -type ADSStream = envoydisco.AggregatedDiscoveryService_StreamAggregatedResourcesServer +type ADSStream = envoy_discovery_v3.AggregatedDiscoveryService_StreamAggregatedResourcesServer +type ADSStream_v2 = envoy_discovery_v2.AggregatedDiscoveryService_StreamAggregatedResourcesServer const ( - // Resource types in xDS v2. These are copied from - // envoyproxy/go-control-plane/pkg/cache/resource.go since we don't need any of + // Resource types in xDS v3. These are copied from + // envoyproxy/go-control-plane/pkg/resource/v3/resource.go since we don't need any of // the rest of that package. - typePrefix = "type.googleapis.com/envoy.api.v2." + apiTypePrefix = "type.googleapis.com/" // EndpointType is the TypeURL for Endpoint discovery responses. - EndpointType = typePrefix + "ClusterLoadAssignment" + EndpointType = apiTypePrefix + "envoy.config.endpoint.v3.ClusterLoadAssignment" // ClusterType is the TypeURL for Cluster discovery responses. - ClusterType = typePrefix + "Cluster" + ClusterType = apiTypePrefix + "envoy.config.cluster.v3.Cluster" // RouteType is the TypeURL for Route discovery responses. - RouteType = typePrefix + "RouteConfiguration" + RouteType = apiTypePrefix + "envoy.config.route.v3.RouteConfiguration" // ListenerType is the TypeURL for Listener discovery responses. - ListenerType = typePrefix + "Listener" + ListenerType = apiTypePrefix + "envoy.config.listener.v3.Listener" // PublicListenerName is the name we give the public listener in Envoy config. PublicListenerName = "public_listener" @@ -125,14 +127,16 @@ type Server struct { AuthCheckFrequency time.Duration CheckFetcher HTTPCheckFetcher CfgFetcher ConfigFetcher + + DisableV2Protocol bool } // StreamAggregatedResources implements -// envoydisco.AggregatedDiscoveryServiceServer. This is the ADS endpoint which is +// envoy_discovery_v3.AggregatedDiscoveryServiceServer. This is the ADS endpoint which is // the only xDS API we directly support for now. func (s *Server) StreamAggregatedResources(stream ADSStream) error { // a channel for receiving incoming requests - reqCh := make(chan *envoy.DiscoveryRequest) + reqCh := make(chan *envoy_discovery_v3.DiscoveryRequest) reqStop := int32(0) go func() { for { @@ -150,7 +154,7 @@ func (s *Server) StreamAggregatedResources(stream ADSStream) error { err := s.process(stream, reqCh) if err != nil { - s.Logger.Error("Error handling ADS stream", "error", err) + s.Logger.Error("Error handling ADS stream", "xdsVersion", "v3", "error", err) } // prevents writing to a closed channel if send failed on blocked recv @@ -165,7 +169,7 @@ const ( stateRunning ) -func (s *Server) process(stream ADSStream, reqCh <-chan *envoy.DiscoveryRequest) error { +func (s *Server) process(stream ADSStream, reqCh <-chan *envoy_discovery_v3.DiscoveryRequest) error { logger := s.Logger.Named(logging.XDS) // xDS requires a unique nonce to correlate response/request pairs @@ -181,8 +185,8 @@ func (s *Server) process(stream ADSStream, reqCh <-chan *envoy.DiscoveryRequest) // Loop state var ( cfgSnap *proxycfg.ConfigSnapshot - req *envoy.DiscoveryRequest - node *envoycore.Node + req *envoy_discovery_v3.DiscoveryRequest + node *envoy_config_core_v3.Node proxyFeatures supportedProxyFeatures ok bool stateCh <-chan *proxycfg.ConfigSnapshot @@ -382,8 +386,8 @@ func (s *Server) process(stream ADSStream, reqCh <-chan *envoy.DiscoveryRequest) type xDSType struct { typeURL string stream ADSStream - req *envoy.DiscoveryRequest - node *envoycore.Node + req *envoy_discovery_v3.DiscoveryRequest + node *envoy_config_core_v3.Node proxyFeatures supportedProxyFeatures lastNonce string // lastVersion is the version that was last sent to the proxy. It is needed @@ -404,7 +408,7 @@ type connectionInfo struct { ProxyFeatures supportedProxyFeatures } -func (t *xDSType) Recv(req *envoy.DiscoveryRequest, node *envoycore.Node, proxyFeatures supportedProxyFeatures) { +func (t *xDSType) Recv(req *envoy_discovery_v3.DiscoveryRequest, node *envoy_config_core_v3.Node, proxyFeatures supportedProxyFeatures) { if t.lastNonce == "" || t.lastNonce == req.GetResponseNonce() { t.req = req t.node = node @@ -476,8 +480,8 @@ func tokenFromContext(ctx context.Context) string { return "" } -// DeltaAggregatedResources implements envoydisco.AggregatedDiscoveryServiceServer -func (s *Server) DeltaAggregatedResources(_ envoydisco.AggregatedDiscoveryService_DeltaAggregatedResourcesServer) error { +// DeltaAggregatedResources implements envoy_discovery_v3.AggregatedDiscoveryServiceServer +func (s *Server) DeltaAggregatedResources(_ envoy_discovery_v3.AggregatedDiscoveryService_DeltaAggregatedResourcesServer) error { return errors.New("not implemented") } @@ -493,7 +497,11 @@ func (s *Server) GRPCServer(tlsConfigurator *tlsutil.Configurator) (*grpc.Server } } srv := grpc.NewServer(opts...) - envoydisco.RegisterAggregatedDiscoveryServiceServer(srv, s) + envoy_discovery_v3.RegisterAggregatedDiscoveryServiceServer(srv, s) + + if !s.DisableV2Protocol { + envoy_discovery_v2.RegisterAggregatedDiscoveryServiceServer(srv, &adsServerV2Shim{srv: s}) + } return srv, nil } diff --git a/agent/xds/server_oss.go b/agent/xds/server_oss.go index 355819359..0724351c3 100644 --- a/agent/xds/server_oss.go +++ b/agent/xds/server_oss.go @@ -3,11 +3,11 @@ package xds import ( - envoycore "github.com/envoyproxy/go-control-plane/envoy/api/v2/core" + envoy_core_v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" "github.com/hashicorp/consul/agent/structs" ) -func parseEnterpriseMeta(node *envoycore.Node) *structs.EnterpriseMeta { +func parseEnterpriseMeta(node *envoy_core_v3.Node) *structs.EnterpriseMeta { return structs.DefaultEnterpriseMeta() } diff --git a/agent/xds/server_test.go b/agent/xds/server_test.go index 4bbcd5f98..c4bc3f6bd 100644 --- a/agent/xds/server_test.go +++ b/agent/xds/server_test.go @@ -7,7 +7,7 @@ import ( "testing" "time" - envoy "github.com/envoyproxy/go-control-plane/envoy/api/v2" + envoy_discovery_v3 "github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3" "github.com/stretchr/testify/require" "google.golang.org/grpc/codes" @@ -221,7 +221,7 @@ func expectEndpointsJSON(v, n uint64) string { "versionInfo": "` + hexString(v) + `", "resources": [ { - "@type": "type.googleapis.com/envoy.api.v2.ClusterLoadAssignment", + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", "endpoints": [ { @@ -255,7 +255,7 @@ func expectEndpointsJSON(v, n uint64) string { ] }, { - "@type": "type.googleapis.com/envoy.api.v2.ClusterLoadAssignment", + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", "clusterName": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", "endpoints": [ { @@ -289,17 +289,17 @@ func expectEndpointsJSON(v, n uint64) string { ] } ], - "typeUrl": "type.googleapis.com/envoy.api.v2.ClusterLoadAssignment", + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", "nonce": "` + hexString(n) + `" }` } func expectedUpstreamTransportSocketJSON(snap *proxycfg.ConfigSnapshot, sni string) string { - return expectedTransportSocketJSON(snap, "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", false, sni) + return expectedTransportSocketJSON(snap, "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", false, sni) } func expectedPublicTransportSocketJSON(snap *proxycfg.ConfigSnapshot) string { - return expectedTransportSocketJSON(snap, "type.googleapis.com/envoy.api.v2.auth.DownstreamTlsContext", true, "") + return expectedTransportSocketJSON(snap, "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", true, "") } func expectedTransportSocketJSON( @@ -350,7 +350,7 @@ func expectedTransportSocketJSON( }` } -func assertChanBlocked(t *testing.T, ch chan *envoy.DiscoveryResponse) { +func assertChanBlocked(t *testing.T, ch chan *envoy_discovery_v3.DiscoveryResponse) { t.Helper() select { case r := <-ch: @@ -360,7 +360,7 @@ func assertChanBlocked(t *testing.T, ch chan *envoy.DiscoveryResponse) { } } -func assertResponseSent(t *testing.T, ch chan *envoy.DiscoveryResponse, wantJSON string) { +func assertResponseSent(t *testing.T, ch chan *envoy_discovery_v3.DiscoveryResponse, wantJSON string) { t.Helper() select { case r := <-ch: @@ -374,9 +374,9 @@ func assertResponseSent(t *testing.T, ch chan *envoy.DiscoveryResponse, wantJSON // JSON representation we expect. We use JSON because the responses use protobuf // Any type which includes binary protobuf encoding and would make creating // expected structs require the same code that is under test! -func assertResponse(t *testing.T, r *envoy.DiscoveryResponse, wantJSON string) { +func assertResponse(t *testing.T, r *envoy_discovery_v3.DiscoveryResponse, wantJSON string) { t.Helper() - gotJSON := responseToJSON(t, r) + gotJSON := protoToJSON(t, r) require.JSONEqf(t, wantJSON, gotJSON, "got:\n%s", gotJSON) } @@ -736,19 +736,19 @@ func TestServer_StreamAggregatedResources_IngressEmptyResponse(t *testing.T) { emptyClusterJSON := `{ "versionInfo": "` + hexString(1) + `", - "typeUrl": "type.googleapis.com/envoy.api.v2.Cluster", + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", "resources": [], "nonce": "` + hexString(1) + `" }` emptyListenerJSON := `{ "versionInfo": "` + hexString(1) + `", - "typeUrl": "type.googleapis.com/envoy.api.v2.Listener", + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", "resources": [], "nonce": "` + hexString(2) + `" }` emptyRouteJSON := `{ "versionInfo": "` + hexString(1) + `", - "typeUrl": "type.googleapis.com/envoy.api.v2.RouteConfiguration", + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", "resources": [], "nonce": "` + hexString(3) + `" }` diff --git a/agent/xds/testdata/clusters/connect-proxy-lb-in-resolver.envoy-1-17-x.golden b/agent/xds/testdata/clusters/connect-proxy-lb-in-resolver.envoy-1-17-x.golden new file mode 100644 index 000000000..5d4c1638d --- /dev/null +++ b/agent/xds/testdata/clusters/connect-proxy-lb-in-resolver.envoy-1-17-x.golden @@ -0,0 +1,190 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "lbPolicy": "RING_HASH", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "ringHashLbConfig": { + "minimumRingSize": "20", + "maximumRingSize": "30" + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "something-else.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "something-else.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "something-else.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/connect-proxy-lb-in-resolver.envoy-1-16-x.golden b/agent/xds/testdata/clusters/connect-proxy-lb-in-resolver.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/connect-proxy-lb-in-resolver.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/connect-proxy-lb-in-resolver.v2compat.envoy-1-17-x.golden index 446a94445..157eead91 100644 --- a/agent/xds/testdata/clusters/connect-proxy-lb-in-resolver.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/connect-proxy-lb-in-resolver.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -66,7 +67,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -138,7 +140,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/connect-proxy-with-chain-and-failover.envoy-1-17-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-chain-and-failover.envoy-1-17-x.golden new file mode 100644 index 000000000..3c3686c3c --- /dev/null +++ b/agent/xds/testdata/clusters/connect-proxy-with-chain-and-failover.envoy-1-17-x.golden @@ -0,0 +1,132 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/connect-proxy-with-chain.envoy-1-16-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-chain-and-failover.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/connect-proxy-with-chain.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/connect-proxy-with-chain-and-failover.v2compat.envoy-1-17-x.golden index a5f50769d..69c1689dc 100644 --- a/agent/xds/testdata/clusters/connect-proxy-with-chain.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/connect-proxy-with-chain-and-failover.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "33s", @@ -61,7 +62,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/connect-proxy-with-chain-and-overrides.envoy-1-17-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-chain-and-overrides.envoy-1-17-x.golden new file mode 100644 index 000000000..a2c54d89e --- /dev/null +++ b/agent/xds/testdata/clusters/connect-proxy-with-chain-and-overrides.envoy-1-17-x.golden @@ -0,0 +1,135 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "a236e964~db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "a236e964~db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "66s", + "circuitBreakers": { + + }, + "http2ProtocolOptions": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/connect-proxy-with-chain-and-overrides.envoy-1-16-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-chain-and-overrides.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/connect-proxy-with-chain-and-overrides.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/connect-proxy-with-chain-and-overrides.v2compat.envoy-1-17-x.golden index 8ed0ba185..16b70390b 100644 --- a/agent/xds/testdata/clusters/connect-proxy-with-chain-and-overrides.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/connect-proxy-with-chain-and-overrides.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "66s", @@ -64,7 +65,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/connect-proxy-with-chain-external-sni.envoy-1-17-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-chain-external-sni.envoy-1-17-x.golden new file mode 100644 index 000000000..81f82c86e --- /dev/null +++ b/agent/xds/testdata/clusters/connect-proxy-with-chain-external-sni.envoy-1-17-x.golden @@ -0,0 +1,132 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.some.other.service.mesh" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/connect-proxy-with-chain-external-sni.envoy-1-16-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-chain-external-sni.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/connect-proxy-with-chain-external-sni.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/connect-proxy-with-chain-external-sni.v2compat.envoy-1-17-x.golden index 0fb1c4364..849bc907d 100644 --- a/agent/xds/testdata/clusters/connect-proxy-with-chain-external-sni.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/connect-proxy-with-chain-external-sni.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "33s", @@ -61,7 +62,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/connect-proxy-with-chain.envoy-1-17-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-chain.envoy-1-17-x.golden new file mode 100644 index 000000000..3c3686c3c --- /dev/null +++ b/agent/xds/testdata/clusters/connect-proxy-with-chain.envoy-1-17-x.golden @@ -0,0 +1,132 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/connect-proxy-with-chain-and-failover.envoy-1-16-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-chain.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/connect-proxy-with-chain-and-failover.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/connect-proxy-with-chain.v2compat.envoy-1-17-x.golden index a5f50769d..69c1689dc 100644 --- a/agent/xds/testdata/clusters/connect-proxy-with-chain-and-failover.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/connect-proxy-with-chain.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "33s", @@ -61,7 +62,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-17-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-17-x.golden new file mode 100644 index 000000000..e7d781548 --- /dev/null +++ b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-17-x.golden @@ -0,0 +1,132 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc3.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-16-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden index 145179bb0..a754a8bd4 100644 --- a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "33s", @@ -61,7 +62,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway.envoy-1-17-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..3c3686c3c --- /dev/null +++ b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway.envoy-1-17-x.golden @@ -0,0 +1,132 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-16-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway.v2compat.envoy-1-17-x.golden index a5f50769d..69c1689dc 100644 --- a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "33s", @@ -61,7 +62,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-17-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-17-x.golden new file mode 100644 index 000000000..e7d781548 --- /dev/null +++ b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-17-x.golden @@ -0,0 +1,132 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc3.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-16-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden index 145179bb0..a754a8bd4 100644 --- a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "33s", @@ -61,7 +62,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-17-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..3c3686c3c --- /dev/null +++ b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-17-x.golden @@ -0,0 +1,132 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway.envoy-1-16-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden index a5f50769d..69c1689dc 100644 --- a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-local-gateway.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "33s", @@ -61,7 +62,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-17-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-17-x.golden new file mode 100644 index 000000000..27130f4d3 --- /dev/null +++ b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-17-x.golden @@ -0,0 +1,132 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc2.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-16-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden index 46e0a219b..5532ae52e 100644 --- a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "33s", @@ -61,7 +62,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden deleted file mode 100644 index a5f50769d..000000000 --- a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden +++ /dev/null @@ -1,130 +0,0 @@ -{ - "versionInfo": "00000001", - "resources": [ - { - "@type": "type.googleapis.com/envoy.api.v2.Cluster", - "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", - "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", - "type": "EDS", - "edsClusterConfig": { - "edsConfig": { - "ads": { - - } - } - }, - "connectTimeout": "33s", - "circuitBreakers": { - - }, - "outlierDetection": { - - }, - "commonLbConfig": { - "healthyPanicThreshold": { - - } - }, - "transportSocket": { - "name": "tls", - "typedConfig": { - "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", - "commonTlsContext": { - "tlsParams": { - - }, - "tlsCertificates": [ - { - "certificateChain": { - "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" - }, - "privateKey": { - "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" - } - } - ], - "validationContext": { - "trustedCa": { - "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" - } - } - }, - "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" - } - } - }, - { - "@type": "type.googleapis.com/envoy.api.v2.Cluster", - "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", - "type": "EDS", - "edsClusterConfig": { - "edsConfig": { - "ads": { - - } - } - }, - "connectTimeout": "5s", - "circuitBreakers": { - - }, - "outlierDetection": { - - }, - "transportSocket": { - "name": "tls", - "typedConfig": { - "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", - "commonTlsContext": { - "tlsParams": { - - }, - "tlsCertificates": [ - { - "certificateChain": { - "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" - }, - "privateKey": { - "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" - } - } - ], - "validationContext": { - "trustedCa": { - "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" - } - } - }, - "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" - } - } - }, - { - "@type": "type.googleapis.com/envoy.api.v2.Cluster", - "name": "local_app", - "type": "STATIC", - "connectTimeout": "5s", - "loadAssignment": { - "clusterName": "local_app", - "endpoints": [ - { - "lbEndpoints": [ - { - "endpoint": { - "address": { - "socketAddress": { - "address": "127.0.0.1", - "portValue": 8080 - } - } - } - } - ] - } - ] - } - } - ], - "typeUrl": "type.googleapis.com/envoy.api.v2.Cluster", - "nonce": "00000001" -} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..3c3686c3c --- /dev/null +++ b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden @@ -0,0 +1,132 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden new file mode 100644 index 000000000..69c1689dc --- /dev/null +++ b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden @@ -0,0 +1,132 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.api.v2.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V2" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.api.v2.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V2" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.api.v2.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.api.v2.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-17-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-17-x.golden new file mode 100644 index 000000000..27130f4d3 --- /dev/null +++ b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-17-x.golden @@ -0,0 +1,132 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc2.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-16-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden index 46e0a219b..5532ae52e 100644 --- a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "33s", @@ -61,7 +62,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden deleted file mode 100644 index a5f50769d..000000000 --- a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden +++ /dev/null @@ -1,130 +0,0 @@ -{ - "versionInfo": "00000001", - "resources": [ - { - "@type": "type.googleapis.com/envoy.api.v2.Cluster", - "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", - "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", - "type": "EDS", - "edsClusterConfig": { - "edsConfig": { - "ads": { - - } - } - }, - "connectTimeout": "33s", - "circuitBreakers": { - - }, - "outlierDetection": { - - }, - "commonLbConfig": { - "healthyPanicThreshold": { - - } - }, - "transportSocket": { - "name": "tls", - "typedConfig": { - "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", - "commonTlsContext": { - "tlsParams": { - - }, - "tlsCertificates": [ - { - "certificateChain": { - "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" - }, - "privateKey": { - "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" - } - } - ], - "validationContext": { - "trustedCa": { - "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" - } - } - }, - "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" - } - } - }, - { - "@type": "type.googleapis.com/envoy.api.v2.Cluster", - "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", - "type": "EDS", - "edsClusterConfig": { - "edsConfig": { - "ads": { - - } - } - }, - "connectTimeout": "5s", - "circuitBreakers": { - - }, - "outlierDetection": { - - }, - "transportSocket": { - "name": "tls", - "typedConfig": { - "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", - "commonTlsContext": { - "tlsParams": { - - }, - "tlsCertificates": [ - { - "certificateChain": { - "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" - }, - "privateKey": { - "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" - } - } - ], - "validationContext": { - "trustedCa": { - "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" - } - } - }, - "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" - } - } - }, - { - "@type": "type.googleapis.com/envoy.api.v2.Cluster", - "name": "local_app", - "type": "STATIC", - "connectTimeout": "5s", - "loadAssignment": { - "clusterName": "local_app", - "endpoints": [ - { - "lbEndpoints": [ - { - "endpoint": { - "address": { - "socketAddress": { - "address": "127.0.0.1", - "portValue": 8080 - } - } - } - } - ] - } - ] - } - } - ], - "typeUrl": "type.googleapis.com/envoy.api.v2.Cluster", - "nonce": "00000001" -} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..3c3686c3c --- /dev/null +++ b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden @@ -0,0 +1,132 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden new file mode 100644 index 000000000..69c1689dc --- /dev/null +++ b/agent/xds/testdata/clusters/connect-proxy-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden @@ -0,0 +1,132 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.api.v2.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V2" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.api.v2.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V2" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.api.v2.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.api.v2.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/custom-limits-max-connections-only.envoy-1-17-x.golden b/agent/xds/testdata/clusters/custom-limits-max-connections-only.envoy-1-17-x.golden new file mode 100644 index 000000000..8fdafa0ce --- /dev/null +++ b/agent/xds/testdata/clusters/custom-limits-max-connections-only.envoy-1-17-x.golden @@ -0,0 +1,140 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + "thresholds": [ + { + "maxConnections": 500 + } + ] + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + "thresholds": [ + { + "maxConnections": 500 + } + ] + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/custom-limits-max-connections-only.envoy-1-16-x.golden b/agent/xds/testdata/clusters/custom-limits-max-connections-only.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/custom-limits-max-connections-only.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/custom-limits-max-connections-only.v2compat.envoy-1-17-x.golden index b46368c78..37d76d4f9 100644 --- a/agent/xds/testdata/clusters/custom-limits-max-connections-only.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/custom-limits-max-connections-only.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -65,7 +66,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/custom-limits-set-to-zero.envoy-1-17-x.golden b/agent/xds/testdata/clusters/custom-limits-set-to-zero.envoy-1-17-x.golden new file mode 100644 index 000000000..ea021c9c9 --- /dev/null +++ b/agent/xds/testdata/clusters/custom-limits-set-to-zero.envoy-1-17-x.golden @@ -0,0 +1,144 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + "thresholds": [ + { + "maxConnections": 0, + "maxPendingRequests": 0, + "maxRequests": 0 + } + ] + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + "thresholds": [ + { + "maxConnections": 0, + "maxPendingRequests": 0, + "maxRequests": 0 + } + ] + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/custom-limits-set-to-zero.envoy-1-16-x.golden b/agent/xds/testdata/clusters/custom-limits-set-to-zero.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/custom-limits-set-to-zero.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/custom-limits-set-to-zero.v2compat.envoy-1-17-x.golden index 828f61628..12770c50e 100644 --- a/agent/xds/testdata/clusters/custom-limits-set-to-zero.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/custom-limits-set-to-zero.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -67,7 +68,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/custom-limits.envoy-1-17-x.golden b/agent/xds/testdata/clusters/custom-limits.envoy-1-17-x.golden new file mode 100644 index 000000000..618bb5294 --- /dev/null +++ b/agent/xds/testdata/clusters/custom-limits.envoy-1-17-x.golden @@ -0,0 +1,144 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + "thresholds": [ + { + "maxConnections": 500, + "maxPendingRequests": 600, + "maxRequests": 700 + } + ] + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + "thresholds": [ + { + "maxConnections": 500, + "maxPendingRequests": 600, + "maxRequests": 700 + } + ] + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/custom-limits.envoy-1-16-x.golden b/agent/xds/testdata/clusters/custom-limits.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/custom-limits.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/custom-limits.v2compat.envoy-1-17-x.golden index e51d38a7d..26cabcbe3 100644 --- a/agent/xds/testdata/clusters/custom-limits.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/custom-limits.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -67,7 +68,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/custom-local-app.envoy-1-17-x.golden b/agent/xds/testdata/clusters/custom-local-app.envoy-1-17-x.golden new file mode 100644 index 000000000..3e4cc3072 --- /dev/null +++ b/agent/xds/testdata/clusters/custom-local-app.envoy-1-17-x.golden @@ -0,0 +1,131 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "mylocal", + "connectTimeout": "15s", + "loadAssignment": { + "clusterName": "mylocal", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/custom-local-app.v2compat.envoy-1-17-x.golden b/agent/xds/testdata/clusters/custom-local-app.v2compat.envoy-1-17-x.golden new file mode 100644 index 000000000..308f09686 --- /dev/null +++ b/agent/xds/testdata/clusters/custom-local-app.v2compat.envoy-1-17-x.golden @@ -0,0 +1,131 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.api.v2.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V2" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.api.v2.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V2" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.api.v2.Cluster", + "name": "mylocal", + "connectTimeout": "15s", + "loadAssignment": { + "clusterName": "mylocal", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.api.v2.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/custom-timeouts.envoy-1-17-x.golden b/agent/xds/testdata/clusters/custom-timeouts.envoy-1-17-x.golden new file mode 100644 index 000000000..434d8a99b --- /dev/null +++ b/agent/xds/testdata/clusters/custom-timeouts.envoy-1-17-x.golden @@ -0,0 +1,132 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "1.234s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/custom-timeouts.envoy-1-16-x.golden b/agent/xds/testdata/clusters/custom-timeouts.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/custom-timeouts.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/custom-timeouts.v2compat.envoy-1-17-x.golden index 36c36e6d9..f309b979b 100644 --- a/agent/xds/testdata/clusters/custom-timeouts.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/custom-timeouts.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -61,7 +62,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/custom-upstream-default-chain.envoy-1-17-x.golden b/agent/xds/testdata/clusters/custom-upstream-default-chain.envoy-1-17-x.golden new file mode 100644 index 000000000..0f4576d0a --- /dev/null +++ b/agent/xds/testdata/clusters/custom-upstream-default-chain.envoy-1-17-x.golden @@ -0,0 +1,130 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "myservice", + "connectTimeout": "15s", + "loadAssignment": { + "clusterName": "myservice", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/custom-upstream-default-chain.envoy-1-16-x.golden b/agent/xds/testdata/clusters/custom-upstream-default-chain.v2compat.envoy-1-17-x.golden similarity index 93% rename from agent/xds/testdata/clusters/custom-upstream-default-chain.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/custom-upstream-default-chain.v2compat.envoy-1-17-x.golden index 055a9a4e4..612af4ec7 100644 --- a/agent/xds/testdata/clusters/custom-upstream-default-chain.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/custom-upstream-default-chain.v2compat.envoy-1-17-x.golden @@ -9,7 +9,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -76,14 +77,25 @@ "@type": "type.googleapis.com/envoy.api.v2.Cluster", "name": "myservice", "connectTimeout": "15s", - "hosts": [ - { - "socketAddress": { - "address": "127.0.0.1", - "portValue": 8080 + "loadAssignment": { + "clusterName": "myservice", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] } - } - ], + ] + }, "transportSocket": { "name": "tls", "typedConfig": { diff --git a/agent/xds/testdata/clusters/custom-upstream.envoy-1-17-x.golden b/agent/xds/testdata/clusters/custom-upstream.envoy-1-17-x.golden new file mode 100644 index 000000000..0f4576d0a --- /dev/null +++ b/agent/xds/testdata/clusters/custom-upstream.envoy-1-17-x.golden @@ -0,0 +1,130 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "myservice", + "connectTimeout": "15s", + "loadAssignment": { + "clusterName": "myservice", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/custom-upstream.envoy-1-16-x.golden b/agent/xds/testdata/clusters/custom-upstream.v2compat.envoy-1-17-x.golden similarity index 93% rename from agent/xds/testdata/clusters/custom-upstream.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/custom-upstream.v2compat.envoy-1-17-x.golden index 055a9a4e4..612af4ec7 100644 --- a/agent/xds/testdata/clusters/custom-upstream.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/custom-upstream.v2compat.envoy-1-17-x.golden @@ -9,7 +9,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -76,14 +77,25 @@ "@type": "type.googleapis.com/envoy.api.v2.Cluster", "name": "myservice", "connectTimeout": "15s", - "hosts": [ - { - "socketAddress": { - "address": "127.0.0.1", - "portValue": 8080 + "loadAssignment": { + "clusterName": "myservice", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] } - } - ], + ] + }, "transportSocket": { "name": "tls", "typedConfig": { diff --git a/agent/xds/testdata/clusters/defaults.envoy-1-17-x.golden b/agent/xds/testdata/clusters/defaults.envoy-1-17-x.golden new file mode 100644 index 000000000..d8601584f --- /dev/null +++ b/agent/xds/testdata/clusters/defaults.envoy-1-17-x.golden @@ -0,0 +1,132 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/defaults.envoy-1-16-x.golden b/agent/xds/testdata/clusters/defaults.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/defaults.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/defaults.v2compat.envoy-1-17-x.golden index 9aab006c9..4a0198080 100644 --- a/agent/xds/testdata/clusters/defaults.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/defaults.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -61,7 +62,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/expose-paths-grpc-new-cluster-http1.envoy-1-17-x.golden b/agent/xds/testdata/clusters/expose-paths-grpc-new-cluster-http1.envoy-1-17-x.golden new file mode 100644 index 000000000..11d8684b4 --- /dev/null +++ b/agent/xds/testdata/clusters/expose-paths-grpc-new-cluster-http1.envoy-1-17-x.golden @@ -0,0 +1,60 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "exposed_cluster_8090", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "exposed_cluster_8090", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8090 + } + } + } + } + ] + } + ] + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + }, + "http2ProtocolOptions": { + + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/expose-paths-grpc-new-cluster-http1.envoy-1-16-x.golden b/agent/xds/testdata/clusters/expose-paths-grpc-new-cluster-http1.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/clusters/expose-paths-grpc-new-cluster-http1.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/expose-paths-grpc-new-cluster-http1.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/clusters/expose-paths-local-app-paths.envoy-1-17-x.golden b/agent/xds/testdata/clusters/expose-paths-local-app-paths.envoy-1-17-x.golden new file mode 100644 index 000000000..0d8375ae0 --- /dev/null +++ b/agent/xds/testdata/clusters/expose-paths-local-app-paths.envoy-1-17-x.golden @@ -0,0 +1,32 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/expose-paths-local-app-paths.envoy-1-16-x.golden b/agent/xds/testdata/clusters/expose-paths-local-app-paths.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/clusters/expose-paths-local-app-paths.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/expose-paths-local-app-paths.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/clusters/expose-paths-new-cluster-http2.envoy-1-17-x.golden b/agent/xds/testdata/clusters/expose-paths-new-cluster-http2.envoy-1-17-x.golden new file mode 100644 index 000000000..624b8d8e6 --- /dev/null +++ b/agent/xds/testdata/clusters/expose-paths-new-cluster-http2.envoy-1-17-x.golden @@ -0,0 +1,60 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "exposed_cluster_9090", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "exposed_cluster_9090", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9090 + } + } + } + } + ] + } + ] + }, + "http2ProtocolOptions": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/expose-paths-new-cluster-http2.envoy-1-16-x.golden b/agent/xds/testdata/clusters/expose-paths-new-cluster-http2.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/clusters/expose-paths-new-cluster-http2.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/expose-paths-new-cluster-http2.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/clusters/ingress-gateway-no-services.envoy-1-17-x.golden b/agent/xds/testdata/clusters/ingress-gateway-no-services.envoy-1-17-x.golden new file mode 100644 index 000000000..24861388e --- /dev/null +++ b/agent/xds/testdata/clusters/ingress-gateway-no-services.envoy-1-17-x.golden @@ -0,0 +1,7 @@ +{ + "versionInfo": "00000001", + "resources": [ + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-gateway-no-services.envoy-1-16-x.golden b/agent/xds/testdata/clusters/ingress-gateway-no-services.v2compat.envoy-1-17-x.golden similarity index 82% rename from agent/xds/testdata/clusters/ingress-gateway-no-services.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/ingress-gateway-no-services.v2compat.envoy-1-17-x.golden index 1e4be3b4e..e699fae53 100644 --- a/agent/xds/testdata/clusters/ingress-gateway-no-services.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/ingress-gateway-no-services.v2compat.envoy-1-17-x.golden @@ -1,7 +1,5 @@ { "versionInfo": "00000001", - "resources": [ - ], "typeUrl": "type.googleapis.com/envoy.api.v2.Cluster", "nonce": "00000001" } \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-gateway.envoy-1-17-x.golden b/agent/xds/testdata/clusters/ingress-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..f4fe476c4 --- /dev/null +++ b/agent/xds/testdata/clusters/ingress-gateway.envoy-1-17-x.golden @@ -0,0 +1,60 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-gateway.envoy-1-16-x.golden b/agent/xds/testdata/clusters/ingress-gateway.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/ingress-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/ingress-gateway.v2compat.envoy-1-17-x.golden index e58b908d9..a79f1b00e 100644 --- a/agent/xds/testdata/clusters/ingress-gateway.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/ingress-gateway.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/custom-local-app.envoy-1-16-x.golden b/agent/xds/testdata/clusters/ingress-lb-in-resolver.envoy-1-17-x.golden similarity index 85% rename from agent/xds/testdata/clusters/custom-local-app.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/ingress-lb-in-resolver.envoy-1-17-x.golden index eba0c581b..17705fd3d 100644 --- a/agent/xds/testdata/clusters/custom-local-app.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/ingress-lb-in-resolver.envoy-1-17-x.golden @@ -2,7 +2,7 @@ "versionInfo": "00000001", "resources": [ { - "@type": "type.googleapis.com/envoy.api.v2.Cluster", + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", "type": "EDS", @@ -10,15 +10,21 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V3" } }, "connectTimeout": "5s", + "lbPolicy": "RING_HASH", "circuitBreakers": { }, "outlierDetection": { + }, + "ringHashLbConfig": { + "minimumRingSize": "20", + "maximumRingSize": "30" }, "commonLbConfig": { "healthyPanicThreshold": { @@ -28,7 +34,7 @@ "transportSocket": { "name": "tls", "typedConfig": { - "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", "commonTlsContext": { "tlsParams": { @@ -54,14 +60,16 @@ } }, { - "@type": "type.googleapis.com/envoy.api.v2.Cluster", - "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "something-else.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "something-else.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", "type": "EDS", "edsClusterConfig": { "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V3" } }, "connectTimeout": "5s", @@ -70,11 +78,16 @@ }, "outlierDetection": { + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } }, "transportSocket": { "name": "tls", "typedConfig": { - "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", "commonTlsContext": { "tlsParams": { @@ -95,24 +108,11 @@ } } }, - "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + "sni": "something-else.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" } } - }, - { - "@type": "type.googleapis.com/envoy.api.v2.Cluster", - "name": "mylocal", - "connectTimeout": "15s", - "hosts": [ - { - "socketAddress": { - "address": "127.0.0.1", - "portValue": 8080 - } - } - ] } ], - "typeUrl": "type.googleapis.com/envoy.api.v2.Cluster", + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", "nonce": "00000001" } \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-lb-in-resolver.envoy-1-16-x.golden b/agent/xds/testdata/clusters/ingress-lb-in-resolver.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/ingress-lb-in-resolver.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/ingress-lb-in-resolver.v2compat.envoy-1-17-x.golden index b43a300b3..add104931 100644 --- a/agent/xds/testdata/clusters/ingress-lb-in-resolver.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/ingress-lb-in-resolver.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -67,7 +68,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/ingress-multiple-listeners-duplicate-service.envoy-1-17-x.golden b/agent/xds/testdata/clusters/ingress-multiple-listeners-duplicate-service.envoy-1-17-x.golden new file mode 100644 index 000000000..b06d7dc5e --- /dev/null +++ b/agent/xds/testdata/clusters/ingress-multiple-listeners-duplicate-service.envoy-1-17-x.golden @@ -0,0 +1,113 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-multiple-listeners-duplicate-service.envoy-1-16-x.golden b/agent/xds/testdata/clusters/ingress-multiple-listeners-duplicate-service.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/ingress-multiple-listeners-duplicate-service.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/ingress-multiple-listeners-duplicate-service.v2compat.envoy-1-17-x.golden index ff54c5714..93b9a1449 100644 --- a/agent/xds/testdata/clusters/ingress-multiple-listeners-duplicate-service.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/ingress-multiple-listeners-duplicate-service.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -62,7 +63,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/ingress-splitter-with-resolver-redirect.envoy-1-17-x.golden b/agent/xds/testdata/clusters/ingress-splitter-with-resolver-redirect.envoy-1-17-x.golden new file mode 100644 index 000000000..796180ca3 --- /dev/null +++ b/agent/xds/testdata/clusters/ingress-splitter-with-resolver-redirect.envoy-1-17-x.golden @@ -0,0 +1,113 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v1.db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "v1.db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "v1.db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v2.db.default.dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "v2.db.default.dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "v2.db.default.dc2.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-splitter-with-resolver-redirect.envoy-1-16-x.golden b/agent/xds/testdata/clusters/ingress-splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/ingress-splitter-with-resolver-redirect.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/ingress-splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden index 64d5ba684..bcb982816 100644 --- a/agent/xds/testdata/clusters/ingress-splitter-with-resolver-redirect.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/ingress-splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -62,7 +63,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/ingress-with-chain-and-failover.envoy-1-17-x.golden b/agent/xds/testdata/clusters/ingress-with-chain-and-failover.envoy-1-17-x.golden new file mode 100644 index 000000000..b0890da16 --- /dev/null +++ b/agent/xds/testdata/clusters/ingress-with-chain-and-failover.envoy-1-17-x.golden @@ -0,0 +1,60 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway.envoy-1-16-x.golden b/agent/xds/testdata/clusters/ingress-with-chain-and-failover.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/ingress-with-chain-and-failover.v2compat.envoy-1-17-x.golden index 68c6dac37..36ee38dc3 100644 --- a/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/ingress-with-chain-and-failover.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "33s", diff --git a/agent/xds/testdata/clusters/ingress-with-chain-and-overrides.envoy-1-17-x.golden b/agent/xds/testdata/clusters/ingress-with-chain-and-overrides.envoy-1-17-x.golden new file mode 100644 index 000000000..acd7e91fa --- /dev/null +++ b/agent/xds/testdata/clusters/ingress-with-chain-and-overrides.envoy-1-17-x.golden @@ -0,0 +1,63 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "a236e964~db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "a236e964~db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "66s", + "circuitBreakers": { + + }, + "http2ProtocolOptions": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-with-chain-and-overrides.envoy-1-16-x.golden b/agent/xds/testdata/clusters/ingress-with-chain-and-overrides.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/ingress-with-chain-and-overrides.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/ingress-with-chain-and-overrides.v2compat.envoy-1-17-x.golden index 316430c04..c63343c66 100644 --- a/agent/xds/testdata/clusters/ingress-with-chain-and-overrides.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/ingress-with-chain-and-overrides.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "66s", diff --git a/agent/xds/testdata/clusters/ingress-with-chain-external-sni.envoy-1-17-x.golden b/agent/xds/testdata/clusters/ingress-with-chain-external-sni.envoy-1-17-x.golden new file mode 100644 index 000000000..8a6e8a4fb --- /dev/null +++ b/agent/xds/testdata/clusters/ingress-with-chain-external-sni.envoy-1-17-x.golden @@ -0,0 +1,60 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.some.other.service.mesh" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-with-chain-external-sni.envoy-1-16-x.golden b/agent/xds/testdata/clusters/ingress-with-chain-external-sni.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/ingress-with-chain-external-sni.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/ingress-with-chain-external-sni.v2compat.envoy-1-17-x.golden index 371271984..43dff9b6c 100644 --- a/agent/xds/testdata/clusters/ingress-with-chain-external-sni.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/ingress-with-chain-external-sni.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "33s", diff --git a/agent/xds/testdata/clusters/ingress-with-chain.envoy-1-17-x.golden b/agent/xds/testdata/clusters/ingress-with-chain.envoy-1-17-x.golden new file mode 100644 index 000000000..b0890da16 --- /dev/null +++ b/agent/xds/testdata/clusters/ingress-with-chain.envoy-1-17-x.golden @@ -0,0 +1,60 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-with-chain.envoy-1-16-x.golden b/agent/xds/testdata/clusters/ingress-with-chain.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/ingress-with-chain.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/ingress-with-chain.v2compat.envoy-1-17-x.golden index 68c6dac37..36ee38dc3 100644 --- a/agent/xds/testdata/clusters/ingress-with-chain.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/ingress-with-chain.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "33s", diff --git a/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-17-x.golden b/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-17-x.golden new file mode 100644 index 000000000..9b42f548e --- /dev/null +++ b/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-17-x.golden @@ -0,0 +1,60 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc3.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-16-x.golden b/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden index 437c665d1..261596e3c 100644 --- a/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "33s", diff --git a/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway.envoy-1-17-x.golden b/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..b0890da16 --- /dev/null +++ b/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway.envoy-1-17-x.golden @@ -0,0 +1,60 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-with-chain-and-failover.envoy-1-16-x.golden b/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/ingress-with-chain-and-failover.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway.v2compat.envoy-1-17-x.golden index 68c6dac37..36ee38dc3 100644 --- a/agent/xds/testdata/clusters/ingress-with-chain-and-failover.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "33s", diff --git a/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-17-x.golden b/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-17-x.golden new file mode 100644 index 000000000..9b42f548e --- /dev/null +++ b/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-17-x.golden @@ -0,0 +1,60 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc3.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-16-x.golden b/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden index 437c665d1..261596e3c 100644 --- a/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "33s", diff --git a/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-17-x.golden b/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..b0890da16 --- /dev/null +++ b/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-17-x.golden @@ -0,0 +1,60 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-16-x.golden b/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden index 68c6dac37..36ee38dc3 100644 --- a/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/ingress-with-tcp-chain-double-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "33s", diff --git a/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-17-x.golden b/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-17-x.golden new file mode 100644 index 000000000..7e184dead --- /dev/null +++ b/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-17-x.golden @@ -0,0 +1,60 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc2.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-16-x.golden b/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden index 05c200c1c..cfd457c97 100644 --- a/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "33s", diff --git a/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden b/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden deleted file mode 100644 index 68c6dac37..000000000 --- a/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden +++ /dev/null @@ -1,59 +0,0 @@ -{ - "versionInfo": "00000001", - "resources": [ - { - "@type": "type.googleapis.com/envoy.api.v2.Cluster", - "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", - "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", - "type": "EDS", - "edsClusterConfig": { - "edsConfig": { - "ads": { - - } - } - }, - "connectTimeout": "33s", - "circuitBreakers": { - - }, - "outlierDetection": { - - }, - "commonLbConfig": { - "healthyPanicThreshold": { - - } - }, - "transportSocket": { - "name": "tls", - "typedConfig": { - "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", - "commonTlsContext": { - "tlsParams": { - - }, - "tlsCertificates": [ - { - "certificateChain": { - "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" - }, - "privateKey": { - "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" - } - } - ], - "validationContext": { - "trustedCa": { - "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" - } - } - }, - "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" - } - } - } - ], - "typeUrl": "type.googleapis.com/envoy.api.v2.Cluster", - "nonce": "00000001" -} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden b/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..b0890da16 --- /dev/null +++ b/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden @@ -0,0 +1,60 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden b/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden new file mode 100644 index 000000000..36ee38dc3 --- /dev/null +++ b/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden @@ -0,0 +1,60 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.api.v2.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V2" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.api.v2.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-17-x.golden b/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-17-x.golden new file mode 100644 index 000000000..7e184dead --- /dev/null +++ b/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-17-x.golden @@ -0,0 +1,60 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc2.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-16-x.golden b/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden index 05c200c1c..cfd457c97 100644 --- a/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden @@ -10,7 +10,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "33s", diff --git a/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden b/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden deleted file mode 100644 index 68c6dac37..000000000 --- a/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden +++ /dev/null @@ -1,59 +0,0 @@ -{ - "versionInfo": "00000001", - "resources": [ - { - "@type": "type.googleapis.com/envoy.api.v2.Cluster", - "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", - "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", - "type": "EDS", - "edsClusterConfig": { - "edsConfig": { - "ads": { - - } - } - }, - "connectTimeout": "33s", - "circuitBreakers": { - - }, - "outlierDetection": { - - }, - "commonLbConfig": { - "healthyPanicThreshold": { - - } - }, - "transportSocket": { - "name": "tls", - "typedConfig": { - "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", - "commonTlsContext": { - "tlsParams": { - - }, - "tlsCertificates": [ - { - "certificateChain": { - "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" - }, - "privateKey": { - "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" - } - } - ], - "validationContext": { - "trustedCa": { - "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" - } - } - }, - "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" - } - } - } - ], - "typeUrl": "type.googleapis.com/envoy.api.v2.Cluster", - "nonce": "00000001" -} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden b/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..b0890da16 --- /dev/null +++ b/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden @@ -0,0 +1,60 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden b/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden new file mode 100644 index 000000000..36ee38dc3 --- /dev/null +++ b/agent/xds/testdata/clusters/ingress-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden @@ -0,0 +1,60 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.api.v2.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V2" + } + }, + "connectTimeout": "33s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.api.v2.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/mesh-gateway-hash-lb-ignored.envoy-1-17-x.golden b/agent/xds/testdata/clusters/mesh-gateway-hash-lb-ignored.envoy-1-17-x.golden new file mode 100644 index 000000000..0d001e0b7 --- /dev/null +++ b/agent/xds/testdata/clusters/mesh-gateway-hash-lb-ignored.envoy-1-17-x.golden @@ -0,0 +1,156 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc4.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "dc4.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "123.us-west-2.elb.notaws.com", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc6.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "dc6.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "123.us-east-1.elb.notaws.com", + "portValue": 443 + } + } + }, + "healthStatus": "UNHEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v1.bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v2.bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/mesh-gateway-service-subsets.envoy-1-16-x.golden b/agent/xds/testdata/clusters/mesh-gateway-hash-lb-ignored.v2compat.envoy-1-17-x.golden similarity index 93% rename from agent/xds/testdata/clusters/mesh-gateway-service-subsets.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/mesh-gateway-hash-lb-ignored.v2compat.envoy-1-17-x.golden index afc23f9ae..928bd4147 100644 --- a/agent/xds/testdata/clusters/mesh-gateway-service-subsets.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/mesh-gateway-hash-lb-ignored.v2compat.envoy-1-17-x.golden @@ -9,7 +9,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -25,7 +26,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -105,7 +107,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -121,7 +124,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -137,7 +141,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/mesh-gateway-ignore-extra-resolvers.envoy-1-17-x.golden b/agent/xds/testdata/clusters/mesh-gateway-ignore-extra-resolvers.envoy-1-17-x.golden new file mode 100644 index 000000000..0d001e0b7 --- /dev/null +++ b/agent/xds/testdata/clusters/mesh-gateway-ignore-extra-resolvers.envoy-1-17-x.golden @@ -0,0 +1,156 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc4.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "dc4.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "123.us-west-2.elb.notaws.com", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc6.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "dc6.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "123.us-east-1.elb.notaws.com", + "portValue": 443 + } + } + }, + "healthStatus": "UNHEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v1.bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v2.bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/mesh-gateway-hash-lb-ignored.envoy-1-16-x.golden b/agent/xds/testdata/clusters/mesh-gateway-ignore-extra-resolvers.v2compat.envoy-1-17-x.golden similarity index 93% rename from agent/xds/testdata/clusters/mesh-gateway-hash-lb-ignored.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/mesh-gateway-ignore-extra-resolvers.v2compat.envoy-1-17-x.golden index afc23f9ae..928bd4147 100644 --- a/agent/xds/testdata/clusters/mesh-gateway-hash-lb-ignored.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/mesh-gateway-ignore-extra-resolvers.v2compat.envoy-1-17-x.golden @@ -9,7 +9,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -25,7 +26,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -105,7 +107,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -121,7 +124,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -137,7 +141,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/mesh-gateway-no-services.envoy-1-17-x.golden b/agent/xds/testdata/clusters/mesh-gateway-no-services.envoy-1-17-x.golden new file mode 100644 index 000000000..24861388e --- /dev/null +++ b/agent/xds/testdata/clusters/mesh-gateway-no-services.envoy-1-17-x.golden @@ -0,0 +1,7 @@ +{ + "versionInfo": "00000001", + "resources": [ + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/mesh-gateway-no-services.envoy-1-16-x.golden b/agent/xds/testdata/clusters/mesh-gateway-no-services.v2compat.envoy-1-17-x.golden similarity index 82% rename from agent/xds/testdata/clusters/mesh-gateway-no-services.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/mesh-gateway-no-services.v2compat.envoy-1-17-x.golden index 1e4be3b4e..e699fae53 100644 --- a/agent/xds/testdata/clusters/mesh-gateway-no-services.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/mesh-gateway-no-services.v2compat.envoy-1-17-x.golden @@ -1,7 +1,5 @@ { "versionInfo": "00000001", - "resources": [ - ], "typeUrl": "type.googleapis.com/envoy.api.v2.Cluster", "nonce": "00000001" } \ No newline at end of file diff --git a/agent/xds/testdata/clusters/mesh-gateway-non-hash-lb-injected.envoy-1-17-x.golden b/agent/xds/testdata/clusters/mesh-gateway-non-hash-lb-injected.envoy-1-17-x.golden new file mode 100644 index 000000000..1d6b63996 --- /dev/null +++ b/agent/xds/testdata/clusters/mesh-gateway-non-hash-lb-injected.envoy-1-17-x.golden @@ -0,0 +1,168 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "lbPolicy": "LEAST_REQUEST", + "outlierDetection": { + + }, + "leastRequestLbConfig": { + "choiceCount": 5 + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc4.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "dc4.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "123.us-west-2.elb.notaws.com", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc6.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "dc6.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "123.us-east-1.elb.notaws.com", + "portValue": 443 + } + } + }, + "healthStatus": "UNHEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v1.bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "lbPolicy": "LEAST_REQUEST", + "outlierDetection": { + + }, + "leastRequestLbConfig": { + "choiceCount": 5 + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v2.bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "lbPolicy": "LEAST_REQUEST", + "outlierDetection": { + + }, + "leastRequestLbConfig": { + "choiceCount": 5 + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/mesh-gateway-non-hash-lb-injected.envoy-1-16-x.golden b/agent/xds/testdata/clusters/mesh-gateway-non-hash-lb-injected.v2compat.envoy-1-17-x.golden similarity index 93% rename from agent/xds/testdata/clusters/mesh-gateway-non-hash-lb-injected.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/mesh-gateway-non-hash-lb-injected.v2compat.envoy-1-17-x.golden index 519c2d07f..14d72d4f5 100644 --- a/agent/xds/testdata/clusters/mesh-gateway-non-hash-lb-injected.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/mesh-gateway-non-hash-lb-injected.v2compat.envoy-1-17-x.golden @@ -9,7 +9,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -29,7 +30,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -109,7 +111,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -125,7 +128,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -145,7 +149,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/mesh-gateway-service-subsets.envoy-1-17-x.golden b/agent/xds/testdata/clusters/mesh-gateway-service-subsets.envoy-1-17-x.golden new file mode 100644 index 000000000..0d001e0b7 --- /dev/null +++ b/agent/xds/testdata/clusters/mesh-gateway-service-subsets.envoy-1-17-x.golden @@ -0,0 +1,156 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc4.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "dc4.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "123.us-west-2.elb.notaws.com", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc6.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "dc6.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "123.us-east-1.elb.notaws.com", + "portValue": 443 + } + } + }, + "healthStatus": "UNHEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v1.bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v2.bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/mesh-gateway-ignore-extra-resolvers.envoy-1-16-x.golden b/agent/xds/testdata/clusters/mesh-gateway-service-subsets.v2compat.envoy-1-17-x.golden similarity index 93% rename from agent/xds/testdata/clusters/mesh-gateway-ignore-extra-resolvers.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/mesh-gateway-service-subsets.v2compat.envoy-1-17-x.golden index afc23f9ae..928bd4147 100644 --- a/agent/xds/testdata/clusters/mesh-gateway-ignore-extra-resolvers.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/mesh-gateway-service-subsets.v2compat.envoy-1-17-x.golden @@ -9,7 +9,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -25,7 +26,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -105,7 +107,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -121,7 +124,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -137,7 +141,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/mesh-gateway-service-timeouts.envoy-1-17-x.golden b/agent/xds/testdata/clusters/mesh-gateway-service-timeouts.envoy-1-17-x.golden new file mode 100644 index 000000000..e6ff978ac --- /dev/null +++ b/agent/xds/testdata/clusters/mesh-gateway-service-timeouts.envoy-1-17-x.golden @@ -0,0 +1,156 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "10s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc4.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "dc4.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "123.us-west-2.elb.notaws.com", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc6.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "dc6.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "123.us-east-1.elb.notaws.com", + "portValue": 443 + } + } + }, + "healthStatus": "UNHEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v1.bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "10s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v2.bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "10s", + "outlierDetection": { + + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/mesh-gateway-service-timeouts.envoy-1-16-x.golden b/agent/xds/testdata/clusters/mesh-gateway-service-timeouts.v2compat.envoy-1-17-x.golden similarity index 93% rename from agent/xds/testdata/clusters/mesh-gateway-service-timeouts.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/mesh-gateway-service-timeouts.v2compat.envoy-1-17-x.golden index bf2d50142..931e32a64 100644 --- a/agent/xds/testdata/clusters/mesh-gateway-service-timeouts.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/mesh-gateway-service-timeouts.v2compat.envoy-1-17-x.golden @@ -9,7 +9,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "10s", @@ -25,7 +26,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -105,7 +107,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -121,7 +124,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "10s", @@ -137,7 +141,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "10s", diff --git a/agent/xds/testdata/clusters/mesh-gateway-using-federation-states.envoy-1-17-x.golden b/agent/xds/testdata/clusters/mesh-gateway-using-federation-states.envoy-1-17-x.golden new file mode 100644 index 000000000..bc9669bef --- /dev/null +++ b/agent/xds/testdata/clusters/mesh-gateway-using-federation-states.envoy-1-17-x.golden @@ -0,0 +1,122 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc4.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "dc4.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "123.us-west-2.elb.notaws.com", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc6.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "dc6.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "123.us-east-1.elb.notaws.com", + "portValue": 443 + } + } + }, + "healthStatus": "UNHEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/mesh-gateway.envoy-1-16-x.golden b/agent/xds/testdata/clusters/mesh-gateway-using-federation-states.v2compat.envoy-1-17-x.golden similarity index 95% rename from agent/xds/testdata/clusters/mesh-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/mesh-gateway-using-federation-states.v2compat.envoy-1-17-x.golden index 845881fd3..4885db22c 100644 --- a/agent/xds/testdata/clusters/mesh-gateway.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/mesh-gateway-using-federation-states.v2compat.envoy-1-17-x.golden @@ -9,7 +9,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -25,7 +26,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -105,7 +107,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/mesh-gateway.envoy-1-17-x.golden b/agent/xds/testdata/clusters/mesh-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..bc9669bef --- /dev/null +++ b/agent/xds/testdata/clusters/mesh-gateway.envoy-1-17-x.golden @@ -0,0 +1,122 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc4.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "dc4.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "123.us-west-2.elb.notaws.com", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "dc6.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "dc6.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "123.us-east-1.elb.notaws.com", + "portValue": 443 + } + } + }, + "healthStatus": "UNHEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/mesh-gateway-using-federation-states.envoy-1-16-x.golden b/agent/xds/testdata/clusters/mesh-gateway.v2compat.envoy-1-17-x.golden similarity index 95% rename from agent/xds/testdata/clusters/mesh-gateway-using-federation-states.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/mesh-gateway.v2compat.envoy-1-17-x.golden index 845881fd3..4885db22c 100644 --- a/agent/xds/testdata/clusters/mesh-gateway-using-federation-states.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/mesh-gateway.v2compat.envoy-1-17-x.golden @@ -9,7 +9,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -25,7 +26,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -105,7 +107,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/splitter-with-resolver-redirect.envoy-1-17-x.golden b/agent/xds/testdata/clusters/splitter-with-resolver-redirect.envoy-1-17-x.golden new file mode 100644 index 000000000..6c4b0e921 --- /dev/null +++ b/agent/xds/testdata/clusters/splitter-with-resolver-redirect.envoy-1-17-x.golden @@ -0,0 +1,185 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "local_app", + "type": "STATIC", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "local_app", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8080 + } + } + } + } + ] + } + ] + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v1.db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "v1.db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "v1.db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v2.db.default.dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "altStatName": "v2.db.default.dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "circuitBreakers": { + + }, + "outlierDetection": { + + }, + "commonLbConfig": { + "healthyPanicThreshold": { + + } + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "sni": "v2.db.default.dc2.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/splitter-with-resolver-redirect.envoy-1-16-x.golden b/agent/xds/testdata/clusters/splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/splitter-with-resolver-redirect.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden index 5bc2a8673..9ac5535e9 100644 --- a/agent/xds/testdata/clusters/splitter-with-resolver-redirect.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden @@ -9,7 +9,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -81,7 +82,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -133,7 +135,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/terminating-gateway-hostname-service-subsets.envoy-1-17-x.golden b/agent/xds/testdata/clusters/terminating-gateway-hostname-service-subsets.envoy-1-17-x.golden new file mode 100644 index 000000000..3bf0c6eb4 --- /dev/null +++ b/agent/xds/testdata/clusters/terminating-gateway-hostname-service-subsets.envoy-1-17-x.golden @@ -0,0 +1,252 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "alt.api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "alt.api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "api.altdomain", + "portValue": 8081 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "filename": "api.cert.pem" + }, + "privateKey": { + "filename": "api.key.pem" + } + } + ], + "validationContext": { + "trustedCa": { + "filename": "ca.cert.pem" + } + } + } + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "api.altdomain", + "portValue": 8081 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "filename": "api.cert.pem" + }, + "privateKey": { + "filename": "api.key.pem" + } + } + ], + "validationContext": { + "trustedCa": { + "filename": "ca.cert.pem" + } + } + } + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "cache.mydomain", + "portValue": 8081 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "db.mydomain", + "portValue": 8081 + } + } + }, + "healthStatus": "UNHEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "prod.cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "prod.cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "cache.mydomain", + "portValue": 8081 + } + } + }, + "healthStatus": "UNHEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "validationContext": { + "trustedCa": { + "filename": "ca.cert.pem" + } + } + } + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/terminating-gateway-hostname-service-subsets.envoy-1-16-x.golden b/agent/xds/testdata/clusters/terminating-gateway-hostname-service-subsets.v2compat.envoy-1-17-x.golden similarity index 99% rename from agent/xds/testdata/clusters/terminating-gateway-hostname-service-subsets.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/terminating-gateway-hostname-service-subsets.v2compat.envoy-1-17-x.golden index d35c80c7b..deecc716e 100644 --- a/agent/xds/testdata/clusters/terminating-gateway-hostname-service-subsets.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/terminating-gateway-hostname-service-subsets.v2compat.envoy-1-17-x.golden @@ -221,7 +221,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/terminating-gateway-ignore-extra-resolvers.envoy-1-17-x.golden b/agent/xds/testdata/clusters/terminating-gateway-ignore-extra-resolvers.envoy-1-17-x.golden new file mode 100644 index 000000000..d2efb57f5 --- /dev/null +++ b/agent/xds/testdata/clusters/terminating-gateway-ignore-extra-resolvers.envoy-1-17-x.golden @@ -0,0 +1,228 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "api.altdomain", + "portValue": 8081 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "filename": "api.cert.pem" + }, + "privateKey": { + "filename": "api.key.pem" + } + } + ], + "validationContext": { + "trustedCa": { + "filename": "ca.cert.pem" + } + } + } + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "cache.mydomain", + "portValue": 8081 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "db.mydomain", + "portValue": 8081 + } + } + }, + "healthStatus": "UNHEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v1.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "validationContext": { + "trustedCa": { + "filename": "ca.cert.pem" + } + } + } + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v2.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "validationContext": { + "trustedCa": { + "filename": "ca.cert.pem" + } + } + } + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "validationContext": { + "trustedCa": { + "filename": "ca.cert.pem" + } + } + } + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/terminating-gateway-ignore-extra-resolvers.envoy-1-16-x.golden b/agent/xds/testdata/clusters/terminating-gateway-ignore-extra-resolvers.v2compat.envoy-1-17-x.golden similarity index 97% rename from agent/xds/testdata/clusters/terminating-gateway-ignore-extra-resolvers.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/terminating-gateway-ignore-extra-resolvers.v2compat.envoy-1-17-x.golden index ce430e15c..340a97393 100644 --- a/agent/xds/testdata/clusters/terminating-gateway-ignore-extra-resolvers.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/terminating-gateway-ignore-extra-resolvers.v2compat.envoy-1-17-x.golden @@ -131,7 +131,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -163,7 +164,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -195,7 +197,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/terminating-gateway-lb-config.envoy-1-17-x.golden b/agent/xds/testdata/clusters/terminating-gateway-lb-config.envoy-1-17-x.golden new file mode 100644 index 000000000..a505f4f78 --- /dev/null +++ b/agent/xds/testdata/clusters/terminating-gateway-lb-config.envoy-1-17-x.golden @@ -0,0 +1,243 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "api.altdomain", + "portValue": 8081 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "filename": "api.cert.pem" + }, + "privateKey": { + "filename": "api.key.pem" + } + } + ], + "validationContext": { + "trustedCa": { + "filename": "ca.cert.pem" + } + } + } + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "cache.mydomain", + "portValue": 8081 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "db.mydomain", + "portValue": 8081 + } + } + }, + "healthStatus": "UNHEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v1.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "lbPolicy": "RING_HASH", + "outlierDetection": { + + }, + "ringHashLbConfig": { + "minimumRingSize": "20", + "maximumRingSize": "50" + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "validationContext": { + "trustedCa": { + "filename": "ca.cert.pem" + } + } + } + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v2.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "lbPolicy": "RING_HASH", + "outlierDetection": { + + }, + "ringHashLbConfig": { + "minimumRingSize": "20", + "maximumRingSize": "50" + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "validationContext": { + "trustedCa": { + "filename": "ca.cert.pem" + } + } + } + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "lbPolicy": "RING_HASH", + "outlierDetection": { + + }, + "ringHashLbConfig": { + "minimumRingSize": "20", + "maximumRingSize": "50" + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "validationContext": { + "trustedCa": { + "filename": "ca.cert.pem" + } + } + } + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/terminating-gateway-lb-config.envoy-1-16-x.golden b/agent/xds/testdata/clusters/terminating-gateway-lb-config.v2compat.envoy-1-17-x.golden similarity index 97% rename from agent/xds/testdata/clusters/terminating-gateway-lb-config.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/terminating-gateway-lb-config.v2compat.envoy-1-17-x.golden index e1de42acc..4c253d3a7 100644 --- a/agent/xds/testdata/clusters/terminating-gateway-lb-config.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/terminating-gateway-lb-config.v2compat.envoy-1-17-x.golden @@ -131,7 +131,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -168,7 +169,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -205,7 +207,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/terminating-gateway-no-services.envoy-1-17-x.golden b/agent/xds/testdata/clusters/terminating-gateway-no-services.envoy-1-17-x.golden new file mode 100644 index 000000000..24861388e --- /dev/null +++ b/agent/xds/testdata/clusters/terminating-gateway-no-services.envoy-1-17-x.golden @@ -0,0 +1,7 @@ +{ + "versionInfo": "00000001", + "resources": [ + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/terminating-gateway-no-services.envoy-1-16-x.golden b/agent/xds/testdata/clusters/terminating-gateway-no-services.v2compat.envoy-1-17-x.golden similarity index 82% rename from agent/xds/testdata/clusters/terminating-gateway-no-services.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/terminating-gateway-no-services.v2compat.envoy-1-17-x.golden index 1e4be3b4e..e699fae53 100644 --- a/agent/xds/testdata/clusters/terminating-gateway-no-services.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/terminating-gateway-no-services.v2compat.envoy-1-17-x.golden @@ -1,7 +1,5 @@ { "versionInfo": "00000001", - "resources": [ - ], "typeUrl": "type.googleapis.com/envoy.api.v2.Cluster", "nonce": "00000001" } \ No newline at end of file diff --git a/agent/xds/testdata/clusters/terminating-gateway-service-subsets.envoy-1-17-x.golden b/agent/xds/testdata/clusters/terminating-gateway-service-subsets.envoy-1-17-x.golden new file mode 100644 index 000000000..87cf1d771 --- /dev/null +++ b/agent/xds/testdata/clusters/terminating-gateway-service-subsets.envoy-1-17-x.golden @@ -0,0 +1,260 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "api.altdomain", + "portValue": 8081 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "filename": "api.cert.pem" + }, + "privateKey": { + "filename": "api.key.pem" + } + } + ], + "validationContext": { + "trustedCa": { + "filename": "ca.cert.pem" + } + } + } + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "cache.mydomain", + "portValue": 8081 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "db.mydomain", + "portValue": 8081 + } + } + }, + "healthStatus": "UNHEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "prod.cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "prod.cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "cache.mydomain", + "portValue": 8081 + } + } + }, + "healthStatus": "UNHEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v1.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "validationContext": { + "trustedCa": { + "filename": "ca.cert.pem" + } + } + } + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "v2.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "validationContext": { + "trustedCa": { + "filename": "ca.cert.pem" + } + } + } + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "validationContext": { + "trustedCa": { + "filename": "ca.cert.pem" + } + } + } + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/terminating-gateway-service-subsets.envoy-1-16-x.golden b/agent/xds/testdata/clusters/terminating-gateway-service-subsets.v2compat.envoy-1-17-x.golden similarity index 97% rename from agent/xds/testdata/clusters/terminating-gateway-service-subsets.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/terminating-gateway-service-subsets.v2compat.envoy-1-17-x.golden index fdd4f30f2..c46a64733 100644 --- a/agent/xds/testdata/clusters/terminating-gateway-service-subsets.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/terminating-gateway-service-subsets.v2compat.envoy-1-17-x.golden @@ -163,7 +163,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -195,7 +196,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", @@ -227,7 +229,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/clusters/terminating-gateway.envoy-1-17-x.golden b/agent/xds/testdata/clusters/terminating-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..343730b5c --- /dev/null +++ b/agent/xds/testdata/clusters/terminating-gateway.envoy-1-17-x.golden @@ -0,0 +1,162 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "api.altdomain", + "portValue": 8081 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "filename": "api.cert.pem" + }, + "privateKey": { + "filename": "api.key.pem" + } + } + ], + "validationContext": { + "trustedCa": { + "filename": "ca.cert.pem" + } + } + } + } + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "cache.mydomain", + "portValue": 8081 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "LOGICAL_DNS", + "connectTimeout": "5s", + "loadAssignment": { + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "db.mydomain", + "portValue": 8081 + } + } + }, + "healthStatus": "UNHEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + "dnsRefreshRate": "10s", + "dnsLookupFamily": "V4_ONLY", + "outlierDetection": { + + } + }, + { + "@type": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "name": "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "type": "EDS", + "edsClusterConfig": { + "edsConfig": { + "ads": { + + }, + "resourceApiVersion": "V3" + } + }, + "connectTimeout": "5s", + "outlierDetection": { + + }, + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "validationContext": { + "trustedCa": { + "filename": "ca.cert.pem" + } + } + } + } + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.cluster.v3.Cluster", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/clusters/terminating-gateway.envoy-1-16-x.golden b/agent/xds/testdata/clusters/terminating-gateway.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/clusters/terminating-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/clusters/terminating-gateway.v2compat.envoy-1-17-x.golden index 787a4d821..ee12602b4 100644 --- a/agent/xds/testdata/clusters/terminating-gateway.envoy-1-16-x.golden +++ b/agent/xds/testdata/clusters/terminating-gateway.v2compat.envoy-1-17-x.golden @@ -131,7 +131,8 @@ "edsConfig": { "ads": { - } + }, + "resourceApiVersion": "V2" } }, "connectTimeout": "5s", diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-chain-and-failover.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-chain-and-failover.envoy-1-17-x.golden new file mode 100644 index 000000000..e0685f1ae --- /dev/null +++ b/agent/xds/testdata/endpoints/connect-proxy-with-chain-and-failover.envoy-1-17-x.golden @@ -0,0 +1,73 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + }, + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.20.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.20.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ], + "priority": 1 + } + ], + "policy": { + "overprovisioningFactor": 100000 + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-chain-and-failover.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-chain-and-failover.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/connect-proxy-with-chain-and-failover.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/connect-proxy-with-chain-and-failover.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-chain-and-overrides.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-chain-and-overrides.envoy-1-17-x.golden new file mode 100644 index 000000000..aeb35f475 --- /dev/null +++ b/agent/xds/testdata/endpoints/connect-proxy-with-chain-and-overrides.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "a236e964~db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-chain-and-overrides.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-chain-and-overrides.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/connect-proxy-with-chain-and-overrides.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/connect-proxy-with-chain-and-overrides.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-chain-external-sni.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-chain-external-sni.envoy-1-17-x.golden new file mode 100644 index 000000000..ff3888642 --- /dev/null +++ b/agent/xds/testdata/endpoints/connect-proxy-with-chain-external-sni.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-chain-external-sni.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-chain-external-sni.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/connect-proxy-with-chain-external-sni.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/connect-proxy-with-chain-external-sni.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-chain.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-chain.envoy-1-17-x.golden new file mode 100644 index 000000000..ff3888642 --- /dev/null +++ b/agent/xds/testdata/endpoints/connect-proxy-with-chain.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-chain.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-chain.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/connect-proxy-with-chain.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/connect-proxy-with-chain.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-default-chain-and-custom-cluster.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-default-chain-and-custom-cluster.envoy-1-17-x.golden new file mode 100644 index 000000000..ea3c3ee11 --- /dev/null +++ b/agent/xds/testdata/endpoints/connect-proxy-with-default-chain-and-custom-cluster.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "myservice", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-default-chain-and-custom-cluster.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-default-chain-and-custom-cluster.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/connect-proxy-with-default-chain-and-custom-cluster.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/connect-proxy-with-default-chain-and-custom-cluster.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-17-x.golden new file mode 100644 index 000000000..61392962e --- /dev/null +++ b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-local-gateway.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-local-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..ff3888642 --- /dev/null +++ b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-local-gateway.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-local-gateway.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-local-gateway.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-local-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-local-gateway.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-17-x.golden new file mode 100644 index 000000000..961d515a1 --- /dev/null +++ b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "198.38.1.1", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "198.38.1.2", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..ff3888642 --- /dev/null +++ b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-double-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-17-x.golden new file mode 100644 index 000000000..61392962e --- /dev/null +++ b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..ff3888642 --- /dev/null +++ b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-17-x.golden new file mode 100644 index 000000000..d808b212f --- /dev/null +++ b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "198.18.1.1", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "198.18.1.2", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..ff3888642 --- /dev/null +++ b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/connect-proxy-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/defaults.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/defaults.envoy-1-17-x.golden new file mode 100644 index 000000000..879ed8076 --- /dev/null +++ b/agent/xds/testdata/endpoints/defaults.envoy-1-17-x.golden @@ -0,0 +1,75 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/defaults.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/defaults.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/defaults.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/defaults.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/ingress-gateway-no-services.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/ingress-gateway-no-services.envoy-1-17-x.golden new file mode 100644 index 000000000..4e316f149 --- /dev/null +++ b/agent/xds/testdata/endpoints/ingress-gateway-no-services.envoy-1-17-x.golden @@ -0,0 +1,7 @@ +{ + "versionInfo": "00000001", + "resources": [ + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/mesh-gateway-no-services.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/ingress-gateway-no-services.v2compat.envoy-1-17-x.golden similarity index 84% rename from agent/xds/testdata/endpoints/mesh-gateway-no-services.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/ingress-gateway-no-services.v2compat.envoy-1-17-x.golden index b11569ce9..e1ae9410b 100644 --- a/agent/xds/testdata/endpoints/mesh-gateway-no-services.envoy-1-16-x.golden +++ b/agent/xds/testdata/endpoints/ingress-gateway-no-services.v2compat.envoy-1-17-x.golden @@ -1,7 +1,5 @@ { "versionInfo": "00000001", - "resources": [ - ], "typeUrl": "type.googleapis.com/envoy.api.v2.ClusterLoadAssignment", "nonce": "00000001" } \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/ingress-gateway.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/ingress-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..ff3888642 --- /dev/null +++ b/agent/xds/testdata/endpoints/ingress-gateway.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/ingress-gateway.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/ingress-gateway.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/ingress-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/ingress-gateway.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/ingress-multiple-listeners-duplicate-service.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/ingress-multiple-listeners-duplicate-service.envoy-1-17-x.golden new file mode 100644 index 000000000..260ef92c2 --- /dev/null +++ b/agent/xds/testdata/endpoints/ingress-multiple-listeners-duplicate-service.envoy-1-17-x.golden @@ -0,0 +1,75 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.20.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.20.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/ingress-multiple-listeners-duplicate-service.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/ingress-multiple-listeners-duplicate-service.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/ingress-multiple-listeners-duplicate-service.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/ingress-multiple-listeners-duplicate-service.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/ingress-splitter-with-resolver-redirect.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/ingress-splitter-with-resolver-redirect.envoy-1-17-x.golden new file mode 100644 index 000000000..9cdc78d73 --- /dev/null +++ b/agent/xds/testdata/endpoints/ingress-splitter-with-resolver-redirect.envoy-1-17-x.golden @@ -0,0 +1,75 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "v1.db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "v2.db.default.dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.20.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.20.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/ingress-splitter-with-resolver-redirect.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/ingress-splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/ingress-splitter-with-resolver-redirect.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/ingress-splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/ingress-with-chain-and-failover.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/ingress-with-chain-and-failover.envoy-1-17-x.golden new file mode 100644 index 000000000..e0685f1ae --- /dev/null +++ b/agent/xds/testdata/endpoints/ingress-with-chain-and-failover.envoy-1-17-x.golden @@ -0,0 +1,73 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + }, + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.20.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.20.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ], + "priority": 1 + } + ], + "policy": { + "overprovisioningFactor": 100000 + } + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/ingress-with-chain-and-failover.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/ingress-with-chain-and-failover.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/ingress-with-chain-and-failover.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/ingress-with-chain-and-failover.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/ingress-with-chain-and-overrides.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/ingress-with-chain-and-overrides.envoy-1-17-x.golden new file mode 100644 index 000000000..aeb35f475 --- /dev/null +++ b/agent/xds/testdata/endpoints/ingress-with-chain-and-overrides.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "a236e964~db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/ingress-with-chain-and-overrides.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/ingress-with-chain-and-overrides.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/ingress-with-chain-and-overrides.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/ingress-with-chain-and-overrides.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/ingress-with-chain-external-sni.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/ingress-with-chain-external-sni.envoy-1-17-x.golden new file mode 100644 index 000000000..ff3888642 --- /dev/null +++ b/agent/xds/testdata/endpoints/ingress-with-chain-external-sni.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/ingress-with-chain-external-sni.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/ingress-with-chain-external-sni.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/ingress-with-chain-external-sni.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/ingress-with-chain-external-sni.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/ingress-with-chain.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/ingress-with-chain.envoy-1-17-x.golden new file mode 100644 index 000000000..ff3888642 --- /dev/null +++ b/agent/xds/testdata/endpoints/ingress-with-chain.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/ingress-with-chain.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/ingress-with-chain.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/ingress-with-chain.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/ingress-with-chain.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-17-x.golden new file mode 100644 index 000000000..61392962e --- /dev/null +++ b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-local-gateway.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-local-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..ff3888642 --- /dev/null +++ b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-local-gateway.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-local-gateway.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-local-gateway.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-local-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-local-gateway.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-17-x.golden new file mode 100644 index 000000000..961d515a1 --- /dev/null +++ b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "198.38.1.1", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "198.38.1.2", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..ff3888642 --- /dev/null +++ b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-remote-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/ingress-with-tcp-chain-double-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-17-x.golden new file mode 100644 index 000000000..61392962e --- /dev/null +++ b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-local-gateway-triggered.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-local-gateway-triggered.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..ff3888642 --- /dev/null +++ b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-17-x.golden new file mode 100644 index 000000000..d808b212f --- /dev/null +++ b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "198.18.1.1", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "198.18.1.2", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-remote-gateway-triggered.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-remote-gateway-triggered.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..ff3888642 --- /dev/null +++ b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/ingress-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/mesh-gateway-default-service-subset.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/mesh-gateway-default-service-subset.envoy-1-17-x.golden new file mode 100644 index 000000000..938d0b792 --- /dev/null +++ b/agent/xds/testdata/endpoints/mesh-gateway-default-service-subset.envoy-1-17-x.golden @@ -0,0 +1,221 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.8", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "198.18.1.1", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "198.18.1.2", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.5", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.9", + "portValue": 2222 + } + } + }, + "healthStatus": "UNHEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "v1.bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.6", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.7", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "v1.foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.3", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.4", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "v2.bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.8", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "v2.foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.5", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.9", + "portValue": 2222 + } + } + }, + "healthStatus": "UNHEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/mesh-gateway-default-service-subset.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/mesh-gateway-default-service-subset.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/mesh-gateway-default-service-subset.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/mesh-gateway-default-service-subset.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/mesh-gateway-no-services.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/mesh-gateway-no-services.envoy-1-17-x.golden new file mode 100644 index 000000000..4e316f149 --- /dev/null +++ b/agent/xds/testdata/endpoints/mesh-gateway-no-services.envoy-1-17-x.golden @@ -0,0 +1,7 @@ +{ + "versionInfo": "00000001", + "resources": [ + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/terminating-gateway-no-services.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/mesh-gateway-no-services.v2compat.envoy-1-17-x.golden similarity index 84% rename from agent/xds/testdata/endpoints/terminating-gateway-no-services.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/mesh-gateway-no-services.v2compat.envoy-1-17-x.golden index b11569ce9..e1ae9410b 100644 --- a/agent/xds/testdata/endpoints/terminating-gateway-no-services.envoy-1-16-x.golden +++ b/agent/xds/testdata/endpoints/mesh-gateway-no-services.v2compat.envoy-1-17-x.golden @@ -1,7 +1,5 @@ { "versionInfo": "00000001", - "resources": [ - ], "typeUrl": "type.googleapis.com/envoy.api.v2.ClusterLoadAssignment", "nonce": "00000001" } \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/mesh-gateway-service-subsets.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/mesh-gateway-service-subsets.envoy-1-17-x.golden new file mode 100644 index 000000000..a68fb5b7a --- /dev/null +++ b/agent/xds/testdata/endpoints/mesh-gateway-service-subsets.envoy-1-17-x.golden @@ -0,0 +1,269 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.6", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.7", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.8", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "198.18.1.1", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "198.18.1.2", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.3", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.4", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.5", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.9", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "v1.bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.6", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.7", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "v1.foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.3", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.4", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "v2.bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.8", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "v2.foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.5", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.9", + "portValue": 2222 + } + } + }, + "healthStatus": "UNHEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/mesh-gateway-service-subsets.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/mesh-gateway-service-subsets.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/mesh-gateway-service-subsets.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/mesh-gateway-service-subsets.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/mesh-gateway-using-federation-states.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/mesh-gateway-using-federation-states.envoy-1-17-x.golden new file mode 100644 index 000000000..81f2a3eec --- /dev/null +++ b/agent/xds/testdata/endpoints/mesh-gateway-using-federation-states.envoy-1-17-x.golden @@ -0,0 +1,145 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.6", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.7", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.8", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "198.18.1.1", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "198.18.1.2", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.3", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.4", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.5", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.9", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/mesh-gateway-using-federation-states.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/mesh-gateway-using-federation-states.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/mesh-gateway-using-federation-states.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/mesh-gateway-using-federation-states.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/mesh-gateway.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/mesh-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..81f2a3eec --- /dev/null +++ b/agent/xds/testdata/endpoints/mesh-gateway.envoy-1-17-x.golden @@ -0,0 +1,145 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.6", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.7", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.8", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "198.18.1.1", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "198.18.1.2", + "portValue": 443 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.3", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.4", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.5", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "172.16.1.9", + "portValue": 2222 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/mesh-gateway.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/mesh-gateway.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/mesh-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/mesh-gateway.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/splitter-with-resolver-redirect.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/splitter-with-resolver-redirect.envoy-1-17-x.golden new file mode 100644 index 000000000..9cdc78d73 --- /dev/null +++ b/agent/xds/testdata/endpoints/splitter-with-resolver-redirect.envoy-1-17-x.golden @@ -0,0 +1,75 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "v1.db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "v2.db.default.dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.20.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.20.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/splitter-with-resolver-redirect.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/splitter-with-resolver-redirect.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/terminating-gateway-default-service-subset.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/terminating-gateway-default-service-subset.envoy-1-17-x.golden new file mode 100644 index 000000000..30607da56 --- /dev/null +++ b/agent/xds/testdata/endpoints/terminating-gateway-default-service-subset.envoy-1-17-x.golden @@ -0,0 +1,73 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "v1.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "v2.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/terminating-gateway-default-service-subset.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/terminating-gateway-default-service-subset.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/terminating-gateway-default-service-subset.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/terminating-gateway-default-service-subset.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/terminating-gateway-no-services.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/terminating-gateway-no-services.envoy-1-17-x.golden new file mode 100644 index 000000000..4e316f149 --- /dev/null +++ b/agent/xds/testdata/endpoints/terminating-gateway-no-services.envoy-1-17-x.golden @@ -0,0 +1,7 @@ +{ + "versionInfo": "00000001", + "resources": [ + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/ingress-gateway-no-services.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/terminating-gateway-no-services.v2compat.envoy-1-17-x.golden similarity index 84% rename from agent/xds/testdata/endpoints/ingress-gateway-no-services.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/terminating-gateway-no-services.v2compat.envoy-1-17-x.golden index b11569ce9..e1ae9410b 100644 --- a/agent/xds/testdata/endpoints/ingress-gateway-no-services.envoy-1-16-x.golden +++ b/agent/xds/testdata/endpoints/terminating-gateway-no-services.v2compat.envoy-1-17-x.golden @@ -1,7 +1,5 @@ { "versionInfo": "00000001", - "resources": [ - ], "typeUrl": "type.googleapis.com/envoy.api.v2.ClusterLoadAssignment", "nonce": "00000001" } \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/terminating-gateway-service-subsets.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/terminating-gateway-service-subsets.envoy-1-17-x.golden new file mode 100644 index 000000000..13470d487 --- /dev/null +++ b/agent/xds/testdata/endpoints/terminating-gateway-service-subsets.envoy-1-17-x.golden @@ -0,0 +1,85 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "v1.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "v2.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/terminating-gateway-service-subsets.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/terminating-gateway-service-subsets.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/terminating-gateway-service-subsets.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/terminating-gateway-service-subsets.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/endpoints/terminating-gateway.envoy-1-17-x.golden b/agent/xds/testdata/endpoints/terminating-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..f33244f4e --- /dev/null +++ b/agent/xds/testdata/endpoints/terminating-gateway.envoy-1-17-x.golden @@ -0,0 +1,41 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "clusterName": "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "endpoints": [ + { + "lbEndpoints": [ + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.1", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + }, + { + "endpoint": { + "address": { + "socketAddress": { + "address": "10.10.1.2", + "portValue": 8080 + } + } + }, + "healthStatus": "HEALTHY", + "loadBalancingWeight": 1 + } + ] + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/endpoints/terminating-gateway.envoy-1-16-x.golden b/agent/xds/testdata/endpoints/terminating-gateway.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/endpoints/terminating-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/endpoints/terminating-gateway.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/connect-proxy-with-chain-and-overrides.envoy-1-17-x.golden b/agent/xds/testdata/listeners/connect-proxy-with-chain-and-overrides.envoy-1-17-x.golden new file mode 100644 index 000000000..dd2d7f528 --- /dev/null +++ b/agent/xds/testdata/listeners/connect-proxy-with-chain-and-overrides.envoy-1-17-x.golden @@ -0,0 +1,143 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "upstream.db.default.dc1", + "rds": { + "configSource": { + "ads": { + + }, + "resourceApiVersion": "V3" + }, + "routeConfigName": "db" + }, + "httpFilters": [ + { + "name": "envoy.filters.http.grpc_http1_bridge" + }, + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + }, + "http2ProtocolOptions": { + + } + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:0.0.0.0:9999", + "address": { + "socketAddress": { + "address": "0.0.0.0", + "portValue": 9999 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/connect-proxy-with-grpc-chain.envoy-1-16-x.golden b/agent/xds/testdata/listeners/connect-proxy-with-chain-and-overrides.v2compat.envoy-1-17-x.golden similarity index 97% rename from agent/xds/testdata/listeners/connect-proxy-with-grpc-chain.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/connect-proxy-with-chain-and-overrides.v2compat.envoy-1-17-x.golden index ae964dd5a..c4dde40f8 100644 --- a/agent/xds/testdata/listeners/connect-proxy-with-grpc-chain.envoy-1-16-x.golden +++ b/agent/xds/testdata/listeners/connect-proxy-with-chain-and-overrides.v2compat.envoy-1-17-x.golden @@ -22,13 +22,14 @@ "configSource": { "ads": { - } + }, + "resourceApiVersion": "V2" }, "routeConfigName": "db" }, "httpFilters": [ { - "name": "envoy.grpc_http1_bridge" + "name": "envoy.filters.http.grpc_http1_bridge" }, { "name": "envoy.filters.http.router" diff --git a/agent/xds/testdata/listeners/connect-proxy-with-chain-external-sni.envoy-1-17-x.golden b/agent/xds/testdata/listeners/connect-proxy-with-chain-external-sni.envoy-1-17-x.golden new file mode 100644 index 000000000..10de38687 --- /dev/null +++ b/agent/xds/testdata/listeners/connect-proxy-with-chain-external-sni.envoy-1-17-x.golden @@ -0,0 +1,119 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:0.0.0.0:9999", + "address": { + "socketAddress": { + "address": "0.0.0.0", + "portValue": 9999 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/connect-proxy-with-chain-external-sni.envoy-1-16-x.golden b/agent/xds/testdata/listeners/connect-proxy-with-chain-external-sni.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/connect-proxy-with-chain-external-sni.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/connect-proxy-with-chain-external-sni.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/connect-proxy-with-grpc-chain.envoy-1-17-x.golden b/agent/xds/testdata/listeners/connect-proxy-with-grpc-chain.envoy-1-17-x.golden new file mode 100644 index 000000000..dd2d7f528 --- /dev/null +++ b/agent/xds/testdata/listeners/connect-proxy-with-grpc-chain.envoy-1-17-x.golden @@ -0,0 +1,143 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "upstream.db.default.dc1", + "rds": { + "configSource": { + "ads": { + + }, + "resourceApiVersion": "V3" + }, + "routeConfigName": "db" + }, + "httpFilters": [ + { + "name": "envoy.filters.http.grpc_http1_bridge" + }, + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + }, + "http2ProtocolOptions": { + + } + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:0.0.0.0:9999", + "address": { + "socketAddress": { + "address": "0.0.0.0", + "portValue": 9999 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/connect-proxy-with-chain-and-overrides.envoy-1-16-x.golden b/agent/xds/testdata/listeners/connect-proxy-with-grpc-chain.v2compat.envoy-1-17-x.golden similarity index 97% rename from agent/xds/testdata/listeners/connect-proxy-with-chain-and-overrides.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/connect-proxy-with-grpc-chain.v2compat.envoy-1-17-x.golden index ae964dd5a..c4dde40f8 100644 --- a/agent/xds/testdata/listeners/connect-proxy-with-chain-and-overrides.envoy-1-16-x.golden +++ b/agent/xds/testdata/listeners/connect-proxy-with-grpc-chain.v2compat.envoy-1-17-x.golden @@ -22,13 +22,14 @@ "configSource": { "ads": { - } + }, + "resourceApiVersion": "V2" }, "routeConfigName": "db" }, "httpFilters": [ { - "name": "envoy.grpc_http1_bridge" + "name": "envoy.filters.http.grpc_http1_bridge" }, { "name": "envoy.filters.http.router" diff --git a/agent/xds/testdata/listeners/connect-proxy-with-http-chain.envoy-1-17-x.golden b/agent/xds/testdata/listeners/connect-proxy-with-http-chain.envoy-1-17-x.golden new file mode 100644 index 000000000..58f566234 --- /dev/null +++ b/agent/xds/testdata/listeners/connect-proxy-with-http-chain.envoy-1-17-x.golden @@ -0,0 +1,137 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "upstream.db.default.dc1", + "rds": { + "configSource": { + "ads": { + + }, + "resourceApiVersion": "V3" + }, + "routeConfigName": "db" + }, + "httpFilters": [ + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + } + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:0.0.0.0:9999", + "address": { + "socketAddress": { + "address": "0.0.0.0", + "portValue": 9999 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/connect-proxy-with-http-chain.envoy-1-16-x.golden b/agent/xds/testdata/listeners/connect-proxy-with-http-chain.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/listeners/connect-proxy-with-http-chain.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/connect-proxy-with-http-chain.v2compat.envoy-1-17-x.golden index 9a93c1162..4df11a586 100644 --- a/agent/xds/testdata/listeners/connect-proxy-with-http-chain.envoy-1-16-x.golden +++ b/agent/xds/testdata/listeners/connect-proxy-with-http-chain.v2compat.envoy-1-17-x.golden @@ -22,7 +22,8 @@ "configSource": { "ads": { - } + }, + "resourceApiVersion": "V2" }, "routeConfigName": "db" }, diff --git a/agent/xds/testdata/listeners/connect-proxy-with-http2-chain.envoy-1-17-x.golden b/agent/xds/testdata/listeners/connect-proxy-with-http2-chain.envoy-1-17-x.golden new file mode 100644 index 000000000..9445fb379 --- /dev/null +++ b/agent/xds/testdata/listeners/connect-proxy-with-http2-chain.envoy-1-17-x.golden @@ -0,0 +1,140 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "upstream.db.default.dc1", + "rds": { + "configSource": { + "ads": { + + }, + "resourceApiVersion": "V3" + }, + "routeConfigName": "db" + }, + "httpFilters": [ + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + }, + "http2ProtocolOptions": { + + } + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:0.0.0.0:9999", + "address": { + "socketAddress": { + "address": "0.0.0.0", + "portValue": 9999 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/connect-proxy-with-http2-chain.envoy-1-16-x.golden b/agent/xds/testdata/listeners/connect-proxy-with-http2-chain.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/listeners/connect-proxy-with-http2-chain.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/connect-proxy-with-http2-chain.v2compat.envoy-1-17-x.golden index 48c537a70..e83cb38e5 100644 --- a/agent/xds/testdata/listeners/connect-proxy-with-http2-chain.envoy-1-16-x.golden +++ b/agent/xds/testdata/listeners/connect-proxy-with-http2-chain.v2compat.envoy-1-17-x.golden @@ -22,7 +22,8 @@ "configSource": { "ads": { - } + }, + "resourceApiVersion": "V2" }, "routeConfigName": "db" }, diff --git a/agent/xds/testdata/listeners/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden b/agent/xds/testdata/listeners/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..10de38687 --- /dev/null +++ b/agent/xds/testdata/listeners/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden @@ -0,0 +1,119 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:0.0.0.0:9999", + "address": { + "socketAddress": { + "address": "0.0.0.0", + "portValue": 9999 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden b/agent/xds/testdata/listeners/connect-proxy-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/connect-proxy-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/connect-proxy-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden b/agent/xds/testdata/listeners/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..10de38687 --- /dev/null +++ b/agent/xds/testdata/listeners/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden @@ -0,0 +1,119 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:0.0.0.0:9999", + "address": { + "socketAddress": { + "address": "0.0.0.0", + "portValue": 9999 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden b/agent/xds/testdata/listeners/connect-proxy-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/connect-proxy-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/connect-proxy-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/connect-proxy-with-tcp-chain.envoy-1-17-x.golden b/agent/xds/testdata/listeners/connect-proxy-with-tcp-chain.envoy-1-17-x.golden new file mode 100644 index 000000000..10de38687 --- /dev/null +++ b/agent/xds/testdata/listeners/connect-proxy-with-tcp-chain.envoy-1-17-x.golden @@ -0,0 +1,119 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:0.0.0.0:9999", + "address": { + "socketAddress": { + "address": "0.0.0.0", + "portValue": 9999 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/connect-proxy-with-tcp-chain.envoy-1-16-x.golden b/agent/xds/testdata/listeners/connect-proxy-with-tcp-chain.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/connect-proxy-with-tcp-chain.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/connect-proxy-with-tcp-chain.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/custom-public-listener-http-2.envoy-1-17-x.golden b/agent/xds/testdata/listeners/custom-public-listener-http-2.envoy-1-17-x.golden new file mode 100644 index 000000000..5ffe4ffa0 --- /dev/null +++ b/agent/xds/testdata/listeners/custom-public-listener-http-2.envoy-1-17-x.golden @@ -0,0 +1,141 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "custom-public-listen", + "address": { + "socketAddress": { + "address": "11.11.11.11", + "portValue": 11111 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "routeConfig": { + "name": "public_listener", + "virtualHosts": [ + { + "name": "public_listener", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "random-cluster" + } + } + ] + } + ] + }, + "httpFilters": [ + { + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", + "rules": { + + } + } + }, + { + "name": "envoy.filters.http.router" + } + ] + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/custom-public-listener-http-2.envoy-1-16-x.golden b/agent/xds/testdata/listeners/custom-public-listener-http-2.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/custom-public-listener-http-2.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/custom-public-listener-http-2.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/custom-public-listener-http-missing.envoy-1-17-x.golden b/agent/xds/testdata/listeners/custom-public-listener-http-missing.envoy-1-17-x.golden new file mode 100644 index 000000000..70b39d05a --- /dev/null +++ b/agent/xds/testdata/listeners/custom-public-listener-http-missing.envoy-1-17-x.golden @@ -0,0 +1,118 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "custom-public-listen", + "address": { + "socketAddress": { + "address": "11.11.11.11", + "portValue": 11111 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "foo-stats", + "cluster": "random-cluster" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/custom-public-listener-http-missing.envoy-1-16-x.golden b/agent/xds/testdata/listeners/custom-public-listener-http-missing.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/custom-public-listener-http-missing.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/custom-public-listener-http-missing.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/custom-public-listener-http.envoy-1-17-x.golden b/agent/xds/testdata/listeners/custom-public-listener-http.envoy-1-17-x.golden new file mode 100644 index 000000000..5ffe4ffa0 --- /dev/null +++ b/agent/xds/testdata/listeners/custom-public-listener-http.envoy-1-17-x.golden @@ -0,0 +1,141 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "custom-public-listen", + "address": { + "socketAddress": { + "address": "11.11.11.11", + "portValue": 11111 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "routeConfig": { + "name": "public_listener", + "virtualHosts": [ + { + "name": "public_listener", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "random-cluster" + } + } + ] + } + ] + }, + "httpFilters": [ + { + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", + "rules": { + + } + } + }, + { + "name": "envoy.filters.http.router" + } + ] + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/custom-public-listener-http.envoy-1-16-x.golden b/agent/xds/testdata/listeners/custom-public-listener-http.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/custom-public-listener-http.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/custom-public-listener-http.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/custom-public-listener.envoy-1-17-x.golden b/agent/xds/testdata/listeners/custom-public-listener.envoy-1-17-x.golden new file mode 100644 index 000000000..70b39d05a --- /dev/null +++ b/agent/xds/testdata/listeners/custom-public-listener.envoy-1-17-x.golden @@ -0,0 +1,118 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "custom-public-listen", + "address": { + "socketAddress": { + "address": "11.11.11.11", + "portValue": 11111 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "foo-stats", + "cluster": "random-cluster" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/custom-public-listener.envoy-1-16-x.golden b/agent/xds/testdata/listeners/custom-public-listener.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/custom-public-listener.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/custom-public-listener.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/custom-upstream-ignored-with-disco-chain.envoy-1-17-x.golden b/agent/xds/testdata/listeners/custom-upstream-ignored-with-disco-chain.envoy-1-17-x.golden new file mode 100644 index 000000000..10de38687 --- /dev/null +++ b/agent/xds/testdata/listeners/custom-upstream-ignored-with-disco-chain.envoy-1-17-x.golden @@ -0,0 +1,119 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:0.0.0.0:9999", + "address": { + "socketAddress": { + "address": "0.0.0.0", + "portValue": 9999 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/custom-upstream-ignored-with-disco-chain.envoy-1-16-x.golden b/agent/xds/testdata/listeners/custom-upstream-ignored-with-disco-chain.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/custom-upstream-ignored-with-disco-chain.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/custom-upstream-ignored-with-disco-chain.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/custom-upstream.envoy-1-17-x.golden b/agent/xds/testdata/listeners/custom-upstream.envoy-1-17-x.golden new file mode 100644 index 000000000..e79324c90 --- /dev/null +++ b/agent/xds/testdata/listeners/custom-upstream.envoy-1-17-x.golden @@ -0,0 +1,118 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "custom-upstream", + "address": { + "socketAddress": { + "address": "11.11.11.11", + "portValue": 11111 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "foo-stats", + "cluster": "random-cluster" + } + } + ] + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:0.0.0.0:9999", + "address": { + "socketAddress": { + "address": "0.0.0.0", + "portValue": 9999 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/custom-upstream.envoy-1-16-x.golden b/agent/xds/testdata/listeners/custom-upstream.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/custom-upstream.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/custom-upstream.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/defaults.envoy-1-17-x.golden b/agent/xds/testdata/listeners/defaults.envoy-1-17-x.golden new file mode 100644 index 000000000..10de38687 --- /dev/null +++ b/agent/xds/testdata/listeners/defaults.envoy-1-17-x.golden @@ -0,0 +1,119 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:0.0.0.0:9999", + "address": { + "socketAddress": { + "address": "0.0.0.0", + "portValue": 9999 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/defaults.envoy-1-16-x.golden b/agent/xds/testdata/listeners/defaults.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/defaults.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/defaults.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/expose-checks.envoy-1-17-x.golden b/agent/xds/testdata/listeners/expose-checks.envoy-1-17-x.golden new file mode 100644 index 000000000..d7d82d07b --- /dev/null +++ b/agent/xds/testdata/listeners/expose-checks.envoy-1-17-x.golden @@ -0,0 +1,120 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "exposed_path_debug:1.2.3.4:21500", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 21500 + } + }, + "filterChains": [ + { + "filterChainMatch": { + "sourcePrefixRanges": [ + { + "addressPrefix": "127.0.0.1", + "prefixLen": 8 + }, + { + "addressPrefix": "192.0.2.1", + "prefixLen": 32 + }, + { + "addressPrefix": "::1", + "prefixLen": 128 + } + ] + }, + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "exposed_path_filter_debug_21500", + "routeConfig": { + "name": "exposed_path_filter_debug_21500", + "virtualHosts": [ + { + "name": "exposed_path_filter_debug_21500", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "path": "/debug" + }, + "route": { + "cluster": "exposed_cluster_8181" + } + } + ] + } + ] + }, + "httpFilters": [ + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + } + } + } + ] + } + ], + "trafficDirection": "INBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:1.2.3.4:8080", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 8080 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/expose-checks.envoy-1-16-x.golden b/agent/xds/testdata/listeners/expose-checks.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/expose-checks.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/expose-checks.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/expose-paths-local-app-paths.envoy-1-17-x.golden b/agent/xds/testdata/listeners/expose-paths-local-app-paths.envoy-1-17-x.golden new file mode 100644 index 000000000..b60e6b8b4 --- /dev/null +++ b/agent/xds/testdata/listeners/expose-paths-local-app-paths.envoy-1-17-x.golden @@ -0,0 +1,159 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "exposed_path_health1:1.2.3.4:21500", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 21500 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "exposed_path_filter_health1_21500", + "routeConfig": { + "name": "exposed_path_filter_health1_21500", + "virtualHosts": [ + { + "name": "exposed_path_filter_health1_21500", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "path": "/health1" + }, + "route": { + "cluster": "local_app" + } + } + ] + } + ] + }, + "httpFilters": [ + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + } + } + } + ] + } + ], + "trafficDirection": "INBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "exposed_path_health2:1.2.3.4:21501", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 21501 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "exposed_path_filter_health2_21501", + "routeConfig": { + "name": "exposed_path_filter_health2_21501", + "virtualHosts": [ + { + "name": "exposed_path_filter_health2_21501", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "path": "/health2" + }, + "route": { + "cluster": "local_app" + } + } + ] + } + ] + }, + "httpFilters": [ + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + } + } + } + ] + } + ], + "trafficDirection": "INBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:1.2.3.4:8080", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 8080 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/expose-paths-local-app-paths.envoy-1-16-x.golden b/agent/xds/testdata/listeners/expose-paths-local-app-paths.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/expose-paths-local-app-paths.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/expose-paths-local-app-paths.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/expose-paths-new-cluster-http2.envoy-1-17-x.golden b/agent/xds/testdata/listeners/expose-paths-new-cluster-http2.envoy-1-17-x.golden new file mode 100644 index 000000000..5356319ce --- /dev/null +++ b/agent/xds/testdata/listeners/expose-paths-new-cluster-http2.envoy-1-17-x.golden @@ -0,0 +1,162 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "exposed_path_grpchealthv1HealthCheck:1.2.3.4:21501", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 21501 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "exposed_path_filter_grpchealthv1HealthCheck_21501", + "routeConfig": { + "name": "exposed_path_filter_grpchealthv1HealthCheck_21501", + "virtualHosts": [ + { + "name": "exposed_path_filter_grpchealthv1HealthCheck_21501", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "path": "/grpc.health.v1.Health/Check" + }, + "route": { + "cluster": "exposed_cluster_9090" + } + } + ] + } + ] + }, + "httpFilters": [ + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + }, + "http2ProtocolOptions": { + + } + } + } + ] + } + ], + "trafficDirection": "INBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "exposed_path_health1:1.2.3.4:21500", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 21500 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "exposed_path_filter_health1_21500", + "routeConfig": { + "name": "exposed_path_filter_health1_21500", + "virtualHosts": [ + { + "name": "exposed_path_filter_health1_21500", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "path": "/health1" + }, + "route": { + "cluster": "local_app" + } + } + ] + } + ] + }, + "httpFilters": [ + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + } + } + } + ] + } + ], + "trafficDirection": "INBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:1.2.3.4:8080", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 8080 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/expose-paths-new-cluster-http2.envoy-1-16-x.golden b/agent/xds/testdata/listeners/expose-paths-new-cluster-http2.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/expose-paths-new-cluster-http2.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/expose-paths-new-cluster-http2.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/http-listener-with-timeouts.envoy-1-17-x.golden b/agent/xds/testdata/listeners/http-listener-with-timeouts.envoy-1-17-x.golden new file mode 100644 index 000000000..254251eb5 --- /dev/null +++ b/agent/xds/testdata/listeners/http-listener-with-timeouts.envoy-1-17-x.golden @@ -0,0 +1,149 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:0.0.0.0:9999", + "address": { + "socketAddress": { + "address": "0.0.0.0", + "portValue": 9999 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "public_listener", + "routeConfig": { + "name": "public_listener", + "virtualHosts": [ + { + "name": "public_listener", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "local_app", + "timeout": "2.345s" + } + } + ] + } + ] + }, + "httpFilters": [ + { + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", + "rules": { + + } + } + }, + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + } + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/http-listener-with-timeouts.envoy-1-16-x.golden b/agent/xds/testdata/listeners/http-listener-with-timeouts.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/http-listener-with-timeouts.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/http-listener-with-timeouts.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/http-public-listener.envoy-1-17-x.golden b/agent/xds/testdata/listeners/http-public-listener.envoy-1-17-x.golden new file mode 100644 index 000000000..d62565cd1 --- /dev/null +++ b/agent/xds/testdata/listeners/http-public-listener.envoy-1-17-x.golden @@ -0,0 +1,148 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:0.0.0.0:9999", + "address": { + "socketAddress": { + "address": "0.0.0.0", + "portValue": 9999 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "public_listener", + "routeConfig": { + "name": "public_listener", + "virtualHosts": [ + { + "name": "public_listener", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "local_app" + } + } + ] + } + ] + }, + "httpFilters": [ + { + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", + "rules": { + + } + } + }, + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + } + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/http-public-listener.envoy-1-16-x.golden b/agent/xds/testdata/listeners/http-public-listener.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/http-public-listener.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/http-public-listener.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/http-upstream.envoy-1-17-x.golden b/agent/xds/testdata/listeners/http-upstream.envoy-1-17-x.golden new file mode 100644 index 000000000..993625890 --- /dev/null +++ b/agent/xds/testdata/listeners/http-upstream.envoy-1-17-x.golden @@ -0,0 +1,149 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "upstream.db.default.dc1", + "routeConfig": { + "name": "db", + "virtualHosts": [ + { + "name": "db.default.dc1", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ] + }, + "httpFilters": [ + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + } + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:0.0.0.0:9999", + "address": { + "socketAddress": { + "address": "0.0.0.0", + "portValue": 9999 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/http-upstream.envoy-1-16-x.golden b/agent/xds/testdata/listeners/http-upstream.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/http-upstream.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/http-upstream.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/ingress-gateway-bind-addrs.envoy-1-17-x.golden b/agent/xds/testdata/listeners/ingress-gateway-bind-addrs.envoy-1-17-x.golden new file mode 100644 index 000000000..8fb86f6ac --- /dev/null +++ b/agent/xds/testdata/listeners/ingress-gateway-bind-addrs.envoy-1-17-x.golden @@ -0,0 +1,82 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:10.0.0.1:9191", + "address": { + "socketAddress": { + "address": "10.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:172.16.0.1:9191", + "address": { + "socketAddress": { + "address": "172.16.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:8.8.8.8:9191", + "address": { + "socketAddress": { + "address": "8.8.8.8", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/ingress-gateway-bind-addrs.envoy-1-16-x.golden b/agent/xds/testdata/listeners/ingress-gateway-bind-addrs.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/ingress-gateway-bind-addrs.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/ingress-gateway-bind-addrs.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/ingress-gateway-no-services.envoy-1-17-x.golden b/agent/xds/testdata/listeners/ingress-gateway-no-services.envoy-1-17-x.golden new file mode 100644 index 000000000..c587fc277 --- /dev/null +++ b/agent/xds/testdata/listeners/ingress-gateway-no-services.envoy-1-17-x.golden @@ -0,0 +1,7 @@ +{ + "versionInfo": "00000001", + "resources": [ + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/ingress-gateway-no-services.envoy-1-16-x.golden b/agent/xds/testdata/listeners/ingress-gateway-no-services.v2compat.envoy-1-17-x.golden similarity index 82% rename from agent/xds/testdata/listeners/ingress-gateway-no-services.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/ingress-gateway-no-services.v2compat.envoy-1-17-x.golden index 5909a14ca..98f14d200 100644 --- a/agent/xds/testdata/listeners/ingress-gateway-no-services.envoy-1-16-x.golden +++ b/agent/xds/testdata/listeners/ingress-gateway-no-services.v2compat.envoy-1-17-x.golden @@ -1,7 +1,5 @@ { "versionInfo": "00000001", - "resources": [ - ], "typeUrl": "type.googleapis.com/envoy.api.v2.Listener", "nonce": "00000001" } \ No newline at end of file diff --git a/agent/xds/testdata/listeners/ingress-gateway.envoy-1-17-x.golden b/agent/xds/testdata/listeners/ingress-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..059b11226 --- /dev/null +++ b/agent/xds/testdata/listeners/ingress-gateway.envoy-1-17-x.golden @@ -0,0 +1,32 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:1.2.3.4:9191", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/ingress-gateway.envoy-1-16-x.golden b/agent/xds/testdata/listeners/ingress-gateway.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/ingress-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/ingress-gateway.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/ingress-http-multiple-services.envoy-1-17-x.golden b/agent/xds/testdata/listeners/ingress-http-multiple-services.envoy-1-17-x.golden new file mode 100644 index 000000000..433441cbc --- /dev/null +++ b/agent/xds/testdata/listeners/ingress-http-multiple-services.envoy-1-17-x.golden @@ -0,0 +1,93 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "http:1.2.3.4:443", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 443 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "ingress_upstream.443", + "rds": { + "configSource": { + "ads": { + + }, + "resourceApiVersion": "V3" + }, + "routeConfigName": "443" + }, + "httpFilters": [ + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + } + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "http:1.2.3.4:8080", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 8080 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "ingress_upstream.8080", + "rds": { + "configSource": { + "ads": { + + }, + "resourceApiVersion": "V3" + }, + "routeConfigName": "8080" + }, + "httpFilters": [ + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + } + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/ingress-http-multiple-services.envoy-1-16-x.golden b/agent/xds/testdata/listeners/ingress-http-multiple-services.v2compat.envoy-1-17-x.golden similarity index 94% rename from agent/xds/testdata/listeners/ingress-http-multiple-services.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/ingress-http-multiple-services.v2compat.envoy-1-17-x.golden index 9ce34cf7f..6603e2967 100644 --- a/agent/xds/testdata/listeners/ingress-http-multiple-services.envoy-1-16-x.golden +++ b/agent/xds/testdata/listeners/ingress-http-multiple-services.v2compat.envoy-1-17-x.golden @@ -22,7 +22,8 @@ "configSource": { "ads": { - } + }, + "resourceApiVersion": "V2" }, "routeConfigName": "443" }, @@ -64,7 +65,8 @@ "configSource": { "ads": { - } + }, + "resourceApiVersion": "V2" }, "routeConfigName": "8080" }, diff --git a/agent/xds/testdata/listeners/ingress-splitter-with-resolver-redirect.envoy-1-17-x.golden b/agent/xds/testdata/listeners/ingress-splitter-with-resolver-redirect.envoy-1-17-x.golden new file mode 100644 index 000000000..aa2eec5b7 --- /dev/null +++ b/agent/xds/testdata/listeners/ingress-splitter-with-resolver-redirect.envoy-1-17-x.golden @@ -0,0 +1,50 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "http:1.2.3.4:9191", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "ingress_upstream.9191", + "rds": { + "configSource": { + "ads": { + + }, + "resourceApiVersion": "V3" + }, + "routeConfigName": "9191" + }, + "httpFilters": [ + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + } + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/ingress-splitter-with-resolver-redirect.envoy-1-16-x.golden b/agent/xds/testdata/listeners/ingress-splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden similarity index 94% rename from agent/xds/testdata/listeners/ingress-splitter-with-resolver-redirect.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/ingress-splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden index ac4c614b6..ea9410a08 100644 --- a/agent/xds/testdata/listeners/ingress-splitter-with-resolver-redirect.envoy-1-16-x.golden +++ b/agent/xds/testdata/listeners/ingress-splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden @@ -22,7 +22,8 @@ "configSource": { "ads": { - } + }, + "resourceApiVersion": "V2" }, "routeConfigName": "9191" }, diff --git a/agent/xds/testdata/listeners/ingress-with-chain-and-overrides.envoy-1-17-x.golden b/agent/xds/testdata/listeners/ingress-with-chain-and-overrides.envoy-1-17-x.golden new file mode 100644 index 000000000..2d7b49890 --- /dev/null +++ b/agent/xds/testdata/listeners/ingress-with-chain-and-overrides.envoy-1-17-x.golden @@ -0,0 +1,56 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:1.2.3.4:9191", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "upstream.db.default.dc1", + "rds": { + "configSource": { + "ads": { + + }, + "resourceApiVersion": "V3" + }, + "routeConfigName": "db" + }, + "httpFilters": [ + { + "name": "envoy.filters.http.grpc_http1_bridge" + }, + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + }, + "http2ProtocolOptions": { + + } + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/ingress-with-chain-and-overrides.envoy-1-16-x.golden b/agent/xds/testdata/listeners/ingress-with-chain-and-overrides.v2compat.envoy-1-17-x.golden similarity index 90% rename from agent/xds/testdata/listeners/ingress-with-chain-and-overrides.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/ingress-with-chain-and-overrides.v2compat.envoy-1-17-x.golden index b5bf767cf..fcfa9043a 100644 --- a/agent/xds/testdata/listeners/ingress-with-chain-and-overrides.envoy-1-16-x.golden +++ b/agent/xds/testdata/listeners/ingress-with-chain-and-overrides.v2compat.envoy-1-17-x.golden @@ -22,13 +22,14 @@ "configSource": { "ads": { - } + }, + "resourceApiVersion": "V2" }, "routeConfigName": "db" }, "httpFilters": [ { - "name": "envoy.grpc_http1_bridge" + "name": "envoy.filters.http.grpc_http1_bridge" }, { "name": "envoy.filters.http.router" diff --git a/agent/xds/testdata/listeners/ingress-with-chain-external-sni.envoy-1-17-x.golden b/agent/xds/testdata/listeners/ingress-with-chain-external-sni.envoy-1-17-x.golden new file mode 100644 index 000000000..059b11226 --- /dev/null +++ b/agent/xds/testdata/listeners/ingress-with-chain-external-sni.envoy-1-17-x.golden @@ -0,0 +1,32 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:1.2.3.4:9191", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/ingress-with-chain-external-sni.envoy-1-16-x.golden b/agent/xds/testdata/listeners/ingress-with-chain-external-sni.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/ingress-with-chain-external-sni.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/ingress-with-chain-external-sni.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden b/agent/xds/testdata/listeners/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..059b11226 --- /dev/null +++ b/agent/xds/testdata/listeners/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-17-x.golden @@ -0,0 +1,32 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:1.2.3.4:9191", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden b/agent/xds/testdata/listeners/ingress-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/ingress-with-tcp-chain-failover-through-local-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/ingress-with-tcp-chain-failover-through-local-gateway.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden b/agent/xds/testdata/listeners/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..059b11226 --- /dev/null +++ b/agent/xds/testdata/listeners/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-17-x.golden @@ -0,0 +1,32 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:1.2.3.4:9191", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden b/agent/xds/testdata/listeners/ingress-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/ingress-with-tcp-chain-failover-through-remote-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/ingress-with-tcp-chain-failover-through-remote-gateway.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/ingress-with-tls-listener.envoy-1-17-x.golden b/agent/xds/testdata/listeners/ingress-with-tls-listener.envoy-1-17-x.golden new file mode 100644 index 000000000..e106983fc --- /dev/null +++ b/agent/xds/testdata/listeners/ingress-with-tls-listener.envoy-1-17-x.golden @@ -0,0 +1,59 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:1.2.3.4:9191", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": false + } + } + } + ], + "trafficDirection": "OUTBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/ingress-with-tls-listener.envoy-1-16-x.golden b/agent/xds/testdata/listeners/ingress-with-tls-listener.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/ingress-with-tls-listener.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/ingress-with-tls-listener.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/listener-bind-address-port.envoy-1-17-x.golden b/agent/xds/testdata/listeners/listener-bind-address-port.envoy-1-17-x.golden new file mode 100644 index 000000000..37a38656b --- /dev/null +++ b/agent/xds/testdata/listeners/listener-bind-address-port.envoy-1-17-x.golden @@ -0,0 +1,119 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:127.0.0.2:8888", + "address": { + "socketAddress": { + "address": "127.0.0.2", + "portValue": 8888 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/listener-bind-address-port.envoy-1-16-x.golden b/agent/xds/testdata/listeners/listener-bind-address-port.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/listener-bind-address-port.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/listener-bind-address-port.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/listener-bind-address.envoy-1-17-x.golden b/agent/xds/testdata/listeners/listener-bind-address.envoy-1-17-x.golden new file mode 100644 index 000000000..7d88ad2cf --- /dev/null +++ b/agent/xds/testdata/listeners/listener-bind-address.envoy-1-17-x.golden @@ -0,0 +1,119 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:127.0.0.2:9999", + "address": { + "socketAddress": { + "address": "127.0.0.2", + "portValue": 9999 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/listener-bind-address.envoy-1-16-x.golden b/agent/xds/testdata/listeners/listener-bind-address.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/listener-bind-address.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/listener-bind-address.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/listener-bind-port.envoy-1-17-x.golden b/agent/xds/testdata/listeners/listener-bind-port.envoy-1-17-x.golden new file mode 100644 index 000000000..4a44e6450 --- /dev/null +++ b/agent/xds/testdata/listeners/listener-bind-port.envoy-1-17-x.golden @@ -0,0 +1,119 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.db.default.dc1", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:0.0.0.0:8888", + "address": { + "socketAddress": { + "address": "0.0.0.0", + "portValue": 8888 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/listener-bind-port.envoy-1-16-x.golden b/agent/xds/testdata/listeners/listener-bind-port.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/listener-bind-port.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/listener-bind-port.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/mesh-gateway-custom-addresses.envoy-1-17-x.golden b/agent/xds/testdata/listeners/mesh-gateway-custom-addresses.envoy-1-17-x.golden new file mode 100644 index 000000000..1d948062e --- /dev/null +++ b/agent/xds/testdata/listeners/mesh-gateway-custom-addresses.envoy-1-17-x.golden @@ -0,0 +1,339 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "bar:2001:db8::ff:9999", + "address": { + "socketAddress": { + "address": "2001:db8::ff", + "portValue": 9999 + } + }, + "filterChains": [ + { + "filterChainMatch": { + "serverNames": [ + "*.dc2.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.bar.dc2", + "cluster": "dc2.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filterChainMatch": { + "serverNames": [ + "*.dc4.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.bar.dc4", + "cluster": "dc4.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filterChainMatch": { + "serverNames": [ + "*.dc6.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.bar.dc6", + "cluster": "dc6.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filters": [ + { + "name": "envoy.filters.network.sni_cluster" + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_local.bar", + "cluster": "" + } + } + ] + } + ], + "listenerFilters": [ + { + "name": "envoy.filters.listener.tls_inspector" + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "baz:127.0.0.1:8765", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 8765 + } + }, + "filterChains": [ + { + "filterChainMatch": { + "serverNames": [ + "*.dc2.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.baz.dc2", + "cluster": "dc2.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filterChainMatch": { + "serverNames": [ + "*.dc4.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.baz.dc4", + "cluster": "dc4.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filterChainMatch": { + "serverNames": [ + "*.dc6.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.baz.dc6", + "cluster": "dc6.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filters": [ + { + "name": "envoy.filters.network.sni_cluster" + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_local.baz", + "cluster": "" + } + } + ] + } + ], + "listenerFilters": [ + { + "name": "envoy.filters.listener.tls_inspector" + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "default:1.2.3.4:8443", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 8443 + } + }, + "filterChains": [ + { + "filterChainMatch": { + "serverNames": [ + "*.dc2.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.default.dc2", + "cluster": "dc2.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filterChainMatch": { + "serverNames": [ + "*.dc4.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.default.dc4", + "cluster": "dc4.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filterChainMatch": { + "serverNames": [ + "*.dc6.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.default.dc6", + "cluster": "dc6.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filters": [ + { + "name": "envoy.filters.network.sni_cluster" + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_local.default", + "cluster": "" + } + } + ] + } + ], + "listenerFilters": [ + { + "name": "envoy.filters.listener.tls_inspector" + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "foo:198.17.2.3:8080", + "address": { + "socketAddress": { + "address": "198.17.2.3", + "portValue": 8080 + } + }, + "filterChains": [ + { + "filterChainMatch": { + "serverNames": [ + "*.dc2.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.foo.dc2", + "cluster": "dc2.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filterChainMatch": { + "serverNames": [ + "*.dc4.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.foo.dc4", + "cluster": "dc4.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filterChainMatch": { + "serverNames": [ + "*.dc6.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.foo.dc6", + "cluster": "dc6.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filters": [ + { + "name": "envoy.filters.network.sni_cluster" + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_local.foo", + "cluster": "" + } + } + ] + } + ], + "listenerFilters": [ + { + "name": "envoy.filters.listener.tls_inspector" + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/mesh-gateway-custom-addresses.envoy-1-16-x.golden b/agent/xds/testdata/listeners/mesh-gateway-custom-addresses.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/mesh-gateway-custom-addresses.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/mesh-gateway-custom-addresses.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/mesh-gateway-no-services.envoy-1-17-x.golden b/agent/xds/testdata/listeners/mesh-gateway-no-services.envoy-1-17-x.golden new file mode 100644 index 000000000..f1d2001d3 --- /dev/null +++ b/agent/xds/testdata/listeners/mesh-gateway-no-services.envoy-1-17-x.golden @@ -0,0 +1,39 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "default:1.2.3.4:8443", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 8443 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.sni_cluster" + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_local.default", + "cluster": "" + } + } + ] + } + ], + "listenerFilters": [ + { + "name": "envoy.filters.listener.tls_inspector" + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/mesh-gateway-no-services.envoy-1-16-x.golden b/agent/xds/testdata/listeners/mesh-gateway-no-services.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/mesh-gateway-no-services.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/mesh-gateway-no-services.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/mesh-gateway-tagged-addresses.envoy-1-17-x.golden b/agent/xds/testdata/listeners/mesh-gateway-tagged-addresses.envoy-1-17-x.golden new file mode 100644 index 000000000..99f09630f --- /dev/null +++ b/agent/xds/testdata/listeners/mesh-gateway-tagged-addresses.envoy-1-17-x.golden @@ -0,0 +1,173 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "lan:1.2.3.4:8443", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 8443 + } + }, + "filterChains": [ + { + "filterChainMatch": { + "serverNames": [ + "*.dc2.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.lan.dc2", + "cluster": "dc2.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filterChainMatch": { + "serverNames": [ + "*.dc4.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.lan.dc4", + "cluster": "dc4.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filterChainMatch": { + "serverNames": [ + "*.dc6.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.lan.dc6", + "cluster": "dc6.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filters": [ + { + "name": "envoy.filters.network.sni_cluster" + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_local.lan", + "cluster": "" + } + } + ] + } + ], + "listenerFilters": [ + { + "name": "envoy.filters.listener.tls_inspector" + } + ] + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "wan:198.18.0.1:443", + "address": { + "socketAddress": { + "address": "198.18.0.1", + "portValue": 443 + } + }, + "filterChains": [ + { + "filterChainMatch": { + "serverNames": [ + "*.dc2.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.wan.dc2", + "cluster": "dc2.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filterChainMatch": { + "serverNames": [ + "*.dc4.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.wan.dc4", + "cluster": "dc4.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filterChainMatch": { + "serverNames": [ + "*.dc6.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.wan.dc6", + "cluster": "dc6.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filters": [ + { + "name": "envoy.filters.network.sni_cluster" + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_local.wan", + "cluster": "" + } + } + ] + } + ], + "listenerFilters": [ + { + "name": "envoy.filters.listener.tls_inspector" + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/mesh-gateway-tagged-addresses.envoy-1-16-x.golden b/agent/xds/testdata/listeners/mesh-gateway-tagged-addresses.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/mesh-gateway-tagged-addresses.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/mesh-gateway-tagged-addresses.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/mesh-gateway-using-federation-states.envoy-1-17-x.golden b/agent/xds/testdata/listeners/mesh-gateway-using-federation-states.envoy-1-17-x.golden new file mode 100644 index 000000000..092529f4c --- /dev/null +++ b/agent/xds/testdata/listeners/mesh-gateway-using-federation-states.envoy-1-17-x.golden @@ -0,0 +1,90 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "default:1.2.3.4:8443", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 8443 + } + }, + "filterChains": [ + { + "filterChainMatch": { + "serverNames": [ + "*.dc2.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.default.dc2", + "cluster": "dc2.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filterChainMatch": { + "serverNames": [ + "*.dc4.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.default.dc4", + "cluster": "dc4.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filterChainMatch": { + "serverNames": [ + "*.dc6.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.default.dc6", + "cluster": "dc6.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filters": [ + { + "name": "envoy.filters.network.sni_cluster" + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_local.default", + "cluster": "" + } + } + ] + } + ], + "listenerFilters": [ + { + "name": "envoy.filters.listener.tls_inspector" + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/mesh-gateway-using-federation-states.envoy-1-16-x.golden b/agent/xds/testdata/listeners/mesh-gateway-using-federation-states.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/mesh-gateway-using-federation-states.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/mesh-gateway-using-federation-states.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/mesh-gateway.envoy-1-17-x.golden b/agent/xds/testdata/listeners/mesh-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..092529f4c --- /dev/null +++ b/agent/xds/testdata/listeners/mesh-gateway.envoy-1-17-x.golden @@ -0,0 +1,90 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "default:1.2.3.4:8443", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 8443 + } + }, + "filterChains": [ + { + "filterChainMatch": { + "serverNames": [ + "*.dc2.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.default.dc2", + "cluster": "dc2.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filterChainMatch": { + "serverNames": [ + "*.dc4.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.default.dc4", + "cluster": "dc4.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filterChainMatch": { + "serverNames": [ + "*.dc6.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_remote.default.dc6", + "cluster": "dc6.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "filters": [ + { + "name": "envoy.filters.network.sni_cluster" + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "mesh_gateway_local.default", + "cluster": "" + } + } + ] + } + ], + "listenerFilters": [ + { + "name": "envoy.filters.listener.tls_inspector" + } + ] + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/mesh-gateway.envoy-1-16-x.golden b/agent/xds/testdata/listeners/mesh-gateway.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/mesh-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/mesh-gateway.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/splitter-with-resolver-redirect.envoy-1-17-x.golden b/agent/xds/testdata/listeners/splitter-with-resolver-redirect.envoy-1-17-x.golden new file mode 100644 index 000000000..58f566234 --- /dev/null +++ b/agent/xds/testdata/listeners/splitter-with-resolver-redirect.envoy-1-17-x.golden @@ -0,0 +1,137 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "db:127.0.0.1:9191", + "address": { + "socketAddress": { + "address": "127.0.0.1", + "portValue": 9191 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "upstream.db.default.dc1", + "rds": { + "configSource": { + "ads": { + + }, + "resourceApiVersion": "V3" + }, + "routeConfigName": "db" + }, + "httpFilters": [ + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + } + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "prepared_query:geo-cache:127.10.10.10:8181", + "address": { + "socketAddress": { + "address": "127.10.10.10", + "portValue": 8181 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "upstream.prepared_query_geo-cache", + "cluster": "geo-cache.default.dc1.query.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "trafficDirection": "OUTBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "public_listener:0.0.0.0:9999", + "address": { + "socketAddress": { + "address": "0.0.0.0", + "portValue": 9999 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "public_listener", + "cluster": "local_app" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/splitter-with-resolver-redirect.envoy-1-16-x.golden b/agent/xds/testdata/listeners/splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden similarity index 98% rename from agent/xds/testdata/listeners/splitter-with-resolver-redirect.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden index 9a93c1162..4df11a586 100644 --- a/agent/xds/testdata/listeners/splitter-with-resolver-redirect.envoy-1-16-x.golden +++ b/agent/xds/testdata/listeners/splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden @@ -22,7 +22,8 @@ "configSource": { "ads": { - } + }, + "resourceApiVersion": "V2" }, "routeConfigName": "db" }, diff --git a/agent/xds/testdata/listeners/terminating-gateway-custom-and-tagged-addresses.envoy-1-17-x.golden b/agent/xds/testdata/listeners/terminating-gateway-custom-and-tagged-addresses.envoy-1-17-x.golden new file mode 100644 index 000000000..5ac6746c1 --- /dev/null +++ b/agent/xds/testdata/listeners/terminating-gateway-custom-and-tagged-addresses.envoy-1-17-x.golden @@ -0,0 +1,505 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "foo:198.17.2.3:8080", + "address": { + "socketAddress": { + "address": "198.17.2.3", + "portValue": 8080 + } + }, + "filterChains": [ + { + "filterChainMatch": { + "serverNames": [ + "api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default.api.foo", + "cluster": "api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICnTCCAkKgAwIBAgIRAJrvEdaRAkSltrotd/l/j2cwCgYIKoZIzj0EAwIwgbgx\nCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNj\nbzEaMBgGA1UECRMRMTAxIFNlY29uZCBTdHJlZXQxDjAMBgNVBBETBTk0MTA1MRcw\nFQYDVQQKEw5IYXNoaUNvcnAgSW5jLjE/MD0GA1UEAxM2Q29uc3VsIEFnZW50IENB\nIDk2NjM4NzM1MDkzNTU5NTIwNDk3MTQwOTU3MDY1MTc0OTg3NDMxMB4XDTIwMDQx\nNDIyMzE1MloXDTIxMDQxNDIyMzE1MlowHDEaMBgGA1UEAxMRc2VydmVyLmRjMS5j\nb25zdWwwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ4v0FoIYI0OWmxE2MR6w5l\n0pWGhc02RpsOPj/6RS1fmXMMu7JzPzwCmkGcR16RlwwhNFKCZsWpvAjVRHf/pTp+\no4HHMIHEMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB\nBQUHAwIwDAYDVR0TAQH/BAIwADApBgNVHQ4EIgQgk7kABFitAy3PluyNtmzYiC7H\njSN8W/K/OXNJQAQAscMwKwYDVR0jBCQwIoAgNKbPPepvRHXSAPTc+a/BXBzFX1qJ\ny+Zi7qtjlFX7qtUwLQYDVR0RBCYwJIIRc2VydmVyLmRjMS5jb25zdWyCCWxvY2Fs\naG9zdIcEfwAAATAKBggqhkjOPQQDAgNJADBGAiEAhP4HmN5BWysWTbQWClXaWUah\nLpBGFrvc/2cCQuyEZKsCIQD6JyYCYMArtWwZ4G499zktxrFlqfX14bqyONrxtA5I\nDw==\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIE3KbKXHdsa0vvC1fysQaGdoJRgjRALIolI4XJanie+coAoGCCqGSM49\nAwEHoUQDQgAEOL9BaCGCNDlpsRNjEesOZdKVhoXNNkabDj4/+kUtX5lzDLuycz88\nAppBnEdekZcMITRSgmbFqbwI1UR3/6U6fg==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filterChainMatch": { + "serverNames": [ + "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default.cache.foo", + "cluster": "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICmjCCAkGgAwIBAgIQe1ZmC0rzRwer6jaH1YIUIjAKBggqhkjOPQQDAjCBuDEL\nMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2Nv\nMRowGAYDVQQJExExMDEgU2Vjb25kIFN0cmVldDEOMAwGA1UEERMFOTQxMDUxFzAV\nBgNVBAoTDkhhc2hpQ29ycCBJbmMuMT8wPQYDVQQDEzZDb25zdWwgQWdlbnQgQ0Eg\nODE5ODAwNjg0MDM0MTM3ODkyNDYxNTA1MDk0NDU3OTU1MTQxNjEwHhcNMjAwNjE5\nMTU1MjAzWhcNMjEwNjE5MTU1MjAzWjAcMRowGAYDVQQDExFzZXJ2ZXIuZGMxLmNv\nbnN1bDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH2aWaaa3fpQLBayheHiKlrH\n+z53m0frfGknKjOhOPVYDVHV8x0OE01negswVQbKHAtxPf1M8Zy+WbI9rK7Ua1mj\ngccwgcQwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\nBQcDAjAMBgNVHRMBAf8EAjAAMCkGA1UdDgQiBCDf9CPBSUwwZvpeW73oJLTmgQE2\ntW1NKpL5t1uq9WFcqDArBgNVHSMEJDAigCCPPd/NxgZB0tq2M8pdVpPj3Cr79iTv\ni4/T1ysodfMb7zAtBgNVHREEJjAkghFzZXJ2ZXIuZGMxLmNvbnN1bIIJbG9jYWxo\nb3N0hwR/AAABMAoGCCqGSM49BAMCA0cAMEQCIFCjFZAoXq0s2ied2eIBv0i1KoW5\nIhCylnKFt6iHkyDeAiBBCByTcjHRgEQmqyPojQKoO584EFiczTub9aWdnf9tEw==\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEINsen3S8xzxMrKcRZIvxXzhKDn43Tw9ttqWEFU9TqS5hoAoGCCqGSM49\nAwEHoUQDQgAEfZpZpprd+lAsFrKF4eIqWsf7PnebR+t8aScqM6E49VgNUdXzHQ4T\nTWd6CzBVBsocC3E9/UzxnL5Zsj2srtRrWQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filterChainMatch": { + "serverNames": [ + "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default.db.foo", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICnTCCAkOgAwIBAgIRAKF+qDJbaOULNL1TIatrsBowCgYIKoZIzj0EAwIwgbkx\nCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNj\nbzEaMBgGA1UECRMRMTAxIFNlY29uZCBTdHJlZXQxDjAMBgNVBBETBTk0MTA1MRcw\nFQYDVQQKEw5IYXNoaUNvcnAgSW5jLjFAMD4GA1UEAxM3Q29uc3VsIEFnZW50IENB\nIDE4Nzg3MDAwNjUzMDcxOTYzNTk1ODkwNTE1ODY1NjEzMDA2MTU0NDAeFw0yMDA2\nMTkxNTMxMzRaFw0yMTA2MTkxNTMxMzRaMBwxGjAYBgNVBAMTEXNlcnZlci5kYzEu\nY29uc3VsMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdQ8Igci5f7ZvvCVsxXt9\ntLfvczD+60XHg0OC0+Aka7ZjQfbEjQwZbz/82EwPoS7Dqo3LTK4IuelOimoNNxuk\nkaOBxzCBxDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG\nAQUFBwMCMAwGA1UdEwEB/wQCMAAwKQYDVR0OBCIEILzTLkfJcdWQnTMKUcai/YJq\n0RqH1pjCqtY7SOU4gGOTMCsGA1UdIwQkMCKAIMa2vNcTEC5AGfHIYARJ/4sodX0o\nLzCj3lpw7BcEzPTcMC0GA1UdEQQmMCSCEXNlcnZlci5kYzEuY29uc3Vsgglsb2Nh\nbGhvc3SHBH8AAAEwCgYIKoZIzj0EAwIDSAAwRQIgBZ/Z4GSLEc98WvT/qjTVCNTG\n1WNaAaesVbkRx+J0yl8CIQDAVoqY9ByA5vKHjnQrxWlc/JUtJz8wudg7e/OCRriP\nSg==\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIN1v14FaNxgY4MgjDOOWthen8dgwB0lNMs9/j2TfrnxzoAoGCCqGSM49\nAwEHoUQDQgAEdQ8Igci5f7ZvvCVsxXt9tLfvczD+60XHg0OC0+Aka7ZjQfbEjQwZ\nbz/82EwPoS7Dqo3LTK4IuelOimoNNxukkQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filterChainMatch": { + "serverNames": [ + "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default.web.foo", + "cluster": "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filters": [ + { + "name": "envoy.filters.network.sni_cluster" + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.foo", + "cluster": "" + } + } + ] + } + ], + "listenerFilters": [ + { + "name": "envoy.filters.listener.tls_inspector" + } + ], + "trafficDirection": "INBOUND" + }, + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "wan:198.18.0.1:443", + "address": { + "socketAddress": { + "address": "198.18.0.1", + "portValue": 443 + } + }, + "filterChains": [ + { + "filterChainMatch": { + "serverNames": [ + "api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default.api.wan", + "cluster": "api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICnTCCAkKgAwIBAgIRAJrvEdaRAkSltrotd/l/j2cwCgYIKoZIzj0EAwIwgbgx\nCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNj\nbzEaMBgGA1UECRMRMTAxIFNlY29uZCBTdHJlZXQxDjAMBgNVBBETBTk0MTA1MRcw\nFQYDVQQKEw5IYXNoaUNvcnAgSW5jLjE/MD0GA1UEAxM2Q29uc3VsIEFnZW50IENB\nIDk2NjM4NzM1MDkzNTU5NTIwNDk3MTQwOTU3MDY1MTc0OTg3NDMxMB4XDTIwMDQx\nNDIyMzE1MloXDTIxMDQxNDIyMzE1MlowHDEaMBgGA1UEAxMRc2VydmVyLmRjMS5j\nb25zdWwwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ4v0FoIYI0OWmxE2MR6w5l\n0pWGhc02RpsOPj/6RS1fmXMMu7JzPzwCmkGcR16RlwwhNFKCZsWpvAjVRHf/pTp+\no4HHMIHEMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB\nBQUHAwIwDAYDVR0TAQH/BAIwADApBgNVHQ4EIgQgk7kABFitAy3PluyNtmzYiC7H\njSN8W/K/OXNJQAQAscMwKwYDVR0jBCQwIoAgNKbPPepvRHXSAPTc+a/BXBzFX1qJ\ny+Zi7qtjlFX7qtUwLQYDVR0RBCYwJIIRc2VydmVyLmRjMS5jb25zdWyCCWxvY2Fs\naG9zdIcEfwAAATAKBggqhkjOPQQDAgNJADBGAiEAhP4HmN5BWysWTbQWClXaWUah\nLpBGFrvc/2cCQuyEZKsCIQD6JyYCYMArtWwZ4G499zktxrFlqfX14bqyONrxtA5I\nDw==\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIE3KbKXHdsa0vvC1fysQaGdoJRgjRALIolI4XJanie+coAoGCCqGSM49\nAwEHoUQDQgAEOL9BaCGCNDlpsRNjEesOZdKVhoXNNkabDj4/+kUtX5lzDLuycz88\nAppBnEdekZcMITRSgmbFqbwI1UR3/6U6fg==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filterChainMatch": { + "serverNames": [ + "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default.cache.wan", + "cluster": "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICmjCCAkGgAwIBAgIQe1ZmC0rzRwer6jaH1YIUIjAKBggqhkjOPQQDAjCBuDEL\nMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2Nv\nMRowGAYDVQQJExExMDEgU2Vjb25kIFN0cmVldDEOMAwGA1UEERMFOTQxMDUxFzAV\nBgNVBAoTDkhhc2hpQ29ycCBJbmMuMT8wPQYDVQQDEzZDb25zdWwgQWdlbnQgQ0Eg\nODE5ODAwNjg0MDM0MTM3ODkyNDYxNTA1MDk0NDU3OTU1MTQxNjEwHhcNMjAwNjE5\nMTU1MjAzWhcNMjEwNjE5MTU1MjAzWjAcMRowGAYDVQQDExFzZXJ2ZXIuZGMxLmNv\nbnN1bDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH2aWaaa3fpQLBayheHiKlrH\n+z53m0frfGknKjOhOPVYDVHV8x0OE01negswVQbKHAtxPf1M8Zy+WbI9rK7Ua1mj\ngccwgcQwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\nBQcDAjAMBgNVHRMBAf8EAjAAMCkGA1UdDgQiBCDf9CPBSUwwZvpeW73oJLTmgQE2\ntW1NKpL5t1uq9WFcqDArBgNVHSMEJDAigCCPPd/NxgZB0tq2M8pdVpPj3Cr79iTv\ni4/T1ysodfMb7zAtBgNVHREEJjAkghFzZXJ2ZXIuZGMxLmNvbnN1bIIJbG9jYWxo\nb3N0hwR/AAABMAoGCCqGSM49BAMCA0cAMEQCIFCjFZAoXq0s2ied2eIBv0i1KoW5\nIhCylnKFt6iHkyDeAiBBCByTcjHRgEQmqyPojQKoO584EFiczTub9aWdnf9tEw==\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEINsen3S8xzxMrKcRZIvxXzhKDn43Tw9ttqWEFU9TqS5hoAoGCCqGSM49\nAwEHoUQDQgAEfZpZpprd+lAsFrKF4eIqWsf7PnebR+t8aScqM6E49VgNUdXzHQ4T\nTWd6CzBVBsocC3E9/UzxnL5Zsj2srtRrWQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filterChainMatch": { + "serverNames": [ + "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default.db.wan", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICnTCCAkOgAwIBAgIRAKF+qDJbaOULNL1TIatrsBowCgYIKoZIzj0EAwIwgbkx\nCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNj\nbzEaMBgGA1UECRMRMTAxIFNlY29uZCBTdHJlZXQxDjAMBgNVBBETBTk0MTA1MRcw\nFQYDVQQKEw5IYXNoaUNvcnAgSW5jLjFAMD4GA1UEAxM3Q29uc3VsIEFnZW50IENB\nIDE4Nzg3MDAwNjUzMDcxOTYzNTk1ODkwNTE1ODY1NjEzMDA2MTU0NDAeFw0yMDA2\nMTkxNTMxMzRaFw0yMTA2MTkxNTMxMzRaMBwxGjAYBgNVBAMTEXNlcnZlci5kYzEu\nY29uc3VsMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdQ8Igci5f7ZvvCVsxXt9\ntLfvczD+60XHg0OC0+Aka7ZjQfbEjQwZbz/82EwPoS7Dqo3LTK4IuelOimoNNxuk\nkaOBxzCBxDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG\nAQUFBwMCMAwGA1UdEwEB/wQCMAAwKQYDVR0OBCIEILzTLkfJcdWQnTMKUcai/YJq\n0RqH1pjCqtY7SOU4gGOTMCsGA1UdIwQkMCKAIMa2vNcTEC5AGfHIYARJ/4sodX0o\nLzCj3lpw7BcEzPTcMC0GA1UdEQQmMCSCEXNlcnZlci5kYzEuY29uc3Vsgglsb2Nh\nbGhvc3SHBH8AAAEwCgYIKoZIzj0EAwIDSAAwRQIgBZ/Z4GSLEc98WvT/qjTVCNTG\n1WNaAaesVbkRx+J0yl8CIQDAVoqY9ByA5vKHjnQrxWlc/JUtJz8wudg7e/OCRriP\nSg==\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIN1v14FaNxgY4MgjDOOWthen8dgwB0lNMs9/j2TfrnxzoAoGCCqGSM49\nAwEHoUQDQgAEdQ8Igci5f7ZvvCVsxXt9tLfvczD+60XHg0OC0+Aka7ZjQfbEjQwZ\nbz/82EwPoS7Dqo3LTK4IuelOimoNNxukkQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filterChainMatch": { + "serverNames": [ + "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default.web.wan", + "cluster": "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filters": [ + { + "name": "envoy.filters.network.sni_cluster" + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.wan", + "cluster": "" + } + } + ] + } + ], + "listenerFilters": [ + { + "name": "envoy.filters.listener.tls_inspector" + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/terminating-gateway-custom-and-tagged-addresses.envoy-1-16-x.golden b/agent/xds/testdata/listeners/terminating-gateway-custom-and-tagged-addresses.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/terminating-gateway-custom-and-tagged-addresses.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/terminating-gateway-custom-and-tagged-addresses.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/terminating-gateway-no-api-cert.envoy-1-17-x.golden b/agent/xds/testdata/listeners/terminating-gateway-no-api-cert.envoy-1-17-x.golden new file mode 100644 index 000000000..69b0b6d43 --- /dev/null +++ b/agent/xds/testdata/listeners/terminating-gateway-no-api-cert.envoy-1-17-x.golden @@ -0,0 +1,202 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "default:1.2.3.4:8443", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 8443 + } + }, + "filterChains": [ + { + "filterChainMatch": { + "serverNames": [ + "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default.cache.default", + "cluster": "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICmjCCAkGgAwIBAgIQe1ZmC0rzRwer6jaH1YIUIjAKBggqhkjOPQQDAjCBuDEL\nMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2Nv\nMRowGAYDVQQJExExMDEgU2Vjb25kIFN0cmVldDEOMAwGA1UEERMFOTQxMDUxFzAV\nBgNVBAoTDkhhc2hpQ29ycCBJbmMuMT8wPQYDVQQDEzZDb25zdWwgQWdlbnQgQ0Eg\nODE5ODAwNjg0MDM0MTM3ODkyNDYxNTA1MDk0NDU3OTU1MTQxNjEwHhcNMjAwNjE5\nMTU1MjAzWhcNMjEwNjE5MTU1MjAzWjAcMRowGAYDVQQDExFzZXJ2ZXIuZGMxLmNv\nbnN1bDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH2aWaaa3fpQLBayheHiKlrH\n+z53m0frfGknKjOhOPVYDVHV8x0OE01negswVQbKHAtxPf1M8Zy+WbI9rK7Ua1mj\ngccwgcQwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\nBQcDAjAMBgNVHRMBAf8EAjAAMCkGA1UdDgQiBCDf9CPBSUwwZvpeW73oJLTmgQE2\ntW1NKpL5t1uq9WFcqDArBgNVHSMEJDAigCCPPd/NxgZB0tq2M8pdVpPj3Cr79iTv\ni4/T1ysodfMb7zAtBgNVHREEJjAkghFzZXJ2ZXIuZGMxLmNvbnN1bIIJbG9jYWxo\nb3N0hwR/AAABMAoGCCqGSM49BAMCA0cAMEQCIFCjFZAoXq0s2ied2eIBv0i1KoW5\nIhCylnKFt6iHkyDeAiBBCByTcjHRgEQmqyPojQKoO584EFiczTub9aWdnf9tEw==\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEINsen3S8xzxMrKcRZIvxXzhKDn43Tw9ttqWEFU9TqS5hoAoGCCqGSM49\nAwEHoUQDQgAEfZpZpprd+lAsFrKF4eIqWsf7PnebR+t8aScqM6E49VgNUdXzHQ4T\nTWd6CzBVBsocC3E9/UzxnL5Zsj2srtRrWQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filterChainMatch": { + "serverNames": [ + "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default.db.default", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICnTCCAkOgAwIBAgIRAKF+qDJbaOULNL1TIatrsBowCgYIKoZIzj0EAwIwgbkx\nCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNj\nbzEaMBgGA1UECRMRMTAxIFNlY29uZCBTdHJlZXQxDjAMBgNVBBETBTk0MTA1MRcw\nFQYDVQQKEw5IYXNoaUNvcnAgSW5jLjFAMD4GA1UEAxM3Q29uc3VsIEFnZW50IENB\nIDE4Nzg3MDAwNjUzMDcxOTYzNTk1ODkwNTE1ODY1NjEzMDA2MTU0NDAeFw0yMDA2\nMTkxNTMxMzRaFw0yMTA2MTkxNTMxMzRaMBwxGjAYBgNVBAMTEXNlcnZlci5kYzEu\nY29uc3VsMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdQ8Igci5f7ZvvCVsxXt9\ntLfvczD+60XHg0OC0+Aka7ZjQfbEjQwZbz/82EwPoS7Dqo3LTK4IuelOimoNNxuk\nkaOBxzCBxDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG\nAQUFBwMCMAwGA1UdEwEB/wQCMAAwKQYDVR0OBCIEILzTLkfJcdWQnTMKUcai/YJq\n0RqH1pjCqtY7SOU4gGOTMCsGA1UdIwQkMCKAIMa2vNcTEC5AGfHIYARJ/4sodX0o\nLzCj3lpw7BcEzPTcMC0GA1UdEQQmMCSCEXNlcnZlci5kYzEuY29uc3Vsgglsb2Nh\nbGhvc3SHBH8AAAEwCgYIKoZIzj0EAwIDSAAwRQIgBZ/Z4GSLEc98WvT/qjTVCNTG\n1WNaAaesVbkRx+J0yl8CIQDAVoqY9ByA5vKHjnQrxWlc/JUtJz8wudg7e/OCRriP\nSg==\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIN1v14FaNxgY4MgjDOOWthen8dgwB0lNMs9/j2TfrnxzoAoGCCqGSM49\nAwEHoUQDQgAEdQ8Igci5f7ZvvCVsxXt9tLfvczD+60XHg0OC0+Aka7ZjQfbEjQwZ\nbz/82EwPoS7Dqo3LTK4IuelOimoNNxukkQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filterChainMatch": { + "serverNames": [ + "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default.web.default", + "cluster": "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filters": [ + { + "name": "envoy.filters.network.sni_cluster" + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default", + "cluster": "" + } + } + ] + } + ], + "listenerFilters": [ + { + "name": "envoy.filters.listener.tls_inspector" + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/terminating-gateway-no-api-cert.envoy-1-16-x.golden b/agent/xds/testdata/listeners/terminating-gateway-no-api-cert.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/terminating-gateway-no-api-cert.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/terminating-gateway-no-api-cert.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/terminating-gateway-no-services.envoy-1-17-x.golden b/agent/xds/testdata/listeners/terminating-gateway-no-services.envoy-1-17-x.golden new file mode 100644 index 000000000..042527d73 --- /dev/null +++ b/agent/xds/testdata/listeners/terminating-gateway-no-services.envoy-1-17-x.golden @@ -0,0 +1,40 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "default:1.2.3.4:8443", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 8443 + } + }, + "filterChains": [ + { + "filters": [ + { + "name": "envoy.filters.network.sni_cluster" + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default", + "cluster": "" + } + } + ] + } + ], + "listenerFilters": [ + { + "name": "envoy.filters.listener.tls_inspector" + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/terminating-gateway-no-services.envoy-1-16-x.golden b/agent/xds/testdata/listeners/terminating-gateway-no-services.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/terminating-gateway-no-services.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/terminating-gateway-no-services.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/listeners/terminating-gateway-service-subsets.envoy-1-17-x.golden b/agent/xds/testdata/listeners/terminating-gateway-service-subsets.envoy-1-17-x.golden new file mode 100644 index 000000000..882d1f540 --- /dev/null +++ b/agent/xds/testdata/listeners/terminating-gateway-service-subsets.envoy-1-17-x.golden @@ -0,0 +1,415 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "default:1.2.3.4:8443", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 8443 + } + }, + "filterChains": [ + { + "filterChainMatch": { + "serverNames": [ + "api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default.api.default", + "cluster": "api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICnTCCAkKgAwIBAgIRAJrvEdaRAkSltrotd/l/j2cwCgYIKoZIzj0EAwIwgbgx\nCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNj\nbzEaMBgGA1UECRMRMTAxIFNlY29uZCBTdHJlZXQxDjAMBgNVBBETBTk0MTA1MRcw\nFQYDVQQKEw5IYXNoaUNvcnAgSW5jLjE/MD0GA1UEAxM2Q29uc3VsIEFnZW50IENB\nIDk2NjM4NzM1MDkzNTU5NTIwNDk3MTQwOTU3MDY1MTc0OTg3NDMxMB4XDTIwMDQx\nNDIyMzE1MloXDTIxMDQxNDIyMzE1MlowHDEaMBgGA1UEAxMRc2VydmVyLmRjMS5j\nb25zdWwwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ4v0FoIYI0OWmxE2MR6w5l\n0pWGhc02RpsOPj/6RS1fmXMMu7JzPzwCmkGcR16RlwwhNFKCZsWpvAjVRHf/pTp+\no4HHMIHEMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB\nBQUHAwIwDAYDVR0TAQH/BAIwADApBgNVHQ4EIgQgk7kABFitAy3PluyNtmzYiC7H\njSN8W/K/OXNJQAQAscMwKwYDVR0jBCQwIoAgNKbPPepvRHXSAPTc+a/BXBzFX1qJ\ny+Zi7qtjlFX7qtUwLQYDVR0RBCYwJIIRc2VydmVyLmRjMS5jb25zdWyCCWxvY2Fs\naG9zdIcEfwAAATAKBggqhkjOPQQDAgNJADBGAiEAhP4HmN5BWysWTbQWClXaWUah\nLpBGFrvc/2cCQuyEZKsCIQD6JyYCYMArtWwZ4G499zktxrFlqfX14bqyONrxtA5I\nDw==\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIE3KbKXHdsa0vvC1fysQaGdoJRgjRALIolI4XJanie+coAoGCCqGSM49\nAwEHoUQDQgAEOL9BaCGCNDlpsRNjEesOZdKVhoXNNkabDj4/+kUtX5lzDLuycz88\nAppBnEdekZcMITRSgmbFqbwI1UR3/6U6fg==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filterChainMatch": { + "serverNames": [ + "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default.cache.default", + "cluster": "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICmjCCAkGgAwIBAgIQe1ZmC0rzRwer6jaH1YIUIjAKBggqhkjOPQQDAjCBuDEL\nMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2Nv\nMRowGAYDVQQJExExMDEgU2Vjb25kIFN0cmVldDEOMAwGA1UEERMFOTQxMDUxFzAV\nBgNVBAoTDkhhc2hpQ29ycCBJbmMuMT8wPQYDVQQDEzZDb25zdWwgQWdlbnQgQ0Eg\nODE5ODAwNjg0MDM0MTM3ODkyNDYxNTA1MDk0NDU3OTU1MTQxNjEwHhcNMjAwNjE5\nMTU1MjAzWhcNMjEwNjE5MTU1MjAzWjAcMRowGAYDVQQDExFzZXJ2ZXIuZGMxLmNv\nbnN1bDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH2aWaaa3fpQLBayheHiKlrH\n+z53m0frfGknKjOhOPVYDVHV8x0OE01negswVQbKHAtxPf1M8Zy+WbI9rK7Ua1mj\ngccwgcQwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\nBQcDAjAMBgNVHRMBAf8EAjAAMCkGA1UdDgQiBCDf9CPBSUwwZvpeW73oJLTmgQE2\ntW1NKpL5t1uq9WFcqDArBgNVHSMEJDAigCCPPd/NxgZB0tq2M8pdVpPj3Cr79iTv\ni4/T1ysodfMb7zAtBgNVHREEJjAkghFzZXJ2ZXIuZGMxLmNvbnN1bIIJbG9jYWxo\nb3N0hwR/AAABMAoGCCqGSM49BAMCA0cAMEQCIFCjFZAoXq0s2ied2eIBv0i1KoW5\nIhCylnKFt6iHkyDeAiBBCByTcjHRgEQmqyPojQKoO584EFiczTub9aWdnf9tEw==\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEINsen3S8xzxMrKcRZIvxXzhKDn43Tw9ttqWEFU9TqS5hoAoGCCqGSM49\nAwEHoUQDQgAEfZpZpprd+lAsFrKF4eIqWsf7PnebR+t8aScqM6E49VgNUdXzHQ4T\nTWd6CzBVBsocC3E9/UzxnL5Zsj2srtRrWQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filterChainMatch": { + "serverNames": [ + "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default.db.default", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICnTCCAkOgAwIBAgIRAKF+qDJbaOULNL1TIatrsBowCgYIKoZIzj0EAwIwgbkx\nCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNj\nbzEaMBgGA1UECRMRMTAxIFNlY29uZCBTdHJlZXQxDjAMBgNVBBETBTk0MTA1MRcw\nFQYDVQQKEw5IYXNoaUNvcnAgSW5jLjFAMD4GA1UEAxM3Q29uc3VsIEFnZW50IENB\nIDE4Nzg3MDAwNjUzMDcxOTYzNTk1ODkwNTE1ODY1NjEzMDA2MTU0NDAeFw0yMDA2\nMTkxNTMxMzRaFw0yMTA2MTkxNTMxMzRaMBwxGjAYBgNVBAMTEXNlcnZlci5kYzEu\nY29uc3VsMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdQ8Igci5f7ZvvCVsxXt9\ntLfvczD+60XHg0OC0+Aka7ZjQfbEjQwZbz/82EwPoS7Dqo3LTK4IuelOimoNNxuk\nkaOBxzCBxDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG\nAQUFBwMCMAwGA1UdEwEB/wQCMAAwKQYDVR0OBCIEILzTLkfJcdWQnTMKUcai/YJq\n0RqH1pjCqtY7SOU4gGOTMCsGA1UdIwQkMCKAIMa2vNcTEC5AGfHIYARJ/4sodX0o\nLzCj3lpw7BcEzPTcMC0GA1UdEQQmMCSCEXNlcnZlci5kYzEuY29uc3Vsgglsb2Nh\nbGhvc3SHBH8AAAEwCgYIKoZIzj0EAwIDSAAwRQIgBZ/Z4GSLEc98WvT/qjTVCNTG\n1WNaAaesVbkRx+J0yl8CIQDAVoqY9ByA5vKHjnQrxWlc/JUtJz8wudg7e/OCRriP\nSg==\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIN1v14FaNxgY4MgjDOOWthen8dgwB0lNMs9/j2TfrnxzoAoGCCqGSM49\nAwEHoUQDQgAEdQ8Igci5f7ZvvCVsxXt9tLfvczD+60XHg0OC0+Aka7ZjQfbEjQwZ\nbz/82EwPoS7Dqo3LTK4IuelOimoNNxukkQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filterChainMatch": { + "serverNames": [ + "v1.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "terminating_gateway.default.web.default", + "rds": { + "configSource": { + "ads": { + + }, + "resourceApiVersion": "V3" + }, + "routeConfigName": "v1.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + }, + "httpFilters": [ + { + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", + "rules": { + + } + } + }, + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + } + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filterChainMatch": { + "serverNames": [ + "v2.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "terminating_gateway.default.web.default", + "rds": { + "configSource": { + "ads": { + + }, + "resourceApiVersion": "V3" + }, + "routeConfigName": "v2.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + }, + "httpFilters": [ + { + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", + "rules": { + + } + } + }, + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + } + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filterChainMatch": { + "serverNames": [ + "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.http_connection_manager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", + "statPrefix": "terminating_gateway.default.web.default", + "rds": { + "configSource": { + "ads": { + + }, + "resourceApiVersion": "V3" + }, + "routeConfigName": "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + }, + "httpFilters": [ + { + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", + "rules": { + + } + } + }, + { + "name": "envoy.filters.http.router" + } + ], + "tracing": { + "randomSampling": { + + } + } + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filters": [ + { + "name": "envoy.filters.network.sni_cluster" + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default", + "cluster": "" + } + } + ] + } + ], + "listenerFilters": [ + { + "name": "envoy.filters.listener.tls_inspector" + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/terminating-gateway-service-subsets.envoy-1-16-x.golden b/agent/xds/testdata/listeners/terminating-gateway-service-subsets.v2compat.envoy-1-17-x.golden similarity index 99% rename from agent/xds/testdata/listeners/terminating-gateway-service-subsets.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/terminating-gateway-service-subsets.v2compat.envoy-1-17-x.golden index c7f811fda..803233d6d 100644 --- a/agent/xds/testdata/listeners/terminating-gateway-service-subsets.envoy-1-16-x.golden +++ b/agent/xds/testdata/listeners/terminating-gateway-service-subsets.v2compat.envoy-1-17-x.golden @@ -189,7 +189,8 @@ "configSource": { "ads": { - } + }, + "resourceApiVersion": "V2" }, "routeConfigName": "v1.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" }, @@ -259,7 +260,8 @@ "configSource": { "ads": { - } + }, + "resourceApiVersion": "V2" }, "routeConfigName": "v2.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" }, @@ -329,7 +331,8 @@ "configSource": { "ads": { - } + }, + "resourceApiVersion": "V2" }, "routeConfigName": "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" }, diff --git a/agent/xds/testdata/listeners/terminating-gateway.envoy-1-17-x.golden b/agent/xds/testdata/listeners/terminating-gateway.envoy-1-17-x.golden new file mode 100644 index 000000000..098b015ed --- /dev/null +++ b/agent/xds/testdata/listeners/terminating-gateway.envoy-1-17-x.golden @@ -0,0 +1,256 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.listener.v3.Listener", + "name": "default:1.2.3.4:8443", + "address": { + "socketAddress": { + "address": "1.2.3.4", + "portValue": 8443 + } + }, + "filterChains": [ + { + "filterChainMatch": { + "serverNames": [ + "api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default.api.default", + "cluster": "api.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICnTCCAkKgAwIBAgIRAJrvEdaRAkSltrotd/l/j2cwCgYIKoZIzj0EAwIwgbgx\nCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNj\nbzEaMBgGA1UECRMRMTAxIFNlY29uZCBTdHJlZXQxDjAMBgNVBBETBTk0MTA1MRcw\nFQYDVQQKEw5IYXNoaUNvcnAgSW5jLjE/MD0GA1UEAxM2Q29uc3VsIEFnZW50IENB\nIDk2NjM4NzM1MDkzNTU5NTIwNDk3MTQwOTU3MDY1MTc0OTg3NDMxMB4XDTIwMDQx\nNDIyMzE1MloXDTIxMDQxNDIyMzE1MlowHDEaMBgGA1UEAxMRc2VydmVyLmRjMS5j\nb25zdWwwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ4v0FoIYI0OWmxE2MR6w5l\n0pWGhc02RpsOPj/6RS1fmXMMu7JzPzwCmkGcR16RlwwhNFKCZsWpvAjVRHf/pTp+\no4HHMIHEMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB\nBQUHAwIwDAYDVR0TAQH/BAIwADApBgNVHQ4EIgQgk7kABFitAy3PluyNtmzYiC7H\njSN8W/K/OXNJQAQAscMwKwYDVR0jBCQwIoAgNKbPPepvRHXSAPTc+a/BXBzFX1qJ\ny+Zi7qtjlFX7qtUwLQYDVR0RBCYwJIIRc2VydmVyLmRjMS5jb25zdWyCCWxvY2Fs\naG9zdIcEfwAAATAKBggqhkjOPQQDAgNJADBGAiEAhP4HmN5BWysWTbQWClXaWUah\nLpBGFrvc/2cCQuyEZKsCIQD6JyYCYMArtWwZ4G499zktxrFlqfX14bqyONrxtA5I\nDw==\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIE3KbKXHdsa0vvC1fysQaGdoJRgjRALIolI4XJanie+coAoGCCqGSM49\nAwEHoUQDQgAEOL9BaCGCNDlpsRNjEesOZdKVhoXNNkabDj4/+kUtX5lzDLuycz88\nAppBnEdekZcMITRSgmbFqbwI1UR3/6U6fg==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filterChainMatch": { + "serverNames": [ + "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default.cache.default", + "cluster": "cache.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICmjCCAkGgAwIBAgIQe1ZmC0rzRwer6jaH1YIUIjAKBggqhkjOPQQDAjCBuDEL\nMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2Nv\nMRowGAYDVQQJExExMDEgU2Vjb25kIFN0cmVldDEOMAwGA1UEERMFOTQxMDUxFzAV\nBgNVBAoTDkhhc2hpQ29ycCBJbmMuMT8wPQYDVQQDEzZDb25zdWwgQWdlbnQgQ0Eg\nODE5ODAwNjg0MDM0MTM3ODkyNDYxNTA1MDk0NDU3OTU1MTQxNjEwHhcNMjAwNjE5\nMTU1MjAzWhcNMjEwNjE5MTU1MjAzWjAcMRowGAYDVQQDExFzZXJ2ZXIuZGMxLmNv\nbnN1bDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH2aWaaa3fpQLBayheHiKlrH\n+z53m0frfGknKjOhOPVYDVHV8x0OE01negswVQbKHAtxPf1M8Zy+WbI9rK7Ua1mj\ngccwgcQwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\nBQcDAjAMBgNVHRMBAf8EAjAAMCkGA1UdDgQiBCDf9CPBSUwwZvpeW73oJLTmgQE2\ntW1NKpL5t1uq9WFcqDArBgNVHSMEJDAigCCPPd/NxgZB0tq2M8pdVpPj3Cr79iTv\ni4/T1ysodfMb7zAtBgNVHREEJjAkghFzZXJ2ZXIuZGMxLmNvbnN1bIIJbG9jYWxo\nb3N0hwR/AAABMAoGCCqGSM49BAMCA0cAMEQCIFCjFZAoXq0s2ied2eIBv0i1KoW5\nIhCylnKFt6iHkyDeAiBBCByTcjHRgEQmqyPojQKoO584EFiczTub9aWdnf9tEw==\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEINsen3S8xzxMrKcRZIvxXzhKDn43Tw9ttqWEFU9TqS5hoAoGCCqGSM49\nAwEHoUQDQgAEfZpZpprd+lAsFrKF4eIqWsf7PnebR+t8aScqM6E49VgNUdXzHQ4T\nTWd6CzBVBsocC3E9/UzxnL5Zsj2srtRrWQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filterChainMatch": { + "serverNames": [ + "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default.db.default", + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICnTCCAkOgAwIBAgIRAKF+qDJbaOULNL1TIatrsBowCgYIKoZIzj0EAwIwgbkx\nCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNj\nbzEaMBgGA1UECRMRMTAxIFNlY29uZCBTdHJlZXQxDjAMBgNVBBETBTk0MTA1MRcw\nFQYDVQQKEw5IYXNoaUNvcnAgSW5jLjFAMD4GA1UEAxM3Q29uc3VsIEFnZW50IENB\nIDE4Nzg3MDAwNjUzMDcxOTYzNTk1ODkwNTE1ODY1NjEzMDA2MTU0NDAeFw0yMDA2\nMTkxNTMxMzRaFw0yMTA2MTkxNTMxMzRaMBwxGjAYBgNVBAMTEXNlcnZlci5kYzEu\nY29uc3VsMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdQ8Igci5f7ZvvCVsxXt9\ntLfvczD+60XHg0OC0+Aka7ZjQfbEjQwZbz/82EwPoS7Dqo3LTK4IuelOimoNNxuk\nkaOBxzCBxDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG\nAQUFBwMCMAwGA1UdEwEB/wQCMAAwKQYDVR0OBCIEILzTLkfJcdWQnTMKUcai/YJq\n0RqH1pjCqtY7SOU4gGOTMCsGA1UdIwQkMCKAIMa2vNcTEC5AGfHIYARJ/4sodX0o\nLzCj3lpw7BcEzPTcMC0GA1UdEQQmMCSCEXNlcnZlci5kYzEuY29uc3Vsgglsb2Nh\nbGhvc3SHBH8AAAEwCgYIKoZIzj0EAwIDSAAwRQIgBZ/Z4GSLEc98WvT/qjTVCNTG\n1WNaAaesVbkRx+J0yl8CIQDAVoqY9ByA5vKHjnQrxWlc/JUtJz8wudg7e/OCRriP\nSg==\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIN1v14FaNxgY4MgjDOOWthen8dgwB0lNMs9/j2TfrnxzoAoGCCqGSM49\nAwEHoUQDQgAEdQ8Igci5f7ZvvCVsxXt9tLfvczD+60XHg0OC0+Aka7ZjQfbEjQwZ\nbz/82EwPoS7Dqo3LTK4IuelOimoNNxukkQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filterChainMatch": { + "serverNames": [ + "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + ] + }, + "filters": [ + { + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default.web.default", + "cluster": "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ], + "transportSocket": { + "name": "tls", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext", + "commonTlsContext": { + "tlsParams": { + + }, + "tlsCertificates": [ + { + "certificateChain": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICjDCCAjKgAwIBAgIIC5llxGV1gB8wCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowDjEMMAoG\nA1UEAxMDd2ViMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEADPv1RHVNRfa2VKR\nAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Favq5E0ivpNtv1QnFhxtPd7d5k4e+T7\nSkW1TaOCAXIwggFuMA4GA1UdDwEB/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcD\nAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBoBgNVHQ4EYQRfN2Q6MDc6ODc6M2E6\nNDA6MTk6NDc6YzM6NWE6YzA6YmE6NjI6ZGY6YWY6NGI6ZDQ6MDU6MjU6NzY6M2Q6\nNWE6OGQ6MTY6OGQ6Njc6NWU6MmU6YTA6MzQ6N2Q6ZGM6ZmYwagYDVR0jBGMwYYBf\nZDE6MTE6MTE6YWM6MmE6YmE6OTc6YjI6M2Y6YWM6N2I6YmQ6ZGE6YmU6YjE6OGE6\nZmM6OWE6YmE6YjU6YmM6ODM6ZTc6NWU6NDE6NmY6ZjI6NzM6OTU6NTg6MGM6ZGIw\nWQYDVR0RBFIwUIZOc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9ucy9kZWZhdWx0L2RjL2RjMS9zdmMvd2ViMAoGCCqG\nSM49BAMCA0gAMEUCIGC3TTvvjj76KMrguVyFf4tjOqaSCRie3nmHMRNNRav7AiEA\npY0heYeK9A6iOLrzqxSerkXXQyj5e9bE4VgUnxgPU6g=\n-----END CERTIFICATE-----\n" + }, + "privateKey": { + "inlineString": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIMoTkpRggp3fqZzFKh82yS4LjtJI+XY+qX/7DefHFrtdoAoGCCqGSM49\nAwEHoUQDQgAEADPv1RHVNRfa2VKRAB16b6rZnEt7tuhaxCFpQXPj7M2omb0B9Fav\nq5E0ivpNtv1QnFhxtPd7d5k4e+T7SkW1TQ==\n-----END EC PRIVATE KEY-----\n" + } + } + ], + "validationContext": { + "trustedCa": { + "inlineString": "-----BEGIN CERTIFICATE-----\nMIICXDCCAgKgAwIBAgIICpZq70Z9LyUwCgYIKoZIzj0EAwIwFDESMBAGA1UEAxMJ\nVGVzdCBDQSAyMB4XDTE5MDMyMjEzNTgyNloXDTI5MDMyMjEzNTgyNlowFDESMBAG\nA1UEAxMJVGVzdCBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIhywH1gx\nAsMwuF3ukAI5YL2jFxH6Usnma1HFSfVyxbXX1/uoZEYrj8yCAtdU2yoHETyd+Zx2\nThhRLP79pYegCaOCATwwggE4MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD\nAQH/MGgGA1UdDgRhBF9kMToxMToxMTphYzoyYTpiYTo5NzpiMjozZjphYzo3Yjpi\nZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1ZTo0MTo2ZjpmMjo3\nMzo5NTo1ODowYzpkYjBqBgNVHSMEYzBhgF9kMToxMToxMTphYzoyYTpiYTo5Nzpi\nMjozZjphYzo3YjpiZDpkYTpiZTpiMTo4YTpmYzo5YTpiYTpiNTpiYzo4MzplNzo1\nZTo0MTo2ZjpmMjo3Mzo5NTo1ODowYzpkYjA/BgNVHREEODA2hjRzcGlmZmU6Ly8x\nMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTUuY29uc3VsMAoGCCqG\nSM49BAMCA0gAMEUCICOY0i246rQHJt8o8Oya0D5PLL1FnmsQmQqIGCi31RwnAiEA\noR5f6Ku+cig2Il8T8LJujOp2/2A72QcHZA57B13y+8o=\n-----END CERTIFICATE-----\n" + } + } + }, + "requireClientCertificate": true + } + } + }, + { + "filters": [ + { + "name": "envoy.filters.network.sni_cluster" + }, + { + "name": "envoy.filters.network.tcp_proxy", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy", + "statPrefix": "terminating_gateway.default", + "cluster": "" + } + } + ] + } + ], + "listenerFilters": [ + { + "name": "envoy.filters.listener.tls_inspector" + } + ], + "trafficDirection": "INBOUND" + } + ], + "typeUrl": "type.googleapis.com/envoy.config.listener.v3.Listener", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/listeners/terminating-gateway.envoy-1-16-x.golden b/agent/xds/testdata/listeners/terminating-gateway.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/listeners/terminating-gateway.envoy-1-16-x.golden rename to agent/xds/testdata/listeners/terminating-gateway.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/rbac/default-allow-kitchen-sink--httpfilter.golden b/agent/xds/testdata/rbac/default-allow-kitchen-sink--httpfilter.golden index 9952607f8..714203229 100644 --- a/agent/xds/testdata/rbac/default-allow-kitchen-sink--httpfilter.golden +++ b/agent/xds/testdata/rbac/default-allow-kitchen-sink--httpfilter.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.http.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", "rules": { "action": "DENY", "policies": { diff --git a/agent/xds/testdata/rbac/default-allow-kitchen-sink--httpfilter.v2compat.golden b/agent/xds/testdata/rbac/default-allow-kitchen-sink--httpfilter.v2compat.golden new file mode 100644 index 000000000..9952607f8 --- /dev/null +++ b/agent/xds/testdata/rbac/default-allow-kitchen-sink--httpfilter.v2compat.golden @@ -0,0 +1,104 @@ +{ + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "rules": { + "action": "DENY", + "policies": { + "consul-intentions-layer4": { + "permissions": [ + { + "any": true + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/cron$" + } + } + } + }, + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + }, + { + "andIds": { + "ids": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/[^/]+$" + } + } + } + }, + { + "notId": { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + } + }, + { + "notId": { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/unsafe$" + } + } + } + } + }, + { + "notId": { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/cron$" + } + } + } + } + } + ] + } + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-allow-kitchen-sink.golden b/agent/xds/testdata/rbac/default-allow-kitchen-sink.golden index 9e40be461..a85359a55 100644 --- a/agent/xds/testdata/rbac/default-allow-kitchen-sink.golden +++ b/agent/xds/testdata/rbac/default-allow-kitchen-sink.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.network.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", "rules": { "action": "DENY", "policies": { diff --git a/agent/xds/testdata/rbac/default-allow-kitchen-sink.v2compat.golden b/agent/xds/testdata/rbac/default-allow-kitchen-sink.v2compat.golden new file mode 100644 index 000000000..9e40be461 --- /dev/null +++ b/agent/xds/testdata/rbac/default-allow-kitchen-sink.v2compat.golden @@ -0,0 +1,105 @@ +{ + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "rules": { + "action": "DENY", + "policies": { + "consul-intentions-layer4": { + "permissions": [ + { + "any": true + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/cron$" + } + } + } + }, + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + }, + { + "andIds": { + "ids": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/[^/]+$" + } + } + } + }, + { + "notId": { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + } + }, + { + "notId": { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/unsafe$" + } + } + } + } + }, + { + "notId": { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/cron$" + } + } + } + } + } + ] + } + } + ] + } + } + }, + "statPrefix": "connect_authz" + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-allow-one-deny--httpfilter.golden b/agent/xds/testdata/rbac/default-allow-one-deny--httpfilter.golden index 4aed59c2a..72be1fe60 100644 --- a/agent/xds/testdata/rbac/default-allow-one-deny--httpfilter.golden +++ b/agent/xds/testdata/rbac/default-allow-one-deny--httpfilter.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.http.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", "rules": { "action": "DENY", "policies": { diff --git a/agent/xds/testdata/rbac/default-allow-one-deny--httpfilter.v2compat.golden b/agent/xds/testdata/rbac/default-allow-one-deny--httpfilter.v2compat.golden new file mode 100644 index 000000000..4aed59c2a --- /dev/null +++ b/agent/xds/testdata/rbac/default-allow-one-deny--httpfilter.v2compat.golden @@ -0,0 +1,32 @@ +{ + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "rules": { + "action": "DENY", + "policies": { + "consul-intentions-layer4": { + "permissions": [ + { + "any": true + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-allow-one-deny.golden b/agent/xds/testdata/rbac/default-allow-one-deny.golden index 73e3dae6e..05dca90f8 100644 --- a/agent/xds/testdata/rbac/default-allow-one-deny.golden +++ b/agent/xds/testdata/rbac/default-allow-one-deny.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.network.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", "rules": { "action": "DENY", "policies": { diff --git a/agent/xds/testdata/rbac/default-allow-one-deny.v2compat.golden b/agent/xds/testdata/rbac/default-allow-one-deny.v2compat.golden new file mode 100644 index 000000000..73e3dae6e --- /dev/null +++ b/agent/xds/testdata/rbac/default-allow-one-deny.v2compat.golden @@ -0,0 +1,33 @@ +{ + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "rules": { + "action": "DENY", + "policies": { + "consul-intentions-layer4": { + "permissions": [ + { + "any": true + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + } + ] + } + } + }, + "statPrefix": "connect_authz" + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-allow-service-wildcard-deny--httpfilter.golden b/agent/xds/testdata/rbac/default-allow-service-wildcard-deny--httpfilter.golden index 90c2b0487..be70c6725 100644 --- a/agent/xds/testdata/rbac/default-allow-service-wildcard-deny--httpfilter.golden +++ b/agent/xds/testdata/rbac/default-allow-service-wildcard-deny--httpfilter.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.http.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", "rules": { "action": "DENY", "policies": { diff --git a/agent/xds/testdata/rbac/default-allow-service-wildcard-deny--httpfilter.v2compat.golden b/agent/xds/testdata/rbac/default-allow-service-wildcard-deny--httpfilter.v2compat.golden new file mode 100644 index 000000000..90c2b0487 --- /dev/null +++ b/agent/xds/testdata/rbac/default-allow-service-wildcard-deny--httpfilter.v2compat.golden @@ -0,0 +1,32 @@ +{ + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "rules": { + "action": "DENY", + "policies": { + "consul-intentions-layer4": { + "permissions": [ + { + "any": true + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/[^/]+$" + } + } + } + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-allow-service-wildcard-deny.golden b/agent/xds/testdata/rbac/default-allow-service-wildcard-deny.golden index cbe37c55c..1951818cd 100644 --- a/agent/xds/testdata/rbac/default-allow-service-wildcard-deny.golden +++ b/agent/xds/testdata/rbac/default-allow-service-wildcard-deny.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.network.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", "rules": { "action": "DENY", "policies": { diff --git a/agent/xds/testdata/rbac/default-allow-service-wildcard-deny.v2compat.golden b/agent/xds/testdata/rbac/default-allow-service-wildcard-deny.v2compat.golden new file mode 100644 index 000000000..cbe37c55c --- /dev/null +++ b/agent/xds/testdata/rbac/default-allow-service-wildcard-deny.v2compat.golden @@ -0,0 +1,33 @@ +{ + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "rules": { + "action": "DENY", + "policies": { + "consul-intentions-layer4": { + "permissions": [ + { + "any": true + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/[^/]+$" + } + } + } + } + ] + } + } + }, + "statPrefix": "connect_authz" + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-allow-single-intention-with-kitchen-sink-perms--httpfilter.golden b/agent/xds/testdata/rbac/default-allow-single-intention-with-kitchen-sink-perms--httpfilter.golden index ab2d28f91..a3945edbb 100644 --- a/agent/xds/testdata/rbac/default-allow-single-intention-with-kitchen-sink-perms--httpfilter.golden +++ b/agent/xds/testdata/rbac/default-allow-single-intention-with-kitchen-sink-perms--httpfilter.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.http.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", "rules": { "action": "DENY", "policies": { diff --git a/agent/xds/testdata/rbac/default-allow-single-intention-with-kitchen-sink-perms--httpfilter.v2compat.golden b/agent/xds/testdata/rbac/default-allow-single-intention-with-kitchen-sink-perms--httpfilter.v2compat.golden new file mode 100644 index 000000000..ab2d28f91 --- /dev/null +++ b/agent/xds/testdata/rbac/default-allow-single-intention-with-kitchen-sink-perms--httpfilter.v2compat.golden @@ -0,0 +1,240 @@ +{ + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "rules": { + "action": "DENY", + "policies": { + "consul-intentions-layer7-0": { + "permissions": [ + { + "andRules": { + "rules": [ + { + "urlPath": { + "path": { + "prefix": "/v1" + } + } + }, + { + "notRule": { + "urlPath": { + "path": { + "exact": "/v1/secret" + } + } + } + } + ] + } + }, + { + "andRules": { + "rules": [ + { + "andRules": { + "rules": [ + { + "urlPath": { + "path": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "/v[123]" + } + } + } + }, + { + "header": { + "name": ":method", + "safeRegexMatch": { + "googleRe2": { + + }, + "regex": "GET|HEAD|OPTIONS" + } + } + } + ] + } + }, + { + "notRule": { + "urlPath": { + "path": { + "prefix": "/v1" + } + } + } + }, + { + "notRule": { + "urlPath": { + "path": { + "exact": "/v1/secret" + } + } + } + } + ] + } + }, + { + "andRules": { + "rules": [ + { + "andRules": { + "rules": [ + { + "header": { + "name": "x-foo", + "presentMatch": true + } + }, + { + "header": { + "name": "x-bar", + "exactMatch": "xyz" + } + }, + { + "header": { + "name": "x-dib", + "prefixMatch": "gaz" + } + }, + { + "header": { + "name": "x-gir", + "suffixMatch": "zim" + } + }, + { + "header": { + "name": "x-zim", + "safeRegexMatch": { + "googleRe2": { + + }, + "regex": "gi[rR]" + } + } + }, + { + "header": { + "name": "z-foo", + "presentMatch": true, + "invertMatch": true + } + }, + { + "header": { + "name": "z-bar", + "exactMatch": "xyz", + "invertMatch": true + } + }, + { + "header": { + "name": "z-dib", + "prefixMatch": "gaz", + "invertMatch": true + } + }, + { + "header": { + "name": "z-gir", + "suffixMatch": "zim", + "invertMatch": true + } + }, + { + "header": { + "name": "z-zim", + "safeRegexMatch": { + "googleRe2": { + + }, + "regex": "gi[rR]" + }, + "invertMatch": true + } + } + ] + } + }, + { + "notRule": { + "andRules": { + "rules": [ + { + "urlPath": { + "path": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "/v[123]" + } + } + } + }, + { + "header": { + "name": ":method", + "safeRegexMatch": { + "googleRe2": { + + }, + "regex": "GET|HEAD|OPTIONS" + } + } + } + ] + } + } + }, + { + "notRule": { + "urlPath": { + "path": { + "prefix": "/v1" + } + } + } + }, + { + "notRule": { + "urlPath": { + "path": { + "exact": "/v1/secret" + } + } + } + } + ] + } + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-allow-single-intention-with-kitchen-sink-perms.golden b/agent/xds/testdata/rbac/default-allow-single-intention-with-kitchen-sink-perms.golden index 73e3dae6e..05dca90f8 100644 --- a/agent/xds/testdata/rbac/default-allow-single-intention-with-kitchen-sink-perms.golden +++ b/agent/xds/testdata/rbac/default-allow-single-intention-with-kitchen-sink-perms.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.network.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", "rules": { "action": "DENY", "policies": { diff --git a/agent/xds/testdata/rbac/default-allow-single-intention-with-kitchen-sink-perms.v2compat.golden b/agent/xds/testdata/rbac/default-allow-single-intention-with-kitchen-sink-perms.v2compat.golden new file mode 100644 index 000000000..73e3dae6e --- /dev/null +++ b/agent/xds/testdata/rbac/default-allow-single-intention-with-kitchen-sink-perms.v2compat.golden @@ -0,0 +1,33 @@ +{ + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "rules": { + "action": "DENY", + "policies": { + "consul-intentions-layer4": { + "permissions": [ + { + "any": true + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + } + ] + } + } + }, + "statPrefix": "connect_authz" + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-allow-two-path-deny-and-path-allow--httpfilter.golden b/agent/xds/testdata/rbac/default-allow-two-path-deny-and-path-allow--httpfilter.golden index 85bbbdd02..8eb2021cc 100644 --- a/agent/xds/testdata/rbac/default-allow-two-path-deny-and-path-allow--httpfilter.golden +++ b/agent/xds/testdata/rbac/default-allow-two-path-deny-and-path-allow--httpfilter.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.http.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", "rules": { "action": "DENY", "policies": { diff --git a/agent/xds/testdata/rbac/default-allow-two-path-deny-and-path-allow--httpfilter.v2compat.golden b/agent/xds/testdata/rbac/default-allow-two-path-deny-and-path-allow--httpfilter.v2compat.golden new file mode 100644 index 000000000..85bbbdd02 --- /dev/null +++ b/agent/xds/testdata/rbac/default-allow-two-path-deny-and-path-allow--httpfilter.v2compat.golden @@ -0,0 +1,58 @@ +{ + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "rules": { + "action": "DENY", + "policies": { + "consul-intentions-layer7-0": { + "permissions": [ + { + "urlPath": { + "path": { + "exact": "/v1/secret" + } + } + }, + { + "andRules": { + "rules": [ + { + "urlPath": { + "path": { + "exact": "/v1/admin" + } + } + }, + { + "notRule": { + "urlPath": { + "path": { + "exact": "/v1/secret" + } + } + } + } + ] + } + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-allow-two-path-deny-and-path-allow.golden b/agent/xds/testdata/rbac/default-allow-two-path-deny-and-path-allow.golden index 73e3dae6e..05dca90f8 100644 --- a/agent/xds/testdata/rbac/default-allow-two-path-deny-and-path-allow.golden +++ b/agent/xds/testdata/rbac/default-allow-two-path-deny-and-path-allow.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.network.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", "rules": { "action": "DENY", "policies": { diff --git a/agent/xds/testdata/rbac/default-allow-two-path-deny-and-path-allow.v2compat.golden b/agent/xds/testdata/rbac/default-allow-two-path-deny-and-path-allow.v2compat.golden new file mode 100644 index 000000000..73e3dae6e --- /dev/null +++ b/agent/xds/testdata/rbac/default-allow-two-path-deny-and-path-allow.v2compat.golden @@ -0,0 +1,33 @@ +{ + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "rules": { + "action": "DENY", + "policies": { + "consul-intentions-layer4": { + "permissions": [ + { + "any": true + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + } + ] + } + } + }, + "statPrefix": "connect_authz" + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-deny-allow-deny--httpfilter.golden b/agent/xds/testdata/rbac/default-deny-allow-deny--httpfilter.golden index 26704edc1..ee099df84 100644 --- a/agent/xds/testdata/rbac/default-deny-allow-deny--httpfilter.golden +++ b/agent/xds/testdata/rbac/default-deny-allow-deny--httpfilter.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.http.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", "rules": { "policies": { "consul-intentions-layer4": { diff --git a/agent/xds/testdata/rbac/default-deny-allow-deny--httpfilter.v2compat.golden b/agent/xds/testdata/rbac/default-deny-allow-deny--httpfilter.v2compat.golden new file mode 100644 index 000000000..26704edc1 --- /dev/null +++ b/agent/xds/testdata/rbac/default-deny-allow-deny--httpfilter.v2compat.golden @@ -0,0 +1,51 @@ +{ + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "rules": { + "policies": { + "consul-intentions-layer4": { + "permissions": [ + { + "any": true + } + ], + "principals": [ + { + "andIds": { + "ids": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/[^/]+$" + } + } + } + }, + { + "notId": { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + } + } + ] + } + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-deny-allow-deny.golden b/agent/xds/testdata/rbac/default-deny-allow-deny.golden index 877ea91d5..b92c68935 100644 --- a/agent/xds/testdata/rbac/default-deny-allow-deny.golden +++ b/agent/xds/testdata/rbac/default-deny-allow-deny.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.network.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", "rules": { "policies": { "consul-intentions-layer4": { diff --git a/agent/xds/testdata/rbac/default-deny-allow-deny.v2compat.golden b/agent/xds/testdata/rbac/default-deny-allow-deny.v2compat.golden new file mode 100644 index 000000000..877ea91d5 --- /dev/null +++ b/agent/xds/testdata/rbac/default-deny-allow-deny.v2compat.golden @@ -0,0 +1,52 @@ +{ + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "rules": { + "policies": { + "consul-intentions-layer4": { + "permissions": [ + { + "any": true + } + ], + "principals": [ + { + "andIds": { + "ids": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/[^/]+$" + } + } + } + }, + { + "notId": { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + } + } + ] + } + } + ] + } + } + }, + "statPrefix": "connect_authz" + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-deny-kitchen-sink--httpfilter.golden b/agent/xds/testdata/rbac/default-deny-kitchen-sink--httpfilter.golden index 2e6b7f5c1..f61f892d4 100644 --- a/agent/xds/testdata/rbac/default-deny-kitchen-sink--httpfilter.golden +++ b/agent/xds/testdata/rbac/default-deny-kitchen-sink--httpfilter.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.http.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", "rules": { "policies": { "consul-intentions-layer4": { diff --git a/agent/xds/testdata/rbac/default-deny-kitchen-sink--httpfilter.v2compat.golden b/agent/xds/testdata/rbac/default-deny-kitchen-sink--httpfilter.v2compat.golden new file mode 100644 index 000000000..2e6b7f5c1 --- /dev/null +++ b/agent/xds/testdata/rbac/default-deny-kitchen-sink--httpfilter.v2compat.golden @@ -0,0 +1,103 @@ +{ + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "rules": { + "policies": { + "consul-intentions-layer4": { + "permissions": [ + { + "any": true + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/cron$" + } + } + } + }, + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + }, + { + "andIds": { + "ids": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/[^/]+$" + } + } + } + }, + { + "notId": { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + } + }, + { + "notId": { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/unsafe$" + } + } + } + } + }, + { + "notId": { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/cron$" + } + } + } + } + } + ] + } + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-deny-kitchen-sink.golden b/agent/xds/testdata/rbac/default-deny-kitchen-sink.golden index 8435f7306..30d56485c 100644 --- a/agent/xds/testdata/rbac/default-deny-kitchen-sink.golden +++ b/agent/xds/testdata/rbac/default-deny-kitchen-sink.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.network.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", "rules": { "policies": { "consul-intentions-layer4": { diff --git a/agent/xds/testdata/rbac/default-deny-kitchen-sink.v2compat.golden b/agent/xds/testdata/rbac/default-deny-kitchen-sink.v2compat.golden new file mode 100644 index 000000000..8435f7306 --- /dev/null +++ b/agent/xds/testdata/rbac/default-deny-kitchen-sink.v2compat.golden @@ -0,0 +1,104 @@ +{ + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "rules": { + "policies": { + "consul-intentions-layer4": { + "permissions": [ + { + "any": true + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/cron$" + } + } + } + }, + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + }, + { + "andIds": { + "ids": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/[^/]+$" + } + } + } + }, + { + "notId": { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + } + }, + { + "notId": { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/unsafe$" + } + } + } + } + }, + { + "notId": { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/cron$" + } + } + } + } + } + ] + } + } + ] + } + } + }, + "statPrefix": "connect_authz" + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-deny-mixed-precedence--httpfilter.golden b/agent/xds/testdata/rbac/default-deny-mixed-precedence--httpfilter.golden index a75619b01..a37549e5e 100644 --- a/agent/xds/testdata/rbac/default-deny-mixed-precedence--httpfilter.golden +++ b/agent/xds/testdata/rbac/default-deny-mixed-precedence--httpfilter.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.http.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", "rules": { "policies": { "consul-intentions-layer4": { diff --git a/agent/xds/testdata/rbac/default-deny-mixed-precedence--httpfilter.v2compat.golden b/agent/xds/testdata/rbac/default-deny-mixed-precedence--httpfilter.v2compat.golden new file mode 100644 index 000000000..a75619b01 --- /dev/null +++ b/agent/xds/testdata/rbac/default-deny-mixed-precedence--httpfilter.v2compat.golden @@ -0,0 +1,31 @@ +{ + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "rules": { + "policies": { + "consul-intentions-layer4": { + "permissions": [ + { + "any": true + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-deny-mixed-precedence.golden b/agent/xds/testdata/rbac/default-deny-mixed-precedence.golden index b0c09ffe6..4bc3c7378 100644 --- a/agent/xds/testdata/rbac/default-deny-mixed-precedence.golden +++ b/agent/xds/testdata/rbac/default-deny-mixed-precedence.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.network.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", "rules": { "policies": { "consul-intentions-layer4": { diff --git a/agent/xds/testdata/rbac/default-deny-mixed-precedence.v2compat.golden b/agent/xds/testdata/rbac/default-deny-mixed-precedence.v2compat.golden new file mode 100644 index 000000000..b0c09ffe6 --- /dev/null +++ b/agent/xds/testdata/rbac/default-deny-mixed-precedence.v2compat.golden @@ -0,0 +1,32 @@ +{ + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "rules": { + "policies": { + "consul-intentions-layer4": { + "permissions": [ + { + "any": true + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + } + ] + } + } + }, + "statPrefix": "connect_authz" + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-deny-one-allow--httpfilter.golden b/agent/xds/testdata/rbac/default-deny-one-allow--httpfilter.golden index a75619b01..a37549e5e 100644 --- a/agent/xds/testdata/rbac/default-deny-one-allow--httpfilter.golden +++ b/agent/xds/testdata/rbac/default-deny-one-allow--httpfilter.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.http.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", "rules": { "policies": { "consul-intentions-layer4": { diff --git a/agent/xds/testdata/rbac/default-deny-one-allow--httpfilter.v2compat.golden b/agent/xds/testdata/rbac/default-deny-one-allow--httpfilter.v2compat.golden new file mode 100644 index 000000000..a75619b01 --- /dev/null +++ b/agent/xds/testdata/rbac/default-deny-one-allow--httpfilter.v2compat.golden @@ -0,0 +1,31 @@ +{ + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "rules": { + "policies": { + "consul-intentions-layer4": { + "permissions": [ + { + "any": true + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-deny-one-allow.golden b/agent/xds/testdata/rbac/default-deny-one-allow.golden index b0c09ffe6..4bc3c7378 100644 --- a/agent/xds/testdata/rbac/default-deny-one-allow.golden +++ b/agent/xds/testdata/rbac/default-deny-one-allow.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.network.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", "rules": { "policies": { "consul-intentions-layer4": { diff --git a/agent/xds/testdata/rbac/default-deny-one-allow.v2compat.golden b/agent/xds/testdata/rbac/default-deny-one-allow.v2compat.golden new file mode 100644 index 000000000..b0c09ffe6 --- /dev/null +++ b/agent/xds/testdata/rbac/default-deny-one-allow.v2compat.golden @@ -0,0 +1,32 @@ +{ + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "rules": { + "policies": { + "consul-intentions-layer4": { + "permissions": [ + { + "any": true + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + } + ] + } + } + }, + "statPrefix": "connect_authz" + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-deny-service-wildcard-allow--httpfilter.golden b/agent/xds/testdata/rbac/default-deny-service-wildcard-allow--httpfilter.golden index 8e0e7069f..365f970c5 100644 --- a/agent/xds/testdata/rbac/default-deny-service-wildcard-allow--httpfilter.golden +++ b/agent/xds/testdata/rbac/default-deny-service-wildcard-allow--httpfilter.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.http.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", "rules": { "policies": { "consul-intentions-layer4": { diff --git a/agent/xds/testdata/rbac/default-deny-service-wildcard-allow--httpfilter.v2compat.golden b/agent/xds/testdata/rbac/default-deny-service-wildcard-allow--httpfilter.v2compat.golden new file mode 100644 index 000000000..8e0e7069f --- /dev/null +++ b/agent/xds/testdata/rbac/default-deny-service-wildcard-allow--httpfilter.v2compat.golden @@ -0,0 +1,31 @@ +{ + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "rules": { + "policies": { + "consul-intentions-layer4": { + "permissions": [ + { + "any": true + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/[^/]+$" + } + } + } + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-deny-service-wildcard-allow.golden b/agent/xds/testdata/rbac/default-deny-service-wildcard-allow.golden index 0a47229cd..fd8445265 100644 --- a/agent/xds/testdata/rbac/default-deny-service-wildcard-allow.golden +++ b/agent/xds/testdata/rbac/default-deny-service-wildcard-allow.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.network.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", "rules": { "policies": { "consul-intentions-layer4": { diff --git a/agent/xds/testdata/rbac/default-deny-service-wildcard-allow.v2compat.golden b/agent/xds/testdata/rbac/default-deny-service-wildcard-allow.v2compat.golden new file mode 100644 index 000000000..0a47229cd --- /dev/null +++ b/agent/xds/testdata/rbac/default-deny-service-wildcard-allow.v2compat.golden @@ -0,0 +1,32 @@ +{ + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "rules": { + "policies": { + "consul-intentions-layer4": { + "permissions": [ + { + "any": true + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/[^/]+$" + } + } + } + } + ] + } + } + }, + "statPrefix": "connect_authz" + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-deny-single-intention-with-kitchen-sink-perms--httpfilter.golden b/agent/xds/testdata/rbac/default-deny-single-intention-with-kitchen-sink-perms--httpfilter.golden index 43bfb325d..694f5858f 100644 --- a/agent/xds/testdata/rbac/default-deny-single-intention-with-kitchen-sink-perms--httpfilter.golden +++ b/agent/xds/testdata/rbac/default-deny-single-intention-with-kitchen-sink-perms--httpfilter.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.http.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", "rules": { "policies": { "consul-intentions-layer7-0": { diff --git a/agent/xds/testdata/rbac/default-deny-single-intention-with-kitchen-sink-perms--httpfilter.v2compat.golden b/agent/xds/testdata/rbac/default-deny-single-intention-with-kitchen-sink-perms--httpfilter.v2compat.golden new file mode 100644 index 000000000..43bfb325d --- /dev/null +++ b/agent/xds/testdata/rbac/default-deny-single-intention-with-kitchen-sink-perms--httpfilter.v2compat.golden @@ -0,0 +1,239 @@ +{ + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "rules": { + "policies": { + "consul-intentions-layer7-0": { + "permissions": [ + { + "andRules": { + "rules": [ + { + "urlPath": { + "path": { + "prefix": "/v1" + } + } + }, + { + "notRule": { + "urlPath": { + "path": { + "exact": "/v1/secret" + } + } + } + } + ] + } + }, + { + "andRules": { + "rules": [ + { + "andRules": { + "rules": [ + { + "urlPath": { + "path": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "/v[123]" + } + } + } + }, + { + "header": { + "name": ":method", + "safeRegexMatch": { + "googleRe2": { + + }, + "regex": "GET|HEAD|OPTIONS" + } + } + } + ] + } + }, + { + "notRule": { + "urlPath": { + "path": { + "prefix": "/v1" + } + } + } + }, + { + "notRule": { + "urlPath": { + "path": { + "exact": "/v1/secret" + } + } + } + } + ] + } + }, + { + "andRules": { + "rules": [ + { + "andRules": { + "rules": [ + { + "header": { + "name": "x-foo", + "presentMatch": true + } + }, + { + "header": { + "name": "x-bar", + "exactMatch": "xyz" + } + }, + { + "header": { + "name": "x-dib", + "prefixMatch": "gaz" + } + }, + { + "header": { + "name": "x-gir", + "suffixMatch": "zim" + } + }, + { + "header": { + "name": "x-zim", + "safeRegexMatch": { + "googleRe2": { + + }, + "regex": "gi[rR]" + } + } + }, + { + "header": { + "name": "z-foo", + "presentMatch": true, + "invertMatch": true + } + }, + { + "header": { + "name": "z-bar", + "exactMatch": "xyz", + "invertMatch": true + } + }, + { + "header": { + "name": "z-dib", + "prefixMatch": "gaz", + "invertMatch": true + } + }, + { + "header": { + "name": "z-gir", + "suffixMatch": "zim", + "invertMatch": true + } + }, + { + "header": { + "name": "z-zim", + "safeRegexMatch": { + "googleRe2": { + + }, + "regex": "gi[rR]" + }, + "invertMatch": true + } + } + ] + } + }, + { + "notRule": { + "andRules": { + "rules": [ + { + "urlPath": { + "path": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "/v[123]" + } + } + } + }, + { + "header": { + "name": ":method", + "safeRegexMatch": { + "googleRe2": { + + }, + "regex": "GET|HEAD|OPTIONS" + } + } + } + ] + } + } + }, + { + "notRule": { + "urlPath": { + "path": { + "prefix": "/v1" + } + } + } + }, + { + "notRule": { + "urlPath": { + "path": { + "exact": "/v1/secret" + } + } + } + } + ] + } + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-deny-single-intention-with-kitchen-sink-perms.golden b/agent/xds/testdata/rbac/default-deny-single-intention-with-kitchen-sink-perms.golden index 84dfa0c7f..92c7f921a 100644 --- a/agent/xds/testdata/rbac/default-deny-single-intention-with-kitchen-sink-perms.golden +++ b/agent/xds/testdata/rbac/default-deny-single-intention-with-kitchen-sink-perms.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.network.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", "rules": { }, diff --git a/agent/xds/testdata/rbac/default-deny-single-intention-with-kitchen-sink-perms.v2compat.golden b/agent/xds/testdata/rbac/default-deny-single-intention-with-kitchen-sink-perms.v2compat.golden new file mode 100644 index 000000000..84dfa0c7f --- /dev/null +++ b/agent/xds/testdata/rbac/default-deny-single-intention-with-kitchen-sink-perms.v2compat.golden @@ -0,0 +1,10 @@ +{ + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-deny-two-path-deny-and-path-allow--httpfilter.golden b/agent/xds/testdata/rbac/default-deny-two-path-deny-and-path-allow--httpfilter.golden index 227416919..aeadff72b 100644 --- a/agent/xds/testdata/rbac/default-deny-two-path-deny-and-path-allow--httpfilter.golden +++ b/agent/xds/testdata/rbac/default-deny-two-path-deny-and-path-allow--httpfilter.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.http.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBAC", "rules": { "policies": { "consul-intentions-layer7-0": { diff --git a/agent/xds/testdata/rbac/default-deny-two-path-deny-and-path-allow--httpfilter.v2compat.golden b/agent/xds/testdata/rbac/default-deny-two-path-deny-and-path-allow--httpfilter.v2compat.golden new file mode 100644 index 000000000..227416919 --- /dev/null +++ b/agent/xds/testdata/rbac/default-deny-two-path-deny-and-path-allow--httpfilter.v2compat.golden @@ -0,0 +1,59 @@ +{ + "name": "envoy.filters.http.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.http.rbac.v2.RBAC", + "rules": { + "policies": { + "consul-intentions-layer7-0": { + "permissions": [ + { + "andRules": { + "rules": [ + { + "urlPath": { + "path": { + "prefix": "/" + } + } + }, + { + "notRule": { + "urlPath": { + "path": { + "exact": "/v1/admin" + } + } + } + }, + { + "notRule": { + "urlPath": { + "path": { + "exact": "/v1/secret" + } + } + } + } + ] + } + } + ], + "principals": [ + { + "authenticated": { + "principalName": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "^spiffe://[^/]+/ns/default/dc/[^/]+/svc/web$" + } + } + } + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/agent/xds/testdata/rbac/default-deny-two-path-deny-and-path-allow.golden b/agent/xds/testdata/rbac/default-deny-two-path-deny-and-path-allow.golden index 84dfa0c7f..92c7f921a 100644 --- a/agent/xds/testdata/rbac/default-deny-two-path-deny-and-path-allow.golden +++ b/agent/xds/testdata/rbac/default-deny-two-path-deny-and-path-allow.golden @@ -1,7 +1,7 @@ { "name": "envoy.filters.network.rbac", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "@type": "type.googleapis.com/envoy.extensions.filters.network.rbac.v3.RBAC", "rules": { }, diff --git a/agent/xds/testdata/rbac/default-deny-two-path-deny-and-path-allow.v2compat.golden b/agent/xds/testdata/rbac/default-deny-two-path-deny-and-path-allow.v2compat.golden new file mode 100644 index 000000000..84dfa0c7f --- /dev/null +++ b/agent/xds/testdata/rbac/default-deny-two-path-deny-and-path-allow.v2compat.golden @@ -0,0 +1,10 @@ +{ + "name": "envoy.filters.network.rbac", + "typedConfig": { + "@type": "type.googleapis.com/envoy.config.filter.network.rbac.v2.RBAC", + "rules": { + + }, + "statPrefix": "connect_authz" + } +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/connect-proxy-lb-in-resolver.envoy-1-17-x.golden b/agent/xds/testdata/routes/connect-proxy-lb-in-resolver.envoy-1-17-x.golden new file mode 100644 index 000000000..9cac48040 --- /dev/null +++ b/agent/xds/testdata/routes/connect-proxy-lb-in-resolver.envoy-1-17-x.golden @@ -0,0 +1,67 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "db", + "virtualHosts": [ + { + "name": "db", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "weightedClusters": { + "clusters": [ + { + "name": "something-else.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 9550 + }, + { + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 450 + } + ], + "totalWeight": 10000 + }, + "hashPolicy": [ + { + "cookie": { + "name": "chocolate-chip" + }, + "terminal": true + }, + { + "cookie": { + "name": "chocolate-chip", + "ttl": "0s" + } + }, + { + "header": { + "headerName": "x-user-id" + } + }, + { + "connectionProperties": { + "sourceIp": true + }, + "terminal": true + } + ] + } + } + ] + } + ], + "validateClusters": true + } + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/connect-proxy-lb-in-resolver.envoy-1-16-x.golden b/agent/xds/testdata/routes/connect-proxy-lb-in-resolver.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/routes/connect-proxy-lb-in-resolver.envoy-1-16-x.golden rename to agent/xds/testdata/routes/connect-proxy-lb-in-resolver.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/routes/connect-proxy-with-chain-and-overrides.envoy-1-17-x.golden b/agent/xds/testdata/routes/connect-proxy-with-chain-and-overrides.envoy-1-17-x.golden new file mode 100644 index 000000000..9f8b54d15 --- /dev/null +++ b/agent/xds/testdata/routes/connect-proxy-with-chain-and-overrides.envoy-1-17-x.golden @@ -0,0 +1,30 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "db", + "virtualHosts": [ + { + "name": "db", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "a236e964~db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "validateClusters": true + } + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/connect-proxy-with-chain-and-overrides.envoy-1-16-x.golden b/agent/xds/testdata/routes/connect-proxy-with-chain-and-overrides.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/routes/connect-proxy-with-chain-and-overrides.envoy-1-16-x.golden rename to agent/xds/testdata/routes/connect-proxy-with-chain-and-overrides.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/routes/connect-proxy-with-chain-and-router.envoy-1-17-x.golden b/agent/xds/testdata/routes/connect-proxy-with-chain-and-router.envoy-1-17-x.golden new file mode 100644 index 000000000..7e2f58b0d --- /dev/null +++ b/agent/xds/testdata/routes/connect-proxy-with-chain-and-router.envoy-1-17-x.golden @@ -0,0 +1,362 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "db", + "virtualHosts": [ + { + "name": "db", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "prefix": "/prefix" + }, + "route": { + "cluster": "prefix.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "path": "/exact" + }, + "route": { + "cluster": "exact.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "/regex" + } + }, + "route": { + "cluster": "regex.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "headers": [ + { + "name": "x-debug", + "presentMatch": true + } + ] + }, + "route": { + "cluster": "hdr-present.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "headers": [ + { + "name": "x-debug", + "presentMatch": true, + "invertMatch": true + } + ] + }, + "route": { + "cluster": "hdr-not-present.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "headers": [ + { + "name": "x-debug", + "exactMatch": "exact" + } + ] + }, + "route": { + "cluster": "hdr-exact.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "headers": [ + { + "name": "x-debug", + "prefixMatch": "prefix" + } + ] + }, + "route": { + "cluster": "hdr-prefix.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "headers": [ + { + "name": "x-debug", + "suffixMatch": "suffix" + } + ] + }, + "route": { + "cluster": "hdr-suffix.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "headers": [ + { + "name": "x-debug", + "safeRegexMatch": { + "googleRe2": { + + }, + "regex": "regex" + } + } + ] + }, + "route": { + "cluster": "hdr-regex.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "headers": [ + { + "name": ":method", + "safeRegexMatch": { + "googleRe2": { + + }, + "regex": "GET|PUT" + } + } + ] + }, + "route": { + "cluster": "just-methods.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "headers": [ + { + "name": "x-debug", + "exactMatch": "exact" + }, + { + "name": ":method", + "safeRegexMatch": { + "googleRe2": { + + }, + "regex": "GET|PUT" + } + } + ] + }, + "route": { + "cluster": "hdr-exact-with-method.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "queryParameters": [ + { + "name": "secretparam1", + "stringMatch": { + "exact": "exact" + } + } + ] + }, + "route": { + "cluster": "prm-exact.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "queryParameters": [ + { + "name": "secretparam2", + "stringMatch": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "regex" + } + } + } + ] + }, + "route": { + "cluster": "prm-regex.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "queryParameters": [ + { + "name": "secretparam3", + "presentMatch": true + } + ] + }, + "route": { + "cluster": "prm-present.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "nil-match.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "empty-match-1.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "empty-match-2.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/prefix" + }, + "route": { + "cluster": "prefix-rewrite-1.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "prefixRewrite": "/" + } + }, + { + "match": { + "prefix": "/prefix" + }, + "route": { + "cluster": "prefix-rewrite-2.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "prefixRewrite": "/nested/newlocation" + } + }, + { + "match": { + "prefix": "/timeout" + }, + "route": { + "cluster": "req-timeout.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "timeout": "33s" + } + }, + { + "match": { + "prefix": "/retry-connect" + }, + "route": { + "cluster": "retry-connect.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "retryPolicy": { + "retryOn": "connect-failure", + "numRetries": 15 + } + } + }, + { + "match": { + "prefix": "/retry-codes" + }, + "route": { + "cluster": "retry-codes.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "retryPolicy": { + "retryOn": "retriable-status-codes", + "numRetries": 15, + "retriableStatusCodes": [ + 401, + 409, + 451 + ] + } + } + }, + { + "match": { + "prefix": "/retry-both" + }, + "route": { + "cluster": "retry-both.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "retryPolicy": { + "retryOn": "connect-failure,retriable-status-codes", + "retriableStatusCodes": [ + 401, + 409, + 451 + ] + } + } + }, + { + "match": { + "prefix": "/split-3-ways" + }, + "route": { + "weightedClusters": { + "clusters": [ + { + "name": "big-side.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 9550 + }, + { + "name": "goldilocks-side.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 400 + }, + { + "name": "lil-bit-side.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 50 + } + ], + "totalWeight": 10000 + } + } + }, + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "validateClusters": true + } + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/connect-proxy-with-chain-and-router.envoy-1-16-x.golden b/agent/xds/testdata/routes/connect-proxy-with-chain-and-router.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/routes/connect-proxy-with-chain-and-router.envoy-1-16-x.golden rename to agent/xds/testdata/routes/connect-proxy-with-chain-and-router.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/routes/connect-proxy-with-chain-and-splitter.envoy-1-17-x.golden b/agent/xds/testdata/routes/connect-proxy-with-chain-and-splitter.envoy-1-17-x.golden new file mode 100644 index 000000000..5da88c61d --- /dev/null +++ b/agent/xds/testdata/routes/connect-proxy-with-chain-and-splitter.envoy-1-17-x.golden @@ -0,0 +1,46 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "db", + "virtualHosts": [ + { + "name": "db", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "weightedClusters": { + "clusters": [ + { + "name": "big-side.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 9550 + }, + { + "name": "goldilocks-side.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 400 + }, + { + "name": "lil-bit-side.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 50 + } + ], + "totalWeight": 10000 + } + } + } + ] + } + ], + "validateClusters": true + } + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/connect-proxy-with-chain-and-splitter.envoy-1-16-x.golden b/agent/xds/testdata/routes/connect-proxy-with-chain-and-splitter.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/routes/connect-proxy-with-chain-and-splitter.envoy-1-16-x.golden rename to agent/xds/testdata/routes/connect-proxy-with-chain-and-splitter.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/routes/connect-proxy-with-chain-external-sni.envoy-1-17-x.golden b/agent/xds/testdata/routes/connect-proxy-with-chain-external-sni.envoy-1-17-x.golden new file mode 100644 index 000000000..547b923b0 --- /dev/null +++ b/agent/xds/testdata/routes/connect-proxy-with-chain-external-sni.envoy-1-17-x.golden @@ -0,0 +1,30 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "db", + "virtualHosts": [ + { + "name": "db", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "validateClusters": true + } + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/connect-proxy-with-chain-external-sni.envoy-1-16-x.golden b/agent/xds/testdata/routes/connect-proxy-with-chain-external-sni.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/routes/connect-proxy-with-chain-external-sni.envoy-1-16-x.golden rename to agent/xds/testdata/routes/connect-proxy-with-chain-external-sni.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/routes/connect-proxy-with-chain.envoy-1-17-x.golden b/agent/xds/testdata/routes/connect-proxy-with-chain.envoy-1-17-x.golden new file mode 100644 index 000000000..547b923b0 --- /dev/null +++ b/agent/xds/testdata/routes/connect-proxy-with-chain.envoy-1-17-x.golden @@ -0,0 +1,30 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "db", + "virtualHosts": [ + { + "name": "db", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "validateClusters": true + } + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/connect-proxy-with-chain.envoy-1-16-x.golden b/agent/xds/testdata/routes/connect-proxy-with-chain.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/routes/connect-proxy-with-chain.envoy-1-16-x.golden rename to agent/xds/testdata/routes/connect-proxy-with-chain.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/routes/connect-proxy-with-grpc-router.envoy-1-17-x.golden b/agent/xds/testdata/routes/connect-proxy-with-grpc-router.envoy-1-17-x.golden new file mode 100644 index 000000000..c042006a5 --- /dev/null +++ b/agent/xds/testdata/routes/connect-proxy-with-grpc-router.envoy-1-17-x.golden @@ -0,0 +1,38 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "db", + "virtualHosts": [ + { + "name": "db", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "path": "/fgrpc.PingServer/Ping" + }, + "route": { + "cluster": "prefix.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "validateClusters": true + } + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/connect-proxy-with-grpc-router.envoy-1-16-x.golden b/agent/xds/testdata/routes/connect-proxy-with-grpc-router.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/routes/connect-proxy-with-grpc-router.envoy-1-16-x.golden rename to agent/xds/testdata/routes/connect-proxy-with-grpc-router.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/routes/defaults-no-chain.envoy-1-17-x.golden b/agent/xds/testdata/routes/defaults-no-chain.envoy-1-17-x.golden new file mode 100644 index 000000000..6bbc48e6d --- /dev/null +++ b/agent/xds/testdata/routes/defaults-no-chain.envoy-1-17-x.golden @@ -0,0 +1,7 @@ +{ + "versionInfo": "00000001", + "resources": [ + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/ingress-defaults-no-chain.envoy-1-16-x.golden b/agent/xds/testdata/routes/defaults-no-chain.v2compat.envoy-1-17-x.golden similarity index 84% rename from agent/xds/testdata/routes/ingress-defaults-no-chain.envoy-1-16-x.golden rename to agent/xds/testdata/routes/defaults-no-chain.v2compat.envoy-1-17-x.golden index a065cc73d..a0fa487e7 100644 --- a/agent/xds/testdata/routes/ingress-defaults-no-chain.envoy-1-16-x.golden +++ b/agent/xds/testdata/routes/defaults-no-chain.v2compat.envoy-1-17-x.golden @@ -1,7 +1,5 @@ { "versionInfo": "00000001", - "resources": [ - ], "typeUrl": "type.googleapis.com/envoy.api.v2.RouteConfiguration", "nonce": "00000001" } \ No newline at end of file diff --git a/agent/xds/testdata/routes/ingress-defaults-no-chain.envoy-1-17-x.golden b/agent/xds/testdata/routes/ingress-defaults-no-chain.envoy-1-17-x.golden new file mode 100644 index 000000000..6bbc48e6d --- /dev/null +++ b/agent/xds/testdata/routes/ingress-defaults-no-chain.envoy-1-17-x.golden @@ -0,0 +1,7 @@ +{ + "versionInfo": "00000001", + "resources": [ + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/ingress-with-chain-and-overrides.envoy-1-16-x.golden b/agent/xds/testdata/routes/ingress-defaults-no-chain.v2compat.envoy-1-17-x.golden similarity index 84% rename from agent/xds/testdata/routes/ingress-with-chain-and-overrides.envoy-1-16-x.golden rename to agent/xds/testdata/routes/ingress-defaults-no-chain.v2compat.envoy-1-17-x.golden index a065cc73d..a0fa487e7 100644 --- a/agent/xds/testdata/routes/ingress-with-chain-and-overrides.envoy-1-16-x.golden +++ b/agent/xds/testdata/routes/ingress-defaults-no-chain.v2compat.envoy-1-17-x.golden @@ -1,7 +1,5 @@ { "versionInfo": "00000001", - "resources": [ - ], "typeUrl": "type.googleapis.com/envoy.api.v2.RouteConfiguration", "nonce": "00000001" } \ No newline at end of file diff --git a/agent/xds/testdata/routes/ingress-http-multiple-services.envoy-1-17-x.golden b/agent/xds/testdata/routes/ingress-http-multiple-services.envoy-1-17-x.golden new file mode 100644 index 000000000..4e7cfc422 --- /dev/null +++ b/agent/xds/testdata/routes/ingress-http-multiple-services.envoy-1-17-x.golden @@ -0,0 +1,91 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "443", + "virtualHosts": [ + { + "name": "baz", + "domains": [ + "baz.ingress.*", + "baz.ingress.*:443" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "baz.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "name": "qux", + "domains": [ + "qux.ingress.*", + "qux.ingress.*:443" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "qux.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "validateClusters": true + }, + { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "8080", + "virtualHosts": [ + { + "name": "foo", + "domains": [ + "test1.example.com", + "test2.example.com", + "test2.example.com:8080", + "test1.example.com:8080" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + }, + { + "name": "bar", + "domains": [ + "bar.ingress.*", + "bar.ingress.*:8080" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "validateClusters": true + } + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/ingress-http-multiple-services.envoy-1-16-x.golden b/agent/xds/testdata/routes/ingress-http-multiple-services.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/routes/ingress-http-multiple-services.envoy-1-16-x.golden rename to agent/xds/testdata/routes/ingress-http-multiple-services.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/routes/ingress-lb-in-resolver.envoy-1-17-x.golden b/agent/xds/testdata/routes/ingress-lb-in-resolver.envoy-1-17-x.golden new file mode 100644 index 000000000..f2830cf0c --- /dev/null +++ b/agent/xds/testdata/routes/ingress-lb-in-resolver.envoy-1-17-x.golden @@ -0,0 +1,68 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "9191", + "virtualHosts": [ + { + "name": "db", + "domains": [ + "db.ingress.*", + "db.ingress.*:9191" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "weightedClusters": { + "clusters": [ + { + "name": "something-else.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 9550 + }, + { + "name": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 450 + } + ], + "totalWeight": 10000 + }, + "hashPolicy": [ + { + "cookie": { + "name": "chocolate-chip" + }, + "terminal": true + }, + { + "cookie": { + "name": "chocolate-chip", + "ttl": "0s" + } + }, + { + "header": { + "headerName": "x-user-id" + } + }, + { + "connectionProperties": { + "sourceIp": true + }, + "terminal": true + } + ] + } + } + ] + } + ], + "validateClusters": true + } + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/ingress-lb-in-resolver.envoy-1-16-x.golden b/agent/xds/testdata/routes/ingress-lb-in-resolver.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/routes/ingress-lb-in-resolver.envoy-1-16-x.golden rename to agent/xds/testdata/routes/ingress-lb-in-resolver.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/routes/ingress-splitter-with-resolver-redirect.envoy-1-17-x.golden b/agent/xds/testdata/routes/ingress-splitter-with-resolver-redirect.envoy-1-17-x.golden new file mode 100644 index 000000000..4353e33b1 --- /dev/null +++ b/agent/xds/testdata/routes/ingress-splitter-with-resolver-redirect.envoy-1-17-x.golden @@ -0,0 +1,43 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "9191", + "virtualHosts": [ + { + "name": "db", + "domains": [ + "db.ingress.*", + "db.ingress.*:9191" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "weightedClusters": { + "clusters": [ + { + "name": "v1.db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 5000 + }, + { + "name": "v2.db.default.dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 5000 + } + ], + "totalWeight": 10000 + } + } + } + ] + } + ], + "validateClusters": true + } + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/ingress-splitter-with-resolver-redirect.envoy-1-16-x.golden b/agent/xds/testdata/routes/ingress-splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/routes/ingress-splitter-with-resolver-redirect.envoy-1-16-x.golden rename to agent/xds/testdata/routes/ingress-splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/routes/ingress-with-chain-and-overrides.envoy-1-17-x.golden b/agent/xds/testdata/routes/ingress-with-chain-and-overrides.envoy-1-17-x.golden new file mode 100644 index 000000000..6bbc48e6d --- /dev/null +++ b/agent/xds/testdata/routes/ingress-with-chain-and-overrides.envoy-1-17-x.golden @@ -0,0 +1,7 @@ +{ + "versionInfo": "00000001", + "resources": [ + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/ingress-with-chain-external-sni.envoy-1-16-x.golden b/agent/xds/testdata/routes/ingress-with-chain-and-overrides.v2compat.envoy-1-17-x.golden similarity index 84% rename from agent/xds/testdata/routes/ingress-with-chain-external-sni.envoy-1-16-x.golden rename to agent/xds/testdata/routes/ingress-with-chain-and-overrides.v2compat.envoy-1-17-x.golden index a065cc73d..a0fa487e7 100644 --- a/agent/xds/testdata/routes/ingress-with-chain-external-sni.envoy-1-16-x.golden +++ b/agent/xds/testdata/routes/ingress-with-chain-and-overrides.v2compat.envoy-1-17-x.golden @@ -1,7 +1,5 @@ { "versionInfo": "00000001", - "resources": [ - ], "typeUrl": "type.googleapis.com/envoy.api.v2.RouteConfiguration", "nonce": "00000001" } \ No newline at end of file diff --git a/agent/xds/testdata/routes/ingress-with-chain-and-router.envoy-1-17-x.golden b/agent/xds/testdata/routes/ingress-with-chain-and-router.envoy-1-17-x.golden new file mode 100644 index 000000000..26da96051 --- /dev/null +++ b/agent/xds/testdata/routes/ingress-with-chain-and-router.envoy-1-17-x.golden @@ -0,0 +1,363 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "9191", + "virtualHosts": [ + { + "name": "db", + "domains": [ + "db.ingress.*", + "db.ingress.*:9191" + ], + "routes": [ + { + "match": { + "prefix": "/prefix" + }, + "route": { + "cluster": "prefix.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "path": "/exact" + }, + "route": { + "cluster": "exact.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "/regex" + } + }, + "route": { + "cluster": "regex.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "headers": [ + { + "name": "x-debug", + "presentMatch": true + } + ] + }, + "route": { + "cluster": "hdr-present.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "headers": [ + { + "name": "x-debug", + "presentMatch": true, + "invertMatch": true + } + ] + }, + "route": { + "cluster": "hdr-not-present.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "headers": [ + { + "name": "x-debug", + "exactMatch": "exact" + } + ] + }, + "route": { + "cluster": "hdr-exact.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "headers": [ + { + "name": "x-debug", + "prefixMatch": "prefix" + } + ] + }, + "route": { + "cluster": "hdr-prefix.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "headers": [ + { + "name": "x-debug", + "suffixMatch": "suffix" + } + ] + }, + "route": { + "cluster": "hdr-suffix.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "headers": [ + { + "name": "x-debug", + "safeRegexMatch": { + "googleRe2": { + + }, + "regex": "regex" + } + } + ] + }, + "route": { + "cluster": "hdr-regex.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "headers": [ + { + "name": ":method", + "safeRegexMatch": { + "googleRe2": { + + }, + "regex": "GET|PUT" + } + } + ] + }, + "route": { + "cluster": "just-methods.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "headers": [ + { + "name": "x-debug", + "exactMatch": "exact" + }, + { + "name": ":method", + "safeRegexMatch": { + "googleRe2": { + + }, + "regex": "GET|PUT" + } + } + ] + }, + "route": { + "cluster": "hdr-exact-with-method.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "queryParameters": [ + { + "name": "secretparam1", + "stringMatch": { + "exact": "exact" + } + } + ] + }, + "route": { + "cluster": "prm-exact.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "queryParameters": [ + { + "name": "secretparam2", + "stringMatch": { + "safeRegex": { + "googleRe2": { + + }, + "regex": "regex" + } + } + } + ] + }, + "route": { + "cluster": "prm-regex.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/", + "queryParameters": [ + { + "name": "secretparam3", + "presentMatch": true + } + ] + }, + "route": { + "cluster": "prm-present.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "nil-match.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "empty-match-1.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "empty-match-2.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/prefix" + }, + "route": { + "cluster": "prefix-rewrite-1.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "prefixRewrite": "/" + } + }, + { + "match": { + "prefix": "/prefix" + }, + "route": { + "cluster": "prefix-rewrite-2.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "prefixRewrite": "/nested/newlocation" + } + }, + { + "match": { + "prefix": "/timeout" + }, + "route": { + "cluster": "req-timeout.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "timeout": "33s" + } + }, + { + "match": { + "prefix": "/retry-connect" + }, + "route": { + "cluster": "retry-connect.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "retryPolicy": { + "retryOn": "connect-failure", + "numRetries": 15 + } + } + }, + { + "match": { + "prefix": "/retry-codes" + }, + "route": { + "cluster": "retry-codes.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "retryPolicy": { + "retryOn": "retriable-status-codes", + "numRetries": 15, + "retriableStatusCodes": [ + 401, + 409, + 451 + ] + } + } + }, + { + "match": { + "prefix": "/retry-both" + }, + "route": { + "cluster": "retry-both.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "retryPolicy": { + "retryOn": "connect-failure,retriable-status-codes", + "retriableStatusCodes": [ + 401, + 409, + 451 + ] + } + } + }, + { + "match": { + "prefix": "/split-3-ways" + }, + "route": { + "weightedClusters": { + "clusters": [ + { + "name": "big-side.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 9550 + }, + { + "name": "goldilocks-side.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 400 + }, + { + "name": "lil-bit-side.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 50 + } + ], + "totalWeight": 10000 + } + } + }, + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "validateClusters": true + } + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/ingress-with-chain-and-router.envoy-1-16-x.golden b/agent/xds/testdata/routes/ingress-with-chain-and-router.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/routes/ingress-with-chain-and-router.envoy-1-16-x.golden rename to agent/xds/testdata/routes/ingress-with-chain-and-router.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/routes/ingress-with-chain-and-splitter.envoy-1-17-x.golden b/agent/xds/testdata/routes/ingress-with-chain-and-splitter.envoy-1-17-x.golden new file mode 100644 index 000000000..87b3422e4 --- /dev/null +++ b/agent/xds/testdata/routes/ingress-with-chain-and-splitter.envoy-1-17-x.golden @@ -0,0 +1,47 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "9191", + "virtualHosts": [ + { + "name": "db", + "domains": [ + "db.ingress.*", + "db.ingress.*:9191" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "weightedClusters": { + "clusters": [ + { + "name": "big-side.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 9550 + }, + { + "name": "goldilocks-side.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 400 + }, + { + "name": "lil-bit-side.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 50 + } + ], + "totalWeight": 10000 + } + } + } + ] + } + ], + "validateClusters": true + } + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/ingress-with-chain-and-splitter.envoy-1-16-x.golden b/agent/xds/testdata/routes/ingress-with-chain-and-splitter.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/routes/ingress-with-chain-and-splitter.envoy-1-16-x.golden rename to agent/xds/testdata/routes/ingress-with-chain-and-splitter.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/routes/ingress-with-chain-external-sni.envoy-1-17-x.golden b/agent/xds/testdata/routes/ingress-with-chain-external-sni.envoy-1-17-x.golden new file mode 100644 index 000000000..6bbc48e6d --- /dev/null +++ b/agent/xds/testdata/routes/ingress-with-chain-external-sni.envoy-1-17-x.golden @@ -0,0 +1,7 @@ +{ + "versionInfo": "00000001", + "resources": [ + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/defaults-no-chain.envoy-1-16-x.golden b/agent/xds/testdata/routes/ingress-with-chain-external-sni.v2compat.envoy-1-17-x.golden similarity index 84% rename from agent/xds/testdata/routes/defaults-no-chain.envoy-1-16-x.golden rename to agent/xds/testdata/routes/ingress-with-chain-external-sni.v2compat.envoy-1-17-x.golden index a065cc73d..a0fa487e7 100644 --- a/agent/xds/testdata/routes/defaults-no-chain.envoy-1-16-x.golden +++ b/agent/xds/testdata/routes/ingress-with-chain-external-sni.v2compat.envoy-1-17-x.golden @@ -1,7 +1,5 @@ { "versionInfo": "00000001", - "resources": [ - ], "typeUrl": "type.googleapis.com/envoy.api.v2.RouteConfiguration", "nonce": "00000001" } \ No newline at end of file diff --git a/agent/xds/testdata/routes/ingress-with-chain.envoy-1-16-x.golden b/agent/xds/testdata/routes/ingress-with-chain.envoy-1-16-x.golden deleted file mode 100644 index a065cc73d..000000000 --- a/agent/xds/testdata/routes/ingress-with-chain.envoy-1-16-x.golden +++ /dev/null @@ -1,7 +0,0 @@ -{ - "versionInfo": "00000001", - "resources": [ - ], - "typeUrl": "type.googleapis.com/envoy.api.v2.RouteConfiguration", - "nonce": "00000001" -} \ No newline at end of file diff --git a/agent/xds/testdata/routes/ingress-with-chain.envoy-1-17-x.golden b/agent/xds/testdata/routes/ingress-with-chain.envoy-1-17-x.golden new file mode 100644 index 000000000..6bbc48e6d --- /dev/null +++ b/agent/xds/testdata/routes/ingress-with-chain.envoy-1-17-x.golden @@ -0,0 +1,7 @@ +{ + "versionInfo": "00000001", + "resources": [ + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/ingress-with-chain.v2compat.envoy-1-17-x.golden b/agent/xds/testdata/routes/ingress-with-chain.v2compat.envoy-1-17-x.golden new file mode 100644 index 000000000..a0fa487e7 --- /dev/null +++ b/agent/xds/testdata/routes/ingress-with-chain.v2compat.envoy-1-17-x.golden @@ -0,0 +1,5 @@ +{ + "versionInfo": "00000001", + "typeUrl": "type.googleapis.com/envoy.api.v2.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/ingress-with-grpc-router.envoy-1-17-x.golden b/agent/xds/testdata/routes/ingress-with-grpc-router.envoy-1-17-x.golden new file mode 100644 index 000000000..d8ed06629 --- /dev/null +++ b/agent/xds/testdata/routes/ingress-with-grpc-router.envoy-1-17-x.golden @@ -0,0 +1,39 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "9191", + "virtualHosts": [ + { + "name": "db", + "domains": [ + "db.ingress.*", + "db.ingress.*:9191" + ], + "routes": [ + { + "match": { + "path": "/fgrpc.PingServer/Ping" + }, + "route": { + "cluster": "prefix.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + }, + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul" + } + } + ] + } + ], + "validateClusters": true + } + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/ingress-with-grpc-router.envoy-1-16-x.golden b/agent/xds/testdata/routes/ingress-with-grpc-router.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/routes/ingress-with-grpc-router.envoy-1-16-x.golden rename to agent/xds/testdata/routes/ingress-with-grpc-router.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/routes/splitter-with-resolver-redirect.envoy-1-17-x.golden b/agent/xds/testdata/routes/splitter-with-resolver-redirect.envoy-1-17-x.golden new file mode 100644 index 000000000..dec26fd15 --- /dev/null +++ b/agent/xds/testdata/routes/splitter-with-resolver-redirect.envoy-1-17-x.golden @@ -0,0 +1,42 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "db", + "virtualHosts": [ + { + "name": "db", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "weightedClusters": { + "clusters": [ + { + "name": "v1.db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 5000 + }, + { + "name": "v2.db.default.dc2.internal.11111111-2222-3333-4444-555555555555.consul", + "weight": 5000 + } + ], + "totalWeight": 10000 + } + } + } + ] + } + ], + "validateClusters": true + } + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/splitter-with-resolver-redirect.envoy-1-16-x.golden b/agent/xds/testdata/routes/splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/routes/splitter-with-resolver-redirect.envoy-1-16-x.golden rename to agent/xds/testdata/routes/splitter-with-resolver-redirect.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testdata/routes/terminating-gateway-lb-config.envoy-1-17-x.golden b/agent/xds/testdata/routes/terminating-gateway-lb-config.envoy-1-17-x.golden new file mode 100644 index 000000000..07f0248e2 --- /dev/null +++ b/agent/xds/testdata/routes/terminating-gateway-lb-config.envoy-1-17-x.golden @@ -0,0 +1,133 @@ +{ + "versionInfo": "00000001", + "resources": [ + { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "v1.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "virtualHosts": [ + { + "name": "v1.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "v1.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "hashPolicy": [ + { + "cookie": { + "name": "chocolate-chip" + }, + "terminal": true + }, + { + "header": { + "headerName": "x-user-id" + } + }, + { + "connectionProperties": { + "sourceIp": true + }, + "terminal": true + } + ] + } + } + ] + } + ], + "validateClusters": true + }, + { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "v2.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "virtualHosts": [ + { + "name": "v2.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "v2.web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "hashPolicy": [ + { + "cookie": { + "name": "chocolate-chip" + }, + "terminal": true + }, + { + "header": { + "headerName": "x-user-id" + } + }, + { + "connectionProperties": { + "sourceIp": true + }, + "terminal": true + } + ] + } + } + ] + } + ], + "validateClusters": true + }, + { + "@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "name": "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "virtualHosts": [ + { + "name": "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "domains": [ + "*" + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "web.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul", + "hashPolicy": [ + { + "cookie": { + "name": "chocolate-chip" + }, + "terminal": true + }, + { + "header": { + "headerName": "x-user-id" + } + }, + { + "connectionProperties": { + "sourceIp": true + }, + "terminal": true + } + ] + } + } + ] + } + ], + "validateClusters": true + } + ], + "typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration", + "nonce": "00000001" +} \ No newline at end of file diff --git a/agent/xds/testdata/routes/terminating-gateway-lb-config.envoy-1-16-x.golden b/agent/xds/testdata/routes/terminating-gateway-lb-config.v2compat.envoy-1-17-x.golden similarity index 100% rename from agent/xds/testdata/routes/terminating-gateway-lb-config.envoy-1-16-x.golden rename to agent/xds/testdata/routes/terminating-gateway-lb-config.v2compat.envoy-1-17-x.golden diff --git a/agent/xds/testing.go b/agent/xds/testing.go index 4ae276add..a2b0236bc 100644 --- a/agent/xds/testing.go +++ b/agent/xds/testing.go @@ -9,16 +9,13 @@ import ( "sync" "time" - envoy "github.com/envoyproxy/go-control-plane/envoy/api/v2" - envoycore "github.com/envoyproxy/go-control-plane/envoy/api/v2/core" - envoyauth "github.com/envoyproxy/go-control-plane/envoy/service/auth/v2" - envoytype "github.com/envoyproxy/go-control-plane/envoy/type" + envoy_core_v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + envoy_discovery_v3 "github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3" + envoy_type_v3 "github.com/envoyproxy/go-control-plane/envoy/type/v3" + "github.com/hashicorp/consul/agent/xds/proxysupport" "github.com/mitchellh/go-testing-interface" "google.golang.org/grpc/metadata" - - "github.com/hashicorp/consul/agent/connect" - "github.com/hashicorp/consul/agent/xds/proxysupport" ) // TestADSStream mocks @@ -26,27 +23,27 @@ import ( // testing ADS handler. type TestADSStream struct { ctx context.Context - sendCh chan *envoy.DiscoveryResponse - recvCh chan *envoy.DiscoveryRequest + sendCh chan *envoy_discovery_v3.DiscoveryResponse + recvCh chan *envoy_discovery_v3.DiscoveryRequest } // NewTestADSStream makes a new TestADSStream func NewTestADSStream(t testing.T, ctx context.Context) *TestADSStream { return &TestADSStream{ ctx: ctx, - sendCh: make(chan *envoy.DiscoveryResponse, 1), - recvCh: make(chan *envoy.DiscoveryRequest, 1), + sendCh: make(chan *envoy_discovery_v3.DiscoveryResponse, 1), + recvCh: make(chan *envoy_discovery_v3.DiscoveryRequest, 1), } } // Send implements ADSStream -func (s *TestADSStream) Send(r *envoy.DiscoveryResponse) error { +func (s *TestADSStream) Send(r *envoy_discovery_v3.DiscoveryResponse) error { s.sendCh <- r return nil } // Recv implements ADSStream -func (s *TestADSStream) Recv() (*envoy.DiscoveryRequest, error) { +func (s *TestADSStream) Recv() (*envoy_discovery_v3.DiscoveryRequest, error) { r := <-s.recvCh if r == nil { return nil, io.EOF @@ -124,7 +121,7 @@ func hexString(v uint64) string { return fmt.Sprintf("%08x", v) } -func stringToEnvoyVersion(vs string) (*envoytype.SemanticVersion, bool) { +func stringToEnvoyVersion(vs string) (*envoy_type_v3.SemanticVersion, bool) { parts := strings.Split(vs, ".") if len(parts) != 3 { return nil, false @@ -143,7 +140,7 @@ func stringToEnvoyVersion(vs string) (*envoytype.SemanticVersion, bool) { return nil, false } - return &envoytype.SemanticVersion{ + return &envoy_type_v3.SemanticVersion{ MajorNumber: uint32(major), MinorNumber: uint32(minor), Patch: uint32(patch), @@ -160,14 +157,14 @@ func (e *TestEnvoy) SendReq(t testing.T, typeURL string, version, nonce uint64) t.Fatal("envoy version is not valid: %s", proxysupport.EnvoyVersions[0]) } - req := &envoy.DiscoveryRequest{ + req := &envoy_discovery_v3.DiscoveryRequest{ VersionInfo: hexString(version), - Node: &envoycore.Node{ + Node: &envoy_core_v3.Node{ Id: e.proxyID, Cluster: e.proxyID, UserAgentName: "envoy", - UserAgentVersionType: &envoycore.Node_UserAgentBuildVersion{ - UserAgentBuildVersion: &envoycore.BuildVersion{ + UserAgentVersionType: &envoy_core_v3.Node_UserAgentBuildVersion{ + UserAgentBuildVersion: &envoy_core_v3.BuildVersion{ Version: ev, }, }, @@ -197,26 +194,3 @@ func (e *TestEnvoy) Close() error { } return nil } - -// TestCheckRequest creates an envoyauth.CheckRequest with the source and -// destination service names. -func TestCheckRequest(t testing.T, source, dest string) *envoyauth.CheckRequest { - return &envoyauth.CheckRequest{ - Attributes: &envoyauth.AttributeContext{ - Source: makeAttributeContextPeer(t, source), - Destination: makeAttributeContextPeer(t, dest), - }, - } -} - -func makeAttributeContextPeer(t testing.T, svc string) *envoyauth.AttributeContext_Peer { - spiffeID := connect.TestSpiffeIDService(t, svc) - return &envoyauth.AttributeContext_Peer{ - // We don't care about IP for now might later though - Address: makeAddress("10.0.0.1", 1234), - // Note we don't set Service since that is an advisory only mechanism in - // Envoy triggered by self-declared headers. We rely on the actual TLS Peer - // identity. - Principal: spiffeID.URI().String(), - } -} diff --git a/agent/xds/version_compat.go b/agent/xds/version_compat.go new file mode 100644 index 000000000..87880b87e --- /dev/null +++ b/agent/xds/version_compat.go @@ -0,0 +1,488 @@ +package xds + +import ( + "errors" + "fmt" + + envoy_api_v2 "github.com/envoyproxy/go-control-plane/envoy/api/v2" + envoy_tls_v2 "github.com/envoyproxy/go-control-plane/envoy/api/v2/auth" + envoy_core_v2 "github.com/envoyproxy/go-control-plane/envoy/api/v2/core" + envoy_listener_v2 "github.com/envoyproxy/go-control-plane/envoy/api/v2/listener" + envoy_route_v2 "github.com/envoyproxy/go-control-plane/envoy/api/v2/route" + envoy_cluster_v3 "github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3" + envoy_endpoint_v3 "github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3" + envoy_http_rbac_v2 "github.com/envoyproxy/go-control-plane/envoy/config/filter/http/rbac/v2" + envoy_tls_inspector_v2 "github.com/envoyproxy/go-control-plane/envoy/config/filter/listener/tls_inspector/v2" + envoy_http_v2 "github.com/envoyproxy/go-control-plane/envoy/config/filter/network/http_connection_manager/v2" + envoy_network_rbac_v2 "github.com/envoyproxy/go-control-plane/envoy/config/filter/network/rbac/v2" + envoy_sni_v2 "github.com/envoyproxy/go-control-plane/envoy/config/filter/network/sni_cluster/v2" + envoy_tcp_proxy_v2 "github.com/envoyproxy/go-control-plane/envoy/config/filter/network/tcp_proxy/v2" + envoy_listener_v3 "github.com/envoyproxy/go-control-plane/envoy/config/listener/v3" + envoy_metrics_v2 "github.com/envoyproxy/go-control-plane/envoy/config/metrics/v2" + envoy_metrics_v3 "github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3" + envoy_route_v3 "github.com/envoyproxy/go-control-plane/envoy/config/route/v3" + envoy_trace_v2 "github.com/envoyproxy/go-control-plane/envoy/config/trace/v2" + envoy_trace_v3 "github.com/envoyproxy/go-control-plane/envoy/config/trace/v3" + envoy_http_rbac_v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/rbac/v3" + envoy_tls_inspector_v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/listener/tls_inspector/v3" + envoy_http_v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3" + envoy_network_rbac_v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/rbac/v3" + envoy_sni_v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/sni_cluster/v3" + envoy_tcp_proxy_v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/tcp_proxy/v3" + envoy_tls_v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3" + envoy_discovery_v2 "github.com/envoyproxy/go-control-plane/envoy/service/discovery/v2" + envoy_discovery_v3 "github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3" + + "github.com/golang/protobuf/proto" + "github.com/golang/protobuf/ptypes" + "github.com/golang/protobuf/ptypes/any" + "google.golang.org/grpc" +) + +// The plumbing in this file supports converting xDS v3 requests and responses +// to and from xDS v2 representations. This is primarily of use for envoy +// sidecars configured and launched by Consul versions prior to 1.10. +// +// Once the servers and client agents in a datacenter have been upgraded to +// 1.10+, and all of the sidecars have been restarted with a fresh bootstrap +// config file generated by Consul 1.10+ then none of these abstractions are +// used. +// +// At most we only need to retain this logic until our envoy support matrix +// looks like: +// +// - 1.20.x (v2 deleted) +// - 1.19.x (v2 deleted) +// - 1.18.x (v2 deleted) +// - 1.17.x (v2 opt-in) + +type adsServerV2Shim struct { + srv *Server +} + +// StreamAggregatedResources implements +// envoy_discovery_v2.AggregatedDiscoveryServiceServer. This is the ADS endpoint which is +// the only xDS API we directly support for now. +func (s *adsServerV2Shim) StreamAggregatedResources(stream ADSStream_v2) error { + shim := &adsStreamV3Shim{ + stream: stream, + ServerStream: stream, + } + return s.srv.StreamAggregatedResources(shim) +} + +// DeltaAggregatedResources implements envoy_discovery_v2.AggregatedDiscoveryServiceServer +func (s *adsServerV2Shim) DeltaAggregatedResources(_ envoy_discovery_v2.AggregatedDiscoveryService_DeltaAggregatedResourcesServer) error { + return errors.New("not implemented") +} + +type adsStreamV3Shim struct { + stream ADSStream_v2 + grpc.ServerStream +} + +var _ ADSStream = (*adsStreamV3Shim)(nil) + +func (s *adsStreamV3Shim) Send(resp *envoy_discovery_v3.DiscoveryResponse) error { + respv2, err := convertDiscoveryResponseToV2(resp) + if err != nil { + return fmt.Errorf("Error converting a v3 DiscoveryResponse to v2: %w", err) + } + + return s.stream.Send(respv2) +} + +func (s *adsStreamV3Shim) Recv() (*envoy_discovery_v3.DiscoveryRequest, error) { + req, err := s.stream.Recv() + if err != nil { + return nil, err + } + + reqv3, err := convertDiscoveryRequestToV3(req) + if err != nil { + return nil, fmt.Errorf("Error converting a v2 DiscoveryRequest to v3: %w", err) + } + + return reqv3, nil +} + +func convertDiscoveryRequestToV3(req *envoy_api_v2.DiscoveryRequest) (*envoy_discovery_v3.DiscoveryRequest, error) { + var pbuf proto.Buffer + if err := pbuf.Marshal(req); err != nil { + return nil, err + } + + var reqV3 envoy_discovery_v3.DiscoveryRequest + if err := pbuf.Unmarshal(&reqV3); err != nil { + return nil, err + } + + // only one field to munge + if err := convertTypeUrlsToV3(&reqV3.TypeUrl); err != nil { + return nil, err + } + + return &reqV3, nil +} + +func convertDiscoveryResponseToV2(resp *envoy_discovery_v3.DiscoveryResponse) (*envoy_api_v2.DiscoveryResponse, error) { + var pbuf proto.Buffer + if err := pbuf.Marshal(resp); err != nil { + return nil, err + } + + var respV2 envoy_api_v2.DiscoveryResponse + if err := pbuf.Unmarshal(&respV2); err != nil { + return nil, err + } + + if err := convertTypedConfigsToV2(&respV2); err != nil { + return nil, err + } + + return &respV2, nil +} + +// convertNetFilterToV2 is only used in tests. +func convertNetFilterToV2(filter *envoy_listener_v3.Filter) (*envoy_listener_v2.Filter, error) { + var pbuf proto.Buffer + if err := pbuf.Marshal(filter); err != nil { + return nil, err + } + + var filterV2 envoy_listener_v2.Filter + if err := pbuf.Unmarshal(&filterV2); err != nil { + return nil, err + } + + if err := convertTypedConfigsToV2(&filterV2); err != nil { + return nil, err + } + + return &filterV2, nil +} + +// convertHttpFilterToV2 is only used in tests. +func convertHttpFilterToV2(filter *envoy_http_v3.HttpFilter) (*envoy_http_v2.HttpFilter, error) { + var pbuf proto.Buffer + if err := pbuf.Marshal(filter); err != nil { + return nil, err + } + + var filterV2 envoy_http_v2.HttpFilter + if err := pbuf.Unmarshal(&filterV2); err != nil { + return nil, err + } + + if err := convertTypedConfigsToV2(&filterV2); err != nil { + return nil, err + } + + return &filterV2, nil +} + +// Responses +func convertTypedConfigsToV2(pb proto.Message) error { + switch x := pb.(type) { + case *envoy_api_v2.DiscoveryResponse: + if err := convertTypeUrlsToV2(&x.TypeUrl); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + for _, res := range x.Resources { + if err := convertTypedConfigsToV2(res); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + return nil + case *any.Any: + // first flip the any.Any to v2 + if err := convertTypeUrlsToV2(&x.TypeUrl); err != nil { + return fmt.Errorf("%T(%s) convert type urls in envelope: %w", x, x.TypeUrl, err) + } + + // now decode into a v2 type + var dynAny ptypes.DynamicAny + if err := ptypes.UnmarshalAny(x, &dynAny); err != nil { + return fmt.Errorf("%T(%s) dynamic unmarshal: %w", x, x.TypeUrl, err) + } + + // handle the contents and then put them back in the any.Any + // handle contents first + if err := convertTypedConfigsToV2(dynAny.Message); err != nil { + return fmt.Errorf("%T(%s) convert type urls in body: %w", x, x.TypeUrl, err) + } + anyFixed, err := ptypes.MarshalAny(dynAny.Message) + if err != nil { + return fmt.Errorf("%T(%s) dynamic re-marshal: %w", x, x.TypeUrl, err) + } + x.Value = anyFixed.Value + return nil + case *envoy_api_v2.Listener: + for _, chain := range x.FilterChains { + if err := convertTypedConfigsToV2(chain); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + for _, filter := range x.ListenerFilters { + // We only ever plumb up the tls_inspector listener filter. + if err := convertTypedConfigsToV2(filter); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + return nil + case *envoy_listener_v2.ListenerFilter: + // This is really only here for when the tls inspector is for some + // random reason plumbed using the @type instead of the name. + if x.ConfigType != nil { + tc, ok := x.ConfigType.(*envoy_listener_v2.ListenerFilter_TypedConfig) + if !ok { + return fmt.Errorf("%T: ConfigType type %T not handled", x, x.ConfigType) + } + if tc.TypedConfig != nil { + if err := convertTypedConfigsToV2(tc.TypedConfig); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + } + return nil + case *envoy_listener_v2.FilterChain: + for _, filter := range x.Filters { + if err := convertTypedConfigsToV2(filter); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + if x.TransportSocket != nil { + if err := convertTypedConfigsToV2(x.TransportSocket); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + return nil + case *envoy_listener_v2.Filter: + // "envoy.filters.network.tcp_proxy" + // "envoy.filters.network.http_connection_manager" + // "envoy.filters.network.rbac" + // "envoy.filters.network.sni_cluster" + if x.ConfigType != nil { + tc, ok := x.ConfigType.(*envoy_listener_v2.Filter_TypedConfig) + if !ok { + return fmt.Errorf("%T: ConfigType type %T not handled", x, x.ConfigType) + } + if tc.TypedConfig != nil { + if err := convertTypedConfigsToV2(tc.TypedConfig); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + } + return nil + case *envoy_core_v2.TransportSocket: + if x.ConfigType != nil { + tc, ok := x.ConfigType.(*envoy_core_v2.TransportSocket_TypedConfig) + if !ok { + return fmt.Errorf("%T: ConfigType type %T not handled", x, x.ConfigType) + } + if tc.TypedConfig != nil { + if err := convertTypedConfigsToV2(tc.TypedConfig); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + } + return nil + case *envoy_api_v2.ClusterLoadAssignment: + return nil + case *envoy_api_v2.Cluster: + if x.TransportSocket != nil { + if err := convertTypedConfigsToV2(x.TransportSocket); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + for _, tsm := range x.TransportSocketMatches { + if tsm.TransportSocket != nil { + if err := convertTypedConfigsToV2(tsm.TransportSocket); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + } + if x.EdsClusterConfig != nil { + if x.EdsClusterConfig.EdsConfig != nil { + if err := convertTypedConfigsToV2(x.EdsClusterConfig.EdsConfig); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + } + return nil + case *envoy_api_v2.RouteConfiguration: + for _, vhost := range x.VirtualHosts { + if err := convertTypedConfigsToV2(vhost); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + if x.Vhds != nil && x.Vhds.ConfigSource != nil { + if err := convertTypedConfigsToV2(x.Vhds.ConfigSource); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + return nil + case *envoy_route_v2.VirtualHost: + if x.RetryPolicy != nil { + if err := convertTypedConfigsToV2(x.RetryPolicy); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + return nil + case *envoy_route_v2.RetryPolicy: + return nil + case *envoy_http_v2.HttpFilter: + if x.ConfigType != nil { + tc, ok := x.ConfigType.(*envoy_http_v2.HttpFilter_TypedConfig) + if !ok { + return fmt.Errorf("%T: ConfigType type %T not handled", x, x.ConfigType) + } + if tc.TypedConfig != nil { + if err := convertTypedConfigsToV2(tc.TypedConfig); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + } + return nil + case *envoy_core_v2.ConfigSource: + if x.ConfigSourceSpecifier != nil { + if _, ok := x.ConfigSourceSpecifier.(*envoy_core_v2.ConfigSource_Ads); !ok { + return fmt.Errorf("%T: ConfigSourceSpecifier type %T not handled", x, x.ConfigSourceSpecifier) + } + } + x.ResourceApiVersion = envoy_core_v2.ApiVersion_V2 + return nil + case *envoy_http_v2.HttpConnectionManager: // "envoy.filters.network.http_connection_manager" + if x.RouteSpecifier != nil { + switch spec := x.RouteSpecifier.(type) { + case *envoy_http_v2.HttpConnectionManager_Rds: + if spec.Rds != nil && spec.Rds.ConfigSource != nil { + if err := convertTypedConfigsToV2(spec.Rds.ConfigSource); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + case *envoy_http_v2.HttpConnectionManager_RouteConfig: + if spec.RouteConfig != nil { + if err := convertTypedConfigsToV2(spec.RouteConfig); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + default: + return fmt.Errorf("%T: RouteSpecifier type %T not handled", x, spec) + } + } + for _, filter := range x.HttpFilters { + if err := convertTypedConfigsToV2(filter); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + if x.Tracing != nil && x.Tracing.Provider != nil && x.Tracing.Provider.ConfigType != nil { + tc, ok := x.Tracing.Provider.ConfigType.(*envoy_trace_v2.Tracing_Http_TypedConfig) + if !ok { + return fmt.Errorf("%T: Tracing.Provider.ConfigType type %T not handled", x, x.Tracing.Provider.ConfigType) + } + if err := convertTypedConfigsToV2(tc.TypedConfig); err != nil { + return fmt.Errorf("%T: %w", x, err) + } + } + return nil + case *envoy_tls_inspector_v2.TlsInspector: // "envoy.filters.listener.tls_inspector" + return nil + case *envoy_tcp_proxy_v2.TcpProxy: // "envoy.filters.network.tcp_proxy" + return nil + case *envoy_network_rbac_v2.RBAC: // "envoy.filters.network.rbac" + return nil + case *envoy_sni_v2.SniCluster: // "envoy.filters.network.sni_cluster" + return nil + case *envoy_http_rbac_v2.RBAC: + return nil + case *envoy_tls_v2.UpstreamTlsContext: + return nil + case *envoy_tls_v2.DownstreamTlsContext: + return nil + default: + return fmt.Errorf("could not convert unexpected type to v2: %T", pb) + } +} + +func convertTypeUrlsToV2(typeUrl *string) error { + if _, ok := typeConvert2to3[*typeUrl]; ok { + return nil // already happened + } + + converted, ok := typeConvert3to2[*typeUrl] + if !ok { + return fmt.Errorf("could not convert type url to v2: %s", *typeUrl) + } + *typeUrl = converted + return nil +} + +func convertTypeUrlsToV3(typeUrl *string) error { + if _, ok := typeConvert3to2[*typeUrl]; ok { + return nil // already happened + } + + converted, ok := typeConvert2to3[*typeUrl] + if !ok { + return fmt.Errorf("could not convert type url to v3: %s", *typeUrl) + } + *typeUrl = converted + return nil +} + +var ( + typeConvert2to3 map[string]string + typeConvert3to2 map[string]string +) + +func init() { + typeConvert2to3 = make(map[string]string) + typeConvert3to2 = make(map[string]string) + + reg := func(type2, type3 string) { + if type2 == "" { + panic("v2 type is empty") + } + if type3 == "" { + panic("v3 type is empty") + } + typeConvert2to3[type2] = type3 + typeConvert3to2[type3] = type2 + } + reg2 := func(pb2, pb3 proto.Message) { + any2, err := ptypes.MarshalAny(pb2) + if err != nil { + panic(err) + } + any3, err := ptypes.MarshalAny(pb3) + if err != nil { + panic(err) + } + + reg(any2.TypeUrl, any3.TypeUrl) + } + + // primary resources + reg2(&envoy_api_v2.Listener{}, &envoy_listener_v3.Listener{}) // LDS + reg2(&envoy_api_v2.Cluster{}, &envoy_cluster_v3.Cluster{}) // CDS + reg2(&envoy_api_v2.RouteConfiguration{}, &envoy_route_v3.RouteConfiguration{}) // RDS + reg2(&envoy_api_v2.ClusterLoadAssignment{}, &envoy_endpoint_v3.ClusterLoadAssignment{}) // EDS + + // filters + reg2(&envoy_http_v2.HttpConnectionManager{}, &envoy_http_v3.HttpConnectionManager{}) // "envoy.filters.network.http_connection_manager" + reg2(&envoy_tcp_proxy_v2.TcpProxy{}, &envoy_tcp_proxy_v3.TcpProxy{}) // "envoy.filters.network.tcp_proxy" + reg2(&envoy_network_rbac_v2.RBAC{}, &envoy_network_rbac_v3.RBAC{}) // "envoy.filters.network.rbac" + reg2(&envoy_http_rbac_v2.RBAC{}, &envoy_http_rbac_v3.RBAC{}) // "envoy.filters.http.rbac + reg2(&envoy_tls_inspector_v2.TlsInspector{}, &envoy_tls_inspector_v3.TlsInspector{}) // "envoy.filters.listener.tls_inspector" + reg2(&envoy_sni_v2.SniCluster{}, &envoy_sni_v3.SniCluster{}) // "envoy.filters.network.sni_cluster" + + // cluster tls + reg2(&envoy_tls_v2.UpstreamTlsContext{}, &envoy_tls_v3.UpstreamTlsContext{}) + reg2(&envoy_tls_v2.DownstreamTlsContext{}, &envoy_tls_v3.DownstreamTlsContext{}) + + // extension elements + reg2(&envoy_metrics_v2.DogStatsdSink{}, &envoy_metrics_v3.DogStatsdSink{}) + reg2(&envoy_metrics_v2.StatsdSink{}, &envoy_metrics_v3.StatsdSink{}) + reg2(&envoy_trace_v2.ZipkinConfig{}, &envoy_trace_v3.ZipkinConfig{}) +} diff --git a/command/connect/envoy/bootstrap_config.go b/command/connect/envoy/bootstrap_config.go index 703c61bc6..7a4df51a3 100644 --- a/command/connect/envoy/bootstrap_config.go +++ b/command/connect/envoy/bootstrap_config.go @@ -247,7 +247,7 @@ func (c *BootstrapConfig) generateStatsSinks(args *BootstrapTplArgs) error { if c.StatsdURL != "" { sinkJSON, err := c.generateStatsSinkJSON( "envoy.stat_sinks.statsd", - "type.googleapis.com/envoy.config.metrics.v2.StatsdSink", + "type.googleapis.com/envoy.config.metrics.v3.StatsdSink", c.StatsdURL, ) if err != nil { @@ -258,7 +258,7 @@ func (c *BootstrapConfig) generateStatsSinks(args *BootstrapTplArgs) error { if c.DogstatsdURL != "" { sinkJSON, err := c.generateStatsSinkJSON( "envoy.stat_sinks.dog_statsd", - "type.googleapis.com/envoy.config.metrics.v2.DogStatsdSink", + "type.googleapis.com/envoy.config.metrics.v3.DogStatsdSink", c.DogstatsdURL, ) if err != nil { @@ -276,7 +276,7 @@ func (c *BootstrapConfig) generateStatsSinks(args *BootstrapTplArgs) error { return nil } -func (c *BootstrapConfig) generateStatsSinkJSON(name, typeName, addr string) (string, error) { +func (c *BootstrapConfig) generateStatsSinkJSON(name string, typeName string, addr string) (string, error) { // Resolve address ENV var if len(addr) > 2 && addr[0] == '$' { addr = os.Getenv(addr[1:]) @@ -557,6 +557,7 @@ func (c *BootstrapConfig) generateListenerConfig(args *BootstrapTplArgs, bindAdd clusterJSON := `{ "name": "` + selfAdminName + `", + "ignore_health_on_host_removal": false, "connect_timeout": "5s", "type": "STATIC", "http_protocol_options": {}, @@ -576,7 +577,7 @@ func (c *BootstrapConfig) generateListenerConfig(args *BootstrapTplArgs, bindAdd } } ] - } + } ] } }` @@ -593,8 +594,8 @@ func (c *BootstrapConfig) generateListenerConfig(args *BootstrapTplArgs, bindAdd "filters": [ { "name": "envoy.filters.network.http_connection_manager", - "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager", + "typedConfig": { + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", "stat_prefix": "` + name + `", "codec_type": "HTTP1", "route_config": { diff --git a/command/connect/envoy/bootstrap_config_test.go b/command/connect/envoy/bootstrap_config_test.go index b896c5196..c296c402a 100644 --- a/command/connect/envoy/bootstrap_config_test.go +++ b/command/connect/envoy/bootstrap_config_test.go @@ -14,6 +14,7 @@ import ( const ( expectedSelfAdminCluster = `{ "name": "self_admin", + "ignore_health_on_host_removal": false, "connect_timeout": "5s", "type": "STATIC", "http_protocol_options": {}, @@ -51,7 +52,7 @@ const ( { "name": "envoy.filters.network.http_connection_manager", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager", + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", "stat_prefix": "envoy_prometheus_metrics", "codec_type": "HTTP1", "route_config": { @@ -109,7 +110,7 @@ const ( { "name": "envoy.filters.network.http_connection_manager", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager", + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", "stat_prefix": "envoy_metrics", "codec_type": "HTTP1", "route_config": { @@ -167,7 +168,7 @@ const ( { "name": "envoy.filters.network.http_connection_manager", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager", + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", "stat_prefix": "envoy_ready", "codec_type": "HTTP1", "route_config": { @@ -273,7 +274,7 @@ func TestBootstrapConfig_ConfigureArgs(t *testing.T) { StatsSinksJSON: `[{ "name": "envoy.stat_sinks.statsd", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.metrics.v2.StatsdSink", + "@type": "type.googleapis.com/envoy.config.metrics.v3.StatsdSink", "address": { "socket_address": { "address": "127.0.0.1", @@ -301,7 +302,7 @@ func TestBootstrapConfig_ConfigureArgs(t *testing.T) { StatsSinksJSON: `[{ "name": "envoy.stat_sinks.statsd", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.metrics.v2.StatsdSink", + "@type": "type.googleapis.com/envoy.config.metrics.v3.StatsdSink", "address": { "socket_address": { "address": "127.0.0.1", @@ -330,7 +331,7 @@ func TestBootstrapConfig_ConfigureArgs(t *testing.T) { StatsSinksJSON: `[{ "name": "envoy.stat_sinks.statsd", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.metrics.v2.StatsdSink", + "@type": "type.googleapis.com/envoy.config.metrics.v3.StatsdSink", "address": { "socket_address": { "address": "127.0.0.1", @@ -352,7 +353,7 @@ func TestBootstrapConfig_ConfigureArgs(t *testing.T) { StatsSinksJSON: `[{ "name": "envoy.stat_sinks.dog_statsd", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.metrics.v2.DogStatsdSink", + "@type": "type.googleapis.com/envoy.config.metrics.v3.DogStatsdSink", "address": { "socket_address": { "address": "127.0.0.1", @@ -374,7 +375,7 @@ func TestBootstrapConfig_ConfigureArgs(t *testing.T) { StatsSinksJSON: `[{ "name": "envoy.stat_sinks.dog_statsd", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.metrics.v2.DogStatsdSink", + "@type": "type.googleapis.com/envoy.config.metrics.v3.DogStatsdSink", "address": { "pipe": { "path": "/var/run/dogstatsd.sock" @@ -397,7 +398,7 @@ func TestBootstrapConfig_ConfigureArgs(t *testing.T) { StatsSinksJSON: `[{ "name": "envoy.stat_sinks.dog_statsd", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.metrics.v2.DogStatsdSink", + "@type": "type.googleapis.com/envoy.config.metrics.v3.DogStatsdSink", "address": { "socket_address": { "address": "127.0.0.1", diff --git a/command/connect/envoy/bootstrap_tpl.go b/command/connect/envoy/bootstrap_tpl.go index a2c475e25..ce675c854 100644 --- a/command/connect/envoy/bootstrap_tpl.go +++ b/command/connect/envoy/bootstrap_tpl.go @@ -116,6 +116,8 @@ type GRPC struct { AgentSocket string } +// bootstrapTemplate sets '"ignore_health_on_host_removal": false' JUST to force this to be detected as a v3 bootstrap +// config. const bootstrapTemplate = `{ "admin": { "access_log_path": "{{ .AdminAccessLogPath }}", @@ -138,20 +140,21 @@ const bootstrapTemplate = `{ "clusters": [ { "name": "{{ .LocalAgentClusterName }}", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", {{- if .AgentTLS -}} "transport_socket": { "name": "tls", "typed_config": { - "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", "common_tls_context": { "validation_context": { "trusted_ca": { "inline_string": "{{ .AgentCAPEM }}" } - } - } + } + } } }, {{- end }} @@ -178,7 +181,7 @@ const bootstrapTemplate = `{ } } ] - } + } ] } } @@ -206,10 +209,17 @@ const bootstrapTemplate = `{ "tracing": {{ .TracingConfigJSON }}, {{- end }} "dynamic_resources": { - "lds_config": { "ads": {} }, - "cds_config": { "ads": {} }, + "lds_config": { + "ads": {}, + "resource_api_version": "V3" + }, + "cds_config": { + "ads": {}, + "resource_api_version": "V3" + }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/CONSUL_HTTP_ADDR-with-https-scheme-enables-tls.golden b/command/connect/envoy/testdata/CONSUL_HTTP_ADDR-with-https-scheme-enables-tls.golden index 3ebc8e807..c549aa982 100644 --- a/command/connect/envoy/testdata/CONSUL_HTTP_ADDR-with-https-scheme-enables-tls.golden +++ b/command/connect/envoy/testdata/CONSUL_HTTP_ADDR-with-https-scheme-enables-tls.golden @@ -13,19 +13,20 @@ "id": "test-proxy", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "transport_socket": { "name": "tls", "typed_config": { - "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", "common_tls_context": { "validation_context": { "trusted_ca": { @@ -165,13 +166,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/access-log-path.golden b/command/connect/envoy/testdata/access-log-path.golden index df6362da8..c729985d0 100644 --- a/command/connect/envoy/testdata/access-log-path.golden +++ b/command/connect/envoy/testdata/access-log-path.golden @@ -13,13 +13,14 @@ "id": "test-proxy", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -152,13 +153,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/defaults.golden b/command/connect/envoy/testdata/defaults.golden index 90e226af4..bd0d2ac8f 100644 --- a/command/connect/envoy/testdata/defaults.golden +++ b/command/connect/envoy/testdata/defaults.golden @@ -13,13 +13,14 @@ "id": "test-proxy", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -152,13 +153,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/existing-ca-file.golden b/command/connect/envoy/testdata/existing-ca-file.golden index 190a4a21e..da29d6d4d 100644 --- a/command/connect/envoy/testdata/existing-ca-file.golden +++ b/command/connect/envoy/testdata/existing-ca-file.golden @@ -13,19 +13,20 @@ "id": "test-proxy", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "transport_socket": { "name": "tls", "typed_config": { - "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", "common_tls_context": { "validation_context": { "trusted_ca": { @@ -165,13 +166,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/existing-ca-path.golden b/command/connect/envoy/testdata/existing-ca-path.golden index 3f6449a24..8f7cd86fb 100644 --- a/command/connect/envoy/testdata/existing-ca-path.golden +++ b/command/connect/envoy/testdata/existing-ca-path.golden @@ -13,19 +13,20 @@ "id": "test-proxy", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "transport_socket": { "name": "tls", "typed_config": { - "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext", + "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext", "common_tls_context": { "validation_context": { "trusted_ca": { @@ -165,13 +166,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/extra_-multiple.golden b/command/connect/envoy/testdata/extra_-multiple.golden index 5f40fdc54..31e4fad80 100644 --- a/command/connect/envoy/testdata/extra_-multiple.golden +++ b/command/connect/envoy/testdata/extra_-multiple.golden @@ -13,13 +13,14 @@ "id": "test-proxy", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -174,13 +175,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/extra_-single.golden b/command/connect/envoy/testdata/extra_-single.golden index c63d52290..deac15295 100644 --- a/command/connect/envoy/testdata/extra_-single.golden +++ b/command/connect/envoy/testdata/extra_-single.golden @@ -13,13 +13,14 @@ "id": "test-proxy", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -165,13 +166,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/grpc-addr-config.golden b/command/connect/envoy/testdata/grpc-addr-config.golden index 1f94a1e23..2b1b08158 100644 --- a/command/connect/envoy/testdata/grpc-addr-config.golden +++ b/command/connect/envoy/testdata/grpc-addr-config.golden @@ -13,13 +13,14 @@ "id": "test-proxy", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -152,13 +153,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/grpc-addr-env.golden b/command/connect/envoy/testdata/grpc-addr-env.golden index 1f94a1e23..2b1b08158 100644 --- a/command/connect/envoy/testdata/grpc-addr-env.golden +++ b/command/connect/envoy/testdata/grpc-addr-env.golden @@ -13,13 +13,14 @@ "id": "test-proxy", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -152,13 +153,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/grpc-addr-flag.golden b/command/connect/envoy/testdata/grpc-addr-flag.golden index 1f94a1e23..2b1b08158 100644 --- a/command/connect/envoy/testdata/grpc-addr-flag.golden +++ b/command/connect/envoy/testdata/grpc-addr-flag.golden @@ -13,13 +13,14 @@ "id": "test-proxy", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -152,13 +153,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/grpc-addr-unix.golden b/command/connect/envoy/testdata/grpc-addr-unix.golden index 1cba477b0..9fabd3536 100644 --- a/command/connect/envoy/testdata/grpc-addr-unix.golden +++ b/command/connect/envoy/testdata/grpc-addr-unix.golden @@ -13,13 +13,14 @@ "id": "test-proxy", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -151,13 +152,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/ingress-gateway-address-specified.golden b/command/connect/envoy/testdata/ingress-gateway-address-specified.golden index 752b16e4f..97f6e6886 100644 --- a/command/connect/envoy/testdata/ingress-gateway-address-specified.golden +++ b/command/connect/envoy/testdata/ingress-gateway-address-specified.golden @@ -13,13 +13,14 @@ "id": "ingress-gateway", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -45,6 +46,7 @@ }, { "name": "self_admin", + "ignore_health_on_host_removal": false, "connect_timeout": "5s", "type": "STATIC", "http_protocol_options": {}, @@ -84,7 +86,7 @@ { "name": "envoy.filters.network.http_connection_manager", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager", + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", "stat_prefix": "envoy_ready", "codec_type": "HTTP1", "route_config": { @@ -237,13 +239,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/ingress-gateway-no-auto-register.golden b/command/connect/envoy/testdata/ingress-gateway-no-auto-register.golden index ff8fde476..c848b17f4 100644 --- a/command/connect/envoy/testdata/ingress-gateway-no-auto-register.golden +++ b/command/connect/envoy/testdata/ingress-gateway-no-auto-register.golden @@ -13,13 +13,14 @@ "id": "ingress-gateway", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -45,6 +46,7 @@ }, { "name": "self_admin", + "ignore_health_on_host_removal": false, "connect_timeout": "5s", "type": "STATIC", "http_protocol_options": {}, @@ -84,7 +86,7 @@ { "name": "envoy.filters.network.http_connection_manager", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager", + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", "stat_prefix": "envoy_ready", "codec_type": "HTTP1", "route_config": { @@ -237,13 +239,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/ingress-gateway-register-with-service-and-proxy-id.golden b/command/connect/envoy/testdata/ingress-gateway-register-with-service-and-proxy-id.golden index 9d73aeccd..87f534df7 100644 --- a/command/connect/envoy/testdata/ingress-gateway-register-with-service-and-proxy-id.golden +++ b/command/connect/envoy/testdata/ingress-gateway-register-with-service-and-proxy-id.golden @@ -13,13 +13,14 @@ "id": "my-gateway-123", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -45,6 +46,7 @@ }, { "name": "self_admin", + "ignore_health_on_host_removal": false, "connect_timeout": "5s", "type": "STATIC", "http_protocol_options": {}, @@ -84,7 +86,7 @@ { "name": "envoy.filters.network.http_connection_manager", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager", + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", "stat_prefix": "envoy_ready", "codec_type": "HTTP1", "route_config": { @@ -237,13 +239,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/ingress-gateway-register-with-service-without-proxy-id.golden b/command/connect/envoy/testdata/ingress-gateway-register-with-service-without-proxy-id.golden index 70d36e8ac..40f0aab2d 100644 --- a/command/connect/envoy/testdata/ingress-gateway-register-with-service-without-proxy-id.golden +++ b/command/connect/envoy/testdata/ingress-gateway-register-with-service-without-proxy-id.golden @@ -13,13 +13,14 @@ "id": "my-gateway", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -45,6 +46,7 @@ }, { "name": "self_admin", + "ignore_health_on_host_removal": false, "connect_timeout": "5s", "type": "STATIC", "http_protocol_options": {}, @@ -84,7 +86,7 @@ { "name": "envoy.filters.network.http_connection_manager", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager", + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", "stat_prefix": "envoy_ready", "codec_type": "HTTP1", "route_config": { @@ -237,13 +239,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/ingress-gateway.golden b/command/connect/envoy/testdata/ingress-gateway.golden index 7af6ca12c..8a918196c 100644 --- a/command/connect/envoy/testdata/ingress-gateway.golden +++ b/command/connect/envoy/testdata/ingress-gateway.golden @@ -13,13 +13,14 @@ "id": "ingress-gateway-1", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -45,6 +46,7 @@ }, { "name": "self_admin", + "ignore_health_on_host_removal": false, "connect_timeout": "5s", "type": "STATIC", "http_protocol_options": {}, @@ -84,7 +86,7 @@ { "name": "envoy.filters.network.http_connection_manager", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager", + "@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", "stat_prefix": "envoy_ready", "codec_type": "HTTP1", "route_config": { @@ -237,13 +239,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/stats-config-override.golden b/command/connect/envoy/testdata/stats-config-override.golden index 72a133019..1e3becd70 100644 --- a/command/connect/envoy/testdata/stats-config-override.golden +++ b/command/connect/envoy/testdata/stats-config-override.golden @@ -13,13 +13,14 @@ "id": "test-proxy", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -50,13 +51,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/token-arg.golden b/command/connect/envoy/testdata/token-arg.golden index 8098b5cc6..1ba256fd1 100644 --- a/command/connect/envoy/testdata/token-arg.golden +++ b/command/connect/envoy/testdata/token-arg.golden @@ -13,13 +13,14 @@ "id": "test-proxy", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -152,13 +153,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/token-env.golden b/command/connect/envoy/testdata/token-env.golden index 8098b5cc6..1ba256fd1 100644 --- a/command/connect/envoy/testdata/token-env.golden +++ b/command/connect/envoy/testdata/token-env.golden @@ -13,13 +13,14 @@ "id": "test-proxy", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -152,13 +153,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/token-file-arg.golden b/command/connect/envoy/testdata/token-file-arg.golden index 8098b5cc6..1ba256fd1 100644 --- a/command/connect/envoy/testdata/token-file-arg.golden +++ b/command/connect/envoy/testdata/token-file-arg.golden @@ -13,13 +13,14 @@ "id": "test-proxy", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -152,13 +153,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/token-file-env.golden b/command/connect/envoy/testdata/token-file-env.golden index 8098b5cc6..1ba256fd1 100644 --- a/command/connect/envoy/testdata/token-file-env.golden +++ b/command/connect/envoy/testdata/token-file-env.golden @@ -13,13 +13,14 @@ "id": "test-proxy", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -152,13 +153,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/command/connect/envoy/testdata/zipkin-tracing-config.golden b/command/connect/envoy/testdata/zipkin-tracing-config.golden index 020ebde3f..a9880a295 100644 --- a/command/connect/envoy/testdata/zipkin-tracing-config.golden +++ b/command/connect/envoy/testdata/zipkin-tracing-config.golden @@ -13,13 +13,14 @@ "id": "test-proxy", "metadata": { "namespace": "default", - "envoy_version": "1.16.2" + "envoy_version": "1.17.0" } }, "static_resources": { "clusters": [ { "name": "local_agent", + "ignore_health_on_host_removal": false, "connect_timeout": "1s", "type": "STATIC", "http2_protocol_options": {}, @@ -185,13 +186,16 @@ }, "dynamic_resources": { "lds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "cds_config": { - "ads": {} + "ads": {}, + "resource_api_version": "V3" }, "ads_config": { "api_type": "GRPC", + "transport_api_version": "V3", "grpc_services": { "initial_metadata": [ { diff --git a/test/integration/connect/envoy/case-zipkin/service_s1.hcl b/test/integration/connect/envoy/case-zipkin/service_s1.hcl index 505f56afa..ed4d882dd 100644 --- a/test/integration/connect/envoy/case-zipkin/service_s1.hcl +++ b/test/integration/connect/envoy/case-zipkin/service_s1.hcl @@ -20,7 +20,7 @@ services { "http": { "name": "envoy.tracers.zipkin", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.trace.v2.ZipkinConfig", + "@type": "type.googleapis.com/envoy.config.trace.v3.ZipkinConfig", "collector_cluster": "zipkin", "collector_endpoint_version": "HTTP_JSON", "collector_endpoint": "/api/v1/spans", diff --git a/test/integration/connect/envoy/case-zipkin/service_s2.hcl b/test/integration/connect/envoy/case-zipkin/service_s2.hcl index 9dcc5c07a..f62bd7a7a 100644 --- a/test/integration/connect/envoy/case-zipkin/service_s2.hcl +++ b/test/integration/connect/envoy/case-zipkin/service_s2.hcl @@ -11,7 +11,7 @@ services { "http": { "name": "envoy.tracers.zipkin", "typedConfig": { - "@type": "type.googleapis.com/envoy.config.trace.v2.ZipkinConfig", + "@type": "type.googleapis.com/envoy.config.trace.v3.ZipkinConfig", "collector_cluster": "zipkin", "collector_endpoint_version": "HTTP_JSON", "collector_endpoint": "/api/v1/spans", diff --git a/test/integration/connect/envoy/helpers.bash b/test/integration/connect/envoy/helpers.bash index d1838f934..bc03e6f40 100755 --- a/test/integration/connect/envoy/helpers.bash +++ b/test/integration/connect/envoy/helpers.bash @@ -489,6 +489,19 @@ function docker_consul { docker run -i --rm --network container:envoy_consul-${DC}_1 consul-dev "$@" } +function docker_consul_for_proxy_bootstrap { + local DC=$1 + shift 1 + + if [[ -n "${TEST_V2_XDS}" ]]; then + # pre-pull this image and discard any output so we don't corrupt the bootstrap file + docker pull "${OLD_XDSV2_AWARE_CONSUL_VERSION}" &>/dev/null + docker run -i --rm --network container:envoy_consul-${DC}_1 "${OLD_XDSV2_AWARE_CONSUL_VERSION}" "$@" + else + docker run -i --rm --network container:envoy_consul-${DC}_1 consul-dev "$@" + fi +} + function docker_wget { local DC=$1 shift 1 @@ -696,7 +709,7 @@ function gen_envoy_bootstrap { PROXY_ID="$SERVICE-sidecar-proxy" fi - if output=$(docker_consul "$DC" connect envoy -bootstrap \ + if output=$(docker_consul_for_proxy_bootstrap "$DC" connect envoy -bootstrap \ -proxy-id $PROXY_ID \ -envoy-version "$ENVOY_VERSION" \ -admin-bind 0.0.0.0:$ADMIN_PORT ${EXTRA_ENVOY_BS_ARGS} 2>&1); then diff --git a/test/integration/connect/envoy/run-tests.sh b/test/integration/connect/envoy/run-tests.sh index b73dc379e..b08cd924c 100755 --- a/test/integration/connect/envoy/run-tests.sh +++ b/test/integration/connect/envoy/run-tests.sh @@ -9,14 +9,29 @@ readonly HASHICORP_DOCKER_PROXY="docker.mirror.hashicorp.services" # DEBUG=1 enables set -x for this script so echos every command run DEBUG=${DEBUG:-} +OLD_XDSV2_AWARE_CONSUL_VERSION="${OLD_XDSV2_AWARE_CONSUL_VERSION:-"${HASHICORP_DOCKER_PROXY}/library/consul:1.9.1"}" +export OLD_XDSV2_AWARE_CONSUL_VERSION + +# TEST_V2_XDS=1 causes it to do just the 'consul connect envoy' part using +# the consul version in $OLD_XDSV2_AWARE_CONSUL_VERSION +TEST_V2_XDS=${TEST_V2_XDS:-} +export TEST_V2_XDS + # ENVOY_VERSION to run each test against -ENVOY_VERSION=${ENVOY_VERSION:-"1.16.2"} +ENVOY_VERSION=${ENVOY_VERSION:-"1.17.0"} export ENVOY_VERSION if [ ! -z "$DEBUG" ] ; then set -x fi +if [[ -n "$TEST_V2_XDS" ]] ; then + if [[ ! "${ENVOY_VERSION}" =~ ^1\.1[456]\. ]]; then + echo "Envoy version ${ENVOY_VERSION} is not compatible with Consul 1.9.1 so we cannot test the xDS v2 fallback code" + exit 1 + fi +fi + source helpers.bash function command_error { diff --git a/test/integration/connect/envoy/test-envoy-versions.sh b/test/integration/connect/envoy/test-envoy-versions.sh index e0807ee40..88f8b4550 100755 --- a/test/integration/connect/envoy/test-envoy-versions.sh +++ b/test/integration/connect/envoy/test-envoy-versions.sh @@ -18,8 +18,11 @@ cd "$(dirname "$0")" # 1.13.2 # 1.13.3 # 1.13.4 + # 1.13.5 + # 1.13.7 # 1.13.6 # 1.13.7 + versions=( 1.14.1 1.14.2 @@ -34,8 +37,10 @@ versions=( 1.16.0 1.16.1 1.16.2 + 1.17.0 ) +set +e for v in "${versions[@]}"; do echo "ENVOY_VERSION=${v}" export ENVOY_VERSION="${v}" diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/accesslog/v3/accesslog.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/accesslog/v3/accesslog.pb.go new file mode 100644 index 000000000..4f27a639c --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/accesslog/v3/accesslog.pb.go @@ -0,0 +1,1098 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/accesslog/v3/accesslog.proto + +package envoy_config_accesslog_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + v32 "github.com/envoyproxy/go-control-plane/envoy/config/route/v3" + v31 "github.com/envoyproxy/go-control-plane/envoy/type/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + any "github.com/golang/protobuf/ptypes/any" + _struct "github.com/golang/protobuf/ptypes/struct" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type ComparisonFilter_Op int32 + +const ( + ComparisonFilter_EQ ComparisonFilter_Op = 0 + ComparisonFilter_GE ComparisonFilter_Op = 1 + ComparisonFilter_LE ComparisonFilter_Op = 2 +) + +var ComparisonFilter_Op_name = map[int32]string{ + 0: "EQ", + 1: "GE", + 2: "LE", +} + +var ComparisonFilter_Op_value = map[string]int32{ + "EQ": 0, + "GE": 1, + "LE": 2, +} + +func (x ComparisonFilter_Op) String() string { + return proto.EnumName(ComparisonFilter_Op_name, int32(x)) +} + +func (ComparisonFilter_Op) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_3da62233f8f33406, []int{2, 0} +} + +type GrpcStatusFilter_Status int32 + +const ( + GrpcStatusFilter_OK GrpcStatusFilter_Status = 0 + GrpcStatusFilter_CANCELED GrpcStatusFilter_Status = 1 + GrpcStatusFilter_UNKNOWN GrpcStatusFilter_Status = 2 + GrpcStatusFilter_INVALID_ARGUMENT GrpcStatusFilter_Status = 3 + GrpcStatusFilter_DEADLINE_EXCEEDED GrpcStatusFilter_Status = 4 + GrpcStatusFilter_NOT_FOUND GrpcStatusFilter_Status = 5 + GrpcStatusFilter_ALREADY_EXISTS GrpcStatusFilter_Status = 6 + GrpcStatusFilter_PERMISSION_DENIED GrpcStatusFilter_Status = 7 + GrpcStatusFilter_RESOURCE_EXHAUSTED GrpcStatusFilter_Status = 8 + GrpcStatusFilter_FAILED_PRECONDITION GrpcStatusFilter_Status = 9 + GrpcStatusFilter_ABORTED GrpcStatusFilter_Status = 10 + GrpcStatusFilter_OUT_OF_RANGE GrpcStatusFilter_Status = 11 + GrpcStatusFilter_UNIMPLEMENTED GrpcStatusFilter_Status = 12 + GrpcStatusFilter_INTERNAL GrpcStatusFilter_Status = 13 + GrpcStatusFilter_UNAVAILABLE GrpcStatusFilter_Status = 14 + GrpcStatusFilter_DATA_LOSS GrpcStatusFilter_Status = 15 + GrpcStatusFilter_UNAUTHENTICATED GrpcStatusFilter_Status = 16 +) + +var GrpcStatusFilter_Status_name = map[int32]string{ + 0: "OK", + 1: "CANCELED", + 2: "UNKNOWN", + 3: "INVALID_ARGUMENT", + 4: "DEADLINE_EXCEEDED", + 5: "NOT_FOUND", + 6: "ALREADY_EXISTS", + 7: "PERMISSION_DENIED", + 8: "RESOURCE_EXHAUSTED", + 9: "FAILED_PRECONDITION", + 10: "ABORTED", + 11: "OUT_OF_RANGE", + 12: "UNIMPLEMENTED", + 13: "INTERNAL", + 14: "UNAVAILABLE", + 15: "DATA_LOSS", + 16: "UNAUTHENTICATED", +} + +var GrpcStatusFilter_Status_value = map[string]int32{ + "OK": 0, + "CANCELED": 1, + "UNKNOWN": 2, + "INVALID_ARGUMENT": 3, + "DEADLINE_EXCEEDED": 4, + "NOT_FOUND": 5, + "ALREADY_EXISTS": 6, + "PERMISSION_DENIED": 7, + "RESOURCE_EXHAUSTED": 8, + "FAILED_PRECONDITION": 9, + "ABORTED": 10, + "OUT_OF_RANGE": 11, + "UNIMPLEMENTED": 12, + "INTERNAL": 13, + "UNAVAILABLE": 14, + "DATA_LOSS": 15, + "UNAUTHENTICATED": 16, +} + +func (x GrpcStatusFilter_Status) String() string { + return proto.EnumName(GrpcStatusFilter_Status_name, int32(x)) +} + +func (GrpcStatusFilter_Status) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_3da62233f8f33406, []int{12, 0} +} + +type AccessLog struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Filter *AccessLogFilter `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` + // Types that are valid to be assigned to ConfigType: + // *AccessLog_HiddenEnvoyDeprecatedConfig + // *AccessLog_TypedConfig + ConfigType isAccessLog_ConfigType `protobuf_oneof:"config_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AccessLog) Reset() { *m = AccessLog{} } +func (m *AccessLog) String() string { return proto.CompactTextString(m) } +func (*AccessLog) ProtoMessage() {} +func (*AccessLog) Descriptor() ([]byte, []int) { + return fileDescriptor_3da62233f8f33406, []int{0} +} + +func (m *AccessLog) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccessLog.Unmarshal(m, b) +} +func (m *AccessLog) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccessLog.Marshal(b, m, deterministic) +} +func (m *AccessLog) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccessLog.Merge(m, src) +} +func (m *AccessLog) XXX_Size() int { + return xxx_messageInfo_AccessLog.Size(m) +} +func (m *AccessLog) XXX_DiscardUnknown() { + xxx_messageInfo_AccessLog.DiscardUnknown(m) +} + +var xxx_messageInfo_AccessLog proto.InternalMessageInfo + +func (m *AccessLog) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *AccessLog) GetFilter() *AccessLogFilter { + if m != nil { + return m.Filter + } + return nil +} + +type isAccessLog_ConfigType interface { + isAccessLog_ConfigType() +} + +type AccessLog_HiddenEnvoyDeprecatedConfig struct { + HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,3,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"` +} + +type AccessLog_TypedConfig struct { + TypedConfig *any.Any `protobuf:"bytes,4,opt,name=typed_config,json=typedConfig,proto3,oneof"` +} + +func (*AccessLog_HiddenEnvoyDeprecatedConfig) isAccessLog_ConfigType() {} + +func (*AccessLog_TypedConfig) isAccessLog_ConfigType() {} + +func (m *AccessLog) GetConfigType() isAccessLog_ConfigType { + if m != nil { + return m.ConfigType + } + return nil +} + +// Deprecated: Do not use. +func (m *AccessLog) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct { + if x, ok := m.GetConfigType().(*AccessLog_HiddenEnvoyDeprecatedConfig); ok { + return x.HiddenEnvoyDeprecatedConfig + } + return nil +} + +func (m *AccessLog) GetTypedConfig() *any.Any { + if x, ok := m.GetConfigType().(*AccessLog_TypedConfig); ok { + return x.TypedConfig + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*AccessLog) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*AccessLog_HiddenEnvoyDeprecatedConfig)(nil), + (*AccessLog_TypedConfig)(nil), + } +} + +type AccessLogFilter struct { + // Types that are valid to be assigned to FilterSpecifier: + // *AccessLogFilter_StatusCodeFilter + // *AccessLogFilter_DurationFilter + // *AccessLogFilter_NotHealthCheckFilter + // *AccessLogFilter_TraceableFilter + // *AccessLogFilter_RuntimeFilter + // *AccessLogFilter_AndFilter + // *AccessLogFilter_OrFilter + // *AccessLogFilter_HeaderFilter + // *AccessLogFilter_ResponseFlagFilter + // *AccessLogFilter_GrpcStatusFilter + // *AccessLogFilter_ExtensionFilter + FilterSpecifier isAccessLogFilter_FilterSpecifier `protobuf_oneof:"filter_specifier"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AccessLogFilter) Reset() { *m = AccessLogFilter{} } +func (m *AccessLogFilter) String() string { return proto.CompactTextString(m) } +func (*AccessLogFilter) ProtoMessage() {} +func (*AccessLogFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_3da62233f8f33406, []int{1} +} + +func (m *AccessLogFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccessLogFilter.Unmarshal(m, b) +} +func (m *AccessLogFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccessLogFilter.Marshal(b, m, deterministic) +} +func (m *AccessLogFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccessLogFilter.Merge(m, src) +} +func (m *AccessLogFilter) XXX_Size() int { + return xxx_messageInfo_AccessLogFilter.Size(m) +} +func (m *AccessLogFilter) XXX_DiscardUnknown() { + xxx_messageInfo_AccessLogFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_AccessLogFilter proto.InternalMessageInfo + +type isAccessLogFilter_FilterSpecifier interface { + isAccessLogFilter_FilterSpecifier() +} + +type AccessLogFilter_StatusCodeFilter struct { + StatusCodeFilter *StatusCodeFilter `protobuf:"bytes,1,opt,name=status_code_filter,json=statusCodeFilter,proto3,oneof"` +} + +type AccessLogFilter_DurationFilter struct { + DurationFilter *DurationFilter `protobuf:"bytes,2,opt,name=duration_filter,json=durationFilter,proto3,oneof"` +} + +type AccessLogFilter_NotHealthCheckFilter struct { + NotHealthCheckFilter *NotHealthCheckFilter `protobuf:"bytes,3,opt,name=not_health_check_filter,json=notHealthCheckFilter,proto3,oneof"` +} + +type AccessLogFilter_TraceableFilter struct { + TraceableFilter *TraceableFilter `protobuf:"bytes,4,opt,name=traceable_filter,json=traceableFilter,proto3,oneof"` +} + +type AccessLogFilter_RuntimeFilter struct { + RuntimeFilter *RuntimeFilter `protobuf:"bytes,5,opt,name=runtime_filter,json=runtimeFilter,proto3,oneof"` +} + +type AccessLogFilter_AndFilter struct { + AndFilter *AndFilter `protobuf:"bytes,6,opt,name=and_filter,json=andFilter,proto3,oneof"` +} + +type AccessLogFilter_OrFilter struct { + OrFilter *OrFilter `protobuf:"bytes,7,opt,name=or_filter,json=orFilter,proto3,oneof"` +} + +type AccessLogFilter_HeaderFilter struct { + HeaderFilter *HeaderFilter `protobuf:"bytes,8,opt,name=header_filter,json=headerFilter,proto3,oneof"` +} + +type AccessLogFilter_ResponseFlagFilter struct { + ResponseFlagFilter *ResponseFlagFilter `protobuf:"bytes,9,opt,name=response_flag_filter,json=responseFlagFilter,proto3,oneof"` +} + +type AccessLogFilter_GrpcStatusFilter struct { + GrpcStatusFilter *GrpcStatusFilter `protobuf:"bytes,10,opt,name=grpc_status_filter,json=grpcStatusFilter,proto3,oneof"` +} + +type AccessLogFilter_ExtensionFilter struct { + ExtensionFilter *ExtensionFilter `protobuf:"bytes,11,opt,name=extension_filter,json=extensionFilter,proto3,oneof"` +} + +func (*AccessLogFilter_StatusCodeFilter) isAccessLogFilter_FilterSpecifier() {} + +func (*AccessLogFilter_DurationFilter) isAccessLogFilter_FilterSpecifier() {} + +func (*AccessLogFilter_NotHealthCheckFilter) isAccessLogFilter_FilterSpecifier() {} + +func (*AccessLogFilter_TraceableFilter) isAccessLogFilter_FilterSpecifier() {} + +func (*AccessLogFilter_RuntimeFilter) isAccessLogFilter_FilterSpecifier() {} + +func (*AccessLogFilter_AndFilter) isAccessLogFilter_FilterSpecifier() {} + +func (*AccessLogFilter_OrFilter) isAccessLogFilter_FilterSpecifier() {} + +func (*AccessLogFilter_HeaderFilter) isAccessLogFilter_FilterSpecifier() {} + +func (*AccessLogFilter_ResponseFlagFilter) isAccessLogFilter_FilterSpecifier() {} + +func (*AccessLogFilter_GrpcStatusFilter) isAccessLogFilter_FilterSpecifier() {} + +func (*AccessLogFilter_ExtensionFilter) isAccessLogFilter_FilterSpecifier() {} + +func (m *AccessLogFilter) GetFilterSpecifier() isAccessLogFilter_FilterSpecifier { + if m != nil { + return m.FilterSpecifier + } + return nil +} + +func (m *AccessLogFilter) GetStatusCodeFilter() *StatusCodeFilter { + if x, ok := m.GetFilterSpecifier().(*AccessLogFilter_StatusCodeFilter); ok { + return x.StatusCodeFilter + } + return nil +} + +func (m *AccessLogFilter) GetDurationFilter() *DurationFilter { + if x, ok := m.GetFilterSpecifier().(*AccessLogFilter_DurationFilter); ok { + return x.DurationFilter + } + return nil +} + +func (m *AccessLogFilter) GetNotHealthCheckFilter() *NotHealthCheckFilter { + if x, ok := m.GetFilterSpecifier().(*AccessLogFilter_NotHealthCheckFilter); ok { + return x.NotHealthCheckFilter + } + return nil +} + +func (m *AccessLogFilter) GetTraceableFilter() *TraceableFilter { + if x, ok := m.GetFilterSpecifier().(*AccessLogFilter_TraceableFilter); ok { + return x.TraceableFilter + } + return nil +} + +func (m *AccessLogFilter) GetRuntimeFilter() *RuntimeFilter { + if x, ok := m.GetFilterSpecifier().(*AccessLogFilter_RuntimeFilter); ok { + return x.RuntimeFilter + } + return nil +} + +func (m *AccessLogFilter) GetAndFilter() *AndFilter { + if x, ok := m.GetFilterSpecifier().(*AccessLogFilter_AndFilter); ok { + return x.AndFilter + } + return nil +} + +func (m *AccessLogFilter) GetOrFilter() *OrFilter { + if x, ok := m.GetFilterSpecifier().(*AccessLogFilter_OrFilter); ok { + return x.OrFilter + } + return nil +} + +func (m *AccessLogFilter) GetHeaderFilter() *HeaderFilter { + if x, ok := m.GetFilterSpecifier().(*AccessLogFilter_HeaderFilter); ok { + return x.HeaderFilter + } + return nil +} + +func (m *AccessLogFilter) GetResponseFlagFilter() *ResponseFlagFilter { + if x, ok := m.GetFilterSpecifier().(*AccessLogFilter_ResponseFlagFilter); ok { + return x.ResponseFlagFilter + } + return nil +} + +func (m *AccessLogFilter) GetGrpcStatusFilter() *GrpcStatusFilter { + if x, ok := m.GetFilterSpecifier().(*AccessLogFilter_GrpcStatusFilter); ok { + return x.GrpcStatusFilter + } + return nil +} + +func (m *AccessLogFilter) GetExtensionFilter() *ExtensionFilter { + if x, ok := m.GetFilterSpecifier().(*AccessLogFilter_ExtensionFilter); ok { + return x.ExtensionFilter + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*AccessLogFilter) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*AccessLogFilter_StatusCodeFilter)(nil), + (*AccessLogFilter_DurationFilter)(nil), + (*AccessLogFilter_NotHealthCheckFilter)(nil), + (*AccessLogFilter_TraceableFilter)(nil), + (*AccessLogFilter_RuntimeFilter)(nil), + (*AccessLogFilter_AndFilter)(nil), + (*AccessLogFilter_OrFilter)(nil), + (*AccessLogFilter_HeaderFilter)(nil), + (*AccessLogFilter_ResponseFlagFilter)(nil), + (*AccessLogFilter_GrpcStatusFilter)(nil), + (*AccessLogFilter_ExtensionFilter)(nil), + } +} + +type ComparisonFilter struct { + Op ComparisonFilter_Op `protobuf:"varint,1,opt,name=op,proto3,enum=envoy.config.accesslog.v3.ComparisonFilter_Op" json:"op,omitempty"` + Value *v3.RuntimeUInt32 `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ComparisonFilter) Reset() { *m = ComparisonFilter{} } +func (m *ComparisonFilter) String() string { return proto.CompactTextString(m) } +func (*ComparisonFilter) ProtoMessage() {} +func (*ComparisonFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_3da62233f8f33406, []int{2} +} + +func (m *ComparisonFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ComparisonFilter.Unmarshal(m, b) +} +func (m *ComparisonFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ComparisonFilter.Marshal(b, m, deterministic) +} +func (m *ComparisonFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_ComparisonFilter.Merge(m, src) +} +func (m *ComparisonFilter) XXX_Size() int { + return xxx_messageInfo_ComparisonFilter.Size(m) +} +func (m *ComparisonFilter) XXX_DiscardUnknown() { + xxx_messageInfo_ComparisonFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_ComparisonFilter proto.InternalMessageInfo + +func (m *ComparisonFilter) GetOp() ComparisonFilter_Op { + if m != nil { + return m.Op + } + return ComparisonFilter_EQ +} + +func (m *ComparisonFilter) GetValue() *v3.RuntimeUInt32 { + if m != nil { + return m.Value + } + return nil +} + +type StatusCodeFilter struct { + Comparison *ComparisonFilter `protobuf:"bytes,1,opt,name=comparison,proto3" json:"comparison,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StatusCodeFilter) Reset() { *m = StatusCodeFilter{} } +func (m *StatusCodeFilter) String() string { return proto.CompactTextString(m) } +func (*StatusCodeFilter) ProtoMessage() {} +func (*StatusCodeFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_3da62233f8f33406, []int{3} +} + +func (m *StatusCodeFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StatusCodeFilter.Unmarshal(m, b) +} +func (m *StatusCodeFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StatusCodeFilter.Marshal(b, m, deterministic) +} +func (m *StatusCodeFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatusCodeFilter.Merge(m, src) +} +func (m *StatusCodeFilter) XXX_Size() int { + return xxx_messageInfo_StatusCodeFilter.Size(m) +} +func (m *StatusCodeFilter) XXX_DiscardUnknown() { + xxx_messageInfo_StatusCodeFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_StatusCodeFilter proto.InternalMessageInfo + +func (m *StatusCodeFilter) GetComparison() *ComparisonFilter { + if m != nil { + return m.Comparison + } + return nil +} + +type DurationFilter struct { + Comparison *ComparisonFilter `protobuf:"bytes,1,opt,name=comparison,proto3" json:"comparison,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DurationFilter) Reset() { *m = DurationFilter{} } +func (m *DurationFilter) String() string { return proto.CompactTextString(m) } +func (*DurationFilter) ProtoMessage() {} +func (*DurationFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_3da62233f8f33406, []int{4} +} + +func (m *DurationFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DurationFilter.Unmarshal(m, b) +} +func (m *DurationFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DurationFilter.Marshal(b, m, deterministic) +} +func (m *DurationFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_DurationFilter.Merge(m, src) +} +func (m *DurationFilter) XXX_Size() int { + return xxx_messageInfo_DurationFilter.Size(m) +} +func (m *DurationFilter) XXX_DiscardUnknown() { + xxx_messageInfo_DurationFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_DurationFilter proto.InternalMessageInfo + +func (m *DurationFilter) GetComparison() *ComparisonFilter { + if m != nil { + return m.Comparison + } + return nil +} + +type NotHealthCheckFilter struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NotHealthCheckFilter) Reset() { *m = NotHealthCheckFilter{} } +func (m *NotHealthCheckFilter) String() string { return proto.CompactTextString(m) } +func (*NotHealthCheckFilter) ProtoMessage() {} +func (*NotHealthCheckFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_3da62233f8f33406, []int{5} +} + +func (m *NotHealthCheckFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NotHealthCheckFilter.Unmarshal(m, b) +} +func (m *NotHealthCheckFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NotHealthCheckFilter.Marshal(b, m, deterministic) +} +func (m *NotHealthCheckFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_NotHealthCheckFilter.Merge(m, src) +} +func (m *NotHealthCheckFilter) XXX_Size() int { + return xxx_messageInfo_NotHealthCheckFilter.Size(m) +} +func (m *NotHealthCheckFilter) XXX_DiscardUnknown() { + xxx_messageInfo_NotHealthCheckFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_NotHealthCheckFilter proto.InternalMessageInfo + +type TraceableFilter struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TraceableFilter) Reset() { *m = TraceableFilter{} } +func (m *TraceableFilter) String() string { return proto.CompactTextString(m) } +func (*TraceableFilter) ProtoMessage() {} +func (*TraceableFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_3da62233f8f33406, []int{6} +} + +func (m *TraceableFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TraceableFilter.Unmarshal(m, b) +} +func (m *TraceableFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TraceableFilter.Marshal(b, m, deterministic) +} +func (m *TraceableFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_TraceableFilter.Merge(m, src) +} +func (m *TraceableFilter) XXX_Size() int { + return xxx_messageInfo_TraceableFilter.Size(m) +} +func (m *TraceableFilter) XXX_DiscardUnknown() { + xxx_messageInfo_TraceableFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_TraceableFilter proto.InternalMessageInfo + +type RuntimeFilter struct { + RuntimeKey string `protobuf:"bytes,1,opt,name=runtime_key,json=runtimeKey,proto3" json:"runtime_key,omitempty"` + PercentSampled *v31.FractionalPercent `protobuf:"bytes,2,opt,name=percent_sampled,json=percentSampled,proto3" json:"percent_sampled,omitempty"` + UseIndependentRandomness bool `protobuf:"varint,3,opt,name=use_independent_randomness,json=useIndependentRandomness,proto3" json:"use_independent_randomness,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RuntimeFilter) Reset() { *m = RuntimeFilter{} } +func (m *RuntimeFilter) String() string { return proto.CompactTextString(m) } +func (*RuntimeFilter) ProtoMessage() {} +func (*RuntimeFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_3da62233f8f33406, []int{7} +} + +func (m *RuntimeFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RuntimeFilter.Unmarshal(m, b) +} +func (m *RuntimeFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RuntimeFilter.Marshal(b, m, deterministic) +} +func (m *RuntimeFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_RuntimeFilter.Merge(m, src) +} +func (m *RuntimeFilter) XXX_Size() int { + return xxx_messageInfo_RuntimeFilter.Size(m) +} +func (m *RuntimeFilter) XXX_DiscardUnknown() { + xxx_messageInfo_RuntimeFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_RuntimeFilter proto.InternalMessageInfo + +func (m *RuntimeFilter) GetRuntimeKey() string { + if m != nil { + return m.RuntimeKey + } + return "" +} + +func (m *RuntimeFilter) GetPercentSampled() *v31.FractionalPercent { + if m != nil { + return m.PercentSampled + } + return nil +} + +func (m *RuntimeFilter) GetUseIndependentRandomness() bool { + if m != nil { + return m.UseIndependentRandomness + } + return false +} + +type AndFilter struct { + Filters []*AccessLogFilter `protobuf:"bytes,1,rep,name=filters,proto3" json:"filters,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AndFilter) Reset() { *m = AndFilter{} } +func (m *AndFilter) String() string { return proto.CompactTextString(m) } +func (*AndFilter) ProtoMessage() {} +func (*AndFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_3da62233f8f33406, []int{8} +} + +func (m *AndFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AndFilter.Unmarshal(m, b) +} +func (m *AndFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AndFilter.Marshal(b, m, deterministic) +} +func (m *AndFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_AndFilter.Merge(m, src) +} +func (m *AndFilter) XXX_Size() int { + return xxx_messageInfo_AndFilter.Size(m) +} +func (m *AndFilter) XXX_DiscardUnknown() { + xxx_messageInfo_AndFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_AndFilter proto.InternalMessageInfo + +func (m *AndFilter) GetFilters() []*AccessLogFilter { + if m != nil { + return m.Filters + } + return nil +} + +type OrFilter struct { + Filters []*AccessLogFilter `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *OrFilter) Reset() { *m = OrFilter{} } +func (m *OrFilter) String() string { return proto.CompactTextString(m) } +func (*OrFilter) ProtoMessage() {} +func (*OrFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_3da62233f8f33406, []int{9} +} + +func (m *OrFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OrFilter.Unmarshal(m, b) +} +func (m *OrFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OrFilter.Marshal(b, m, deterministic) +} +func (m *OrFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_OrFilter.Merge(m, src) +} +func (m *OrFilter) XXX_Size() int { + return xxx_messageInfo_OrFilter.Size(m) +} +func (m *OrFilter) XXX_DiscardUnknown() { + xxx_messageInfo_OrFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_OrFilter proto.InternalMessageInfo + +func (m *OrFilter) GetFilters() []*AccessLogFilter { + if m != nil { + return m.Filters + } + return nil +} + +type HeaderFilter struct { + Header *v32.HeaderMatcher `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HeaderFilter) Reset() { *m = HeaderFilter{} } +func (m *HeaderFilter) String() string { return proto.CompactTextString(m) } +func (*HeaderFilter) ProtoMessage() {} +func (*HeaderFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_3da62233f8f33406, []int{10} +} + +func (m *HeaderFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HeaderFilter.Unmarshal(m, b) +} +func (m *HeaderFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HeaderFilter.Marshal(b, m, deterministic) +} +func (m *HeaderFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_HeaderFilter.Merge(m, src) +} +func (m *HeaderFilter) XXX_Size() int { + return xxx_messageInfo_HeaderFilter.Size(m) +} +func (m *HeaderFilter) XXX_DiscardUnknown() { + xxx_messageInfo_HeaderFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_HeaderFilter proto.InternalMessageInfo + +func (m *HeaderFilter) GetHeader() *v32.HeaderMatcher { + if m != nil { + return m.Header + } + return nil +} + +type ResponseFlagFilter struct { + Flags []string `protobuf:"bytes,1,rep,name=flags,proto3" json:"flags,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ResponseFlagFilter) Reset() { *m = ResponseFlagFilter{} } +func (m *ResponseFlagFilter) String() string { return proto.CompactTextString(m) } +func (*ResponseFlagFilter) ProtoMessage() {} +func (*ResponseFlagFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_3da62233f8f33406, []int{11} +} + +func (m *ResponseFlagFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ResponseFlagFilter.Unmarshal(m, b) +} +func (m *ResponseFlagFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ResponseFlagFilter.Marshal(b, m, deterministic) +} +func (m *ResponseFlagFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseFlagFilter.Merge(m, src) +} +func (m *ResponseFlagFilter) XXX_Size() int { + return xxx_messageInfo_ResponseFlagFilter.Size(m) +} +func (m *ResponseFlagFilter) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseFlagFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseFlagFilter proto.InternalMessageInfo + +func (m *ResponseFlagFilter) GetFlags() []string { + if m != nil { + return m.Flags + } + return nil +} + +type GrpcStatusFilter struct { + Statuses []GrpcStatusFilter_Status `protobuf:"varint,1,rep,packed,name=statuses,proto3,enum=envoy.config.accesslog.v3.GrpcStatusFilter_Status" json:"statuses,omitempty"` + Exclude bool `protobuf:"varint,2,opt,name=exclude,proto3" json:"exclude,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GrpcStatusFilter) Reset() { *m = GrpcStatusFilter{} } +func (m *GrpcStatusFilter) String() string { return proto.CompactTextString(m) } +func (*GrpcStatusFilter) ProtoMessage() {} +func (*GrpcStatusFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_3da62233f8f33406, []int{12} +} + +func (m *GrpcStatusFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GrpcStatusFilter.Unmarshal(m, b) +} +func (m *GrpcStatusFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GrpcStatusFilter.Marshal(b, m, deterministic) +} +func (m *GrpcStatusFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_GrpcStatusFilter.Merge(m, src) +} +func (m *GrpcStatusFilter) XXX_Size() int { + return xxx_messageInfo_GrpcStatusFilter.Size(m) +} +func (m *GrpcStatusFilter) XXX_DiscardUnknown() { + xxx_messageInfo_GrpcStatusFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_GrpcStatusFilter proto.InternalMessageInfo + +func (m *GrpcStatusFilter) GetStatuses() []GrpcStatusFilter_Status { + if m != nil { + return m.Statuses + } + return nil +} + +func (m *GrpcStatusFilter) GetExclude() bool { + if m != nil { + return m.Exclude + } + return false +} + +type ExtensionFilter struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Types that are valid to be assigned to ConfigType: + // *ExtensionFilter_HiddenEnvoyDeprecatedConfig + // *ExtensionFilter_TypedConfig + ConfigType isExtensionFilter_ConfigType `protobuf_oneof:"config_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ExtensionFilter) Reset() { *m = ExtensionFilter{} } +func (m *ExtensionFilter) String() string { return proto.CompactTextString(m) } +func (*ExtensionFilter) ProtoMessage() {} +func (*ExtensionFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_3da62233f8f33406, []int{13} +} + +func (m *ExtensionFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExtensionFilter.Unmarshal(m, b) +} +func (m *ExtensionFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExtensionFilter.Marshal(b, m, deterministic) +} +func (m *ExtensionFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExtensionFilter.Merge(m, src) +} +func (m *ExtensionFilter) XXX_Size() int { + return xxx_messageInfo_ExtensionFilter.Size(m) +} +func (m *ExtensionFilter) XXX_DiscardUnknown() { + xxx_messageInfo_ExtensionFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_ExtensionFilter proto.InternalMessageInfo + +func (m *ExtensionFilter) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type isExtensionFilter_ConfigType interface { + isExtensionFilter_ConfigType() +} + +type ExtensionFilter_HiddenEnvoyDeprecatedConfig struct { + HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"` +} + +type ExtensionFilter_TypedConfig struct { + TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"` +} + +func (*ExtensionFilter_HiddenEnvoyDeprecatedConfig) isExtensionFilter_ConfigType() {} + +func (*ExtensionFilter_TypedConfig) isExtensionFilter_ConfigType() {} + +func (m *ExtensionFilter) GetConfigType() isExtensionFilter_ConfigType { + if m != nil { + return m.ConfigType + } + return nil +} + +// Deprecated: Do not use. +func (m *ExtensionFilter) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct { + if x, ok := m.GetConfigType().(*ExtensionFilter_HiddenEnvoyDeprecatedConfig); ok { + return x.HiddenEnvoyDeprecatedConfig + } + return nil +} + +func (m *ExtensionFilter) GetTypedConfig() *any.Any { + if x, ok := m.GetConfigType().(*ExtensionFilter_TypedConfig); ok { + return x.TypedConfig + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ExtensionFilter) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ExtensionFilter_HiddenEnvoyDeprecatedConfig)(nil), + (*ExtensionFilter_TypedConfig)(nil), + } +} + +func init() { + proto.RegisterEnum("envoy.config.accesslog.v3.ComparisonFilter_Op", ComparisonFilter_Op_name, ComparisonFilter_Op_value) + proto.RegisterEnum("envoy.config.accesslog.v3.GrpcStatusFilter_Status", GrpcStatusFilter_Status_name, GrpcStatusFilter_Status_value) + proto.RegisterType((*AccessLog)(nil), "envoy.config.accesslog.v3.AccessLog") + proto.RegisterType((*AccessLogFilter)(nil), "envoy.config.accesslog.v3.AccessLogFilter") + proto.RegisterType((*ComparisonFilter)(nil), "envoy.config.accesslog.v3.ComparisonFilter") + proto.RegisterType((*StatusCodeFilter)(nil), "envoy.config.accesslog.v3.StatusCodeFilter") + proto.RegisterType((*DurationFilter)(nil), "envoy.config.accesslog.v3.DurationFilter") + proto.RegisterType((*NotHealthCheckFilter)(nil), "envoy.config.accesslog.v3.NotHealthCheckFilter") + proto.RegisterType((*TraceableFilter)(nil), "envoy.config.accesslog.v3.TraceableFilter") + proto.RegisterType((*RuntimeFilter)(nil), "envoy.config.accesslog.v3.RuntimeFilter") + proto.RegisterType((*AndFilter)(nil), "envoy.config.accesslog.v3.AndFilter") + proto.RegisterType((*OrFilter)(nil), "envoy.config.accesslog.v3.OrFilter") + proto.RegisterType((*HeaderFilter)(nil), "envoy.config.accesslog.v3.HeaderFilter") + proto.RegisterType((*ResponseFlagFilter)(nil), "envoy.config.accesslog.v3.ResponseFlagFilter") + proto.RegisterType((*GrpcStatusFilter)(nil), "envoy.config.accesslog.v3.GrpcStatusFilter") + proto.RegisterType((*ExtensionFilter)(nil), "envoy.config.accesslog.v3.ExtensionFilter") +} + +func init() { + proto.RegisterFile("envoy/config/accesslog/v3/accesslog.proto", fileDescriptor_3da62233f8f33406) +} + +var fileDescriptor_3da62233f8f33406 = []byte{ + // 1570 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xcd, 0x6f, 0xe3, 0xc6, + 0x15, 0x37, 0xc7, 0x5f, 0xd2, 0xb3, 0x2d, 0x31, 0x13, 0xb7, 0x76, 0x36, 0x69, 0xea, 0xb2, 0x05, + 0xb2, 0xf9, 0x92, 0x76, 0xed, 0x6e, 0xd3, 0x08, 0xb9, 0x90, 0xe2, 0x68, 0xc5, 0x2e, 0x97, 0x74, + 0x46, 0xe2, 0x66, 0x83, 0xb6, 0x20, 0x68, 0x72, 0x2c, 0x09, 0x91, 0x49, 0x82, 0xa4, 0x8c, 0xf5, + 0x2d, 0xe8, 0xa9, 0x28, 0x82, 0x1e, 0xf6, 0xd8, 0x4b, 0x0b, 0xf4, 0x9f, 0x28, 0x7a, 0x4e, 0x81, + 0x5e, 0xfb, 0x97, 0xf4, 0xda, 0xee, 0xa9, 0x18, 0x7e, 0x59, 0xa2, 0x1d, 0xc9, 0x0b, 0xa4, 0x07, + 0x41, 0x9c, 0x99, 0xf7, 0xfb, 0xf1, 0xf7, 0xde, 0xcc, 0x7b, 0x6f, 0x08, 0xef, 0x33, 0xff, 0x32, + 0xb8, 0x6a, 0xbb, 0x81, 0x7f, 0x3e, 0x19, 0xb5, 0x1d, 0xd7, 0x65, 0x71, 0x3c, 0x0d, 0x46, 0xed, + 0xcb, 0x93, 0xeb, 0x41, 0x2b, 0x8c, 0x82, 0x24, 0xc0, 0x6f, 0xa5, 0xa6, 0xad, 0xcc, 0xb4, 0x75, + 0xbd, 0x7a, 0x79, 0x72, 0xef, 0xc7, 0x0b, 0x2c, 0x6e, 0x10, 0x31, 0x4e, 0x70, 0xe6, 0xc4, 0x2c, + 0xc3, 0xde, 0xfb, 0x68, 0xc1, 0x20, 0x0a, 0x66, 0x49, 0x6a, 0x91, 0x3e, 0xd8, 0x6e, 0x70, 0x11, + 0x06, 0x3e, 0xf3, 0x93, 0x38, 0xb7, 0x7e, 0x3b, 0xb3, 0x4e, 0xae, 0xc2, 0xd4, 0x2a, 0x64, 0x91, + 0xcb, 0xfc, 0x24, 0x5f, 0x7c, 0x6b, 0x14, 0x04, 0xa3, 0x29, 0x6b, 0xa7, 0xa3, 0xb3, 0xd9, 0x79, + 0xdb, 0xf1, 0xaf, 0xf2, 0xa5, 0x77, 0xaa, 0x4b, 0x71, 0x12, 0xcd, 0xdc, 0x02, 0xf8, 0xa3, 0x99, + 0x17, 0x3a, 0x6d, 0xc7, 0xf7, 0x83, 0xc4, 0x49, 0x26, 0x81, 0x1f, 0xb7, 0xe3, 0xc4, 0x49, 0x66, + 0xc5, 0x4b, 0x7f, 0x72, 0x63, 0xf9, 0x92, 0x45, 0xf1, 0x24, 0xf0, 0x27, 0x7e, 0x1e, 0x81, 0x7b, + 0x07, 0x97, 0xce, 0x74, 0xe2, 0x39, 0x5c, 0x7b, 0xfe, 0x90, 0x2d, 0x48, 0xdf, 0x22, 0xa8, 0xcb, + 0x69, 0x40, 0xf4, 0x60, 0x84, 0x31, 0x6c, 0xf8, 0xce, 0x05, 0x3b, 0x14, 0x8e, 0x84, 0xfb, 0x75, + 0x9a, 0x3e, 0x63, 0x05, 0xb6, 0xce, 0x27, 0xd3, 0x84, 0x45, 0x87, 0xe8, 0x48, 0xb8, 0xbf, 0x73, + 0xfc, 0x41, 0xeb, 0x3b, 0xa3, 0xd9, 0x2a, 0x99, 0x7a, 0x29, 0x82, 0xe6, 0x48, 0x7c, 0x06, 0xef, + 0x8e, 0x27, 0x9e, 0xc7, 0x7c, 0x3b, 0xc5, 0xda, 0x1e, 0x0b, 0x23, 0xe6, 0x3a, 0x09, 0xf3, 0xec, + 0x8c, 0xe6, 0x70, 0x3d, 0xe5, 0x3e, 0x68, 0x65, 0x71, 0x68, 0x15, 0x71, 0x68, 0x0d, 0xd2, 0x38, + 0x28, 0xe8, 0x50, 0xe8, 0xaf, 0xd1, 0xb7, 0x33, 0x12, 0xc2, 0x39, 0xd4, 0x92, 0xa2, 0x9b, 0x32, + 0xe0, 0x4f, 0x61, 0x97, 0x87, 0xbd, 0x64, 0xdc, 0x48, 0x19, 0xf7, 0x6f, 0x30, 0xca, 0xfe, 0x55, + 0x7f, 0x8d, 0xee, 0xa4, 0xb6, 0x19, 0xb4, 0xf3, 0xf0, 0x4f, 0xff, 0xf8, 0xfd, 0xbb, 0x1f, 0xc1, + 0x07, 0x0b, 0x8e, 0x65, 0xd2, 0xe7, 0xfd, 0x3b, 0xbe, 0xf6, 0x4f, 0xd9, 0x83, 0x9d, 0xcc, 0xce, + 0xe6, 0x44, 0xd2, 0x5f, 0x6a, 0xd0, 0xac, 0x38, 0x8f, 0x7f, 0x0d, 0x38, 0xdb, 0x26, 0xdb, 0x0d, + 0x3c, 0x66, 0xe7, 0x41, 0x14, 0x52, 0x59, 0x1f, 0x2e, 0x09, 0xe2, 0x20, 0x05, 0x75, 0x03, 0x8f, + 0x65, 0x44, 0xfd, 0x35, 0x2a, 0xc6, 0x95, 0x39, 0x3c, 0x84, 0xa6, 0x37, 0x8b, 0xd2, 0xed, 0xb6, + 0x17, 0xb6, 0xe7, 0xfd, 0x25, 0xcc, 0x6a, 0x8e, 0x28, 0x79, 0x1b, 0xde, 0xc2, 0x0c, 0x1e, 0xc3, + 0x81, 0x1f, 0x24, 0xf6, 0x98, 0x39, 0xd3, 0x64, 0x6c, 0xbb, 0x63, 0xe6, 0x7e, 0x55, 0xb0, 0x67, + 0x1b, 0xd4, 0x5e, 0xc2, 0x6e, 0x04, 0x49, 0x3f, 0x05, 0x76, 0x39, 0xae, 0x7c, 0xc7, 0xbe, 0x7f, + 0xcb, 0x3c, 0xfe, 0x02, 0xc4, 0x24, 0x72, 0x5c, 0xe6, 0x9c, 0x4d, 0xcb, 0xd0, 0x6c, 0xac, 0x3c, + 0x5f, 0xc3, 0x02, 0x52, 0xb2, 0x37, 0x93, 0xc5, 0x29, 0xfc, 0x39, 0x34, 0xa2, 0x99, 0x9f, 0x4c, + 0x2e, 0x4a, 0xda, 0xcd, 0x94, 0xf6, 0xfe, 0x12, 0x5a, 0x9a, 0x01, 0x4a, 0xd2, 0xbd, 0x68, 0x7e, + 0x02, 0x13, 0x00, 0xc7, 0xf7, 0x0a, 0xba, 0xad, 0x94, 0xee, 0x67, 0xcb, 0xb2, 0xc0, 0xf7, 0x4a, + 0xaa, 0xba, 0x53, 0x0c, 0xb0, 0x02, 0xf5, 0x20, 0x2a, 0x58, 0xb6, 0x53, 0x96, 0x9f, 0x2e, 0x61, + 0x31, 0xa3, 0x92, 0xa4, 0x16, 0xe4, 0xcf, 0xd8, 0x80, 0xbd, 0x31, 0x73, 0x3c, 0x56, 0xf2, 0xd4, + 0x52, 0x9e, 0xf7, 0x96, 0xf0, 0xf4, 0x53, 0xfb, 0x92, 0x6b, 0x77, 0x3c, 0x37, 0xc6, 0x0e, 0xec, + 0x47, 0x2c, 0x0e, 0x03, 0x3f, 0x66, 0xf6, 0xf9, 0xd4, 0x19, 0x15, 0xb4, 0xf5, 0x94, 0xf6, 0xe3, + 0x65, 0x31, 0xcb, 0x61, 0xbd, 0xa9, 0x33, 0x2a, 0xc9, 0x71, 0x74, 0x63, 0x96, 0xa7, 0xc1, 0x28, + 0x0a, 0x5d, 0x3b, 0xcf, 0x85, 0xfc, 0x05, 0xb0, 0x32, 0x0d, 0x1e, 0x47, 0xa1, 0x9b, 0xa5, 0xc2, + 0x75, 0x1a, 0x8c, 0x2a, 0x73, 0xfc, 0x18, 0xb1, 0x17, 0x09, 0xf3, 0xe3, 0xb9, 0x3c, 0xd8, 0x59, + 0x79, 0x8c, 0x48, 0x01, 0xb9, 0x3e, 0x46, 0x6c, 0x71, 0xaa, 0xf3, 0x09, 0x2f, 0x09, 0xc7, 0xf0, + 0xe0, 0xee, 0x25, 0x21, 0x03, 0x2a, 0x07, 0x20, 0x66, 0x66, 0x76, 0x1c, 0x32, 0x77, 0x72, 0x3e, + 0x61, 0x11, 0x5e, 0xff, 0x8f, 0x22, 0x48, 0xff, 0x16, 0x40, 0xec, 0x06, 0x17, 0xa1, 0x13, 0x4d, + 0xe2, 0x32, 0xe1, 0xfa, 0x80, 0x82, 0x30, 0xad, 0x09, 0x8d, 0xe3, 0xd6, 0x12, 0xc5, 0x55, 0x60, + 0xcb, 0x0c, 0x95, 0xda, 0x2b, 0x65, 0xf3, 0x77, 0x02, 0x12, 0x05, 0x8a, 0x82, 0x10, 0x7f, 0x0a, + 0x9b, 0x97, 0xce, 0x74, 0xc6, 0xf2, 0x32, 0x50, 0x39, 0x59, 0xbc, 0xb1, 0xcd, 0x9d, 0x74, 0x4b, + 0xf3, 0x93, 0x93, 0x63, 0x9a, 0x21, 0xa4, 0x77, 0x00, 0x99, 0x21, 0xde, 0x02, 0x44, 0x3e, 0x17, + 0xd7, 0xf8, 0xff, 0x63, 0x22, 0x0a, 0xfc, 0x5f, 0x27, 0x22, 0xea, 0xfc, 0x92, 0x47, 0xe2, 0x04, + 0x1e, 0xae, 0x8c, 0x44, 0x55, 0xa3, 0xf4, 0x57, 0x01, 0xc4, 0x6a, 0x31, 0xc3, 0x16, 0x80, 0x5b, + 0x1a, 0xde, 0xa1, 0x1a, 0x56, 0x59, 0x53, 0xb7, 0xff, 0x90, 0xba, 0x3d, 0x47, 0x74, 0x77, 0x95, + 0x55, 0x41, 0xd2, 0x9f, 0x05, 0x68, 0x2c, 0x16, 0xc6, 0xff, 0x97, 0xc6, 0x5f, 0x70, 0x8d, 0x0f, + 0xa1, 0xbd, 0x52, 0xe3, 0xa2, 0x1c, 0x69, 0x08, 0xfb, 0xb7, 0xd5, 0xd6, 0xce, 0x67, 0x9c, 0xef, + 0x13, 0x78, 0xb4, 0x92, 0xef, 0x36, 0xb4, 0xf4, 0x2b, 0x68, 0x56, 0xca, 0xe9, 0xdd, 0x0f, 0x7d, + 0x05, 0x28, 0xfd, 0x57, 0x80, 0xbd, 0x85, 0x22, 0x8a, 0xef, 0xc3, 0x4e, 0x51, 0x86, 0xbf, 0x62, + 0x57, 0xd9, 0x85, 0x42, 0xd9, 0x7e, 0xa5, 0x6c, 0x44, 0xe8, 0x48, 0xa0, 0x90, 0xaf, 0x3d, 0x61, + 0x57, 0x58, 0x83, 0x66, 0x7e, 0x4d, 0xb2, 0x63, 0xe7, 0x22, 0x9c, 0x32, 0x2f, 0x3f, 0xc2, 0x47, + 0x79, 0xc4, 0x79, 0x83, 0xe5, 0x51, 0xee, 0x45, 0x8e, 0xcb, 0xa3, 0xe2, 0x4c, 0x4f, 0x33, 0x7b, + 0xda, 0xc8, 0x81, 0x83, 0x0c, 0x87, 0x3f, 0x83, 0x7b, 0xb3, 0x98, 0xd9, 0x13, 0xdf, 0x63, 0x21, + 0xf3, 0x3d, 0x4e, 0x19, 0x39, 0xbe, 0x17, 0x5c, 0xf8, 0x2c, 0x8e, 0xd3, 0x0e, 0x56, 0xa3, 0x87, + 0xb3, 0x98, 0x69, 0xd7, 0x06, 0xb4, 0x5c, 0xef, 0x3c, 0xe2, 0xde, 0x3f, 0x80, 0xd6, 0x4a, 0xef, + 0x17, 0x3c, 0x95, 0xfe, 0x28, 0x40, 0xbd, 0xac, 0xf8, 0xd8, 0x80, 0xed, 0x0c, 0x12, 0x1f, 0x0a, + 0x47, 0xeb, 0xaf, 0x77, 0x5d, 0x4a, 0x8f, 0xcd, 0x4b, 0x01, 0xd5, 0x10, 0x2d, 0x48, 0x5e, 0xe3, + 0x6a, 0x52, 0x48, 0x90, 0xbe, 0x11, 0xa0, 0x66, 0x46, 0x37, 0xf5, 0xa0, 0xef, 0x43, 0xcf, 0x03, + 0xae, 0xe7, 0xc3, 0xfc, 0xf2, 0xbd, 0x4c, 0x4f, 0xa1, 0x80, 0xcb, 0xd9, 0x9d, 0xef, 0x41, 0xb8, + 0x07, 0x5b, 0x59, 0x0f, 0xca, 0x33, 0xab, 0xd2, 0x4a, 0xd3, 0x9b, 0xf5, 0x75, 0xe3, 0x7a, 0xea, + 0x24, 0xee, 0x78, 0x21, 0xa5, 0x72, 0x74, 0xe7, 0xe7, 0x5c, 0x4a, 0x1b, 0x3e, 0x5e, 0x29, 0x65, + 0xfe, 0xed, 0xd2, 0xb7, 0x02, 0xe0, 0x9b, 0xbd, 0x0b, 0x47, 0xb0, 0xc9, 0xfb, 0x5f, 0xb6, 0x6b, + 0x75, 0xe5, 0x37, 0xaf, 0x94, 0x2f, 0x5f, 0x0a, 0xcf, 0xa4, 0x61, 0x44, 0x29, 0xd2, 0xfb, 0x14, + 0x59, 0xfc, 0x37, 0xa4, 0x48, 0xa7, 0x14, 0x59, 0xfc, 0xd7, 0xa3, 0xc8, 0xea, 0x52, 0x64, 0x99, + 0x14, 0x19, 0x94, 0x22, 0x55, 0xa3, 0xa8, 0xa7, 0x51, 0x44, 0x75, 0xba, 0x61, 0xc9, 0xe4, 0x39, + 0xdd, 0xa0, 0xfa, 0x80, 0x50, 0xa4, 0x76, 0xe9, 0xba, 0x45, 0x9f, 0x53, 0x34, 0xd0, 0x28, 0xd2, + 0xfa, 0x74, 0x5d, 0x3d, 0x25, 0x34, 0x7b, 0x55, 0xa7, 0xc3, 0x1d, 0x78, 0x04, 0x27, 0xab, 0x0f, + 0xdc, 0x0d, 0xbd, 0xd2, 0xd7, 0x1b, 0x20, 0x56, 0x3b, 0x24, 0xfe, 0x2d, 0xd4, 0xb2, 0x2e, 0xcb, + 0x32, 0x3f, 0x1a, 0xc7, 0xc7, 0xaf, 0xd1, 0x60, 0xf3, 0xd2, 0xa8, 0xec, 0xbd, 0x52, 0xe0, 0xa5, + 0xb0, 0x2d, 0xe5, 0xcd, 0xa5, 0xa4, 0xc4, 0x87, 0xb0, 0xcd, 0x5e, 0xb8, 0xd3, 0x99, 0x97, 0x35, + 0x99, 0x1a, 0x2d, 0x86, 0xd2, 0xdf, 0x10, 0x6c, 0x65, 0x68, 0xde, 0x36, 0xcc, 0x27, 0xe2, 0x1a, + 0xde, 0x85, 0x5a, 0x57, 0x36, 0xba, 0x44, 0x27, 0xaa, 0x28, 0xe0, 0x1d, 0xd8, 0xb6, 0x8c, 0x27, + 0x86, 0xf9, 0x85, 0x21, 0x22, 0xbc, 0x0f, 0xa2, 0x66, 0x3c, 0x93, 0x75, 0x4d, 0xb5, 0x65, 0xfa, + 0xd8, 0x7a, 0x4a, 0x8c, 0xa1, 0xb8, 0x8e, 0x7f, 0x00, 0x6f, 0xa8, 0x44, 0x56, 0x75, 0xcd, 0x20, + 0x36, 0x79, 0xde, 0x25, 0x44, 0x25, 0xaa, 0xb8, 0x81, 0xf7, 0xa0, 0x6e, 0x98, 0x43, 0xbb, 0x67, + 0x5a, 0x86, 0x2a, 0x6e, 0x62, 0x0c, 0x0d, 0x59, 0xa7, 0x44, 0x56, 0xbf, 0xb4, 0xc9, 0x73, 0x6d, + 0x30, 0x1c, 0x88, 0x5b, 0x1c, 0x79, 0x4a, 0xe8, 0x53, 0x6d, 0x30, 0xd0, 0x4c, 0xc3, 0x56, 0x89, + 0xa1, 0x11, 0x55, 0xdc, 0xc6, 0x3f, 0x04, 0x4c, 0xc9, 0xc0, 0xb4, 0x68, 0x97, 0x13, 0xf6, 0x65, + 0x6b, 0x30, 0x24, 0xaa, 0x58, 0xc3, 0x07, 0xf0, 0x66, 0x4f, 0xd6, 0x74, 0xa2, 0xda, 0xa7, 0x94, + 0x74, 0x4d, 0x43, 0xd5, 0x86, 0x9a, 0x69, 0x88, 0x75, 0x2e, 0x52, 0x56, 0x4c, 0xca, 0xad, 0x00, + 0x8b, 0xb0, 0x6b, 0x5a, 0x43, 0xdb, 0xec, 0xd9, 0x54, 0x36, 0x1e, 0x13, 0x71, 0x07, 0xbf, 0x01, + 0x7b, 0x96, 0xa1, 0x3d, 0x3d, 0xd5, 0x09, 0x57, 0x4c, 0x54, 0x71, 0x97, 0x3b, 0xa9, 0x19, 0x43, + 0x42, 0x0d, 0x59, 0x17, 0xf7, 0x70, 0x13, 0x76, 0x2c, 0x43, 0x7e, 0x26, 0x6b, 0xba, 0xac, 0xe8, + 0x44, 0x6c, 0x70, 0xed, 0xaa, 0x3c, 0x94, 0x6d, 0xdd, 0x1c, 0x0c, 0xc4, 0x26, 0x7e, 0x13, 0x9a, + 0x96, 0x21, 0x5b, 0xc3, 0x3e, 0x31, 0x86, 0x5a, 0x57, 0xe6, 0x14, 0xe2, 0xdd, 0x1b, 0x57, 0x75, + 0xbb, 0xa4, 0x6f, 0x10, 0x34, 0x2b, 0x37, 0x99, 0x5b, 0x3f, 0xe0, 0x56, 0x7f, 0x7c, 0xa1, 0xef, + 0xfd, 0xe3, 0x6b, 0xfd, 0xee, 0x1f, 0x5f, 0x77, 0x6e, 0x3a, 0x15, 0x5f, 0x2b, 0x9f, 0x60, 0x4a, + 0xf7, 0xef, 0x5f, 0xff, 0xf3, 0x5f, 0x5b, 0x48, 0x44, 0xf0, 0xde, 0x24, 0xc8, 0x8e, 0x7d, 0x18, + 0x05, 0x2f, 0xae, 0xbe, 0x3b, 0x03, 0x94, 0x86, 0x5c, 0x8c, 0x4e, 0xb9, 0xc0, 0x53, 0xe1, 0x6c, + 0x2b, 0x55, 0x7a, 0xf2, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd6, 0x28, 0x1e, 0xdd, 0x5d, 0x10, + 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/accesslog/v3/accesslog.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/accesslog/v3/accesslog.pb.validate.go new file mode 100644 index 000000000..0cfbbb280 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/accesslog/v3/accesslog.pb.validate.go @@ -0,0 +1,1339 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/accesslog/v3/accesslog.proto + +package envoy_config_accesslog_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _accesslog_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on AccessLog with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *AccessLog) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Name + + if v, ok := interface{}(m.GetFilter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AccessLogValidationError{ + field: "Filter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + switch m.ConfigType.(type) { + + case *AccessLog_HiddenEnvoyDeprecatedConfig: + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AccessLogValidationError{ + field: "HiddenEnvoyDeprecatedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *AccessLog_TypedConfig: + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AccessLogValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// AccessLogValidationError is the validation error returned by +// AccessLog.Validate if the designated constraints aren't met. +type AccessLogValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AccessLogValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AccessLogValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AccessLogValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AccessLogValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AccessLogValidationError) ErrorName() string { return "AccessLogValidationError" } + +// Error satisfies the builtin error interface +func (e AccessLogValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAccessLog.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AccessLogValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AccessLogValidationError{} + +// Validate checks the field values on AccessLogFilter with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *AccessLogFilter) Validate() error { + if m == nil { + return nil + } + + switch m.FilterSpecifier.(type) { + + case *AccessLogFilter_StatusCodeFilter: + + if v, ok := interface{}(m.GetStatusCodeFilter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AccessLogFilterValidationError{ + field: "StatusCodeFilter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *AccessLogFilter_DurationFilter: + + if v, ok := interface{}(m.GetDurationFilter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AccessLogFilterValidationError{ + field: "DurationFilter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *AccessLogFilter_NotHealthCheckFilter: + + if v, ok := interface{}(m.GetNotHealthCheckFilter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AccessLogFilterValidationError{ + field: "NotHealthCheckFilter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *AccessLogFilter_TraceableFilter: + + if v, ok := interface{}(m.GetTraceableFilter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AccessLogFilterValidationError{ + field: "TraceableFilter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *AccessLogFilter_RuntimeFilter: + + if v, ok := interface{}(m.GetRuntimeFilter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AccessLogFilterValidationError{ + field: "RuntimeFilter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *AccessLogFilter_AndFilter: + + if v, ok := interface{}(m.GetAndFilter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AccessLogFilterValidationError{ + field: "AndFilter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *AccessLogFilter_OrFilter: + + if v, ok := interface{}(m.GetOrFilter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AccessLogFilterValidationError{ + field: "OrFilter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *AccessLogFilter_HeaderFilter: + + if v, ok := interface{}(m.GetHeaderFilter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AccessLogFilterValidationError{ + field: "HeaderFilter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *AccessLogFilter_ResponseFlagFilter: + + if v, ok := interface{}(m.GetResponseFlagFilter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AccessLogFilterValidationError{ + field: "ResponseFlagFilter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *AccessLogFilter_GrpcStatusFilter: + + if v, ok := interface{}(m.GetGrpcStatusFilter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AccessLogFilterValidationError{ + field: "GrpcStatusFilter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *AccessLogFilter_ExtensionFilter: + + if v, ok := interface{}(m.GetExtensionFilter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AccessLogFilterValidationError{ + field: "ExtensionFilter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return AccessLogFilterValidationError{ + field: "FilterSpecifier", + reason: "value is required", + } + + } + + return nil +} + +// AccessLogFilterValidationError is the validation error returned by +// AccessLogFilter.Validate if the designated constraints aren't met. +type AccessLogFilterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AccessLogFilterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AccessLogFilterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AccessLogFilterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AccessLogFilterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AccessLogFilterValidationError) ErrorName() string { return "AccessLogFilterValidationError" } + +// Error satisfies the builtin error interface +func (e AccessLogFilterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAccessLogFilter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AccessLogFilterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AccessLogFilterValidationError{} + +// Validate checks the field values on ComparisonFilter with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *ComparisonFilter) Validate() error { + if m == nil { + return nil + } + + if _, ok := ComparisonFilter_Op_name[int32(m.GetOp())]; !ok { + return ComparisonFilterValidationError{ + field: "Op", + reason: "value must be one of the defined enum values", + } + } + + if v, ok := interface{}(m.GetValue()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ComparisonFilterValidationError{ + field: "Value", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// ComparisonFilterValidationError is the validation error returned by +// ComparisonFilter.Validate if the designated constraints aren't met. +type ComparisonFilterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ComparisonFilterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ComparisonFilterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ComparisonFilterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ComparisonFilterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ComparisonFilterValidationError) ErrorName() string { return "ComparisonFilterValidationError" } + +// Error satisfies the builtin error interface +func (e ComparisonFilterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sComparisonFilter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ComparisonFilterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ComparisonFilterValidationError{} + +// Validate checks the field values on StatusCodeFilter with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *StatusCodeFilter) Validate() error { + if m == nil { + return nil + } + + if m.GetComparison() == nil { + return StatusCodeFilterValidationError{ + field: "Comparison", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetComparison()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StatusCodeFilterValidationError{ + field: "Comparison", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// StatusCodeFilterValidationError is the validation error returned by +// StatusCodeFilter.Validate if the designated constraints aren't met. +type StatusCodeFilterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e StatusCodeFilterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e StatusCodeFilterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e StatusCodeFilterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e StatusCodeFilterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e StatusCodeFilterValidationError) ErrorName() string { return "StatusCodeFilterValidationError" } + +// Error satisfies the builtin error interface +func (e StatusCodeFilterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sStatusCodeFilter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = StatusCodeFilterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = StatusCodeFilterValidationError{} + +// Validate checks the field values on DurationFilter with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *DurationFilter) Validate() error { + if m == nil { + return nil + } + + if m.GetComparison() == nil { + return DurationFilterValidationError{ + field: "Comparison", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetComparison()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DurationFilterValidationError{ + field: "Comparison", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// DurationFilterValidationError is the validation error returned by +// DurationFilter.Validate if the designated constraints aren't met. +type DurationFilterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DurationFilterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DurationFilterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DurationFilterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DurationFilterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DurationFilterValidationError) ErrorName() string { return "DurationFilterValidationError" } + +// Error satisfies the builtin error interface +func (e DurationFilterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDurationFilter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DurationFilterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DurationFilterValidationError{} + +// Validate checks the field values on NotHealthCheckFilter with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *NotHealthCheckFilter) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// NotHealthCheckFilterValidationError is the validation error returned by +// NotHealthCheckFilter.Validate if the designated constraints aren't met. +type NotHealthCheckFilterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e NotHealthCheckFilterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e NotHealthCheckFilterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e NotHealthCheckFilterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e NotHealthCheckFilterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e NotHealthCheckFilterValidationError) ErrorName() string { + return "NotHealthCheckFilterValidationError" +} + +// Error satisfies the builtin error interface +func (e NotHealthCheckFilterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sNotHealthCheckFilter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = NotHealthCheckFilterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = NotHealthCheckFilterValidationError{} + +// Validate checks the field values on TraceableFilter with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *TraceableFilter) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// TraceableFilterValidationError is the validation error returned by +// TraceableFilter.Validate if the designated constraints aren't met. +type TraceableFilterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TraceableFilterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TraceableFilterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TraceableFilterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TraceableFilterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TraceableFilterValidationError) ErrorName() string { return "TraceableFilterValidationError" } + +// Error satisfies the builtin error interface +func (e TraceableFilterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTraceableFilter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TraceableFilterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TraceableFilterValidationError{} + +// Validate checks the field values on RuntimeFilter with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *RuntimeFilter) Validate() error { + if m == nil { + return nil + } + + if len(m.GetRuntimeKey()) < 1 { + return RuntimeFilterValidationError{ + field: "RuntimeKey", + reason: "value length must be at least 1 bytes", + } + } + + if v, ok := interface{}(m.GetPercentSampled()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RuntimeFilterValidationError{ + field: "PercentSampled", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for UseIndependentRandomness + + return nil +} + +// RuntimeFilterValidationError is the validation error returned by +// RuntimeFilter.Validate if the designated constraints aren't met. +type RuntimeFilterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RuntimeFilterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RuntimeFilterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RuntimeFilterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RuntimeFilterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RuntimeFilterValidationError) ErrorName() string { return "RuntimeFilterValidationError" } + +// Error satisfies the builtin error interface +func (e RuntimeFilterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRuntimeFilter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RuntimeFilterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RuntimeFilterValidationError{} + +// Validate checks the field values on AndFilter with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *AndFilter) Validate() error { + if m == nil { + return nil + } + + if len(m.GetFilters()) < 2 { + return AndFilterValidationError{ + field: "Filters", + reason: "value must contain at least 2 item(s)", + } + } + + for idx, item := range m.GetFilters() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AndFilterValidationError{ + field: fmt.Sprintf("Filters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// AndFilterValidationError is the validation error returned by +// AndFilter.Validate if the designated constraints aren't met. +type AndFilterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AndFilterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AndFilterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AndFilterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AndFilterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AndFilterValidationError) ErrorName() string { return "AndFilterValidationError" } + +// Error satisfies the builtin error interface +func (e AndFilterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAndFilter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AndFilterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AndFilterValidationError{} + +// Validate checks the field values on OrFilter with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *OrFilter) Validate() error { + if m == nil { + return nil + } + + if len(m.GetFilters()) < 2 { + return OrFilterValidationError{ + field: "Filters", + reason: "value must contain at least 2 item(s)", + } + } + + for idx, item := range m.GetFilters() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return OrFilterValidationError{ + field: fmt.Sprintf("Filters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// OrFilterValidationError is the validation error returned by +// OrFilter.Validate if the designated constraints aren't met. +type OrFilterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e OrFilterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e OrFilterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e OrFilterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e OrFilterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e OrFilterValidationError) ErrorName() string { return "OrFilterValidationError" } + +// Error satisfies the builtin error interface +func (e OrFilterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sOrFilter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = OrFilterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = OrFilterValidationError{} + +// Validate checks the field values on HeaderFilter with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *HeaderFilter) Validate() error { + if m == nil { + return nil + } + + if m.GetHeader() == nil { + return HeaderFilterValidationError{ + field: "Header", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetHeader()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HeaderFilterValidationError{ + field: "Header", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// HeaderFilterValidationError is the validation error returned by +// HeaderFilter.Validate if the designated constraints aren't met. +type HeaderFilterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HeaderFilterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HeaderFilterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HeaderFilterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HeaderFilterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HeaderFilterValidationError) ErrorName() string { return "HeaderFilterValidationError" } + +// Error satisfies the builtin error interface +func (e HeaderFilterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHeaderFilter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HeaderFilterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HeaderFilterValidationError{} + +// Validate checks the field values on ResponseFlagFilter with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *ResponseFlagFilter) Validate() error { + if m == nil { + return nil + } + + for idx, item := range m.GetFlags() { + _, _ = idx, item + + if _, ok := _ResponseFlagFilter_Flags_InLookup[item]; !ok { + return ResponseFlagFilterValidationError{ + field: fmt.Sprintf("Flags[%v]", idx), + reason: "value must be in list [LH UH UT LR UR UF UC UO NR DI FI RL UAEX RLSE DC URX SI IH DPE]", + } + } + + } + + return nil +} + +// ResponseFlagFilterValidationError is the validation error returned by +// ResponseFlagFilter.Validate if the designated constraints aren't met. +type ResponseFlagFilterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ResponseFlagFilterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ResponseFlagFilterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ResponseFlagFilterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ResponseFlagFilterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ResponseFlagFilterValidationError) ErrorName() string { + return "ResponseFlagFilterValidationError" +} + +// Error satisfies the builtin error interface +func (e ResponseFlagFilterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sResponseFlagFilter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ResponseFlagFilterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ResponseFlagFilterValidationError{} + +var _ResponseFlagFilter_Flags_InLookup = map[string]struct{}{ + "LH": {}, + "UH": {}, + "UT": {}, + "LR": {}, + "UR": {}, + "UF": {}, + "UC": {}, + "UO": {}, + "NR": {}, + "DI": {}, + "FI": {}, + "RL": {}, + "UAEX": {}, + "RLSE": {}, + "DC": {}, + "URX": {}, + "SI": {}, + "IH": {}, + "DPE": {}, +} + +// Validate checks the field values on GrpcStatusFilter with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *GrpcStatusFilter) Validate() error { + if m == nil { + return nil + } + + for idx, item := range m.GetStatuses() { + _, _ = idx, item + + if _, ok := GrpcStatusFilter_Status_name[int32(item)]; !ok { + return GrpcStatusFilterValidationError{ + field: fmt.Sprintf("Statuses[%v]", idx), + reason: "value must be one of the defined enum values", + } + } + + } + + // no validation rules for Exclude + + return nil +} + +// GrpcStatusFilterValidationError is the validation error returned by +// GrpcStatusFilter.Validate if the designated constraints aren't met. +type GrpcStatusFilterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GrpcStatusFilterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GrpcStatusFilterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GrpcStatusFilterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GrpcStatusFilterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GrpcStatusFilterValidationError) ErrorName() string { return "GrpcStatusFilterValidationError" } + +// Error satisfies the builtin error interface +func (e GrpcStatusFilterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGrpcStatusFilter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GrpcStatusFilterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GrpcStatusFilterValidationError{} + +// Validate checks the field values on ExtensionFilter with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *ExtensionFilter) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Name + + switch m.ConfigType.(type) { + + case *ExtensionFilter_HiddenEnvoyDeprecatedConfig: + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ExtensionFilterValidationError{ + field: "HiddenEnvoyDeprecatedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ExtensionFilter_TypedConfig: + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ExtensionFilterValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// ExtensionFilterValidationError is the validation error returned by +// ExtensionFilter.Validate if the designated constraints aren't met. +type ExtensionFilterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExtensionFilterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExtensionFilterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ExtensionFilterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExtensionFilterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExtensionFilterValidationError) ErrorName() string { return "ExtensionFilterValidationError" } + +// Error satisfies the builtin error interface +func (e ExtensionFilterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExtensionFilter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExtensionFilterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExtensionFilterValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/circuit_breaker.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/circuit_breaker.pb.go new file mode 100644 index 000000000..707082a2a --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/circuit_breaker.pb.go @@ -0,0 +1,262 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/cluster/v3/circuit_breaker.proto + +package envoy_config_cluster_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + v31 "github.com/envoyproxy/go-control-plane/envoy/type/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type CircuitBreakers struct { + Thresholds []*CircuitBreakers_Thresholds `protobuf:"bytes,1,rep,name=thresholds,proto3" json:"thresholds,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CircuitBreakers) Reset() { *m = CircuitBreakers{} } +func (m *CircuitBreakers) String() string { return proto.CompactTextString(m) } +func (*CircuitBreakers) ProtoMessage() {} +func (*CircuitBreakers) Descriptor() ([]byte, []int) { + return fileDescriptor_131e6721a0838844, []int{0} +} + +func (m *CircuitBreakers) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CircuitBreakers.Unmarshal(m, b) +} +func (m *CircuitBreakers) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CircuitBreakers.Marshal(b, m, deterministic) +} +func (m *CircuitBreakers) XXX_Merge(src proto.Message) { + xxx_messageInfo_CircuitBreakers.Merge(m, src) +} +func (m *CircuitBreakers) XXX_Size() int { + return xxx_messageInfo_CircuitBreakers.Size(m) +} +func (m *CircuitBreakers) XXX_DiscardUnknown() { + xxx_messageInfo_CircuitBreakers.DiscardUnknown(m) +} + +var xxx_messageInfo_CircuitBreakers proto.InternalMessageInfo + +func (m *CircuitBreakers) GetThresholds() []*CircuitBreakers_Thresholds { + if m != nil { + return m.Thresholds + } + return nil +} + +type CircuitBreakers_Thresholds struct { + Priority v3.RoutingPriority `protobuf:"varint,1,opt,name=priority,proto3,enum=envoy.config.core.v3.RoutingPriority" json:"priority,omitempty"` + MaxConnections *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=max_connections,json=maxConnections,proto3" json:"max_connections,omitempty"` + MaxPendingRequests *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=max_pending_requests,json=maxPendingRequests,proto3" json:"max_pending_requests,omitempty"` + MaxRequests *wrappers.UInt32Value `protobuf:"bytes,4,opt,name=max_requests,json=maxRequests,proto3" json:"max_requests,omitempty"` + MaxRetries *wrappers.UInt32Value `protobuf:"bytes,5,opt,name=max_retries,json=maxRetries,proto3" json:"max_retries,omitempty"` + RetryBudget *CircuitBreakers_Thresholds_RetryBudget `protobuf:"bytes,8,opt,name=retry_budget,json=retryBudget,proto3" json:"retry_budget,omitempty"` + TrackRemaining bool `protobuf:"varint,6,opt,name=track_remaining,json=trackRemaining,proto3" json:"track_remaining,omitempty"` + MaxConnectionPools *wrappers.UInt32Value `protobuf:"bytes,7,opt,name=max_connection_pools,json=maxConnectionPools,proto3" json:"max_connection_pools,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CircuitBreakers_Thresholds) Reset() { *m = CircuitBreakers_Thresholds{} } +func (m *CircuitBreakers_Thresholds) String() string { return proto.CompactTextString(m) } +func (*CircuitBreakers_Thresholds) ProtoMessage() {} +func (*CircuitBreakers_Thresholds) Descriptor() ([]byte, []int) { + return fileDescriptor_131e6721a0838844, []int{0, 0} +} + +func (m *CircuitBreakers_Thresholds) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CircuitBreakers_Thresholds.Unmarshal(m, b) +} +func (m *CircuitBreakers_Thresholds) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CircuitBreakers_Thresholds.Marshal(b, m, deterministic) +} +func (m *CircuitBreakers_Thresholds) XXX_Merge(src proto.Message) { + xxx_messageInfo_CircuitBreakers_Thresholds.Merge(m, src) +} +func (m *CircuitBreakers_Thresholds) XXX_Size() int { + return xxx_messageInfo_CircuitBreakers_Thresholds.Size(m) +} +func (m *CircuitBreakers_Thresholds) XXX_DiscardUnknown() { + xxx_messageInfo_CircuitBreakers_Thresholds.DiscardUnknown(m) +} + +var xxx_messageInfo_CircuitBreakers_Thresholds proto.InternalMessageInfo + +func (m *CircuitBreakers_Thresholds) GetPriority() v3.RoutingPriority { + if m != nil { + return m.Priority + } + return v3.RoutingPriority_DEFAULT +} + +func (m *CircuitBreakers_Thresholds) GetMaxConnections() *wrappers.UInt32Value { + if m != nil { + return m.MaxConnections + } + return nil +} + +func (m *CircuitBreakers_Thresholds) GetMaxPendingRequests() *wrappers.UInt32Value { + if m != nil { + return m.MaxPendingRequests + } + return nil +} + +func (m *CircuitBreakers_Thresholds) GetMaxRequests() *wrappers.UInt32Value { + if m != nil { + return m.MaxRequests + } + return nil +} + +func (m *CircuitBreakers_Thresholds) GetMaxRetries() *wrappers.UInt32Value { + if m != nil { + return m.MaxRetries + } + return nil +} + +func (m *CircuitBreakers_Thresholds) GetRetryBudget() *CircuitBreakers_Thresholds_RetryBudget { + if m != nil { + return m.RetryBudget + } + return nil +} + +func (m *CircuitBreakers_Thresholds) GetTrackRemaining() bool { + if m != nil { + return m.TrackRemaining + } + return false +} + +func (m *CircuitBreakers_Thresholds) GetMaxConnectionPools() *wrappers.UInt32Value { + if m != nil { + return m.MaxConnectionPools + } + return nil +} + +type CircuitBreakers_Thresholds_RetryBudget struct { + BudgetPercent *v31.Percent `protobuf:"bytes,1,opt,name=budget_percent,json=budgetPercent,proto3" json:"budget_percent,omitempty"` + MinRetryConcurrency *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=min_retry_concurrency,json=minRetryConcurrency,proto3" json:"min_retry_concurrency,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CircuitBreakers_Thresholds_RetryBudget) Reset() { + *m = CircuitBreakers_Thresholds_RetryBudget{} +} +func (m *CircuitBreakers_Thresholds_RetryBudget) String() string { return proto.CompactTextString(m) } +func (*CircuitBreakers_Thresholds_RetryBudget) ProtoMessage() {} +func (*CircuitBreakers_Thresholds_RetryBudget) Descriptor() ([]byte, []int) { + return fileDescriptor_131e6721a0838844, []int{0, 0, 0} +} + +func (m *CircuitBreakers_Thresholds_RetryBudget) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CircuitBreakers_Thresholds_RetryBudget.Unmarshal(m, b) +} +func (m *CircuitBreakers_Thresholds_RetryBudget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CircuitBreakers_Thresholds_RetryBudget.Marshal(b, m, deterministic) +} +func (m *CircuitBreakers_Thresholds_RetryBudget) XXX_Merge(src proto.Message) { + xxx_messageInfo_CircuitBreakers_Thresholds_RetryBudget.Merge(m, src) +} +func (m *CircuitBreakers_Thresholds_RetryBudget) XXX_Size() int { + return xxx_messageInfo_CircuitBreakers_Thresholds_RetryBudget.Size(m) +} +func (m *CircuitBreakers_Thresholds_RetryBudget) XXX_DiscardUnknown() { + xxx_messageInfo_CircuitBreakers_Thresholds_RetryBudget.DiscardUnknown(m) +} + +var xxx_messageInfo_CircuitBreakers_Thresholds_RetryBudget proto.InternalMessageInfo + +func (m *CircuitBreakers_Thresholds_RetryBudget) GetBudgetPercent() *v31.Percent { + if m != nil { + return m.BudgetPercent + } + return nil +} + +func (m *CircuitBreakers_Thresholds_RetryBudget) GetMinRetryConcurrency() *wrappers.UInt32Value { + if m != nil { + return m.MinRetryConcurrency + } + return nil +} + +func init() { + proto.RegisterType((*CircuitBreakers)(nil), "envoy.config.cluster.v3.CircuitBreakers") + proto.RegisterType((*CircuitBreakers_Thresholds)(nil), "envoy.config.cluster.v3.CircuitBreakers.Thresholds") + proto.RegisterType((*CircuitBreakers_Thresholds_RetryBudget)(nil), "envoy.config.cluster.v3.CircuitBreakers.Thresholds.RetryBudget") +} + +func init() { + proto.RegisterFile("envoy/config/cluster/v3/circuit_breaker.proto", fileDescriptor_131e6721a0838844) +} + +var fileDescriptor_131e6721a0838844 = []byte{ + // 610 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x93, 0x4f, 0x6b, 0xd4, 0x4e, + 0x1c, 0xc6, 0xc9, 0xf6, 0xd7, 0xfd, 0x2d, 0x93, 0xba, 0x2d, 0xa9, 0xda, 0xb0, 0x6a, 0x5d, 0xc5, + 0xea, 0x82, 0x38, 0xc1, 0x5d, 0xf0, 0x50, 0x29, 0x85, 0x2c, 0x0a, 0x22, 0x48, 0x88, 0x7f, 0xae, + 0x61, 0x36, 0x3b, 0x4d, 0x87, 0x26, 0x33, 0x71, 0x66, 0x12, 0x37, 0xb7, 0xe2, 0xc9, 0xd7, 0xe0, + 0x4b, 0xf1, 0x2e, 0x78, 0xf5, 0x2d, 0x78, 0xf4, 0x25, 0x78, 0x92, 0x99, 0xc9, 0x6e, 0xda, 0x4a, + 0x21, 0x7a, 0xcb, 0xe4, 0x79, 0x9e, 0x4f, 0xf2, 0x7d, 0x66, 0x06, 0x3c, 0xc2, 0xb4, 0x64, 0x95, + 0x17, 0x33, 0x7a, 0x44, 0x12, 0x2f, 0x4e, 0x0b, 0x21, 0x31, 0xf7, 0xca, 0x89, 0x17, 0x13, 0x1e, + 0x17, 0x44, 0x46, 0x33, 0x8e, 0xd1, 0x09, 0xe6, 0x30, 0xe7, 0x4c, 0x32, 0x67, 0x47, 0xdb, 0xa1, + 0xb1, 0xc3, 0xda, 0x0e, 0xcb, 0xc9, 0xe0, 0xf6, 0x79, 0x0e, 0xe3, 0x58, 0x41, 0x66, 0x48, 0x60, + 0x93, 0x1c, 0xdc, 0x30, 0x06, 0x59, 0xe5, 0x5a, 0xc9, 0x31, 0x8f, 0x31, 0x95, 0xb5, 0xb8, 0x9b, + 0x30, 0x96, 0xa4, 0xd8, 0xd3, 0xab, 0x59, 0x71, 0xe4, 0x7d, 0xe0, 0x28, 0xcf, 0x31, 0x17, 0xb5, + 0x7e, 0xab, 0x98, 0xe7, 0xc8, 0x43, 0x94, 0x32, 0x89, 0x24, 0x61, 0x54, 0x78, 0x42, 0x22, 0x59, + 0x2c, 0xe5, 0x3b, 0x7f, 0xc8, 0x25, 0xe6, 0x82, 0x30, 0x4a, 0x68, 0x52, 0x5b, 0x76, 0x4a, 0x94, + 0x92, 0x39, 0x92, 0xd8, 0x5b, 0x3e, 0x18, 0xe1, 0xee, 0x69, 0x0f, 0x6c, 0x4e, 0xcd, 0xac, 0xbe, + 0x19, 0x55, 0x38, 0xaf, 0x01, 0x90, 0xc7, 0x1c, 0x8b, 0x63, 0x96, 0xce, 0x85, 0x6b, 0x0d, 0xd7, + 0x46, 0xf6, 0x78, 0x02, 0x2f, 0x19, 0x1d, 0x5e, 0x48, 0xc3, 0x37, 0xab, 0x68, 0x78, 0x06, 0x33, + 0xf8, 0xd9, 0x05, 0xa0, 0x91, 0x9c, 0x97, 0xa0, 0x97, 0x73, 0xc2, 0x38, 0x91, 0x95, 0x6b, 0x0d, + 0xad, 0x51, 0x7f, 0xbc, 0x77, 0xe1, 0x0b, 0x8c, 0x63, 0x85, 0x0f, 0x59, 0x21, 0x09, 0x4d, 0x82, + 0xda, 0xec, 0xf7, 0x7e, 0xf9, 0xeb, 0x1f, 0xad, 0xce, 0x96, 0x15, 0xae, 0x00, 0xce, 0x33, 0xb0, + 0x99, 0xa1, 0x45, 0x14, 0x33, 0x4a, 0x71, 0xac, 0x1b, 0x70, 0x3b, 0x43, 0x6b, 0x64, 0x8f, 0x6f, + 0x42, 0xd3, 0x2c, 0x5c, 0x36, 0x0b, 0xdf, 0xbe, 0xa0, 0x72, 0x32, 0x7e, 0x87, 0xd2, 0x02, 0x87, + 0xfd, 0x0c, 0x2d, 0xa6, 0x4d, 0xc6, 0x79, 0x05, 0xae, 0x2a, 0x4c, 0x8e, 0xe9, 0x9c, 0xd0, 0x24, + 0xe2, 0xf8, 0x7d, 0x81, 0x85, 0x14, 0xee, 0x5a, 0x0b, 0x96, 0x93, 0xa1, 0x45, 0x60, 0x82, 0x61, + 0x9d, 0x73, 0x0e, 0xc1, 0x86, 0xe2, 0xad, 0x38, 0xff, 0xb5, 0xe0, 0xd8, 0x19, 0x5a, 0xac, 0x00, + 0x07, 0xc0, 0x36, 0x00, 0xc9, 0x09, 0x16, 0xee, 0x7a, 0x8b, 0x3c, 0xd0, 0x79, 0xed, 0x77, 0x66, + 0x60, 0x43, 0x45, 0xab, 0x68, 0x56, 0xcc, 0x13, 0x2c, 0xdd, 0x9e, 0xce, 0x1f, 0xfe, 0xc3, 0x4e, + 0x42, 0x85, 0xac, 0x7c, 0x8d, 0x09, 0x6d, 0xde, 0x2c, 0x9c, 0x07, 0x60, 0x53, 0x72, 0x14, 0x9f, + 0x44, 0x1c, 0x67, 0x88, 0xa8, 0x13, 0xe7, 0x76, 0x87, 0xd6, 0xa8, 0x17, 0xf6, 0xf5, 0xeb, 0x70, + 0xf9, 0x76, 0x59, 0x6e, 0xb3, 0x47, 0x51, 0xce, 0x58, 0x2a, 0xdc, 0xff, 0x5b, 0x96, 0xdb, 0x6c, + 0x54, 0xa0, 0x72, 0x83, 0x1f, 0x16, 0xb0, 0xcf, 0xfc, 0x95, 0x73, 0x00, 0xfa, 0x66, 0xcc, 0xa8, + 0xbe, 0x5b, 0xfa, 0x58, 0xd9, 0xe3, 0xeb, 0xf5, 0xb8, 0xea, 0xe6, 0xa9, 0x21, 0x03, 0xa3, 0x86, + 0x57, 0x8c, 0xbb, 0x5e, 0x3a, 0x01, 0xb8, 0x96, 0x11, 0x1a, 0x99, 0xbe, 0x62, 0x46, 0xe3, 0x82, + 0x73, 0x4c, 0xe3, 0xaa, 0xd5, 0x41, 0xda, 0xce, 0x08, 0xd5, 0xff, 0x32, 0x6d, 0x82, 0xfb, 0xfe, + 0xe7, 0xaf, 0x9f, 0x76, 0x0f, 0xc0, 0x53, 0xf3, 0x79, 0x94, 0x13, 0x58, 0x8e, 0x57, 0x6d, 0xb7, + 0xab, 0x7a, 0xff, 0x89, 0x62, 0x3c, 0x06, 0xde, 0x5f, 0x32, 0xf6, 0x1f, 0xaa, 0xdc, 0x7d, 0x70, + 0xaf, 0x4d, 0xce, 0x7f, 0xfe, 0xe5, 0xf4, 0xdb, 0xf7, 0x6e, 0x67, 0xab, 0x03, 0xf6, 0x08, 0x33, + 0x6d, 0xe5, 0x9c, 0x2d, 0xaa, 0xcb, 0xce, 0x89, 0xbf, 0x7d, 0x9e, 0x10, 0xa8, 0x4a, 0x02, 0x6b, + 0xd6, 0xd5, 0xdd, 0x4c, 0x7e, 0x07, 0x00, 0x00, 0xff, 0xff, 0x9d, 0x00, 0x84, 0xf0, 0x54, 0x05, + 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/circuit_breaker.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/circuit_breaker.pb.validate.go new file mode 100644 index 000000000..3040b75d8 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/circuit_breaker.pb.validate.go @@ -0,0 +1,345 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/cluster/v3/circuit_breaker.proto + +package envoy_config_cluster_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" + + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} + + _ = v3.RoutingPriority(0) +) + +// define the regex for a UUID once up-front +var _circuit_breaker_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on CircuitBreakers with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *CircuitBreakers) Validate() error { + if m == nil { + return nil + } + + for idx, item := range m.GetThresholds() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CircuitBreakersValidationError{ + field: fmt.Sprintf("Thresholds[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// CircuitBreakersValidationError is the validation error returned by +// CircuitBreakers.Validate if the designated constraints aren't met. +type CircuitBreakersValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CircuitBreakersValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CircuitBreakersValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CircuitBreakersValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CircuitBreakersValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CircuitBreakersValidationError) ErrorName() string { return "CircuitBreakersValidationError" } + +// Error satisfies the builtin error interface +func (e CircuitBreakersValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCircuitBreakers.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CircuitBreakersValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CircuitBreakersValidationError{} + +// Validate checks the field values on CircuitBreakers_Thresholds with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *CircuitBreakers_Thresholds) Validate() error { + if m == nil { + return nil + } + + if _, ok := v3.RoutingPriority_name[int32(m.GetPriority())]; !ok { + return CircuitBreakers_ThresholdsValidationError{ + field: "Priority", + reason: "value must be one of the defined enum values", + } + } + + if v, ok := interface{}(m.GetMaxConnections()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CircuitBreakers_ThresholdsValidationError{ + field: "MaxConnections", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetMaxPendingRequests()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CircuitBreakers_ThresholdsValidationError{ + field: "MaxPendingRequests", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetMaxRequests()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CircuitBreakers_ThresholdsValidationError{ + field: "MaxRequests", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetMaxRetries()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CircuitBreakers_ThresholdsValidationError{ + field: "MaxRetries", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetRetryBudget()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CircuitBreakers_ThresholdsValidationError{ + field: "RetryBudget", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for TrackRemaining + + if v, ok := interface{}(m.GetMaxConnectionPools()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CircuitBreakers_ThresholdsValidationError{ + field: "MaxConnectionPools", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// CircuitBreakers_ThresholdsValidationError is the validation error returned +// by CircuitBreakers_Thresholds.Validate if the designated constraints aren't met. +type CircuitBreakers_ThresholdsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CircuitBreakers_ThresholdsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CircuitBreakers_ThresholdsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CircuitBreakers_ThresholdsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CircuitBreakers_ThresholdsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CircuitBreakers_ThresholdsValidationError) ErrorName() string { + return "CircuitBreakers_ThresholdsValidationError" +} + +// Error satisfies the builtin error interface +func (e CircuitBreakers_ThresholdsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCircuitBreakers_Thresholds.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CircuitBreakers_ThresholdsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CircuitBreakers_ThresholdsValidationError{} + +// Validate checks the field values on CircuitBreakers_Thresholds_RetryBudget +// with the rules defined in the proto definition for this message. If any +// rules are violated, an error is returned. +func (m *CircuitBreakers_Thresholds_RetryBudget) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetBudgetPercent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CircuitBreakers_Thresholds_RetryBudgetValidationError{ + field: "BudgetPercent", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetMinRetryConcurrency()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CircuitBreakers_Thresholds_RetryBudgetValidationError{ + field: "MinRetryConcurrency", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// CircuitBreakers_Thresholds_RetryBudgetValidationError is the validation +// error returned by CircuitBreakers_Thresholds_RetryBudget.Validate if the +// designated constraints aren't met. +type CircuitBreakers_Thresholds_RetryBudgetValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CircuitBreakers_Thresholds_RetryBudgetValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CircuitBreakers_Thresholds_RetryBudgetValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CircuitBreakers_Thresholds_RetryBudgetValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CircuitBreakers_Thresholds_RetryBudgetValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CircuitBreakers_Thresholds_RetryBudgetValidationError) ErrorName() string { + return "CircuitBreakers_Thresholds_RetryBudgetValidationError" +} + +// Error satisfies the builtin error interface +func (e CircuitBreakers_Thresholds_RetryBudgetValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCircuitBreakers_Thresholds_RetryBudget.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CircuitBreakers_Thresholds_RetryBudgetValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CircuitBreakers_Thresholds_RetryBudgetValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/cluster.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/cluster.pb.go new file mode 100644 index 000000000..01c341d47 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/cluster.pb.go @@ -0,0 +1,1867 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/cluster/v3/cluster.proto + +package envoy_config_cluster_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/go-control-plane/envoy/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + v31 "github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3" + v32 "github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3" + v33 "github.com/envoyproxy/go-control-plane/envoy/type/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + any "github.com/golang/protobuf/ptypes/any" + duration "github.com/golang/protobuf/ptypes/duration" + _struct "github.com/golang/protobuf/ptypes/struct" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type Cluster_DiscoveryType int32 + +const ( + Cluster_STATIC Cluster_DiscoveryType = 0 + Cluster_STRICT_DNS Cluster_DiscoveryType = 1 + Cluster_LOGICAL_DNS Cluster_DiscoveryType = 2 + Cluster_EDS Cluster_DiscoveryType = 3 + Cluster_ORIGINAL_DST Cluster_DiscoveryType = 4 +) + +var Cluster_DiscoveryType_name = map[int32]string{ + 0: "STATIC", + 1: "STRICT_DNS", + 2: "LOGICAL_DNS", + 3: "EDS", + 4: "ORIGINAL_DST", +} + +var Cluster_DiscoveryType_value = map[string]int32{ + "STATIC": 0, + "STRICT_DNS": 1, + "LOGICAL_DNS": 2, + "EDS": 3, + "ORIGINAL_DST": 4, +} + +func (x Cluster_DiscoveryType) String() string { + return proto.EnumName(Cluster_DiscoveryType_name, int32(x)) +} + +func (Cluster_DiscoveryType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 0} +} + +type Cluster_LbPolicy int32 + +const ( + Cluster_ROUND_ROBIN Cluster_LbPolicy = 0 + Cluster_LEAST_REQUEST Cluster_LbPolicy = 1 + Cluster_RING_HASH Cluster_LbPolicy = 2 + Cluster_RANDOM Cluster_LbPolicy = 3 + Cluster_hidden_envoy_deprecated_ORIGINAL_DST_LB Cluster_LbPolicy = 4 // Deprecated: Do not use. + Cluster_MAGLEV Cluster_LbPolicy = 5 + Cluster_CLUSTER_PROVIDED Cluster_LbPolicy = 6 + Cluster_LOAD_BALANCING_POLICY_CONFIG Cluster_LbPolicy = 7 +) + +var Cluster_LbPolicy_name = map[int32]string{ + 0: "ROUND_ROBIN", + 1: "LEAST_REQUEST", + 2: "RING_HASH", + 3: "RANDOM", + 4: "hidden_envoy_deprecated_ORIGINAL_DST_LB", + 5: "MAGLEV", + 6: "CLUSTER_PROVIDED", + 7: "LOAD_BALANCING_POLICY_CONFIG", +} + +var Cluster_LbPolicy_value = map[string]int32{ + "ROUND_ROBIN": 0, + "LEAST_REQUEST": 1, + "RING_HASH": 2, + "RANDOM": 3, + "hidden_envoy_deprecated_ORIGINAL_DST_LB": 4, + "MAGLEV": 5, + "CLUSTER_PROVIDED": 6, + "LOAD_BALANCING_POLICY_CONFIG": 7, +} + +func (x Cluster_LbPolicy) String() string { + return proto.EnumName(Cluster_LbPolicy_name, int32(x)) +} + +func (Cluster_LbPolicy) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 1} +} + +type Cluster_DnsLookupFamily int32 + +const ( + Cluster_AUTO Cluster_DnsLookupFamily = 0 + Cluster_V4_ONLY Cluster_DnsLookupFamily = 1 + Cluster_V6_ONLY Cluster_DnsLookupFamily = 2 +) + +var Cluster_DnsLookupFamily_name = map[int32]string{ + 0: "AUTO", + 1: "V4_ONLY", + 2: "V6_ONLY", +} + +var Cluster_DnsLookupFamily_value = map[string]int32{ + "AUTO": 0, + "V4_ONLY": 1, + "V6_ONLY": 2, +} + +func (x Cluster_DnsLookupFamily) String() string { + return proto.EnumName(Cluster_DnsLookupFamily_name, int32(x)) +} + +func (Cluster_DnsLookupFamily) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 2} +} + +type Cluster_ClusterProtocolSelection int32 + +const ( + Cluster_USE_CONFIGURED_PROTOCOL Cluster_ClusterProtocolSelection = 0 + Cluster_USE_DOWNSTREAM_PROTOCOL Cluster_ClusterProtocolSelection = 1 +) + +var Cluster_ClusterProtocolSelection_name = map[int32]string{ + 0: "USE_CONFIGURED_PROTOCOL", + 1: "USE_DOWNSTREAM_PROTOCOL", +} + +var Cluster_ClusterProtocolSelection_value = map[string]int32{ + "USE_CONFIGURED_PROTOCOL": 0, + "USE_DOWNSTREAM_PROTOCOL": 1, +} + +func (x Cluster_ClusterProtocolSelection) String() string { + return proto.EnumName(Cluster_ClusterProtocolSelection_name, int32(x)) +} + +func (Cluster_ClusterProtocolSelection) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 3} +} + +type Cluster_LbSubsetConfig_LbSubsetFallbackPolicy int32 + +const ( + Cluster_LbSubsetConfig_NO_FALLBACK Cluster_LbSubsetConfig_LbSubsetFallbackPolicy = 0 + Cluster_LbSubsetConfig_ANY_ENDPOINT Cluster_LbSubsetConfig_LbSubsetFallbackPolicy = 1 + Cluster_LbSubsetConfig_DEFAULT_SUBSET Cluster_LbSubsetConfig_LbSubsetFallbackPolicy = 2 +) + +var Cluster_LbSubsetConfig_LbSubsetFallbackPolicy_name = map[int32]string{ + 0: "NO_FALLBACK", + 1: "ANY_ENDPOINT", + 2: "DEFAULT_SUBSET", +} + +var Cluster_LbSubsetConfig_LbSubsetFallbackPolicy_value = map[string]int32{ + "NO_FALLBACK": 0, + "ANY_ENDPOINT": 1, + "DEFAULT_SUBSET": 2, +} + +func (x Cluster_LbSubsetConfig_LbSubsetFallbackPolicy) String() string { + return proto.EnumName(Cluster_LbSubsetConfig_LbSubsetFallbackPolicy_name, int32(x)) +} + +func (Cluster_LbSubsetConfig_LbSubsetFallbackPolicy) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 3, 0} +} + +type Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy int32 + +const ( + Cluster_LbSubsetConfig_LbSubsetSelector_NOT_DEFINED Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy = 0 + Cluster_LbSubsetConfig_LbSubsetSelector_NO_FALLBACK Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy = 1 + Cluster_LbSubsetConfig_LbSubsetSelector_ANY_ENDPOINT Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy = 2 + Cluster_LbSubsetConfig_LbSubsetSelector_DEFAULT_SUBSET Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy = 3 + Cluster_LbSubsetConfig_LbSubsetSelector_KEYS_SUBSET Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy = 4 +) + +var Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy_name = map[int32]string{ + 0: "NOT_DEFINED", + 1: "NO_FALLBACK", + 2: "ANY_ENDPOINT", + 3: "DEFAULT_SUBSET", + 4: "KEYS_SUBSET", +} + +var Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy_value = map[string]int32{ + "NOT_DEFINED": 0, + "NO_FALLBACK": 1, + "ANY_ENDPOINT": 2, + "DEFAULT_SUBSET": 3, + "KEYS_SUBSET": 4, +} + +func (x Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy) String() string { + return proto.EnumName(Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy_name, int32(x)) +} + +func (Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 3, 0, 0} +} + +type Cluster_RingHashLbConfig_HashFunction int32 + +const ( + Cluster_RingHashLbConfig_XX_HASH Cluster_RingHashLbConfig_HashFunction = 0 + Cluster_RingHashLbConfig_MURMUR_HASH_2 Cluster_RingHashLbConfig_HashFunction = 1 +) + +var Cluster_RingHashLbConfig_HashFunction_name = map[int32]string{ + 0: "XX_HASH", + 1: "MURMUR_HASH_2", +} + +var Cluster_RingHashLbConfig_HashFunction_value = map[string]int32{ + "XX_HASH": 0, + "MURMUR_HASH_2": 1, +} + +func (x Cluster_RingHashLbConfig_HashFunction) String() string { + return proto.EnumName(Cluster_RingHashLbConfig_HashFunction_name, int32(x)) +} + +func (Cluster_RingHashLbConfig_HashFunction) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 5, 0} +} + +type Cluster struct { + TransportSocketMatches []*Cluster_TransportSocketMatch `protobuf:"bytes,43,rep,name=transport_socket_matches,json=transportSocketMatches,proto3" json:"transport_socket_matches,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + AltStatName string `protobuf:"bytes,28,opt,name=alt_stat_name,json=altStatName,proto3" json:"alt_stat_name,omitempty"` + // Types that are valid to be assigned to ClusterDiscoveryType: + // *Cluster_Type + // *Cluster_ClusterType + ClusterDiscoveryType isCluster_ClusterDiscoveryType `protobuf_oneof:"cluster_discovery_type"` + EdsClusterConfig *Cluster_EdsClusterConfig `protobuf:"bytes,3,opt,name=eds_cluster_config,json=edsClusterConfig,proto3" json:"eds_cluster_config,omitempty"` + ConnectTimeout *duration.Duration `protobuf:"bytes,4,opt,name=connect_timeout,json=connectTimeout,proto3" json:"connect_timeout,omitempty"` + PerConnectionBufferLimitBytes *wrappers.UInt32Value `protobuf:"bytes,5,opt,name=per_connection_buffer_limit_bytes,json=perConnectionBufferLimitBytes,proto3" json:"per_connection_buffer_limit_bytes,omitempty"` + LbPolicy Cluster_LbPolicy `protobuf:"varint,6,opt,name=lb_policy,json=lbPolicy,proto3,enum=envoy.config.cluster.v3.Cluster_LbPolicy" json:"lb_policy,omitempty"` + HiddenEnvoyDeprecatedHosts []*v3.Address `protobuf:"bytes,7,rep,name=hidden_envoy_deprecated_hosts,json=hiddenEnvoyDeprecatedHosts,proto3" json:"hidden_envoy_deprecated_hosts,omitempty"` // Deprecated: Do not use. + LoadAssignment *v31.ClusterLoadAssignment `protobuf:"bytes,33,opt,name=load_assignment,json=loadAssignment,proto3" json:"load_assignment,omitempty"` + HealthChecks []*v3.HealthCheck `protobuf:"bytes,8,rep,name=health_checks,json=healthChecks,proto3" json:"health_checks,omitempty"` + MaxRequestsPerConnection *wrappers.UInt32Value `protobuf:"bytes,9,opt,name=max_requests_per_connection,json=maxRequestsPerConnection,proto3" json:"max_requests_per_connection,omitempty"` + CircuitBreakers *CircuitBreakers `protobuf:"bytes,10,opt,name=circuit_breakers,json=circuitBreakers,proto3" json:"circuit_breakers,omitempty"` + HiddenEnvoyDeprecatedTlsContext *v32.UpstreamTlsContext `protobuf:"bytes,11,opt,name=hidden_envoy_deprecated_tls_context,json=hiddenEnvoyDeprecatedTlsContext,proto3" json:"hidden_envoy_deprecated_tls_context,omitempty"` // Deprecated: Do not use. + UpstreamHttpProtocolOptions *v3.UpstreamHttpProtocolOptions `protobuf:"bytes,46,opt,name=upstream_http_protocol_options,json=upstreamHttpProtocolOptions,proto3" json:"upstream_http_protocol_options,omitempty"` + CommonHttpProtocolOptions *v3.HttpProtocolOptions `protobuf:"bytes,29,opt,name=common_http_protocol_options,json=commonHttpProtocolOptions,proto3" json:"common_http_protocol_options,omitempty"` + HttpProtocolOptions *v3.Http1ProtocolOptions `protobuf:"bytes,13,opt,name=http_protocol_options,json=httpProtocolOptions,proto3" json:"http_protocol_options,omitempty"` + Http2ProtocolOptions *v3.Http2ProtocolOptions `protobuf:"bytes,14,opt,name=http2_protocol_options,json=http2ProtocolOptions,proto3" json:"http2_protocol_options,omitempty"` + HiddenEnvoyDeprecatedExtensionProtocolOptions map[string]*_struct.Struct `protobuf:"bytes,35,rep,name=hidden_envoy_deprecated_extension_protocol_options,json=hiddenEnvoyDeprecatedExtensionProtocolOptions,proto3" json:"hidden_envoy_deprecated_extension_protocol_options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Deprecated: Do not use. + TypedExtensionProtocolOptions map[string]*any.Any `protobuf:"bytes,36,rep,name=typed_extension_protocol_options,json=typedExtensionProtocolOptions,proto3" json:"typed_extension_protocol_options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + DnsRefreshRate *duration.Duration `protobuf:"bytes,16,opt,name=dns_refresh_rate,json=dnsRefreshRate,proto3" json:"dns_refresh_rate,omitempty"` + DnsFailureRefreshRate *Cluster_RefreshRate `protobuf:"bytes,44,opt,name=dns_failure_refresh_rate,json=dnsFailureRefreshRate,proto3" json:"dns_failure_refresh_rate,omitempty"` + RespectDnsTtl bool `protobuf:"varint,39,opt,name=respect_dns_ttl,json=respectDnsTtl,proto3" json:"respect_dns_ttl,omitempty"` + DnsLookupFamily Cluster_DnsLookupFamily `protobuf:"varint,17,opt,name=dns_lookup_family,json=dnsLookupFamily,proto3,enum=envoy.config.cluster.v3.Cluster_DnsLookupFamily" json:"dns_lookup_family,omitempty"` + DnsResolvers []*v3.Address `protobuf:"bytes,18,rep,name=dns_resolvers,json=dnsResolvers,proto3" json:"dns_resolvers,omitempty"` + UseTcpForDnsLookups bool `protobuf:"varint,45,opt,name=use_tcp_for_dns_lookups,json=useTcpForDnsLookups,proto3" json:"use_tcp_for_dns_lookups,omitempty"` + OutlierDetection *OutlierDetection `protobuf:"bytes,19,opt,name=outlier_detection,json=outlierDetection,proto3" json:"outlier_detection,omitempty"` + CleanupInterval *duration.Duration `protobuf:"bytes,20,opt,name=cleanup_interval,json=cleanupInterval,proto3" json:"cleanup_interval,omitempty"` + UpstreamBindConfig *v3.BindConfig `protobuf:"bytes,21,opt,name=upstream_bind_config,json=upstreamBindConfig,proto3" json:"upstream_bind_config,omitempty"` + LbSubsetConfig *Cluster_LbSubsetConfig `protobuf:"bytes,22,opt,name=lb_subset_config,json=lbSubsetConfig,proto3" json:"lb_subset_config,omitempty"` + // Types that are valid to be assigned to LbConfig: + // *Cluster_RingHashLbConfig_ + // *Cluster_OriginalDstLbConfig_ + // *Cluster_LeastRequestLbConfig_ + LbConfig isCluster_LbConfig `protobuf_oneof:"lb_config"` + CommonLbConfig *Cluster_CommonLbConfig `protobuf:"bytes,27,opt,name=common_lb_config,json=commonLbConfig,proto3" json:"common_lb_config,omitempty"` + TransportSocket *v3.TransportSocket `protobuf:"bytes,24,opt,name=transport_socket,json=transportSocket,proto3" json:"transport_socket,omitempty"` + Metadata *v3.Metadata `protobuf:"bytes,25,opt,name=metadata,proto3" json:"metadata,omitempty"` + ProtocolSelection Cluster_ClusterProtocolSelection `protobuf:"varint,26,opt,name=protocol_selection,json=protocolSelection,proto3,enum=envoy.config.cluster.v3.Cluster_ClusterProtocolSelection" json:"protocol_selection,omitempty"` + UpstreamConnectionOptions *UpstreamConnectionOptions `protobuf:"bytes,30,opt,name=upstream_connection_options,json=upstreamConnectionOptions,proto3" json:"upstream_connection_options,omitempty"` + CloseConnectionsOnHostHealthFailure bool `protobuf:"varint,31,opt,name=close_connections_on_host_health_failure,json=closeConnectionsOnHostHealthFailure,proto3" json:"close_connections_on_host_health_failure,omitempty"` + IgnoreHealthOnHostRemoval bool `protobuf:"varint,32,opt,name=ignore_health_on_host_removal,json=ignoreHealthOnHostRemoval,proto3" json:"ignore_health_on_host_removal,omitempty"` + Filters []*Filter `protobuf:"bytes,40,rep,name=filters,proto3" json:"filters,omitempty"` + LoadBalancingPolicy *LoadBalancingPolicy `protobuf:"bytes,41,opt,name=load_balancing_policy,json=loadBalancingPolicy,proto3" json:"load_balancing_policy,omitempty"` + LrsServer *v3.ConfigSource `protobuf:"bytes,42,opt,name=lrs_server,json=lrsServer,proto3" json:"lrs_server,omitempty"` + TrackTimeoutBudgets bool `protobuf:"varint,47,opt,name=track_timeout_budgets,json=trackTimeoutBudgets,proto3" json:"track_timeout_budgets,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cluster) Reset() { *m = Cluster{} } +func (m *Cluster) String() string { return proto.CompactTextString(m) } +func (*Cluster) ProtoMessage() {} +func (*Cluster) Descriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0} +} + +func (m *Cluster) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cluster.Unmarshal(m, b) +} +func (m *Cluster) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cluster.Marshal(b, m, deterministic) +} +func (m *Cluster) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cluster.Merge(m, src) +} +func (m *Cluster) XXX_Size() int { + return xxx_messageInfo_Cluster.Size(m) +} +func (m *Cluster) XXX_DiscardUnknown() { + xxx_messageInfo_Cluster.DiscardUnknown(m) +} + +var xxx_messageInfo_Cluster proto.InternalMessageInfo + +func (m *Cluster) GetTransportSocketMatches() []*Cluster_TransportSocketMatch { + if m != nil { + return m.TransportSocketMatches + } + return nil +} + +func (m *Cluster) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Cluster) GetAltStatName() string { + if m != nil { + return m.AltStatName + } + return "" +} + +type isCluster_ClusterDiscoveryType interface { + isCluster_ClusterDiscoveryType() +} + +type Cluster_Type struct { + Type Cluster_DiscoveryType `protobuf:"varint,2,opt,name=type,proto3,enum=envoy.config.cluster.v3.Cluster_DiscoveryType,oneof"` +} + +type Cluster_ClusterType struct { + ClusterType *Cluster_CustomClusterType `protobuf:"bytes,38,opt,name=cluster_type,json=clusterType,proto3,oneof"` +} + +func (*Cluster_Type) isCluster_ClusterDiscoveryType() {} + +func (*Cluster_ClusterType) isCluster_ClusterDiscoveryType() {} + +func (m *Cluster) GetClusterDiscoveryType() isCluster_ClusterDiscoveryType { + if m != nil { + return m.ClusterDiscoveryType + } + return nil +} + +func (m *Cluster) GetType() Cluster_DiscoveryType { + if x, ok := m.GetClusterDiscoveryType().(*Cluster_Type); ok { + return x.Type + } + return Cluster_STATIC +} + +func (m *Cluster) GetClusterType() *Cluster_CustomClusterType { + if x, ok := m.GetClusterDiscoveryType().(*Cluster_ClusterType); ok { + return x.ClusterType + } + return nil +} + +func (m *Cluster) GetEdsClusterConfig() *Cluster_EdsClusterConfig { + if m != nil { + return m.EdsClusterConfig + } + return nil +} + +func (m *Cluster) GetConnectTimeout() *duration.Duration { + if m != nil { + return m.ConnectTimeout + } + return nil +} + +func (m *Cluster) GetPerConnectionBufferLimitBytes() *wrappers.UInt32Value { + if m != nil { + return m.PerConnectionBufferLimitBytes + } + return nil +} + +func (m *Cluster) GetLbPolicy() Cluster_LbPolicy { + if m != nil { + return m.LbPolicy + } + return Cluster_ROUND_ROBIN +} + +// Deprecated: Do not use. +func (m *Cluster) GetHiddenEnvoyDeprecatedHosts() []*v3.Address { + if m != nil { + return m.HiddenEnvoyDeprecatedHosts + } + return nil +} + +func (m *Cluster) GetLoadAssignment() *v31.ClusterLoadAssignment { + if m != nil { + return m.LoadAssignment + } + return nil +} + +func (m *Cluster) GetHealthChecks() []*v3.HealthCheck { + if m != nil { + return m.HealthChecks + } + return nil +} + +func (m *Cluster) GetMaxRequestsPerConnection() *wrappers.UInt32Value { + if m != nil { + return m.MaxRequestsPerConnection + } + return nil +} + +func (m *Cluster) GetCircuitBreakers() *CircuitBreakers { + if m != nil { + return m.CircuitBreakers + } + return nil +} + +// Deprecated: Do not use. +func (m *Cluster) GetHiddenEnvoyDeprecatedTlsContext() *v32.UpstreamTlsContext { + if m != nil { + return m.HiddenEnvoyDeprecatedTlsContext + } + return nil +} + +func (m *Cluster) GetUpstreamHttpProtocolOptions() *v3.UpstreamHttpProtocolOptions { + if m != nil { + return m.UpstreamHttpProtocolOptions + } + return nil +} + +func (m *Cluster) GetCommonHttpProtocolOptions() *v3.HttpProtocolOptions { + if m != nil { + return m.CommonHttpProtocolOptions + } + return nil +} + +func (m *Cluster) GetHttpProtocolOptions() *v3.Http1ProtocolOptions { + if m != nil { + return m.HttpProtocolOptions + } + return nil +} + +func (m *Cluster) GetHttp2ProtocolOptions() *v3.Http2ProtocolOptions { + if m != nil { + return m.Http2ProtocolOptions + } + return nil +} + +// Deprecated: Do not use. +func (m *Cluster) GetHiddenEnvoyDeprecatedExtensionProtocolOptions() map[string]*_struct.Struct { + if m != nil { + return m.HiddenEnvoyDeprecatedExtensionProtocolOptions + } + return nil +} + +func (m *Cluster) GetTypedExtensionProtocolOptions() map[string]*any.Any { + if m != nil { + return m.TypedExtensionProtocolOptions + } + return nil +} + +func (m *Cluster) GetDnsRefreshRate() *duration.Duration { + if m != nil { + return m.DnsRefreshRate + } + return nil +} + +func (m *Cluster) GetDnsFailureRefreshRate() *Cluster_RefreshRate { + if m != nil { + return m.DnsFailureRefreshRate + } + return nil +} + +func (m *Cluster) GetRespectDnsTtl() bool { + if m != nil { + return m.RespectDnsTtl + } + return false +} + +func (m *Cluster) GetDnsLookupFamily() Cluster_DnsLookupFamily { + if m != nil { + return m.DnsLookupFamily + } + return Cluster_AUTO +} + +func (m *Cluster) GetDnsResolvers() []*v3.Address { + if m != nil { + return m.DnsResolvers + } + return nil +} + +func (m *Cluster) GetUseTcpForDnsLookups() bool { + if m != nil { + return m.UseTcpForDnsLookups + } + return false +} + +func (m *Cluster) GetOutlierDetection() *OutlierDetection { + if m != nil { + return m.OutlierDetection + } + return nil +} + +func (m *Cluster) GetCleanupInterval() *duration.Duration { + if m != nil { + return m.CleanupInterval + } + return nil +} + +func (m *Cluster) GetUpstreamBindConfig() *v3.BindConfig { + if m != nil { + return m.UpstreamBindConfig + } + return nil +} + +func (m *Cluster) GetLbSubsetConfig() *Cluster_LbSubsetConfig { + if m != nil { + return m.LbSubsetConfig + } + return nil +} + +type isCluster_LbConfig interface { + isCluster_LbConfig() +} + +type Cluster_RingHashLbConfig_ struct { + RingHashLbConfig *Cluster_RingHashLbConfig `protobuf:"bytes,23,opt,name=ring_hash_lb_config,json=ringHashLbConfig,proto3,oneof"` +} + +type Cluster_OriginalDstLbConfig_ struct { + OriginalDstLbConfig *Cluster_OriginalDstLbConfig `protobuf:"bytes,34,opt,name=original_dst_lb_config,json=originalDstLbConfig,proto3,oneof"` +} + +type Cluster_LeastRequestLbConfig_ struct { + LeastRequestLbConfig *Cluster_LeastRequestLbConfig `protobuf:"bytes,37,opt,name=least_request_lb_config,json=leastRequestLbConfig,proto3,oneof"` +} + +func (*Cluster_RingHashLbConfig_) isCluster_LbConfig() {} + +func (*Cluster_OriginalDstLbConfig_) isCluster_LbConfig() {} + +func (*Cluster_LeastRequestLbConfig_) isCluster_LbConfig() {} + +func (m *Cluster) GetLbConfig() isCluster_LbConfig { + if m != nil { + return m.LbConfig + } + return nil +} + +func (m *Cluster) GetRingHashLbConfig() *Cluster_RingHashLbConfig { + if x, ok := m.GetLbConfig().(*Cluster_RingHashLbConfig_); ok { + return x.RingHashLbConfig + } + return nil +} + +func (m *Cluster) GetOriginalDstLbConfig() *Cluster_OriginalDstLbConfig { + if x, ok := m.GetLbConfig().(*Cluster_OriginalDstLbConfig_); ok { + return x.OriginalDstLbConfig + } + return nil +} + +func (m *Cluster) GetLeastRequestLbConfig() *Cluster_LeastRequestLbConfig { + if x, ok := m.GetLbConfig().(*Cluster_LeastRequestLbConfig_); ok { + return x.LeastRequestLbConfig + } + return nil +} + +func (m *Cluster) GetCommonLbConfig() *Cluster_CommonLbConfig { + if m != nil { + return m.CommonLbConfig + } + return nil +} + +func (m *Cluster) GetTransportSocket() *v3.TransportSocket { + if m != nil { + return m.TransportSocket + } + return nil +} + +func (m *Cluster) GetMetadata() *v3.Metadata { + if m != nil { + return m.Metadata + } + return nil +} + +func (m *Cluster) GetProtocolSelection() Cluster_ClusterProtocolSelection { + if m != nil { + return m.ProtocolSelection + } + return Cluster_USE_CONFIGURED_PROTOCOL +} + +func (m *Cluster) GetUpstreamConnectionOptions() *UpstreamConnectionOptions { + if m != nil { + return m.UpstreamConnectionOptions + } + return nil +} + +func (m *Cluster) GetCloseConnectionsOnHostHealthFailure() bool { + if m != nil { + return m.CloseConnectionsOnHostHealthFailure + } + return false +} + +func (m *Cluster) GetIgnoreHealthOnHostRemoval() bool { + if m != nil { + return m.IgnoreHealthOnHostRemoval + } + return false +} + +func (m *Cluster) GetFilters() []*Filter { + if m != nil { + return m.Filters + } + return nil +} + +func (m *Cluster) GetLoadBalancingPolicy() *LoadBalancingPolicy { + if m != nil { + return m.LoadBalancingPolicy + } + return nil +} + +func (m *Cluster) GetLrsServer() *v3.ConfigSource { + if m != nil { + return m.LrsServer + } + return nil +} + +func (m *Cluster) GetTrackTimeoutBudgets() bool { + if m != nil { + return m.TrackTimeoutBudgets + } + return false +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Cluster) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*Cluster_Type)(nil), + (*Cluster_ClusterType)(nil), + (*Cluster_RingHashLbConfig_)(nil), + (*Cluster_OriginalDstLbConfig_)(nil), + (*Cluster_LeastRequestLbConfig_)(nil), + } +} + +type Cluster_TransportSocketMatch struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Match *_struct.Struct `protobuf:"bytes,2,opt,name=match,proto3" json:"match,omitempty"` + TransportSocket *v3.TransportSocket `protobuf:"bytes,3,opt,name=transport_socket,json=transportSocket,proto3" json:"transport_socket,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cluster_TransportSocketMatch) Reset() { *m = Cluster_TransportSocketMatch{} } +func (m *Cluster_TransportSocketMatch) String() string { return proto.CompactTextString(m) } +func (*Cluster_TransportSocketMatch) ProtoMessage() {} +func (*Cluster_TransportSocketMatch) Descriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 0} +} + +func (m *Cluster_TransportSocketMatch) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cluster_TransportSocketMatch.Unmarshal(m, b) +} +func (m *Cluster_TransportSocketMatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cluster_TransportSocketMatch.Marshal(b, m, deterministic) +} +func (m *Cluster_TransportSocketMatch) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cluster_TransportSocketMatch.Merge(m, src) +} +func (m *Cluster_TransportSocketMatch) XXX_Size() int { + return xxx_messageInfo_Cluster_TransportSocketMatch.Size(m) +} +func (m *Cluster_TransportSocketMatch) XXX_DiscardUnknown() { + xxx_messageInfo_Cluster_TransportSocketMatch.DiscardUnknown(m) +} + +var xxx_messageInfo_Cluster_TransportSocketMatch proto.InternalMessageInfo + +func (m *Cluster_TransportSocketMatch) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Cluster_TransportSocketMatch) GetMatch() *_struct.Struct { + if m != nil { + return m.Match + } + return nil +} + +func (m *Cluster_TransportSocketMatch) GetTransportSocket() *v3.TransportSocket { + if m != nil { + return m.TransportSocket + } + return nil +} + +type Cluster_CustomClusterType struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + TypedConfig *any.Any `protobuf:"bytes,2,opt,name=typed_config,json=typedConfig,proto3" json:"typed_config,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cluster_CustomClusterType) Reset() { *m = Cluster_CustomClusterType{} } +func (m *Cluster_CustomClusterType) String() string { return proto.CompactTextString(m) } +func (*Cluster_CustomClusterType) ProtoMessage() {} +func (*Cluster_CustomClusterType) Descriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 1} +} + +func (m *Cluster_CustomClusterType) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cluster_CustomClusterType.Unmarshal(m, b) +} +func (m *Cluster_CustomClusterType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cluster_CustomClusterType.Marshal(b, m, deterministic) +} +func (m *Cluster_CustomClusterType) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cluster_CustomClusterType.Merge(m, src) +} +func (m *Cluster_CustomClusterType) XXX_Size() int { + return xxx_messageInfo_Cluster_CustomClusterType.Size(m) +} +func (m *Cluster_CustomClusterType) XXX_DiscardUnknown() { + xxx_messageInfo_Cluster_CustomClusterType.DiscardUnknown(m) +} + +var xxx_messageInfo_Cluster_CustomClusterType proto.InternalMessageInfo + +func (m *Cluster_CustomClusterType) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Cluster_CustomClusterType) GetTypedConfig() *any.Any { + if m != nil { + return m.TypedConfig + } + return nil +} + +type Cluster_EdsClusterConfig struct { + EdsConfig *v3.ConfigSource `protobuf:"bytes,1,opt,name=eds_config,json=edsConfig,proto3" json:"eds_config,omitempty"` + ServiceName string `protobuf:"bytes,2,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cluster_EdsClusterConfig) Reset() { *m = Cluster_EdsClusterConfig{} } +func (m *Cluster_EdsClusterConfig) String() string { return proto.CompactTextString(m) } +func (*Cluster_EdsClusterConfig) ProtoMessage() {} +func (*Cluster_EdsClusterConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 2} +} + +func (m *Cluster_EdsClusterConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cluster_EdsClusterConfig.Unmarshal(m, b) +} +func (m *Cluster_EdsClusterConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cluster_EdsClusterConfig.Marshal(b, m, deterministic) +} +func (m *Cluster_EdsClusterConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cluster_EdsClusterConfig.Merge(m, src) +} +func (m *Cluster_EdsClusterConfig) XXX_Size() int { + return xxx_messageInfo_Cluster_EdsClusterConfig.Size(m) +} +func (m *Cluster_EdsClusterConfig) XXX_DiscardUnknown() { + xxx_messageInfo_Cluster_EdsClusterConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_Cluster_EdsClusterConfig proto.InternalMessageInfo + +func (m *Cluster_EdsClusterConfig) GetEdsConfig() *v3.ConfigSource { + if m != nil { + return m.EdsConfig + } + return nil +} + +func (m *Cluster_EdsClusterConfig) GetServiceName() string { + if m != nil { + return m.ServiceName + } + return "" +} + +type Cluster_LbSubsetConfig struct { + FallbackPolicy Cluster_LbSubsetConfig_LbSubsetFallbackPolicy `protobuf:"varint,1,opt,name=fallback_policy,json=fallbackPolicy,proto3,enum=envoy.config.cluster.v3.Cluster_LbSubsetConfig_LbSubsetFallbackPolicy" json:"fallback_policy,omitempty"` + DefaultSubset *_struct.Struct `protobuf:"bytes,2,opt,name=default_subset,json=defaultSubset,proto3" json:"default_subset,omitempty"` + SubsetSelectors []*Cluster_LbSubsetConfig_LbSubsetSelector `protobuf:"bytes,3,rep,name=subset_selectors,json=subsetSelectors,proto3" json:"subset_selectors,omitempty"` + LocalityWeightAware bool `protobuf:"varint,4,opt,name=locality_weight_aware,json=localityWeightAware,proto3" json:"locality_weight_aware,omitempty"` + ScaleLocalityWeight bool `protobuf:"varint,5,opt,name=scale_locality_weight,json=scaleLocalityWeight,proto3" json:"scale_locality_weight,omitempty"` + PanicModeAny bool `protobuf:"varint,6,opt,name=panic_mode_any,json=panicModeAny,proto3" json:"panic_mode_any,omitempty"` + ListAsAny bool `protobuf:"varint,7,opt,name=list_as_any,json=listAsAny,proto3" json:"list_as_any,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cluster_LbSubsetConfig) Reset() { *m = Cluster_LbSubsetConfig{} } +func (m *Cluster_LbSubsetConfig) String() string { return proto.CompactTextString(m) } +func (*Cluster_LbSubsetConfig) ProtoMessage() {} +func (*Cluster_LbSubsetConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 3} +} + +func (m *Cluster_LbSubsetConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cluster_LbSubsetConfig.Unmarshal(m, b) +} +func (m *Cluster_LbSubsetConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cluster_LbSubsetConfig.Marshal(b, m, deterministic) +} +func (m *Cluster_LbSubsetConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cluster_LbSubsetConfig.Merge(m, src) +} +func (m *Cluster_LbSubsetConfig) XXX_Size() int { + return xxx_messageInfo_Cluster_LbSubsetConfig.Size(m) +} +func (m *Cluster_LbSubsetConfig) XXX_DiscardUnknown() { + xxx_messageInfo_Cluster_LbSubsetConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_Cluster_LbSubsetConfig proto.InternalMessageInfo + +func (m *Cluster_LbSubsetConfig) GetFallbackPolicy() Cluster_LbSubsetConfig_LbSubsetFallbackPolicy { + if m != nil { + return m.FallbackPolicy + } + return Cluster_LbSubsetConfig_NO_FALLBACK +} + +func (m *Cluster_LbSubsetConfig) GetDefaultSubset() *_struct.Struct { + if m != nil { + return m.DefaultSubset + } + return nil +} + +func (m *Cluster_LbSubsetConfig) GetSubsetSelectors() []*Cluster_LbSubsetConfig_LbSubsetSelector { + if m != nil { + return m.SubsetSelectors + } + return nil +} + +func (m *Cluster_LbSubsetConfig) GetLocalityWeightAware() bool { + if m != nil { + return m.LocalityWeightAware + } + return false +} + +func (m *Cluster_LbSubsetConfig) GetScaleLocalityWeight() bool { + if m != nil { + return m.ScaleLocalityWeight + } + return false +} + +func (m *Cluster_LbSubsetConfig) GetPanicModeAny() bool { + if m != nil { + return m.PanicModeAny + } + return false +} + +func (m *Cluster_LbSubsetConfig) GetListAsAny() bool { + if m != nil { + return m.ListAsAny + } + return false +} + +type Cluster_LbSubsetConfig_LbSubsetSelector struct { + Keys []string `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` + FallbackPolicy Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy `protobuf:"varint,2,opt,name=fallback_policy,json=fallbackPolicy,proto3,enum=envoy.config.cluster.v3.Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy" json:"fallback_policy,omitempty"` + FallbackKeysSubset []string `protobuf:"bytes,3,rep,name=fallback_keys_subset,json=fallbackKeysSubset,proto3" json:"fallback_keys_subset,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cluster_LbSubsetConfig_LbSubsetSelector) Reset() { + *m = Cluster_LbSubsetConfig_LbSubsetSelector{} +} +func (m *Cluster_LbSubsetConfig_LbSubsetSelector) String() string { return proto.CompactTextString(m) } +func (*Cluster_LbSubsetConfig_LbSubsetSelector) ProtoMessage() {} +func (*Cluster_LbSubsetConfig_LbSubsetSelector) Descriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 3, 0} +} + +func (m *Cluster_LbSubsetConfig_LbSubsetSelector) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cluster_LbSubsetConfig_LbSubsetSelector.Unmarshal(m, b) +} +func (m *Cluster_LbSubsetConfig_LbSubsetSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cluster_LbSubsetConfig_LbSubsetSelector.Marshal(b, m, deterministic) +} +func (m *Cluster_LbSubsetConfig_LbSubsetSelector) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cluster_LbSubsetConfig_LbSubsetSelector.Merge(m, src) +} +func (m *Cluster_LbSubsetConfig_LbSubsetSelector) XXX_Size() int { + return xxx_messageInfo_Cluster_LbSubsetConfig_LbSubsetSelector.Size(m) +} +func (m *Cluster_LbSubsetConfig_LbSubsetSelector) XXX_DiscardUnknown() { + xxx_messageInfo_Cluster_LbSubsetConfig_LbSubsetSelector.DiscardUnknown(m) +} + +var xxx_messageInfo_Cluster_LbSubsetConfig_LbSubsetSelector proto.InternalMessageInfo + +func (m *Cluster_LbSubsetConfig_LbSubsetSelector) GetKeys() []string { + if m != nil { + return m.Keys + } + return nil +} + +func (m *Cluster_LbSubsetConfig_LbSubsetSelector) GetFallbackPolicy() Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy { + if m != nil { + return m.FallbackPolicy + } + return Cluster_LbSubsetConfig_LbSubsetSelector_NOT_DEFINED +} + +func (m *Cluster_LbSubsetConfig_LbSubsetSelector) GetFallbackKeysSubset() []string { + if m != nil { + return m.FallbackKeysSubset + } + return nil +} + +type Cluster_LeastRequestLbConfig struct { + ChoiceCount *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=choice_count,json=choiceCount,proto3" json:"choice_count,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cluster_LeastRequestLbConfig) Reset() { *m = Cluster_LeastRequestLbConfig{} } +func (m *Cluster_LeastRequestLbConfig) String() string { return proto.CompactTextString(m) } +func (*Cluster_LeastRequestLbConfig) ProtoMessage() {} +func (*Cluster_LeastRequestLbConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 4} +} + +func (m *Cluster_LeastRequestLbConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cluster_LeastRequestLbConfig.Unmarshal(m, b) +} +func (m *Cluster_LeastRequestLbConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cluster_LeastRequestLbConfig.Marshal(b, m, deterministic) +} +func (m *Cluster_LeastRequestLbConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cluster_LeastRequestLbConfig.Merge(m, src) +} +func (m *Cluster_LeastRequestLbConfig) XXX_Size() int { + return xxx_messageInfo_Cluster_LeastRequestLbConfig.Size(m) +} +func (m *Cluster_LeastRequestLbConfig) XXX_DiscardUnknown() { + xxx_messageInfo_Cluster_LeastRequestLbConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_Cluster_LeastRequestLbConfig proto.InternalMessageInfo + +func (m *Cluster_LeastRequestLbConfig) GetChoiceCount() *wrappers.UInt32Value { + if m != nil { + return m.ChoiceCount + } + return nil +} + +type Cluster_RingHashLbConfig struct { + MinimumRingSize *wrappers.UInt64Value `protobuf:"bytes,1,opt,name=minimum_ring_size,json=minimumRingSize,proto3" json:"minimum_ring_size,omitempty"` + HashFunction Cluster_RingHashLbConfig_HashFunction `protobuf:"varint,3,opt,name=hash_function,json=hashFunction,proto3,enum=envoy.config.cluster.v3.Cluster_RingHashLbConfig_HashFunction" json:"hash_function,omitempty"` + MaximumRingSize *wrappers.UInt64Value `protobuf:"bytes,4,opt,name=maximum_ring_size,json=maximumRingSize,proto3" json:"maximum_ring_size,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cluster_RingHashLbConfig) Reset() { *m = Cluster_RingHashLbConfig{} } +func (m *Cluster_RingHashLbConfig) String() string { return proto.CompactTextString(m) } +func (*Cluster_RingHashLbConfig) ProtoMessage() {} +func (*Cluster_RingHashLbConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 5} +} + +func (m *Cluster_RingHashLbConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cluster_RingHashLbConfig.Unmarshal(m, b) +} +func (m *Cluster_RingHashLbConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cluster_RingHashLbConfig.Marshal(b, m, deterministic) +} +func (m *Cluster_RingHashLbConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cluster_RingHashLbConfig.Merge(m, src) +} +func (m *Cluster_RingHashLbConfig) XXX_Size() int { + return xxx_messageInfo_Cluster_RingHashLbConfig.Size(m) +} +func (m *Cluster_RingHashLbConfig) XXX_DiscardUnknown() { + xxx_messageInfo_Cluster_RingHashLbConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_Cluster_RingHashLbConfig proto.InternalMessageInfo + +func (m *Cluster_RingHashLbConfig) GetMinimumRingSize() *wrappers.UInt64Value { + if m != nil { + return m.MinimumRingSize + } + return nil +} + +func (m *Cluster_RingHashLbConfig) GetHashFunction() Cluster_RingHashLbConfig_HashFunction { + if m != nil { + return m.HashFunction + } + return Cluster_RingHashLbConfig_XX_HASH +} + +func (m *Cluster_RingHashLbConfig) GetMaximumRingSize() *wrappers.UInt64Value { + if m != nil { + return m.MaximumRingSize + } + return nil +} + +type Cluster_OriginalDstLbConfig struct { + UseHttpHeader bool `protobuf:"varint,1,opt,name=use_http_header,json=useHttpHeader,proto3" json:"use_http_header,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cluster_OriginalDstLbConfig) Reset() { *m = Cluster_OriginalDstLbConfig{} } +func (m *Cluster_OriginalDstLbConfig) String() string { return proto.CompactTextString(m) } +func (*Cluster_OriginalDstLbConfig) ProtoMessage() {} +func (*Cluster_OriginalDstLbConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 6} +} + +func (m *Cluster_OriginalDstLbConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cluster_OriginalDstLbConfig.Unmarshal(m, b) +} +func (m *Cluster_OriginalDstLbConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cluster_OriginalDstLbConfig.Marshal(b, m, deterministic) +} +func (m *Cluster_OriginalDstLbConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cluster_OriginalDstLbConfig.Merge(m, src) +} +func (m *Cluster_OriginalDstLbConfig) XXX_Size() int { + return xxx_messageInfo_Cluster_OriginalDstLbConfig.Size(m) +} +func (m *Cluster_OriginalDstLbConfig) XXX_DiscardUnknown() { + xxx_messageInfo_Cluster_OriginalDstLbConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_Cluster_OriginalDstLbConfig proto.InternalMessageInfo + +func (m *Cluster_OriginalDstLbConfig) GetUseHttpHeader() bool { + if m != nil { + return m.UseHttpHeader + } + return false +} + +type Cluster_CommonLbConfig struct { + HealthyPanicThreshold *v33.Percent `protobuf:"bytes,1,opt,name=healthy_panic_threshold,json=healthyPanicThreshold,proto3" json:"healthy_panic_threshold,omitempty"` + // Types that are valid to be assigned to LocalityConfigSpecifier: + // *Cluster_CommonLbConfig_ZoneAwareLbConfig_ + // *Cluster_CommonLbConfig_LocalityWeightedLbConfig_ + LocalityConfigSpecifier isCluster_CommonLbConfig_LocalityConfigSpecifier `protobuf_oneof:"locality_config_specifier"` + UpdateMergeWindow *duration.Duration `protobuf:"bytes,4,opt,name=update_merge_window,json=updateMergeWindow,proto3" json:"update_merge_window,omitempty"` + IgnoreNewHostsUntilFirstHc bool `protobuf:"varint,5,opt,name=ignore_new_hosts_until_first_hc,json=ignoreNewHostsUntilFirstHc,proto3" json:"ignore_new_hosts_until_first_hc,omitempty"` + CloseConnectionsOnHostSetChange bool `protobuf:"varint,6,opt,name=close_connections_on_host_set_change,json=closeConnectionsOnHostSetChange,proto3" json:"close_connections_on_host_set_change,omitempty"` + ConsistentHashingLbConfig *Cluster_CommonLbConfig_ConsistentHashingLbConfig `protobuf:"bytes,7,opt,name=consistent_hashing_lb_config,json=consistentHashingLbConfig,proto3" json:"consistent_hashing_lb_config,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cluster_CommonLbConfig) Reset() { *m = Cluster_CommonLbConfig{} } +func (m *Cluster_CommonLbConfig) String() string { return proto.CompactTextString(m) } +func (*Cluster_CommonLbConfig) ProtoMessage() {} +func (*Cluster_CommonLbConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 7} +} + +func (m *Cluster_CommonLbConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cluster_CommonLbConfig.Unmarshal(m, b) +} +func (m *Cluster_CommonLbConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cluster_CommonLbConfig.Marshal(b, m, deterministic) +} +func (m *Cluster_CommonLbConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cluster_CommonLbConfig.Merge(m, src) +} +func (m *Cluster_CommonLbConfig) XXX_Size() int { + return xxx_messageInfo_Cluster_CommonLbConfig.Size(m) +} +func (m *Cluster_CommonLbConfig) XXX_DiscardUnknown() { + xxx_messageInfo_Cluster_CommonLbConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_Cluster_CommonLbConfig proto.InternalMessageInfo + +func (m *Cluster_CommonLbConfig) GetHealthyPanicThreshold() *v33.Percent { + if m != nil { + return m.HealthyPanicThreshold + } + return nil +} + +type isCluster_CommonLbConfig_LocalityConfigSpecifier interface { + isCluster_CommonLbConfig_LocalityConfigSpecifier() +} + +type Cluster_CommonLbConfig_ZoneAwareLbConfig_ struct { + ZoneAwareLbConfig *Cluster_CommonLbConfig_ZoneAwareLbConfig `protobuf:"bytes,2,opt,name=zone_aware_lb_config,json=zoneAwareLbConfig,proto3,oneof"` +} + +type Cluster_CommonLbConfig_LocalityWeightedLbConfig_ struct { + LocalityWeightedLbConfig *Cluster_CommonLbConfig_LocalityWeightedLbConfig `protobuf:"bytes,3,opt,name=locality_weighted_lb_config,json=localityWeightedLbConfig,proto3,oneof"` +} + +func (*Cluster_CommonLbConfig_ZoneAwareLbConfig_) isCluster_CommonLbConfig_LocalityConfigSpecifier() {} + +func (*Cluster_CommonLbConfig_LocalityWeightedLbConfig_) isCluster_CommonLbConfig_LocalityConfigSpecifier() { +} + +func (m *Cluster_CommonLbConfig) GetLocalityConfigSpecifier() isCluster_CommonLbConfig_LocalityConfigSpecifier { + if m != nil { + return m.LocalityConfigSpecifier + } + return nil +} + +func (m *Cluster_CommonLbConfig) GetZoneAwareLbConfig() *Cluster_CommonLbConfig_ZoneAwareLbConfig { + if x, ok := m.GetLocalityConfigSpecifier().(*Cluster_CommonLbConfig_ZoneAwareLbConfig_); ok { + return x.ZoneAwareLbConfig + } + return nil +} + +func (m *Cluster_CommonLbConfig) GetLocalityWeightedLbConfig() *Cluster_CommonLbConfig_LocalityWeightedLbConfig { + if x, ok := m.GetLocalityConfigSpecifier().(*Cluster_CommonLbConfig_LocalityWeightedLbConfig_); ok { + return x.LocalityWeightedLbConfig + } + return nil +} + +func (m *Cluster_CommonLbConfig) GetUpdateMergeWindow() *duration.Duration { + if m != nil { + return m.UpdateMergeWindow + } + return nil +} + +func (m *Cluster_CommonLbConfig) GetIgnoreNewHostsUntilFirstHc() bool { + if m != nil { + return m.IgnoreNewHostsUntilFirstHc + } + return false +} + +func (m *Cluster_CommonLbConfig) GetCloseConnectionsOnHostSetChange() bool { + if m != nil { + return m.CloseConnectionsOnHostSetChange + } + return false +} + +func (m *Cluster_CommonLbConfig) GetConsistentHashingLbConfig() *Cluster_CommonLbConfig_ConsistentHashingLbConfig { + if m != nil { + return m.ConsistentHashingLbConfig + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Cluster_CommonLbConfig) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*Cluster_CommonLbConfig_ZoneAwareLbConfig_)(nil), + (*Cluster_CommonLbConfig_LocalityWeightedLbConfig_)(nil), + } +} + +type Cluster_CommonLbConfig_ZoneAwareLbConfig struct { + RoutingEnabled *v33.Percent `protobuf:"bytes,1,opt,name=routing_enabled,json=routingEnabled,proto3" json:"routing_enabled,omitempty"` + MinClusterSize *wrappers.UInt64Value `protobuf:"bytes,2,opt,name=min_cluster_size,json=minClusterSize,proto3" json:"min_cluster_size,omitempty"` + FailTrafficOnPanic bool `protobuf:"varint,3,opt,name=fail_traffic_on_panic,json=failTrafficOnPanic,proto3" json:"fail_traffic_on_panic,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cluster_CommonLbConfig_ZoneAwareLbConfig) Reset() { + *m = Cluster_CommonLbConfig_ZoneAwareLbConfig{} +} +func (m *Cluster_CommonLbConfig_ZoneAwareLbConfig) String() string { return proto.CompactTextString(m) } +func (*Cluster_CommonLbConfig_ZoneAwareLbConfig) ProtoMessage() {} +func (*Cluster_CommonLbConfig_ZoneAwareLbConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 7, 0} +} + +func (m *Cluster_CommonLbConfig_ZoneAwareLbConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cluster_CommonLbConfig_ZoneAwareLbConfig.Unmarshal(m, b) +} +func (m *Cluster_CommonLbConfig_ZoneAwareLbConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cluster_CommonLbConfig_ZoneAwareLbConfig.Marshal(b, m, deterministic) +} +func (m *Cluster_CommonLbConfig_ZoneAwareLbConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cluster_CommonLbConfig_ZoneAwareLbConfig.Merge(m, src) +} +func (m *Cluster_CommonLbConfig_ZoneAwareLbConfig) XXX_Size() int { + return xxx_messageInfo_Cluster_CommonLbConfig_ZoneAwareLbConfig.Size(m) +} +func (m *Cluster_CommonLbConfig_ZoneAwareLbConfig) XXX_DiscardUnknown() { + xxx_messageInfo_Cluster_CommonLbConfig_ZoneAwareLbConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_Cluster_CommonLbConfig_ZoneAwareLbConfig proto.InternalMessageInfo + +func (m *Cluster_CommonLbConfig_ZoneAwareLbConfig) GetRoutingEnabled() *v33.Percent { + if m != nil { + return m.RoutingEnabled + } + return nil +} + +func (m *Cluster_CommonLbConfig_ZoneAwareLbConfig) GetMinClusterSize() *wrappers.UInt64Value { + if m != nil { + return m.MinClusterSize + } + return nil +} + +func (m *Cluster_CommonLbConfig_ZoneAwareLbConfig) GetFailTrafficOnPanic() bool { + if m != nil { + return m.FailTrafficOnPanic + } + return false +} + +type Cluster_CommonLbConfig_LocalityWeightedLbConfig struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cluster_CommonLbConfig_LocalityWeightedLbConfig) Reset() { + *m = Cluster_CommonLbConfig_LocalityWeightedLbConfig{} +} +func (m *Cluster_CommonLbConfig_LocalityWeightedLbConfig) String() string { + return proto.CompactTextString(m) +} +func (*Cluster_CommonLbConfig_LocalityWeightedLbConfig) ProtoMessage() {} +func (*Cluster_CommonLbConfig_LocalityWeightedLbConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 7, 1} +} + +func (m *Cluster_CommonLbConfig_LocalityWeightedLbConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cluster_CommonLbConfig_LocalityWeightedLbConfig.Unmarshal(m, b) +} +func (m *Cluster_CommonLbConfig_LocalityWeightedLbConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cluster_CommonLbConfig_LocalityWeightedLbConfig.Marshal(b, m, deterministic) +} +func (m *Cluster_CommonLbConfig_LocalityWeightedLbConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cluster_CommonLbConfig_LocalityWeightedLbConfig.Merge(m, src) +} +func (m *Cluster_CommonLbConfig_LocalityWeightedLbConfig) XXX_Size() int { + return xxx_messageInfo_Cluster_CommonLbConfig_LocalityWeightedLbConfig.Size(m) +} +func (m *Cluster_CommonLbConfig_LocalityWeightedLbConfig) XXX_DiscardUnknown() { + xxx_messageInfo_Cluster_CommonLbConfig_LocalityWeightedLbConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_Cluster_CommonLbConfig_LocalityWeightedLbConfig proto.InternalMessageInfo + +type Cluster_CommonLbConfig_ConsistentHashingLbConfig struct { + UseHostnameForHashing bool `protobuf:"varint,1,opt,name=use_hostname_for_hashing,json=useHostnameForHashing,proto3" json:"use_hostname_for_hashing,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cluster_CommonLbConfig_ConsistentHashingLbConfig) Reset() { + *m = Cluster_CommonLbConfig_ConsistentHashingLbConfig{} +} +func (m *Cluster_CommonLbConfig_ConsistentHashingLbConfig) String() string { + return proto.CompactTextString(m) +} +func (*Cluster_CommonLbConfig_ConsistentHashingLbConfig) ProtoMessage() {} +func (*Cluster_CommonLbConfig_ConsistentHashingLbConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 7, 2} +} + +func (m *Cluster_CommonLbConfig_ConsistentHashingLbConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cluster_CommonLbConfig_ConsistentHashingLbConfig.Unmarshal(m, b) +} +func (m *Cluster_CommonLbConfig_ConsistentHashingLbConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cluster_CommonLbConfig_ConsistentHashingLbConfig.Marshal(b, m, deterministic) +} +func (m *Cluster_CommonLbConfig_ConsistentHashingLbConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cluster_CommonLbConfig_ConsistentHashingLbConfig.Merge(m, src) +} +func (m *Cluster_CommonLbConfig_ConsistentHashingLbConfig) XXX_Size() int { + return xxx_messageInfo_Cluster_CommonLbConfig_ConsistentHashingLbConfig.Size(m) +} +func (m *Cluster_CommonLbConfig_ConsistentHashingLbConfig) XXX_DiscardUnknown() { + xxx_messageInfo_Cluster_CommonLbConfig_ConsistentHashingLbConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_Cluster_CommonLbConfig_ConsistentHashingLbConfig proto.InternalMessageInfo + +func (m *Cluster_CommonLbConfig_ConsistentHashingLbConfig) GetUseHostnameForHashing() bool { + if m != nil { + return m.UseHostnameForHashing + } + return false +} + +type Cluster_RefreshRate struct { + BaseInterval *duration.Duration `protobuf:"bytes,1,opt,name=base_interval,json=baseInterval,proto3" json:"base_interval,omitempty"` + MaxInterval *duration.Duration `protobuf:"bytes,2,opt,name=max_interval,json=maxInterval,proto3" json:"max_interval,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cluster_RefreshRate) Reset() { *m = Cluster_RefreshRate{} } +func (m *Cluster_RefreshRate) String() string { return proto.CompactTextString(m) } +func (*Cluster_RefreshRate) ProtoMessage() {} +func (*Cluster_RefreshRate) Descriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{0, 8} +} + +func (m *Cluster_RefreshRate) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cluster_RefreshRate.Unmarshal(m, b) +} +func (m *Cluster_RefreshRate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cluster_RefreshRate.Marshal(b, m, deterministic) +} +func (m *Cluster_RefreshRate) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cluster_RefreshRate.Merge(m, src) +} +func (m *Cluster_RefreshRate) XXX_Size() int { + return xxx_messageInfo_Cluster_RefreshRate.Size(m) +} +func (m *Cluster_RefreshRate) XXX_DiscardUnknown() { + xxx_messageInfo_Cluster_RefreshRate.DiscardUnknown(m) +} + +var xxx_messageInfo_Cluster_RefreshRate proto.InternalMessageInfo + +func (m *Cluster_RefreshRate) GetBaseInterval() *duration.Duration { + if m != nil { + return m.BaseInterval + } + return nil +} + +func (m *Cluster_RefreshRate) GetMaxInterval() *duration.Duration { + if m != nil { + return m.MaxInterval + } + return nil +} + +type LoadBalancingPolicy struct { + Policies []*LoadBalancingPolicy_Policy `protobuf:"bytes,1,rep,name=policies,proto3" json:"policies,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LoadBalancingPolicy) Reset() { *m = LoadBalancingPolicy{} } +func (m *LoadBalancingPolicy) String() string { return proto.CompactTextString(m) } +func (*LoadBalancingPolicy) ProtoMessage() {} +func (*LoadBalancingPolicy) Descriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{1} +} + +func (m *LoadBalancingPolicy) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LoadBalancingPolicy.Unmarshal(m, b) +} +func (m *LoadBalancingPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LoadBalancingPolicy.Marshal(b, m, deterministic) +} +func (m *LoadBalancingPolicy) XXX_Merge(src proto.Message) { + xxx_messageInfo_LoadBalancingPolicy.Merge(m, src) +} +func (m *LoadBalancingPolicy) XXX_Size() int { + return xxx_messageInfo_LoadBalancingPolicy.Size(m) +} +func (m *LoadBalancingPolicy) XXX_DiscardUnknown() { + xxx_messageInfo_LoadBalancingPolicy.DiscardUnknown(m) +} + +var xxx_messageInfo_LoadBalancingPolicy proto.InternalMessageInfo + +func (m *LoadBalancingPolicy) GetPolicies() []*LoadBalancingPolicy_Policy { + if m != nil { + return m.Policies + } + return nil +} + +type LoadBalancingPolicy_Policy struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3" json:"hidden_envoy_deprecated_config,omitempty"` // Deprecated: Do not use. + TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3" json:"typed_config,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LoadBalancingPolicy_Policy) Reset() { *m = LoadBalancingPolicy_Policy{} } +func (m *LoadBalancingPolicy_Policy) String() string { return proto.CompactTextString(m) } +func (*LoadBalancingPolicy_Policy) ProtoMessage() {} +func (*LoadBalancingPolicy_Policy) Descriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{1, 0} +} + +func (m *LoadBalancingPolicy_Policy) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LoadBalancingPolicy_Policy.Unmarshal(m, b) +} +func (m *LoadBalancingPolicy_Policy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LoadBalancingPolicy_Policy.Marshal(b, m, deterministic) +} +func (m *LoadBalancingPolicy_Policy) XXX_Merge(src proto.Message) { + xxx_messageInfo_LoadBalancingPolicy_Policy.Merge(m, src) +} +func (m *LoadBalancingPolicy_Policy) XXX_Size() int { + return xxx_messageInfo_LoadBalancingPolicy_Policy.Size(m) +} +func (m *LoadBalancingPolicy_Policy) XXX_DiscardUnknown() { + xxx_messageInfo_LoadBalancingPolicy_Policy.DiscardUnknown(m) +} + +var xxx_messageInfo_LoadBalancingPolicy_Policy proto.InternalMessageInfo + +func (m *LoadBalancingPolicy_Policy) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +// Deprecated: Do not use. +func (m *LoadBalancingPolicy_Policy) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct { + if m != nil { + return m.HiddenEnvoyDeprecatedConfig + } + return nil +} + +func (m *LoadBalancingPolicy_Policy) GetTypedConfig() *any.Any { + if m != nil { + return m.TypedConfig + } + return nil +} + +type UpstreamBindConfig struct { + SourceAddress *v3.Address `protobuf:"bytes,1,opt,name=source_address,json=sourceAddress,proto3" json:"source_address,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UpstreamBindConfig) Reset() { *m = UpstreamBindConfig{} } +func (m *UpstreamBindConfig) String() string { return proto.CompactTextString(m) } +func (*UpstreamBindConfig) ProtoMessage() {} +func (*UpstreamBindConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{2} +} + +func (m *UpstreamBindConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpstreamBindConfig.Unmarshal(m, b) +} +func (m *UpstreamBindConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpstreamBindConfig.Marshal(b, m, deterministic) +} +func (m *UpstreamBindConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpstreamBindConfig.Merge(m, src) +} +func (m *UpstreamBindConfig) XXX_Size() int { + return xxx_messageInfo_UpstreamBindConfig.Size(m) +} +func (m *UpstreamBindConfig) XXX_DiscardUnknown() { + xxx_messageInfo_UpstreamBindConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_UpstreamBindConfig proto.InternalMessageInfo + +func (m *UpstreamBindConfig) GetSourceAddress() *v3.Address { + if m != nil { + return m.SourceAddress + } + return nil +} + +type UpstreamConnectionOptions struct { + TcpKeepalive *v3.TcpKeepalive `protobuf:"bytes,1,opt,name=tcp_keepalive,json=tcpKeepalive,proto3" json:"tcp_keepalive,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UpstreamConnectionOptions) Reset() { *m = UpstreamConnectionOptions{} } +func (m *UpstreamConnectionOptions) String() string { return proto.CompactTextString(m) } +func (*UpstreamConnectionOptions) ProtoMessage() {} +func (*UpstreamConnectionOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_492f551da3119ad4, []int{3} +} + +func (m *UpstreamConnectionOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpstreamConnectionOptions.Unmarshal(m, b) +} +func (m *UpstreamConnectionOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpstreamConnectionOptions.Marshal(b, m, deterministic) +} +func (m *UpstreamConnectionOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpstreamConnectionOptions.Merge(m, src) +} +func (m *UpstreamConnectionOptions) XXX_Size() int { + return xxx_messageInfo_UpstreamConnectionOptions.Size(m) +} +func (m *UpstreamConnectionOptions) XXX_DiscardUnknown() { + xxx_messageInfo_UpstreamConnectionOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_UpstreamConnectionOptions proto.InternalMessageInfo + +func (m *UpstreamConnectionOptions) GetTcpKeepalive() *v3.TcpKeepalive { + if m != nil { + return m.TcpKeepalive + } + return nil +} + +func init() { + proto.RegisterEnum("envoy.config.cluster.v3.Cluster_DiscoveryType", Cluster_DiscoveryType_name, Cluster_DiscoveryType_value) + proto.RegisterEnum("envoy.config.cluster.v3.Cluster_LbPolicy", Cluster_LbPolicy_name, Cluster_LbPolicy_value) + proto.RegisterEnum("envoy.config.cluster.v3.Cluster_DnsLookupFamily", Cluster_DnsLookupFamily_name, Cluster_DnsLookupFamily_value) + proto.RegisterEnum("envoy.config.cluster.v3.Cluster_ClusterProtocolSelection", Cluster_ClusterProtocolSelection_name, Cluster_ClusterProtocolSelection_value) + proto.RegisterEnum("envoy.config.cluster.v3.Cluster_LbSubsetConfig_LbSubsetFallbackPolicy", Cluster_LbSubsetConfig_LbSubsetFallbackPolicy_name, Cluster_LbSubsetConfig_LbSubsetFallbackPolicy_value) + proto.RegisterEnum("envoy.config.cluster.v3.Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy", Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy_name, Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy_value) + proto.RegisterEnum("envoy.config.cluster.v3.Cluster_RingHashLbConfig_HashFunction", Cluster_RingHashLbConfig_HashFunction_name, Cluster_RingHashLbConfig_HashFunction_value) + proto.RegisterType((*Cluster)(nil), "envoy.config.cluster.v3.Cluster") + proto.RegisterMapType((map[string]*_struct.Struct)(nil), "envoy.config.cluster.v3.Cluster.HiddenEnvoyDeprecatedExtensionProtocolOptionsEntry") + proto.RegisterMapType((map[string]*any.Any)(nil), "envoy.config.cluster.v3.Cluster.TypedExtensionProtocolOptionsEntry") + proto.RegisterType((*Cluster_TransportSocketMatch)(nil), "envoy.config.cluster.v3.Cluster.TransportSocketMatch") + proto.RegisterType((*Cluster_CustomClusterType)(nil), "envoy.config.cluster.v3.Cluster.CustomClusterType") + proto.RegisterType((*Cluster_EdsClusterConfig)(nil), "envoy.config.cluster.v3.Cluster.EdsClusterConfig") + proto.RegisterType((*Cluster_LbSubsetConfig)(nil), "envoy.config.cluster.v3.Cluster.LbSubsetConfig") + proto.RegisterType((*Cluster_LbSubsetConfig_LbSubsetSelector)(nil), "envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector") + proto.RegisterType((*Cluster_LeastRequestLbConfig)(nil), "envoy.config.cluster.v3.Cluster.LeastRequestLbConfig") + proto.RegisterType((*Cluster_RingHashLbConfig)(nil), "envoy.config.cluster.v3.Cluster.RingHashLbConfig") + proto.RegisterType((*Cluster_OriginalDstLbConfig)(nil), "envoy.config.cluster.v3.Cluster.OriginalDstLbConfig") + proto.RegisterType((*Cluster_CommonLbConfig)(nil), "envoy.config.cluster.v3.Cluster.CommonLbConfig") + proto.RegisterType((*Cluster_CommonLbConfig_ZoneAwareLbConfig)(nil), "envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig") + proto.RegisterType((*Cluster_CommonLbConfig_LocalityWeightedLbConfig)(nil), "envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig") + proto.RegisterType((*Cluster_CommonLbConfig_ConsistentHashingLbConfig)(nil), "envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig") + proto.RegisterType((*Cluster_RefreshRate)(nil), "envoy.config.cluster.v3.Cluster.RefreshRate") + proto.RegisterType((*LoadBalancingPolicy)(nil), "envoy.config.cluster.v3.LoadBalancingPolicy") + proto.RegisterType((*LoadBalancingPolicy_Policy)(nil), "envoy.config.cluster.v3.LoadBalancingPolicy.Policy") + proto.RegisterType((*UpstreamBindConfig)(nil), "envoy.config.cluster.v3.UpstreamBindConfig") + proto.RegisterType((*UpstreamConnectionOptions)(nil), "envoy.config.cluster.v3.UpstreamConnectionOptions") +} + +func init() { + proto.RegisterFile("envoy/config/cluster/v3/cluster.proto", fileDescriptor_492f551da3119ad4) +} + +var fileDescriptor_492f551da3119ad4 = []byte{ + // 3471 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x5a, 0xcd, 0x73, 0x1b, 0x47, + 0x76, 0xe7, 0x80, 0x94, 0x08, 0x3e, 0x7e, 0x0d, 0x9b, 0x94, 0x34, 0x04, 0xf5, 0x41, 0x51, 0x96, + 0x45, 0x69, 0x2d, 0xd0, 0xa6, 0x64, 0x3b, 0xcb, 0xac, 0xed, 0xc5, 0x17, 0x45, 0xda, 0x20, 0xc0, + 0x1d, 0x80, 0x92, 0x95, 0x54, 0xa5, 0x3d, 0x98, 0x69, 0x10, 0x13, 0x0e, 0x66, 0x90, 0xe9, 0x06, + 0x25, 0xf8, 0xe4, 0xda, 0xca, 0x21, 0xc9, 0x26, 0x87, 0x6c, 0x2a, 0x55, 0xa9, 0x3d, 0xe5, 0xb2, + 0xa9, 0x94, 0xcf, 0x39, 0xa4, 0x72, 0xca, 0x21, 0xa9, 0xda, 0x6b, 0xf6, 0x8f, 0x48, 0x6e, 0x39, + 0xe4, 0x92, 0x8a, 0x4e, 0xa9, 0xfe, 0x18, 0x7c, 0x0e, 0x08, 0x72, 0x7d, 0x22, 0xba, 0xfb, 0xbd, + 0xdf, 0x7b, 0xdd, 0xfd, 0xfa, 0x7d, 0x0d, 0xe1, 0x21, 0xf1, 0xcf, 0x83, 0xce, 0x8e, 0x1d, 0xf8, + 0x75, 0xf7, 0x74, 0xc7, 0xf6, 0xda, 0x94, 0x91, 0x70, 0xe7, 0xfc, 0x59, 0xf4, 0x33, 0xdd, 0x0a, + 0x03, 0x16, 0xa0, 0x5b, 0x82, 0x2c, 0x2d, 0xc9, 0xd2, 0xd1, 0xda, 0xf9, 0xb3, 0xd4, 0xd3, 0xb1, + 0xfc, 0x6e, 0x68, 0xb7, 0x5d, 0x86, 0x6b, 0x21, 0xb1, 0xce, 0x22, 0x9c, 0xd4, 0x7b, 0xe3, 0xc8, + 0xeb, 0xae, 0xd7, 0x95, 0x96, 0xda, 0x19, 0x47, 0x15, 0xb4, 0x99, 0xe7, 0x92, 0x10, 0x3b, 0x84, + 0x11, 0x9b, 0xb9, 0x81, 0xaf, 0x18, 0xb6, 0x06, 0x19, 0x82, 0x90, 0x70, 0x6a, 0xcb, 0x71, 0x42, + 0x42, 0xa9, 0xa2, 0xb9, 0x17, 0x4b, 0x53, 0xb3, 0x28, 0x51, 0x04, 0xdb, 0xb1, 0x04, 0x72, 0x88, + 0x69, 0xd0, 0x0e, 0xed, 0x88, 0xf2, 0x51, 0x2c, 0x65, 0x83, 0x58, 0x1e, 0x6b, 0x60, 0xbb, 0x41, + 0xec, 0x33, 0x45, 0xf8, 0x20, 0x96, 0x50, 0xac, 0xd9, 0x81, 0x17, 0x8b, 0x46, 0x7c, 0xa7, 0x15, + 0xb8, 0x3e, 0xe3, 0x84, 0xd1, 0x6f, 0x45, 0xf8, 0x5c, 0x12, 0x92, 0xb7, 0x8c, 0xf8, 0xd4, 0x0d, + 0x7c, 0xba, 0xc3, 0x42, 0xcb, 0xa7, 0xad, 0x20, 0x64, 0x98, 0x06, 0xf6, 0x19, 0x61, 0x74, 0x87, + 0x79, 0x54, 0x68, 0x4d, 0xc2, 0x88, 0x6b, 0x43, 0x72, 0xb1, 0x4e, 0x4b, 0x0a, 0x27, 0xa1, 0x4d, + 0xba, 0x90, 0xeb, 0xa7, 0x41, 0x70, 0xea, 0x11, 0xa9, 0x52, 0xad, 0x5d, 0xdf, 0xb1, 0xfc, 0x8e, + 0x5a, 0xba, 0x3b, 0xbc, 0xe4, 0xb4, 0x43, 0xab, 0xef, 0xcc, 0x6f, 0x0f, 0xaf, 0x53, 0x16, 0xb6, + 0x6d, 0x36, 0x8e, 0xfb, 0x4d, 0x68, 0xb5, 0x5a, 0x24, 0xa4, 0x83, 0x27, 0x63, 0xf9, 0x7e, 0xc0, + 0x04, 0x2a, 0xdd, 0x71, 0x48, 0x2b, 0x24, 0x76, 0xbf, 0x88, 0x3b, 0x6d, 0xa7, 0x65, 0x0d, 0xd0, + 0x50, 0x66, 0xb1, 0x76, 0x84, 0x71, 0x7f, 0x64, 0xf9, 0x9c, 0x84, 0xfc, 0x60, 0x5c, 0xff, 0x54, + 0x91, 0xdc, 0x3a, 0xb7, 0x3c, 0xd7, 0xb1, 0x18, 0xd9, 0x89, 0x7e, 0xc8, 0x85, 0xad, 0xbf, 0xcf, + 0xc1, 0x6c, 0x4e, 0x1a, 0x16, 0x0a, 0xc0, 0x18, 0x3e, 0x48, 0xdc, 0xb4, 0x98, 0xdd, 0x20, 0xd4, + 0xf8, 0xd1, 0xe6, 0xf4, 0xf6, 0xfc, 0xee, 0xc7, 0xe9, 0x31, 0xf6, 0x9f, 0x56, 0x18, 0xe9, 0x6a, + 0x04, 0x50, 0x11, 0xfc, 0x47, 0x9c, 0xdd, 0xbc, 0xc9, 0x62, 0x66, 0x09, 0x45, 0x1b, 0x30, 0xe3, + 0x5b, 0x4d, 0x62, 0x68, 0x9b, 0xda, 0xf6, 0x5c, 0x76, 0xf6, 0x5d, 0x76, 0x26, 0x4c, 0x6c, 0x6a, + 0xa6, 0x98, 0x44, 0x5b, 0xb0, 0x68, 0x79, 0x0c, 0xf3, 0x9d, 0x62, 0x41, 0x75, 0x9b, 0x53, 0x99, + 0xf3, 0x96, 0xc7, 0x2a, 0xcc, 0x62, 0x25, 0x4e, 0x53, 0x82, 0x19, 0x7e, 0x9f, 0x46, 0x62, 0x53, + 0xdb, 0x5e, 0xda, 0x4d, 0x4f, 0xd4, 0x2e, 0xef, 0x52, 0x3b, 0x38, 0x27, 0x61, 0xa7, 0xda, 0x69, + 0x91, 0x6c, 0xf2, 0x5d, 0xf6, 0xda, 0xcf, 0xb5, 0x84, 0xae, 0x1d, 0x4c, 0x99, 0x02, 0x07, 0xbd, + 0x82, 0x05, 0xc5, 0x85, 0x05, 0xee, 0xfb, 0x9b, 0xda, 0xf6, 0xfc, 0xee, 0xee, 0x44, 0xdc, 0x5c, + 0x9b, 0xb2, 0xa0, 0xa9, 0x46, 0x1c, 0xfb, 0x60, 0xca, 0x9c, 0xb7, 0x7b, 0x43, 0x84, 0x01, 0x11, + 0x87, 0xe2, 0x08, 0x5c, 0x22, 0x19, 0xd3, 0x02, 0xfe, 0xa3, 0x89, 0xf0, 0x05, 0x87, 0xaa, 0x9f, + 0x39, 0x41, 0x63, 0xea, 0x64, 0x68, 0x06, 0x15, 0x61, 0xd9, 0x0e, 0x7c, 0x9f, 0xd8, 0x0c, 0x33, + 0xb7, 0x49, 0x82, 0x36, 0x33, 0x66, 0x04, 0xfa, 0x7a, 0x5a, 0x5a, 0x60, 0x3a, 0xb2, 0xc0, 0x74, + 0x5e, 0xd9, 0xaf, 0xd8, 0xff, 0xf7, 0x5a, 0xe2, 0xc9, 0x94, 0xb9, 0xa4, 0x78, 0xab, 0x92, 0x15, + 0xd5, 0xe1, 0x7e, 0x4b, 0xaa, 0xe9, 0x4b, 0xff, 0x82, 0x6b, 0xed, 0x7a, 0x9d, 0x84, 0xd8, 0x73, + 0x9b, 0xdc, 0x97, 0x75, 0x18, 0xa1, 0xc6, 0x35, 0x81, 0x7f, 0x7b, 0x04, 0xff, 0xe4, 0xd0, 0x67, + 0xcf, 0x76, 0x5f, 0x5a, 0x5e, 0x9b, 0x98, 0x77, 0x5a, 0x42, 0x43, 0x85, 0x92, 0x15, 0x20, 0x45, + 0x8e, 0x91, 0xe5, 0x10, 0xe8, 0x18, 0xe6, 0xbc, 0x1a, 0x6e, 0x05, 0x9e, 0x6b, 0x77, 0x8c, 0xeb, + 0xe2, 0x12, 0x1f, 0x4f, 0x3c, 0x8d, 0x62, 0xed, 0x58, 0x30, 0xf4, 0xee, 0xcf, 0x4c, 0x7a, 0x6a, + 0x0e, 0x39, 0x70, 0xa7, 0xe1, 0x3a, 0x0e, 0xf1, 0xb1, 0x80, 0xc1, 0xd1, 0x63, 0x22, 0x0e, 0x6e, + 0x04, 0x94, 0x51, 0x63, 0x56, 0x18, 0xf2, 0x9d, 0x21, 0x29, 0x41, 0x48, 0xb8, 0x88, 0x8c, 0xf4, + 0x94, 0xd9, 0x84, 0xa1, 0x99, 0x29, 0x89, 0x53, 0xe0, 0x74, 0xf9, 0x2e, 0xca, 0x01, 0x07, 0x41, + 0x5f, 0xc3, 0xb2, 0x17, 0x58, 0x0e, 0xb6, 0x28, 0x75, 0x4f, 0xfd, 0x26, 0xf1, 0x99, 0x71, 0x5f, + 0x9c, 0xc6, 0xce, 0x20, 0x6e, 0xd7, 0x71, 0xf5, 0xd4, 0x2f, 0x06, 0x96, 0x93, 0xe9, 0xb2, 0x99, + 0x4b, 0xde, 0xc0, 0x18, 0xed, 0xc3, 0x62, 0xbf, 0xff, 0xa4, 0x46, 0x52, 0xe8, 0x7b, 0x3f, 0x5e, + 0xdf, 0x03, 0x41, 0x9a, 0xe3, 0x94, 0xe6, 0x42, 0xa3, 0x37, 0xa0, 0xe8, 0x0f, 0x61, 0xa3, 0x69, + 0xbd, 0xc5, 0x21, 0xf9, 0x93, 0x36, 0xa1, 0x8c, 0xe2, 0xc1, 0xeb, 0x34, 0xe6, 0x2e, 0x71, 0x77, + 0x46, 0xd3, 0x7a, 0x6b, 0x2a, 0xfe, 0xe3, 0xfe, 0x6b, 0x44, 0x15, 0xd0, 0x87, 0xc2, 0x1a, 0x35, + 0x40, 0x20, 0x6e, 0x8f, 0xbf, 0x3d, 0xc9, 0x90, 0x55, 0xf4, 0xe6, 0xb2, 0x3d, 0x38, 0x81, 0xfe, + 0x56, 0x83, 0x07, 0xe3, 0xae, 0x8e, 0x79, 0x94, 0x6b, 0xcf, 0xc8, 0x5b, 0x66, 0xcc, 0x0b, 0x41, + 0x9f, 0x29, 0x41, 0xbd, 0x20, 0x90, 0x1e, 0x09, 0x02, 0x69, 0xe6, 0x51, 0x2e, 0xfa, 0xa4, 0x45, + 0x59, 0x48, 0xac, 0x66, 0xd5, 0xa3, 0x39, 0x09, 0x92, 0x4d, 0xfe, 0xf3, 0x7f, 0xff, 0xcf, 0x6f, + 0xaf, 0x69, 0x86, 0x66, 0xde, 0x8b, 0xbd, 0xe6, 0x1e, 0x29, 0x3a, 0x87, 0xbb, 0x6d, 0x05, 0x80, + 0x1b, 0x8c, 0xb5, 0x70, 0x14, 0xb6, 0x70, 0xd0, 0x12, 0xde, 0xd6, 0x48, 0xc7, 0x3e, 0x63, 0x75, + 0x45, 0x91, 0xf0, 0x03, 0xc6, 0x5a, 0xc7, 0x8a, 0xb3, 0x2c, 0x19, 0xcd, 0x8d, 0xf6, 0xf8, 0x45, + 0xf4, 0xc7, 0x70, 0xdb, 0x0e, 0x9a, 0xcd, 0xc0, 0x1f, 0x23, 0xf5, 0x8e, 0x90, 0xfa, 0x78, 0x8c, + 0x61, 0xc4, 0x48, 0x5b, 0x97, 0x70, 0x71, 0xb2, 0xfe, 0x08, 0x6e, 0xc4, 0x0b, 0x59, 0x14, 0x42, + 0x9e, 0x8c, 0x17, 0xf2, 0xd1, 0xb0, 0x94, 0xd5, 0x46, 0x0c, 0xfe, 0x37, 0x70, 0x93, 0x4f, 0xef, + 0x8e, 0x0a, 0x58, 0x9a, 0x24, 0x60, 0x77, 0x58, 0xc0, 0x5a, 0x23, 0x66, 0x16, 0xfd, 0x46, 0x83, + 0xdd, 0x71, 0xd6, 0xd3, 0xb5, 0x91, 0x51, 0xf1, 0x0f, 0xc4, 0xeb, 0xaa, 0x4c, 0xf4, 0x39, 0x07, + 0x71, 0x46, 0x52, 0x88, 0x70, 0x87, 0x94, 0x29, 0xf8, 0x2c, 0xec, 0xf4, 0x99, 0xd8, 0xd3, 0xc6, + 0x55, 0xb8, 0xd1, 0x5f, 0x6a, 0xb0, 0xc9, 0xa3, 0xcf, 0x85, 0x8a, 0xbf, 0x27, 0x14, 0xcf, 0x4d, + 0x8e, 0xc7, 0x1c, 0xe8, 0x42, 0x45, 0xcd, 0x3b, 0xec, 0x22, 0x1a, 0xf4, 0x33, 0xd0, 0x1d, 0x9f, + 0xe2, 0x90, 0xd4, 0x43, 0x42, 0x1b, 0x38, 0xb4, 0x18, 0x31, 0xf4, 0x49, 0xa1, 0x65, 0xe1, 0x5d, + 0x76, 0xee, 0x7b, 0xed, 0xfa, 0x93, 0x19, 0xfd, 0x5f, 0xff, 0xf4, 0x33, 0x73, 0xc9, 0xf1, 0xa9, + 0x29, 0xf9, 0x4d, 0x8b, 0x11, 0x44, 0xc0, 0xe0, 0x90, 0x75, 0xcb, 0xf5, 0xda, 0x21, 0x19, 0x84, + 0xfe, 0x40, 0x40, 0x7f, 0x30, 0x71, 0x63, 0x7d, 0x78, 0xe6, 0x0d, 0xc7, 0xa7, 0xfb, 0x12, 0xac, + 0x5f, 0xcc, 0xfb, 0xb0, 0x1c, 0x12, 0xda, 0xe2, 0x31, 0x91, 0x8b, 0x63, 0xcc, 0x33, 0x1e, 0x6d, + 0x6a, 0xdb, 0x49, 0x73, 0x51, 0x4d, 0xe7, 0x7d, 0x5a, 0x65, 0x1e, 0xaa, 0xc3, 0x0a, 0x5f, 0xf7, + 0x82, 0xe0, 0xac, 0xdd, 0xc2, 0x75, 0xab, 0xe9, 0x7a, 0x1d, 0x63, 0x45, 0x44, 0xa3, 0x0f, 0x27, + 0xa7, 0x14, 0x3e, 0x2d, 0x0a, 0xc6, 0x7d, 0xc1, 0xd7, 0x17, 0x94, 0x96, 0x9d, 0xc1, 0x25, 0x94, + 0x85, 0x45, 0x79, 0x92, 0x34, 0xf0, 0x78, 0x86, 0x66, 0xa0, 0x4b, 0xc4, 0x22, 0x73, 0x41, 0x1c, + 0x9e, 0x62, 0x41, 0xcf, 0xe1, 0x56, 0x9b, 0x12, 0xcc, 0xec, 0x16, 0xae, 0x07, 0x21, 0xee, 0xe9, + 0x4d, 0x8d, 0xa7, 0x62, 0x6f, 0xab, 0x6d, 0x4a, 0xaa, 0x76, 0x6b, 0x3f, 0x08, 0xbb, 0x9a, 0x51, + 0xf4, 0x12, 0x56, 0x46, 0x4a, 0x06, 0x63, 0x35, 0xd6, 0x81, 0xf4, 0x76, 0x58, 0x96, 0x1c, 0xf9, + 0x88, 0xc1, 0xd4, 0x83, 0xa1, 0x19, 0x54, 0x02, 0xdd, 0xf6, 0x88, 0xe5, 0xb7, 0x5b, 0xd8, 0xf5, + 0x19, 0x09, 0xcf, 0x2d, 0xcf, 0x58, 0xbb, 0x7c, 0xda, 0xb1, 0xac, 0x98, 0x0f, 0x15, 0x2f, 0x32, + 0x61, 0xad, 0xeb, 0x6b, 0x6b, 0xae, 0xef, 0x44, 0x89, 0xd2, 0x0d, 0x81, 0xb9, 0x19, 0x7f, 0x50, + 0x59, 0xd7, 0x77, 0x54, 0x5e, 0x84, 0x22, 0xee, 0xde, 0x1c, 0x7a, 0x0d, 0xba, 0x57, 0xc3, 0xb4, + 0x5d, 0xa3, 0x84, 0x45, 0x78, 0x37, 0xe3, 0x82, 0x75, 0x6c, 0xaa, 0x51, 0x11, 0x7c, 0x0a, 0x7e, + 0xc9, 0x1b, 0x18, 0xa3, 0x1a, 0xac, 0x86, 0xae, 0x7f, 0x8a, 0x1b, 0x16, 0x6d, 0x60, 0xaf, 0x16, + 0xa1, 0xdf, 0xba, 0x64, 0x5a, 0x67, 0xba, 0xfe, 0xe9, 0x81, 0x45, 0x1b, 0xc5, 0x9a, 0xc4, 0x3b, + 0xd0, 0x4c, 0x3d, 0x1c, 0x9a, 0x43, 0x67, 0x70, 0x33, 0x08, 0xdd, 0x53, 0xd7, 0xb7, 0x3c, 0xec, + 0x50, 0xd6, 0x27, 0x66, 0x4b, 0x88, 0x79, 0x3e, 0x51, 0x4c, 0x59, 0xb1, 0xe7, 0x29, 0xeb, 0x93, + 0xb4, 0x1a, 0x8c, 0x4e, 0x23, 0x1f, 0x6e, 0x79, 0xc4, 0xa2, 0x2c, 0xca, 0x1b, 0xfa, 0xa4, 0x3d, + 0x14, 0xd2, 0x26, 0x17, 0x00, 0x45, 0xce, 0xaf, 0xd2, 0x86, 0x3e, 0x71, 0x6b, 0x5e, 0xcc, 0x3c, + 0xbf, 0x1b, 0x15, 0xe3, 0x7a, 0x82, 0x36, 0x2e, 0x79, 0x37, 0x39, 0xc1, 0x18, 0x41, 0xf1, 0x14, + 0xb6, 0x7f, 0x8c, 0x8e, 0x41, 0x1f, 0x4e, 0x08, 0x0c, 0x43, 0x40, 0x3f, 0x8c, 0x37, 0xa3, 0xa1, + 0xca, 0xc5, 0x5c, 0x1e, 0x2a, 0x5a, 0xd0, 0x1e, 0x24, 0x9b, 0x84, 0x59, 0x8e, 0xc5, 0x2c, 0x63, + 0x5d, 0x20, 0xdd, 0x8d, 0x47, 0x3a, 0x52, 0x54, 0x66, 0x97, 0x1e, 0x35, 0x00, 0x75, 0x5d, 0x38, + 0x25, 0x9e, 0x7a, 0x81, 0x29, 0xe1, 0x63, 0x7e, 0x3c, 0x79, 0xab, 0xf2, 0x6f, 0xe4, 0x99, 0x2b, + 0x11, 0x80, 0xb9, 0xd2, 0x1a, 0x9e, 0x42, 0x21, 0x74, 0xb3, 0x8a, 0xfe, 0xfc, 0x3d, 0x8a, 0x1b, + 0x77, 0x27, 0x54, 0x34, 0x51, 0xba, 0xd2, 0xcb, 0xf6, 0xba, 0xe9, 0x43, 0x7b, 0xdc, 0x12, 0x3a, + 0x81, 0x6d, 0xdb, 0x0b, 0x28, 0xe9, 0x13, 0x48, 0x31, 0x4f, 0x5c, 0x02, 0xca, 0xb0, 0x4a, 0x67, + 0x95, 0xb3, 0x37, 0xee, 0x09, 0x2f, 0xf5, 0x40, 0xd0, 0xf7, 0x90, 0x68, 0xd9, 0xe7, 0x99, 0xb5, + 0xcc, 0x67, 0x95, 0x2b, 0x47, 0x3f, 0x85, 0x3b, 0xee, 0xa9, 0x1f, 0x84, 0x24, 0xc2, 0x88, 0x20, + 0x43, 0xd2, 0x0c, 0xb8, 0xab, 0xd9, 0x14, 0x58, 0xeb, 0x92, 0x48, 0xf2, 0x4a, 0x1c, 0x53, 0x12, + 0xa0, 0x1f, 0xc3, 0xac, 0x6c, 0xa8, 0x50, 0x63, 0x5b, 0xf8, 0xda, 0x7b, 0x63, 0x37, 0xbe, 0x2f, + 0xe8, 0xcc, 0x88, 0x1e, 0x7d, 0x03, 0x37, 0x44, 0x8a, 0x5f, 0xb3, 0x3c, 0xcb, 0xb7, 0xf9, 0x2b, + 0x57, 0x65, 0xca, 0xe3, 0x09, 0x01, 0x8a, 0x27, 0xf8, 0xd9, 0x88, 0x49, 0x56, 0x25, 0xe6, 0xaa, + 0x37, 0x3a, 0x89, 0x32, 0x00, 0x5e, 0x48, 0x31, 0x25, 0xe1, 0x39, 0x09, 0x8d, 0x27, 0x02, 0x76, + 0x2b, 0xde, 0xa2, 0xa4, 0x4d, 0x57, 0x44, 0xef, 0xc5, 0x9c, 0xf3, 0x42, 0x5a, 0x11, 0x4c, 0x68, + 0x17, 0x6e, 0xb0, 0xd0, 0xb2, 0xcf, 0xa2, 0x9a, 0x0f, 0xd7, 0xda, 0xce, 0x29, 0x61, 0xd4, 0xd8, + 0x91, 0xb1, 0x40, 0x2c, 0xaa, 0xa2, 0x2e, 0x2b, 0x97, 0x52, 0xff, 0xa9, 0xc1, 0x5a, 0x5c, 0x95, + 0x1e, 0x5b, 0x8d, 0xeb, 0x51, 0x35, 0xfe, 0x14, 0xae, 0x89, 0x56, 0x80, 0x28, 0xb5, 0xe7, 0x77, + 0x6f, 0x8d, 0xb8, 0xf7, 0x8a, 0xe8, 0x7a, 0x98, 0x92, 0x2a, 0xf6, 0xf5, 0x4d, 0xff, 0x90, 0xd7, + 0xb7, 0xf7, 0xe1, 0xaf, 0xfe, 0xfd, 0xcf, 0xee, 0xfe, 0x08, 0x1e, 0x4b, 0x6e, 0xab, 0xe5, 0xa6, + 0xcf, 0x77, 0x2f, 0xec, 0x3a, 0xa4, 0xfe, 0x4e, 0x83, 0x95, 0x91, 0xc2, 0xfc, 0xe2, 0x9e, 0xc3, + 0xa7, 0xb0, 0x20, 0x33, 0x2f, 0xe5, 0x8b, 0xe4, 0x66, 0xd7, 0x46, 0x36, 0x9b, 0xf1, 0x3b, 0xe6, + 0xbc, 0xa0, 0x94, 0x37, 0xb3, 0xf7, 0x94, 0x6b, 0xb7, 0x0d, 0xef, 0xc7, 0x6a, 0x37, 0xa2, 0x44, + 0xea, 0x1f, 0x34, 0xd0, 0x87, 0x8b, 0x7a, 0x6e, 0x0f, 0xa2, 0x47, 0x20, 0x45, 0x6b, 0x97, 0xb7, + 0x07, 0xe2, 0x50, 0x05, 0x71, 0x1f, 0x16, 0xb8, 0x39, 0xb9, 0x36, 0x91, 0x2d, 0x93, 0x84, 0x6c, + 0x99, 0xa8, 0xb9, 0x92, 0xd5, 0x24, 0x7b, 0x1f, 0x70, 0x4d, 0x1f, 0xa9, 0x7e, 0xe7, 0xb0, 0xa6, + 0xc3, 0x3a, 0xa5, 0x7e, 0x91, 0x84, 0xa5, 0xc1, 0x20, 0x88, 0x3a, 0xb0, 0x5c, 0xb7, 0x3c, 0xaf, + 0xc6, 0xcd, 0x4e, 0x3d, 0x09, 0x4d, 0xf8, 0xb1, 0xfd, 0x2b, 0x86, 0xd3, 0xee, 0x70, 0x5f, 0xc1, + 0x8d, 0x94, 0xf5, 0x4b, 0xf5, 0x81, 0x15, 0xf4, 0x39, 0x2c, 0x39, 0xa4, 0x6e, 0xb5, 0x3d, 0xa6, + 0xe2, 0xf9, 0x24, 0x6b, 0x5c, 0x54, 0xe4, 0x52, 0x0e, 0x3a, 0x03, 0x5d, 0xe5, 0x01, 0xd2, 0x07, + 0x07, 0x21, 0x35, 0xa6, 0x85, 0x5f, 0xf8, 0xe9, 0xef, 0xaa, 0x7b, 0x45, 0x01, 0x99, 0xcb, 0x74, + 0x60, 0x4c, 0xf9, 0xdb, 0xf4, 0x02, 0xdb, 0xf2, 0x5c, 0xd6, 0xc1, 0x6f, 0x88, 0x7b, 0xda, 0x60, + 0xd8, 0x7a, 0x63, 0x85, 0x44, 0xf4, 0x65, 0x92, 0xdc, 0x25, 0xc8, 0xc5, 0x57, 0x62, 0x2d, 0xc3, + 0x97, 0x38, 0x0f, 0xb5, 0x2d, 0x8f, 0xe0, 0x21, 0x4e, 0xd1, 0x6b, 0x49, 0x9a, 0xab, 0x62, 0xb1, + 0x38, 0xc0, 0x88, 0xde, 0x83, 0xa5, 0x96, 0xe5, 0xbb, 0x36, 0x6e, 0x06, 0x0e, 0xc1, 0x96, 0x2f, + 0x1b, 0x29, 0x49, 0x73, 0x41, 0xcc, 0x1e, 0x05, 0x0e, 0xc9, 0xf8, 0x1d, 0x74, 0x17, 0xe6, 0x3d, + 0x97, 0x32, 0x6c, 0x51, 0x41, 0x32, 0x2b, 0x48, 0xe6, 0xf8, 0x54, 0x86, 0x66, 0xfc, 0x4e, 0xea, + 0xd7, 0xd3, 0xa0, 0x0f, 0xef, 0x09, 0x21, 0x98, 0x39, 0x23, 0x1d, 0x6a, 0x68, 0x9b, 0xd3, 0xdb, + 0x73, 0xa6, 0xf8, 0x8d, 0x7e, 0xa9, 0x8d, 0xde, 0xbf, 0x6c, 0xbf, 0xe1, 0x1f, 0x7a, 0x86, 0x23, + 0x13, 0x97, 0x36, 0x8c, 0x0f, 0x61, 0xad, 0xab, 0x13, 0xd7, 0x32, 0x32, 0x8f, 0x69, 0xa1, 0x38, + 0x8a, 0xd6, 0xbe, 0x22, 0x1d, 0x2a, 0x25, 0x6c, 0x75, 0xe0, 0xee, 0xc5, 0xd2, 0xd0, 0x32, 0xcc, + 0x97, 0xca, 0x55, 0x9c, 0x2f, 0xec, 0x1f, 0x96, 0x0a, 0x79, 0x7d, 0x4a, 0x4e, 0xe0, 0xfd, 0x4c, + 0xb1, 0x98, 0xcd, 0xe4, 0xbe, 0xd2, 0x35, 0xa4, 0xc3, 0x42, 0xa6, 0xf4, 0x1a, 0x17, 0x4a, 0xf9, + 0xe3, 0xf2, 0x61, 0xa9, 0xaa, 0x27, 0x10, 0x82, 0xa5, 0x7c, 0x61, 0x3f, 0x73, 0x52, 0xac, 0xe2, + 0xca, 0x49, 0xb6, 0x52, 0xa8, 0xea, 0xd3, 0x9c, 0xed, 0xab, 0xc2, 0xeb, 0x4a, 0x34, 0x31, 0xb3, + 0xf7, 0xfb, 0xfc, 0x05, 0x7e, 0x02, 0xcf, 0x63, 0x5f, 0xe0, 0x84, 0x23, 0xda, 0x2a, 0xc3, 0xcd, + 0xf8, 0x67, 0x33, 0xac, 0xde, 0xd4, 0x88, 0x7a, 0x5a, 0x8c, 0x7a, 0x89, 0xbd, 0x27, 0x5c, 0x9b, + 0x87, 0xf0, 0xe0, 0x12, 0xda, 0xa4, 0x7e, 0xa9, 0xc1, 0x5a, 0x5c, 0x7e, 0x87, 0x0e, 0x60, 0xc1, + 0x6e, 0x04, 0xdc, 0xed, 0xd8, 0x41, 0xdb, 0x67, 0xca, 0x79, 0x5d, 0xd8, 0x5e, 0x12, 0xae, 0xf7, + 0x49, 0x62, 0x3b, 0x61, 0xce, 0x4b, 0xd6, 0x1c, 0xe7, 0xbc, 0xd8, 0xcd, 0xc7, 0xc9, 0x4e, 0xfd, + 0xf5, 0x34, 0xe8, 0xc3, 0x99, 0x34, 0xaa, 0xc2, 0x4a, 0xd3, 0xf5, 0xdd, 0x66, 0xbb, 0x89, 0x45, + 0x86, 0x4e, 0xdd, 0x6f, 0xc9, 0x85, 0x5a, 0x7d, 0xf2, 0x5c, 0x6a, 0x05, 0xef, 0xb2, 0xb3, 0xbb, + 0xd7, 0x8c, 0xef, 0xbe, 0xfb, 0x6e, 0xc6, 0x5c, 0x56, 0x10, 0x1c, 0xbd, 0xe2, 0x7e, 0x4b, 0x50, + 0x13, 0x16, 0x45, 0xaa, 0x5f, 0x6f, 0xfb, 0x32, 0x81, 0x9b, 0x16, 0x86, 0xff, 0xf9, 0x95, 0x33, + 0xfd, 0x34, 0x1f, 0xec, 0x2b, 0x94, 0x3e, 0xbb, 0x5e, 0x68, 0xf4, 0xcd, 0x8b, 0x4d, 0x58, 0x6f, + 0x87, 0x36, 0x31, 0x73, 0xe5, 0x4d, 0x48, 0x88, 0x68, 0x13, 0x5b, 0x69, 0x58, 0xe8, 0x97, 0x8e, + 0xe6, 0x61, 0xf6, 0xeb, 0xaf, 0xf1, 0x41, 0xa6, 0x72, 0xa0, 0x4f, 0xa1, 0x15, 0x58, 0x3c, 0x3a, + 0x31, 0x8f, 0x4e, 0x4c, 0x31, 0x81, 0x77, 0x75, 0xed, 0xe2, 0x80, 0x31, 0xbc, 0xb1, 0x2f, 0x67, + 0x92, 0x09, 0x7d, 0x3a, 0xe5, 0xc3, 0x6a, 0x4c, 0xd5, 0xc1, 0x0b, 0x72, 0x5e, 0xbc, 0x8a, 0x56, + 0x53, 0x83, 0x58, 0x0e, 0x09, 0xc5, 0x9d, 0x24, 0xcd, 0xc5, 0x36, 0x25, 0x07, 0x8c, 0xb5, 0x0e, + 0xc4, 0xe4, 0xde, 0x0e, 0x17, 0xf9, 0x04, 0xb6, 0x63, 0x45, 0xc6, 0x00, 0xa7, 0x7e, 0x0d, 0xb0, + 0x34, 0x58, 0x0f, 0xa0, 0x12, 0xdc, 0x92, 0x59, 0x63, 0x07, 0x4b, 0xf7, 0xc8, 0x1a, 0x21, 0xa1, + 0x8d, 0xc0, 0x73, 0x94, 0x1d, 0xdc, 0x54, 0xb7, 0xc6, 0xc3, 0x38, 0xbf, 0xab, 0x63, 0xf9, 0x41, + 0xc8, 0xbc, 0xa1, 0xd8, 0x8e, 0x39, 0x57, 0x35, 0x62, 0x42, 0x0c, 0xd6, 0xbe, 0x0d, 0x7c, 0x22, + 0x7d, 0x78, 0x5f, 0xb9, 0x22, 0x23, 0x50, 0xe6, 0x8a, 0xe5, 0x4a, 0xfa, 0x0f, 0x02, 0x9f, 0x08, + 0x9f, 0xdf, 0xad, 0x91, 0xa6, 0xcc, 0x95, 0x6f, 0x87, 0x27, 0xd1, 0x9f, 0x6b, 0xb0, 0x31, 0x14, + 0x0b, 0x88, 0xd3, 0x27, 0x5d, 0xe6, 0x54, 0x07, 0x57, 0x95, 0x3e, 0x18, 0x42, 0x88, 0xd3, 0xa7, + 0x84, 0xe1, 0x8d, 0x59, 0x43, 0x87, 0xb0, 0xda, 0x6e, 0x39, 0x16, 0x23, 0xb8, 0x49, 0xc2, 0x53, + 0x82, 0xdf, 0xb8, 0xbe, 0x13, 0xbc, 0x99, 0xf8, 0x99, 0xc1, 0x5c, 0x91, 0x5c, 0x47, 0x9c, 0xe9, + 0x95, 0xe0, 0x41, 0x39, 0xb8, 0xa7, 0x32, 0x7b, 0x9f, 0xbc, 0x91, 0x8d, 0x79, 0xdc, 0xf6, 0x99, + 0xeb, 0xe1, 0xba, 0x1b, 0xf2, 0x9a, 0xc1, 0x56, 0x11, 0x2f, 0x25, 0xc9, 0x4a, 0xe4, 0x8d, 0x68, + 0xbc, 0x9f, 0x70, 0x9a, 0x7d, 0x4e, 0x72, 0x60, 0xa3, 0x23, 0x78, 0x6f, 0x7c, 0xd5, 0x21, 0x8a, + 0xfd, 0x86, 0xe5, 0x9f, 0x12, 0x15, 0x0e, 0xef, 0xc5, 0x57, 0x1c, 0x15, 0xc2, 0x72, 0x82, 0x0c, + 0xfd, 0x85, 0x06, 0xb7, 0xed, 0xc0, 0xa7, 0x2e, 0x65, 0xc4, 0x67, 0xa2, 0xa6, 0xe7, 0x8f, 0xae, + 0x77, 0xd6, 0xb3, 0x62, 0xa3, 0x87, 0x57, 0x3d, 0xeb, 0x5c, 0x17, 0xf3, 0x40, 0x42, 0x76, 0x4b, + 0xd6, 0x75, 0x7b, 0xdc, 0x52, 0xea, 0xaf, 0x12, 0xb0, 0x32, 0x62, 0x22, 0xe8, 0x0b, 0x58, 0x0e, + 0x83, 0x36, 0xe3, 0x6a, 0x11, 0xdf, 0xaa, 0x79, 0x64, 0x92, 0x2d, 0x2f, 0x29, 0xf2, 0x82, 0xa4, + 0x46, 0xfb, 0xa0, 0x37, 0x5d, 0xbf, 0xfb, 0x19, 0x4a, 0x38, 0x94, 0xc4, 0x64, 0x87, 0x62, 0x2e, + 0x35, 0x5d, 0x5f, 0x6d, 0x4f, 0x38, 0xc2, 0x8f, 0xe0, 0x06, 0xaf, 0xe7, 0x30, 0x0b, 0xad, 0x7a, + 0xdd, 0xb5, 0xf9, 0xa9, 0x8b, 0x47, 0x26, 0xec, 0x31, 0xc9, 0x03, 0xae, 0xeb, 0x55, 0xe5, 0x5a, + 0xd9, 0x17, 0x0f, 0x69, 0xef, 0x27, 0xfc, 0x4d, 0x7f, 0x0a, 0x1f, 0xc7, 0x67, 0xc8, 0x13, 0x1e, + 0x47, 0x0a, 0x83, 0x31, 0xce, 0x66, 0xf7, 0x72, 0x1c, 0xf9, 0x73, 0xf8, 0xc9, 0x65, 0x90, 0xc7, + 0x81, 0xa4, 0x7e, 0xa5, 0xc1, 0xfa, 0xd8, 0x9b, 0x42, 0x9f, 0x82, 0x21, 0x1c, 0x57, 0x40, 0x19, + 0xcf, 0xab, 0x45, 0xeb, 0x4d, 0x19, 0x88, 0xf2, 0x60, 0x37, 0xb8, 0x07, 0x53, 0xcb, 0xfb, 0x41, + 0xa8, 0x00, 0xf6, 0xf2, 0x5c, 0xb7, 0x2f, 0xe0, 0xb3, 0xcb, 0xe8, 0x36, 0x56, 0xfc, 0xc5, 0x31, + 0x7a, 0x10, 0x25, 0xbb, 0x01, 0xeb, 0x5d, 0x87, 0x11, 0x7d, 0xb3, 0x6f, 0x11, 0xdb, 0xad, 0xbb, + 0x24, 0x4c, 0xfd, 0x56, 0x83, 0xf9, 0xfe, 0x0e, 0x69, 0x09, 0x16, 0x6b, 0x16, 0x25, 0xbd, 0xe6, + 0x9d, 0x36, 0xa9, 0x79, 0xb7, 0xf4, 0x2e, 0x3b, 0xff, 0xbd, 0x96, 0x4c, 0x6a, 0xaa, 0xb5, 0xbb, + 0xc0, 0xf9, 0xbb, 0xfd, 0xbb, 0x2f, 0x61, 0xa1, 0x69, 0xbd, 0xed, 0xc1, 0x25, 0xae, 0xd6, 0x27, + 0x9e, 0x6f, 0x5a, 0x6f, 0x23, 0xac, 0xbd, 0x47, 0x7c, 0xd3, 0x5b, 0xb0, 0x19, 0x1f, 0x77, 0x7a, + 0x9b, 0x48, 0x75, 0x60, 0xf7, 0xea, 0xed, 0x79, 0xa4, 0xc3, 0xf4, 0x19, 0x91, 0xa5, 0xcb, 0x9c, + 0xc9, 0x7f, 0xf2, 0x12, 0xf7, 0x9c, 0x5b, 0xfb, 0xc4, 0x12, 0x57, 0x50, 0xed, 0x25, 0x7e, 0x4f, + 0x4b, 0xd5, 0x61, 0x6b, 0x72, 0x83, 0x3d, 0x46, 0xd4, 0x93, 0x41, 0x51, 0xf1, 0x05, 0x66, 0x4f, + 0xce, 0xd6, 0x2b, 0x58, 0x1c, 0xf8, 0x74, 0x8d, 0x00, 0xae, 0x57, 0xaa, 0x99, 0xea, 0x61, 0x4e, + 0x9f, 0x42, 0x4b, 0x00, 0x95, 0xaa, 0x79, 0x98, 0xab, 0xe2, 0x7c, 0xa9, 0xa2, 0x6b, 0x3c, 0x11, + 0x2c, 0x96, 0x5f, 0x1c, 0xe6, 0x32, 0x45, 0x31, 0x91, 0x40, 0xb3, 0x30, 0x5d, 0xc8, 0x57, 0xf4, + 0x69, 0x9e, 0x11, 0x96, 0xcd, 0xc3, 0x17, 0x87, 0x25, 0xbe, 0x54, 0xa9, 0xea, 0x33, 0x5b, 0xff, + 0xa6, 0x41, 0x32, 0xfa, 0x9e, 0xca, 0x19, 0xcd, 0xf2, 0x49, 0x29, 0x8f, 0xcd, 0x72, 0xf6, 0xb0, + 0x24, 0xb3, 0x81, 0x62, 0x21, 0x53, 0xa9, 0x62, 0xb3, 0xf0, 0xb3, 0x93, 0x42, 0x85, 0xa7, 0x90, + 0x8b, 0x30, 0x67, 0x1e, 0x96, 0x5e, 0xc8, 0x7c, 0x21, 0xc1, 0xf5, 0x30, 0x33, 0xa5, 0x7c, 0xf9, + 0x48, 0x9f, 0x46, 0x1f, 0xc3, 0xa3, 0x71, 0x5f, 0x60, 0xfa, 0xa5, 0xe2, 0x62, 0x56, 0x9f, 0x49, + 0x25, 0xff, 0xf1, 0x7f, 0xff, 0xe9, 0x17, 0x09, 0x2d, 0xa9, 0x71, 0x88, 0xa3, 0xcc, 0x8b, 0x62, + 0xe1, 0xa5, 0x7e, 0x0d, 0xad, 0x81, 0x9e, 0x2b, 0x9e, 0x54, 0xaa, 0x05, 0x13, 0x1f, 0x9b, 0xe5, + 0x97, 0x87, 0xf9, 0x42, 0x5e, 0xbf, 0x8e, 0x36, 0xe1, 0x76, 0xb1, 0x9c, 0xc9, 0xe3, 0x6c, 0xa6, + 0x98, 0x29, 0xe5, 0xb8, 0xf4, 0xe3, 0x72, 0xf1, 0x30, 0xf7, 0x1a, 0xe7, 0xca, 0xa5, 0xfd, 0xc3, + 0x17, 0xfa, 0xec, 0xd6, 0xc7, 0xb0, 0x3c, 0xd4, 0x87, 0x47, 0x49, 0x98, 0xc9, 0x9c, 0x54, 0xcb, + 0xfa, 0x14, 0x4f, 0x70, 0x5e, 0x3e, 0xc7, 0xe5, 0x52, 0xf1, 0xb5, 0xae, 0x89, 0xc1, 0x27, 0x72, + 0x90, 0xd8, 0xaa, 0x82, 0x31, 0xae, 0xb5, 0x86, 0x36, 0xe0, 0xd6, 0x49, 0xa5, 0xa0, 0x44, 0x9c, + 0x98, 0x85, 0x3c, 0xd7, 0xa8, 0x5a, 0xce, 0x95, 0x8b, 0xfa, 0x54, 0xb4, 0x98, 0x2f, 0xbf, 0x2a, + 0x55, 0xaa, 0x66, 0x21, 0x73, 0xd4, 0x5b, 0xd4, 0xf6, 0x36, 0xb8, 0xe1, 0xde, 0x84, 0xb5, 0x38, + 0xc3, 0xcd, 0x1a, 0x70, 0x33, 0xf2, 0xbe, 0x4e, 0x74, 0xa3, 0xe2, 0x7f, 0x0d, 0xb2, 0xf3, 0xe2, + 0x5b, 0xb8, 0x1d, 0xa5, 0x51, 0x0b, 0xfa, 0xe2, 0x97, 0x33, 0xc9, 0x65, 0x5d, 0xdf, 0xfa, 0xbf, + 0x04, 0xac, 0xc6, 0x34, 0x95, 0x50, 0x19, 0x92, 0xa2, 0xfe, 0x72, 0x89, 0xac, 0xd0, 0xe6, 0x77, + 0x9f, 0x5d, 0xa5, 0x29, 0x95, 0x56, 0xbd, 0xa9, 0x2e, 0x48, 0xea, 0xbf, 0x34, 0xb8, 0xae, 0xb0, + 0x51, 0x7f, 0x97, 0x44, 0x35, 0x47, 0xbe, 0x81, 0xbb, 0xe3, 0xee, 0x77, 0x20, 0x17, 0x1a, 0xf7, + 0x70, 0xc4, 0x57, 0xf5, 0x8d, 0xd8, 0x6f, 0x61, 0x5d, 0x37, 0x3b, 0xd8, 0x7e, 0x99, 0xbe, 0x6c, + 0xfb, 0x25, 0xcd, 0x8f, 0xfc, 0x31, 0x3c, 0x1a, 0x38, 0xf2, 0xf1, 0x7b, 0x8e, 0xf7, 0x2d, 0x31, + 0xf4, 0x5b, 0x3f, 0xd7, 0x00, 0x9d, 0x8c, 0x7e, 0x53, 0xc8, 0xc3, 0x92, 0xfc, 0x47, 0x28, 0xac, + 0xfe, 0xb7, 0x4a, 0x39, 0xce, 0x09, 0x9f, 0x72, 0x16, 0x25, 0x93, 0x1a, 0xee, 0xbd, 0xcf, 0xb5, + 0xb8, 0x0f, 0xf7, 0x06, 0xb4, 0x18, 0x95, 0xb6, 0xf5, 0x37, 0x1a, 0xac, 0x8f, 0xed, 0xcb, 0xa2, + 0x17, 0xb0, 0xc8, 0xec, 0x16, 0x3e, 0x23, 0xa4, 0x65, 0x79, 0xee, 0x39, 0xb9, 0xb8, 0x73, 0x54, + 0xb5, 0x5b, 0x5f, 0x45, 0x94, 0xe6, 0x02, 0xeb, 0x1b, 0xc5, 0xf7, 0xb0, 0xc6, 0xca, 0xcd, 0x7e, + 0xf1, 0x2f, 0xdf, 0xfd, 0xe6, 0x3f, 0xae, 0x27, 0xf4, 0x04, 0x3c, 0x74, 0x03, 0x29, 0xac, 0x15, + 0x06, 0x6f, 0x3b, 0xe3, 0x6c, 0x30, 0xbb, 0xd0, 0xff, 0xd6, 0x8e, 0xb5, 0xda, 0x75, 0x71, 0x9f, + 0xcf, 0xfe, 0x3f, 0x00, 0x00, 0xff, 0xff, 0x8c, 0x8b, 0xaf, 0x4d, 0x7b, 0x27, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/cluster.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/cluster.pb.validate.go new file mode 100644 index 000000000..d00f2ed22 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/cluster.pb.validate.go @@ -0,0 +1,2066 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/cluster/v3/cluster.proto + +package envoy_config_cluster_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _cluster_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on Cluster with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Cluster) Validate() error { + if m == nil { + return nil + } + + for idx, item := range m.GetTransportSocketMatches() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: fmt.Sprintf("TransportSocketMatches[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(m.GetName()) < 1 { + return ClusterValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + // no validation rules for AltStatName + + if v, ok := interface{}(m.GetEdsClusterConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "EdsClusterConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if d := m.GetConnectTimeout(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return ClusterValidationError{ + field: "ConnectTimeout", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur <= gt { + return ClusterValidationError{ + field: "ConnectTimeout", + reason: "value must be greater than 0s", + } + } + + } + + if v, ok := interface{}(m.GetPerConnectionBufferLimitBytes()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "PerConnectionBufferLimitBytes", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if _, ok := Cluster_LbPolicy_name[int32(m.GetLbPolicy())]; !ok { + return ClusterValidationError{ + field: "LbPolicy", + reason: "value must be one of the defined enum values", + } + } + + for idx, item := range m.GetHiddenEnvoyDeprecatedHosts() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: fmt.Sprintf("HiddenEnvoyDeprecatedHosts[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetLoadAssignment()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "LoadAssignment", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetHealthChecks() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: fmt.Sprintf("HealthChecks[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetMaxRequestsPerConnection()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "MaxRequestsPerConnection", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetCircuitBreakers()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "CircuitBreakers", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedTlsContext()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "HiddenEnvoyDeprecatedTlsContext", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetUpstreamHttpProtocolOptions()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "UpstreamHttpProtocolOptions", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetCommonHttpProtocolOptions()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "CommonHttpProtocolOptions", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetHttpProtocolOptions()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "HttpProtocolOptions", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetHttp2ProtocolOptions()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "Http2ProtocolOptions", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for key, val := range m.GetHiddenEnvoyDeprecatedExtensionProtocolOptions() { + _ = val + + // no validation rules for HiddenEnvoyDeprecatedExtensionProtocolOptions[key] + + if v, ok := interface{}(val).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: fmt.Sprintf("HiddenEnvoyDeprecatedExtensionProtocolOptions[%v]", key), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for key, val := range m.GetTypedExtensionProtocolOptions() { + _ = val + + // no validation rules for TypedExtensionProtocolOptions[key] + + if v, ok := interface{}(val).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: fmt.Sprintf("TypedExtensionProtocolOptions[%v]", key), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if d := m.GetDnsRefreshRate(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return ClusterValidationError{ + field: "DnsRefreshRate", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 1000000*time.Nanosecond) + + if dur <= gt { + return ClusterValidationError{ + field: "DnsRefreshRate", + reason: "value must be greater than 1ms", + } + } + + } + + if v, ok := interface{}(m.GetDnsFailureRefreshRate()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "DnsFailureRefreshRate", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for RespectDnsTtl + + if _, ok := Cluster_DnsLookupFamily_name[int32(m.GetDnsLookupFamily())]; !ok { + return ClusterValidationError{ + field: "DnsLookupFamily", + reason: "value must be one of the defined enum values", + } + } + + for idx, item := range m.GetDnsResolvers() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: fmt.Sprintf("DnsResolvers[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for UseTcpForDnsLookups + + if v, ok := interface{}(m.GetOutlierDetection()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "OutlierDetection", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if d := m.GetCleanupInterval(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return ClusterValidationError{ + field: "CleanupInterval", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur <= gt { + return ClusterValidationError{ + field: "CleanupInterval", + reason: "value must be greater than 0s", + } + } + + } + + if v, ok := interface{}(m.GetUpstreamBindConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "UpstreamBindConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetLbSubsetConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "LbSubsetConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetCommonLbConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "CommonLbConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetTransportSocket()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "TransportSocket", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for ProtocolSelection + + if v, ok := interface{}(m.GetUpstreamConnectionOptions()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "UpstreamConnectionOptions", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for CloseConnectionsOnHostHealthFailure + + // no validation rules for IgnoreHealthOnHostRemoval + + for idx, item := range m.GetFilters() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: fmt.Sprintf("Filters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetLoadBalancingPolicy()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "LoadBalancingPolicy", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetLrsServer()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "LrsServer", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for TrackTimeoutBudgets + + switch m.ClusterDiscoveryType.(type) { + + case *Cluster_Type: + + if _, ok := Cluster_DiscoveryType_name[int32(m.GetType())]; !ok { + return ClusterValidationError{ + field: "Type", + reason: "value must be one of the defined enum values", + } + } + + case *Cluster_ClusterType: + + if v, ok := interface{}(m.GetClusterType()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "ClusterType", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + switch m.LbConfig.(type) { + + case *Cluster_RingHashLbConfig_: + + if v, ok := interface{}(m.GetRingHashLbConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "RingHashLbConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Cluster_OriginalDstLbConfig_: + + if v, ok := interface{}(m.GetOriginalDstLbConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "OriginalDstLbConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Cluster_LeastRequestLbConfig_: + + if v, ok := interface{}(m.GetLeastRequestLbConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterValidationError{ + field: "LeastRequestLbConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// ClusterValidationError is the validation error returned by Cluster.Validate +// if the designated constraints aren't met. +type ClusterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ClusterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ClusterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ClusterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ClusterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ClusterValidationError) ErrorName() string { return "ClusterValidationError" } + +// Error satisfies the builtin error interface +func (e ClusterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCluster.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ClusterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ClusterValidationError{} + +// Validate checks the field values on LoadBalancingPolicy with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *LoadBalancingPolicy) Validate() error { + if m == nil { + return nil + } + + for idx, item := range m.GetPolicies() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return LoadBalancingPolicyValidationError{ + field: fmt.Sprintf("Policies[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// LoadBalancingPolicyValidationError is the validation error returned by +// LoadBalancingPolicy.Validate if the designated constraints aren't met. +type LoadBalancingPolicyValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e LoadBalancingPolicyValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e LoadBalancingPolicyValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e LoadBalancingPolicyValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e LoadBalancingPolicyValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e LoadBalancingPolicyValidationError) ErrorName() string { + return "LoadBalancingPolicyValidationError" +} + +// Error satisfies the builtin error interface +func (e LoadBalancingPolicyValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sLoadBalancingPolicy.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = LoadBalancingPolicyValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = LoadBalancingPolicyValidationError{} + +// Validate checks the field values on UpstreamBindConfig with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *UpstreamBindConfig) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetSourceAddress()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpstreamBindConfigValidationError{ + field: "SourceAddress", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// UpstreamBindConfigValidationError is the validation error returned by +// UpstreamBindConfig.Validate if the designated constraints aren't met. +type UpstreamBindConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpstreamBindConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpstreamBindConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpstreamBindConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpstreamBindConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpstreamBindConfigValidationError) ErrorName() string { + return "UpstreamBindConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e UpstreamBindConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpstreamBindConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpstreamBindConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpstreamBindConfigValidationError{} + +// Validate checks the field values on UpstreamConnectionOptions with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *UpstreamConnectionOptions) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetTcpKeepalive()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpstreamConnectionOptionsValidationError{ + field: "TcpKeepalive", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// UpstreamConnectionOptionsValidationError is the validation error returned by +// UpstreamConnectionOptions.Validate if the designated constraints aren't met. +type UpstreamConnectionOptionsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpstreamConnectionOptionsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpstreamConnectionOptionsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpstreamConnectionOptionsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpstreamConnectionOptionsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpstreamConnectionOptionsValidationError) ErrorName() string { + return "UpstreamConnectionOptionsValidationError" +} + +// Error satisfies the builtin error interface +func (e UpstreamConnectionOptionsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpstreamConnectionOptions.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpstreamConnectionOptionsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpstreamConnectionOptionsValidationError{} + +// Validate checks the field values on Cluster_TransportSocketMatch with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *Cluster_TransportSocketMatch) Validate() error { + if m == nil { + return nil + } + + if utf8.RuneCountInString(m.GetName()) < 1 { + return Cluster_TransportSocketMatchValidationError{ + field: "Name", + reason: "value length must be at least 1 runes", + } + } + + if v, ok := interface{}(m.GetMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Cluster_TransportSocketMatchValidationError{ + field: "Match", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetTransportSocket()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Cluster_TransportSocketMatchValidationError{ + field: "TransportSocket", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// Cluster_TransportSocketMatchValidationError is the validation error returned +// by Cluster_TransportSocketMatch.Validate if the designated constraints +// aren't met. +type Cluster_TransportSocketMatchValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Cluster_TransportSocketMatchValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Cluster_TransportSocketMatchValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Cluster_TransportSocketMatchValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Cluster_TransportSocketMatchValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Cluster_TransportSocketMatchValidationError) ErrorName() string { + return "Cluster_TransportSocketMatchValidationError" +} + +// Error satisfies the builtin error interface +func (e Cluster_TransportSocketMatchValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCluster_TransportSocketMatch.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Cluster_TransportSocketMatchValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Cluster_TransportSocketMatchValidationError{} + +// Validate checks the field values on Cluster_CustomClusterType with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *Cluster_CustomClusterType) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return Cluster_CustomClusterTypeValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Cluster_CustomClusterTypeValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// Cluster_CustomClusterTypeValidationError is the validation error returned by +// Cluster_CustomClusterType.Validate if the designated constraints aren't met. +type Cluster_CustomClusterTypeValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Cluster_CustomClusterTypeValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Cluster_CustomClusterTypeValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Cluster_CustomClusterTypeValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Cluster_CustomClusterTypeValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Cluster_CustomClusterTypeValidationError) ErrorName() string { + return "Cluster_CustomClusterTypeValidationError" +} + +// Error satisfies the builtin error interface +func (e Cluster_CustomClusterTypeValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCluster_CustomClusterType.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Cluster_CustomClusterTypeValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Cluster_CustomClusterTypeValidationError{} + +// Validate checks the field values on Cluster_EdsClusterConfig with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *Cluster_EdsClusterConfig) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetEdsConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Cluster_EdsClusterConfigValidationError{ + field: "EdsConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for ServiceName + + return nil +} + +// Cluster_EdsClusterConfigValidationError is the validation error returned by +// Cluster_EdsClusterConfig.Validate if the designated constraints aren't met. +type Cluster_EdsClusterConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Cluster_EdsClusterConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Cluster_EdsClusterConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Cluster_EdsClusterConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Cluster_EdsClusterConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Cluster_EdsClusterConfigValidationError) ErrorName() string { + return "Cluster_EdsClusterConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e Cluster_EdsClusterConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCluster_EdsClusterConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Cluster_EdsClusterConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Cluster_EdsClusterConfigValidationError{} + +// Validate checks the field values on Cluster_LbSubsetConfig with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *Cluster_LbSubsetConfig) Validate() error { + if m == nil { + return nil + } + + if _, ok := Cluster_LbSubsetConfig_LbSubsetFallbackPolicy_name[int32(m.GetFallbackPolicy())]; !ok { + return Cluster_LbSubsetConfigValidationError{ + field: "FallbackPolicy", + reason: "value must be one of the defined enum values", + } + } + + if v, ok := interface{}(m.GetDefaultSubset()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Cluster_LbSubsetConfigValidationError{ + field: "DefaultSubset", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetSubsetSelectors() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Cluster_LbSubsetConfigValidationError{ + field: fmt.Sprintf("SubsetSelectors[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for LocalityWeightAware + + // no validation rules for ScaleLocalityWeight + + // no validation rules for PanicModeAny + + // no validation rules for ListAsAny + + return nil +} + +// Cluster_LbSubsetConfigValidationError is the validation error returned by +// Cluster_LbSubsetConfig.Validate if the designated constraints aren't met. +type Cluster_LbSubsetConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Cluster_LbSubsetConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Cluster_LbSubsetConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Cluster_LbSubsetConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Cluster_LbSubsetConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Cluster_LbSubsetConfigValidationError) ErrorName() string { + return "Cluster_LbSubsetConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e Cluster_LbSubsetConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCluster_LbSubsetConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Cluster_LbSubsetConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Cluster_LbSubsetConfigValidationError{} + +// Validate checks the field values on Cluster_LeastRequestLbConfig with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *Cluster_LeastRequestLbConfig) Validate() error { + if m == nil { + return nil + } + + if wrapper := m.GetChoiceCount(); wrapper != nil { + + if wrapper.GetValue() < 2 { + return Cluster_LeastRequestLbConfigValidationError{ + field: "ChoiceCount", + reason: "value must be greater than or equal to 2", + } + } + + } + + return nil +} + +// Cluster_LeastRequestLbConfigValidationError is the validation error returned +// by Cluster_LeastRequestLbConfig.Validate if the designated constraints +// aren't met. +type Cluster_LeastRequestLbConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Cluster_LeastRequestLbConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Cluster_LeastRequestLbConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Cluster_LeastRequestLbConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Cluster_LeastRequestLbConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Cluster_LeastRequestLbConfigValidationError) ErrorName() string { + return "Cluster_LeastRequestLbConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e Cluster_LeastRequestLbConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCluster_LeastRequestLbConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Cluster_LeastRequestLbConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Cluster_LeastRequestLbConfigValidationError{} + +// Validate checks the field values on Cluster_RingHashLbConfig with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *Cluster_RingHashLbConfig) Validate() error { + if m == nil { + return nil + } + + if wrapper := m.GetMinimumRingSize(); wrapper != nil { + + if wrapper.GetValue() > 8388608 { + return Cluster_RingHashLbConfigValidationError{ + field: "MinimumRingSize", + reason: "value must be less than or equal to 8388608", + } + } + + } + + if _, ok := Cluster_RingHashLbConfig_HashFunction_name[int32(m.GetHashFunction())]; !ok { + return Cluster_RingHashLbConfigValidationError{ + field: "HashFunction", + reason: "value must be one of the defined enum values", + } + } + + if wrapper := m.GetMaximumRingSize(); wrapper != nil { + + if wrapper.GetValue() > 8388608 { + return Cluster_RingHashLbConfigValidationError{ + field: "MaximumRingSize", + reason: "value must be less than or equal to 8388608", + } + } + + } + + return nil +} + +// Cluster_RingHashLbConfigValidationError is the validation error returned by +// Cluster_RingHashLbConfig.Validate if the designated constraints aren't met. +type Cluster_RingHashLbConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Cluster_RingHashLbConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Cluster_RingHashLbConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Cluster_RingHashLbConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Cluster_RingHashLbConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Cluster_RingHashLbConfigValidationError) ErrorName() string { + return "Cluster_RingHashLbConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e Cluster_RingHashLbConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCluster_RingHashLbConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Cluster_RingHashLbConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Cluster_RingHashLbConfigValidationError{} + +// Validate checks the field values on Cluster_OriginalDstLbConfig with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *Cluster_OriginalDstLbConfig) Validate() error { + if m == nil { + return nil + } + + // no validation rules for UseHttpHeader + + return nil +} + +// Cluster_OriginalDstLbConfigValidationError is the validation error returned +// by Cluster_OriginalDstLbConfig.Validate if the designated constraints +// aren't met. +type Cluster_OriginalDstLbConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Cluster_OriginalDstLbConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Cluster_OriginalDstLbConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Cluster_OriginalDstLbConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Cluster_OriginalDstLbConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Cluster_OriginalDstLbConfigValidationError) ErrorName() string { + return "Cluster_OriginalDstLbConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e Cluster_OriginalDstLbConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCluster_OriginalDstLbConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Cluster_OriginalDstLbConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Cluster_OriginalDstLbConfigValidationError{} + +// Validate checks the field values on Cluster_CommonLbConfig with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *Cluster_CommonLbConfig) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetHealthyPanicThreshold()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Cluster_CommonLbConfigValidationError{ + field: "HealthyPanicThreshold", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetUpdateMergeWindow()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Cluster_CommonLbConfigValidationError{ + field: "UpdateMergeWindow", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for IgnoreNewHostsUntilFirstHc + + // no validation rules for CloseConnectionsOnHostSetChange + + if v, ok := interface{}(m.GetConsistentHashingLbConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Cluster_CommonLbConfigValidationError{ + field: "ConsistentHashingLbConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + switch m.LocalityConfigSpecifier.(type) { + + case *Cluster_CommonLbConfig_ZoneAwareLbConfig_: + + if v, ok := interface{}(m.GetZoneAwareLbConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Cluster_CommonLbConfigValidationError{ + field: "ZoneAwareLbConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Cluster_CommonLbConfig_LocalityWeightedLbConfig_: + + if v, ok := interface{}(m.GetLocalityWeightedLbConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Cluster_CommonLbConfigValidationError{ + field: "LocalityWeightedLbConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// Cluster_CommonLbConfigValidationError is the validation error returned by +// Cluster_CommonLbConfig.Validate if the designated constraints aren't met. +type Cluster_CommonLbConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Cluster_CommonLbConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Cluster_CommonLbConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Cluster_CommonLbConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Cluster_CommonLbConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Cluster_CommonLbConfigValidationError) ErrorName() string { + return "Cluster_CommonLbConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e Cluster_CommonLbConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCluster_CommonLbConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Cluster_CommonLbConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Cluster_CommonLbConfigValidationError{} + +// Validate checks the field values on Cluster_RefreshRate with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *Cluster_RefreshRate) Validate() error { + if m == nil { + return nil + } + + if m.GetBaseInterval() == nil { + return Cluster_RefreshRateValidationError{ + field: "BaseInterval", + reason: "value is required", + } + } + + if d := m.GetBaseInterval(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return Cluster_RefreshRateValidationError{ + field: "BaseInterval", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 1000000*time.Nanosecond) + + if dur <= gt { + return Cluster_RefreshRateValidationError{ + field: "BaseInterval", + reason: "value must be greater than 1ms", + } + } + + } + + if d := m.GetMaxInterval(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return Cluster_RefreshRateValidationError{ + field: "MaxInterval", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 1000000*time.Nanosecond) + + if dur <= gt { + return Cluster_RefreshRateValidationError{ + field: "MaxInterval", + reason: "value must be greater than 1ms", + } + } + + } + + return nil +} + +// Cluster_RefreshRateValidationError is the validation error returned by +// Cluster_RefreshRate.Validate if the designated constraints aren't met. +type Cluster_RefreshRateValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Cluster_RefreshRateValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Cluster_RefreshRateValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Cluster_RefreshRateValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Cluster_RefreshRateValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Cluster_RefreshRateValidationError) ErrorName() string { + return "Cluster_RefreshRateValidationError" +} + +// Error satisfies the builtin error interface +func (e Cluster_RefreshRateValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCluster_RefreshRate.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Cluster_RefreshRateValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Cluster_RefreshRateValidationError{} + +// Validate checks the field values on Cluster_LbSubsetConfig_LbSubsetSelector +// with the rules defined in the proto definition for this message. If any +// rules are violated, an error is returned. +func (m *Cluster_LbSubsetConfig_LbSubsetSelector) Validate() error { + if m == nil { + return nil + } + + if _, ok := Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy_name[int32(m.GetFallbackPolicy())]; !ok { + return Cluster_LbSubsetConfig_LbSubsetSelectorValidationError{ + field: "FallbackPolicy", + reason: "value must be one of the defined enum values", + } + } + + return nil +} + +// Cluster_LbSubsetConfig_LbSubsetSelectorValidationError is the validation +// error returned by Cluster_LbSubsetConfig_LbSubsetSelector.Validate if the +// designated constraints aren't met. +type Cluster_LbSubsetConfig_LbSubsetSelectorValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Cluster_LbSubsetConfig_LbSubsetSelectorValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Cluster_LbSubsetConfig_LbSubsetSelectorValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Cluster_LbSubsetConfig_LbSubsetSelectorValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Cluster_LbSubsetConfig_LbSubsetSelectorValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Cluster_LbSubsetConfig_LbSubsetSelectorValidationError) ErrorName() string { + return "Cluster_LbSubsetConfig_LbSubsetSelectorValidationError" +} + +// Error satisfies the builtin error interface +func (e Cluster_LbSubsetConfig_LbSubsetSelectorValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCluster_LbSubsetConfig_LbSubsetSelector.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Cluster_LbSubsetConfig_LbSubsetSelectorValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Cluster_LbSubsetConfig_LbSubsetSelectorValidationError{} + +// Validate checks the field values on Cluster_CommonLbConfig_ZoneAwareLbConfig +// with the rules defined in the proto definition for this message. If any +// rules are violated, an error is returned. +func (m *Cluster_CommonLbConfig_ZoneAwareLbConfig) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetRoutingEnabled()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Cluster_CommonLbConfig_ZoneAwareLbConfigValidationError{ + field: "RoutingEnabled", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetMinClusterSize()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Cluster_CommonLbConfig_ZoneAwareLbConfigValidationError{ + field: "MinClusterSize", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for FailTrafficOnPanic + + return nil +} + +// Cluster_CommonLbConfig_ZoneAwareLbConfigValidationError is the validation +// error returned by Cluster_CommonLbConfig_ZoneAwareLbConfig.Validate if the +// designated constraints aren't met. +type Cluster_CommonLbConfig_ZoneAwareLbConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Cluster_CommonLbConfig_ZoneAwareLbConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Cluster_CommonLbConfig_ZoneAwareLbConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Cluster_CommonLbConfig_ZoneAwareLbConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Cluster_CommonLbConfig_ZoneAwareLbConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Cluster_CommonLbConfig_ZoneAwareLbConfigValidationError) ErrorName() string { + return "Cluster_CommonLbConfig_ZoneAwareLbConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e Cluster_CommonLbConfig_ZoneAwareLbConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCluster_CommonLbConfig_ZoneAwareLbConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Cluster_CommonLbConfig_ZoneAwareLbConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Cluster_CommonLbConfig_ZoneAwareLbConfigValidationError{} + +// Validate checks the field values on +// Cluster_CommonLbConfig_LocalityWeightedLbConfig with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *Cluster_CommonLbConfig_LocalityWeightedLbConfig) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// Cluster_CommonLbConfig_LocalityWeightedLbConfigValidationError is the +// validation error returned by +// Cluster_CommonLbConfig_LocalityWeightedLbConfig.Validate if the designated +// constraints aren't met. +type Cluster_CommonLbConfig_LocalityWeightedLbConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Cluster_CommonLbConfig_LocalityWeightedLbConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Cluster_CommonLbConfig_LocalityWeightedLbConfigValidationError) Reason() string { + return e.reason +} + +// Cause function returns cause value. +func (e Cluster_CommonLbConfig_LocalityWeightedLbConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Cluster_CommonLbConfig_LocalityWeightedLbConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Cluster_CommonLbConfig_LocalityWeightedLbConfigValidationError) ErrorName() string { + return "Cluster_CommonLbConfig_LocalityWeightedLbConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e Cluster_CommonLbConfig_LocalityWeightedLbConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCluster_CommonLbConfig_LocalityWeightedLbConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Cluster_CommonLbConfig_LocalityWeightedLbConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Cluster_CommonLbConfig_LocalityWeightedLbConfigValidationError{} + +// Validate checks the field values on +// Cluster_CommonLbConfig_ConsistentHashingLbConfig with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *Cluster_CommonLbConfig_ConsistentHashingLbConfig) Validate() error { + if m == nil { + return nil + } + + // no validation rules for UseHostnameForHashing + + return nil +} + +// Cluster_CommonLbConfig_ConsistentHashingLbConfigValidationError is the +// validation error returned by +// Cluster_CommonLbConfig_ConsistentHashingLbConfig.Validate if the designated +// constraints aren't met. +type Cluster_CommonLbConfig_ConsistentHashingLbConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Cluster_CommonLbConfig_ConsistentHashingLbConfigValidationError) Field() string { + return e.field +} + +// Reason function returns reason value. +func (e Cluster_CommonLbConfig_ConsistentHashingLbConfigValidationError) Reason() string { + return e.reason +} + +// Cause function returns cause value. +func (e Cluster_CommonLbConfig_ConsistentHashingLbConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Cluster_CommonLbConfig_ConsistentHashingLbConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Cluster_CommonLbConfig_ConsistentHashingLbConfigValidationError) ErrorName() string { + return "Cluster_CommonLbConfig_ConsistentHashingLbConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e Cluster_CommonLbConfig_ConsistentHashingLbConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCluster_CommonLbConfig_ConsistentHashingLbConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Cluster_CommonLbConfig_ConsistentHashingLbConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Cluster_CommonLbConfig_ConsistentHashingLbConfigValidationError{} + +// Validate checks the field values on LoadBalancingPolicy_Policy with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *LoadBalancingPolicy_Policy) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Name + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return LoadBalancingPolicy_PolicyValidationError{ + field: "HiddenEnvoyDeprecatedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return LoadBalancingPolicy_PolicyValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// LoadBalancingPolicy_PolicyValidationError is the validation error returned +// by LoadBalancingPolicy_Policy.Validate if the designated constraints aren't met. +type LoadBalancingPolicy_PolicyValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e LoadBalancingPolicy_PolicyValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e LoadBalancingPolicy_PolicyValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e LoadBalancingPolicy_PolicyValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e LoadBalancingPolicy_PolicyValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e LoadBalancingPolicy_PolicyValidationError) ErrorName() string { + return "LoadBalancingPolicy_PolicyValidationError" +} + +// Error satisfies the builtin error interface +func (e LoadBalancingPolicy_PolicyValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sLoadBalancingPolicy_Policy.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = LoadBalancingPolicy_PolicyValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = LoadBalancingPolicy_PolicyValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/filter.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/filter.pb.go new file mode 100644 index 000000000..36236ffb0 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/filter.pb.go @@ -0,0 +1,101 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/cluster/v3/filter.proto + +package envoy_config_cluster_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + any "github.com/golang/protobuf/ptypes/any" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type Filter struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + TypedConfig *any.Any `protobuf:"bytes,2,opt,name=typed_config,json=typedConfig,proto3" json:"typed_config,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Filter) Reset() { *m = Filter{} } +func (m *Filter) String() string { return proto.CompactTextString(m) } +func (*Filter) ProtoMessage() {} +func (*Filter) Descriptor() ([]byte, []int) { + return fileDescriptor_9b51d51fa3c53520, []int{0} +} + +func (m *Filter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Filter.Unmarshal(m, b) +} +func (m *Filter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Filter.Marshal(b, m, deterministic) +} +func (m *Filter) XXX_Merge(src proto.Message) { + xxx_messageInfo_Filter.Merge(m, src) +} +func (m *Filter) XXX_Size() int { + return xxx_messageInfo_Filter.Size(m) +} +func (m *Filter) XXX_DiscardUnknown() { + xxx_messageInfo_Filter.DiscardUnknown(m) +} + +var xxx_messageInfo_Filter proto.InternalMessageInfo + +func (m *Filter) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Filter) GetTypedConfig() *any.Any { + if m != nil { + return m.TypedConfig + } + return nil +} + +func init() { + proto.RegisterType((*Filter)(nil), "envoy.config.cluster.v3.Filter") +} + +func init() { + proto.RegisterFile("envoy/config/cluster/v3/filter.proto", fileDescriptor_9b51d51fa3c53520) +} + +var fileDescriptor_9b51d51fa3c53520 = []byte{ + // 283 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x90, 0xc1, 0x4a, 0xec, 0x30, + 0x14, 0x86, 0x49, 0x19, 0x7a, 0xb9, 0xa9, 0x0b, 0x29, 0xc2, 0x8c, 0x33, 0x8c, 0xd4, 0x41, 0x61, + 0x56, 0x09, 0x4c, 0x17, 0x82, 0x0b, 0xc1, 0x0a, 0xae, 0x87, 0x79, 0x01, 0xc9, 0x4c, 0xd3, 0x12, + 0xa8, 0xe7, 0x94, 0x34, 0x0d, 0x66, 0x27, 0xae, 0x7c, 0x06, 0x1f, 0xc5, 0xbd, 0xe0, 0xd6, 0xd7, + 0x71, 0x25, 0x26, 0x1d, 0x37, 0xe2, 0x2e, 0xe4, 0xff, 0x0e, 0xff, 0x77, 0x0e, 0x3d, 0x93, 0x60, + 0xd1, 0xf1, 0x1d, 0x42, 0xa5, 0x6a, 0xbe, 0x6b, 0xfa, 0xce, 0x48, 0xcd, 0x6d, 0xce, 0x2b, 0xd5, + 0x18, 0xa9, 0x59, 0xab, 0xd1, 0x60, 0x3a, 0xf6, 0x14, 0x0b, 0x14, 0x1b, 0x28, 0x66, 0xf3, 0xe9, + 0x71, 0x8d, 0x58, 0x37, 0x92, 0x7b, 0x6c, 0xdb, 0x57, 0x5c, 0x80, 0x0b, 0x33, 0xd3, 0x79, 0x5f, + 0xb6, 0x82, 0x0b, 0x00, 0x34, 0xc2, 0x28, 0x84, 0x8e, 0x77, 0x46, 0x98, 0xbe, 0x1b, 0xe2, 0xd3, + 0x5f, 0xb1, 0x95, 0xba, 0x53, 0x08, 0x0a, 0xea, 0x01, 0x19, 0x5b, 0xd1, 0xa8, 0x52, 0x18, 0xc9, + 0xf7, 0x8f, 0x10, 0x2c, 0x9e, 0x08, 0x8d, 0x6f, 0xbd, 0x5f, 0x3a, 0xa3, 0x23, 0x10, 0xf7, 0x72, + 0x42, 0x32, 0xb2, 0xfc, 0x5f, 0xfc, 0xfb, 0x2c, 0x46, 0x3a, 0xca, 0xc8, 0xc6, 0x7f, 0xa6, 0x17, + 0xf4, 0xc0, 0xb8, 0x56, 0x96, 0x77, 0x41, 0x7c, 0x12, 0x65, 0x64, 0x99, 0xac, 0x8e, 0x58, 0x90, + 0x66, 0x7b, 0x69, 0x76, 0x0d, 0x6e, 0x93, 0x78, 0xf2, 0xc6, 0x83, 0x97, 0x8b, 0x97, 0xb7, 0xe7, + 0x93, 0x39, 0x9d, 0x85, 0xb5, 0x45, 0xab, 0x98, 0x5d, 0xfd, 0xac, 0x1d, 0x9a, 0x8b, 0xab, 0xd7, + 0xc7, 0xf7, 0x8f, 0x38, 0x3a, 0x8c, 0xe8, 0xb9, 0x42, 0xe6, 0xc9, 0x56, 0xe3, 0x83, 0x63, 0x7f, + 0xdc, 0xaa, 0x48, 0xc2, 0xe0, 0xfa, 0xbb, 0x75, 0x4d, 0xb6, 0xb1, 0xaf, 0xcf, 0xbf, 0x02, 0x00, + 0x00, 0xff, 0xff, 0xdf, 0x45, 0x53, 0x8c, 0x82, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/filter.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/filter.pb.validate.go new file mode 100644 index 000000000..24c7d4f5b --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/filter.pb.validate.go @@ -0,0 +1,118 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/cluster/v3/filter.proto + +package envoy_config_cluster_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _filter_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on Filter with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Filter) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return FilterValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return FilterValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// FilterValidationError is the validation error returned by Filter.Validate if +// the designated constraints aren't met. +type FilterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e FilterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e FilterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e FilterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e FilterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e FilterValidationError) ErrorName() string { return "FilterValidationError" } + +// Error satisfies the builtin error interface +func (e FilterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sFilter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = FilterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = FilterValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/outlier_detection.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/outlier_detection.pb.go new file mode 100644 index 000000000..89214ac29 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/outlier_detection.pb.go @@ -0,0 +1,277 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/cluster/v3/outlier_detection.proto + +package envoy_config_cluster_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + duration "github.com/golang/protobuf/ptypes/duration" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type OutlierDetection struct { + Consecutive_5Xx *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=consecutive_5xx,json=consecutive5xx,proto3" json:"consecutive_5xx,omitempty"` + Interval *duration.Duration `protobuf:"bytes,2,opt,name=interval,proto3" json:"interval,omitempty"` + BaseEjectionTime *duration.Duration `protobuf:"bytes,3,opt,name=base_ejection_time,json=baseEjectionTime,proto3" json:"base_ejection_time,omitempty"` + MaxEjectionPercent *wrappers.UInt32Value `protobuf:"bytes,4,opt,name=max_ejection_percent,json=maxEjectionPercent,proto3" json:"max_ejection_percent,omitempty"` + EnforcingConsecutive_5Xx *wrappers.UInt32Value `protobuf:"bytes,5,opt,name=enforcing_consecutive_5xx,json=enforcingConsecutive5xx,proto3" json:"enforcing_consecutive_5xx,omitempty"` + EnforcingSuccessRate *wrappers.UInt32Value `protobuf:"bytes,6,opt,name=enforcing_success_rate,json=enforcingSuccessRate,proto3" json:"enforcing_success_rate,omitempty"` + SuccessRateMinimumHosts *wrappers.UInt32Value `protobuf:"bytes,7,opt,name=success_rate_minimum_hosts,json=successRateMinimumHosts,proto3" json:"success_rate_minimum_hosts,omitempty"` + SuccessRateRequestVolume *wrappers.UInt32Value `protobuf:"bytes,8,opt,name=success_rate_request_volume,json=successRateRequestVolume,proto3" json:"success_rate_request_volume,omitempty"` + SuccessRateStdevFactor *wrappers.UInt32Value `protobuf:"bytes,9,opt,name=success_rate_stdev_factor,json=successRateStdevFactor,proto3" json:"success_rate_stdev_factor,omitempty"` + ConsecutiveGatewayFailure *wrappers.UInt32Value `protobuf:"bytes,10,opt,name=consecutive_gateway_failure,json=consecutiveGatewayFailure,proto3" json:"consecutive_gateway_failure,omitempty"` + EnforcingConsecutiveGatewayFailure *wrappers.UInt32Value `protobuf:"bytes,11,opt,name=enforcing_consecutive_gateway_failure,json=enforcingConsecutiveGatewayFailure,proto3" json:"enforcing_consecutive_gateway_failure,omitempty"` + SplitExternalLocalOriginErrors bool `protobuf:"varint,12,opt,name=split_external_local_origin_errors,json=splitExternalLocalOriginErrors,proto3" json:"split_external_local_origin_errors,omitempty"` + ConsecutiveLocalOriginFailure *wrappers.UInt32Value `protobuf:"bytes,13,opt,name=consecutive_local_origin_failure,json=consecutiveLocalOriginFailure,proto3" json:"consecutive_local_origin_failure,omitempty"` + EnforcingConsecutiveLocalOriginFailure *wrappers.UInt32Value `protobuf:"bytes,14,opt,name=enforcing_consecutive_local_origin_failure,json=enforcingConsecutiveLocalOriginFailure,proto3" json:"enforcing_consecutive_local_origin_failure,omitempty"` + EnforcingLocalOriginSuccessRate *wrappers.UInt32Value `protobuf:"bytes,15,opt,name=enforcing_local_origin_success_rate,json=enforcingLocalOriginSuccessRate,proto3" json:"enforcing_local_origin_success_rate,omitempty"` + FailurePercentageThreshold *wrappers.UInt32Value `protobuf:"bytes,16,opt,name=failure_percentage_threshold,json=failurePercentageThreshold,proto3" json:"failure_percentage_threshold,omitempty"` + EnforcingFailurePercentage *wrappers.UInt32Value `protobuf:"bytes,17,opt,name=enforcing_failure_percentage,json=enforcingFailurePercentage,proto3" json:"enforcing_failure_percentage,omitempty"` + EnforcingFailurePercentageLocalOrigin *wrappers.UInt32Value `protobuf:"bytes,18,opt,name=enforcing_failure_percentage_local_origin,json=enforcingFailurePercentageLocalOrigin,proto3" json:"enforcing_failure_percentage_local_origin,omitempty"` + FailurePercentageMinimumHosts *wrappers.UInt32Value `protobuf:"bytes,19,opt,name=failure_percentage_minimum_hosts,json=failurePercentageMinimumHosts,proto3" json:"failure_percentage_minimum_hosts,omitempty"` + FailurePercentageRequestVolume *wrappers.UInt32Value `protobuf:"bytes,20,opt,name=failure_percentage_request_volume,json=failurePercentageRequestVolume,proto3" json:"failure_percentage_request_volume,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *OutlierDetection) Reset() { *m = OutlierDetection{} } +func (m *OutlierDetection) String() string { return proto.CompactTextString(m) } +func (*OutlierDetection) ProtoMessage() {} +func (*OutlierDetection) Descriptor() ([]byte, []int) { + return fileDescriptor_31a4392bf965e39a, []int{0} +} + +func (m *OutlierDetection) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OutlierDetection.Unmarshal(m, b) +} +func (m *OutlierDetection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OutlierDetection.Marshal(b, m, deterministic) +} +func (m *OutlierDetection) XXX_Merge(src proto.Message) { + xxx_messageInfo_OutlierDetection.Merge(m, src) +} +func (m *OutlierDetection) XXX_Size() int { + return xxx_messageInfo_OutlierDetection.Size(m) +} +func (m *OutlierDetection) XXX_DiscardUnknown() { + xxx_messageInfo_OutlierDetection.DiscardUnknown(m) +} + +var xxx_messageInfo_OutlierDetection proto.InternalMessageInfo + +func (m *OutlierDetection) GetConsecutive_5Xx() *wrappers.UInt32Value { + if m != nil { + return m.Consecutive_5Xx + } + return nil +} + +func (m *OutlierDetection) GetInterval() *duration.Duration { + if m != nil { + return m.Interval + } + return nil +} + +func (m *OutlierDetection) GetBaseEjectionTime() *duration.Duration { + if m != nil { + return m.BaseEjectionTime + } + return nil +} + +func (m *OutlierDetection) GetMaxEjectionPercent() *wrappers.UInt32Value { + if m != nil { + return m.MaxEjectionPercent + } + return nil +} + +func (m *OutlierDetection) GetEnforcingConsecutive_5Xx() *wrappers.UInt32Value { + if m != nil { + return m.EnforcingConsecutive_5Xx + } + return nil +} + +func (m *OutlierDetection) GetEnforcingSuccessRate() *wrappers.UInt32Value { + if m != nil { + return m.EnforcingSuccessRate + } + return nil +} + +func (m *OutlierDetection) GetSuccessRateMinimumHosts() *wrappers.UInt32Value { + if m != nil { + return m.SuccessRateMinimumHosts + } + return nil +} + +func (m *OutlierDetection) GetSuccessRateRequestVolume() *wrappers.UInt32Value { + if m != nil { + return m.SuccessRateRequestVolume + } + return nil +} + +func (m *OutlierDetection) GetSuccessRateStdevFactor() *wrappers.UInt32Value { + if m != nil { + return m.SuccessRateStdevFactor + } + return nil +} + +func (m *OutlierDetection) GetConsecutiveGatewayFailure() *wrappers.UInt32Value { + if m != nil { + return m.ConsecutiveGatewayFailure + } + return nil +} + +func (m *OutlierDetection) GetEnforcingConsecutiveGatewayFailure() *wrappers.UInt32Value { + if m != nil { + return m.EnforcingConsecutiveGatewayFailure + } + return nil +} + +func (m *OutlierDetection) GetSplitExternalLocalOriginErrors() bool { + if m != nil { + return m.SplitExternalLocalOriginErrors + } + return false +} + +func (m *OutlierDetection) GetConsecutiveLocalOriginFailure() *wrappers.UInt32Value { + if m != nil { + return m.ConsecutiveLocalOriginFailure + } + return nil +} + +func (m *OutlierDetection) GetEnforcingConsecutiveLocalOriginFailure() *wrappers.UInt32Value { + if m != nil { + return m.EnforcingConsecutiveLocalOriginFailure + } + return nil +} + +func (m *OutlierDetection) GetEnforcingLocalOriginSuccessRate() *wrappers.UInt32Value { + if m != nil { + return m.EnforcingLocalOriginSuccessRate + } + return nil +} + +func (m *OutlierDetection) GetFailurePercentageThreshold() *wrappers.UInt32Value { + if m != nil { + return m.FailurePercentageThreshold + } + return nil +} + +func (m *OutlierDetection) GetEnforcingFailurePercentage() *wrappers.UInt32Value { + if m != nil { + return m.EnforcingFailurePercentage + } + return nil +} + +func (m *OutlierDetection) GetEnforcingFailurePercentageLocalOrigin() *wrappers.UInt32Value { + if m != nil { + return m.EnforcingFailurePercentageLocalOrigin + } + return nil +} + +func (m *OutlierDetection) GetFailurePercentageMinimumHosts() *wrappers.UInt32Value { + if m != nil { + return m.FailurePercentageMinimumHosts + } + return nil +} + +func (m *OutlierDetection) GetFailurePercentageRequestVolume() *wrappers.UInt32Value { + if m != nil { + return m.FailurePercentageRequestVolume + } + return nil +} + +func init() { + proto.RegisterType((*OutlierDetection)(nil), "envoy.config.cluster.v3.OutlierDetection") +} + +func init() { + proto.RegisterFile("envoy/config/cluster/v3/outlier_detection.proto", fileDescriptor_31a4392bf965e39a) +} + +var fileDescriptor_31a4392bf965e39a = []byte{ + // 781 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x96, 0xdf, 0x6e, 0xe3, 0x44, + 0x14, 0xc6, 0x49, 0xd8, 0xed, 0x86, 0x59, 0xd8, 0x86, 0xa1, 0x6c, 0x9c, 0xee, 0x6e, 0xe8, 0x16, + 0x15, 0x96, 0x0a, 0xd9, 0x52, 0xa3, 0xbd, 0xe1, 0x06, 0x29, 0x6c, 0x4a, 0x41, 0xa0, 0x86, 0xb4, + 0xb4, 0x42, 0x45, 0x1a, 0x4d, 0x9d, 0x13, 0x77, 0x90, 0x3d, 0x63, 0x66, 0xc6, 0xae, 0x7b, 0x05, + 0xdc, 0xf1, 0x0c, 0x3c, 0x02, 0x8f, 0xc0, 0x3d, 0x12, 0xb7, 0xbc, 0x07, 0x4f, 0xd0, 0x2b, 0xe4, + 0x7f, 0x89, 0x9d, 0xb8, 0x60, 0xdf, 0x45, 0x3a, 0xe7, 0xfb, 0x7d, 0xe7, 0x9c, 0x19, 0x9f, 0x0c, + 0xb2, 0x80, 0x87, 0xe2, 0xc6, 0xb2, 0x05, 0x9f, 0x33, 0xc7, 0xb2, 0xdd, 0x40, 0x69, 0x90, 0x56, + 0x38, 0xb4, 0x44, 0xa0, 0x5d, 0x06, 0x92, 0xcc, 0x40, 0x83, 0xad, 0x99, 0xe0, 0xa6, 0x2f, 0x85, + 0x16, 0xb8, 0x97, 0x08, 0xcc, 0x54, 0x60, 0x66, 0x02, 0x33, 0x1c, 0x6e, 0x0f, 0x1c, 0x21, 0x1c, + 0x17, 0xac, 0x24, 0xed, 0x32, 0x98, 0x5b, 0xb3, 0x40, 0xd2, 0xa5, 0x70, 0x3d, 0x7e, 0x2d, 0xa9, + 0xef, 0x83, 0x54, 0x59, 0xfc, 0x59, 0x30, 0xf3, 0xa9, 0x45, 0x39, 0x17, 0x3a, 0x91, 0x29, 0x4b, + 0x69, 0xaa, 0x83, 0x3c, 0xfc, 0x7c, 0x2d, 0x1c, 0x82, 0x54, 0x4c, 0x70, 0xc6, 0x9d, 0x2c, 0xa5, + 0x17, 0x52, 0x97, 0xcd, 0xa8, 0x06, 0x2b, 0xff, 0x91, 0x06, 0x76, 0xff, 0xd9, 0x44, 0xdd, 0xe3, + 0xb4, 0x9f, 0x57, 0x79, 0x3b, 0x78, 0x8c, 0x36, 0x6d, 0xc1, 0x15, 0xd8, 0x81, 0x66, 0x21, 0x90, + 0x97, 0x51, 0x64, 0xb4, 0x76, 0x5a, 0x2f, 0x1e, 0x1e, 0x3c, 0x35, 0xd3, 0x4a, 0xcd, 0xbc, 0x52, + 0xf3, 0xdb, 0x2f, 0xb8, 0x1e, 0x1e, 0x9c, 0x51, 0x37, 0x80, 0xe9, 0xa3, 0x82, 0xe8, 0x65, 0x14, + 0xe1, 0x4f, 0x51, 0x87, 0x71, 0x0d, 0x32, 0xa4, 0xae, 0xd1, 0x4e, 0xf4, 0xfd, 0x35, 0xfd, 0xab, + 0x6c, 0x12, 0xa3, 0xce, 0xed, 0xe8, 0xfe, 0xef, 0xad, 0xf6, 0xfe, 0x6b, 0xd3, 0x85, 0x08, 0x7f, + 0x83, 0xf0, 0x25, 0x55, 0x40, 0xe0, 0x87, 0xb4, 0x30, 0xa2, 0x99, 0x07, 0xc6, 0xeb, 0xf5, 0x51, + 0xdd, 0x58, 0x3e, 0xce, 0xd4, 0xa7, 0xcc, 0x03, 0x7c, 0x8e, 0xb6, 0x3c, 0x1a, 0x2d, 0x89, 0x3e, + 0x48, 0x1b, 0xb8, 0x36, 0xee, 0xfd, 0x7f, 0x7f, 0xa3, 0x07, 0xb7, 0xa3, 0x7b, 0xfb, 0x6d, 0x63, + 0x36, 0xc5, 0x1e, 0x8d, 0x72, 0xea, 0x24, 0x05, 0x60, 0x8a, 0xfa, 0xc0, 0xe7, 0x42, 0xda, 0x8c, + 0x3b, 0x64, 0x75, 0x7a, 0xf7, 0x9b, 0xd0, 0x7b, 0x0b, 0xce, 0x67, 0xe5, 0x79, 0x5e, 0xa0, 0xc7, + 0x4b, 0x0b, 0x15, 0xd8, 0x36, 0x28, 0x45, 0x24, 0xd5, 0x60, 0x6c, 0x34, 0xe1, 0x6f, 0x2d, 0x20, + 0x27, 0x29, 0x63, 0x4a, 0x35, 0xe0, 0xef, 0xd0, 0x76, 0x11, 0x49, 0x3c, 0xc6, 0x99, 0x17, 0x78, + 0xe4, 0x4a, 0x28, 0xad, 0x8c, 0x07, 0x35, 0x8e, 0xbf, 0xa7, 0x96, 0xb8, 0xaf, 0x53, 0xf5, 0x51, + 0x2c, 0xc6, 0x17, 0xe8, 0x49, 0x09, 0x2d, 0xe1, 0xc7, 0x00, 0x94, 0x26, 0xa1, 0x70, 0x03, 0x0f, + 0x8c, 0x4e, 0x0d, 0xb6, 0x51, 0x60, 0x4f, 0x53, 0xf9, 0x59, 0xa2, 0xc6, 0xe7, 0xa8, 0x5f, 0x82, + 0x2b, 0x3d, 0x83, 0x90, 0xcc, 0xa9, 0xad, 0x85, 0x34, 0xde, 0xa8, 0x81, 0x7e, 0x5c, 0x40, 0x9f, + 0xc4, 0xe2, 0xc3, 0x44, 0x8b, 0xbf, 0x47, 0x4f, 0x8a, 0xc7, 0xe8, 0x50, 0x0d, 0xd7, 0xf4, 0x86, + 0xcc, 0x29, 0x73, 0x03, 0x09, 0x06, 0xaa, 0x81, 0xee, 0x17, 0x00, 0x9f, 0xa7, 0xfa, 0xc3, 0x54, + 0x8e, 0x23, 0xb4, 0x57, 0x7d, 0x5d, 0x56, 0x7d, 0x1e, 0x36, 0x39, 0xda, 0xdd, 0xaa, 0xab, 0xb3, + 0xe2, 0xfc, 0x25, 0xda, 0x55, 0xbe, 0xcb, 0x34, 0x81, 0x48, 0x83, 0xe4, 0xd4, 0x25, 0xae, 0xb0, + 0xa9, 0x4b, 0x84, 0x64, 0x0e, 0xe3, 0x04, 0xa4, 0x14, 0x52, 0x19, 0x6f, 0xee, 0xb4, 0x5e, 0x74, + 0xa6, 0x83, 0x24, 0x73, 0x9c, 0x25, 0x7e, 0x15, 0xe7, 0x1d, 0x27, 0x69, 0xe3, 0x24, 0x0b, 0x03, + 0xda, 0x29, 0xd6, 0x5e, 0x02, 0xe5, 0x0d, 0xbc, 0x55, 0x63, 0x50, 0xcf, 0x0a, 0x94, 0x82, 0x4b, + 0x5e, 0xf2, 0x2f, 0x2d, 0xb4, 0x5f, 0x3d, 0xad, 0x4a, 0xc7, 0x47, 0x4d, 0x46, 0xf6, 0x41, 0xd5, + 0xc8, 0x2a, 0x6a, 0x50, 0xe8, 0xfd, 0x65, 0x09, 0x25, 0xdb, 0xd2, 0x97, 0xb8, 0xd9, 0xc4, 0xfb, + 0xbd, 0x05, 0xb1, 0x60, 0x58, 0xfc, 0x28, 0x1d, 0xf4, 0x34, 0x6b, 0x2a, 0x5f, 0x54, 0xd4, 0x01, + 0xa2, 0xaf, 0x24, 0xa8, 0x2b, 0xe1, 0xce, 0x8c, 0x6e, 0x13, 0xb7, 0xed, 0x0c, 0x35, 0x59, 0x90, + 0x4e, 0x73, 0x50, 0x6c, 0xb4, 0xec, 0x6e, 0xdd, 0xd2, 0x78, 0xbb, 0x91, 0xd1, 0x02, 0x75, 0xb8, + 0xea, 0x88, 0x7f, 0x42, 0x1f, 0xfd, 0x97, 0x51, 0x69, 0xb2, 0x06, 0x6e, 0xe2, 0xba, 0x77, 0xb7, + 0x6b, 0x61, 0xba, 0xf1, 0x95, 0xad, 0xb0, 0x2d, 0x6f, 0xbb, 0x77, 0xea, 0x5c, 0xd9, 0xb5, 0x69, + 0x96, 0x76, 0x9e, 0x83, 0x9e, 0x57, 0xd8, 0xac, 0x6c, 0xbe, 0xad, 0x1a, 0x3e, 0x83, 0x35, 0x9f, + 0xd2, 0xfe, 0xfb, 0xe4, 0xe3, 0xdf, 0xfe, 0xfc, 0x75, 0xf0, 0x61, 0xbc, 0x4d, 0xe2, 0xb7, 0x07, + 0xf5, 0x99, 0x19, 0x1e, 0x2c, 0xde, 0x1e, 0xab, 0xff, 0xec, 0xa3, 0xa3, 0x3f, 0x7e, 0xfe, 0xeb, + 0xef, 0x8d, 0x76, 0xb7, 0x8d, 0xf6, 0x98, 0x30, 0x13, 0x8d, 0x2f, 0x45, 0x74, 0x63, 0xde, 0xf1, + 0x74, 0x19, 0xbd, 0xbb, 0x8a, 0x98, 0xc4, 0x45, 0x4e, 0x5a, 0x97, 0x1b, 0x49, 0xb5, 0xc3, 0x7f, + 0x03, 0x00, 0x00, 0xff, 0xff, 0x2b, 0xa1, 0xe3, 0x91, 0x26, 0x09, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/outlier_detection.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/outlier_detection.pb.validate.go new file mode 100644 index 000000000..2bc56c35b --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3/outlier_detection.pb.validate.go @@ -0,0 +1,325 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/cluster/v3/outlier_detection.proto + +package envoy_config_cluster_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _outlier_detection_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on OutlierDetection with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *OutlierDetection) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetConsecutive_5Xx()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return OutlierDetectionValidationError{ + field: "Consecutive_5Xx", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if d := m.GetInterval(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return OutlierDetectionValidationError{ + field: "Interval", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur <= gt { + return OutlierDetectionValidationError{ + field: "Interval", + reason: "value must be greater than 0s", + } + } + + } + + if d := m.GetBaseEjectionTime(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return OutlierDetectionValidationError{ + field: "BaseEjectionTime", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur <= gt { + return OutlierDetectionValidationError{ + field: "BaseEjectionTime", + reason: "value must be greater than 0s", + } + } + + } + + if wrapper := m.GetMaxEjectionPercent(); wrapper != nil { + + if wrapper.GetValue() > 100 { + return OutlierDetectionValidationError{ + field: "MaxEjectionPercent", + reason: "value must be less than or equal to 100", + } + } + + } + + if wrapper := m.GetEnforcingConsecutive_5Xx(); wrapper != nil { + + if wrapper.GetValue() > 100 { + return OutlierDetectionValidationError{ + field: "EnforcingConsecutive_5Xx", + reason: "value must be less than or equal to 100", + } + } + + } + + if wrapper := m.GetEnforcingSuccessRate(); wrapper != nil { + + if wrapper.GetValue() > 100 { + return OutlierDetectionValidationError{ + field: "EnforcingSuccessRate", + reason: "value must be less than or equal to 100", + } + } + + } + + if v, ok := interface{}(m.GetSuccessRateMinimumHosts()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return OutlierDetectionValidationError{ + field: "SuccessRateMinimumHosts", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetSuccessRateRequestVolume()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return OutlierDetectionValidationError{ + field: "SuccessRateRequestVolume", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetSuccessRateStdevFactor()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return OutlierDetectionValidationError{ + field: "SuccessRateStdevFactor", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetConsecutiveGatewayFailure()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return OutlierDetectionValidationError{ + field: "ConsecutiveGatewayFailure", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if wrapper := m.GetEnforcingConsecutiveGatewayFailure(); wrapper != nil { + + if wrapper.GetValue() > 100 { + return OutlierDetectionValidationError{ + field: "EnforcingConsecutiveGatewayFailure", + reason: "value must be less than or equal to 100", + } + } + + } + + // no validation rules for SplitExternalLocalOriginErrors + + if v, ok := interface{}(m.GetConsecutiveLocalOriginFailure()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return OutlierDetectionValidationError{ + field: "ConsecutiveLocalOriginFailure", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if wrapper := m.GetEnforcingConsecutiveLocalOriginFailure(); wrapper != nil { + + if wrapper.GetValue() > 100 { + return OutlierDetectionValidationError{ + field: "EnforcingConsecutiveLocalOriginFailure", + reason: "value must be less than or equal to 100", + } + } + + } + + if wrapper := m.GetEnforcingLocalOriginSuccessRate(); wrapper != nil { + + if wrapper.GetValue() > 100 { + return OutlierDetectionValidationError{ + field: "EnforcingLocalOriginSuccessRate", + reason: "value must be less than or equal to 100", + } + } + + } + + if wrapper := m.GetFailurePercentageThreshold(); wrapper != nil { + + if wrapper.GetValue() > 100 { + return OutlierDetectionValidationError{ + field: "FailurePercentageThreshold", + reason: "value must be less than or equal to 100", + } + } + + } + + if wrapper := m.GetEnforcingFailurePercentage(); wrapper != nil { + + if wrapper.GetValue() > 100 { + return OutlierDetectionValidationError{ + field: "EnforcingFailurePercentage", + reason: "value must be less than or equal to 100", + } + } + + } + + if wrapper := m.GetEnforcingFailurePercentageLocalOrigin(); wrapper != nil { + + if wrapper.GetValue() > 100 { + return OutlierDetectionValidationError{ + field: "EnforcingFailurePercentageLocalOrigin", + reason: "value must be less than or equal to 100", + } + } + + } + + if v, ok := interface{}(m.GetFailurePercentageMinimumHosts()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return OutlierDetectionValidationError{ + field: "FailurePercentageMinimumHosts", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetFailurePercentageRequestVolume()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return OutlierDetectionValidationError{ + field: "FailurePercentageRequestVolume", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// OutlierDetectionValidationError is the validation error returned by +// OutlierDetection.Validate if the designated constraints aren't met. +type OutlierDetectionValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e OutlierDetectionValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e OutlierDetectionValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e OutlierDetectionValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e OutlierDetectionValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e OutlierDetectionValidationError) ErrorName() string { return "OutlierDetectionValidationError" } + +// Error satisfies the builtin error interface +func (e OutlierDetectionValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sOutlierDetection.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = OutlierDetectionValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = OutlierDetectionValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/address.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/address.pb.go new file mode 100644 index 000000000..e92e2b595 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/address.pb.go @@ -0,0 +1,511 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/core/v3/address.proto + +package envoy_config_core_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type SocketAddress_Protocol int32 + +const ( + SocketAddress_TCP SocketAddress_Protocol = 0 + SocketAddress_UDP SocketAddress_Protocol = 1 +) + +var SocketAddress_Protocol_name = map[int32]string{ + 0: "TCP", + 1: "UDP", +} + +var SocketAddress_Protocol_value = map[string]int32{ + "TCP": 0, + "UDP": 1, +} + +func (x SocketAddress_Protocol) String() string { + return proto.EnumName(SocketAddress_Protocol_name, int32(x)) +} + +func (SocketAddress_Protocol) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_73ff5d16d1e342ac, []int{1, 0} +} + +type Pipe struct { + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` + Mode uint32 `protobuf:"varint,2,opt,name=mode,proto3" json:"mode,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Pipe) Reset() { *m = Pipe{} } +func (m *Pipe) String() string { return proto.CompactTextString(m) } +func (*Pipe) ProtoMessage() {} +func (*Pipe) Descriptor() ([]byte, []int) { + return fileDescriptor_73ff5d16d1e342ac, []int{0} +} + +func (m *Pipe) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Pipe.Unmarshal(m, b) +} +func (m *Pipe) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Pipe.Marshal(b, m, deterministic) +} +func (m *Pipe) XXX_Merge(src proto.Message) { + xxx_messageInfo_Pipe.Merge(m, src) +} +func (m *Pipe) XXX_Size() int { + return xxx_messageInfo_Pipe.Size(m) +} +func (m *Pipe) XXX_DiscardUnknown() { + xxx_messageInfo_Pipe.DiscardUnknown(m) +} + +var xxx_messageInfo_Pipe proto.InternalMessageInfo + +func (m *Pipe) GetPath() string { + if m != nil { + return m.Path + } + return "" +} + +func (m *Pipe) GetMode() uint32 { + if m != nil { + return m.Mode + } + return 0 +} + +type SocketAddress struct { + Protocol SocketAddress_Protocol `protobuf:"varint,1,opt,name=protocol,proto3,enum=envoy.config.core.v3.SocketAddress_Protocol" json:"protocol,omitempty"` + Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` + // Types that are valid to be assigned to PortSpecifier: + // *SocketAddress_PortValue + // *SocketAddress_NamedPort + PortSpecifier isSocketAddress_PortSpecifier `protobuf_oneof:"port_specifier"` + ResolverName string `protobuf:"bytes,5,opt,name=resolver_name,json=resolverName,proto3" json:"resolver_name,omitempty"` + Ipv4Compat bool `protobuf:"varint,6,opt,name=ipv4_compat,json=ipv4Compat,proto3" json:"ipv4_compat,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SocketAddress) Reset() { *m = SocketAddress{} } +func (m *SocketAddress) String() string { return proto.CompactTextString(m) } +func (*SocketAddress) ProtoMessage() {} +func (*SocketAddress) Descriptor() ([]byte, []int) { + return fileDescriptor_73ff5d16d1e342ac, []int{1} +} + +func (m *SocketAddress) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SocketAddress.Unmarshal(m, b) +} +func (m *SocketAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SocketAddress.Marshal(b, m, deterministic) +} +func (m *SocketAddress) XXX_Merge(src proto.Message) { + xxx_messageInfo_SocketAddress.Merge(m, src) +} +func (m *SocketAddress) XXX_Size() int { + return xxx_messageInfo_SocketAddress.Size(m) +} +func (m *SocketAddress) XXX_DiscardUnknown() { + xxx_messageInfo_SocketAddress.DiscardUnknown(m) +} + +var xxx_messageInfo_SocketAddress proto.InternalMessageInfo + +func (m *SocketAddress) GetProtocol() SocketAddress_Protocol { + if m != nil { + return m.Protocol + } + return SocketAddress_TCP +} + +func (m *SocketAddress) GetAddress() string { + if m != nil { + return m.Address + } + return "" +} + +type isSocketAddress_PortSpecifier interface { + isSocketAddress_PortSpecifier() +} + +type SocketAddress_PortValue struct { + PortValue uint32 `protobuf:"varint,3,opt,name=port_value,json=portValue,proto3,oneof"` +} + +type SocketAddress_NamedPort struct { + NamedPort string `protobuf:"bytes,4,opt,name=named_port,json=namedPort,proto3,oneof"` +} + +func (*SocketAddress_PortValue) isSocketAddress_PortSpecifier() {} + +func (*SocketAddress_NamedPort) isSocketAddress_PortSpecifier() {} + +func (m *SocketAddress) GetPortSpecifier() isSocketAddress_PortSpecifier { + if m != nil { + return m.PortSpecifier + } + return nil +} + +func (m *SocketAddress) GetPortValue() uint32 { + if x, ok := m.GetPortSpecifier().(*SocketAddress_PortValue); ok { + return x.PortValue + } + return 0 +} + +func (m *SocketAddress) GetNamedPort() string { + if x, ok := m.GetPortSpecifier().(*SocketAddress_NamedPort); ok { + return x.NamedPort + } + return "" +} + +func (m *SocketAddress) GetResolverName() string { + if m != nil { + return m.ResolverName + } + return "" +} + +func (m *SocketAddress) GetIpv4Compat() bool { + if m != nil { + return m.Ipv4Compat + } + return false +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*SocketAddress) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*SocketAddress_PortValue)(nil), + (*SocketAddress_NamedPort)(nil), + } +} + +type TcpKeepalive struct { + KeepaliveProbes *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=keepalive_probes,json=keepaliveProbes,proto3" json:"keepalive_probes,omitempty"` + KeepaliveTime *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=keepalive_time,json=keepaliveTime,proto3" json:"keepalive_time,omitempty"` + KeepaliveInterval *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=keepalive_interval,json=keepaliveInterval,proto3" json:"keepalive_interval,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TcpKeepalive) Reset() { *m = TcpKeepalive{} } +func (m *TcpKeepalive) String() string { return proto.CompactTextString(m) } +func (*TcpKeepalive) ProtoMessage() {} +func (*TcpKeepalive) Descriptor() ([]byte, []int) { + return fileDescriptor_73ff5d16d1e342ac, []int{2} +} + +func (m *TcpKeepalive) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TcpKeepalive.Unmarshal(m, b) +} +func (m *TcpKeepalive) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TcpKeepalive.Marshal(b, m, deterministic) +} +func (m *TcpKeepalive) XXX_Merge(src proto.Message) { + xxx_messageInfo_TcpKeepalive.Merge(m, src) +} +func (m *TcpKeepalive) XXX_Size() int { + return xxx_messageInfo_TcpKeepalive.Size(m) +} +func (m *TcpKeepalive) XXX_DiscardUnknown() { + xxx_messageInfo_TcpKeepalive.DiscardUnknown(m) +} + +var xxx_messageInfo_TcpKeepalive proto.InternalMessageInfo + +func (m *TcpKeepalive) GetKeepaliveProbes() *wrappers.UInt32Value { + if m != nil { + return m.KeepaliveProbes + } + return nil +} + +func (m *TcpKeepalive) GetKeepaliveTime() *wrappers.UInt32Value { + if m != nil { + return m.KeepaliveTime + } + return nil +} + +func (m *TcpKeepalive) GetKeepaliveInterval() *wrappers.UInt32Value { + if m != nil { + return m.KeepaliveInterval + } + return nil +} + +type BindConfig struct { + SourceAddress *SocketAddress `protobuf:"bytes,1,opt,name=source_address,json=sourceAddress,proto3" json:"source_address,omitempty"` + Freebind *wrappers.BoolValue `protobuf:"bytes,2,opt,name=freebind,proto3" json:"freebind,omitempty"` + SocketOptions []*SocketOption `protobuf:"bytes,3,rep,name=socket_options,json=socketOptions,proto3" json:"socket_options,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BindConfig) Reset() { *m = BindConfig{} } +func (m *BindConfig) String() string { return proto.CompactTextString(m) } +func (*BindConfig) ProtoMessage() {} +func (*BindConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_73ff5d16d1e342ac, []int{3} +} + +func (m *BindConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BindConfig.Unmarshal(m, b) +} +func (m *BindConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BindConfig.Marshal(b, m, deterministic) +} +func (m *BindConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_BindConfig.Merge(m, src) +} +func (m *BindConfig) XXX_Size() int { + return xxx_messageInfo_BindConfig.Size(m) +} +func (m *BindConfig) XXX_DiscardUnknown() { + xxx_messageInfo_BindConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_BindConfig proto.InternalMessageInfo + +func (m *BindConfig) GetSourceAddress() *SocketAddress { + if m != nil { + return m.SourceAddress + } + return nil +} + +func (m *BindConfig) GetFreebind() *wrappers.BoolValue { + if m != nil { + return m.Freebind + } + return nil +} + +func (m *BindConfig) GetSocketOptions() []*SocketOption { + if m != nil { + return m.SocketOptions + } + return nil +} + +type Address struct { + // Types that are valid to be assigned to Address: + // *Address_SocketAddress + // *Address_Pipe + Address isAddress_Address `protobuf_oneof:"address"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Address) Reset() { *m = Address{} } +func (m *Address) String() string { return proto.CompactTextString(m) } +func (*Address) ProtoMessage() {} +func (*Address) Descriptor() ([]byte, []int) { + return fileDescriptor_73ff5d16d1e342ac, []int{4} +} + +func (m *Address) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Address.Unmarshal(m, b) +} +func (m *Address) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Address.Marshal(b, m, deterministic) +} +func (m *Address) XXX_Merge(src proto.Message) { + xxx_messageInfo_Address.Merge(m, src) +} +func (m *Address) XXX_Size() int { + return xxx_messageInfo_Address.Size(m) +} +func (m *Address) XXX_DiscardUnknown() { + xxx_messageInfo_Address.DiscardUnknown(m) +} + +var xxx_messageInfo_Address proto.InternalMessageInfo + +type isAddress_Address interface { + isAddress_Address() +} + +type Address_SocketAddress struct { + SocketAddress *SocketAddress `protobuf:"bytes,1,opt,name=socket_address,json=socketAddress,proto3,oneof"` +} + +type Address_Pipe struct { + Pipe *Pipe `protobuf:"bytes,2,opt,name=pipe,proto3,oneof"` +} + +func (*Address_SocketAddress) isAddress_Address() {} + +func (*Address_Pipe) isAddress_Address() {} + +func (m *Address) GetAddress() isAddress_Address { + if m != nil { + return m.Address + } + return nil +} + +func (m *Address) GetSocketAddress() *SocketAddress { + if x, ok := m.GetAddress().(*Address_SocketAddress); ok { + return x.SocketAddress + } + return nil +} + +func (m *Address) GetPipe() *Pipe { + if x, ok := m.GetAddress().(*Address_Pipe); ok { + return x.Pipe + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Address) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*Address_SocketAddress)(nil), + (*Address_Pipe)(nil), + } +} + +type CidrRange struct { + AddressPrefix string `protobuf:"bytes,1,opt,name=address_prefix,json=addressPrefix,proto3" json:"address_prefix,omitempty"` + PrefixLen *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=prefix_len,json=prefixLen,proto3" json:"prefix_len,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CidrRange) Reset() { *m = CidrRange{} } +func (m *CidrRange) String() string { return proto.CompactTextString(m) } +func (*CidrRange) ProtoMessage() {} +func (*CidrRange) Descriptor() ([]byte, []int) { + return fileDescriptor_73ff5d16d1e342ac, []int{5} +} + +func (m *CidrRange) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CidrRange.Unmarshal(m, b) +} +func (m *CidrRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CidrRange.Marshal(b, m, deterministic) +} +func (m *CidrRange) XXX_Merge(src proto.Message) { + xxx_messageInfo_CidrRange.Merge(m, src) +} +func (m *CidrRange) XXX_Size() int { + return xxx_messageInfo_CidrRange.Size(m) +} +func (m *CidrRange) XXX_DiscardUnknown() { + xxx_messageInfo_CidrRange.DiscardUnknown(m) +} + +var xxx_messageInfo_CidrRange proto.InternalMessageInfo + +func (m *CidrRange) GetAddressPrefix() string { + if m != nil { + return m.AddressPrefix + } + return "" +} + +func (m *CidrRange) GetPrefixLen() *wrappers.UInt32Value { + if m != nil { + return m.PrefixLen + } + return nil +} + +func init() { + proto.RegisterEnum("envoy.config.core.v3.SocketAddress_Protocol", SocketAddress_Protocol_name, SocketAddress_Protocol_value) + proto.RegisterType((*Pipe)(nil), "envoy.config.core.v3.Pipe") + proto.RegisterType((*SocketAddress)(nil), "envoy.config.core.v3.SocketAddress") + proto.RegisterType((*TcpKeepalive)(nil), "envoy.config.core.v3.TcpKeepalive") + proto.RegisterType((*BindConfig)(nil), "envoy.config.core.v3.BindConfig") + proto.RegisterType((*Address)(nil), "envoy.config.core.v3.Address") + proto.RegisterType((*CidrRange)(nil), "envoy.config.core.v3.CidrRange") +} + +func init() { proto.RegisterFile("envoy/config/core/v3/address.proto", fileDescriptor_73ff5d16d1e342ac) } + +var fileDescriptor_73ff5d16d1e342ac = []byte{ + // 799 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xcf, 0x6f, 0xe3, 0x44, + 0x14, 0xae, 0xed, 0x6c, 0x9b, 0xbc, 0x36, 0x21, 0x8c, 0xf8, 0x61, 0xd2, 0x34, 0x9b, 0xba, 0x02, + 0x45, 0x15, 0xb2, 0x51, 0x82, 0x38, 0x44, 0x5c, 0xd6, 0x01, 0xd1, 0x6a, 0x57, 0x60, 0x99, 0x2c, + 0x57, 0x33, 0xb1, 0x27, 0x61, 0xb4, 0x8e, 0x67, 0x34, 0x76, 0xcc, 0xee, 0x6d, 0xc5, 0x09, 0xed, + 0x89, 0x33, 0x7f, 0x00, 0x7f, 0x04, 0x9c, 0x91, 0xb8, 0xf2, 0xcf, 0x20, 0xd4, 0x4b, 0xd1, 0x8c, + 0x7f, 0xa4, 0x4b, 0x22, 0x76, 0xb9, 0x65, 0xde, 0x7b, 0xdf, 0x37, 0xdf, 0xfb, 0xfc, 0x65, 0xc0, + 0x22, 0x49, 0xce, 0x9e, 0x39, 0x21, 0x4b, 0x96, 0x74, 0xe5, 0x84, 0x4c, 0x10, 0x27, 0x9f, 0x38, + 0x38, 0x8a, 0x04, 0x49, 0x53, 0x9b, 0x0b, 0x96, 0x31, 0xf4, 0x96, 0x9a, 0xb1, 0x8b, 0x19, 0x5b, + 0xce, 0xd8, 0xf9, 0xa4, 0x37, 0xda, 0x8b, 0x4c, 0x59, 0xf8, 0x84, 0x64, 0x01, 0xe3, 0x19, 0x65, + 0x49, 0x81, 0xef, 0x0d, 0x56, 0x8c, 0xad, 0x62, 0xe2, 0xa8, 0xd3, 0x62, 0xb3, 0x74, 0xbe, 0x17, + 0x98, 0x73, 0x22, 0x4a, 0xfe, 0xde, 0xd9, 0x26, 0xe2, 0xd8, 0xc1, 0x49, 0xc2, 0x32, 0x2c, 0x61, + 0xa9, 0x93, 0x66, 0x38, 0xdb, 0x54, 0xed, 0xf3, 0x9d, 0x76, 0x4e, 0x44, 0x4a, 0x59, 0x42, 0x93, + 0x55, 0x39, 0xf2, 0x6e, 0x8e, 0x63, 0x1a, 0xe1, 0x8c, 0x38, 0xd5, 0x8f, 0xa2, 0x61, 0x7d, 0x0b, + 0x0d, 0x8f, 0x72, 0x82, 0x4e, 0xa1, 0xc1, 0x71, 0xf6, 0x9d, 0xa9, 0x0d, 0xb5, 0x51, 0xcb, 0x3d, + 0xba, 0x71, 0x1b, 0x42, 0x1f, 0x6a, 0xbe, 0x2a, 0xa2, 0x3e, 0x34, 0xd6, 0x2c, 0x22, 0xa6, 0x3e, + 0xd4, 0x46, 0x6d, 0xb7, 0x79, 0xe3, 0xde, 0xbb, 0x34, 0xcc, 0x5b, 0xc3, 0x57, 0xd5, 0xe9, 0xd9, + 0xcf, 0xbf, 0xff, 0x38, 0x30, 0xe1, 0x9d, 0xc2, 0x04, 0xcc, 0xa9, 0x9d, 0x8f, 0x0b, 0x13, 0x24, + 0xb3, 0xf5, 0x97, 0x0e, 0xed, 0xaf, 0xd5, 0xd2, 0x0f, 0x0a, 0xd3, 0x90, 0x0f, 0x4d, 0x75, 0x79, + 0xc8, 0x62, 0x75, 0x5f, 0x67, 0xfc, 0xa1, 0xbd, 0xcf, 0x41, 0xfb, 0x25, 0x98, 0xed, 0x95, 0x18, + 0x25, 0xe0, 0x07, 0x4d, 0xef, 0x6a, 0x7e, 0xcd, 0x83, 0xce, 0xe1, 0xa8, 0xfc, 0x26, 0x4a, 0xe5, + 0x9d, 0x15, 0xaa, 0x3a, 0xba, 0x04, 0xe0, 0x4c, 0x64, 0x41, 0x8e, 0xe3, 0x0d, 0x31, 0x0d, 0xb5, + 0x4b, 0xeb, 0xc6, 0x3d, 0xbc, 0x6c, 0x98, 0xb7, 0xb7, 0xc6, 0xd5, 0x81, 0xdf, 0x92, 0xed, 0x6f, + 0x64, 0x17, 0xdd, 0x07, 0x48, 0xf0, 0x9a, 0x44, 0x81, 0x2c, 0x99, 0x0d, 0xc9, 0x28, 0x07, 0x54, + 0xcd, 0x63, 0x22, 0x43, 0x17, 0xd0, 0x16, 0x24, 0x65, 0x71, 0x4e, 0x44, 0x20, 0xab, 0xe6, 0x3d, + 0x39, 0xe3, 0x9f, 0x54, 0xc5, 0x2f, 0xf1, 0x5a, 0xb2, 0x1c, 0x53, 0x9e, 0x7f, 0x1c, 0x84, 0x6c, + 0xcd, 0x71, 0x66, 0x1e, 0x0e, 0xb5, 0x51, 0xd3, 0x07, 0x59, 0x9a, 0xa9, 0x8a, 0xd5, 0x87, 0x66, + 0xb5, 0x15, 0x3a, 0x02, 0x63, 0x3e, 0xf3, 0xba, 0x07, 0xf2, 0xc7, 0xe3, 0xcf, 0xbc, 0xae, 0x36, + 0xfd, 0x40, 0x1a, 0x7b, 0x0e, 0xf7, 0x77, 0x8d, 0x7d, 0xc9, 0x18, 0xf7, 0x6d, 0xe8, 0xa8, 0xc5, + 0x52, 0x4e, 0x42, 0xba, 0xa4, 0x44, 0x20, 0xe3, 0x6f, 0x57, 0xb3, 0x7e, 0xd2, 0xe1, 0x64, 0x1e, + 0xf2, 0x87, 0x84, 0x70, 0x1c, 0xd3, 0x9c, 0xa0, 0x2f, 0xa0, 0xfb, 0xa4, 0x3a, 0x04, 0x5c, 0xb0, + 0x05, 0x49, 0x95, 0xff, 0xc7, 0xe3, 0xbe, 0x5d, 0x24, 0xd0, 0xae, 0x12, 0x68, 0x3f, 0xbe, 0x4e, + 0xb2, 0xc9, 0x58, 0x99, 0xe1, 0xbf, 0x51, 0xa3, 0x3c, 0x05, 0x42, 0x33, 0xe8, 0x6c, 0x89, 0x32, + 0xba, 0x2e, 0x92, 0xf1, 0x2a, 0x9a, 0x76, 0x8d, 0x99, 0xd3, 0x35, 0x41, 0x0f, 0x01, 0x6d, 0x49, + 0x68, 0x92, 0x11, 0x91, 0xe3, 0x58, 0x7d, 0x96, 0x57, 0x11, 0xbd, 0x59, 0xe3, 0xae, 0x4b, 0xd8, + 0xf4, 0x7d, 0x69, 0xd5, 0x10, 0x06, 0xbb, 0x56, 0xdd, 0x75, 0xc0, 0x7a, 0xa1, 0x03, 0xb8, 0x34, + 0x89, 0x66, 0x2a, 0x67, 0x68, 0x0e, 0x9d, 0x94, 0x6d, 0x44, 0x48, 0x82, 0x2a, 0x3b, 0x85, 0x1d, + 0x17, 0xaf, 0x11, 0x47, 0x95, 0xc2, 0x17, 0x2a, 0x85, 0xed, 0x82, 0xa4, 0x8a, 0xf7, 0x27, 0xd0, + 0x5c, 0x0a, 0x42, 0x16, 0x34, 0x89, 0x4a, 0x5f, 0x7a, 0x3b, 0xeb, 0xb8, 0x8c, 0xc5, 0xc5, 0x32, + 0xf5, 0x2c, 0xba, 0x96, 0x6a, 0xee, 0x3c, 0x0e, 0xa9, 0x69, 0x0c, 0x8d, 0xd1, 0xf1, 0xd8, 0xfa, + 0x2f, 0x35, 0x5f, 0xa9, 0x51, 0x29, 0x61, 0x7b, 0x4a, 0xa7, 0x17, 0xd2, 0x8e, 0x01, 0xf4, 0x77, + 0xed, 0xd8, 0x6e, 0x6f, 0xfd, 0xa6, 0xc1, 0x51, 0xa5, 0xf9, 0x51, 0x7d, 0xf7, 0xff, 0x77, 0xe2, + 0xea, 0xa0, 0xba, 0xbe, 0x62, 0xfb, 0x08, 0x1a, 0x9c, 0x72, 0x52, 0x6f, 0xbf, 0x97, 0x43, 0x3e, + 0x0e, 0x57, 0x07, 0xbe, 0x9a, 0x9c, 0x0e, 0xa5, 0xe0, 0x53, 0x78, 0x6f, 0x57, 0x70, 0x65, 0x77, + 0xa7, 0xfe, 0x83, 0x17, 0xe9, 0xfe, 0x45, 0x83, 0xd6, 0x8c, 0x46, 0xc2, 0xc7, 0xc9, 0x8a, 0x20, + 0x1b, 0x3a, 0x65, 0x37, 0xe0, 0x82, 0x2c, 0xe9, 0xd3, 0x7f, 0x3f, 0x64, 0xed, 0xb2, 0xed, 0xa9, + 0x2e, 0xfa, 0x1c, 0xa0, 0x98, 0x0b, 0x62, 0x92, 0xbc, 0x4e, 0x7a, 0xab, 0x57, 0xef, 0xb9, 0xe6, + 0xb7, 0x0a, 0xe4, 0x23, 0x92, 0x4c, 0x2d, 0x29, 0xfb, 0x0c, 0x4e, 0x77, 0x65, 0xd7, 0xd2, 0xdc, + 0x4f, 0x7f, 0x7d, 0xfe, 0xc7, 0x9f, 0x87, 0x7a, 0x57, 0x07, 0x8b, 0xb2, 0xc2, 0x0a, 0x2e, 0xd8, + 0xd3, 0x67, 0x7b, 0x5d, 0x71, 0x4f, 0x1e, 0x54, 0x3a, 0x59, 0xc6, 0x3c, 0x6d, 0x71, 0xa8, 0xc4, + 0x4c, 0xfe, 0x09, 0x00, 0x00, 0xff, 0xff, 0x84, 0x8e, 0xe4, 0x4b, 0x87, 0x06, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/address.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/address.pb.validate.go new file mode 100644 index 000000000..34bbe3707 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/address.pb.validate.go @@ -0,0 +1,601 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/core/v3/address.proto + +package envoy_config_core_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _address_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on Pipe with the rules defined in the proto +// definition for this message. If any rules are violated, an error is returned. +func (m *Pipe) Validate() error { + if m == nil { + return nil + } + + if len(m.GetPath()) < 1 { + return PipeValidationError{ + field: "Path", + reason: "value length must be at least 1 bytes", + } + } + + if m.GetMode() > 511 { + return PipeValidationError{ + field: "Mode", + reason: "value must be less than or equal to 511", + } + } + + return nil +} + +// PipeValidationError is the validation error returned by Pipe.Validate if the +// designated constraints aren't met. +type PipeValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e PipeValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e PipeValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e PipeValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e PipeValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e PipeValidationError) ErrorName() string { return "PipeValidationError" } + +// Error satisfies the builtin error interface +func (e PipeValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sPipe.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = PipeValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = PipeValidationError{} + +// Validate checks the field values on SocketAddress with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *SocketAddress) Validate() error { + if m == nil { + return nil + } + + if _, ok := SocketAddress_Protocol_name[int32(m.GetProtocol())]; !ok { + return SocketAddressValidationError{ + field: "Protocol", + reason: "value must be one of the defined enum values", + } + } + + if len(m.GetAddress()) < 1 { + return SocketAddressValidationError{ + field: "Address", + reason: "value length must be at least 1 bytes", + } + } + + // no validation rules for ResolverName + + // no validation rules for Ipv4Compat + + switch m.PortSpecifier.(type) { + + case *SocketAddress_PortValue: + + if m.GetPortValue() > 65535 { + return SocketAddressValidationError{ + field: "PortValue", + reason: "value must be less than or equal to 65535", + } + } + + case *SocketAddress_NamedPort: + // no validation rules for NamedPort + + default: + return SocketAddressValidationError{ + field: "PortSpecifier", + reason: "value is required", + } + + } + + return nil +} + +// SocketAddressValidationError is the validation error returned by +// SocketAddress.Validate if the designated constraints aren't met. +type SocketAddressValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e SocketAddressValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e SocketAddressValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e SocketAddressValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e SocketAddressValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e SocketAddressValidationError) ErrorName() string { return "SocketAddressValidationError" } + +// Error satisfies the builtin error interface +func (e SocketAddressValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSocketAddress.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = SocketAddressValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = SocketAddressValidationError{} + +// Validate checks the field values on TcpKeepalive with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *TcpKeepalive) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetKeepaliveProbes()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TcpKeepaliveValidationError{ + field: "KeepaliveProbes", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetKeepaliveTime()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TcpKeepaliveValidationError{ + field: "KeepaliveTime", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetKeepaliveInterval()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TcpKeepaliveValidationError{ + field: "KeepaliveInterval", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// TcpKeepaliveValidationError is the validation error returned by +// TcpKeepalive.Validate if the designated constraints aren't met. +type TcpKeepaliveValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TcpKeepaliveValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TcpKeepaliveValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TcpKeepaliveValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TcpKeepaliveValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TcpKeepaliveValidationError) ErrorName() string { return "TcpKeepaliveValidationError" } + +// Error satisfies the builtin error interface +func (e TcpKeepaliveValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTcpKeepalive.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TcpKeepaliveValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TcpKeepaliveValidationError{} + +// Validate checks the field values on BindConfig with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *BindConfig) Validate() error { + if m == nil { + return nil + } + + if m.GetSourceAddress() == nil { + return BindConfigValidationError{ + field: "SourceAddress", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetSourceAddress()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return BindConfigValidationError{ + field: "SourceAddress", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetFreebind()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return BindConfigValidationError{ + field: "Freebind", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetSocketOptions() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return BindConfigValidationError{ + field: fmt.Sprintf("SocketOptions[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// BindConfigValidationError is the validation error returned by +// BindConfig.Validate if the designated constraints aren't met. +type BindConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e BindConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e BindConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e BindConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e BindConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e BindConfigValidationError) ErrorName() string { return "BindConfigValidationError" } + +// Error satisfies the builtin error interface +func (e BindConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sBindConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = BindConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = BindConfigValidationError{} + +// Validate checks the field values on Address with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Address) Validate() error { + if m == nil { + return nil + } + + switch m.Address.(type) { + + case *Address_SocketAddress: + + if v, ok := interface{}(m.GetSocketAddress()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AddressValidationError{ + field: "SocketAddress", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Address_Pipe: + + if v, ok := interface{}(m.GetPipe()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AddressValidationError{ + field: "Pipe", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return AddressValidationError{ + field: "Address", + reason: "value is required", + } + + } + + return nil +} + +// AddressValidationError is the validation error returned by Address.Validate +// if the designated constraints aren't met. +type AddressValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AddressValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AddressValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AddressValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AddressValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AddressValidationError) ErrorName() string { return "AddressValidationError" } + +// Error satisfies the builtin error interface +func (e AddressValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAddress.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AddressValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AddressValidationError{} + +// Validate checks the field values on CidrRange with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *CidrRange) Validate() error { + if m == nil { + return nil + } + + if len(m.GetAddressPrefix()) < 1 { + return CidrRangeValidationError{ + field: "AddressPrefix", + reason: "value length must be at least 1 bytes", + } + } + + if wrapper := m.GetPrefixLen(); wrapper != nil { + + if wrapper.GetValue() > 128 { + return CidrRangeValidationError{ + field: "PrefixLen", + reason: "value must be less than or equal to 128", + } + } + + } + + return nil +} + +// CidrRangeValidationError is the validation error returned by +// CidrRange.Validate if the designated constraints aren't met. +type CidrRangeValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CidrRangeValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CidrRangeValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CidrRangeValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CidrRangeValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CidrRangeValidationError) ErrorName() string { return "CidrRangeValidationError" } + +// Error satisfies the builtin error interface +func (e CidrRangeValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCidrRange.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CidrRangeValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CidrRangeValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/backoff.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/backoff.pb.go new file mode 100644 index 000000000..380f84d93 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/backoff.pb.go @@ -0,0 +1,101 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/core/v3/backoff.proto + +package envoy_config_core_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + duration "github.com/golang/protobuf/ptypes/duration" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type BackoffStrategy struct { + BaseInterval *duration.Duration `protobuf:"bytes,1,opt,name=base_interval,json=baseInterval,proto3" json:"base_interval,omitempty"` + MaxInterval *duration.Duration `protobuf:"bytes,2,opt,name=max_interval,json=maxInterval,proto3" json:"max_interval,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BackoffStrategy) Reset() { *m = BackoffStrategy{} } +func (m *BackoffStrategy) String() string { return proto.CompactTextString(m) } +func (*BackoffStrategy) ProtoMessage() {} +func (*BackoffStrategy) Descriptor() ([]byte, []int) { + return fileDescriptor_5030f1467e197113, []int{0} +} + +func (m *BackoffStrategy) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BackoffStrategy.Unmarshal(m, b) +} +func (m *BackoffStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BackoffStrategy.Marshal(b, m, deterministic) +} +func (m *BackoffStrategy) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackoffStrategy.Merge(m, src) +} +func (m *BackoffStrategy) XXX_Size() int { + return xxx_messageInfo_BackoffStrategy.Size(m) +} +func (m *BackoffStrategy) XXX_DiscardUnknown() { + xxx_messageInfo_BackoffStrategy.DiscardUnknown(m) +} + +var xxx_messageInfo_BackoffStrategy proto.InternalMessageInfo + +func (m *BackoffStrategy) GetBaseInterval() *duration.Duration { + if m != nil { + return m.BaseInterval + } + return nil +} + +func (m *BackoffStrategy) GetMaxInterval() *duration.Duration { + if m != nil { + return m.MaxInterval + } + return nil +} + +func init() { + proto.RegisterType((*BackoffStrategy)(nil), "envoy.config.core.v3.BackoffStrategy") +} + +func init() { proto.RegisterFile("envoy/config/core/v3/backoff.proto", fileDescriptor_5030f1467e197113) } + +var fileDescriptor_5030f1467e197113 = []byte{ + // 317 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x90, 0xb1, 0x4a, 0x03, 0x31, + 0x18, 0xc7, 0xcd, 0xa1, 0xa5, 0xa4, 0x55, 0x4b, 0x11, 0xd4, 0x82, 0xc5, 0xd6, 0xa5, 0x38, 0x24, + 0xd0, 0x6e, 0xa2, 0x4b, 0x10, 0xc1, 0x45, 0x4a, 0x7d, 0x00, 0xf9, 0xae, 0xcd, 0x1d, 0xc1, 0x36, + 0xdf, 0x91, 0xcb, 0x85, 0x76, 0x73, 0x70, 0xf0, 0x19, 0x7c, 0x84, 0x3e, 0x82, 0x93, 0x8b, 0xe0, + 0x2a, 0xbe, 0x4d, 0x27, 0xe9, 0xe5, 0x0e, 0x41, 0x05, 0xb7, 0xe3, 0xbe, 0xdf, 0xff, 0xcf, 0x2f, + 0x7f, 0xda, 0x95, 0xda, 0xe1, 0x82, 0x8f, 0x51, 0x47, 0x2a, 0xe6, 0x63, 0x34, 0x92, 0xbb, 0x01, + 0x0f, 0x61, 0x7c, 0x8f, 0x51, 0xc4, 0x12, 0x83, 0x16, 0x9b, 0x7b, 0x39, 0xc3, 0x3c, 0xc3, 0xd6, + 0x0c, 0x73, 0x83, 0x56, 0x3b, 0x46, 0x8c, 0xa7, 0x92, 0xe7, 0x4c, 0x98, 0x45, 0x7c, 0x92, 0x19, + 0xb0, 0x0a, 0xb5, 0x4f, 0xb5, 0x8e, 0xb2, 0x49, 0x02, 0x1c, 0xb4, 0x46, 0x9b, 0xff, 0x4e, 0x79, + 0x6a, 0xc1, 0x66, 0x69, 0x71, 0xee, 0xfc, 0x3a, 0x3b, 0x69, 0x52, 0x85, 0x5a, 0xe9, 0xb8, 0x40, + 0xf6, 0x1d, 0x4c, 0xd5, 0x04, 0xac, 0xe4, 0xe5, 0x87, 0x3f, 0x74, 0x3f, 0x09, 0xdd, 0x15, 0x5e, + 0xf1, 0xd6, 0x1a, 0xb0, 0x32, 0x5e, 0x34, 0x6f, 0xe8, 0x76, 0x08, 0xa9, 0xbc, 0x53, 0xda, 0x4a, + 0xe3, 0x60, 0x7a, 0x40, 0x8e, 0x49, 0xaf, 0xd6, 0x3f, 0x64, 0x5e, 0x93, 0x95, 0x9a, 0xec, 0xb2, + 0xd0, 0x14, 0x3b, 0x2b, 0x51, 0x5b, 0x92, 0x6a, 0x95, 0xf4, 0x37, 0x1b, 0xaf, 0x8f, 0x17, 0xa3, + 0xfa, 0x3a, 0x7f, 0x5d, 0xc4, 0x9b, 0x57, 0xb4, 0x3e, 0x83, 0xf9, 0x77, 0x5d, 0xf0, 0x5f, 0x5d, + 0x75, 0x25, 0xb6, 0x96, 0x24, 0x38, 0xdd, 0x18, 0xd5, 0x66, 0x30, 0x2f, 0x7b, 0xce, 0x7a, 0xcf, + 0x6f, 0x4f, 0xed, 0x13, 0xda, 0xf1, 0x1b, 0x42, 0xa2, 0x98, 0xeb, 0xfb, 0x0d, 0x7f, 0xbc, 0x40, + 0x9c, 0xbf, 0x3c, 0xbc, 0x7f, 0x54, 0x82, 0x46, 0x40, 0xbb, 0x0a, 0x59, 0xce, 0x27, 0x06, 0xe7, + 0x0b, 0xf6, 0xd7, 0xfc, 0xa2, 0x5e, 0xc4, 0x87, 0x6b, 0x91, 0x21, 0x09, 0x2b, 0xb9, 0xd1, 0xe0, + 0x2b, 0x00, 0x00, 0xff, 0xff, 0x8f, 0x04, 0x4e, 0x10, 0xd1, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/backoff.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/backoff.pb.validate.go new file mode 100644 index 000000000..15ae5e81e --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/backoff.pb.validate.go @@ -0,0 +1,151 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/core/v3/backoff.proto + +package envoy_config_core_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _backoff_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on BackoffStrategy with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *BackoffStrategy) Validate() error { + if m == nil { + return nil + } + + if m.GetBaseInterval() == nil { + return BackoffStrategyValidationError{ + field: "BaseInterval", + reason: "value is required", + } + } + + if d := m.GetBaseInterval(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return BackoffStrategyValidationError{ + field: "BaseInterval", + reason: "value is not a valid duration", + cause: err, + } + } + + gte := time.Duration(0*time.Second + 1000000*time.Nanosecond) + + if dur < gte { + return BackoffStrategyValidationError{ + field: "BaseInterval", + reason: "value must be greater than or equal to 1ms", + } + } + + } + + if d := m.GetMaxInterval(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return BackoffStrategyValidationError{ + field: "MaxInterval", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur <= gt { + return BackoffStrategyValidationError{ + field: "MaxInterval", + reason: "value must be greater than 0s", + } + } + + } + + return nil +} + +// BackoffStrategyValidationError is the validation error returned by +// BackoffStrategy.Validate if the designated constraints aren't met. +type BackoffStrategyValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e BackoffStrategyValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e BackoffStrategyValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e BackoffStrategyValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e BackoffStrategyValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e BackoffStrategyValidationError) ErrorName() string { return "BackoffStrategyValidationError" } + +// Error satisfies the builtin error interface +func (e BackoffStrategyValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sBackoffStrategy.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = BackoffStrategyValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = BackoffStrategyValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/base.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/base.pb.go new file mode 100644 index 000000000..db19a9a86 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/base.pb.go @@ -0,0 +1,1315 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/core/v3/base.proto + +package envoy_config_core_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/type/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + any "github.com/golang/protobuf/ptypes/any" + _ "github.com/golang/protobuf/ptypes/duration" + _struct "github.com/golang/protobuf/ptypes/struct" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type RoutingPriority int32 + +const ( + RoutingPriority_DEFAULT RoutingPriority = 0 + RoutingPriority_HIGH RoutingPriority = 1 +) + +var RoutingPriority_name = map[int32]string{ + 0: "DEFAULT", + 1: "HIGH", +} + +var RoutingPriority_value = map[string]int32{ + "DEFAULT": 0, + "HIGH": 1, +} + +func (x RoutingPriority) String() string { + return proto.EnumName(RoutingPriority_name, int32(x)) +} + +func (RoutingPriority) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{0} +} + +type RequestMethod int32 + +const ( + RequestMethod_METHOD_UNSPECIFIED RequestMethod = 0 + RequestMethod_GET RequestMethod = 1 + RequestMethod_HEAD RequestMethod = 2 + RequestMethod_POST RequestMethod = 3 + RequestMethod_PUT RequestMethod = 4 + RequestMethod_DELETE RequestMethod = 5 + RequestMethod_CONNECT RequestMethod = 6 + RequestMethod_OPTIONS RequestMethod = 7 + RequestMethod_TRACE RequestMethod = 8 + RequestMethod_PATCH RequestMethod = 9 +) + +var RequestMethod_name = map[int32]string{ + 0: "METHOD_UNSPECIFIED", + 1: "GET", + 2: "HEAD", + 3: "POST", + 4: "PUT", + 5: "DELETE", + 6: "CONNECT", + 7: "OPTIONS", + 8: "TRACE", + 9: "PATCH", +} + +var RequestMethod_value = map[string]int32{ + "METHOD_UNSPECIFIED": 0, + "GET": 1, + "HEAD": 2, + "POST": 3, + "PUT": 4, + "DELETE": 5, + "CONNECT": 6, + "OPTIONS": 7, + "TRACE": 8, + "PATCH": 9, +} + +func (x RequestMethod) String() string { + return proto.EnumName(RequestMethod_name, int32(x)) +} + +func (RequestMethod) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{1} +} + +type TrafficDirection int32 + +const ( + TrafficDirection_UNSPECIFIED TrafficDirection = 0 + TrafficDirection_INBOUND TrafficDirection = 1 + TrafficDirection_OUTBOUND TrafficDirection = 2 +) + +var TrafficDirection_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "INBOUND", + 2: "OUTBOUND", +} + +var TrafficDirection_value = map[string]int32{ + "UNSPECIFIED": 0, + "INBOUND": 1, + "OUTBOUND": 2, +} + +func (x TrafficDirection) String() string { + return proto.EnumName(TrafficDirection_name, int32(x)) +} + +func (TrafficDirection) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{2} +} + +type Locality struct { + Region string `protobuf:"bytes,1,opt,name=region,proto3" json:"region,omitempty"` + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` + SubZone string `protobuf:"bytes,3,opt,name=sub_zone,json=subZone,proto3" json:"sub_zone,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Locality) Reset() { *m = Locality{} } +func (m *Locality) String() string { return proto.CompactTextString(m) } +func (*Locality) ProtoMessage() {} +func (*Locality) Descriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{0} +} + +func (m *Locality) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Locality.Unmarshal(m, b) +} +func (m *Locality) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Locality.Marshal(b, m, deterministic) +} +func (m *Locality) XXX_Merge(src proto.Message) { + xxx_messageInfo_Locality.Merge(m, src) +} +func (m *Locality) XXX_Size() int { + return xxx_messageInfo_Locality.Size(m) +} +func (m *Locality) XXX_DiscardUnknown() { + xxx_messageInfo_Locality.DiscardUnknown(m) +} + +var xxx_messageInfo_Locality proto.InternalMessageInfo + +func (m *Locality) GetRegion() string { + if m != nil { + return m.Region + } + return "" +} + +func (m *Locality) GetZone() string { + if m != nil { + return m.Zone + } + return "" +} + +func (m *Locality) GetSubZone() string { + if m != nil { + return m.SubZone + } + return "" +} + +type BuildVersion struct { + Version *v3.SemanticVersion `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + Metadata *_struct.Struct `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BuildVersion) Reset() { *m = BuildVersion{} } +func (m *BuildVersion) String() string { return proto.CompactTextString(m) } +func (*BuildVersion) ProtoMessage() {} +func (*BuildVersion) Descriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{1} +} + +func (m *BuildVersion) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BuildVersion.Unmarshal(m, b) +} +func (m *BuildVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BuildVersion.Marshal(b, m, deterministic) +} +func (m *BuildVersion) XXX_Merge(src proto.Message) { + xxx_messageInfo_BuildVersion.Merge(m, src) +} +func (m *BuildVersion) XXX_Size() int { + return xxx_messageInfo_BuildVersion.Size(m) +} +func (m *BuildVersion) XXX_DiscardUnknown() { + xxx_messageInfo_BuildVersion.DiscardUnknown(m) +} + +var xxx_messageInfo_BuildVersion proto.InternalMessageInfo + +func (m *BuildVersion) GetVersion() *v3.SemanticVersion { + if m != nil { + return m.Version + } + return nil +} + +func (m *BuildVersion) GetMetadata() *_struct.Struct { + if m != nil { + return m.Metadata + } + return nil +} + +type Extension struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Category string `protobuf:"bytes,2,opt,name=category,proto3" json:"category,omitempty"` + TypeDescriptor string `protobuf:"bytes,3,opt,name=type_descriptor,json=typeDescriptor,proto3" json:"type_descriptor,omitempty"` + Version *BuildVersion `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` + Disabled bool `protobuf:"varint,5,opt,name=disabled,proto3" json:"disabled,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Extension) Reset() { *m = Extension{} } +func (m *Extension) String() string { return proto.CompactTextString(m) } +func (*Extension) ProtoMessage() {} +func (*Extension) Descriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{2} +} + +func (m *Extension) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Extension.Unmarshal(m, b) +} +func (m *Extension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Extension.Marshal(b, m, deterministic) +} +func (m *Extension) XXX_Merge(src proto.Message) { + xxx_messageInfo_Extension.Merge(m, src) +} +func (m *Extension) XXX_Size() int { + return xxx_messageInfo_Extension.Size(m) +} +func (m *Extension) XXX_DiscardUnknown() { + xxx_messageInfo_Extension.DiscardUnknown(m) +} + +var xxx_messageInfo_Extension proto.InternalMessageInfo + +func (m *Extension) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Extension) GetCategory() string { + if m != nil { + return m.Category + } + return "" +} + +func (m *Extension) GetTypeDescriptor() string { + if m != nil { + return m.TypeDescriptor + } + return "" +} + +func (m *Extension) GetVersion() *BuildVersion { + if m != nil { + return m.Version + } + return nil +} + +func (m *Extension) GetDisabled() bool { + if m != nil { + return m.Disabled + } + return false +} + +type Node struct { + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Cluster string `protobuf:"bytes,2,opt,name=cluster,proto3" json:"cluster,omitempty"` + Metadata *_struct.Struct `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"` + Locality *Locality `protobuf:"bytes,4,opt,name=locality,proto3" json:"locality,omitempty"` + HiddenEnvoyDeprecatedBuildVersion string `protobuf:"bytes,5,opt,name=hidden_envoy_deprecated_build_version,json=hiddenEnvoyDeprecatedBuildVersion,proto3" json:"hidden_envoy_deprecated_build_version,omitempty"` // Deprecated: Do not use. + UserAgentName string `protobuf:"bytes,6,opt,name=user_agent_name,json=userAgentName,proto3" json:"user_agent_name,omitempty"` + // Types that are valid to be assigned to UserAgentVersionType: + // *Node_UserAgentVersion + // *Node_UserAgentBuildVersion + UserAgentVersionType isNode_UserAgentVersionType `protobuf_oneof:"user_agent_version_type"` + Extensions []*Extension `protobuf:"bytes,9,rep,name=extensions,proto3" json:"extensions,omitempty"` + ClientFeatures []string `protobuf:"bytes,10,rep,name=client_features,json=clientFeatures,proto3" json:"client_features,omitempty"` + ListeningAddresses []*Address `protobuf:"bytes,11,rep,name=listening_addresses,json=listeningAddresses,proto3" json:"listening_addresses,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Node) Reset() { *m = Node{} } +func (m *Node) String() string { return proto.CompactTextString(m) } +func (*Node) ProtoMessage() {} +func (*Node) Descriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{3} +} + +func (m *Node) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Node.Unmarshal(m, b) +} +func (m *Node) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Node.Marshal(b, m, deterministic) +} +func (m *Node) XXX_Merge(src proto.Message) { + xxx_messageInfo_Node.Merge(m, src) +} +func (m *Node) XXX_Size() int { + return xxx_messageInfo_Node.Size(m) +} +func (m *Node) XXX_DiscardUnknown() { + xxx_messageInfo_Node.DiscardUnknown(m) +} + +var xxx_messageInfo_Node proto.InternalMessageInfo + +func (m *Node) GetId() string { + if m != nil { + return m.Id + } + return "" +} + +func (m *Node) GetCluster() string { + if m != nil { + return m.Cluster + } + return "" +} + +func (m *Node) GetMetadata() *_struct.Struct { + if m != nil { + return m.Metadata + } + return nil +} + +func (m *Node) GetLocality() *Locality { + if m != nil { + return m.Locality + } + return nil +} + +// Deprecated: Do not use. +func (m *Node) GetHiddenEnvoyDeprecatedBuildVersion() string { + if m != nil { + return m.HiddenEnvoyDeprecatedBuildVersion + } + return "" +} + +func (m *Node) GetUserAgentName() string { + if m != nil { + return m.UserAgentName + } + return "" +} + +type isNode_UserAgentVersionType interface { + isNode_UserAgentVersionType() +} + +type Node_UserAgentVersion struct { + UserAgentVersion string `protobuf:"bytes,7,opt,name=user_agent_version,json=userAgentVersion,proto3,oneof"` +} + +type Node_UserAgentBuildVersion struct { + UserAgentBuildVersion *BuildVersion `protobuf:"bytes,8,opt,name=user_agent_build_version,json=userAgentBuildVersion,proto3,oneof"` +} + +func (*Node_UserAgentVersion) isNode_UserAgentVersionType() {} + +func (*Node_UserAgentBuildVersion) isNode_UserAgentVersionType() {} + +func (m *Node) GetUserAgentVersionType() isNode_UserAgentVersionType { + if m != nil { + return m.UserAgentVersionType + } + return nil +} + +func (m *Node) GetUserAgentVersion() string { + if x, ok := m.GetUserAgentVersionType().(*Node_UserAgentVersion); ok { + return x.UserAgentVersion + } + return "" +} + +func (m *Node) GetUserAgentBuildVersion() *BuildVersion { + if x, ok := m.GetUserAgentVersionType().(*Node_UserAgentBuildVersion); ok { + return x.UserAgentBuildVersion + } + return nil +} + +func (m *Node) GetExtensions() []*Extension { + if m != nil { + return m.Extensions + } + return nil +} + +func (m *Node) GetClientFeatures() []string { + if m != nil { + return m.ClientFeatures + } + return nil +} + +func (m *Node) GetListeningAddresses() []*Address { + if m != nil { + return m.ListeningAddresses + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Node) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*Node_UserAgentVersion)(nil), + (*Node_UserAgentBuildVersion)(nil), + } +} + +type Metadata struct { + FilterMetadata map[string]*_struct.Struct `protobuf:"bytes,1,rep,name=filter_metadata,json=filterMetadata,proto3" json:"filter_metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Metadata) Reset() { *m = Metadata{} } +func (m *Metadata) String() string { return proto.CompactTextString(m) } +func (*Metadata) ProtoMessage() {} +func (*Metadata) Descriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{4} +} + +func (m *Metadata) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Metadata.Unmarshal(m, b) +} +func (m *Metadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Metadata.Marshal(b, m, deterministic) +} +func (m *Metadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_Metadata.Merge(m, src) +} +func (m *Metadata) XXX_Size() int { + return xxx_messageInfo_Metadata.Size(m) +} +func (m *Metadata) XXX_DiscardUnknown() { + xxx_messageInfo_Metadata.DiscardUnknown(m) +} + +var xxx_messageInfo_Metadata proto.InternalMessageInfo + +func (m *Metadata) GetFilterMetadata() map[string]*_struct.Struct { + if m != nil { + return m.FilterMetadata + } + return nil +} + +type RuntimeUInt32 struct { + DefaultValue uint32 `protobuf:"varint,2,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"` + RuntimeKey string `protobuf:"bytes,3,opt,name=runtime_key,json=runtimeKey,proto3" json:"runtime_key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RuntimeUInt32) Reset() { *m = RuntimeUInt32{} } +func (m *RuntimeUInt32) String() string { return proto.CompactTextString(m) } +func (*RuntimeUInt32) ProtoMessage() {} +func (*RuntimeUInt32) Descriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{5} +} + +func (m *RuntimeUInt32) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RuntimeUInt32.Unmarshal(m, b) +} +func (m *RuntimeUInt32) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RuntimeUInt32.Marshal(b, m, deterministic) +} +func (m *RuntimeUInt32) XXX_Merge(src proto.Message) { + xxx_messageInfo_RuntimeUInt32.Merge(m, src) +} +func (m *RuntimeUInt32) XXX_Size() int { + return xxx_messageInfo_RuntimeUInt32.Size(m) +} +func (m *RuntimeUInt32) XXX_DiscardUnknown() { + xxx_messageInfo_RuntimeUInt32.DiscardUnknown(m) +} + +var xxx_messageInfo_RuntimeUInt32 proto.InternalMessageInfo + +func (m *RuntimeUInt32) GetDefaultValue() uint32 { + if m != nil { + return m.DefaultValue + } + return 0 +} + +func (m *RuntimeUInt32) GetRuntimeKey() string { + if m != nil { + return m.RuntimeKey + } + return "" +} + +type RuntimeFeatureFlag struct { + DefaultValue *wrappers.BoolValue `protobuf:"bytes,1,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"` + RuntimeKey string `protobuf:"bytes,2,opt,name=runtime_key,json=runtimeKey,proto3" json:"runtime_key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RuntimeFeatureFlag) Reset() { *m = RuntimeFeatureFlag{} } +func (m *RuntimeFeatureFlag) String() string { return proto.CompactTextString(m) } +func (*RuntimeFeatureFlag) ProtoMessage() {} +func (*RuntimeFeatureFlag) Descriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{6} +} + +func (m *RuntimeFeatureFlag) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RuntimeFeatureFlag.Unmarshal(m, b) +} +func (m *RuntimeFeatureFlag) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RuntimeFeatureFlag.Marshal(b, m, deterministic) +} +func (m *RuntimeFeatureFlag) XXX_Merge(src proto.Message) { + xxx_messageInfo_RuntimeFeatureFlag.Merge(m, src) +} +func (m *RuntimeFeatureFlag) XXX_Size() int { + return xxx_messageInfo_RuntimeFeatureFlag.Size(m) +} +func (m *RuntimeFeatureFlag) XXX_DiscardUnknown() { + xxx_messageInfo_RuntimeFeatureFlag.DiscardUnknown(m) +} + +var xxx_messageInfo_RuntimeFeatureFlag proto.InternalMessageInfo + +func (m *RuntimeFeatureFlag) GetDefaultValue() *wrappers.BoolValue { + if m != nil { + return m.DefaultValue + } + return nil +} + +func (m *RuntimeFeatureFlag) GetRuntimeKey() string { + if m != nil { + return m.RuntimeKey + } + return "" +} + +type HeaderValue struct { + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HeaderValue) Reset() { *m = HeaderValue{} } +func (m *HeaderValue) String() string { return proto.CompactTextString(m) } +func (*HeaderValue) ProtoMessage() {} +func (*HeaderValue) Descriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{7} +} + +func (m *HeaderValue) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HeaderValue.Unmarshal(m, b) +} +func (m *HeaderValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HeaderValue.Marshal(b, m, deterministic) +} +func (m *HeaderValue) XXX_Merge(src proto.Message) { + xxx_messageInfo_HeaderValue.Merge(m, src) +} +func (m *HeaderValue) XXX_Size() int { + return xxx_messageInfo_HeaderValue.Size(m) +} +func (m *HeaderValue) XXX_DiscardUnknown() { + xxx_messageInfo_HeaderValue.DiscardUnknown(m) +} + +var xxx_messageInfo_HeaderValue proto.InternalMessageInfo + +func (m *HeaderValue) GetKey() string { + if m != nil { + return m.Key + } + return "" +} + +func (m *HeaderValue) GetValue() string { + if m != nil { + return m.Value + } + return "" +} + +type HeaderValueOption struct { + Header *HeaderValue `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + Append *wrappers.BoolValue `protobuf:"bytes,2,opt,name=append,proto3" json:"append,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HeaderValueOption) Reset() { *m = HeaderValueOption{} } +func (m *HeaderValueOption) String() string { return proto.CompactTextString(m) } +func (*HeaderValueOption) ProtoMessage() {} +func (*HeaderValueOption) Descriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{8} +} + +func (m *HeaderValueOption) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HeaderValueOption.Unmarshal(m, b) +} +func (m *HeaderValueOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HeaderValueOption.Marshal(b, m, deterministic) +} +func (m *HeaderValueOption) XXX_Merge(src proto.Message) { + xxx_messageInfo_HeaderValueOption.Merge(m, src) +} +func (m *HeaderValueOption) XXX_Size() int { + return xxx_messageInfo_HeaderValueOption.Size(m) +} +func (m *HeaderValueOption) XXX_DiscardUnknown() { + xxx_messageInfo_HeaderValueOption.DiscardUnknown(m) +} + +var xxx_messageInfo_HeaderValueOption proto.InternalMessageInfo + +func (m *HeaderValueOption) GetHeader() *HeaderValue { + if m != nil { + return m.Header + } + return nil +} + +func (m *HeaderValueOption) GetAppend() *wrappers.BoolValue { + if m != nil { + return m.Append + } + return nil +} + +type HeaderMap struct { + Headers []*HeaderValue `protobuf:"bytes,1,rep,name=headers,proto3" json:"headers,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HeaderMap) Reset() { *m = HeaderMap{} } +func (m *HeaderMap) String() string { return proto.CompactTextString(m) } +func (*HeaderMap) ProtoMessage() {} +func (*HeaderMap) Descriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{9} +} + +func (m *HeaderMap) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HeaderMap.Unmarshal(m, b) +} +func (m *HeaderMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HeaderMap.Marshal(b, m, deterministic) +} +func (m *HeaderMap) XXX_Merge(src proto.Message) { + xxx_messageInfo_HeaderMap.Merge(m, src) +} +func (m *HeaderMap) XXX_Size() int { + return xxx_messageInfo_HeaderMap.Size(m) +} +func (m *HeaderMap) XXX_DiscardUnknown() { + xxx_messageInfo_HeaderMap.DiscardUnknown(m) +} + +var xxx_messageInfo_HeaderMap proto.InternalMessageInfo + +func (m *HeaderMap) GetHeaders() []*HeaderValue { + if m != nil { + return m.Headers + } + return nil +} + +type DataSource struct { + // Types that are valid to be assigned to Specifier: + // *DataSource_Filename + // *DataSource_InlineBytes + // *DataSource_InlineString + Specifier isDataSource_Specifier `protobuf_oneof:"specifier"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DataSource) Reset() { *m = DataSource{} } +func (m *DataSource) String() string { return proto.CompactTextString(m) } +func (*DataSource) ProtoMessage() {} +func (*DataSource) Descriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{10} +} + +func (m *DataSource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DataSource.Unmarshal(m, b) +} +func (m *DataSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DataSource.Marshal(b, m, deterministic) +} +func (m *DataSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_DataSource.Merge(m, src) +} +func (m *DataSource) XXX_Size() int { + return xxx_messageInfo_DataSource.Size(m) +} +func (m *DataSource) XXX_DiscardUnknown() { + xxx_messageInfo_DataSource.DiscardUnknown(m) +} + +var xxx_messageInfo_DataSource proto.InternalMessageInfo + +type isDataSource_Specifier interface { + isDataSource_Specifier() +} + +type DataSource_Filename struct { + Filename string `protobuf:"bytes,1,opt,name=filename,proto3,oneof"` +} + +type DataSource_InlineBytes struct { + InlineBytes []byte `protobuf:"bytes,2,opt,name=inline_bytes,json=inlineBytes,proto3,oneof"` +} + +type DataSource_InlineString struct { + InlineString string `protobuf:"bytes,3,opt,name=inline_string,json=inlineString,proto3,oneof"` +} + +func (*DataSource_Filename) isDataSource_Specifier() {} + +func (*DataSource_InlineBytes) isDataSource_Specifier() {} + +func (*DataSource_InlineString) isDataSource_Specifier() {} + +func (m *DataSource) GetSpecifier() isDataSource_Specifier { + if m != nil { + return m.Specifier + } + return nil +} + +func (m *DataSource) GetFilename() string { + if x, ok := m.GetSpecifier().(*DataSource_Filename); ok { + return x.Filename + } + return "" +} + +func (m *DataSource) GetInlineBytes() []byte { + if x, ok := m.GetSpecifier().(*DataSource_InlineBytes); ok { + return x.InlineBytes + } + return nil +} + +func (m *DataSource) GetInlineString() string { + if x, ok := m.GetSpecifier().(*DataSource_InlineString); ok { + return x.InlineString + } + return "" +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*DataSource) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*DataSource_Filename)(nil), + (*DataSource_InlineBytes)(nil), + (*DataSource_InlineString)(nil), + } +} + +type RetryPolicy struct { + RetryBackOff *BackoffStrategy `protobuf:"bytes,1,opt,name=retry_back_off,json=retryBackOff,proto3" json:"retry_back_off,omitempty"` + NumRetries *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=num_retries,json=numRetries,proto3" json:"num_retries,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RetryPolicy) Reset() { *m = RetryPolicy{} } +func (m *RetryPolicy) String() string { return proto.CompactTextString(m) } +func (*RetryPolicy) ProtoMessage() {} +func (*RetryPolicy) Descriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{11} +} + +func (m *RetryPolicy) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RetryPolicy.Unmarshal(m, b) +} +func (m *RetryPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RetryPolicy.Marshal(b, m, deterministic) +} +func (m *RetryPolicy) XXX_Merge(src proto.Message) { + xxx_messageInfo_RetryPolicy.Merge(m, src) +} +func (m *RetryPolicy) XXX_Size() int { + return xxx_messageInfo_RetryPolicy.Size(m) +} +func (m *RetryPolicy) XXX_DiscardUnknown() { + xxx_messageInfo_RetryPolicy.DiscardUnknown(m) +} + +var xxx_messageInfo_RetryPolicy proto.InternalMessageInfo + +func (m *RetryPolicy) GetRetryBackOff() *BackoffStrategy { + if m != nil { + return m.RetryBackOff + } + return nil +} + +func (m *RetryPolicy) GetNumRetries() *wrappers.UInt32Value { + if m != nil { + return m.NumRetries + } + return nil +} + +type RemoteDataSource struct { + HttpUri *HttpUri `protobuf:"bytes,1,opt,name=http_uri,json=httpUri,proto3" json:"http_uri,omitempty"` + Sha256 string `protobuf:"bytes,2,opt,name=sha256,proto3" json:"sha256,omitempty"` + RetryPolicy *RetryPolicy `protobuf:"bytes,3,opt,name=retry_policy,json=retryPolicy,proto3" json:"retry_policy,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RemoteDataSource) Reset() { *m = RemoteDataSource{} } +func (m *RemoteDataSource) String() string { return proto.CompactTextString(m) } +func (*RemoteDataSource) ProtoMessage() {} +func (*RemoteDataSource) Descriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{12} +} + +func (m *RemoteDataSource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RemoteDataSource.Unmarshal(m, b) +} +func (m *RemoteDataSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RemoteDataSource.Marshal(b, m, deterministic) +} +func (m *RemoteDataSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_RemoteDataSource.Merge(m, src) +} +func (m *RemoteDataSource) XXX_Size() int { + return xxx_messageInfo_RemoteDataSource.Size(m) +} +func (m *RemoteDataSource) XXX_DiscardUnknown() { + xxx_messageInfo_RemoteDataSource.DiscardUnknown(m) +} + +var xxx_messageInfo_RemoteDataSource proto.InternalMessageInfo + +func (m *RemoteDataSource) GetHttpUri() *HttpUri { + if m != nil { + return m.HttpUri + } + return nil +} + +func (m *RemoteDataSource) GetSha256() string { + if m != nil { + return m.Sha256 + } + return "" +} + +func (m *RemoteDataSource) GetRetryPolicy() *RetryPolicy { + if m != nil { + return m.RetryPolicy + } + return nil +} + +type AsyncDataSource struct { + // Types that are valid to be assigned to Specifier: + // *AsyncDataSource_Local + // *AsyncDataSource_Remote + Specifier isAsyncDataSource_Specifier `protobuf_oneof:"specifier"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AsyncDataSource) Reset() { *m = AsyncDataSource{} } +func (m *AsyncDataSource) String() string { return proto.CompactTextString(m) } +func (*AsyncDataSource) ProtoMessage() {} +func (*AsyncDataSource) Descriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{13} +} + +func (m *AsyncDataSource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AsyncDataSource.Unmarshal(m, b) +} +func (m *AsyncDataSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AsyncDataSource.Marshal(b, m, deterministic) +} +func (m *AsyncDataSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_AsyncDataSource.Merge(m, src) +} +func (m *AsyncDataSource) XXX_Size() int { + return xxx_messageInfo_AsyncDataSource.Size(m) +} +func (m *AsyncDataSource) XXX_DiscardUnknown() { + xxx_messageInfo_AsyncDataSource.DiscardUnknown(m) +} + +var xxx_messageInfo_AsyncDataSource proto.InternalMessageInfo + +type isAsyncDataSource_Specifier interface { + isAsyncDataSource_Specifier() +} + +type AsyncDataSource_Local struct { + Local *DataSource `protobuf:"bytes,1,opt,name=local,proto3,oneof"` +} + +type AsyncDataSource_Remote struct { + Remote *RemoteDataSource `protobuf:"bytes,2,opt,name=remote,proto3,oneof"` +} + +func (*AsyncDataSource_Local) isAsyncDataSource_Specifier() {} + +func (*AsyncDataSource_Remote) isAsyncDataSource_Specifier() {} + +func (m *AsyncDataSource) GetSpecifier() isAsyncDataSource_Specifier { + if m != nil { + return m.Specifier + } + return nil +} + +func (m *AsyncDataSource) GetLocal() *DataSource { + if x, ok := m.GetSpecifier().(*AsyncDataSource_Local); ok { + return x.Local + } + return nil +} + +func (m *AsyncDataSource) GetRemote() *RemoteDataSource { + if x, ok := m.GetSpecifier().(*AsyncDataSource_Remote); ok { + return x.Remote + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*AsyncDataSource) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*AsyncDataSource_Local)(nil), + (*AsyncDataSource_Remote)(nil), + } +} + +type TransportSocket struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Types that are valid to be assigned to ConfigType: + // *TransportSocket_HiddenEnvoyDeprecatedConfig + // *TransportSocket_TypedConfig + ConfigType isTransportSocket_ConfigType `protobuf_oneof:"config_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TransportSocket) Reset() { *m = TransportSocket{} } +func (m *TransportSocket) String() string { return proto.CompactTextString(m) } +func (*TransportSocket) ProtoMessage() {} +func (*TransportSocket) Descriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{14} +} + +func (m *TransportSocket) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TransportSocket.Unmarshal(m, b) +} +func (m *TransportSocket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TransportSocket.Marshal(b, m, deterministic) +} +func (m *TransportSocket) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransportSocket.Merge(m, src) +} +func (m *TransportSocket) XXX_Size() int { + return xxx_messageInfo_TransportSocket.Size(m) +} +func (m *TransportSocket) XXX_DiscardUnknown() { + xxx_messageInfo_TransportSocket.DiscardUnknown(m) +} + +var xxx_messageInfo_TransportSocket proto.InternalMessageInfo + +func (m *TransportSocket) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type isTransportSocket_ConfigType interface { + isTransportSocket_ConfigType() +} + +type TransportSocket_HiddenEnvoyDeprecatedConfig struct { + HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"` +} + +type TransportSocket_TypedConfig struct { + TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"` +} + +func (*TransportSocket_HiddenEnvoyDeprecatedConfig) isTransportSocket_ConfigType() {} + +func (*TransportSocket_TypedConfig) isTransportSocket_ConfigType() {} + +func (m *TransportSocket) GetConfigType() isTransportSocket_ConfigType { + if m != nil { + return m.ConfigType + } + return nil +} + +// Deprecated: Do not use. +func (m *TransportSocket) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct { + if x, ok := m.GetConfigType().(*TransportSocket_HiddenEnvoyDeprecatedConfig); ok { + return x.HiddenEnvoyDeprecatedConfig + } + return nil +} + +func (m *TransportSocket) GetTypedConfig() *any.Any { + if x, ok := m.GetConfigType().(*TransportSocket_TypedConfig); ok { + return x.TypedConfig + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*TransportSocket) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*TransportSocket_HiddenEnvoyDeprecatedConfig)(nil), + (*TransportSocket_TypedConfig)(nil), + } +} + +type RuntimeFractionalPercent struct { + DefaultValue *v3.FractionalPercent `protobuf:"bytes,1,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"` + RuntimeKey string `protobuf:"bytes,2,opt,name=runtime_key,json=runtimeKey,proto3" json:"runtime_key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RuntimeFractionalPercent) Reset() { *m = RuntimeFractionalPercent{} } +func (m *RuntimeFractionalPercent) String() string { return proto.CompactTextString(m) } +func (*RuntimeFractionalPercent) ProtoMessage() {} +func (*RuntimeFractionalPercent) Descriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{15} +} + +func (m *RuntimeFractionalPercent) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RuntimeFractionalPercent.Unmarshal(m, b) +} +func (m *RuntimeFractionalPercent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RuntimeFractionalPercent.Marshal(b, m, deterministic) +} +func (m *RuntimeFractionalPercent) XXX_Merge(src proto.Message) { + xxx_messageInfo_RuntimeFractionalPercent.Merge(m, src) +} +func (m *RuntimeFractionalPercent) XXX_Size() int { + return xxx_messageInfo_RuntimeFractionalPercent.Size(m) +} +func (m *RuntimeFractionalPercent) XXX_DiscardUnknown() { + xxx_messageInfo_RuntimeFractionalPercent.DiscardUnknown(m) +} + +var xxx_messageInfo_RuntimeFractionalPercent proto.InternalMessageInfo + +func (m *RuntimeFractionalPercent) GetDefaultValue() *v3.FractionalPercent { + if m != nil { + return m.DefaultValue + } + return nil +} + +func (m *RuntimeFractionalPercent) GetRuntimeKey() string { + if m != nil { + return m.RuntimeKey + } + return "" +} + +type ControlPlane struct { + Identifier string `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControlPlane) Reset() { *m = ControlPlane{} } +func (m *ControlPlane) String() string { return proto.CompactTextString(m) } +func (*ControlPlane) ProtoMessage() {} +func (*ControlPlane) Descriptor() ([]byte, []int) { + return fileDescriptor_a229416e1b9105e0, []int{16} +} + +func (m *ControlPlane) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControlPlane.Unmarshal(m, b) +} +func (m *ControlPlane) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControlPlane.Marshal(b, m, deterministic) +} +func (m *ControlPlane) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControlPlane.Merge(m, src) +} +func (m *ControlPlane) XXX_Size() int { + return xxx_messageInfo_ControlPlane.Size(m) +} +func (m *ControlPlane) XXX_DiscardUnknown() { + xxx_messageInfo_ControlPlane.DiscardUnknown(m) +} + +var xxx_messageInfo_ControlPlane proto.InternalMessageInfo + +func (m *ControlPlane) GetIdentifier() string { + if m != nil { + return m.Identifier + } + return "" +} + +func init() { + proto.RegisterEnum("envoy.config.core.v3.RoutingPriority", RoutingPriority_name, RoutingPriority_value) + proto.RegisterEnum("envoy.config.core.v3.RequestMethod", RequestMethod_name, RequestMethod_value) + proto.RegisterEnum("envoy.config.core.v3.TrafficDirection", TrafficDirection_name, TrafficDirection_value) + proto.RegisterType((*Locality)(nil), "envoy.config.core.v3.Locality") + proto.RegisterType((*BuildVersion)(nil), "envoy.config.core.v3.BuildVersion") + proto.RegisterType((*Extension)(nil), "envoy.config.core.v3.Extension") + proto.RegisterType((*Node)(nil), "envoy.config.core.v3.Node") + proto.RegisterType((*Metadata)(nil), "envoy.config.core.v3.Metadata") + proto.RegisterMapType((map[string]*_struct.Struct)(nil), "envoy.config.core.v3.Metadata.FilterMetadataEntry") + proto.RegisterType((*RuntimeUInt32)(nil), "envoy.config.core.v3.RuntimeUInt32") + proto.RegisterType((*RuntimeFeatureFlag)(nil), "envoy.config.core.v3.RuntimeFeatureFlag") + proto.RegisterType((*HeaderValue)(nil), "envoy.config.core.v3.HeaderValue") + proto.RegisterType((*HeaderValueOption)(nil), "envoy.config.core.v3.HeaderValueOption") + proto.RegisterType((*HeaderMap)(nil), "envoy.config.core.v3.HeaderMap") + proto.RegisterType((*DataSource)(nil), "envoy.config.core.v3.DataSource") + proto.RegisterType((*RetryPolicy)(nil), "envoy.config.core.v3.RetryPolicy") + proto.RegisterType((*RemoteDataSource)(nil), "envoy.config.core.v3.RemoteDataSource") + proto.RegisterType((*AsyncDataSource)(nil), "envoy.config.core.v3.AsyncDataSource") + proto.RegisterType((*TransportSocket)(nil), "envoy.config.core.v3.TransportSocket") + proto.RegisterType((*RuntimeFractionalPercent)(nil), "envoy.config.core.v3.RuntimeFractionalPercent") + proto.RegisterType((*ControlPlane)(nil), "envoy.config.core.v3.ControlPlane") +} + +func init() { proto.RegisterFile("envoy/config/core/v3/base.proto", fileDescriptor_a229416e1b9105e0) } + +var fileDescriptor_a229416e1b9105e0 = []byte{ + // 1767 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x57, 0x4b, 0x6f, 0xe3, 0xc8, + 0x11, 0x16, 0xe5, 0x87, 0xa4, 0x92, 0x6c, 0x73, 0x7b, 0x37, 0x33, 0x1a, 0xcf, 0xf8, 0x45, 0x8f, + 0x27, 0x8e, 0xb3, 0x91, 0x10, 0x19, 0x09, 0x66, 0x95, 0xa7, 0x68, 0xc9, 0x2b, 0x63, 0x67, 0x24, + 0x81, 0x92, 0xf7, 0xb0, 0x41, 0x40, 0xb4, 0xc8, 0x96, 0x4c, 0x0c, 0x4d, 0x2a, 0xcd, 0xa6, 0xb3, + 0xda, 0x4b, 0xe6, 0xb4, 0x48, 0xf2, 0x13, 0x72, 0x0c, 0xf2, 0x1b, 0x82, 0x20, 0x97, 0xcd, 0x25, + 0xc0, 0xe4, 0x98, 0xbf, 0x90, 0x43, 0x90, 0x9f, 0x10, 0xcc, 0x69, 0xd1, 0xec, 0xa6, 0x44, 0xbd, + 0x3c, 0x73, 0x63, 0x57, 0x7d, 0xd5, 0xf5, 0xd5, 0xa3, 0xbb, 0x8b, 0x70, 0x40, 0xbc, 0x3b, 0x7f, + 0x5c, 0xb6, 0x7c, 0x6f, 0xe0, 0x0c, 0xcb, 0x96, 0x4f, 0x49, 0xf9, 0xee, 0xbc, 0xdc, 0xc7, 0x01, + 0x29, 0x8d, 0xa8, 0xcf, 0x7c, 0xf4, 0x51, 0x04, 0x28, 0x09, 0x40, 0x89, 0x03, 0x4a, 0x77, 0xe7, + 0xbb, 0xda, 0x52, 0x33, 0x6c, 0xdb, 0x94, 0x04, 0x81, 0xb0, 0x5c, 0x81, 0xe9, 0x63, 0xeb, 0x95, + 0x3f, 0x18, 0x48, 0xcc, 0xf1, 0x52, 0xcc, 0x0d, 0x63, 0x23, 0x33, 0xa4, 0x8e, 0x04, 0x3d, 0x16, + 0x20, 0x36, 0x1e, 0x45, 0xda, 0x11, 0xa1, 0x16, 0xf1, 0x98, 0x54, 0x3e, 0x9d, 0x55, 0x06, 0xe4, + 0x16, 0x7b, 0xcc, 0xb1, 0xcc, 0x3b, 0x42, 0x03, 0xc7, 0xf7, 0x24, 0xea, 0xd1, 0xd0, 0xf7, 0x87, + 0x2e, 0x29, 0x47, 0xab, 0x7e, 0x38, 0x28, 0x63, 0x6f, 0x2c, 0x55, 0xfb, 0xf3, 0x2a, 0x3b, 0xa4, + 0x98, 0x4d, 0x4d, 0x9f, 0xcc, 0xeb, 0x03, 0x46, 0x43, 0x8b, 0xad, 0xb2, 0xfe, 0x2d, 0xc5, 0xa3, + 0x11, 0xa1, 0x71, 0x12, 0xf6, 0x42, 0x7b, 0x84, 0xcb, 0xd8, 0xf3, 0x7c, 0x16, 0x6d, 0x1a, 0x94, + 0x03, 0x86, 0x59, 0x18, 0xab, 0x8f, 0x16, 0xd4, 0x92, 0xb7, 0xe3, 0x0d, 0x25, 0xe4, 0xe1, 0x1d, + 0x76, 0x1d, 0x1b, 0x33, 0x52, 0x8e, 0x3f, 0x84, 0x42, 0x63, 0x90, 0x7d, 0xe1, 0x5b, 0xd8, 0x75, + 0xd8, 0x18, 0x3d, 0x80, 0x4d, 0x4a, 0x86, 0x8e, 0xef, 0x15, 0x95, 0x43, 0xe5, 0x34, 0x67, 0xc8, + 0x15, 0x42, 0xb0, 0xfe, 0x95, 0xef, 0x91, 0x62, 0x3a, 0x92, 0x46, 0xdf, 0xe8, 0x11, 0x64, 0x83, + 0xb0, 0x6f, 0x46, 0xf2, 0xb5, 0x48, 0x9e, 0x09, 0xc2, 0xfe, 0x17, 0xbe, 0x47, 0xaa, 0x47, 0x7f, + 0xfa, 0xe7, 0xef, 0xf7, 0x9f, 0xc0, 0xae, 0xa8, 0x39, 0x1e, 0x39, 0xa5, 0xbb, 0x8a, 0xa8, 0x79, + 0xec, 0x49, 0xfb, 0x8b, 0x02, 0x05, 0x3d, 0x74, 0x5c, 0xfb, 0x73, 0x41, 0x14, 0x3d, 0x87, 0x8c, + 0xe4, 0x1c, 0xf9, 0xce, 0x57, 0xf6, 0x4b, 0xc2, 0x9c, 0x97, 0xa4, 0x74, 0x77, 0x5e, 0xea, 0xca, + 0x92, 0x48, 0x03, 0x23, 0x86, 0xa3, 0x73, 0xc8, 0xde, 0x12, 0x86, 0x6d, 0xcc, 0x70, 0x44, 0x30, + 0x5f, 0x79, 0x58, 0x12, 0xe9, 0x2c, 0xc5, 0xe9, 0x2c, 0x75, 0xa3, 0x64, 0x1b, 0x13, 0x60, 0xf5, + 0x84, 0x53, 0x3c, 0x84, 0xfd, 0x45, 0x8a, 0x49, 0x56, 0xda, 0x7f, 0x14, 0xc8, 0x35, 0xbe, 0x64, + 0xc4, 0x0b, 0x64, 0x1a, 0x3c, 0x7c, 0x4b, 0x64, 0x72, 0xa2, 0x6f, 0xb4, 0x0b, 0x59, 0x0b, 0x33, + 0x32, 0xf4, 0xe9, 0x58, 0xa6, 0x67, 0xb2, 0x46, 0xdf, 0x85, 0x1d, 0xce, 0xde, 0xb4, 0x49, 0x60, + 0x51, 0x67, 0xc4, 0x7c, 0x2a, 0x33, 0xb5, 0xcd, 0xc5, 0xf5, 0x89, 0x14, 0xfd, 0x74, 0x1a, 0xfc, + 0x7a, 0x14, 0x81, 0x56, 0x5a, 0x76, 0x5e, 0x66, 0xb8, 0x4d, 0x13, 0xb0, 0x0b, 0x59, 0xdb, 0x09, + 0x70, 0xdf, 0x25, 0x76, 0x71, 0xe3, 0x50, 0x39, 0xcd, 0x1a, 0x93, 0x75, 0x55, 0xe3, 0x71, 0xee, + 0xc1, 0xe3, 0xc5, 0x38, 0x27, 0x61, 0x69, 0x7f, 0xde, 0x80, 0xf5, 0x96, 0x6f, 0x13, 0xb4, 0x0d, + 0x69, 0xc7, 0x96, 0xd1, 0xa5, 0x1d, 0x1b, 0x15, 0x21, 0x63, 0xb9, 0x61, 0xc0, 0x08, 0x95, 0xa1, + 0xc5, 0xcb, 0x99, 0x9c, 0xaf, 0xbd, 0x67, 0xce, 0x51, 0x15, 0xb2, 0xae, 0xac, 0xbf, 0x0c, 0x73, + 0x7f, 0x79, 0x98, 0x71, 0x97, 0x18, 0x13, 0x3c, 0xea, 0xc1, 0xc9, 0x8d, 0x63, 0xdb, 0xc4, 0x33, + 0x23, 0x0b, 0xd3, 0x26, 0x23, 0x4a, 0x78, 0xa2, 0x6d, 0xb3, 0xcf, 0x93, 0x12, 0x1f, 0xd4, 0x28, + 0x01, 0x39, 0x3d, 0x5d, 0x54, 0x8c, 0x23, 0x61, 0xd0, 0xe0, 0xf8, 0xfa, 0x04, 0x3e, 0xd3, 0x74, + 0xcf, 0x60, 0x27, 0x0c, 0x08, 0x35, 0xf1, 0x90, 0x78, 0xcc, 0x8c, 0x6a, 0xbb, 0x19, 0x05, 0xba, + 0xc5, 0xc5, 0x35, 0x2e, 0x6d, 0xf1, 0x22, 0x97, 0x00, 0x25, 0x70, 0xb1, 0xab, 0x0c, 0x87, 0x36, + 0x53, 0x86, 0x3a, 0x01, 0xc7, 0xfb, 0xfe, 0x1a, 0x8a, 0x09, 0xfc, 0x2c, 0xc1, 0xec, 0xfb, 0x16, + 0xb8, 0x99, 0x32, 0xbe, 0x33, 0xd9, 0x79, 0x86, 0xf6, 0x2f, 0x00, 0x48, 0x5c, 0xbd, 0xa0, 0x98, + 0x3b, 0x5c, 0x3b, 0xcd, 0x57, 0x0e, 0x96, 0x6f, 0x38, 0xa9, 0xb2, 0x91, 0x30, 0xe1, 0x8d, 0x69, + 0xb9, 0x0e, 0xe7, 0x36, 0x20, 0x98, 0x85, 0x94, 0x04, 0x45, 0x38, 0x5c, 0xe3, 0x8d, 0x29, 0xc4, + 0x97, 0x52, 0x8a, 0x5a, 0xf0, 0xa1, 0xeb, 0x04, 0x8c, 0xf0, 0x8b, 0xc4, 0x94, 0xf7, 0x32, 0x09, + 0x8a, 0xf9, 0xc8, 0xe5, 0xde, 0x72, 0x97, 0x35, 0x01, 0x33, 0xd0, 0xc4, 0xb2, 0x16, 0x1b, 0x56, + 0xf7, 0x78, 0x3b, 0x16, 0xe1, 0xc1, 0x62, 0x3b, 0xf2, 0x06, 0xd4, 0x1f, 0xc1, 0xc3, 0xc5, 0x3c, + 0x9b, 0xfc, 0xb0, 0x68, 0xff, 0x55, 0x20, 0xfb, 0x32, 0xee, 0xa4, 0x5f, 0xc1, 0xce, 0xc0, 0x71, + 0x19, 0xa1, 0xe6, 0xa4, 0x0b, 0x95, 0x88, 0x52, 0x65, 0x39, 0xa5, 0xd8, 0xb0, 0x74, 0x19, 0x59, + 0xc5, 0xcb, 0x86, 0xc7, 0xe8, 0xd8, 0xd8, 0x1e, 0xcc, 0x08, 0x77, 0xbf, 0x80, 0x0f, 0x97, 0xc0, + 0x90, 0x0a, 0x6b, 0xaf, 0xc8, 0x58, 0x9e, 0x0e, 0xfe, 0x89, 0x7e, 0x00, 0x1b, 0x77, 0xd8, 0x0d, + 0xc9, 0xbb, 0x6e, 0x1d, 0x81, 0xaa, 0xa6, 0x9f, 0x2b, 0xf7, 0xdc, 0x8c, 0xb1, 0x33, 0xed, 0x6b, + 0x05, 0xb6, 0x8c, 0xd0, 0x63, 0xce, 0x2d, 0xb9, 0xbe, 0xf2, 0xd8, 0x79, 0x05, 0x1d, 0xc3, 0x96, + 0x4d, 0x06, 0x38, 0x74, 0x99, 0x39, 0xf5, 0xb7, 0x65, 0x14, 0xa4, 0xf0, 0x73, 0x2e, 0x43, 0xa7, + 0x90, 0xa7, 0xc2, 0xca, 0xe4, 0x34, 0xa3, 0x7b, 0x46, 0xcf, 0xbc, 0xd5, 0xd7, 0x69, 0xfa, 0x50, + 0x31, 0x40, 0xea, 0x3e, 0x23, 0xe3, 0xea, 0x33, 0xce, 0xe1, 0x48, 0x3e, 0xd9, 0x33, 0x1c, 0x66, + 0xdc, 0x6a, 0x7f, 0x55, 0x00, 0x49, 0x89, 0xec, 0x87, 0x4b, 0x17, 0x0f, 0xd1, 0xd5, 0x3c, 0x1b, + 0x71, 0x5d, 0xef, 0x2e, 0x44, 0xaf, 0xfb, 0xbe, 0x1b, 0x71, 0xd3, 0xb3, 0x6f, 0xf5, 0x8d, 0x3f, + 0x2a, 0x69, 0x55, 0xb9, 0x9f, 0x73, 0x7a, 0x35, 0xe7, 0xef, 0x73, 0xce, 0xcf, 0xe0, 0xe9, 0x4a, + 0xce, 0x09, 0x86, 0xda, 0xef, 0x20, 0xdf, 0x24, 0xd8, 0x26, 0x54, 0x78, 0x39, 0x4e, 0x14, 0x4e, + 0xff, 0xe0, 0xad, 0xbe, 0x4d, 0x0b, 0x87, 0xca, 0xe9, 0xeb, 0xd7, 0xca, 0x3f, 0x14, 0xe5, 0x8d, + 0x92, 0x12, 0xb5, 0x3c, 0x49, 0xd6, 0x32, 0xa7, 0xef, 0xbc, 0xd5, 0x0b, 0x14, 0x04, 0x28, 0xcd, + 0x41, 0xb2, 0x86, 0x4f, 0x39, 0x8f, 0x03, 0xd8, 0x5b, 0xe4, 0x91, 0xf0, 0xa8, 0xfd, 0x4d, 0x81, + 0x0f, 0x12, 0xeb, 0xf6, 0x88, 0xbf, 0xc9, 0xe8, 0x02, 0x36, 0x6f, 0x22, 0xa1, 0xcc, 0xd8, 0xd1, + 0xf2, 0x5e, 0x4d, 0x18, 0x26, 0x12, 0x27, 0x4d, 0x51, 0x05, 0x36, 0xf9, 0x60, 0xe0, 0xd9, 0xb2, + 0xe9, 0xee, 0x49, 0xbb, 0x21, 0x91, 0xd5, 0x33, 0x4e, 0xfa, 0x04, 0x8e, 0xef, 0x25, 0x2d, 0x48, + 0x6a, 0x2e, 0xe4, 0x84, 0xf0, 0x25, 0x1e, 0xa1, 0x9f, 0x40, 0x46, 0xb8, 0x0d, 0xe4, 0xf1, 0x7a, + 0x37, 0x65, 0x23, 0xb6, 0xb8, 0xe7, 0xe5, 0x99, 0x38, 0xd0, 0xde, 0x28, 0x00, 0x75, 0xcc, 0x70, + 0xd7, 0x0f, 0xa9, 0x45, 0xd0, 0x09, 0x64, 0x07, 0x8e, 0x4b, 0xa6, 0x6f, 0xec, 0xa4, 0x19, 0x9a, + 0x29, 0x63, 0xa2, 0x42, 0x1f, 0x43, 0xc1, 0xf1, 0x5c, 0xc7, 0x23, 0x66, 0x7f, 0xcc, 0x48, 0x10, + 0x65, 0xa2, 0x10, 0x41, 0xbf, 0x4a, 0xab, 0x1c, 0x9a, 0x17, 0x6a, 0x9d, 0x6b, 0x51, 0x09, 0xb6, + 0x24, 0x3a, 0x60, 0xd4, 0xf1, 0x86, 0x73, 0x47, 0xa3, 0x99, 0x32, 0xe4, 0x6e, 0xdd, 0x48, 0x5d, + 0x3d, 0xe6, 0xbc, 0xf7, 0xe1, 0xc9, 0x22, 0xef, 0x29, 0x53, 0x5d, 0x85, 0x5c, 0x30, 0x22, 0x96, + 0x33, 0x70, 0x08, 0x45, 0x6b, 0xff, 0xd7, 0x15, 0xed, 0x1b, 0x05, 0xf2, 0x06, 0x61, 0x74, 0xdc, + 0xf1, 0x5d, 0xc7, 0x1a, 0xa3, 0xcf, 0x60, 0x9b, 0xf2, 0xa5, 0xc9, 0x27, 0x55, 0xd3, 0x1f, 0x0c, + 0x64, 0xd5, 0x4f, 0x56, 0x5c, 0xfc, 0x62, 0x9e, 0xed, 0x32, 0xca, 0x87, 0x87, 0xb1, 0x51, 0x88, + 0x8c, 0xb9, 0xb4, 0x3d, 0x18, 0xa0, 0x9f, 0x41, 0xde, 0x0b, 0x6f, 0x4d, 0x2e, 0x73, 0x64, 0xc0, + 0xf9, 0xca, 0x93, 0x85, 0xd2, 0x8b, 0x83, 0x2b, 0xea, 0x00, 0x5e, 0x78, 0x6b, 0x08, 0xfc, 0x3d, + 0x5d, 0x9b, 0x60, 0xac, 0xfd, 0x4f, 0x01, 0xd5, 0x20, 0xb7, 0x3e, 0x23, 0x89, 0x92, 0xe8, 0x90, + 0x8d, 0xc7, 0x68, 0x19, 0xc0, 0x8a, 0x5b, 0xbf, 0xc9, 0xd8, 0xe8, 0x9a, 0x3a, 0x89, 0x96, 0xcd, + 0xdc, 0x08, 0x11, 0x3a, 0x80, 0xcd, 0xe0, 0x06, 0x57, 0x7e, 0xf4, 0xe3, 0xf9, 0x13, 0x2e, 0xc5, + 0xa8, 0x0e, 0x22, 0x5c, 0x73, 0x14, 0x31, 0x91, 0x13, 0xc5, 0x8a, 0x66, 0x4b, 0x50, 0x36, 0xf2, + 0x74, 0xba, 0xa8, 0x7e, 0x8f, 0x47, 0xf9, 0x14, 0xb4, 0x65, 0x51, 0xce, 0x46, 0xa5, 0xfd, 0x4b, + 0x81, 0x9d, 0x5a, 0x30, 0xf6, 0xac, 0x44, 0xa4, 0xcf, 0x61, 0x23, 0x9a, 0x36, 0x64, 0x98, 0x87, + 0xcb, 0xbd, 0x4f, 0x0d, 0x9a, 0x29, 0x43, 0x18, 0xa0, 0x5f, 0xf2, 0xa9, 0x99, 0x7b, 0x90, 0x85, + 0x79, 0xb6, 0x8a, 0xf8, 0x2c, 0x8b, 0x66, 0xca, 0x90, 0x76, 0xd5, 0x53, 0x4e, 0xfd, 0x18, 0x8e, + 0x16, 0xa9, 0xcf, 0xb1, 0x5c, 0xd2, 0x78, 0x5f, 0xa7, 0x61, 0xa7, 0x47, 0xb1, 0x17, 0x8c, 0x7c, + 0xca, 0xba, 0xbe, 0xf5, 0x8a, 0x30, 0xf4, 0x38, 0x39, 0xa8, 0x4e, 0xf3, 0x2d, 0x26, 0xd6, 0x3e, + 0xec, 0xaf, 0x1a, 0xa5, 0x04, 0xe3, 0x77, 0xbc, 0x67, 0x7c, 0xb8, 0x6a, 0xa6, 0x8c, 0xc7, 0x4b, + 0xc7, 0xab, 0x8b, 0x68, 0x07, 0xf4, 0x09, 0x14, 0xf8, 0xab, 0x3d, 0xd9, 0x51, 0x54, 0xf4, 0xa3, + 0x85, 0x1d, 0x6b, 0xde, 0x98, 0x9f, 0xd7, 0x08, 0x2b, 0x4c, 0xef, 0xc9, 0xc5, 0x5c, 0x94, 0xfa, + 0x16, 0xe4, 0xc5, 0xf6, 0x62, 0x42, 0xf8, 0x46, 0x81, 0x62, 0xfc, 0x1a, 0x50, 0x6c, 0xf1, 0xeb, + 0x0c, 0xbb, 0x1d, 0xf1, 0x97, 0x87, 0xda, 0xcb, 0x5f, 0xad, 0xc3, 0xb9, 0x9f, 0x8c, 0x05, 0xc3, + 0x95, 0x6f, 0xd7, 0xc1, 0x92, 0xb7, 0x6b, 0xe6, 0xc9, 0xfa, 0x21, 0x8f, 0xe3, 0x63, 0x38, 0x5b, + 0xfd, 0x64, 0xcd, 0xfb, 0xd2, 0xae, 0xa1, 0x70, 0xe1, 0x7b, 0x8c, 0xfa, 0x6e, 0xc7, 0xc5, 0x1e, + 0x41, 0xfb, 0x00, 0x8e, 0x4d, 0x3c, 0x16, 0x55, 0x5b, 0x4e, 0x1e, 0x09, 0xc9, 0x3d, 0x3f, 0x31, + 0xc9, 0x6d, 0xce, 0x4e, 0x61, 0xc7, 0xf0, 0x43, 0xe6, 0x78, 0xc3, 0x0e, 0x75, 0x7c, 0xca, 0xc7, + 0xe9, 0x3c, 0x64, 0xea, 0x8d, 0xcb, 0xda, 0xf5, 0x8b, 0x9e, 0x9a, 0x42, 0x59, 0x58, 0x6f, 0x5e, + 0x7d, 0xda, 0x54, 0x95, 0xb3, 0x3f, 0xf0, 0xd9, 0x83, 0xfc, 0x26, 0x24, 0x01, 0x7b, 0x49, 0xd8, + 0x8d, 0x6f, 0xa3, 0x07, 0x80, 0x5e, 0x36, 0x7a, 0xcd, 0x76, 0xdd, 0xbc, 0x6e, 0x75, 0x3b, 0x8d, + 0x8b, 0xab, 0xcb, 0xab, 0x46, 0x5d, 0x4d, 0xa1, 0x0c, 0xac, 0x7d, 0xda, 0xe8, 0xa9, 0x4a, 0x64, + 0xdc, 0xa8, 0xd5, 0xd5, 0x34, 0xff, 0xea, 0xb4, 0xbb, 0x3d, 0x75, 0x8d, 0x2b, 0x3b, 0xd7, 0x3d, + 0x75, 0x1d, 0x01, 0x6c, 0xd6, 0x1b, 0x2f, 0x1a, 0xbd, 0x86, 0xba, 0xc1, 0x5d, 0x5e, 0xb4, 0x5b, + 0xad, 0xc6, 0x45, 0x4f, 0xdd, 0xe4, 0x8b, 0x76, 0xa7, 0x77, 0xd5, 0x6e, 0x75, 0xd5, 0x0c, 0xca, + 0xc1, 0x46, 0xcf, 0xa8, 0x5d, 0x34, 0xd4, 0x2c, 0xff, 0xec, 0xd4, 0x7a, 0x17, 0x4d, 0x35, 0x77, + 0xf6, 0x73, 0x50, 0x7b, 0x14, 0x0f, 0x06, 0x8e, 0x55, 0x77, 0x28, 0x89, 0x32, 0x85, 0x76, 0x20, + 0x3f, 0x4b, 0x23, 0x0f, 0x99, 0xab, 0x96, 0xde, 0xbe, 0x6e, 0xd5, 0x55, 0x05, 0x15, 0x20, 0xdb, + 0xbe, 0xee, 0x89, 0x55, 0x5a, 0xff, 0xe4, 0xef, 0xaf, 0xdf, 0xfc, 0x7b, 0x33, 0xad, 0xa6, 0x41, + 0x73, 0x7c, 0x51, 0xe6, 0x11, 0xf5, 0xbf, 0x1c, 0x2f, 0x3d, 0x9c, 0x7a, 0x4e, 0xc7, 0x01, 0xe9, + 0xf0, 0xb6, 0xec, 0x28, 0xfd, 0xcd, 0xa8, 0x3f, 0xcf, 0xbf, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xe2, + 0xd1, 0x32, 0x21, 0xd6, 0x10, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/base.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/base.pb.validate.go new file mode 100644 index 000000000..dfa5dc71c --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/base.pb.validate.go @@ -0,0 +1,1568 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/core/v3/base.proto + +package envoy_config_core_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _base_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on Locality with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Locality) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Region + + // no validation rules for Zone + + // no validation rules for SubZone + + return nil +} + +// LocalityValidationError is the validation error returned by +// Locality.Validate if the designated constraints aren't met. +type LocalityValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e LocalityValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e LocalityValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e LocalityValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e LocalityValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e LocalityValidationError) ErrorName() string { return "LocalityValidationError" } + +// Error satisfies the builtin error interface +func (e LocalityValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sLocality.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = LocalityValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = LocalityValidationError{} + +// Validate checks the field values on BuildVersion with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *BuildVersion) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetVersion()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return BuildVersionValidationError{ + field: "Version", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return BuildVersionValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// BuildVersionValidationError is the validation error returned by +// BuildVersion.Validate if the designated constraints aren't met. +type BuildVersionValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e BuildVersionValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e BuildVersionValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e BuildVersionValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e BuildVersionValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e BuildVersionValidationError) ErrorName() string { return "BuildVersionValidationError" } + +// Error satisfies the builtin error interface +func (e BuildVersionValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sBuildVersion.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = BuildVersionValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = BuildVersionValidationError{} + +// Validate checks the field values on Extension with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Extension) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Name + + // no validation rules for Category + + // no validation rules for TypeDescriptor + + if v, ok := interface{}(m.GetVersion()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ExtensionValidationError{ + field: "Version", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for Disabled + + return nil +} + +// ExtensionValidationError is the validation error returned by +// Extension.Validate if the designated constraints aren't met. +type ExtensionValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExtensionValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExtensionValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ExtensionValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExtensionValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExtensionValidationError) ErrorName() string { return "ExtensionValidationError" } + +// Error satisfies the builtin error interface +func (e ExtensionValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExtension.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExtensionValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExtensionValidationError{} + +// Validate checks the field values on Node with the rules defined in the proto +// definition for this message. If any rules are violated, an error is returned. +func (m *Node) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Id + + // no validation rules for Cluster + + if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return NodeValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetLocality()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return NodeValidationError{ + field: "Locality", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for HiddenEnvoyDeprecatedBuildVersion + + // no validation rules for UserAgentName + + for idx, item := range m.GetExtensions() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return NodeValidationError{ + field: fmt.Sprintf("Extensions[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for idx, item := range m.GetListeningAddresses() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return NodeValidationError{ + field: fmt.Sprintf("ListeningAddresses[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + switch m.UserAgentVersionType.(type) { + + case *Node_UserAgentVersion: + // no validation rules for UserAgentVersion + + case *Node_UserAgentBuildVersion: + + if v, ok := interface{}(m.GetUserAgentBuildVersion()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return NodeValidationError{ + field: "UserAgentBuildVersion", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// NodeValidationError is the validation error returned by Node.Validate if the +// designated constraints aren't met. +type NodeValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e NodeValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e NodeValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e NodeValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e NodeValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e NodeValidationError) ErrorName() string { return "NodeValidationError" } + +// Error satisfies the builtin error interface +func (e NodeValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sNode.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = NodeValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = NodeValidationError{} + +// Validate checks the field values on Metadata with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Metadata) Validate() error { + if m == nil { + return nil + } + + for key, val := range m.GetFilterMetadata() { + _ = val + + // no validation rules for FilterMetadata[key] + + if v, ok := interface{}(val).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return MetadataValidationError{ + field: fmt.Sprintf("FilterMetadata[%v]", key), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// MetadataValidationError is the validation error returned by +// Metadata.Validate if the designated constraints aren't met. +type MetadataValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MetadataValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MetadataValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MetadataValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MetadataValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MetadataValidationError) ErrorName() string { return "MetadataValidationError" } + +// Error satisfies the builtin error interface +func (e MetadataValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMetadata.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MetadataValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MetadataValidationError{} + +// Validate checks the field values on RuntimeUInt32 with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *RuntimeUInt32) Validate() error { + if m == nil { + return nil + } + + // no validation rules for DefaultValue + + if len(m.GetRuntimeKey()) < 1 { + return RuntimeUInt32ValidationError{ + field: "RuntimeKey", + reason: "value length must be at least 1 bytes", + } + } + + return nil +} + +// RuntimeUInt32ValidationError is the validation error returned by +// RuntimeUInt32.Validate if the designated constraints aren't met. +type RuntimeUInt32ValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RuntimeUInt32ValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RuntimeUInt32ValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RuntimeUInt32ValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RuntimeUInt32ValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RuntimeUInt32ValidationError) ErrorName() string { return "RuntimeUInt32ValidationError" } + +// Error satisfies the builtin error interface +func (e RuntimeUInt32ValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRuntimeUInt32.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RuntimeUInt32ValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RuntimeUInt32ValidationError{} + +// Validate checks the field values on RuntimeFeatureFlag with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *RuntimeFeatureFlag) Validate() error { + if m == nil { + return nil + } + + if m.GetDefaultValue() == nil { + return RuntimeFeatureFlagValidationError{ + field: "DefaultValue", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetDefaultValue()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RuntimeFeatureFlagValidationError{ + field: "DefaultValue", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(m.GetRuntimeKey()) < 1 { + return RuntimeFeatureFlagValidationError{ + field: "RuntimeKey", + reason: "value length must be at least 1 bytes", + } + } + + return nil +} + +// RuntimeFeatureFlagValidationError is the validation error returned by +// RuntimeFeatureFlag.Validate if the designated constraints aren't met. +type RuntimeFeatureFlagValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RuntimeFeatureFlagValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RuntimeFeatureFlagValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RuntimeFeatureFlagValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RuntimeFeatureFlagValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RuntimeFeatureFlagValidationError) ErrorName() string { + return "RuntimeFeatureFlagValidationError" +} + +// Error satisfies the builtin error interface +func (e RuntimeFeatureFlagValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRuntimeFeatureFlag.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RuntimeFeatureFlagValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RuntimeFeatureFlagValidationError{} + +// Validate checks the field values on HeaderValue with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *HeaderValue) Validate() error { + if m == nil { + return nil + } + + if l := len(m.GetKey()); l < 1 || l > 16384 { + return HeaderValueValidationError{ + field: "Key", + reason: "value length must be between 1 and 16384 bytes, inclusive", + } + } + + if !_HeaderValue_Key_Pattern.MatchString(m.GetKey()) { + return HeaderValueValidationError{ + field: "Key", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + } + + if len(m.GetValue()) > 16384 { + return HeaderValueValidationError{ + field: "Value", + reason: "value length must be at most 16384 bytes", + } + } + + if !_HeaderValue_Value_Pattern.MatchString(m.GetValue()) { + return HeaderValueValidationError{ + field: "Value", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + } + + return nil +} + +// HeaderValueValidationError is the validation error returned by +// HeaderValue.Validate if the designated constraints aren't met. +type HeaderValueValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HeaderValueValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HeaderValueValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HeaderValueValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HeaderValueValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HeaderValueValidationError) ErrorName() string { return "HeaderValueValidationError" } + +// Error satisfies the builtin error interface +func (e HeaderValueValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHeaderValue.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HeaderValueValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HeaderValueValidationError{} + +var _HeaderValue_Key_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +var _HeaderValue_Value_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +// Validate checks the field values on HeaderValueOption with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *HeaderValueOption) Validate() error { + if m == nil { + return nil + } + + if m.GetHeader() == nil { + return HeaderValueOptionValidationError{ + field: "Header", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetHeader()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HeaderValueOptionValidationError{ + field: "Header", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetAppend()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HeaderValueOptionValidationError{ + field: "Append", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// HeaderValueOptionValidationError is the validation error returned by +// HeaderValueOption.Validate if the designated constraints aren't met. +type HeaderValueOptionValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HeaderValueOptionValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HeaderValueOptionValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HeaderValueOptionValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HeaderValueOptionValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HeaderValueOptionValidationError) ErrorName() string { + return "HeaderValueOptionValidationError" +} + +// Error satisfies the builtin error interface +func (e HeaderValueOptionValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHeaderValueOption.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HeaderValueOptionValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HeaderValueOptionValidationError{} + +// Validate checks the field values on HeaderMap with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *HeaderMap) Validate() error { + if m == nil { + return nil + } + + for idx, item := range m.GetHeaders() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HeaderMapValidationError{ + field: fmt.Sprintf("Headers[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// HeaderMapValidationError is the validation error returned by +// HeaderMap.Validate if the designated constraints aren't met. +type HeaderMapValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HeaderMapValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HeaderMapValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HeaderMapValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HeaderMapValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HeaderMapValidationError) ErrorName() string { return "HeaderMapValidationError" } + +// Error satisfies the builtin error interface +func (e HeaderMapValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHeaderMap.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HeaderMapValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HeaderMapValidationError{} + +// Validate checks the field values on DataSource with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *DataSource) Validate() error { + if m == nil { + return nil + } + + switch m.Specifier.(type) { + + case *DataSource_Filename: + + if len(m.GetFilename()) < 1 { + return DataSourceValidationError{ + field: "Filename", + reason: "value length must be at least 1 bytes", + } + } + + case *DataSource_InlineBytes: + + if len(m.GetInlineBytes()) < 1 { + return DataSourceValidationError{ + field: "InlineBytes", + reason: "value length must be at least 1 bytes", + } + } + + case *DataSource_InlineString: + + if len(m.GetInlineString()) < 1 { + return DataSourceValidationError{ + field: "InlineString", + reason: "value length must be at least 1 bytes", + } + } + + default: + return DataSourceValidationError{ + field: "Specifier", + reason: "value is required", + } + + } + + return nil +} + +// DataSourceValidationError is the validation error returned by +// DataSource.Validate if the designated constraints aren't met. +type DataSourceValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DataSourceValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DataSourceValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DataSourceValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DataSourceValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DataSourceValidationError) ErrorName() string { return "DataSourceValidationError" } + +// Error satisfies the builtin error interface +func (e DataSourceValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDataSource.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DataSourceValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DataSourceValidationError{} + +// Validate checks the field values on RetryPolicy with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *RetryPolicy) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetRetryBackOff()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RetryPolicyValidationError{ + field: "RetryBackOff", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetNumRetries()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RetryPolicyValidationError{ + field: "NumRetries", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// RetryPolicyValidationError is the validation error returned by +// RetryPolicy.Validate if the designated constraints aren't met. +type RetryPolicyValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RetryPolicyValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RetryPolicyValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RetryPolicyValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RetryPolicyValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RetryPolicyValidationError) ErrorName() string { return "RetryPolicyValidationError" } + +// Error satisfies the builtin error interface +func (e RetryPolicyValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRetryPolicy.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RetryPolicyValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RetryPolicyValidationError{} + +// Validate checks the field values on RemoteDataSource with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *RemoteDataSource) Validate() error { + if m == nil { + return nil + } + + if m.GetHttpUri() == nil { + return RemoteDataSourceValidationError{ + field: "HttpUri", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetHttpUri()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RemoteDataSourceValidationError{ + field: "HttpUri", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(m.GetSha256()) < 1 { + return RemoteDataSourceValidationError{ + field: "Sha256", + reason: "value length must be at least 1 bytes", + } + } + + if v, ok := interface{}(m.GetRetryPolicy()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RemoteDataSourceValidationError{ + field: "RetryPolicy", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// RemoteDataSourceValidationError is the validation error returned by +// RemoteDataSource.Validate if the designated constraints aren't met. +type RemoteDataSourceValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RemoteDataSourceValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RemoteDataSourceValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RemoteDataSourceValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RemoteDataSourceValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RemoteDataSourceValidationError) ErrorName() string { return "RemoteDataSourceValidationError" } + +// Error satisfies the builtin error interface +func (e RemoteDataSourceValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRemoteDataSource.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RemoteDataSourceValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RemoteDataSourceValidationError{} + +// Validate checks the field values on AsyncDataSource with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *AsyncDataSource) Validate() error { + if m == nil { + return nil + } + + switch m.Specifier.(type) { + + case *AsyncDataSource_Local: + + if v, ok := interface{}(m.GetLocal()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AsyncDataSourceValidationError{ + field: "Local", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *AsyncDataSource_Remote: + + if v, ok := interface{}(m.GetRemote()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AsyncDataSourceValidationError{ + field: "Remote", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return AsyncDataSourceValidationError{ + field: "Specifier", + reason: "value is required", + } + + } + + return nil +} + +// AsyncDataSourceValidationError is the validation error returned by +// AsyncDataSource.Validate if the designated constraints aren't met. +type AsyncDataSourceValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AsyncDataSourceValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AsyncDataSourceValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AsyncDataSourceValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AsyncDataSourceValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AsyncDataSourceValidationError) ErrorName() string { return "AsyncDataSourceValidationError" } + +// Error satisfies the builtin error interface +func (e AsyncDataSourceValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAsyncDataSource.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AsyncDataSourceValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AsyncDataSourceValidationError{} + +// Validate checks the field values on TransportSocket with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *TransportSocket) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return TransportSocketValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + switch m.ConfigType.(type) { + + case *TransportSocket_HiddenEnvoyDeprecatedConfig: + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TransportSocketValidationError{ + field: "HiddenEnvoyDeprecatedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *TransportSocket_TypedConfig: + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TransportSocketValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// TransportSocketValidationError is the validation error returned by +// TransportSocket.Validate if the designated constraints aren't met. +type TransportSocketValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TransportSocketValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TransportSocketValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TransportSocketValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TransportSocketValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TransportSocketValidationError) ErrorName() string { return "TransportSocketValidationError" } + +// Error satisfies the builtin error interface +func (e TransportSocketValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTransportSocket.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TransportSocketValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TransportSocketValidationError{} + +// Validate checks the field values on RuntimeFractionalPercent with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *RuntimeFractionalPercent) Validate() error { + if m == nil { + return nil + } + + if m.GetDefaultValue() == nil { + return RuntimeFractionalPercentValidationError{ + field: "DefaultValue", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetDefaultValue()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RuntimeFractionalPercentValidationError{ + field: "DefaultValue", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for RuntimeKey + + return nil +} + +// RuntimeFractionalPercentValidationError is the validation error returned by +// RuntimeFractionalPercent.Validate if the designated constraints aren't met. +type RuntimeFractionalPercentValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RuntimeFractionalPercentValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RuntimeFractionalPercentValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RuntimeFractionalPercentValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RuntimeFractionalPercentValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RuntimeFractionalPercentValidationError) ErrorName() string { + return "RuntimeFractionalPercentValidationError" +} + +// Error satisfies the builtin error interface +func (e RuntimeFractionalPercentValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRuntimeFractionalPercent.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RuntimeFractionalPercentValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RuntimeFractionalPercentValidationError{} + +// Validate checks the field values on ControlPlane with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *ControlPlane) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Identifier + + return nil +} + +// ControlPlaneValidationError is the validation error returned by +// ControlPlane.Validate if the designated constraints aren't met. +type ControlPlaneValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ControlPlaneValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ControlPlaneValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ControlPlaneValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ControlPlaneValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ControlPlaneValidationError) ErrorName() string { return "ControlPlaneValidationError" } + +// Error satisfies the builtin error interface +func (e ControlPlaneValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sControlPlane.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ControlPlaneValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ControlPlaneValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/config_source.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/config_source.pb.go new file mode 100644 index 000000000..531c355ad --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/config_source.pb.go @@ -0,0 +1,492 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/core/v3/config_source.proto + +package envoy_config_core_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/go-control-plane/envoy/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + duration "github.com/golang/protobuf/ptypes/duration" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type ApiVersion int32 + +const ( + ApiVersion_AUTO ApiVersion = 0 + ApiVersion_V2 ApiVersion = 1 + ApiVersion_V3 ApiVersion = 2 +) + +var ApiVersion_name = map[int32]string{ + 0: "AUTO", + 1: "V2", + 2: "V3", +} + +var ApiVersion_value = map[string]int32{ + "AUTO": 0, + "V2": 1, + "V3": 2, +} + +func (x ApiVersion) String() string { + return proto.EnumName(ApiVersion_name, int32(x)) +} + +func (ApiVersion) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_a3116f5d2bd13e64, []int{0} +} + +type ApiConfigSource_ApiType int32 + +const ( + ApiConfigSource_hidden_envoy_deprecated_UNSUPPORTED_REST_LEGACY ApiConfigSource_ApiType = 0 // Deprecated: Do not use. + ApiConfigSource_REST ApiConfigSource_ApiType = 1 + ApiConfigSource_GRPC ApiConfigSource_ApiType = 2 + ApiConfigSource_DELTA_GRPC ApiConfigSource_ApiType = 3 +) + +var ApiConfigSource_ApiType_name = map[int32]string{ + 0: "hidden_envoy_deprecated_UNSUPPORTED_REST_LEGACY", + 1: "REST", + 2: "GRPC", + 3: "DELTA_GRPC", +} + +var ApiConfigSource_ApiType_value = map[string]int32{ + "hidden_envoy_deprecated_UNSUPPORTED_REST_LEGACY": 0, + "REST": 1, + "GRPC": 2, + "DELTA_GRPC": 3, +} + +func (x ApiConfigSource_ApiType) String() string { + return proto.EnumName(ApiConfigSource_ApiType_name, int32(x)) +} + +func (ApiConfigSource_ApiType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_a3116f5d2bd13e64, []int{0, 0} +} + +type ApiConfigSource struct { + ApiType ApiConfigSource_ApiType `protobuf:"varint,1,opt,name=api_type,json=apiType,proto3,enum=envoy.config.core.v3.ApiConfigSource_ApiType" json:"api_type,omitempty"` + TransportApiVersion ApiVersion `protobuf:"varint,8,opt,name=transport_api_version,json=transportApiVersion,proto3,enum=envoy.config.core.v3.ApiVersion" json:"transport_api_version,omitempty"` + ClusterNames []string `protobuf:"bytes,2,rep,name=cluster_names,json=clusterNames,proto3" json:"cluster_names,omitempty"` + GrpcServices []*GrpcService `protobuf:"bytes,4,rep,name=grpc_services,json=grpcServices,proto3" json:"grpc_services,omitempty"` + RefreshDelay *duration.Duration `protobuf:"bytes,3,opt,name=refresh_delay,json=refreshDelay,proto3" json:"refresh_delay,omitempty"` + RequestTimeout *duration.Duration `protobuf:"bytes,5,opt,name=request_timeout,json=requestTimeout,proto3" json:"request_timeout,omitempty"` + RateLimitSettings *RateLimitSettings `protobuf:"bytes,6,opt,name=rate_limit_settings,json=rateLimitSettings,proto3" json:"rate_limit_settings,omitempty"` + SetNodeOnFirstMessageOnly bool `protobuf:"varint,7,opt,name=set_node_on_first_message_only,json=setNodeOnFirstMessageOnly,proto3" json:"set_node_on_first_message_only,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApiConfigSource) Reset() { *m = ApiConfigSource{} } +func (m *ApiConfigSource) String() string { return proto.CompactTextString(m) } +func (*ApiConfigSource) ProtoMessage() {} +func (*ApiConfigSource) Descriptor() ([]byte, []int) { + return fileDescriptor_a3116f5d2bd13e64, []int{0} +} + +func (m *ApiConfigSource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ApiConfigSource.Unmarshal(m, b) +} +func (m *ApiConfigSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ApiConfigSource.Marshal(b, m, deterministic) +} +func (m *ApiConfigSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApiConfigSource.Merge(m, src) +} +func (m *ApiConfigSource) XXX_Size() int { + return xxx_messageInfo_ApiConfigSource.Size(m) +} +func (m *ApiConfigSource) XXX_DiscardUnknown() { + xxx_messageInfo_ApiConfigSource.DiscardUnknown(m) +} + +var xxx_messageInfo_ApiConfigSource proto.InternalMessageInfo + +func (m *ApiConfigSource) GetApiType() ApiConfigSource_ApiType { + if m != nil { + return m.ApiType + } + return ApiConfigSource_hidden_envoy_deprecated_UNSUPPORTED_REST_LEGACY +} + +func (m *ApiConfigSource) GetTransportApiVersion() ApiVersion { + if m != nil { + return m.TransportApiVersion + } + return ApiVersion_AUTO +} + +func (m *ApiConfigSource) GetClusterNames() []string { + if m != nil { + return m.ClusterNames + } + return nil +} + +func (m *ApiConfigSource) GetGrpcServices() []*GrpcService { + if m != nil { + return m.GrpcServices + } + return nil +} + +func (m *ApiConfigSource) GetRefreshDelay() *duration.Duration { + if m != nil { + return m.RefreshDelay + } + return nil +} + +func (m *ApiConfigSource) GetRequestTimeout() *duration.Duration { + if m != nil { + return m.RequestTimeout + } + return nil +} + +func (m *ApiConfigSource) GetRateLimitSettings() *RateLimitSettings { + if m != nil { + return m.RateLimitSettings + } + return nil +} + +func (m *ApiConfigSource) GetSetNodeOnFirstMessageOnly() bool { + if m != nil { + return m.SetNodeOnFirstMessageOnly + } + return false +} + +type AggregatedConfigSource struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AggregatedConfigSource) Reset() { *m = AggregatedConfigSource{} } +func (m *AggregatedConfigSource) String() string { return proto.CompactTextString(m) } +func (*AggregatedConfigSource) ProtoMessage() {} +func (*AggregatedConfigSource) Descriptor() ([]byte, []int) { + return fileDescriptor_a3116f5d2bd13e64, []int{1} +} + +func (m *AggregatedConfigSource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AggregatedConfigSource.Unmarshal(m, b) +} +func (m *AggregatedConfigSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AggregatedConfigSource.Marshal(b, m, deterministic) +} +func (m *AggregatedConfigSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_AggregatedConfigSource.Merge(m, src) +} +func (m *AggregatedConfigSource) XXX_Size() int { + return xxx_messageInfo_AggregatedConfigSource.Size(m) +} +func (m *AggregatedConfigSource) XXX_DiscardUnknown() { + xxx_messageInfo_AggregatedConfigSource.DiscardUnknown(m) +} + +var xxx_messageInfo_AggregatedConfigSource proto.InternalMessageInfo + +type SelfConfigSource struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SelfConfigSource) Reset() { *m = SelfConfigSource{} } +func (m *SelfConfigSource) String() string { return proto.CompactTextString(m) } +func (*SelfConfigSource) ProtoMessage() {} +func (*SelfConfigSource) Descriptor() ([]byte, []int) { + return fileDescriptor_a3116f5d2bd13e64, []int{2} +} + +func (m *SelfConfigSource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SelfConfigSource.Unmarshal(m, b) +} +func (m *SelfConfigSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SelfConfigSource.Marshal(b, m, deterministic) +} +func (m *SelfConfigSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_SelfConfigSource.Merge(m, src) +} +func (m *SelfConfigSource) XXX_Size() int { + return xxx_messageInfo_SelfConfigSource.Size(m) +} +func (m *SelfConfigSource) XXX_DiscardUnknown() { + xxx_messageInfo_SelfConfigSource.DiscardUnknown(m) +} + +var xxx_messageInfo_SelfConfigSource proto.InternalMessageInfo + +type RateLimitSettings struct { + MaxTokens *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=max_tokens,json=maxTokens,proto3" json:"max_tokens,omitempty"` + FillRate *wrappers.DoubleValue `protobuf:"bytes,2,opt,name=fill_rate,json=fillRate,proto3" json:"fill_rate,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RateLimitSettings) Reset() { *m = RateLimitSettings{} } +func (m *RateLimitSettings) String() string { return proto.CompactTextString(m) } +func (*RateLimitSettings) ProtoMessage() {} +func (*RateLimitSettings) Descriptor() ([]byte, []int) { + return fileDescriptor_a3116f5d2bd13e64, []int{3} +} + +func (m *RateLimitSettings) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RateLimitSettings.Unmarshal(m, b) +} +func (m *RateLimitSettings) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RateLimitSettings.Marshal(b, m, deterministic) +} +func (m *RateLimitSettings) XXX_Merge(src proto.Message) { + xxx_messageInfo_RateLimitSettings.Merge(m, src) +} +func (m *RateLimitSettings) XXX_Size() int { + return xxx_messageInfo_RateLimitSettings.Size(m) +} +func (m *RateLimitSettings) XXX_DiscardUnknown() { + xxx_messageInfo_RateLimitSettings.DiscardUnknown(m) +} + +var xxx_messageInfo_RateLimitSettings proto.InternalMessageInfo + +func (m *RateLimitSettings) GetMaxTokens() *wrappers.UInt32Value { + if m != nil { + return m.MaxTokens + } + return nil +} + +func (m *RateLimitSettings) GetFillRate() *wrappers.DoubleValue { + if m != nil { + return m.FillRate + } + return nil +} + +type ConfigSource struct { + // Types that are valid to be assigned to ConfigSourceSpecifier: + // *ConfigSource_Path + // *ConfigSource_ApiConfigSource + // *ConfigSource_Ads + // *ConfigSource_Self + ConfigSourceSpecifier isConfigSource_ConfigSourceSpecifier `protobuf_oneof:"config_source_specifier"` + InitialFetchTimeout *duration.Duration `protobuf:"bytes,4,opt,name=initial_fetch_timeout,json=initialFetchTimeout,proto3" json:"initial_fetch_timeout,omitempty"` + ResourceApiVersion ApiVersion `protobuf:"varint,6,opt,name=resource_api_version,json=resourceApiVersion,proto3,enum=envoy.config.core.v3.ApiVersion" json:"resource_api_version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ConfigSource) Reset() { *m = ConfigSource{} } +func (m *ConfigSource) String() string { return proto.CompactTextString(m) } +func (*ConfigSource) ProtoMessage() {} +func (*ConfigSource) Descriptor() ([]byte, []int) { + return fileDescriptor_a3116f5d2bd13e64, []int{4} +} + +func (m *ConfigSource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ConfigSource.Unmarshal(m, b) +} +func (m *ConfigSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ConfigSource.Marshal(b, m, deterministic) +} +func (m *ConfigSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConfigSource.Merge(m, src) +} +func (m *ConfigSource) XXX_Size() int { + return xxx_messageInfo_ConfigSource.Size(m) +} +func (m *ConfigSource) XXX_DiscardUnknown() { + xxx_messageInfo_ConfigSource.DiscardUnknown(m) +} + +var xxx_messageInfo_ConfigSource proto.InternalMessageInfo + +type isConfigSource_ConfigSourceSpecifier interface { + isConfigSource_ConfigSourceSpecifier() +} + +type ConfigSource_Path struct { + Path string `protobuf:"bytes,1,opt,name=path,proto3,oneof"` +} + +type ConfigSource_ApiConfigSource struct { + ApiConfigSource *ApiConfigSource `protobuf:"bytes,2,opt,name=api_config_source,json=apiConfigSource,proto3,oneof"` +} + +type ConfigSource_Ads struct { + Ads *AggregatedConfigSource `protobuf:"bytes,3,opt,name=ads,proto3,oneof"` +} + +type ConfigSource_Self struct { + Self *SelfConfigSource `protobuf:"bytes,5,opt,name=self,proto3,oneof"` +} + +func (*ConfigSource_Path) isConfigSource_ConfigSourceSpecifier() {} + +func (*ConfigSource_ApiConfigSource) isConfigSource_ConfigSourceSpecifier() {} + +func (*ConfigSource_Ads) isConfigSource_ConfigSourceSpecifier() {} + +func (*ConfigSource_Self) isConfigSource_ConfigSourceSpecifier() {} + +func (m *ConfigSource) GetConfigSourceSpecifier() isConfigSource_ConfigSourceSpecifier { + if m != nil { + return m.ConfigSourceSpecifier + } + return nil +} + +func (m *ConfigSource) GetPath() string { + if x, ok := m.GetConfigSourceSpecifier().(*ConfigSource_Path); ok { + return x.Path + } + return "" +} + +func (m *ConfigSource) GetApiConfigSource() *ApiConfigSource { + if x, ok := m.GetConfigSourceSpecifier().(*ConfigSource_ApiConfigSource); ok { + return x.ApiConfigSource + } + return nil +} + +func (m *ConfigSource) GetAds() *AggregatedConfigSource { + if x, ok := m.GetConfigSourceSpecifier().(*ConfigSource_Ads); ok { + return x.Ads + } + return nil +} + +func (m *ConfigSource) GetSelf() *SelfConfigSource { + if x, ok := m.GetConfigSourceSpecifier().(*ConfigSource_Self); ok { + return x.Self + } + return nil +} + +func (m *ConfigSource) GetInitialFetchTimeout() *duration.Duration { + if m != nil { + return m.InitialFetchTimeout + } + return nil +} + +func (m *ConfigSource) GetResourceApiVersion() ApiVersion { + if m != nil { + return m.ResourceApiVersion + } + return ApiVersion_AUTO +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ConfigSource) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ConfigSource_Path)(nil), + (*ConfigSource_ApiConfigSource)(nil), + (*ConfigSource_Ads)(nil), + (*ConfigSource_Self)(nil), + } +} + +func init() { + proto.RegisterEnum("envoy.config.core.v3.ApiVersion", ApiVersion_name, ApiVersion_value) + proto.RegisterEnum("envoy.config.core.v3.ApiConfigSource_ApiType", ApiConfigSource_ApiType_name, ApiConfigSource_ApiType_value) + proto.RegisterType((*ApiConfigSource)(nil), "envoy.config.core.v3.ApiConfigSource") + proto.RegisterType((*AggregatedConfigSource)(nil), "envoy.config.core.v3.AggregatedConfigSource") + proto.RegisterType((*SelfConfigSource)(nil), "envoy.config.core.v3.SelfConfigSource") + proto.RegisterType((*RateLimitSettings)(nil), "envoy.config.core.v3.RateLimitSettings") + proto.RegisterType((*ConfigSource)(nil), "envoy.config.core.v3.ConfigSource") +} + +func init() { + proto.RegisterFile("envoy/config/core/v3/config_source.proto", fileDescriptor_a3116f5d2bd13e64) +} + +var fileDescriptor_a3116f5d2bd13e64 = []byte{ + // 943 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x4b, 0x6f, 0x23, 0x45, + 0x10, 0xf6, 0x8c, 0xbd, 0x89, 0xd3, 0x79, 0x39, 0x9d, 0x2c, 0xeb, 0x8d, 0xc0, 0x72, 0x1c, 0xb2, + 0x6b, 0x22, 0x18, 0x4b, 0xf6, 0x2d, 0xb0, 0x08, 0x3b, 0xce, 0x4b, 0xca, 0x26, 0xd6, 0xd8, 0x09, + 0x42, 0x42, 0xb4, 0x3a, 0x9e, 0xf2, 0xa4, 0xc5, 0x78, 0x7a, 0xe8, 0xee, 0x31, 0xf1, 0x0d, 0x71, + 0x42, 0xe2, 0x1f, 0xf0, 0x0b, 0x10, 0x67, 0x4e, 0xdc, 0x11, 0x5c, 0xf9, 0x21, 0xdc, 0x90, 0x40, + 0x7b, 0x42, 0x3d, 0x33, 0xde, 0xf8, 0x15, 0x2d, 0xf8, 0xe2, 0xa9, 0xae, 0xef, 0xfb, 0xba, 0xaa, + 0xeb, 0x81, 0xca, 0xe0, 0x0f, 0xf8, 0xb0, 0xd2, 0xe5, 0x7e, 0x8f, 0xb9, 0x95, 0x2e, 0x17, 0x50, + 0x19, 0xd4, 0x12, 0x93, 0x48, 0x1e, 0x8a, 0x2e, 0x58, 0x81, 0xe0, 0x8a, 0xe3, 0xad, 0x08, 0x69, + 0xc5, 0x2e, 0x4b, 0x23, 0xad, 0x41, 0x6d, 0xfb, 0xf9, 0x5c, 0xbe, 0x2b, 0x82, 0x2e, 0x91, 0x20, + 0x06, 0x6c, 0x44, 0xdf, 0x2e, 0xb8, 0x9c, 0xbb, 0x1e, 0x54, 0x22, 0xeb, 0x26, 0xec, 0x55, 0x9c, + 0x50, 0x50, 0xc5, 0xb8, 0xff, 0x90, 0xff, 0x6b, 0x41, 0x83, 0x00, 0x84, 0x4c, 0xfc, 0xbb, 0xf1, + 0x45, 0xd4, 0xf7, 0xb9, 0x8a, 0x78, 0xb2, 0xe2, 0x40, 0x20, 0xa0, 0x3b, 0x2e, 0xf2, 0x4e, 0xe8, + 0x04, 0x74, 0x02, 0x23, 0x15, 0x55, 0xe1, 0x48, 0x63, 0x67, 0xc6, 0x3d, 0x00, 0x21, 0x19, 0xf7, + 0x99, 0xef, 0x26, 0x90, 0x27, 0x03, 0xea, 0x31, 0x87, 0x2a, 0xa8, 0x8c, 0x3e, 0x62, 0x47, 0xe9, + 0xaf, 0x47, 0x68, 0xbd, 0x1e, 0xb0, 0xc3, 0x28, 0xd1, 0x76, 0xf4, 0x30, 0xd8, 0x46, 0x59, 0x1a, + 0x30, 0xa2, 0x86, 0x01, 0xe4, 0x8d, 0xa2, 0x51, 0x5e, 0xab, 0x7e, 0x60, 0xcd, 0x7b, 0x25, 0x6b, + 0x8a, 0xa8, 0xed, 0xce, 0x30, 0x80, 0x46, 0xf6, 0x55, 0xe3, 0xd1, 0xb7, 0x86, 0x99, 0x33, 0xec, + 0x45, 0x1a, 0x1f, 0xe1, 0x2f, 0xd0, 0x63, 0x25, 0xa8, 0x2f, 0x03, 0x2e, 0x14, 0xd1, 0xea, 0x49, + 0x88, 0xf9, 0x6c, 0x74, 0x41, 0xf1, 0xc1, 0x0b, 0xae, 0x63, 0xdc, 0x98, 0xe6, 0xe6, 0x6b, 0xa1, + 0x7b, 0x37, 0xde, 0x45, 0xab, 0x5d, 0x2f, 0x94, 0x0a, 0x04, 0xf1, 0x69, 0x1f, 0x64, 0xde, 0x2c, + 0xa6, 0xcb, 0x4b, 0xf6, 0x4a, 0x72, 0x78, 0xa1, 0xcf, 0xf0, 0x31, 0x5a, 0x1d, 0x2f, 0xa1, 0xcc, + 0x67, 0x8a, 0xe9, 0xf2, 0x72, 0x75, 0x67, 0xfe, 0xe5, 0x27, 0x22, 0xe8, 0xb6, 0x63, 0xa4, 0xbd, + 0xe2, 0xde, 0x1b, 0x12, 0x7f, 0x8c, 0x56, 0x05, 0xf4, 0x04, 0xc8, 0x5b, 0xe2, 0x80, 0x47, 0x87, + 0xf9, 0x74, 0xd1, 0x28, 0x2f, 0x57, 0x9f, 0x5a, 0x71, 0xb1, 0xad, 0x51, 0xb1, 0xad, 0x66, 0xd2, + 0x0c, 0xf6, 0x4a, 0x82, 0x6f, 0x6a, 0x38, 0x3e, 0x47, 0xeb, 0x02, 0xbe, 0x0a, 0x41, 0x2a, 0xa2, + 0x58, 0x1f, 0x78, 0xa8, 0xf2, 0x8f, 0xde, 0xa0, 0x10, 0xe5, 0xff, 0x93, 0x61, 0xee, 0xa7, 0xec, + 0xb5, 0x84, 0xdb, 0x89, 0xa9, 0xf8, 0x53, 0xb4, 0x29, 0xa8, 0x02, 0xe2, 0xb1, 0x3e, 0x53, 0x44, + 0x82, 0x52, 0xcc, 0x77, 0x65, 0x7e, 0x21, 0x52, 0x7c, 0x3e, 0x3f, 0x37, 0x9b, 0x2a, 0x38, 0xd7, + 0xf8, 0x76, 0x02, 0xb7, 0x37, 0xc4, 0xf4, 0x11, 0xae, 0xa3, 0x82, 0x04, 0x45, 0x7c, 0xee, 0x00, + 0xe1, 0x3e, 0xe9, 0x31, 0x21, 0x15, 0xe9, 0x83, 0x94, 0xd4, 0xd5, 0x07, 0xde, 0x30, 0xbf, 0x58, + 0x34, 0xca, 0x59, 0xfb, 0xa9, 0x04, 0x75, 0xc1, 0x1d, 0xb8, 0xf4, 0x8f, 0x35, 0xe4, 0x65, 0x8c, + 0xb8, 0xf4, 0xbd, 0x61, 0xc9, 0x43, 0x8b, 0x49, 0x53, 0xe0, 0x17, 0xa8, 0x72, 0xcb, 0x1c, 0x07, + 0x7c, 0x12, 0x45, 0x44, 0x46, 0x6d, 0x0e, 0x0e, 0xb9, 0xba, 0x68, 0x5f, 0xb5, 0x5a, 0x97, 0x76, + 0xe7, 0xa8, 0x49, 0xec, 0xa3, 0x76, 0x87, 0x9c, 0x1f, 0x9d, 0xd4, 0x0f, 0x3f, 0xcb, 0xa5, 0xb6, + 0xb3, 0x3f, 0xfe, 0xfd, 0xf3, 0xf7, 0xa6, 0x91, 0x35, 0x70, 0x16, 0x65, 0xb4, 0x2b, 0x17, 0x7d, + 0x9d, 0xd8, 0xad, 0xc3, 0x9c, 0x89, 0xd7, 0x10, 0x6a, 0x1e, 0x9d, 0x77, 0xea, 0x24, 0xb2, 0xd3, + 0x07, 0xe5, 0x1f, 0x7e, 0xfd, 0xae, 0xb0, 0x8b, 0x76, 0xe2, 0x94, 0x69, 0xc0, 0xac, 0x41, 0x35, + 0x4e, 0x79, 0xaa, 0x53, 0x4b, 0x67, 0xe8, 0xad, 0xba, 0xeb, 0x0a, 0x70, 0xf5, 0xfd, 0xe3, 0x9e, + 0x83, 0x8a, 0xd6, 0xd8, 0x4f, 0x16, 0xc8, 0xa4, 0xc6, 0x5c, 0x42, 0xe9, 0x05, 0xca, 0xb5, 0xc1, + 0xeb, 0x4d, 0x88, 0xbc, 0xa7, 0x45, 0xde, 0x45, 0xa5, 0x59, 0x91, 0x69, 0x68, 0xe9, 0x37, 0x03, + 0x6d, 0xcc, 0x54, 0x03, 0x7f, 0x88, 0x50, 0x9f, 0xde, 0x11, 0xc5, 0xbf, 0x04, 0x5f, 0x46, 0x43, + 0xb8, 0x5c, 0x7d, 0x7b, 0xa6, 0x39, 0xae, 0xce, 0x7c, 0x55, 0xab, 0x5e, 0x53, 0x2f, 0x04, 0x7b, + 0xa9, 0x4f, 0xef, 0x3a, 0x11, 0x1c, 0x9f, 0xa1, 0xa5, 0x1e, 0xf3, 0x3c, 0xa2, 0x2b, 0x9a, 0x37, + 0x1f, 0xe0, 0x36, 0x79, 0x78, 0xe3, 0x41, 0xc4, 0x6d, 0xac, 0xbd, 0x6a, 0x2c, 0xe3, 0xa5, 0x9d, + 0x54, 0xf2, 0xb3, 0xb3, 0x9a, 0xae, 0x83, 0x3a, 0xd8, 0xd7, 0x89, 0xec, 0xa1, 0xdd, 0xd9, 0x44, + 0x66, 0x62, 0x2e, 0xfd, 0x99, 0x46, 0x2b, 0x13, 0x7b, 0x64, 0x0b, 0x65, 0x02, 0xaa, 0x6e, 0xa3, + 0xf0, 0x97, 0x4e, 0x53, 0x76, 0x64, 0xe1, 0x36, 0xda, 0xd0, 0xf3, 0x3f, 0xb1, 0x8b, 0x93, 0x28, + 0xf7, 0xfe, 0xd3, 0x9a, 0x39, 0x4d, 0xd9, 0xeb, 0x74, 0x6a, 0x65, 0x7d, 0x82, 0xd2, 0xd4, 0x91, + 0xc9, 0x1c, 0xbe, 0xff, 0x80, 0xcc, 0xdc, 0xfa, 0x9d, 0xa6, 0x6c, 0x4d, 0xc5, 0x1f, 0xa1, 0x8c, + 0x04, 0xaf, 0x97, 0x0c, 0xe2, 0xb3, 0xf9, 0x12, 0xd3, 0xd5, 0xd3, 0x49, 0x69, 0x16, 0x7e, 0x89, + 0x1e, 0x33, 0x9f, 0x29, 0x46, 0x3d, 0xd2, 0x03, 0xd5, 0xbd, 0x7d, 0x3d, 0xd7, 0x99, 0x37, 0x6d, + 0x86, 0xcd, 0x84, 0x77, 0xac, 0x69, 0xa3, 0x91, 0xfe, 0x1c, 0x6d, 0x09, 0x88, 0x9f, 0x66, 0x62, + 0x59, 0x2e, 0xfc, 0xef, 0x65, 0x89, 0x47, 0x3a, 0xf7, 0xde, 0x83, 0x3d, 0x5d, 0xd4, 0x22, 0x2a, + 0xcc, 0x16, 0x75, 0x3c, 0xb7, 0x46, 0x01, 0x3d, 0x99, 0x28, 0x12, 0x91, 0x01, 0x74, 0x59, 0x8f, + 0x81, 0xc0, 0xe9, 0x7f, 0x1a, 0xc6, 0xfe, 0x33, 0x84, 0xc6, 0x16, 0x70, 0x16, 0x65, 0xea, 0x57, + 0x9d, 0xcb, 0x5c, 0x0a, 0x2f, 0x20, 0xf3, 0xba, 0x9a, 0x33, 0xa2, 0xff, 0x5a, 0xce, 0x6c, 0xd4, + 0x7f, 0xf9, 0xe6, 0xf7, 0x3f, 0x16, 0xcc, 0x9c, 0x89, 0x4a, 0x8c, 0xc7, 0xa1, 0x07, 0x82, 0xdf, + 0x0d, 0xe7, 0x66, 0xd1, 0xd8, 0x18, 0x8f, 0xa1, 0xa5, 0x9f, 0xab, 0x65, 0xdc, 0x2c, 0x44, 0xef, + 0x56, 0xfb, 0x37, 0x00, 0x00, 0xff, 0xff, 0x11, 0x95, 0x60, 0xb9, 0xd7, 0x07, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/config_source.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/config_source.pb.validate.go new file mode 100644 index 000000000..907a3d4c5 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/config_source.pb.validate.go @@ -0,0 +1,525 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/core/v3/config_source.proto + +package envoy_config_core_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _config_source_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on ApiConfigSource with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *ApiConfigSource) Validate() error { + if m == nil { + return nil + } + + if _, ok := ApiConfigSource_ApiType_name[int32(m.GetApiType())]; !ok { + return ApiConfigSourceValidationError{ + field: "ApiType", + reason: "value must be one of the defined enum values", + } + } + + if _, ok := ApiVersion_name[int32(m.GetTransportApiVersion())]; !ok { + return ApiConfigSourceValidationError{ + field: "TransportApiVersion", + reason: "value must be one of the defined enum values", + } + } + + for idx, item := range m.GetGrpcServices() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ApiConfigSourceValidationError{ + field: fmt.Sprintf("GrpcServices[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetRefreshDelay()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ApiConfigSourceValidationError{ + field: "RefreshDelay", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if d := m.GetRequestTimeout(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return ApiConfigSourceValidationError{ + field: "RequestTimeout", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur <= gt { + return ApiConfigSourceValidationError{ + field: "RequestTimeout", + reason: "value must be greater than 0s", + } + } + + } + + if v, ok := interface{}(m.GetRateLimitSettings()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ApiConfigSourceValidationError{ + field: "RateLimitSettings", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for SetNodeOnFirstMessageOnly + + return nil +} + +// ApiConfigSourceValidationError is the validation error returned by +// ApiConfigSource.Validate if the designated constraints aren't met. +type ApiConfigSourceValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ApiConfigSourceValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ApiConfigSourceValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ApiConfigSourceValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ApiConfigSourceValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ApiConfigSourceValidationError) ErrorName() string { return "ApiConfigSourceValidationError" } + +// Error satisfies the builtin error interface +func (e ApiConfigSourceValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sApiConfigSource.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ApiConfigSourceValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ApiConfigSourceValidationError{} + +// Validate checks the field values on AggregatedConfigSource with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *AggregatedConfigSource) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// AggregatedConfigSourceValidationError is the validation error returned by +// AggregatedConfigSource.Validate if the designated constraints aren't met. +type AggregatedConfigSourceValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AggregatedConfigSourceValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AggregatedConfigSourceValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AggregatedConfigSourceValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AggregatedConfigSourceValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AggregatedConfigSourceValidationError) ErrorName() string { + return "AggregatedConfigSourceValidationError" +} + +// Error satisfies the builtin error interface +func (e AggregatedConfigSourceValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAggregatedConfigSource.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AggregatedConfigSourceValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AggregatedConfigSourceValidationError{} + +// Validate checks the field values on SelfConfigSource with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *SelfConfigSource) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// SelfConfigSourceValidationError is the validation error returned by +// SelfConfigSource.Validate if the designated constraints aren't met. +type SelfConfigSourceValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e SelfConfigSourceValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e SelfConfigSourceValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e SelfConfigSourceValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e SelfConfigSourceValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e SelfConfigSourceValidationError) ErrorName() string { return "SelfConfigSourceValidationError" } + +// Error satisfies the builtin error interface +func (e SelfConfigSourceValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSelfConfigSource.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = SelfConfigSourceValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = SelfConfigSourceValidationError{} + +// Validate checks the field values on RateLimitSettings with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *RateLimitSettings) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetMaxTokens()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RateLimitSettingsValidationError{ + field: "MaxTokens", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if wrapper := m.GetFillRate(); wrapper != nil { + + if wrapper.GetValue() <= 0 { + return RateLimitSettingsValidationError{ + field: "FillRate", + reason: "value must be greater than 0", + } + } + + } + + return nil +} + +// RateLimitSettingsValidationError is the validation error returned by +// RateLimitSettings.Validate if the designated constraints aren't met. +type RateLimitSettingsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RateLimitSettingsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RateLimitSettingsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RateLimitSettingsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RateLimitSettingsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RateLimitSettingsValidationError) ErrorName() string { + return "RateLimitSettingsValidationError" +} + +// Error satisfies the builtin error interface +func (e RateLimitSettingsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRateLimitSettings.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RateLimitSettingsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RateLimitSettingsValidationError{} + +// Validate checks the field values on ConfigSource with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *ConfigSource) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetInitialFetchTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ConfigSourceValidationError{ + field: "InitialFetchTimeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if _, ok := ApiVersion_name[int32(m.GetResourceApiVersion())]; !ok { + return ConfigSourceValidationError{ + field: "ResourceApiVersion", + reason: "value must be one of the defined enum values", + } + } + + switch m.ConfigSourceSpecifier.(type) { + + case *ConfigSource_Path: + // no validation rules for Path + + case *ConfigSource_ApiConfigSource: + + if v, ok := interface{}(m.GetApiConfigSource()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ConfigSourceValidationError{ + field: "ApiConfigSource", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ConfigSource_Ads: + + if v, ok := interface{}(m.GetAds()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ConfigSourceValidationError{ + field: "Ads", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ConfigSource_Self: + + if v, ok := interface{}(m.GetSelf()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ConfigSourceValidationError{ + field: "Self", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return ConfigSourceValidationError{ + field: "ConfigSourceSpecifier", + reason: "value is required", + } + + } + + return nil +} + +// ConfigSourceValidationError is the validation error returned by +// ConfigSource.Validate if the designated constraints aren't met. +type ConfigSourceValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ConfigSourceValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ConfigSourceValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ConfigSourceValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ConfigSourceValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ConfigSourceValidationError) ErrorName() string { return "ConfigSourceValidationError" } + +// Error satisfies the builtin error interface +func (e ConfigSourceValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sConfigSource.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ConfigSourceValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ConfigSourceValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/event_service_config.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/event_service_config.pb.go new file mode 100644 index 000000000..e7badc9a4 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/event_service_config.pb.go @@ -0,0 +1,118 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/core/v3/event_service_config.proto + +package envoy_config_core_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type EventServiceConfig struct { + // Types that are valid to be assigned to ConfigSourceSpecifier: + // *EventServiceConfig_GrpcService + ConfigSourceSpecifier isEventServiceConfig_ConfigSourceSpecifier `protobuf_oneof:"config_source_specifier"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *EventServiceConfig) Reset() { *m = EventServiceConfig{} } +func (m *EventServiceConfig) String() string { return proto.CompactTextString(m) } +func (*EventServiceConfig) ProtoMessage() {} +func (*EventServiceConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_8ac21a54a741b487, []int{0} +} + +func (m *EventServiceConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_EventServiceConfig.Unmarshal(m, b) +} +func (m *EventServiceConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_EventServiceConfig.Marshal(b, m, deterministic) +} +func (m *EventServiceConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventServiceConfig.Merge(m, src) +} +func (m *EventServiceConfig) XXX_Size() int { + return xxx_messageInfo_EventServiceConfig.Size(m) +} +func (m *EventServiceConfig) XXX_DiscardUnknown() { + xxx_messageInfo_EventServiceConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_EventServiceConfig proto.InternalMessageInfo + +type isEventServiceConfig_ConfigSourceSpecifier interface { + isEventServiceConfig_ConfigSourceSpecifier() +} + +type EventServiceConfig_GrpcService struct { + GrpcService *GrpcService `protobuf:"bytes,1,opt,name=grpc_service,json=grpcService,proto3,oneof"` +} + +func (*EventServiceConfig_GrpcService) isEventServiceConfig_ConfigSourceSpecifier() {} + +func (m *EventServiceConfig) GetConfigSourceSpecifier() isEventServiceConfig_ConfigSourceSpecifier { + if m != nil { + return m.ConfigSourceSpecifier + } + return nil +} + +func (m *EventServiceConfig) GetGrpcService() *GrpcService { + if x, ok := m.GetConfigSourceSpecifier().(*EventServiceConfig_GrpcService); ok { + return x.GrpcService + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*EventServiceConfig) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*EventServiceConfig_GrpcService)(nil), + } +} + +func init() { + proto.RegisterType((*EventServiceConfig)(nil), "envoy.config.core.v3.EventServiceConfig") +} + +func init() { + proto.RegisterFile("envoy/config/core/v3/event_service_config.proto", fileDescriptor_8ac21a54a741b487) +} + +var fileDescriptor_8ac21a54a741b487 = []byte{ + // 282 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x8f, 0xc1, 0x4a, 0xf4, 0x30, + 0x14, 0x85, 0xff, 0xcc, 0x0f, 0xb3, 0xc8, 0xb8, 0x90, 0x22, 0x54, 0x0a, 0x0e, 0xce, 0x20, 0x2a, + 0x08, 0x09, 0x4c, 0x77, 0x2e, 0x2b, 0x3a, 0x2e, 0x07, 0x7d, 0x80, 0x12, 0x33, 0x77, 0x4a, 0x40, + 0x72, 0x43, 0x92, 0x06, 0x67, 0xe7, 0xd2, 0x67, 0xf0, 0x0d, 0x7c, 0x05, 0xf7, 0x82, 0x5b, 0xdf, + 0xc6, 0xa5, 0xb4, 0xe9, 0xa0, 0xd0, 0xee, 0xda, 0x1c, 0xbe, 0x7b, 0xbe, 0x43, 0x39, 0xe8, 0x80, + 0x5b, 0x2e, 0x51, 0x6f, 0x54, 0xc5, 0x25, 0x5a, 0xe0, 0x21, 0xe7, 0x10, 0x40, 0xfb, 0xd2, 0x81, + 0x0d, 0x4a, 0x42, 0x19, 0x43, 0x66, 0x2c, 0x7a, 0x4c, 0x0e, 0x5a, 0x80, 0x75, 0x6f, 0x0d, 0xc0, + 0x42, 0x9e, 0x9d, 0x0d, 0x9e, 0xa9, 0xac, 0x91, 0xbb, 0x2b, 0x11, 0xcf, 0x8e, 0xea, 0xb5, 0x11, + 0x5c, 0x68, 0x8d, 0x5e, 0x78, 0x85, 0xda, 0x71, 0xe7, 0x85, 0xaf, 0x5d, 0x17, 0xcf, 0x7a, 0x71, + 0x00, 0xeb, 0x14, 0x6a, 0xa5, 0x3b, 0x81, 0x2c, 0x0d, 0xe2, 0x51, 0xad, 0x85, 0x07, 0xbe, 0xfb, + 0x88, 0xc1, 0xfc, 0x8d, 0xd0, 0xe4, 0xba, 0x11, 0xbf, 0x8f, 0x8d, 0x57, 0xad, 0x4c, 0x72, 0x43, + 0xf7, 0xfe, 0x7a, 0x1c, 0x92, 0x63, 0x72, 0x3e, 0x59, 0xcc, 0xd8, 0xd0, 0x0e, 0xb6, 0xb4, 0x46, + 0x76, 0xf8, 0xed, 0xbf, 0xbb, 0x49, 0xf5, 0xfb, 0x7b, 0x79, 0xf1, 0xfa, 0xf1, 0x32, 0x3d, 0xa5, + 0x27, 0x91, 0x13, 0x46, 0xb1, 0xb0, 0x88, 0x5c, 0xbf, 0xb4, 0x98, 0xd2, 0x34, 0x5e, 0x2e, 0x1d, + 0xd6, 0x56, 0x42, 0xe9, 0x0c, 0x48, 0xb5, 0x51, 0x60, 0x93, 0xff, 0xdf, 0x05, 0x29, 0x96, 0xef, + 0xcf, 0x9f, 0x5f, 0xe3, 0xd1, 0xfe, 0x88, 0xce, 0x15, 0x46, 0x15, 0x63, 0xf1, 0x69, 0x3b, 0x68, + 0x55, 0xa4, 0xfd, 0x86, 0x55, 0x33, 0x79, 0x45, 0x1e, 0xc6, 0xed, 0xf6, 0xfc, 0x27, 0x00, 0x00, + 0xff, 0xff, 0x8b, 0xa4, 0x85, 0x92, 0xc8, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/event_service_config.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/event_service_config.pb.validate.go new file mode 100644 index 000000000..f5501062d --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/event_service_config.pb.validate.go @@ -0,0 +1,126 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/core/v3/event_service_config.proto + +package envoy_config_core_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _event_service_config_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on EventServiceConfig with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *EventServiceConfig) Validate() error { + if m == nil { + return nil + } + + switch m.ConfigSourceSpecifier.(type) { + + case *EventServiceConfig_GrpcService: + + if v, ok := interface{}(m.GetGrpcService()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return EventServiceConfigValidationError{ + field: "GrpcService", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return EventServiceConfigValidationError{ + field: "ConfigSourceSpecifier", + reason: "value is required", + } + + } + + return nil +} + +// EventServiceConfigValidationError is the validation error returned by +// EventServiceConfig.Validate if the designated constraints aren't met. +type EventServiceConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e EventServiceConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e EventServiceConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e EventServiceConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e EventServiceConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e EventServiceConfigValidationError) ErrorName() string { + return "EventServiceConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e EventServiceConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sEventServiceConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = EventServiceConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = EventServiceConfigValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/grpc_method_list.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/grpc_method_list.pb.go new file mode 100644 index 000000000..00b313bea --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/grpc_method_list.pb.go @@ -0,0 +1,142 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/core/v3/grpc_method_list.proto + +package envoy_config_core_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type GrpcMethodList struct { + Services []*GrpcMethodList_Service `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GrpcMethodList) Reset() { *m = GrpcMethodList{} } +func (m *GrpcMethodList) String() string { return proto.CompactTextString(m) } +func (*GrpcMethodList) ProtoMessage() {} +func (*GrpcMethodList) Descriptor() ([]byte, []int) { + return fileDescriptor_d981ee1c8b523d47, []int{0} +} + +func (m *GrpcMethodList) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GrpcMethodList.Unmarshal(m, b) +} +func (m *GrpcMethodList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GrpcMethodList.Marshal(b, m, deterministic) +} +func (m *GrpcMethodList) XXX_Merge(src proto.Message) { + xxx_messageInfo_GrpcMethodList.Merge(m, src) +} +func (m *GrpcMethodList) XXX_Size() int { + return xxx_messageInfo_GrpcMethodList.Size(m) +} +func (m *GrpcMethodList) XXX_DiscardUnknown() { + xxx_messageInfo_GrpcMethodList.DiscardUnknown(m) +} + +var xxx_messageInfo_GrpcMethodList proto.InternalMessageInfo + +func (m *GrpcMethodList) GetServices() []*GrpcMethodList_Service { + if m != nil { + return m.Services + } + return nil +} + +type GrpcMethodList_Service struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + MethodNames []string `protobuf:"bytes,2,rep,name=method_names,json=methodNames,proto3" json:"method_names,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GrpcMethodList_Service) Reset() { *m = GrpcMethodList_Service{} } +func (m *GrpcMethodList_Service) String() string { return proto.CompactTextString(m) } +func (*GrpcMethodList_Service) ProtoMessage() {} +func (*GrpcMethodList_Service) Descriptor() ([]byte, []int) { + return fileDescriptor_d981ee1c8b523d47, []int{0, 0} +} + +func (m *GrpcMethodList_Service) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GrpcMethodList_Service.Unmarshal(m, b) +} +func (m *GrpcMethodList_Service) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GrpcMethodList_Service.Marshal(b, m, deterministic) +} +func (m *GrpcMethodList_Service) XXX_Merge(src proto.Message) { + xxx_messageInfo_GrpcMethodList_Service.Merge(m, src) +} +func (m *GrpcMethodList_Service) XXX_Size() int { + return xxx_messageInfo_GrpcMethodList_Service.Size(m) +} +func (m *GrpcMethodList_Service) XXX_DiscardUnknown() { + xxx_messageInfo_GrpcMethodList_Service.DiscardUnknown(m) +} + +var xxx_messageInfo_GrpcMethodList_Service proto.InternalMessageInfo + +func (m *GrpcMethodList_Service) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *GrpcMethodList_Service) GetMethodNames() []string { + if m != nil { + return m.MethodNames + } + return nil +} + +func init() { + proto.RegisterType((*GrpcMethodList)(nil), "envoy.config.core.v3.GrpcMethodList") + proto.RegisterType((*GrpcMethodList_Service)(nil), "envoy.config.core.v3.GrpcMethodList.Service") +} + +func init() { + proto.RegisterFile("envoy/config/core/v3/grpc_method_list.proto", fileDescriptor_d981ee1c8b523d47) +} + +var fileDescriptor_d981ee1c8b523d47 = []byte{ + // 320 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x90, 0x3f, 0x4b, 0x03, 0x31, + 0x18, 0xc6, 0x49, 0x5a, 0xfb, 0x27, 0x15, 0x91, 0x53, 0xb0, 0x54, 0x94, 0xb3, 0x8b, 0x87, 0x95, + 0x04, 0xda, 0xad, 0x63, 0x1c, 0x74, 0x50, 0x29, 0xf5, 0x03, 0x94, 0x78, 0x8d, 0x35, 0xd0, 0x26, + 0x21, 0x49, 0x83, 0xdd, 0x1c, 0x1c, 0xc4, 0xd1, 0xd1, 0x8f, 0xe2, 0x2e, 0xb8, 0xfa, 0x75, 0x3a, + 0xc9, 0x5d, 0xaa, 0x50, 0x3c, 0x70, 0x4b, 0xde, 0xe7, 0xf9, 0xc1, 0xef, 0x7d, 0x51, 0x87, 0x4b, + 0xaf, 0x16, 0x24, 0x55, 0xf2, 0x4e, 0x4c, 0x48, 0xaa, 0x0c, 0x27, 0xbe, 0x47, 0x26, 0x46, 0xa7, + 0xa3, 0x19, 0x77, 0xf7, 0x6a, 0x3c, 0x9a, 0x0a, 0xeb, 0xb0, 0x36, 0xca, 0xa9, 0x68, 0x37, 0x2f, + 0xe3, 0x50, 0xc6, 0x59, 0x19, 0xfb, 0x5e, 0xeb, 0x60, 0x3e, 0xd6, 0x8c, 0x30, 0x29, 0x95, 0x63, + 0x4e, 0x28, 0x69, 0x89, 0x75, 0xcc, 0xcd, 0x6d, 0x80, 0x5a, 0x47, 0x7f, 0x62, 0xcf, 0x8d, 0x15, + 0x4a, 0x0a, 0x39, 0x59, 0x55, 0xf6, 0x3c, 0x9b, 0x8a, 0x31, 0x73, 0x9c, 0xfc, 0x3c, 0x42, 0xd0, + 0x7e, 0x81, 0x68, 0xeb, 0xdc, 0xe8, 0xf4, 0x2a, 0x57, 0xb9, 0x14, 0xd6, 0x45, 0x17, 0xa8, 0x66, + 0xb9, 0xf1, 0x22, 0xe5, 0xb6, 0x09, 0xe2, 0x52, 0xd2, 0xe8, 0x9e, 0xe2, 0x22, 0x2d, 0xbc, 0xce, + 0xe1, 0x9b, 0x00, 0x0d, 0x7f, 0xe9, 0xd6, 0x13, 0x40, 0xd5, 0xd5, 0x34, 0xda, 0x47, 0x65, 0xc9, + 0x66, 0xbc, 0x09, 0x62, 0x90, 0xd4, 0x69, 0x75, 0x49, 0xcb, 0x06, 0xc6, 0x60, 0x98, 0x0f, 0xa3, + 0x0e, 0xda, 0x5c, 0xdd, 0x22, 0xfb, 0xda, 0x26, 0x8c, 0x4b, 0x49, 0x9d, 0xd6, 0x96, 0x74, 0xe3, + 0x15, 0xc0, 0x1a, 0x18, 0x36, 0x42, 0x7a, 0x9d, 0x85, 0x7d, 0xf2, 0xf6, 0xf1, 0x7c, 0x78, 0x82, + 0x92, 0xe0, 0xc4, 0xb4, 0xc0, 0xbe, 0x1b, 0x9c, 0x8a, 0x85, 0xfa, 0xc7, 0x19, 0xd0, 0x46, 0xf1, + 0x7f, 0x00, 0x3d, 0x7b, 0x7f, 0xfc, 0xfc, 0xaa, 0xc0, 0x6d, 0x88, 0xda, 0x42, 0x85, 0x9d, 0xb5, + 0x51, 0x0f, 0x8b, 0xc2, 0xf5, 0xe9, 0xce, 0x3a, 0x3d, 0xc8, 0xee, 0x39, 0x00, 0xb7, 0x95, 0xfc, + 0xb0, 0xbd, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xba, 0x70, 0xf8, 0x4d, 0xf8, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/grpc_method_list.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/grpc_method_list.pb.validate.go new file mode 100644 index 000000000..de984cffc --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/grpc_method_list.pb.validate.go @@ -0,0 +1,198 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/core/v3/grpc_method_list.proto + +package envoy_config_core_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _grpc_method_list_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on GrpcMethodList with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *GrpcMethodList) Validate() error { + if m == nil { + return nil + } + + for idx, item := range m.GetServices() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcMethodListValidationError{ + field: fmt.Sprintf("Services[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// GrpcMethodListValidationError is the validation error returned by +// GrpcMethodList.Validate if the designated constraints aren't met. +type GrpcMethodListValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GrpcMethodListValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GrpcMethodListValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GrpcMethodListValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GrpcMethodListValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GrpcMethodListValidationError) ErrorName() string { return "GrpcMethodListValidationError" } + +// Error satisfies the builtin error interface +func (e GrpcMethodListValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGrpcMethodList.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GrpcMethodListValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GrpcMethodListValidationError{} + +// Validate checks the field values on GrpcMethodList_Service with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *GrpcMethodList_Service) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return GrpcMethodList_ServiceValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + if len(m.GetMethodNames()) < 1 { + return GrpcMethodList_ServiceValidationError{ + field: "MethodNames", + reason: "value must contain at least 1 item(s)", + } + } + + return nil +} + +// GrpcMethodList_ServiceValidationError is the validation error returned by +// GrpcMethodList_Service.Validate if the designated constraints aren't met. +type GrpcMethodList_ServiceValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GrpcMethodList_ServiceValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GrpcMethodList_ServiceValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GrpcMethodList_ServiceValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GrpcMethodList_ServiceValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GrpcMethodList_ServiceValidationError) ErrorName() string { + return "GrpcMethodList_ServiceValidationError" +} + +// Error satisfies the builtin error interface +func (e GrpcMethodList_ServiceValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGrpcMethodList_Service.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GrpcMethodList_ServiceValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GrpcMethodList_ServiceValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/grpc_service.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/grpc_service.pb.go new file mode 100644 index 000000000..73ab14580 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/grpc_service.pb.go @@ -0,0 +1,1012 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/core/v3/grpc_service.proto + +package envoy_config_core_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + any "github.com/golang/protobuf/ptypes/any" + duration "github.com/golang/protobuf/ptypes/duration" + empty "github.com/golang/protobuf/ptypes/empty" + _struct "github.com/golang/protobuf/ptypes/struct" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type GrpcService struct { + // Types that are valid to be assigned to TargetSpecifier: + // *GrpcService_EnvoyGrpc_ + // *GrpcService_GoogleGrpc_ + TargetSpecifier isGrpcService_TargetSpecifier `protobuf_oneof:"target_specifier"` + Timeout *duration.Duration `protobuf:"bytes,3,opt,name=timeout,proto3" json:"timeout,omitempty"` + InitialMetadata []*HeaderValue `protobuf:"bytes,5,rep,name=initial_metadata,json=initialMetadata,proto3" json:"initial_metadata,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GrpcService) Reset() { *m = GrpcService{} } +func (m *GrpcService) String() string { return proto.CompactTextString(m) } +func (*GrpcService) ProtoMessage() {} +func (*GrpcService) Descriptor() ([]byte, []int) { + return fileDescriptor_5fda5a40ec4afc3b, []int{0} +} + +func (m *GrpcService) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GrpcService.Unmarshal(m, b) +} +func (m *GrpcService) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GrpcService.Marshal(b, m, deterministic) +} +func (m *GrpcService) XXX_Merge(src proto.Message) { + xxx_messageInfo_GrpcService.Merge(m, src) +} +func (m *GrpcService) XXX_Size() int { + return xxx_messageInfo_GrpcService.Size(m) +} +func (m *GrpcService) XXX_DiscardUnknown() { + xxx_messageInfo_GrpcService.DiscardUnknown(m) +} + +var xxx_messageInfo_GrpcService proto.InternalMessageInfo + +type isGrpcService_TargetSpecifier interface { + isGrpcService_TargetSpecifier() +} + +type GrpcService_EnvoyGrpc_ struct { + EnvoyGrpc *GrpcService_EnvoyGrpc `protobuf:"bytes,1,opt,name=envoy_grpc,json=envoyGrpc,proto3,oneof"` +} + +type GrpcService_GoogleGrpc_ struct { + GoogleGrpc *GrpcService_GoogleGrpc `protobuf:"bytes,2,opt,name=google_grpc,json=googleGrpc,proto3,oneof"` +} + +func (*GrpcService_EnvoyGrpc_) isGrpcService_TargetSpecifier() {} + +func (*GrpcService_GoogleGrpc_) isGrpcService_TargetSpecifier() {} + +func (m *GrpcService) GetTargetSpecifier() isGrpcService_TargetSpecifier { + if m != nil { + return m.TargetSpecifier + } + return nil +} + +func (m *GrpcService) GetEnvoyGrpc() *GrpcService_EnvoyGrpc { + if x, ok := m.GetTargetSpecifier().(*GrpcService_EnvoyGrpc_); ok { + return x.EnvoyGrpc + } + return nil +} + +func (m *GrpcService) GetGoogleGrpc() *GrpcService_GoogleGrpc { + if x, ok := m.GetTargetSpecifier().(*GrpcService_GoogleGrpc_); ok { + return x.GoogleGrpc + } + return nil +} + +func (m *GrpcService) GetTimeout() *duration.Duration { + if m != nil { + return m.Timeout + } + return nil +} + +func (m *GrpcService) GetInitialMetadata() []*HeaderValue { + if m != nil { + return m.InitialMetadata + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*GrpcService) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*GrpcService_EnvoyGrpc_)(nil), + (*GrpcService_GoogleGrpc_)(nil), + } +} + +type GrpcService_EnvoyGrpc struct { + ClusterName string `protobuf:"bytes,1,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GrpcService_EnvoyGrpc) Reset() { *m = GrpcService_EnvoyGrpc{} } +func (m *GrpcService_EnvoyGrpc) String() string { return proto.CompactTextString(m) } +func (*GrpcService_EnvoyGrpc) ProtoMessage() {} +func (*GrpcService_EnvoyGrpc) Descriptor() ([]byte, []int) { + return fileDescriptor_5fda5a40ec4afc3b, []int{0, 0} +} + +func (m *GrpcService_EnvoyGrpc) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GrpcService_EnvoyGrpc.Unmarshal(m, b) +} +func (m *GrpcService_EnvoyGrpc) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GrpcService_EnvoyGrpc.Marshal(b, m, deterministic) +} +func (m *GrpcService_EnvoyGrpc) XXX_Merge(src proto.Message) { + xxx_messageInfo_GrpcService_EnvoyGrpc.Merge(m, src) +} +func (m *GrpcService_EnvoyGrpc) XXX_Size() int { + return xxx_messageInfo_GrpcService_EnvoyGrpc.Size(m) +} +func (m *GrpcService_EnvoyGrpc) XXX_DiscardUnknown() { + xxx_messageInfo_GrpcService_EnvoyGrpc.DiscardUnknown(m) +} + +var xxx_messageInfo_GrpcService_EnvoyGrpc proto.InternalMessageInfo + +func (m *GrpcService_EnvoyGrpc) GetClusterName() string { + if m != nil { + return m.ClusterName + } + return "" +} + +type GrpcService_GoogleGrpc struct { + TargetUri string `protobuf:"bytes,1,opt,name=target_uri,json=targetUri,proto3" json:"target_uri,omitempty"` + ChannelCredentials *GrpcService_GoogleGrpc_ChannelCredentials `protobuf:"bytes,2,opt,name=channel_credentials,json=channelCredentials,proto3" json:"channel_credentials,omitempty"` + CallCredentials []*GrpcService_GoogleGrpc_CallCredentials `protobuf:"bytes,3,rep,name=call_credentials,json=callCredentials,proto3" json:"call_credentials,omitempty"` + StatPrefix string `protobuf:"bytes,4,opt,name=stat_prefix,json=statPrefix,proto3" json:"stat_prefix,omitempty"` + CredentialsFactoryName string `protobuf:"bytes,5,opt,name=credentials_factory_name,json=credentialsFactoryName,proto3" json:"credentials_factory_name,omitempty"` + Config *_struct.Struct `protobuf:"bytes,6,opt,name=config,proto3" json:"config,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GrpcService_GoogleGrpc) Reset() { *m = GrpcService_GoogleGrpc{} } +func (m *GrpcService_GoogleGrpc) String() string { return proto.CompactTextString(m) } +func (*GrpcService_GoogleGrpc) ProtoMessage() {} +func (*GrpcService_GoogleGrpc) Descriptor() ([]byte, []int) { + return fileDescriptor_5fda5a40ec4afc3b, []int{0, 1} +} + +func (m *GrpcService_GoogleGrpc) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GrpcService_GoogleGrpc.Unmarshal(m, b) +} +func (m *GrpcService_GoogleGrpc) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GrpcService_GoogleGrpc.Marshal(b, m, deterministic) +} +func (m *GrpcService_GoogleGrpc) XXX_Merge(src proto.Message) { + xxx_messageInfo_GrpcService_GoogleGrpc.Merge(m, src) +} +func (m *GrpcService_GoogleGrpc) XXX_Size() int { + return xxx_messageInfo_GrpcService_GoogleGrpc.Size(m) +} +func (m *GrpcService_GoogleGrpc) XXX_DiscardUnknown() { + xxx_messageInfo_GrpcService_GoogleGrpc.DiscardUnknown(m) +} + +var xxx_messageInfo_GrpcService_GoogleGrpc proto.InternalMessageInfo + +func (m *GrpcService_GoogleGrpc) GetTargetUri() string { + if m != nil { + return m.TargetUri + } + return "" +} + +func (m *GrpcService_GoogleGrpc) GetChannelCredentials() *GrpcService_GoogleGrpc_ChannelCredentials { + if m != nil { + return m.ChannelCredentials + } + return nil +} + +func (m *GrpcService_GoogleGrpc) GetCallCredentials() []*GrpcService_GoogleGrpc_CallCredentials { + if m != nil { + return m.CallCredentials + } + return nil +} + +func (m *GrpcService_GoogleGrpc) GetStatPrefix() string { + if m != nil { + return m.StatPrefix + } + return "" +} + +func (m *GrpcService_GoogleGrpc) GetCredentialsFactoryName() string { + if m != nil { + return m.CredentialsFactoryName + } + return "" +} + +func (m *GrpcService_GoogleGrpc) GetConfig() *_struct.Struct { + if m != nil { + return m.Config + } + return nil +} + +type GrpcService_GoogleGrpc_SslCredentials struct { + RootCerts *DataSource `protobuf:"bytes,1,opt,name=root_certs,json=rootCerts,proto3" json:"root_certs,omitempty"` + PrivateKey *DataSource `protobuf:"bytes,2,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"` + CertChain *DataSource `protobuf:"bytes,3,opt,name=cert_chain,json=certChain,proto3" json:"cert_chain,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GrpcService_GoogleGrpc_SslCredentials) Reset() { *m = GrpcService_GoogleGrpc_SslCredentials{} } +func (m *GrpcService_GoogleGrpc_SslCredentials) String() string { return proto.CompactTextString(m) } +func (*GrpcService_GoogleGrpc_SslCredentials) ProtoMessage() {} +func (*GrpcService_GoogleGrpc_SslCredentials) Descriptor() ([]byte, []int) { + return fileDescriptor_5fda5a40ec4afc3b, []int{0, 1, 0} +} + +func (m *GrpcService_GoogleGrpc_SslCredentials) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GrpcService_GoogleGrpc_SslCredentials.Unmarshal(m, b) +} +func (m *GrpcService_GoogleGrpc_SslCredentials) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GrpcService_GoogleGrpc_SslCredentials.Marshal(b, m, deterministic) +} +func (m *GrpcService_GoogleGrpc_SslCredentials) XXX_Merge(src proto.Message) { + xxx_messageInfo_GrpcService_GoogleGrpc_SslCredentials.Merge(m, src) +} +func (m *GrpcService_GoogleGrpc_SslCredentials) XXX_Size() int { + return xxx_messageInfo_GrpcService_GoogleGrpc_SslCredentials.Size(m) +} +func (m *GrpcService_GoogleGrpc_SslCredentials) XXX_DiscardUnknown() { + xxx_messageInfo_GrpcService_GoogleGrpc_SslCredentials.DiscardUnknown(m) +} + +var xxx_messageInfo_GrpcService_GoogleGrpc_SslCredentials proto.InternalMessageInfo + +func (m *GrpcService_GoogleGrpc_SslCredentials) GetRootCerts() *DataSource { + if m != nil { + return m.RootCerts + } + return nil +} + +func (m *GrpcService_GoogleGrpc_SslCredentials) GetPrivateKey() *DataSource { + if m != nil { + return m.PrivateKey + } + return nil +} + +func (m *GrpcService_GoogleGrpc_SslCredentials) GetCertChain() *DataSource { + if m != nil { + return m.CertChain + } + return nil +} + +type GrpcService_GoogleGrpc_GoogleLocalCredentials struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GrpcService_GoogleGrpc_GoogleLocalCredentials) Reset() { + *m = GrpcService_GoogleGrpc_GoogleLocalCredentials{} +} +func (m *GrpcService_GoogleGrpc_GoogleLocalCredentials) String() string { + return proto.CompactTextString(m) +} +func (*GrpcService_GoogleGrpc_GoogleLocalCredentials) ProtoMessage() {} +func (*GrpcService_GoogleGrpc_GoogleLocalCredentials) Descriptor() ([]byte, []int) { + return fileDescriptor_5fda5a40ec4afc3b, []int{0, 1, 1} +} + +func (m *GrpcService_GoogleGrpc_GoogleLocalCredentials) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GrpcService_GoogleGrpc_GoogleLocalCredentials.Unmarshal(m, b) +} +func (m *GrpcService_GoogleGrpc_GoogleLocalCredentials) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GrpcService_GoogleGrpc_GoogleLocalCredentials.Marshal(b, m, deterministic) +} +func (m *GrpcService_GoogleGrpc_GoogleLocalCredentials) XXX_Merge(src proto.Message) { + xxx_messageInfo_GrpcService_GoogleGrpc_GoogleLocalCredentials.Merge(m, src) +} +func (m *GrpcService_GoogleGrpc_GoogleLocalCredentials) XXX_Size() int { + return xxx_messageInfo_GrpcService_GoogleGrpc_GoogleLocalCredentials.Size(m) +} +func (m *GrpcService_GoogleGrpc_GoogleLocalCredentials) XXX_DiscardUnknown() { + xxx_messageInfo_GrpcService_GoogleGrpc_GoogleLocalCredentials.DiscardUnknown(m) +} + +var xxx_messageInfo_GrpcService_GoogleGrpc_GoogleLocalCredentials proto.InternalMessageInfo + +type GrpcService_GoogleGrpc_ChannelCredentials struct { + // Types that are valid to be assigned to CredentialSpecifier: + // *GrpcService_GoogleGrpc_ChannelCredentials_SslCredentials + // *GrpcService_GoogleGrpc_ChannelCredentials_GoogleDefault + // *GrpcService_GoogleGrpc_ChannelCredentials_LocalCredentials + CredentialSpecifier isGrpcService_GoogleGrpc_ChannelCredentials_CredentialSpecifier `protobuf_oneof:"credential_specifier"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GrpcService_GoogleGrpc_ChannelCredentials) Reset() { + *m = GrpcService_GoogleGrpc_ChannelCredentials{} +} +func (m *GrpcService_GoogleGrpc_ChannelCredentials) String() string { return proto.CompactTextString(m) } +func (*GrpcService_GoogleGrpc_ChannelCredentials) ProtoMessage() {} +func (*GrpcService_GoogleGrpc_ChannelCredentials) Descriptor() ([]byte, []int) { + return fileDescriptor_5fda5a40ec4afc3b, []int{0, 1, 2} +} + +func (m *GrpcService_GoogleGrpc_ChannelCredentials) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GrpcService_GoogleGrpc_ChannelCredentials.Unmarshal(m, b) +} +func (m *GrpcService_GoogleGrpc_ChannelCredentials) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GrpcService_GoogleGrpc_ChannelCredentials.Marshal(b, m, deterministic) +} +func (m *GrpcService_GoogleGrpc_ChannelCredentials) XXX_Merge(src proto.Message) { + xxx_messageInfo_GrpcService_GoogleGrpc_ChannelCredentials.Merge(m, src) +} +func (m *GrpcService_GoogleGrpc_ChannelCredentials) XXX_Size() int { + return xxx_messageInfo_GrpcService_GoogleGrpc_ChannelCredentials.Size(m) +} +func (m *GrpcService_GoogleGrpc_ChannelCredentials) XXX_DiscardUnknown() { + xxx_messageInfo_GrpcService_GoogleGrpc_ChannelCredentials.DiscardUnknown(m) +} + +var xxx_messageInfo_GrpcService_GoogleGrpc_ChannelCredentials proto.InternalMessageInfo + +type isGrpcService_GoogleGrpc_ChannelCredentials_CredentialSpecifier interface { + isGrpcService_GoogleGrpc_ChannelCredentials_CredentialSpecifier() +} + +type GrpcService_GoogleGrpc_ChannelCredentials_SslCredentials struct { + SslCredentials *GrpcService_GoogleGrpc_SslCredentials `protobuf:"bytes,1,opt,name=ssl_credentials,json=sslCredentials,proto3,oneof"` +} + +type GrpcService_GoogleGrpc_ChannelCredentials_GoogleDefault struct { + GoogleDefault *empty.Empty `protobuf:"bytes,2,opt,name=google_default,json=googleDefault,proto3,oneof"` +} + +type GrpcService_GoogleGrpc_ChannelCredentials_LocalCredentials struct { + LocalCredentials *GrpcService_GoogleGrpc_GoogleLocalCredentials `protobuf:"bytes,3,opt,name=local_credentials,json=localCredentials,proto3,oneof"` +} + +func (*GrpcService_GoogleGrpc_ChannelCredentials_SslCredentials) isGrpcService_GoogleGrpc_ChannelCredentials_CredentialSpecifier() { +} + +func (*GrpcService_GoogleGrpc_ChannelCredentials_GoogleDefault) isGrpcService_GoogleGrpc_ChannelCredentials_CredentialSpecifier() { +} + +func (*GrpcService_GoogleGrpc_ChannelCredentials_LocalCredentials) isGrpcService_GoogleGrpc_ChannelCredentials_CredentialSpecifier() { +} + +func (m *GrpcService_GoogleGrpc_ChannelCredentials) GetCredentialSpecifier() isGrpcService_GoogleGrpc_ChannelCredentials_CredentialSpecifier { + if m != nil { + return m.CredentialSpecifier + } + return nil +} + +func (m *GrpcService_GoogleGrpc_ChannelCredentials) GetSslCredentials() *GrpcService_GoogleGrpc_SslCredentials { + if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_ChannelCredentials_SslCredentials); ok { + return x.SslCredentials + } + return nil +} + +func (m *GrpcService_GoogleGrpc_ChannelCredentials) GetGoogleDefault() *empty.Empty { + if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_ChannelCredentials_GoogleDefault); ok { + return x.GoogleDefault + } + return nil +} + +func (m *GrpcService_GoogleGrpc_ChannelCredentials) GetLocalCredentials() *GrpcService_GoogleGrpc_GoogleLocalCredentials { + if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_ChannelCredentials_LocalCredentials); ok { + return x.LocalCredentials + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*GrpcService_GoogleGrpc_ChannelCredentials) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*GrpcService_GoogleGrpc_ChannelCredentials_SslCredentials)(nil), + (*GrpcService_GoogleGrpc_ChannelCredentials_GoogleDefault)(nil), + (*GrpcService_GoogleGrpc_ChannelCredentials_LocalCredentials)(nil), + } +} + +type GrpcService_GoogleGrpc_CallCredentials struct { + // Types that are valid to be assigned to CredentialSpecifier: + // *GrpcService_GoogleGrpc_CallCredentials_AccessToken + // *GrpcService_GoogleGrpc_CallCredentials_GoogleComputeEngine + // *GrpcService_GoogleGrpc_CallCredentials_GoogleRefreshToken + // *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJwtAccess + // *GrpcService_GoogleGrpc_CallCredentials_GoogleIam + // *GrpcService_GoogleGrpc_CallCredentials_FromPlugin + // *GrpcService_GoogleGrpc_CallCredentials_StsService_ + CredentialSpecifier isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier `protobuf_oneof:"credential_specifier"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GrpcService_GoogleGrpc_CallCredentials) Reset() { + *m = GrpcService_GoogleGrpc_CallCredentials{} +} +func (m *GrpcService_GoogleGrpc_CallCredentials) String() string { return proto.CompactTextString(m) } +func (*GrpcService_GoogleGrpc_CallCredentials) ProtoMessage() {} +func (*GrpcService_GoogleGrpc_CallCredentials) Descriptor() ([]byte, []int) { + return fileDescriptor_5fda5a40ec4afc3b, []int{0, 1, 3} +} + +func (m *GrpcService_GoogleGrpc_CallCredentials) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials.Unmarshal(m, b) +} +func (m *GrpcService_GoogleGrpc_CallCredentials) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials.Marshal(b, m, deterministic) +} +func (m *GrpcService_GoogleGrpc_CallCredentials) XXX_Merge(src proto.Message) { + xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials.Merge(m, src) +} +func (m *GrpcService_GoogleGrpc_CallCredentials) XXX_Size() int { + return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials.Size(m) +} +func (m *GrpcService_GoogleGrpc_CallCredentials) XXX_DiscardUnknown() { + xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials.DiscardUnknown(m) +} + +var xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials proto.InternalMessageInfo + +type isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier interface { + isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier() +} + +type GrpcService_GoogleGrpc_CallCredentials_AccessToken struct { + AccessToken string `protobuf:"bytes,1,opt,name=access_token,json=accessToken,proto3,oneof"` +} + +type GrpcService_GoogleGrpc_CallCredentials_GoogleComputeEngine struct { + GoogleComputeEngine *empty.Empty `protobuf:"bytes,2,opt,name=google_compute_engine,json=googleComputeEngine,proto3,oneof"` +} + +type GrpcService_GoogleGrpc_CallCredentials_GoogleRefreshToken struct { + GoogleRefreshToken string `protobuf:"bytes,3,opt,name=google_refresh_token,json=googleRefreshToken,proto3,oneof"` +} + +type GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJwtAccess struct { + ServiceAccountJwtAccess *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials `protobuf:"bytes,4,opt,name=service_account_jwt_access,json=serviceAccountJwtAccess,proto3,oneof"` +} + +type GrpcService_GoogleGrpc_CallCredentials_GoogleIam struct { + GoogleIam *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials `protobuf:"bytes,5,opt,name=google_iam,json=googleIam,proto3,oneof"` +} + +type GrpcService_GoogleGrpc_CallCredentials_FromPlugin struct { + FromPlugin *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin `protobuf:"bytes,6,opt,name=from_plugin,json=fromPlugin,proto3,oneof"` +} + +type GrpcService_GoogleGrpc_CallCredentials_StsService_ struct { + StsService *GrpcService_GoogleGrpc_CallCredentials_StsService `protobuf:"bytes,7,opt,name=sts_service,json=stsService,proto3,oneof"` +} + +func (*GrpcService_GoogleGrpc_CallCredentials_AccessToken) isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier() { +} + +func (*GrpcService_GoogleGrpc_CallCredentials_GoogleComputeEngine) isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier() { +} + +func (*GrpcService_GoogleGrpc_CallCredentials_GoogleRefreshToken) isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier() { +} + +func (*GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJwtAccess) isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier() { +} + +func (*GrpcService_GoogleGrpc_CallCredentials_GoogleIam) isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier() { +} + +func (*GrpcService_GoogleGrpc_CallCredentials_FromPlugin) isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier() { +} + +func (*GrpcService_GoogleGrpc_CallCredentials_StsService_) isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier() { +} + +func (m *GrpcService_GoogleGrpc_CallCredentials) GetCredentialSpecifier() isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier { + if m != nil { + return m.CredentialSpecifier + } + return nil +} + +func (m *GrpcService_GoogleGrpc_CallCredentials) GetAccessToken() string { + if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_CallCredentials_AccessToken); ok { + return x.AccessToken + } + return "" +} + +func (m *GrpcService_GoogleGrpc_CallCredentials) GetGoogleComputeEngine() *empty.Empty { + if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_CallCredentials_GoogleComputeEngine); ok { + return x.GoogleComputeEngine + } + return nil +} + +func (m *GrpcService_GoogleGrpc_CallCredentials) GetGoogleRefreshToken() string { + if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_CallCredentials_GoogleRefreshToken); ok { + return x.GoogleRefreshToken + } + return "" +} + +func (m *GrpcService_GoogleGrpc_CallCredentials) GetServiceAccountJwtAccess() *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials { + if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJwtAccess); ok { + return x.ServiceAccountJwtAccess + } + return nil +} + +func (m *GrpcService_GoogleGrpc_CallCredentials) GetGoogleIam() *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials { + if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_CallCredentials_GoogleIam); ok { + return x.GoogleIam + } + return nil +} + +func (m *GrpcService_GoogleGrpc_CallCredentials) GetFromPlugin() *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin { + if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_CallCredentials_FromPlugin); ok { + return x.FromPlugin + } + return nil +} + +func (m *GrpcService_GoogleGrpc_CallCredentials) GetStsService() *GrpcService_GoogleGrpc_CallCredentials_StsService { + if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_CallCredentials_StsService_); ok { + return x.StsService + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*GrpcService_GoogleGrpc_CallCredentials) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*GrpcService_GoogleGrpc_CallCredentials_AccessToken)(nil), + (*GrpcService_GoogleGrpc_CallCredentials_GoogleComputeEngine)(nil), + (*GrpcService_GoogleGrpc_CallCredentials_GoogleRefreshToken)(nil), + (*GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJwtAccess)(nil), + (*GrpcService_GoogleGrpc_CallCredentials_GoogleIam)(nil), + (*GrpcService_GoogleGrpc_CallCredentials_FromPlugin)(nil), + (*GrpcService_GoogleGrpc_CallCredentials_StsService_)(nil), + } +} + +type GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials struct { + JsonKey string `protobuf:"bytes,1,opt,name=json_key,json=jsonKey,proto3" json:"json_key,omitempty"` + TokenLifetimeSeconds uint64 `protobuf:"varint,2,opt,name=token_lifetime_seconds,json=tokenLifetimeSeconds,proto3" json:"token_lifetime_seconds,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) Reset() { + *m = GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials{} +} +func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) String() string { + return proto.CompactTextString(m) +} +func (*GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) ProtoMessage() {} +func (*GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) Descriptor() ([]byte, []int) { + return fileDescriptor_5fda5a40ec4afc3b, []int{0, 1, 3, 0} +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials.Unmarshal(m, b) +} +func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials.Marshal(b, m, deterministic) +} +func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) XXX_Merge(src proto.Message) { + xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials.Merge(m, src) +} +func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) XXX_Size() int { + return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials.Size(m) +} +func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) XXX_DiscardUnknown() { + xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials.DiscardUnknown(m) +} + +var xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials proto.InternalMessageInfo + +func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) GetJsonKey() string { + if m != nil { + return m.JsonKey + } + return "" +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) GetTokenLifetimeSeconds() uint64 { + if m != nil { + return m.TokenLifetimeSeconds + } + return 0 +} + +type GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials struct { + AuthorizationToken string `protobuf:"bytes,1,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"` + AuthoritySelector string `protobuf:"bytes,2,opt,name=authority_selector,json=authoritySelector,proto3" json:"authority_selector,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) Reset() { + *m = GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials{} +} +func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) String() string { + return proto.CompactTextString(m) +} +func (*GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) ProtoMessage() {} +func (*GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) Descriptor() ([]byte, []int) { + return fileDescriptor_5fda5a40ec4afc3b, []int{0, 1, 3, 1} +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials.Unmarshal(m, b) +} +func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials.Marshal(b, m, deterministic) +} +func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) XXX_Merge(src proto.Message) { + xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials.Merge(m, src) +} +func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) XXX_Size() int { + return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials.Size(m) +} +func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) XXX_DiscardUnknown() { + xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials.DiscardUnknown(m) +} + +var xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials proto.InternalMessageInfo + +func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) GetAuthorizationToken() string { + if m != nil { + return m.AuthorizationToken + } + return "" +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) GetAuthoritySelector() string { + if m != nil { + return m.AuthoritySelector + } + return "" +} + +type GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Types that are valid to be assigned to ConfigType: + // *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_HiddenEnvoyDeprecatedConfig + // *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_TypedConfig + ConfigType isGrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_ConfigType `protobuf_oneof:"config_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) Reset() { + *m = GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin{} +} +func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) String() string { + return proto.CompactTextString(m) +} +func (*GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) ProtoMessage() {} +func (*GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) Descriptor() ([]byte, []int) { + return fileDescriptor_5fda5a40ec4afc3b, []int{0, 1, 3, 2} +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin.Unmarshal(m, b) +} +func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin.Marshal(b, m, deterministic) +} +func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) XXX_Merge(src proto.Message) { + xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin.Merge(m, src) +} +func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) XXX_Size() int { + return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin.Size(m) +} +func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) XXX_DiscardUnknown() { + xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin.DiscardUnknown(m) +} + +var xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin proto.InternalMessageInfo + +func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type isGrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_ConfigType interface { + isGrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_ConfigType() +} + +type GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_HiddenEnvoyDeprecatedConfig struct { + HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"` +} + +type GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_TypedConfig struct { + TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"` +} + +func (*GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_HiddenEnvoyDeprecatedConfig) isGrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_ConfigType() { +} + +func (*GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_TypedConfig) isGrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_ConfigType() { +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) GetConfigType() isGrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_ConfigType { + if m != nil { + return m.ConfigType + } + return nil +} + +// Deprecated: Do not use. +func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct { + if x, ok := m.GetConfigType().(*GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_HiddenEnvoyDeprecatedConfig); ok { + return x.HiddenEnvoyDeprecatedConfig + } + return nil +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) GetTypedConfig() *any.Any { + if x, ok := m.GetConfigType().(*GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_TypedConfig); ok { + return x.TypedConfig + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_HiddenEnvoyDeprecatedConfig)(nil), + (*GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_TypedConfig)(nil), + } +} + +type GrpcService_GoogleGrpc_CallCredentials_StsService struct { + TokenExchangeServiceUri string `protobuf:"bytes,1,opt,name=token_exchange_service_uri,json=tokenExchangeServiceUri,proto3" json:"token_exchange_service_uri,omitempty"` + Resource string `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty"` + Audience string `protobuf:"bytes,3,opt,name=audience,proto3" json:"audience,omitempty"` + Scope string `protobuf:"bytes,4,opt,name=scope,proto3" json:"scope,omitempty"` + RequestedTokenType string `protobuf:"bytes,5,opt,name=requested_token_type,json=requestedTokenType,proto3" json:"requested_token_type,omitempty"` + SubjectTokenPath string `protobuf:"bytes,6,opt,name=subject_token_path,json=subjectTokenPath,proto3" json:"subject_token_path,omitempty"` + SubjectTokenType string `protobuf:"bytes,7,opt,name=subject_token_type,json=subjectTokenType,proto3" json:"subject_token_type,omitempty"` + ActorTokenPath string `protobuf:"bytes,8,opt,name=actor_token_path,json=actorTokenPath,proto3" json:"actor_token_path,omitempty"` + ActorTokenType string `protobuf:"bytes,9,opt,name=actor_token_type,json=actorTokenType,proto3" json:"actor_token_type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_StsService) Reset() { + *m = GrpcService_GoogleGrpc_CallCredentials_StsService{} +} +func (m *GrpcService_GoogleGrpc_CallCredentials_StsService) String() string { + return proto.CompactTextString(m) +} +func (*GrpcService_GoogleGrpc_CallCredentials_StsService) ProtoMessage() {} +func (*GrpcService_GoogleGrpc_CallCredentials_StsService) Descriptor() ([]byte, []int) { + return fileDescriptor_5fda5a40ec4afc3b, []int{0, 1, 3, 3} +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_StsService) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_StsService.Unmarshal(m, b) +} +func (m *GrpcService_GoogleGrpc_CallCredentials_StsService) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_StsService.Marshal(b, m, deterministic) +} +func (m *GrpcService_GoogleGrpc_CallCredentials_StsService) XXX_Merge(src proto.Message) { + xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_StsService.Merge(m, src) +} +func (m *GrpcService_GoogleGrpc_CallCredentials_StsService) XXX_Size() int { + return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_StsService.Size(m) +} +func (m *GrpcService_GoogleGrpc_CallCredentials_StsService) XXX_DiscardUnknown() { + xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_StsService.DiscardUnknown(m) +} + +var xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_StsService proto.InternalMessageInfo + +func (m *GrpcService_GoogleGrpc_CallCredentials_StsService) GetTokenExchangeServiceUri() string { + if m != nil { + return m.TokenExchangeServiceUri + } + return "" +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_StsService) GetResource() string { + if m != nil { + return m.Resource + } + return "" +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_StsService) GetAudience() string { + if m != nil { + return m.Audience + } + return "" +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_StsService) GetScope() string { + if m != nil { + return m.Scope + } + return "" +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_StsService) GetRequestedTokenType() string { + if m != nil { + return m.RequestedTokenType + } + return "" +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_StsService) GetSubjectTokenPath() string { + if m != nil { + return m.SubjectTokenPath + } + return "" +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_StsService) GetSubjectTokenType() string { + if m != nil { + return m.SubjectTokenType + } + return "" +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_StsService) GetActorTokenPath() string { + if m != nil { + return m.ActorTokenPath + } + return "" +} + +func (m *GrpcService_GoogleGrpc_CallCredentials_StsService) GetActorTokenType() string { + if m != nil { + return m.ActorTokenType + } + return "" +} + +func init() { + proto.RegisterType((*GrpcService)(nil), "envoy.config.core.v3.GrpcService") + proto.RegisterType((*GrpcService_EnvoyGrpc)(nil), "envoy.config.core.v3.GrpcService.EnvoyGrpc") + proto.RegisterType((*GrpcService_GoogleGrpc)(nil), "envoy.config.core.v3.GrpcService.GoogleGrpc") + proto.RegisterType((*GrpcService_GoogleGrpc_SslCredentials)(nil), "envoy.config.core.v3.GrpcService.GoogleGrpc.SslCredentials") + proto.RegisterType((*GrpcService_GoogleGrpc_GoogleLocalCredentials)(nil), "envoy.config.core.v3.GrpcService.GoogleGrpc.GoogleLocalCredentials") + proto.RegisterType((*GrpcService_GoogleGrpc_ChannelCredentials)(nil), "envoy.config.core.v3.GrpcService.GoogleGrpc.ChannelCredentials") + proto.RegisterType((*GrpcService_GoogleGrpc_CallCredentials)(nil), "envoy.config.core.v3.GrpcService.GoogleGrpc.CallCredentials") + proto.RegisterType((*GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials)(nil), "envoy.config.core.v3.GrpcService.GoogleGrpc.CallCredentials.ServiceAccountJWTAccessCredentials") + proto.RegisterType((*GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials)(nil), "envoy.config.core.v3.GrpcService.GoogleGrpc.CallCredentials.GoogleIAMCredentials") + proto.RegisterType((*GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin)(nil), "envoy.config.core.v3.GrpcService.GoogleGrpc.CallCredentials.MetadataCredentialsFromPlugin") + proto.RegisterType((*GrpcService_GoogleGrpc_CallCredentials_StsService)(nil), "envoy.config.core.v3.GrpcService.GoogleGrpc.CallCredentials.StsService") +} + +func init() { + proto.RegisterFile("envoy/config/core/v3/grpc_service.proto", fileDescriptor_5fda5a40ec4afc3b) +} + +var fileDescriptor_5fda5a40ec4afc3b = []byte{ + // 1453 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0xcb, 0x6f, 0x1b, 0x55, + 0x17, 0x8f, 0x9d, 0xa7, 0x8f, 0xdb, 0xc4, 0xbd, 0xf5, 0x97, 0x38, 0xd3, 0x2f, 0x6d, 0xda, 0xef, + 0x13, 0x84, 0x02, 0x63, 0x94, 0x80, 0x68, 0x5d, 0x20, 0xc4, 0x4e, 0xda, 0xb4, 0xa4, 0x34, 0x4c, + 0x42, 0x41, 0xa0, 0x6a, 0xb8, 0x19, 0x1f, 0x3b, 0x93, 0xda, 0x33, 0xc3, 0xbd, 0x77, 0xdc, 0x1a, + 0x09, 0x89, 0x25, 0x12, 0x3b, 0x96, 0x48, 0xb0, 0x62, 0xcb, 0x1a, 0xc4, 0x8a, 0x0d, 0x12, 0x0b, + 0x58, 0xb0, 0x42, 0x6c, 0xf8, 0x3b, 0x10, 0x2b, 0x74, 0x1f, 0x7e, 0x5b, 0x79, 0xee, 0x7c, 0xef, + 0xef, 0x9c, 0xdf, 0x39, 0x73, 0x5e, 0xf7, 0x18, 0x9e, 0xc5, 0xa0, 0x11, 0x36, 0xf3, 0x5e, 0x18, + 0x54, 0xfc, 0x6a, 0xde, 0x0b, 0x19, 0xe6, 0x1b, 0x2b, 0xf9, 0x2a, 0x8b, 0x3c, 0x97, 0x23, 0x6b, + 0xf8, 0x1e, 0xda, 0x11, 0x0b, 0x45, 0x48, 0xb2, 0x4a, 0xd0, 0xd6, 0x82, 0xb6, 0x14, 0xb4, 0x1b, + 0x2b, 0xd6, 0x95, 0xa1, 0xea, 0x7b, 0x94, 0x1b, 0x35, 0x6b, 0xbe, 0x1a, 0x86, 0xd5, 0x1a, 0xe6, + 0xd5, 0x69, 0x2f, 0xae, 0xe4, 0x69, 0xd0, 0x34, 0xd0, 0xe5, 0x7e, 0xa8, 0x1c, 0x33, 0x2a, 0xfc, + 0x30, 0x30, 0xf8, 0xa5, 0x7e, 0x1c, 0xeb, 0x91, 0x68, 0x29, 0xff, 0xb7, 0x1f, 0xe4, 0x82, 0xc5, + 0x9e, 0x30, 0xe8, 0x62, 0x5c, 0x8e, 0x68, 0x9e, 0x06, 0x41, 0x28, 0x14, 0x23, 0xcf, 0x73, 0x0c, + 0xb8, 0x2f, 0xfc, 0x46, 0xcb, 0xaf, 0x85, 0x41, 0x09, 0x41, 0x45, 0xcc, 0x0d, 0x7c, 0x75, 0x00, + 0x6e, 0x20, 0xe3, 0x7e, 0x18, 0xf8, 0x41, 0xd5, 0x88, 0xcc, 0x35, 0x68, 0xcd, 0x2f, 0x53, 0x81, + 0xf9, 0xd6, 0x0f, 0x0d, 0x5c, 0xfb, 0x6e, 0x01, 0xd2, 0x77, 0x58, 0xe4, 0xed, 0xe8, 0xf8, 0x91, + 0x2d, 0x00, 0x15, 0x25, 0x57, 0x46, 0x35, 0x97, 0x58, 0x4c, 0x2c, 0xa5, 0x97, 0x9f, 0xb7, 0x87, + 0x85, 0xd3, 0xee, 0x52, 0xb3, 0x37, 0xa4, 0x80, 0xbc, 0xd8, 0x1c, 0x71, 0x52, 0xd8, 0x3a, 0x90, + 0x07, 0x90, 0xd6, 0x9f, 0xae, 0xe9, 0x92, 0x8a, 0xee, 0x85, 0xa3, 0xe9, 0xee, 0x28, 0x25, 0xc3, + 0x07, 0xd5, 0xf6, 0x89, 0xac, 0xc0, 0xa4, 0xf0, 0xeb, 0x18, 0xc6, 0x22, 0x37, 0xaa, 0xc8, 0xe6, + 0x6d, 0x8d, 0xda, 0xad, 0xd8, 0xda, 0xeb, 0x26, 0x31, 0x4e, 0x4b, 0x92, 0x6c, 0x41, 0xc6, 0x0f, + 0x7c, 0xe1, 0xd3, 0x9a, 0x5b, 0x47, 0x41, 0xcb, 0x54, 0xd0, 0xdc, 0xf8, 0xe2, 0xe8, 0x52, 0x7a, + 0xf9, 0xea, 0x70, 0x57, 0x36, 0x91, 0x96, 0x91, 0x3d, 0xa4, 0xb5, 0x18, 0x9d, 0x19, 0xa3, 0x7a, + 0xdf, 0x68, 0x5a, 0x55, 0x48, 0xb5, 0xbf, 0x96, 0x5c, 0x87, 0x73, 0x5e, 0x2d, 0xe6, 0x02, 0x99, + 0x1b, 0xd0, 0x3a, 0xaa, 0x80, 0xa5, 0x8a, 0x93, 0xff, 0x14, 0xc7, 0x58, 0x72, 0x31, 0xe1, 0xa4, + 0x0d, 0xf8, 0x36, 0xad, 0x63, 0xc1, 0xfe, 0xea, 0xe7, 0xcf, 0x2f, 0x3f, 0x67, 0x8a, 0xd8, 0xa6, + 0x91, 0x6f, 0x37, 0x96, 0xb5, 0xc9, 0xa1, 0x91, 0xb4, 0x7e, 0x9b, 0x07, 0xe8, 0x04, 0x82, 0x3c, + 0x03, 0x20, 0x28, 0xab, 0xa2, 0x70, 0x63, 0xe6, 0xf7, 0x1b, 0x4a, 0x69, 0xe8, 0x5d, 0xe6, 0x93, + 0x08, 0x2e, 0x7a, 0xfb, 0x34, 0x08, 0xb0, 0xe6, 0x7a, 0x0c, 0xcb, 0x18, 0x48, 0xef, 0xb9, 0x89, + 0xfd, 0xea, 0x49, 0x62, 0x6f, 0x97, 0x34, 0x4f, 0xa9, 0x43, 0xe3, 0x10, 0x6f, 0xe0, 0x8e, 0x54, + 0x21, 0xe3, 0xd1, 0x5a, 0xaf, 0xb9, 0x51, 0x15, 0xdf, 0xd7, 0x4e, 0x66, 0x8e, 0xd6, 0x7a, 0x6c, + 0xcd, 0x78, 0xbd, 0x17, 0x64, 0x09, 0xd2, 0xb2, 0xf0, 0xdd, 0x88, 0x61, 0xc5, 0x7f, 0x9a, 0x1b, + 0xeb, 0x8d, 0x01, 0x48, 0x6c, 0x5b, 0x41, 0xe4, 0x06, 0xe4, 0xba, 0xbc, 0x71, 0x2b, 0xd4, 0x13, + 0x21, 0x6b, 0xea, 0x1c, 0x8d, 0x4b, 0x35, 0x67, 0xb6, 0x0b, 0xbf, 0xad, 0x61, 0x99, 0x25, 0x92, + 0x87, 0x09, 0xed, 0x6d, 0x6e, 0x42, 0x45, 0x6c, 0x6e, 0xa0, 0xc0, 0x76, 0x54, 0xf3, 0x3a, 0x46, + 0xcc, 0xfa, 0x3a, 0x09, 0xd3, 0x3b, 0xbc, 0xc7, 0xcf, 0x55, 0x00, 0x16, 0x86, 0xc2, 0xf5, 0x90, + 0x09, 0x6e, 0x9a, 0x68, 0x71, 0x78, 0x28, 0xd6, 0xa9, 0xa0, 0x3b, 0x61, 0xcc, 0x3c, 0x74, 0x52, + 0x52, 0xa7, 0x24, 0x55, 0xc8, 0x5d, 0x48, 0x47, 0xcc, 0x6f, 0x50, 0x81, 0xee, 0x63, 0x6c, 0x9a, + 0xdc, 0x1d, 0xc9, 0x50, 0x9c, 0xf8, 0xe1, 0xfb, 0x2f, 0xbe, 0x4d, 0x26, 0x1c, 0x30, 0xca, 0x6f, + 0x61, 0x53, 0xfa, 0x22, 0xdd, 0x70, 0xbd, 0x7d, 0xea, 0x07, 0xa6, 0x69, 0x8e, 0xe1, 0x8b, 0xd4, + 0x29, 0x49, 0x95, 0xc2, 0x1b, 0xb2, 0x6c, 0x6f, 0xc2, 0xab, 0x87, 0x97, 0x6d, 0x57, 0x1a, 0x7b, + 0x83, 0x61, 0x7d, 0x04, 0xb3, 0x1a, 0xdc, 0x0a, 0x3d, 0xda, 0x8d, 0x14, 0x6e, 0x4b, 0xe6, 0x35, + 0x58, 0x3d, 0x36, 0xf3, 0x70, 0x1e, 0xeb, 0xcb, 0x51, 0x20, 0x83, 0xa5, 0x4a, 0x2a, 0x30, 0xc3, + 0x79, 0x6f, 0x55, 0xea, 0x54, 0xdc, 0x3a, 0x51, 0x55, 0xf6, 0x7e, 0xce, 0xe6, 0x88, 0x33, 0xcd, + 0xfb, 0xb3, 0x3d, 0x6d, 0x86, 0x5c, 0x19, 0x2b, 0x34, 0xae, 0x09, 0x93, 0xaf, 0xd9, 0x81, 0xca, + 0xd9, 0x90, 0x6f, 0xc2, 0xe6, 0x88, 0x73, 0x5e, 0x03, 0xeb, 0x5a, 0x9c, 0x30, 0xb8, 0x50, 0x93, + 0xdf, 0xd4, 0xd7, 0x40, 0x92, 0xa3, 0x74, 0x22, 0x57, 0x87, 0xc7, 0x67, 0x73, 0xc4, 0xc9, 0xd4, + 0xfa, 0x63, 0x5f, 0x94, 0xb1, 0x7f, 0x1d, 0x6e, 0x1d, 0x3b, 0xf6, 0x83, 0x01, 0x2e, 0x5e, 0x82, + 0x6c, 0xc7, 0x63, 0x97, 0x47, 0xe8, 0xf9, 0x15, 0x1f, 0x19, 0x19, 0xfd, 0xbb, 0x98, 0xb0, 0xfe, + 0x9a, 0x81, 0x99, 0xbe, 0x86, 0x26, 0xff, 0x83, 0x73, 0xd4, 0xf3, 0x90, 0x73, 0x57, 0x84, 0x8f, + 0x31, 0xd0, 0x43, 0x6c, 0x73, 0xc4, 0x49, 0xeb, 0xdb, 0x5d, 0x79, 0x49, 0xb6, 0xe0, 0x3f, 0x26, + 0x9c, 0x5e, 0x58, 0x8f, 0x62, 0x81, 0x2e, 0x06, 0x55, 0x3f, 0xc0, 0x23, 0xa3, 0x7a, 0x51, 0x03, + 0x25, 0xad, 0xb5, 0xa1, 0x94, 0xc8, 0x32, 0x64, 0x0d, 0x1b, 0xc3, 0x0a, 0x43, 0xbe, 0x6f, 0x4c, + 0x8f, 0x1a, 0xd3, 0x44, 0xa3, 0x8e, 0x06, 0xb5, 0x07, 0xdf, 0x24, 0xc0, 0x32, 0xfb, 0x84, 0x4b, + 0x3d, 0x2f, 0x8c, 0x03, 0xe1, 0x1e, 0x3c, 0x11, 0xae, 0xf6, 0x52, 0x8d, 0x9d, 0xf4, 0xb2, 0x7b, + 0x96, 0xd1, 0x66, 0x1b, 0x91, 0x35, 0xcd, 0x7e, 0xef, 0xbd, 0xdd, 0x35, 0xc5, 0xdd, 0x9b, 0xb5, + 0x39, 0xde, 0x2b, 0xf5, 0x44, 0x68, 0x29, 0xc2, 0xc0, 0xbc, 0x89, 0xae, 0x4f, 0xeb, 0x6a, 0x9e, + 0xa5, 0x97, 0xdf, 0x39, 0x93, 0x3f, 0x1a, 0xba, 0xbb, 0x76, 0xbf, 0xd7, 0x83, 0x94, 0x36, 0x73, + 0x97, 0xd6, 0xc9, 0xa7, 0x90, 0xae, 0xb0, 0xb0, 0xee, 0x46, 0xb5, 0xb8, 0xea, 0x07, 0x66, 0x38, + 0x7e, 0x70, 0x26, 0xa3, 0xad, 0x27, 0xb5, 0xeb, 0xee, 0x36, 0x0b, 0xeb, 0xdb, 0xca, 0x82, 0x7c, + 0xf8, 0x2b, 0xed, 0x13, 0x39, 0x90, 0xa3, 0x9f, 0xb7, 0xd6, 0xbc, 0xdc, 0xa4, 0x32, 0x7f, 0xe7, + 0x6c, 0x39, 0x10, 0xdc, 0x48, 0x49, 0x5b, 0xbc, 0x7d, 0xb2, 0xfe, 0x4c, 0xc0, 0xb5, 0xa3, 0x13, + 0x44, 0xe6, 0x61, 0xea, 0x80, 0x87, 0x81, 0x9a, 0xd0, 0xaa, 0x92, 0x9d, 0x49, 0x79, 0x96, 0x43, + 0xf7, 0x65, 0x98, 0x55, 0x65, 0xe6, 0xd6, 0xfc, 0x0a, 0xca, 0x35, 0xc4, 0xe5, 0xe8, 0x85, 0x41, + 0x59, 0x3f, 0xc3, 0x63, 0x4e, 0x56, 0xa1, 0x5b, 0x06, 0xdc, 0xd1, 0x58, 0x61, 0x4f, 0xf6, 0xe4, + 0x23, 0xf8, 0xf0, 0xf8, 0x3d, 0x79, 0xe2, 0xaa, 0xb2, 0x7e, 0x4d, 0x40, 0x76, 0x58, 0xb2, 0x49, + 0x1e, 0x2e, 0xd2, 0x58, 0xec, 0x87, 0xcc, 0xff, 0x44, 0xad, 0x4f, 0xdd, 0x2d, 0xea, 0x90, 0x1e, + 0x48, 0x77, 0xc9, 0x8b, 0xd0, 0xba, 0x15, 0x4d, 0x97, 0x63, 0x0d, 0xe5, 0x1b, 0xaa, 0xbe, 0x2f, + 0xe5, 0x5c, 0x68, 0x23, 0x3b, 0x06, 0x28, 0xec, 0xca, 0x8f, 0x7b, 0x00, 0xf7, 0x4f, 0xfd, 0x71, + 0xc3, 0xbc, 0xb6, 0x7e, 0x4a, 0xc2, 0xc2, 0xa1, 0x65, 0x44, 0x08, 0x8c, 0x75, 0x36, 0x33, 0x47, + 0xfd, 0x26, 0x7b, 0x70, 0x79, 0xdf, 0x2f, 0x97, 0x31, 0x70, 0xf5, 0xae, 0x5b, 0xc6, 0x88, 0xa1, + 0x47, 0x05, 0x96, 0x5d, 0xf3, 0xf6, 0x27, 0x0f, 0x7d, 0xfb, 0x8b, 0xc9, 0x5c, 0x62, 0x73, 0xc4, + 0xb9, 0xa4, 0x49, 0xd4, 0xc6, 0xb6, 0xde, 0xa6, 0x28, 0x29, 0x06, 0x72, 0x13, 0xce, 0x89, 0x66, + 0xd4, 0x61, 0xd4, 0xf3, 0x3c, 0x3b, 0xc0, 0xb8, 0x16, 0xc8, 0xd9, 0x95, 0x56, 0xb2, 0x5a, 0xb5, + 0xf0, 0x48, 0x86, 0xea, 0x7d, 0x78, 0x78, 0xea, 0x50, 0x1d, 0x1a, 0x91, 0xe2, 0x79, 0x48, 0x6b, + 0x9f, 0x5c, 0x69, 0xd4, 0xfa, 0x63, 0x14, 0xa0, 0xd3, 0x0a, 0xe4, 0x16, 0x58, 0xba, 0x74, 0xf1, + 0xa9, 0x5c, 0xf5, 0xaa, 0xd8, 0xea, 0xb9, 0xce, 0xda, 0xe9, 0xcc, 0x29, 0x89, 0x0d, 0x23, 0x60, + 0x34, 0xe5, 0xee, 0x69, 0xc1, 0x14, 0x43, 0xae, 0x56, 0x08, 0x53, 0x09, 0xed, 0xb3, 0xc4, 0x68, + 0x5c, 0xf6, 0x31, 0xf0, 0x50, 0x4f, 0x5f, 0xa7, 0x7d, 0x26, 0x59, 0x18, 0xe7, 0x5e, 0x18, 0xa1, + 0x5e, 0xe9, 0x1c, 0x7d, 0x20, 0x2f, 0x41, 0x96, 0xe1, 0xc7, 0x31, 0x72, 0x99, 0x18, 0xed, 0x94, + 0xf4, 0xd8, 0x2c, 0x70, 0xa4, 0x8d, 0xa9, 0x7a, 0xdc, 0x6d, 0x46, 0x48, 0x5e, 0x01, 0xc2, 0xe3, + 0xbd, 0x03, 0xf4, 0x84, 0x91, 0x8f, 0xa8, 0xd8, 0x57, 0xb3, 0xaa, 0x6b, 0x4f, 0xcc, 0x18, 0x11, + 0xa5, 0xb6, 0x4d, 0xc5, 0xfe, 0xa0, 0x9a, 0x32, 0x33, 0x79, 0x88, 0x9a, 0xb2, 0xb6, 0x04, 0x19, + 0xb5, 0x38, 0x76, 0xdb, 0x9a, 0x52, 0xbe, 0x4d, 0xab, 0xfb, 0x8e, 0x81, 0x3e, 0x49, 0x45, 0x9f, + 0xea, 0x97, 0x94, 0x9c, 0x85, 0x7b, 0x32, 0xf7, 0x1b, 0x50, 0x3a, 0xfd, 0x0c, 0x68, 0xa7, 0xb2, + 0xb0, 0x2a, 0xb9, 0x0a, 0x70, 0xe3, 0xb4, 0x5c, 0x87, 0x3e, 0xf0, 0x85, 0xbc, 0x64, 0xbf, 0x0e, + 0x4b, 0xc7, 0x65, 0x2f, 0xfc, 0x5f, 0x2a, 0x5c, 0x81, 0x85, 0x43, 0x15, 0x8a, 0x73, 0x90, 0x31, + 0x7f, 0x73, 0x7a, 0xed, 0xdd, 0x1b, 0x9b, 0x1a, 0xcb, 0x8c, 0x17, 0xdf, 0xfc, 0xf1, 0xb3, 0x5f, + 0x7e, 0x9f, 0x48, 0x66, 0x92, 0x70, 0xcd, 0x0f, 0xf5, 0xf8, 0x8f, 0x58, 0xf8, 0xb4, 0x39, 0xf4, + 0x25, 0x28, 0x66, 0xba, 0x98, 0xb7, 0x65, 0xc7, 0x6d, 0x27, 0xf6, 0x26, 0x54, 0xeb, 0xad, 0xfc, + 0x1b, 0x00, 0x00, 0xff, 0xff, 0x3a, 0x88, 0xe9, 0xab, 0x4d, 0x10, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/grpc_service.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/grpc_service.pb.validate.go new file mode 100644 index 000000000..3004a9615 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/grpc_service.pb.validate.go @@ -0,0 +1,1154 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/core/v3/grpc_service.proto + +package envoy_config_core_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _grpc_service_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on GrpcService with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *GrpcService) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcServiceValidationError{ + field: "Timeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetInitialMetadata() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcServiceValidationError{ + field: fmt.Sprintf("InitialMetadata[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + switch m.TargetSpecifier.(type) { + + case *GrpcService_EnvoyGrpc_: + + if v, ok := interface{}(m.GetEnvoyGrpc()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcServiceValidationError{ + field: "EnvoyGrpc", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *GrpcService_GoogleGrpc_: + + if v, ok := interface{}(m.GetGoogleGrpc()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcServiceValidationError{ + field: "GoogleGrpc", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return GrpcServiceValidationError{ + field: "TargetSpecifier", + reason: "value is required", + } + + } + + return nil +} + +// GrpcServiceValidationError is the validation error returned by +// GrpcService.Validate if the designated constraints aren't met. +type GrpcServiceValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GrpcServiceValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GrpcServiceValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GrpcServiceValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GrpcServiceValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GrpcServiceValidationError) ErrorName() string { return "GrpcServiceValidationError" } + +// Error satisfies the builtin error interface +func (e GrpcServiceValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGrpcService.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GrpcServiceValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GrpcServiceValidationError{} + +// Validate checks the field values on GrpcService_EnvoyGrpc with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *GrpcService_EnvoyGrpc) Validate() error { + if m == nil { + return nil + } + + if len(m.GetClusterName()) < 1 { + return GrpcService_EnvoyGrpcValidationError{ + field: "ClusterName", + reason: "value length must be at least 1 bytes", + } + } + + return nil +} + +// GrpcService_EnvoyGrpcValidationError is the validation error returned by +// GrpcService_EnvoyGrpc.Validate if the designated constraints aren't met. +type GrpcService_EnvoyGrpcValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GrpcService_EnvoyGrpcValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GrpcService_EnvoyGrpcValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GrpcService_EnvoyGrpcValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GrpcService_EnvoyGrpcValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GrpcService_EnvoyGrpcValidationError) ErrorName() string { + return "GrpcService_EnvoyGrpcValidationError" +} + +// Error satisfies the builtin error interface +func (e GrpcService_EnvoyGrpcValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGrpcService_EnvoyGrpc.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GrpcService_EnvoyGrpcValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GrpcService_EnvoyGrpcValidationError{} + +// Validate checks the field values on GrpcService_GoogleGrpc with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *GrpcService_GoogleGrpc) Validate() error { + if m == nil { + return nil + } + + if len(m.GetTargetUri()) < 1 { + return GrpcService_GoogleGrpcValidationError{ + field: "TargetUri", + reason: "value length must be at least 1 bytes", + } + } + + if v, ok := interface{}(m.GetChannelCredentials()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcService_GoogleGrpcValidationError{ + field: "ChannelCredentials", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetCallCredentials() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcService_GoogleGrpcValidationError{ + field: fmt.Sprintf("CallCredentials[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(m.GetStatPrefix()) < 1 { + return GrpcService_GoogleGrpcValidationError{ + field: "StatPrefix", + reason: "value length must be at least 1 bytes", + } + } + + // no validation rules for CredentialsFactoryName + + if v, ok := interface{}(m.GetConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcService_GoogleGrpcValidationError{ + field: "Config", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// GrpcService_GoogleGrpcValidationError is the validation error returned by +// GrpcService_GoogleGrpc.Validate if the designated constraints aren't met. +type GrpcService_GoogleGrpcValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GrpcService_GoogleGrpcValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GrpcService_GoogleGrpcValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GrpcService_GoogleGrpcValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GrpcService_GoogleGrpcValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GrpcService_GoogleGrpcValidationError) ErrorName() string { + return "GrpcService_GoogleGrpcValidationError" +} + +// Error satisfies the builtin error interface +func (e GrpcService_GoogleGrpcValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGrpcService_GoogleGrpc.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GrpcService_GoogleGrpcValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GrpcService_GoogleGrpcValidationError{} + +// Validate checks the field values on GrpcService_GoogleGrpc_SslCredentials +// with the rules defined in the proto definition for this message. If any +// rules are violated, an error is returned. +func (m *GrpcService_GoogleGrpc_SslCredentials) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetRootCerts()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcService_GoogleGrpc_SslCredentialsValidationError{ + field: "RootCerts", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetPrivateKey()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcService_GoogleGrpc_SslCredentialsValidationError{ + field: "PrivateKey", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetCertChain()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcService_GoogleGrpc_SslCredentialsValidationError{ + field: "CertChain", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// GrpcService_GoogleGrpc_SslCredentialsValidationError is the validation error +// returned by GrpcService_GoogleGrpc_SslCredentials.Validate if the +// designated constraints aren't met. +type GrpcService_GoogleGrpc_SslCredentialsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GrpcService_GoogleGrpc_SslCredentialsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GrpcService_GoogleGrpc_SslCredentialsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GrpcService_GoogleGrpc_SslCredentialsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GrpcService_GoogleGrpc_SslCredentialsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GrpcService_GoogleGrpc_SslCredentialsValidationError) ErrorName() string { + return "GrpcService_GoogleGrpc_SslCredentialsValidationError" +} + +// Error satisfies the builtin error interface +func (e GrpcService_GoogleGrpc_SslCredentialsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGrpcService_GoogleGrpc_SslCredentials.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GrpcService_GoogleGrpc_SslCredentialsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GrpcService_GoogleGrpc_SslCredentialsValidationError{} + +// Validate checks the field values on +// GrpcService_GoogleGrpc_GoogleLocalCredentials with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *GrpcService_GoogleGrpc_GoogleLocalCredentials) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// GrpcService_GoogleGrpc_GoogleLocalCredentialsValidationError is the +// validation error returned by +// GrpcService_GoogleGrpc_GoogleLocalCredentials.Validate if the designated +// constraints aren't met. +type GrpcService_GoogleGrpc_GoogleLocalCredentialsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GrpcService_GoogleGrpc_GoogleLocalCredentialsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GrpcService_GoogleGrpc_GoogleLocalCredentialsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GrpcService_GoogleGrpc_GoogleLocalCredentialsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GrpcService_GoogleGrpc_GoogleLocalCredentialsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GrpcService_GoogleGrpc_GoogleLocalCredentialsValidationError) ErrorName() string { + return "GrpcService_GoogleGrpc_GoogleLocalCredentialsValidationError" +} + +// Error satisfies the builtin error interface +func (e GrpcService_GoogleGrpc_GoogleLocalCredentialsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGrpcService_GoogleGrpc_GoogleLocalCredentials.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GrpcService_GoogleGrpc_GoogleLocalCredentialsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GrpcService_GoogleGrpc_GoogleLocalCredentialsValidationError{} + +// Validate checks the field values on +// GrpcService_GoogleGrpc_ChannelCredentials with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *GrpcService_GoogleGrpc_ChannelCredentials) Validate() error { + if m == nil { + return nil + } + + switch m.CredentialSpecifier.(type) { + + case *GrpcService_GoogleGrpc_ChannelCredentials_SslCredentials: + + if v, ok := interface{}(m.GetSslCredentials()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcService_GoogleGrpc_ChannelCredentialsValidationError{ + field: "SslCredentials", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *GrpcService_GoogleGrpc_ChannelCredentials_GoogleDefault: + + if v, ok := interface{}(m.GetGoogleDefault()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcService_GoogleGrpc_ChannelCredentialsValidationError{ + field: "GoogleDefault", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *GrpcService_GoogleGrpc_ChannelCredentials_LocalCredentials: + + if v, ok := interface{}(m.GetLocalCredentials()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcService_GoogleGrpc_ChannelCredentialsValidationError{ + field: "LocalCredentials", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return GrpcService_GoogleGrpc_ChannelCredentialsValidationError{ + field: "CredentialSpecifier", + reason: "value is required", + } + + } + + return nil +} + +// GrpcService_GoogleGrpc_ChannelCredentialsValidationError is the validation +// error returned by GrpcService_GoogleGrpc_ChannelCredentials.Validate if the +// designated constraints aren't met. +type GrpcService_GoogleGrpc_ChannelCredentialsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GrpcService_GoogleGrpc_ChannelCredentialsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GrpcService_GoogleGrpc_ChannelCredentialsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GrpcService_GoogleGrpc_ChannelCredentialsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GrpcService_GoogleGrpc_ChannelCredentialsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GrpcService_GoogleGrpc_ChannelCredentialsValidationError) ErrorName() string { + return "GrpcService_GoogleGrpc_ChannelCredentialsValidationError" +} + +// Error satisfies the builtin error interface +func (e GrpcService_GoogleGrpc_ChannelCredentialsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGrpcService_GoogleGrpc_ChannelCredentials.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GrpcService_GoogleGrpc_ChannelCredentialsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GrpcService_GoogleGrpc_ChannelCredentialsValidationError{} + +// Validate checks the field values on GrpcService_GoogleGrpc_CallCredentials +// with the rules defined in the proto definition for this message. If any +// rules are violated, an error is returned. +func (m *GrpcService_GoogleGrpc_CallCredentials) Validate() error { + if m == nil { + return nil + } + + switch m.CredentialSpecifier.(type) { + + case *GrpcService_GoogleGrpc_CallCredentials_AccessToken: + // no validation rules for AccessToken + + case *GrpcService_GoogleGrpc_CallCredentials_GoogleComputeEngine: + + if v, ok := interface{}(m.GetGoogleComputeEngine()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcService_GoogleGrpc_CallCredentialsValidationError{ + field: "GoogleComputeEngine", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *GrpcService_GoogleGrpc_CallCredentials_GoogleRefreshToken: + // no validation rules for GoogleRefreshToken + + case *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJwtAccess: + + if v, ok := interface{}(m.GetServiceAccountJwtAccess()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcService_GoogleGrpc_CallCredentialsValidationError{ + field: "ServiceAccountJwtAccess", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *GrpcService_GoogleGrpc_CallCredentials_GoogleIam: + + if v, ok := interface{}(m.GetGoogleIam()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcService_GoogleGrpc_CallCredentialsValidationError{ + field: "GoogleIam", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *GrpcService_GoogleGrpc_CallCredentials_FromPlugin: + + if v, ok := interface{}(m.GetFromPlugin()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcService_GoogleGrpc_CallCredentialsValidationError{ + field: "FromPlugin", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *GrpcService_GoogleGrpc_CallCredentials_StsService_: + + if v, ok := interface{}(m.GetStsService()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcService_GoogleGrpc_CallCredentialsValidationError{ + field: "StsService", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return GrpcService_GoogleGrpc_CallCredentialsValidationError{ + field: "CredentialSpecifier", + reason: "value is required", + } + + } + + return nil +} + +// GrpcService_GoogleGrpc_CallCredentialsValidationError is the validation +// error returned by GrpcService_GoogleGrpc_CallCredentials.Validate if the +// designated constraints aren't met. +type GrpcService_GoogleGrpc_CallCredentialsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GrpcService_GoogleGrpc_CallCredentialsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GrpcService_GoogleGrpc_CallCredentialsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GrpcService_GoogleGrpc_CallCredentialsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GrpcService_GoogleGrpc_CallCredentialsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GrpcService_GoogleGrpc_CallCredentialsValidationError) ErrorName() string { + return "GrpcService_GoogleGrpc_CallCredentialsValidationError" +} + +// Error satisfies the builtin error interface +func (e GrpcService_GoogleGrpc_CallCredentialsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGrpcService_GoogleGrpc_CallCredentials.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GrpcService_GoogleGrpc_CallCredentialsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GrpcService_GoogleGrpc_CallCredentialsValidationError{} + +// Validate checks the field values on +// GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials +// with the rules defined in the proto definition for this message. If any +// rules are violated, an error is returned. +func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) Validate() error { + if m == nil { + return nil + } + + // no validation rules for JsonKey + + // no validation rules for TokenLifetimeSeconds + + return nil +} + +// GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentialsValidationError +// is the validation error returned by +// GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials.Validate +// if the designated constraints aren't met. +type GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentialsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentialsValidationError) Field() string { + return e.field +} + +// Reason function returns reason value. +func (e GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentialsValidationError) Reason() string { + return e.reason +} + +// Cause function returns cause value. +func (e GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentialsValidationError) Cause() error { + return e.cause +} + +// Key function returns key value. +func (e GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentialsValidationError) Key() bool { + return e.key +} + +// ErrorName returns error name. +func (e GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentialsValidationError) ErrorName() string { + return "GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentialsValidationError" +} + +// Error satisfies the builtin error interface +func (e GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentialsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentialsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentialsValidationError{} + +// Validate checks the field values on +// GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) Validate() error { + if m == nil { + return nil + } + + // no validation rules for AuthorizationToken + + // no validation rules for AuthoritySelector + + return nil +} + +// GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentialsValidationError +// is the validation error returned by +// GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials.Validate if the +// designated constraints aren't met. +type GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentialsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentialsValidationError) Field() string { + return e.field +} + +// Reason function returns reason value. +func (e GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentialsValidationError) Reason() string { + return e.reason +} + +// Cause function returns cause value. +func (e GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentialsValidationError) Cause() error { + return e.cause +} + +// Key function returns key value. +func (e GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentialsValidationError) Key() bool { + return e.key +} + +// ErrorName returns error name. +func (e GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentialsValidationError) ErrorName() string { + return "GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentialsValidationError" +} + +// Error satisfies the builtin error interface +func (e GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentialsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentialsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentialsValidationError{} + +// Validate checks the field values on +// GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin with +// the rules defined in the proto definition for this message. If any rules +// are violated, an error is returned. +func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Name + + switch m.ConfigType.(type) { + + case *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_HiddenEnvoyDeprecatedConfig: + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPluginValidationError{ + field: "HiddenEnvoyDeprecatedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_TypedConfig: + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPluginValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPluginValidationError +// is the validation error returned by +// GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin.Validate +// if the designated constraints aren't met. +type GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPluginValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPluginValidationError) Field() string { + return e.field +} + +// Reason function returns reason value. +func (e GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPluginValidationError) Reason() string { + return e.reason +} + +// Cause function returns cause value. +func (e GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPluginValidationError) Cause() error { + return e.cause +} + +// Key function returns key value. +func (e GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPluginValidationError) Key() bool { + return e.key +} + +// ErrorName returns error name. +func (e GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPluginValidationError) ErrorName() string { + return "GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPluginValidationError" +} + +// Error satisfies the builtin error interface +func (e GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPluginValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPluginValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPluginValidationError{} + +// Validate checks the field values on +// GrpcService_GoogleGrpc_CallCredentials_StsService with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *GrpcService_GoogleGrpc_CallCredentials_StsService) Validate() error { + if m == nil { + return nil + } + + // no validation rules for TokenExchangeServiceUri + + // no validation rules for Resource + + // no validation rules for Audience + + // no validation rules for Scope + + // no validation rules for RequestedTokenType + + if len(m.GetSubjectTokenPath()) < 1 { + return GrpcService_GoogleGrpc_CallCredentials_StsServiceValidationError{ + field: "SubjectTokenPath", + reason: "value length must be at least 1 bytes", + } + } + + if len(m.GetSubjectTokenType()) < 1 { + return GrpcService_GoogleGrpc_CallCredentials_StsServiceValidationError{ + field: "SubjectTokenType", + reason: "value length must be at least 1 bytes", + } + } + + // no validation rules for ActorTokenPath + + // no validation rules for ActorTokenType + + return nil +} + +// GrpcService_GoogleGrpc_CallCredentials_StsServiceValidationError is the +// validation error returned by +// GrpcService_GoogleGrpc_CallCredentials_StsService.Validate if the +// designated constraints aren't met. +type GrpcService_GoogleGrpc_CallCredentials_StsServiceValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GrpcService_GoogleGrpc_CallCredentials_StsServiceValidationError) Field() string { + return e.field +} + +// Reason function returns reason value. +func (e GrpcService_GoogleGrpc_CallCredentials_StsServiceValidationError) Reason() string { + return e.reason +} + +// Cause function returns cause value. +func (e GrpcService_GoogleGrpc_CallCredentials_StsServiceValidationError) Cause() error { + return e.cause +} + +// Key function returns key value. +func (e GrpcService_GoogleGrpc_CallCredentials_StsServiceValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GrpcService_GoogleGrpc_CallCredentials_StsServiceValidationError) ErrorName() string { + return "GrpcService_GoogleGrpc_CallCredentials_StsServiceValidationError" +} + +// Error satisfies the builtin error interface +func (e GrpcService_GoogleGrpc_CallCredentials_StsServiceValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGrpcService_GoogleGrpc_CallCredentials_StsService.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GrpcService_GoogleGrpc_CallCredentials_StsServiceValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GrpcService_GoogleGrpc_CallCredentials_StsServiceValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/health_check.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/health_check.pb.go new file mode 100644 index 000000000..ffd7ce3ba --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/health_check.pb.go @@ -0,0 +1,895 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/core/v3/health_check.proto + +package envoy_config_core_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/go-control-plane/envoy/annotations" + v31 "github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3" + v3 "github.com/envoyproxy/go-control-plane/envoy/type/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + any "github.com/golang/protobuf/ptypes/any" + duration "github.com/golang/protobuf/ptypes/duration" + _struct "github.com/golang/protobuf/ptypes/struct" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type HealthStatus int32 + +const ( + HealthStatus_UNKNOWN HealthStatus = 0 + HealthStatus_HEALTHY HealthStatus = 1 + HealthStatus_UNHEALTHY HealthStatus = 2 + HealthStatus_DRAINING HealthStatus = 3 + HealthStatus_TIMEOUT HealthStatus = 4 + HealthStatus_DEGRADED HealthStatus = 5 +) + +var HealthStatus_name = map[int32]string{ + 0: "UNKNOWN", + 1: "HEALTHY", + 2: "UNHEALTHY", + 3: "DRAINING", + 4: "TIMEOUT", + 5: "DEGRADED", +} + +var HealthStatus_value = map[string]int32{ + "UNKNOWN": 0, + "HEALTHY": 1, + "UNHEALTHY": 2, + "DRAINING": 3, + "TIMEOUT": 4, + "DEGRADED": 5, +} + +func (x HealthStatus) String() string { + return proto.EnumName(HealthStatus_name, int32(x)) +} + +func (HealthStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_2ba40dc0efbf9537, []int{0} +} + +type HealthCheck struct { + Timeout *duration.Duration `protobuf:"bytes,1,opt,name=timeout,proto3" json:"timeout,omitempty"` + Interval *duration.Duration `protobuf:"bytes,2,opt,name=interval,proto3" json:"interval,omitempty"` + InitialJitter *duration.Duration `protobuf:"bytes,20,opt,name=initial_jitter,json=initialJitter,proto3" json:"initial_jitter,omitempty"` + IntervalJitter *duration.Duration `protobuf:"bytes,3,opt,name=interval_jitter,json=intervalJitter,proto3" json:"interval_jitter,omitempty"` + IntervalJitterPercent uint32 `protobuf:"varint,18,opt,name=interval_jitter_percent,json=intervalJitterPercent,proto3" json:"interval_jitter_percent,omitempty"` + UnhealthyThreshold *wrappers.UInt32Value `protobuf:"bytes,4,opt,name=unhealthy_threshold,json=unhealthyThreshold,proto3" json:"unhealthy_threshold,omitempty"` + HealthyThreshold *wrappers.UInt32Value `protobuf:"bytes,5,opt,name=healthy_threshold,json=healthyThreshold,proto3" json:"healthy_threshold,omitempty"` + AltPort *wrappers.UInt32Value `protobuf:"bytes,6,opt,name=alt_port,json=altPort,proto3" json:"alt_port,omitempty"` + ReuseConnection *wrappers.BoolValue `protobuf:"bytes,7,opt,name=reuse_connection,json=reuseConnection,proto3" json:"reuse_connection,omitempty"` + // Types that are valid to be assigned to HealthChecker: + // *HealthCheck_HttpHealthCheck_ + // *HealthCheck_TcpHealthCheck_ + // *HealthCheck_GrpcHealthCheck_ + // *HealthCheck_CustomHealthCheck_ + HealthChecker isHealthCheck_HealthChecker `protobuf_oneof:"health_checker"` + NoTrafficInterval *duration.Duration `protobuf:"bytes,12,opt,name=no_traffic_interval,json=noTrafficInterval,proto3" json:"no_traffic_interval,omitempty"` + UnhealthyInterval *duration.Duration `protobuf:"bytes,14,opt,name=unhealthy_interval,json=unhealthyInterval,proto3" json:"unhealthy_interval,omitempty"` + UnhealthyEdgeInterval *duration.Duration `protobuf:"bytes,15,opt,name=unhealthy_edge_interval,json=unhealthyEdgeInterval,proto3" json:"unhealthy_edge_interval,omitempty"` + HealthyEdgeInterval *duration.Duration `protobuf:"bytes,16,opt,name=healthy_edge_interval,json=healthyEdgeInterval,proto3" json:"healthy_edge_interval,omitempty"` + EventLogPath string `protobuf:"bytes,17,opt,name=event_log_path,json=eventLogPath,proto3" json:"event_log_path,omitempty"` + EventService *EventServiceConfig `protobuf:"bytes,22,opt,name=event_service,json=eventService,proto3" json:"event_service,omitempty"` + AlwaysLogHealthCheckFailures bool `protobuf:"varint,19,opt,name=always_log_health_check_failures,json=alwaysLogHealthCheckFailures,proto3" json:"always_log_health_check_failures,omitempty"` + TlsOptions *HealthCheck_TlsOptions `protobuf:"bytes,21,opt,name=tls_options,json=tlsOptions,proto3" json:"tls_options,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HealthCheck) Reset() { *m = HealthCheck{} } +func (m *HealthCheck) String() string { return proto.CompactTextString(m) } +func (*HealthCheck) ProtoMessage() {} +func (*HealthCheck) Descriptor() ([]byte, []int) { + return fileDescriptor_2ba40dc0efbf9537, []int{0} +} + +func (m *HealthCheck) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HealthCheck.Unmarshal(m, b) +} +func (m *HealthCheck) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HealthCheck.Marshal(b, m, deterministic) +} +func (m *HealthCheck) XXX_Merge(src proto.Message) { + xxx_messageInfo_HealthCheck.Merge(m, src) +} +func (m *HealthCheck) XXX_Size() int { + return xxx_messageInfo_HealthCheck.Size(m) +} +func (m *HealthCheck) XXX_DiscardUnknown() { + xxx_messageInfo_HealthCheck.DiscardUnknown(m) +} + +var xxx_messageInfo_HealthCheck proto.InternalMessageInfo + +func (m *HealthCheck) GetTimeout() *duration.Duration { + if m != nil { + return m.Timeout + } + return nil +} + +func (m *HealthCheck) GetInterval() *duration.Duration { + if m != nil { + return m.Interval + } + return nil +} + +func (m *HealthCheck) GetInitialJitter() *duration.Duration { + if m != nil { + return m.InitialJitter + } + return nil +} + +func (m *HealthCheck) GetIntervalJitter() *duration.Duration { + if m != nil { + return m.IntervalJitter + } + return nil +} + +func (m *HealthCheck) GetIntervalJitterPercent() uint32 { + if m != nil { + return m.IntervalJitterPercent + } + return 0 +} + +func (m *HealthCheck) GetUnhealthyThreshold() *wrappers.UInt32Value { + if m != nil { + return m.UnhealthyThreshold + } + return nil +} + +func (m *HealthCheck) GetHealthyThreshold() *wrappers.UInt32Value { + if m != nil { + return m.HealthyThreshold + } + return nil +} + +func (m *HealthCheck) GetAltPort() *wrappers.UInt32Value { + if m != nil { + return m.AltPort + } + return nil +} + +func (m *HealthCheck) GetReuseConnection() *wrappers.BoolValue { + if m != nil { + return m.ReuseConnection + } + return nil +} + +type isHealthCheck_HealthChecker interface { + isHealthCheck_HealthChecker() +} + +type HealthCheck_HttpHealthCheck_ struct { + HttpHealthCheck *HealthCheck_HttpHealthCheck `protobuf:"bytes,8,opt,name=http_health_check,json=httpHealthCheck,proto3,oneof"` +} + +type HealthCheck_TcpHealthCheck_ struct { + TcpHealthCheck *HealthCheck_TcpHealthCheck `protobuf:"bytes,9,opt,name=tcp_health_check,json=tcpHealthCheck,proto3,oneof"` +} + +type HealthCheck_GrpcHealthCheck_ struct { + GrpcHealthCheck *HealthCheck_GrpcHealthCheck `protobuf:"bytes,11,opt,name=grpc_health_check,json=grpcHealthCheck,proto3,oneof"` +} + +type HealthCheck_CustomHealthCheck_ struct { + CustomHealthCheck *HealthCheck_CustomHealthCheck `protobuf:"bytes,13,opt,name=custom_health_check,json=customHealthCheck,proto3,oneof"` +} + +func (*HealthCheck_HttpHealthCheck_) isHealthCheck_HealthChecker() {} + +func (*HealthCheck_TcpHealthCheck_) isHealthCheck_HealthChecker() {} + +func (*HealthCheck_GrpcHealthCheck_) isHealthCheck_HealthChecker() {} + +func (*HealthCheck_CustomHealthCheck_) isHealthCheck_HealthChecker() {} + +func (m *HealthCheck) GetHealthChecker() isHealthCheck_HealthChecker { + if m != nil { + return m.HealthChecker + } + return nil +} + +func (m *HealthCheck) GetHttpHealthCheck() *HealthCheck_HttpHealthCheck { + if x, ok := m.GetHealthChecker().(*HealthCheck_HttpHealthCheck_); ok { + return x.HttpHealthCheck + } + return nil +} + +func (m *HealthCheck) GetTcpHealthCheck() *HealthCheck_TcpHealthCheck { + if x, ok := m.GetHealthChecker().(*HealthCheck_TcpHealthCheck_); ok { + return x.TcpHealthCheck + } + return nil +} + +func (m *HealthCheck) GetGrpcHealthCheck() *HealthCheck_GrpcHealthCheck { + if x, ok := m.GetHealthChecker().(*HealthCheck_GrpcHealthCheck_); ok { + return x.GrpcHealthCheck + } + return nil +} + +func (m *HealthCheck) GetCustomHealthCheck() *HealthCheck_CustomHealthCheck { + if x, ok := m.GetHealthChecker().(*HealthCheck_CustomHealthCheck_); ok { + return x.CustomHealthCheck + } + return nil +} + +func (m *HealthCheck) GetNoTrafficInterval() *duration.Duration { + if m != nil { + return m.NoTrafficInterval + } + return nil +} + +func (m *HealthCheck) GetUnhealthyInterval() *duration.Duration { + if m != nil { + return m.UnhealthyInterval + } + return nil +} + +func (m *HealthCheck) GetUnhealthyEdgeInterval() *duration.Duration { + if m != nil { + return m.UnhealthyEdgeInterval + } + return nil +} + +func (m *HealthCheck) GetHealthyEdgeInterval() *duration.Duration { + if m != nil { + return m.HealthyEdgeInterval + } + return nil +} + +func (m *HealthCheck) GetEventLogPath() string { + if m != nil { + return m.EventLogPath + } + return "" +} + +func (m *HealthCheck) GetEventService() *EventServiceConfig { + if m != nil { + return m.EventService + } + return nil +} + +func (m *HealthCheck) GetAlwaysLogHealthCheckFailures() bool { + if m != nil { + return m.AlwaysLogHealthCheckFailures + } + return false +} + +func (m *HealthCheck) GetTlsOptions() *HealthCheck_TlsOptions { + if m != nil { + return m.TlsOptions + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*HealthCheck) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*HealthCheck_HttpHealthCheck_)(nil), + (*HealthCheck_TcpHealthCheck_)(nil), + (*HealthCheck_GrpcHealthCheck_)(nil), + (*HealthCheck_CustomHealthCheck_)(nil), + } +} + +type HealthCheck_Payload struct { + // Types that are valid to be assigned to Payload: + // *HealthCheck_Payload_Text + // *HealthCheck_Payload_Binary + Payload isHealthCheck_Payload_Payload `protobuf_oneof:"payload"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HealthCheck_Payload) Reset() { *m = HealthCheck_Payload{} } +func (m *HealthCheck_Payload) String() string { return proto.CompactTextString(m) } +func (*HealthCheck_Payload) ProtoMessage() {} +func (*HealthCheck_Payload) Descriptor() ([]byte, []int) { + return fileDescriptor_2ba40dc0efbf9537, []int{0, 0} +} + +func (m *HealthCheck_Payload) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HealthCheck_Payload.Unmarshal(m, b) +} +func (m *HealthCheck_Payload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HealthCheck_Payload.Marshal(b, m, deterministic) +} +func (m *HealthCheck_Payload) XXX_Merge(src proto.Message) { + xxx_messageInfo_HealthCheck_Payload.Merge(m, src) +} +func (m *HealthCheck_Payload) XXX_Size() int { + return xxx_messageInfo_HealthCheck_Payload.Size(m) +} +func (m *HealthCheck_Payload) XXX_DiscardUnknown() { + xxx_messageInfo_HealthCheck_Payload.DiscardUnknown(m) +} + +var xxx_messageInfo_HealthCheck_Payload proto.InternalMessageInfo + +type isHealthCheck_Payload_Payload interface { + isHealthCheck_Payload_Payload() +} + +type HealthCheck_Payload_Text struct { + Text string `protobuf:"bytes,1,opt,name=text,proto3,oneof"` +} + +type HealthCheck_Payload_Binary struct { + Binary []byte `protobuf:"bytes,2,opt,name=binary,proto3,oneof"` +} + +func (*HealthCheck_Payload_Text) isHealthCheck_Payload_Payload() {} + +func (*HealthCheck_Payload_Binary) isHealthCheck_Payload_Payload() {} + +func (m *HealthCheck_Payload) GetPayload() isHealthCheck_Payload_Payload { + if m != nil { + return m.Payload + } + return nil +} + +func (m *HealthCheck_Payload) GetText() string { + if x, ok := m.GetPayload().(*HealthCheck_Payload_Text); ok { + return x.Text + } + return "" +} + +func (m *HealthCheck_Payload) GetBinary() []byte { + if x, ok := m.GetPayload().(*HealthCheck_Payload_Binary); ok { + return x.Binary + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*HealthCheck_Payload) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*HealthCheck_Payload_Text)(nil), + (*HealthCheck_Payload_Binary)(nil), + } +} + +type HealthCheck_HttpHealthCheck struct { + Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` + Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` + Send *HealthCheck_Payload `protobuf:"bytes,3,opt,name=send,proto3" json:"send,omitempty"` + Receive *HealthCheck_Payload `protobuf:"bytes,4,opt,name=receive,proto3" json:"receive,omitempty"` + HiddenEnvoyDeprecatedServiceName string `protobuf:"bytes,5,opt,name=hidden_envoy_deprecated_service_name,json=hiddenEnvoyDeprecatedServiceName,proto3" json:"hidden_envoy_deprecated_service_name,omitempty"` // Deprecated: Do not use. + RequestHeadersToAdd []*HeaderValueOption `protobuf:"bytes,6,rep,name=request_headers_to_add,json=requestHeadersToAdd,proto3" json:"request_headers_to_add,omitempty"` + RequestHeadersToRemove []string `protobuf:"bytes,8,rep,name=request_headers_to_remove,json=requestHeadersToRemove,proto3" json:"request_headers_to_remove,omitempty"` + HiddenEnvoyDeprecatedUseHttp2 bool `protobuf:"varint,7,opt,name=hidden_envoy_deprecated_use_http2,json=hiddenEnvoyDeprecatedUseHttp2,proto3" json:"hidden_envoy_deprecated_use_http2,omitempty"` // Deprecated: Do not use. + ExpectedStatuses []*v3.Int64Range `protobuf:"bytes,9,rep,name=expected_statuses,json=expectedStatuses,proto3" json:"expected_statuses,omitempty"` + CodecClientType v3.CodecClientType `protobuf:"varint,10,opt,name=codec_client_type,json=codecClientType,proto3,enum=envoy.type.v3.CodecClientType" json:"codec_client_type,omitempty"` + ServiceNameMatcher *v31.StringMatcher `protobuf:"bytes,11,opt,name=service_name_matcher,json=serviceNameMatcher,proto3" json:"service_name_matcher,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HealthCheck_HttpHealthCheck) Reset() { *m = HealthCheck_HttpHealthCheck{} } +func (m *HealthCheck_HttpHealthCheck) String() string { return proto.CompactTextString(m) } +func (*HealthCheck_HttpHealthCheck) ProtoMessage() {} +func (*HealthCheck_HttpHealthCheck) Descriptor() ([]byte, []int) { + return fileDescriptor_2ba40dc0efbf9537, []int{0, 1} +} + +func (m *HealthCheck_HttpHealthCheck) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HealthCheck_HttpHealthCheck.Unmarshal(m, b) +} +func (m *HealthCheck_HttpHealthCheck) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HealthCheck_HttpHealthCheck.Marshal(b, m, deterministic) +} +func (m *HealthCheck_HttpHealthCheck) XXX_Merge(src proto.Message) { + xxx_messageInfo_HealthCheck_HttpHealthCheck.Merge(m, src) +} +func (m *HealthCheck_HttpHealthCheck) XXX_Size() int { + return xxx_messageInfo_HealthCheck_HttpHealthCheck.Size(m) +} +func (m *HealthCheck_HttpHealthCheck) XXX_DiscardUnknown() { + xxx_messageInfo_HealthCheck_HttpHealthCheck.DiscardUnknown(m) +} + +var xxx_messageInfo_HealthCheck_HttpHealthCheck proto.InternalMessageInfo + +func (m *HealthCheck_HttpHealthCheck) GetHost() string { + if m != nil { + return m.Host + } + return "" +} + +func (m *HealthCheck_HttpHealthCheck) GetPath() string { + if m != nil { + return m.Path + } + return "" +} + +func (m *HealthCheck_HttpHealthCheck) GetSend() *HealthCheck_Payload { + if m != nil { + return m.Send + } + return nil +} + +func (m *HealthCheck_HttpHealthCheck) GetReceive() *HealthCheck_Payload { + if m != nil { + return m.Receive + } + return nil +} + +// Deprecated: Do not use. +func (m *HealthCheck_HttpHealthCheck) GetHiddenEnvoyDeprecatedServiceName() string { + if m != nil { + return m.HiddenEnvoyDeprecatedServiceName + } + return "" +} + +func (m *HealthCheck_HttpHealthCheck) GetRequestHeadersToAdd() []*HeaderValueOption { + if m != nil { + return m.RequestHeadersToAdd + } + return nil +} + +func (m *HealthCheck_HttpHealthCheck) GetRequestHeadersToRemove() []string { + if m != nil { + return m.RequestHeadersToRemove + } + return nil +} + +// Deprecated: Do not use. +func (m *HealthCheck_HttpHealthCheck) GetHiddenEnvoyDeprecatedUseHttp2() bool { + if m != nil { + return m.HiddenEnvoyDeprecatedUseHttp2 + } + return false +} + +func (m *HealthCheck_HttpHealthCheck) GetExpectedStatuses() []*v3.Int64Range { + if m != nil { + return m.ExpectedStatuses + } + return nil +} + +func (m *HealthCheck_HttpHealthCheck) GetCodecClientType() v3.CodecClientType { + if m != nil { + return m.CodecClientType + } + return v3.CodecClientType_HTTP1 +} + +func (m *HealthCheck_HttpHealthCheck) GetServiceNameMatcher() *v31.StringMatcher { + if m != nil { + return m.ServiceNameMatcher + } + return nil +} + +type HealthCheck_TcpHealthCheck struct { + Send *HealthCheck_Payload `protobuf:"bytes,1,opt,name=send,proto3" json:"send,omitempty"` + Receive []*HealthCheck_Payload `protobuf:"bytes,2,rep,name=receive,proto3" json:"receive,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HealthCheck_TcpHealthCheck) Reset() { *m = HealthCheck_TcpHealthCheck{} } +func (m *HealthCheck_TcpHealthCheck) String() string { return proto.CompactTextString(m) } +func (*HealthCheck_TcpHealthCheck) ProtoMessage() {} +func (*HealthCheck_TcpHealthCheck) Descriptor() ([]byte, []int) { + return fileDescriptor_2ba40dc0efbf9537, []int{0, 2} +} + +func (m *HealthCheck_TcpHealthCheck) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HealthCheck_TcpHealthCheck.Unmarshal(m, b) +} +func (m *HealthCheck_TcpHealthCheck) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HealthCheck_TcpHealthCheck.Marshal(b, m, deterministic) +} +func (m *HealthCheck_TcpHealthCheck) XXX_Merge(src proto.Message) { + xxx_messageInfo_HealthCheck_TcpHealthCheck.Merge(m, src) +} +func (m *HealthCheck_TcpHealthCheck) XXX_Size() int { + return xxx_messageInfo_HealthCheck_TcpHealthCheck.Size(m) +} +func (m *HealthCheck_TcpHealthCheck) XXX_DiscardUnknown() { + xxx_messageInfo_HealthCheck_TcpHealthCheck.DiscardUnknown(m) +} + +var xxx_messageInfo_HealthCheck_TcpHealthCheck proto.InternalMessageInfo + +func (m *HealthCheck_TcpHealthCheck) GetSend() *HealthCheck_Payload { + if m != nil { + return m.Send + } + return nil +} + +func (m *HealthCheck_TcpHealthCheck) GetReceive() []*HealthCheck_Payload { + if m != nil { + return m.Receive + } + return nil +} + +type HealthCheck_RedisHealthCheck struct { + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HealthCheck_RedisHealthCheck) Reset() { *m = HealthCheck_RedisHealthCheck{} } +func (m *HealthCheck_RedisHealthCheck) String() string { return proto.CompactTextString(m) } +func (*HealthCheck_RedisHealthCheck) ProtoMessage() {} +func (*HealthCheck_RedisHealthCheck) Descriptor() ([]byte, []int) { + return fileDescriptor_2ba40dc0efbf9537, []int{0, 3} +} + +func (m *HealthCheck_RedisHealthCheck) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HealthCheck_RedisHealthCheck.Unmarshal(m, b) +} +func (m *HealthCheck_RedisHealthCheck) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HealthCheck_RedisHealthCheck.Marshal(b, m, deterministic) +} +func (m *HealthCheck_RedisHealthCheck) XXX_Merge(src proto.Message) { + xxx_messageInfo_HealthCheck_RedisHealthCheck.Merge(m, src) +} +func (m *HealthCheck_RedisHealthCheck) XXX_Size() int { + return xxx_messageInfo_HealthCheck_RedisHealthCheck.Size(m) +} +func (m *HealthCheck_RedisHealthCheck) XXX_DiscardUnknown() { + xxx_messageInfo_HealthCheck_RedisHealthCheck.DiscardUnknown(m) +} + +var xxx_messageInfo_HealthCheck_RedisHealthCheck proto.InternalMessageInfo + +func (m *HealthCheck_RedisHealthCheck) GetKey() string { + if m != nil { + return m.Key + } + return "" +} + +type HealthCheck_GrpcHealthCheck struct { + ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` + Authority string `protobuf:"bytes,2,opt,name=authority,proto3" json:"authority,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HealthCheck_GrpcHealthCheck) Reset() { *m = HealthCheck_GrpcHealthCheck{} } +func (m *HealthCheck_GrpcHealthCheck) String() string { return proto.CompactTextString(m) } +func (*HealthCheck_GrpcHealthCheck) ProtoMessage() {} +func (*HealthCheck_GrpcHealthCheck) Descriptor() ([]byte, []int) { + return fileDescriptor_2ba40dc0efbf9537, []int{0, 4} +} + +func (m *HealthCheck_GrpcHealthCheck) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HealthCheck_GrpcHealthCheck.Unmarshal(m, b) +} +func (m *HealthCheck_GrpcHealthCheck) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HealthCheck_GrpcHealthCheck.Marshal(b, m, deterministic) +} +func (m *HealthCheck_GrpcHealthCheck) XXX_Merge(src proto.Message) { + xxx_messageInfo_HealthCheck_GrpcHealthCheck.Merge(m, src) +} +func (m *HealthCheck_GrpcHealthCheck) XXX_Size() int { + return xxx_messageInfo_HealthCheck_GrpcHealthCheck.Size(m) +} +func (m *HealthCheck_GrpcHealthCheck) XXX_DiscardUnknown() { + xxx_messageInfo_HealthCheck_GrpcHealthCheck.DiscardUnknown(m) +} + +var xxx_messageInfo_HealthCheck_GrpcHealthCheck proto.InternalMessageInfo + +func (m *HealthCheck_GrpcHealthCheck) GetServiceName() string { + if m != nil { + return m.ServiceName + } + return "" +} + +func (m *HealthCheck_GrpcHealthCheck) GetAuthority() string { + if m != nil { + return m.Authority + } + return "" +} + +type HealthCheck_CustomHealthCheck struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Types that are valid to be assigned to ConfigType: + // *HealthCheck_CustomHealthCheck_HiddenEnvoyDeprecatedConfig + // *HealthCheck_CustomHealthCheck_TypedConfig + ConfigType isHealthCheck_CustomHealthCheck_ConfigType `protobuf_oneof:"config_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HealthCheck_CustomHealthCheck) Reset() { *m = HealthCheck_CustomHealthCheck{} } +func (m *HealthCheck_CustomHealthCheck) String() string { return proto.CompactTextString(m) } +func (*HealthCheck_CustomHealthCheck) ProtoMessage() {} +func (*HealthCheck_CustomHealthCheck) Descriptor() ([]byte, []int) { + return fileDescriptor_2ba40dc0efbf9537, []int{0, 5} +} + +func (m *HealthCheck_CustomHealthCheck) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HealthCheck_CustomHealthCheck.Unmarshal(m, b) +} +func (m *HealthCheck_CustomHealthCheck) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HealthCheck_CustomHealthCheck.Marshal(b, m, deterministic) +} +func (m *HealthCheck_CustomHealthCheck) XXX_Merge(src proto.Message) { + xxx_messageInfo_HealthCheck_CustomHealthCheck.Merge(m, src) +} +func (m *HealthCheck_CustomHealthCheck) XXX_Size() int { + return xxx_messageInfo_HealthCheck_CustomHealthCheck.Size(m) +} +func (m *HealthCheck_CustomHealthCheck) XXX_DiscardUnknown() { + xxx_messageInfo_HealthCheck_CustomHealthCheck.DiscardUnknown(m) +} + +var xxx_messageInfo_HealthCheck_CustomHealthCheck proto.InternalMessageInfo + +func (m *HealthCheck_CustomHealthCheck) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type isHealthCheck_CustomHealthCheck_ConfigType interface { + isHealthCheck_CustomHealthCheck_ConfigType() +} + +type HealthCheck_CustomHealthCheck_HiddenEnvoyDeprecatedConfig struct { + HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"` +} + +type HealthCheck_CustomHealthCheck_TypedConfig struct { + TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"` +} + +func (*HealthCheck_CustomHealthCheck_HiddenEnvoyDeprecatedConfig) isHealthCheck_CustomHealthCheck_ConfigType() { +} + +func (*HealthCheck_CustomHealthCheck_TypedConfig) isHealthCheck_CustomHealthCheck_ConfigType() {} + +func (m *HealthCheck_CustomHealthCheck) GetConfigType() isHealthCheck_CustomHealthCheck_ConfigType { + if m != nil { + return m.ConfigType + } + return nil +} + +// Deprecated: Do not use. +func (m *HealthCheck_CustomHealthCheck) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct { + if x, ok := m.GetConfigType().(*HealthCheck_CustomHealthCheck_HiddenEnvoyDeprecatedConfig); ok { + return x.HiddenEnvoyDeprecatedConfig + } + return nil +} + +func (m *HealthCheck_CustomHealthCheck) GetTypedConfig() *any.Any { + if x, ok := m.GetConfigType().(*HealthCheck_CustomHealthCheck_TypedConfig); ok { + return x.TypedConfig + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*HealthCheck_CustomHealthCheck) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*HealthCheck_CustomHealthCheck_HiddenEnvoyDeprecatedConfig)(nil), + (*HealthCheck_CustomHealthCheck_TypedConfig)(nil), + } +} + +type HealthCheck_TlsOptions struct { + AlpnProtocols []string `protobuf:"bytes,1,rep,name=alpn_protocols,json=alpnProtocols,proto3" json:"alpn_protocols,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HealthCheck_TlsOptions) Reset() { *m = HealthCheck_TlsOptions{} } +func (m *HealthCheck_TlsOptions) String() string { return proto.CompactTextString(m) } +func (*HealthCheck_TlsOptions) ProtoMessage() {} +func (*HealthCheck_TlsOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_2ba40dc0efbf9537, []int{0, 6} +} + +func (m *HealthCheck_TlsOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HealthCheck_TlsOptions.Unmarshal(m, b) +} +func (m *HealthCheck_TlsOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HealthCheck_TlsOptions.Marshal(b, m, deterministic) +} +func (m *HealthCheck_TlsOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_HealthCheck_TlsOptions.Merge(m, src) +} +func (m *HealthCheck_TlsOptions) XXX_Size() int { + return xxx_messageInfo_HealthCheck_TlsOptions.Size(m) +} +func (m *HealthCheck_TlsOptions) XXX_DiscardUnknown() { + xxx_messageInfo_HealthCheck_TlsOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_HealthCheck_TlsOptions proto.InternalMessageInfo + +func (m *HealthCheck_TlsOptions) GetAlpnProtocols() []string { + if m != nil { + return m.AlpnProtocols + } + return nil +} + +func init() { + proto.RegisterEnum("envoy.config.core.v3.HealthStatus", HealthStatus_name, HealthStatus_value) + proto.RegisterType((*HealthCheck)(nil), "envoy.config.core.v3.HealthCheck") + proto.RegisterType((*HealthCheck_Payload)(nil), "envoy.config.core.v3.HealthCheck.Payload") + proto.RegisterType((*HealthCheck_HttpHealthCheck)(nil), "envoy.config.core.v3.HealthCheck.HttpHealthCheck") + proto.RegisterType((*HealthCheck_TcpHealthCheck)(nil), "envoy.config.core.v3.HealthCheck.TcpHealthCheck") + proto.RegisterType((*HealthCheck_RedisHealthCheck)(nil), "envoy.config.core.v3.HealthCheck.RedisHealthCheck") + proto.RegisterType((*HealthCheck_GrpcHealthCheck)(nil), "envoy.config.core.v3.HealthCheck.GrpcHealthCheck") + proto.RegisterType((*HealthCheck_CustomHealthCheck)(nil), "envoy.config.core.v3.HealthCheck.CustomHealthCheck") + proto.RegisterType((*HealthCheck_TlsOptions)(nil), "envoy.config.core.v3.HealthCheck.TlsOptions") +} + +func init() { + proto.RegisterFile("envoy/config/core/v3/health_check.proto", fileDescriptor_2ba40dc0efbf9537) +} + +var fileDescriptor_2ba40dc0efbf9537 = []byte{ + // 1576 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0x4f, 0x73, 0x1b, 0x49, + 0x15, 0xf7, 0xc8, 0x8a, 0x25, 0x3d, 0xd9, 0xf2, 0xa8, 0x1d, 0x27, 0x63, 0xe5, 0xcf, 0x2a, 0x21, + 0x5b, 0x11, 0xa9, 0x20, 0xed, 0xda, 0x4b, 0xa8, 0x75, 0x15, 0xc5, 0x7a, 0x6c, 0x25, 0xf2, 0x92, + 0x38, 0xae, 0xb6, 0xbc, 0x29, 0x6a, 0xa9, 0x1a, 0xda, 0x33, 0x6d, 0x69, 0xd8, 0xf1, 0xf4, 0xd0, + 0xd3, 0xd2, 0x46, 0xb7, 0x2d, 0x4e, 0x5b, 0x1c, 0x39, 0x70, 0xe0, 0x1b, 0xb0, 0x9f, 0x80, 0xe2, + 0xc0, 0x8d, 0x2a, 0x38, 0xc2, 0xa7, 0xe0, 0xc4, 0x81, 0x13, 0x95, 0x13, 0xd5, 0xdd, 0x33, 0xfa, + 0x1f, 0xcb, 0x86, 0x9b, 0xe6, 0xbd, 0xf7, 0xfb, 0xbd, 0xf7, 0xba, 0xdf, 0x9f, 0x16, 0x3c, 0xa6, + 0x61, 0x9f, 0x0d, 0x1a, 0x2e, 0x0b, 0xcf, 0xfd, 0x4e, 0xc3, 0x65, 0x9c, 0x36, 0xfa, 0x3b, 0x8d, + 0x2e, 0x25, 0x81, 0xe8, 0x3a, 0x6e, 0x97, 0xba, 0x5f, 0xd5, 0x23, 0xce, 0x04, 0x43, 0x37, 0x95, + 0x61, 0x5d, 0x1b, 0xd6, 0xa5, 0x61, 0xbd, 0xbf, 0x53, 0xf9, 0x60, 0x2e, 0xfc, 0x8c, 0xc4, 0x54, + 0xc3, 0x2a, 0x8d, 0xb9, 0x06, 0xb4, 0x4f, 0x43, 0xe1, 0xc4, 0x94, 0xf7, 0x7d, 0x97, 0x3a, 0x09, + 0xa7, 0x06, 0x3c, 0xd4, 0x00, 0x31, 0x88, 0x68, 0xe3, 0x82, 0x08, 0xb7, 0x4b, 0xb9, 0x44, 0xc4, + 0x82, 0xfb, 0x61, 0x6a, 0x63, 0x8d, 0xd9, 0xc8, 0x68, 0x85, 0x88, 0x12, 0xcd, 0xd6, 0xa4, 0x86, + 0x93, 0xb0, 0x93, 0x46, 0xb2, 0xd5, 0x61, 0xac, 0x13, 0xd0, 0x86, 0xfa, 0x3a, 0xeb, 0x9d, 0x37, + 0x48, 0x38, 0x48, 0x54, 0xf7, 0xa7, 0x55, 0x5e, 0x8f, 0x13, 0xe1, 0xb3, 0x30, 0xd1, 0xdf, 0x9d, + 0xd6, 0xc7, 0x82, 0xf7, 0x5c, 0xf1, 0x3e, 0xf4, 0xd7, 0x9c, 0x44, 0x11, 0xe5, 0x71, 0xa2, 0xff, + 0x9e, 0x8e, 0x89, 0x84, 0x21, 0x13, 0x8a, 0x35, 0x6e, 0x78, 0x34, 0xe2, 0xd4, 0x1d, 0x77, 0x71, + 0xaf, 0xe7, 0x45, 0x64, 0xc2, 0x26, 0x16, 0x44, 0xf4, 0x52, 0x8e, 0x07, 0x33, 0xea, 0x3e, 0xe5, + 0xb1, 0xcf, 0xc2, 0xd1, 0xa1, 0xdc, 0xee, 0x93, 0xc0, 0xf7, 0x88, 0xa0, 0x8d, 0xf4, 0x87, 0x56, + 0x3c, 0xfc, 0xc3, 0x1d, 0x28, 0xb6, 0xd4, 0x85, 0xee, 0xcb, 0xfb, 0x44, 0x3f, 0x81, 0x9c, 0xf0, + 0x2f, 0x28, 0xeb, 0x09, 0xcb, 0xa8, 0x1a, 0xb5, 0xe2, 0xf6, 0x56, 0x5d, 0x67, 0x50, 0x4f, 0x33, + 0xa8, 0x1f, 0x24, 0xf9, 0xdb, 0xf0, 0xce, 0xce, 0x7d, 0x67, 0x64, 0xf3, 0xc6, 0x93, 0x25, 0x9c, + 0xa2, 0xd0, 0x1e, 0xe4, 0xfd, 0x50, 0x50, 0xde, 0x27, 0x81, 0x95, 0xb9, 0x0e, 0xc3, 0x10, 0x86, + 0x3e, 0x83, 0x92, 0x1f, 0xfa, 0xc2, 0x27, 0x81, 0xf3, 0x4b, 0x5f, 0x08, 0xca, 0xad, 0x9b, 0x0b, + 0x88, 0xf0, 0x5a, 0x02, 0xf8, 0x5c, 0xd9, 0x23, 0x1b, 0xd6, 0x53, 0xb6, 0x94, 0x62, 0x79, 0x11, + 0x45, 0x29, 0x45, 0x24, 0x1c, 0xcf, 0xe0, 0xf6, 0x14, 0x87, 0x13, 0x51, 0xee, 0xd2, 0x50, 0x58, + 0xa8, 0x6a, 0xd4, 0xd6, 0xf0, 0xe6, 0x24, 0xe0, 0x58, 0x2b, 0xd1, 0x1b, 0xd8, 0xe8, 0x85, 0xba, + 0x47, 0x06, 0x8e, 0xe8, 0x72, 0x1a, 0x77, 0x59, 0xe0, 0x59, 0x59, 0xe5, 0xff, 0xee, 0x8c, 0xff, + 0xd3, 0xc3, 0x50, 0xec, 0x6c, 0x7f, 0x41, 0x82, 0x1e, 0xb5, 0xf3, 0xef, 0xec, 0x1b, 0xbf, 0x31, + 0x32, 0xa6, 0x81, 0xd1, 0x90, 0xa2, 0x9d, 0x32, 0xa0, 0x13, 0x28, 0xcf, 0xd2, 0xde, 0xb8, 0x16, + 0xad, 0x39, 0x43, 0xfa, 0x23, 0xc8, 0x93, 0x40, 0x38, 0x11, 0xe3, 0xc2, 0x5a, 0x59, 0xcc, 0x85, + 0x73, 0x24, 0x10, 0xc7, 0x8c, 0x0b, 0xd4, 0x04, 0x93, 0xd3, 0x5e, 0xac, 0x1a, 0x34, 0xa4, 0xae, + 0x3c, 0x42, 0x2b, 0xa7, 0x08, 0x2a, 0x33, 0x04, 0x36, 0x63, 0x81, 0x86, 0xaf, 0x2b, 0xcc, 0xfe, + 0x10, 0x82, 0x1c, 0x28, 0xcb, 0x0e, 0x75, 0xc6, 0x87, 0x8a, 0x95, 0x57, 0x3c, 0x1f, 0xd7, 0xe7, + 0x4d, 0x95, 0xfa, 0x58, 0xb5, 0xd6, 0x5b, 0x42, 0x44, 0x63, 0xdf, 0xad, 0x25, 0xbc, 0xde, 0x9d, + 0x14, 0xa1, 0x9f, 0x83, 0x29, 0xdc, 0x29, 0xfe, 0x82, 0xe2, 0xff, 0x68, 0x31, 0x7f, 0xdb, 0x9d, + 0xa2, 0x2f, 0x89, 0x09, 0x89, 0x0c, 0xbf, 0xc3, 0x23, 0x77, 0x92, 0xbe, 0x78, 0xd5, 0xf0, 0x5f, + 0xf0, 0xc8, 0x9d, 0x0a, 0xbf, 0x33, 0x29, 0x42, 0x14, 0x36, 0xdc, 0x5e, 0x2c, 0xd8, 0xc5, 0xa4, + 0x8b, 0x35, 0xe5, 0x62, 0x67, 0xb1, 0x8b, 0x7d, 0x05, 0x9e, 0x74, 0x52, 0x76, 0xa7, 0x85, 0xe8, + 0x04, 0x36, 0x42, 0xe6, 0x08, 0x4e, 0xce, 0xcf, 0x7d, 0xd7, 0x19, 0x36, 0xf0, 0xea, 0xa2, 0x06, + 0x96, 0xa5, 0xf5, 0x9d, 0x91, 0x79, 0xb2, 0x84, 0xcb, 0x21, 0x6b, 0x6b, 0xf8, 0x61, 0xda, 0xc7, + 0x18, 0x46, 0x65, 0x3c, 0xe2, 0x2c, 0x5d, 0x83, 0x73, 0x08, 0x1f, 0x72, 0x7e, 0x09, 0xb7, 0x47, + 0x9c, 0xd4, 0xeb, 0xd0, 0x11, 0xf1, 0xfa, 0xd5, 0x89, 0x37, 0x87, 0x1c, 0x4d, 0xaf, 0x43, 0x87, + 0xe4, 0x6f, 0x60, 0x73, 0x3e, 0xb5, 0x79, 0x75, 0xea, 0x8d, 0x79, 0xc4, 0x8f, 0xa0, 0xa4, 0xb7, + 0x5a, 0xc0, 0x3a, 0x4e, 0x44, 0x44, 0xd7, 0x2a, 0x57, 0x8d, 0x5a, 0x01, 0xaf, 0x2a, 0xe9, 0x4b, + 0xd6, 0x39, 0x26, 0xa2, 0x8b, 0x5e, 0xc1, 0xda, 0xc4, 0xee, 0xb3, 0x6e, 0x29, 0xb7, 0xb5, 0xf9, + 0xb7, 0xdc, 0x94, 0xa6, 0x27, 0xda, 0x72, 0x5f, 0xa9, 0x12, 0xba, 0x44, 0x86, 0x9e, 0x43, 0x95, + 0x04, 0x5f, 0x93, 0x41, 0xac, 0xbc, 0x8e, 0x97, 0x8f, 0x73, 0x4e, 0xfc, 0xa0, 0xc7, 0x69, 0x6c, + 0x6d, 0x54, 0x8d, 0x5a, 0x1e, 0xdf, 0xd5, 0x76, 0x2f, 0x59, 0x67, 0xac, 0x26, 0x9e, 0x27, 0x36, + 0xe8, 0x15, 0x14, 0x45, 0x10, 0x3b, 0x2c, 0x52, 0xbb, 0xc5, 0xda, 0x54, 0x41, 0x3d, 0xbd, 0x42, + 0xf3, 0x04, 0xf1, 0x6b, 0x8d, 0xc1, 0x20, 0x86, 0xbf, 0x2b, 0xdf, 0x18, 0x90, 0x3b, 0x26, 0x83, + 0x80, 0x11, 0x0f, 0xdd, 0x83, 0xac, 0xa0, 0x6f, 0xf5, 0xaa, 0x29, 0xd8, 0xb9, 0x77, 0x76, 0x96, + 0x67, 0xaa, 0x46, 0x6b, 0x09, 0x2b, 0x31, 0xb2, 0x60, 0xe5, 0xcc, 0x0f, 0x09, 0x1f, 0xa8, 0x4d, + 0xb2, 0xda, 0x5a, 0xc2, 0xc9, 0xf7, 0xee, 0xd3, 0xdf, 0xff, 0xe5, 0xdb, 0xfb, 0x8f, 0xe1, 0x43, + 0x1d, 0x04, 0x89, 0xfc, 0x7a, 0x7f, 0x5b, 0x07, 0x31, 0x1e, 0x41, 0xe2, 0xc6, 0x2e, 0x41, 0x2e, + 0x4a, 0x3c, 0x2e, 0xff, 0xc7, 0x36, 0x2a, 0x7f, 0x5e, 0x81, 0xf5, 0xa9, 0xd1, 0x81, 0x10, 0x64, + 0xbb, 0x2c, 0x4e, 0x42, 0xc1, 0xea, 0x37, 0xba, 0x03, 0x59, 0x75, 0x59, 0x99, 0x89, 0xf0, 0xb0, + 0x12, 0xa2, 0x1f, 0x43, 0x36, 0xa6, 0xa1, 0x97, 0x2c, 0x96, 0xef, 0x2f, 0x3e, 0x8f, 0x24, 0x1a, + 0xac, 0x60, 0x68, 0x1f, 0x72, 0x9c, 0xba, 0xd4, 0xef, 0xd3, 0x64, 0x35, 0x5c, 0x83, 0x21, 0x45, + 0x22, 0x0c, 0x8f, 0xba, 0xbe, 0xe7, 0xd1, 0xd0, 0x51, 0x58, 0x27, 0x7d, 0x3a, 0x50, 0x6f, 0xf8, + 0x7e, 0x0a, 0xc9, 0x05, 0x55, 0x5b, 0xa2, 0x60, 0x67, 0x2c, 0x03, 0x57, 0xb5, 0x7d, 0x53, 0x9a, + 0x1f, 0x0c, 0xad, 0x93, 0x92, 0x39, 0x22, 0x17, 0x14, 0x75, 0xe0, 0x16, 0xa7, 0xbf, 0xea, 0xd1, + 0x58, 0xc8, 0x9a, 0xf1, 0x28, 0x8f, 0x1d, 0xc1, 0x1c, 0xe2, 0x79, 0xd6, 0x4a, 0x75, 0xb9, 0x56, + 0xdc, 0x7e, 0xfc, 0xde, 0x38, 0x3d, 0xca, 0xd5, 0x94, 0xd7, 0x37, 0x6d, 0x17, 0xde, 0xd9, 0x2b, + 0xbf, 0x35, 0x96, 0xcd, 0x7f, 0xe6, 0xf0, 0x46, 0xc2, 0xa8, 0x8d, 0xe2, 0x36, 0xdb, 0xf3, 0x3c, + 0xf4, 0x29, 0x6c, 0xcd, 0x71, 0xc4, 0xe9, 0x05, 0xeb, 0x53, 0x2b, 0x5f, 0x5d, 0xae, 0x15, 0xf0, + 0xad, 0x69, 0x1c, 0x56, 0x5a, 0x84, 0xe1, 0xc1, 0xfb, 0xf2, 0x96, 0x2b, 0x49, 0xee, 0x80, 0x6d, + 0xb5, 0x8d, 0xf2, 0x76, 0xfe, 0x8f, 0xff, 0xfa, 0xf7, 0x3f, 0x6e, 0x18, 0x96, 0x81, 0xef, 0xcd, + 0x4d, 0xfd, 0x34, 0xa6, 0xb2, 0x14, 0xb6, 0xd1, 0x73, 0x28, 0xd3, 0xb7, 0x11, 0x75, 0xd5, 0xe1, + 0xa9, 0xe7, 0x15, 0x8d, 0xad, 0x82, 0x4a, 0x79, 0x2b, 0x49, 0x59, 0xbe, 0x1c, 0x65, 0xae, 0x87, + 0xa1, 0x78, 0xf6, 0x09, 0x96, 0xcf, 0x47, 0x6c, 0xa6, 0x98, 0x93, 0x04, 0x82, 0xda, 0x50, 0x76, + 0x99, 0x47, 0x5d, 0xc7, 0x0d, 0x7c, 0xd9, 0xcc, 0x12, 0x64, 0x41, 0xd5, 0xa8, 0x95, 0xb6, 0xef, + 0x4f, 0xf1, 0xec, 0x4b, 0xbb, 0x7d, 0x65, 0xd6, 0x1e, 0x44, 0x7a, 0x51, 0xff, 0x5a, 0x2d, 0xea, + 0x75, 0x77, 0x52, 0x85, 0xbe, 0x80, 0x9b, 0xe3, 0x37, 0xea, 0x24, 0xaf, 0xdf, 0x64, 0xd7, 0x3c, + 0x1a, 0x27, 0x4e, 0x54, 0xd2, 0xc1, 0x89, 0x7a, 0x18, 0xbf, 0xd2, 0x02, 0x8c, 0xe2, 0xd1, 0x35, + 0x27, 0xb2, 0xdd, 0x4f, 0x64, 0x23, 0x35, 0xe0, 0x07, 0x97, 0x37, 0xd2, 0x54, 0xb3, 0x54, 0xfe, + 0x66, 0x40, 0x69, 0x72, 0x37, 0x0e, 0xdb, 0xc1, 0xf8, 0xbf, 0xdb, 0x21, 0xa3, 0xce, 0xfc, 0x7f, + 0x68, 0x87, 0xdd, 0x1d, 0x99, 0x4c, 0x1d, 0x9e, 0x5e, 0x9e, 0xcc, 0x64, 0xe0, 0x95, 0x2f, 0xc1, + 0xc4, 0xd4, 0xf3, 0xe3, 0xf1, 0x64, 0x4c, 0x58, 0xfe, 0x8a, 0x0e, 0x92, 0x59, 0x20, 0x7f, 0xee, + 0xfe, 0x50, 0x52, 0x7f, 0x04, 0xf5, 0xcb, 0xa9, 0xa7, 0x89, 0x2a, 0xdf, 0x1a, 0xb0, 0x3e, 0xb5, + 0xe5, 0xd1, 0x03, 0x58, 0x9d, 0x68, 0x4e, 0xed, 0xa5, 0x38, 0x76, 0x39, 0xe8, 0x2e, 0x14, 0x48, + 0x4f, 0x74, 0x19, 0xf7, 0x85, 0x9e, 0x7d, 0x05, 0x3c, 0x12, 0x5c, 0xf1, 0xce, 0xa6, 0xdc, 0x56, + 0x7e, 0x97, 0x81, 0xf2, 0xcc, 0x6b, 0x40, 0x8e, 0xb8, 0x51, 0x10, 0x63, 0x23, 0x4e, 0x0a, 0xd1, + 0x19, 0xdc, 0x7f, 0x5f, 0x9b, 0xe9, 0x6b, 0x49, 0x5e, 0xf8, 0xb7, 0x67, 0x16, 0xe3, 0x89, 0xfa, + 0x0f, 0x24, 0x27, 0x4e, 0x6b, 0x09, 0xdf, 0x99, 0xdb, 0x78, 0x7a, 0x67, 0xa1, 0x4f, 0x61, 0x55, + 0x56, 0xed, 0x90, 0x51, 0x8f, 0xd3, 0x9b, 0x33, 0x8c, 0x7b, 0xe1, 0xa0, 0xb5, 0x84, 0x8b, 0xca, + 0x56, 0x43, 0x77, 0x9f, 0xc9, 0x73, 0xf8, 0x18, 0x1a, 0x97, 0x9f, 0xc3, 0x4c, 0xce, 0xf6, 0x1a, + 0x14, 0xb5, 0x33, 0xd5, 0x9b, 0x15, 0x0f, 0x60, 0xb4, 0xaa, 0xd0, 0x87, 0x50, 0x22, 0x41, 0x14, + 0x3a, 0xca, 0xb1, 0xcb, 0x82, 0xd8, 0x32, 0xd4, 0x28, 0x5a, 0x93, 0xd2, 0xe3, 0x54, 0xb8, 0xdb, + 0x90, 0xbe, 0x9f, 0x40, 0x6d, 0x41, 0xa9, 0x0d, 0x79, 0x77, 0x1f, 0x49, 0xc0, 0x07, 0x70, 0xef, + 0x52, 0x80, 0xbd, 0x09, 0xa5, 0xf1, 0x45, 0x4d, 0xb9, 0x5a, 0x58, 0x9f, 0x67, 0xf3, 0x60, 0x16, + 0x9f, 0xfc, 0x02, 0x56, 0xb5, 0xad, 0x9e, 0x35, 0xa8, 0x08, 0xb9, 0xd3, 0xa3, 0x9f, 0x1e, 0xbd, + 0x7e, 0x73, 0x64, 0x2e, 0xc9, 0x8f, 0x56, 0x73, 0xef, 0x65, 0xbb, 0xf5, 0x33, 0xd3, 0x40, 0x6b, + 0x50, 0x38, 0x3d, 0x4a, 0x3f, 0x33, 0x68, 0x15, 0xf2, 0x07, 0x78, 0xef, 0xf0, 0xe8, 0xf0, 0xe8, + 0x85, 0xb9, 0x2c, 0x2d, 0xdb, 0x87, 0xaf, 0x9a, 0xaf, 0x4f, 0xdb, 0x66, 0x56, 0xa9, 0x9a, 0x2f, + 0xf0, 0xde, 0x41, 0xf3, 0xc0, 0xbc, 0x61, 0x7f, 0xf6, 0xa7, 0x6f, 0xfe, 0xfa, 0xf7, 0x95, 0x8c, + 0x99, 0x81, 0x87, 0x3e, 0xd3, 0xb5, 0x1e, 0x71, 0xf6, 0x76, 0x30, 0xb7, 0x17, 0x6d, 0x73, 0x2c, + 0x72, 0x75, 0x32, 0xc7, 0xc6, 0xd9, 0x8a, 0x3a, 0xb7, 0x9d, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, + 0x07, 0xe6, 0xaf, 0x73, 0x3b, 0x10, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/health_check.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/health_check.pb.validate.go new file mode 100644 index 000000000..028c12d4d --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/health_check.pb.validate.go @@ -0,0 +1,1052 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/core/v3/health_check.proto + +package envoy_config_core_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" + + v3 "github.com/envoyproxy/go-control-plane/envoy/type/v3" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} + + _ = v3.CodecClientType(0) +) + +// define the regex for a UUID once up-front +var _health_check_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on HealthCheck with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *HealthCheck) Validate() error { + if m == nil { + return nil + } + + if m.GetTimeout() == nil { + return HealthCheckValidationError{ + field: "Timeout", + reason: "value is required", + } + } + + if d := m.GetTimeout(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return HealthCheckValidationError{ + field: "Timeout", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur <= gt { + return HealthCheckValidationError{ + field: "Timeout", + reason: "value must be greater than 0s", + } + } + + } + + if m.GetInterval() == nil { + return HealthCheckValidationError{ + field: "Interval", + reason: "value is required", + } + } + + if d := m.GetInterval(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return HealthCheckValidationError{ + field: "Interval", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur <= gt { + return HealthCheckValidationError{ + field: "Interval", + reason: "value must be greater than 0s", + } + } + + } + + if v, ok := interface{}(m.GetInitialJitter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheckValidationError{ + field: "InitialJitter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetIntervalJitter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheckValidationError{ + field: "IntervalJitter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for IntervalJitterPercent + + if m.GetUnhealthyThreshold() == nil { + return HealthCheckValidationError{ + field: "UnhealthyThreshold", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetUnhealthyThreshold()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheckValidationError{ + field: "UnhealthyThreshold", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if m.GetHealthyThreshold() == nil { + return HealthCheckValidationError{ + field: "HealthyThreshold", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetHealthyThreshold()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheckValidationError{ + field: "HealthyThreshold", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetAltPort()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheckValidationError{ + field: "AltPort", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetReuseConnection()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheckValidationError{ + field: "ReuseConnection", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if d := m.GetNoTrafficInterval(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return HealthCheckValidationError{ + field: "NoTrafficInterval", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur <= gt { + return HealthCheckValidationError{ + field: "NoTrafficInterval", + reason: "value must be greater than 0s", + } + } + + } + + if d := m.GetUnhealthyInterval(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return HealthCheckValidationError{ + field: "UnhealthyInterval", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur <= gt { + return HealthCheckValidationError{ + field: "UnhealthyInterval", + reason: "value must be greater than 0s", + } + } + + } + + if d := m.GetUnhealthyEdgeInterval(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return HealthCheckValidationError{ + field: "UnhealthyEdgeInterval", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur <= gt { + return HealthCheckValidationError{ + field: "UnhealthyEdgeInterval", + reason: "value must be greater than 0s", + } + } + + } + + if d := m.GetHealthyEdgeInterval(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return HealthCheckValidationError{ + field: "HealthyEdgeInterval", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur <= gt { + return HealthCheckValidationError{ + field: "HealthyEdgeInterval", + reason: "value must be greater than 0s", + } + } + + } + + // no validation rules for EventLogPath + + if v, ok := interface{}(m.GetEventService()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheckValidationError{ + field: "EventService", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for AlwaysLogHealthCheckFailures + + if v, ok := interface{}(m.GetTlsOptions()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheckValidationError{ + field: "TlsOptions", + reason: "embedded message failed validation", + cause: err, + } + } + } + + switch m.HealthChecker.(type) { + + case *HealthCheck_HttpHealthCheck_: + + if v, ok := interface{}(m.GetHttpHealthCheck()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheckValidationError{ + field: "HttpHealthCheck", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *HealthCheck_TcpHealthCheck_: + + if v, ok := interface{}(m.GetTcpHealthCheck()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheckValidationError{ + field: "TcpHealthCheck", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *HealthCheck_GrpcHealthCheck_: + + if v, ok := interface{}(m.GetGrpcHealthCheck()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheckValidationError{ + field: "GrpcHealthCheck", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *HealthCheck_CustomHealthCheck_: + + if v, ok := interface{}(m.GetCustomHealthCheck()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheckValidationError{ + field: "CustomHealthCheck", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return HealthCheckValidationError{ + field: "HealthChecker", + reason: "value is required", + } + + } + + return nil +} + +// HealthCheckValidationError is the validation error returned by +// HealthCheck.Validate if the designated constraints aren't met. +type HealthCheckValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HealthCheckValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HealthCheckValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HealthCheckValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HealthCheckValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HealthCheckValidationError) ErrorName() string { return "HealthCheckValidationError" } + +// Error satisfies the builtin error interface +func (e HealthCheckValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHealthCheck.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HealthCheckValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HealthCheckValidationError{} + +// Validate checks the field values on HealthCheck_Payload with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *HealthCheck_Payload) Validate() error { + if m == nil { + return nil + } + + switch m.Payload.(type) { + + case *HealthCheck_Payload_Text: + + if len(m.GetText()) < 1 { + return HealthCheck_PayloadValidationError{ + field: "Text", + reason: "value length must be at least 1 bytes", + } + } + + case *HealthCheck_Payload_Binary: + // no validation rules for Binary + + default: + return HealthCheck_PayloadValidationError{ + field: "Payload", + reason: "value is required", + } + + } + + return nil +} + +// HealthCheck_PayloadValidationError is the validation error returned by +// HealthCheck_Payload.Validate if the designated constraints aren't met. +type HealthCheck_PayloadValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HealthCheck_PayloadValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HealthCheck_PayloadValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HealthCheck_PayloadValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HealthCheck_PayloadValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HealthCheck_PayloadValidationError) ErrorName() string { + return "HealthCheck_PayloadValidationError" +} + +// Error satisfies the builtin error interface +func (e HealthCheck_PayloadValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHealthCheck_Payload.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HealthCheck_PayloadValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HealthCheck_PayloadValidationError{} + +// Validate checks the field values on HealthCheck_HttpHealthCheck with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *HealthCheck_HttpHealthCheck) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Host + + if len(m.GetPath()) < 1 { + return HealthCheck_HttpHealthCheckValidationError{ + field: "Path", + reason: "value length must be at least 1 bytes", + } + } + + if v, ok := interface{}(m.GetSend()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheck_HttpHealthCheckValidationError{ + field: "Send", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetReceive()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheck_HttpHealthCheckValidationError{ + field: "Receive", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for HiddenEnvoyDeprecatedServiceName + + if len(m.GetRequestHeadersToAdd()) > 1000 { + return HealthCheck_HttpHealthCheckValidationError{ + field: "RequestHeadersToAdd", + reason: "value must contain no more than 1000 item(s)", + } + } + + for idx, item := range m.GetRequestHeadersToAdd() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheck_HttpHealthCheckValidationError{ + field: fmt.Sprintf("RequestHeadersToAdd[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for HiddenEnvoyDeprecatedUseHttp2 + + for idx, item := range m.GetExpectedStatuses() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheck_HttpHealthCheckValidationError{ + field: fmt.Sprintf("ExpectedStatuses[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if _, ok := v3.CodecClientType_name[int32(m.GetCodecClientType())]; !ok { + return HealthCheck_HttpHealthCheckValidationError{ + field: "CodecClientType", + reason: "value must be one of the defined enum values", + } + } + + if v, ok := interface{}(m.GetServiceNameMatcher()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheck_HttpHealthCheckValidationError{ + field: "ServiceNameMatcher", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// HealthCheck_HttpHealthCheckValidationError is the validation error returned +// by HealthCheck_HttpHealthCheck.Validate if the designated constraints +// aren't met. +type HealthCheck_HttpHealthCheckValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HealthCheck_HttpHealthCheckValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HealthCheck_HttpHealthCheckValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HealthCheck_HttpHealthCheckValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HealthCheck_HttpHealthCheckValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HealthCheck_HttpHealthCheckValidationError) ErrorName() string { + return "HealthCheck_HttpHealthCheckValidationError" +} + +// Error satisfies the builtin error interface +func (e HealthCheck_HttpHealthCheckValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHealthCheck_HttpHealthCheck.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HealthCheck_HttpHealthCheckValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HealthCheck_HttpHealthCheckValidationError{} + +// Validate checks the field values on HealthCheck_TcpHealthCheck with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *HealthCheck_TcpHealthCheck) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetSend()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheck_TcpHealthCheckValidationError{ + field: "Send", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetReceive() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheck_TcpHealthCheckValidationError{ + field: fmt.Sprintf("Receive[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// HealthCheck_TcpHealthCheckValidationError is the validation error returned +// by HealthCheck_TcpHealthCheck.Validate if the designated constraints aren't met. +type HealthCheck_TcpHealthCheckValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HealthCheck_TcpHealthCheckValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HealthCheck_TcpHealthCheckValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HealthCheck_TcpHealthCheckValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HealthCheck_TcpHealthCheckValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HealthCheck_TcpHealthCheckValidationError) ErrorName() string { + return "HealthCheck_TcpHealthCheckValidationError" +} + +// Error satisfies the builtin error interface +func (e HealthCheck_TcpHealthCheckValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHealthCheck_TcpHealthCheck.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HealthCheck_TcpHealthCheckValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HealthCheck_TcpHealthCheckValidationError{} + +// Validate checks the field values on HealthCheck_RedisHealthCheck with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *HealthCheck_RedisHealthCheck) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Key + + return nil +} + +// HealthCheck_RedisHealthCheckValidationError is the validation error returned +// by HealthCheck_RedisHealthCheck.Validate if the designated constraints +// aren't met. +type HealthCheck_RedisHealthCheckValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HealthCheck_RedisHealthCheckValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HealthCheck_RedisHealthCheckValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HealthCheck_RedisHealthCheckValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HealthCheck_RedisHealthCheckValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HealthCheck_RedisHealthCheckValidationError) ErrorName() string { + return "HealthCheck_RedisHealthCheckValidationError" +} + +// Error satisfies the builtin error interface +func (e HealthCheck_RedisHealthCheckValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHealthCheck_RedisHealthCheck.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HealthCheck_RedisHealthCheckValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HealthCheck_RedisHealthCheckValidationError{} + +// Validate checks the field values on HealthCheck_GrpcHealthCheck with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *HealthCheck_GrpcHealthCheck) Validate() error { + if m == nil { + return nil + } + + // no validation rules for ServiceName + + // no validation rules for Authority + + return nil +} + +// HealthCheck_GrpcHealthCheckValidationError is the validation error returned +// by HealthCheck_GrpcHealthCheck.Validate if the designated constraints +// aren't met. +type HealthCheck_GrpcHealthCheckValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HealthCheck_GrpcHealthCheckValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HealthCheck_GrpcHealthCheckValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HealthCheck_GrpcHealthCheckValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HealthCheck_GrpcHealthCheckValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HealthCheck_GrpcHealthCheckValidationError) ErrorName() string { + return "HealthCheck_GrpcHealthCheckValidationError" +} + +// Error satisfies the builtin error interface +func (e HealthCheck_GrpcHealthCheckValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHealthCheck_GrpcHealthCheck.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HealthCheck_GrpcHealthCheckValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HealthCheck_GrpcHealthCheckValidationError{} + +// Validate checks the field values on HealthCheck_CustomHealthCheck with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *HealthCheck_CustomHealthCheck) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return HealthCheck_CustomHealthCheckValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + switch m.ConfigType.(type) { + + case *HealthCheck_CustomHealthCheck_HiddenEnvoyDeprecatedConfig: + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheck_CustomHealthCheckValidationError{ + field: "HiddenEnvoyDeprecatedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *HealthCheck_CustomHealthCheck_TypedConfig: + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheck_CustomHealthCheckValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// HealthCheck_CustomHealthCheckValidationError is the validation error +// returned by HealthCheck_CustomHealthCheck.Validate if the designated +// constraints aren't met. +type HealthCheck_CustomHealthCheckValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HealthCheck_CustomHealthCheckValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HealthCheck_CustomHealthCheckValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HealthCheck_CustomHealthCheckValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HealthCheck_CustomHealthCheckValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HealthCheck_CustomHealthCheckValidationError) ErrorName() string { + return "HealthCheck_CustomHealthCheckValidationError" +} + +// Error satisfies the builtin error interface +func (e HealthCheck_CustomHealthCheckValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHealthCheck_CustomHealthCheck.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HealthCheck_CustomHealthCheckValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HealthCheck_CustomHealthCheckValidationError{} + +// Validate checks the field values on HealthCheck_TlsOptions with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *HealthCheck_TlsOptions) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// HealthCheck_TlsOptionsValidationError is the validation error returned by +// HealthCheck_TlsOptions.Validate if the designated constraints aren't met. +type HealthCheck_TlsOptionsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HealthCheck_TlsOptionsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HealthCheck_TlsOptionsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HealthCheck_TlsOptionsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HealthCheck_TlsOptionsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HealthCheck_TlsOptionsValidationError) ErrorName() string { + return "HealthCheck_TlsOptionsValidationError" +} + +// Error satisfies the builtin error interface +func (e HealthCheck_TlsOptionsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHealthCheck_TlsOptions.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HealthCheck_TlsOptionsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HealthCheck_TlsOptionsValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/http_uri.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/http_uri.pb.go new file mode 100644 index 000000000..7c7a252d1 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/http_uri.pb.go @@ -0,0 +1,138 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/core/v3/http_uri.proto + +package envoy_config_core_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + duration "github.com/golang/protobuf/ptypes/duration" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type HttpUri struct { + Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` + // Types that are valid to be assigned to HttpUpstreamType: + // *HttpUri_Cluster + HttpUpstreamType isHttpUri_HttpUpstreamType `protobuf_oneof:"http_upstream_type"` + Timeout *duration.Duration `protobuf:"bytes,3,opt,name=timeout,proto3" json:"timeout,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HttpUri) Reset() { *m = HttpUri{} } +func (m *HttpUri) String() string { return proto.CompactTextString(m) } +func (*HttpUri) ProtoMessage() {} +func (*HttpUri) Descriptor() ([]byte, []int) { + return fileDescriptor_4026d4ca9f4f1539, []int{0} +} + +func (m *HttpUri) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HttpUri.Unmarshal(m, b) +} +func (m *HttpUri) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HttpUri.Marshal(b, m, deterministic) +} +func (m *HttpUri) XXX_Merge(src proto.Message) { + xxx_messageInfo_HttpUri.Merge(m, src) +} +func (m *HttpUri) XXX_Size() int { + return xxx_messageInfo_HttpUri.Size(m) +} +func (m *HttpUri) XXX_DiscardUnknown() { + xxx_messageInfo_HttpUri.DiscardUnknown(m) +} + +var xxx_messageInfo_HttpUri proto.InternalMessageInfo + +func (m *HttpUri) GetUri() string { + if m != nil { + return m.Uri + } + return "" +} + +type isHttpUri_HttpUpstreamType interface { + isHttpUri_HttpUpstreamType() +} + +type HttpUri_Cluster struct { + Cluster string `protobuf:"bytes,2,opt,name=cluster,proto3,oneof"` +} + +func (*HttpUri_Cluster) isHttpUri_HttpUpstreamType() {} + +func (m *HttpUri) GetHttpUpstreamType() isHttpUri_HttpUpstreamType { + if m != nil { + return m.HttpUpstreamType + } + return nil +} + +func (m *HttpUri) GetCluster() string { + if x, ok := m.GetHttpUpstreamType().(*HttpUri_Cluster); ok { + return x.Cluster + } + return "" +} + +func (m *HttpUri) GetTimeout() *duration.Duration { + if m != nil { + return m.Timeout + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*HttpUri) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*HttpUri_Cluster)(nil), + } +} + +func init() { + proto.RegisterType((*HttpUri)(nil), "envoy.config.core.v3.HttpUri") +} + +func init() { + proto.RegisterFile("envoy/config/core/v3/http_uri.proto", fileDescriptor_4026d4ca9f4f1539) +} + +var fileDescriptor_4026d4ca9f4f1539 = []byte{ + // 328 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x90, 0xb1, 0x4a, 0x33, 0x41, + 0x14, 0x85, 0x33, 0x9b, 0x90, 0xfd, 0xff, 0xd1, 0x42, 0x16, 0xc1, 0x6c, 0xc4, 0xb0, 0x26, 0x4d, + 0xaa, 0x19, 0x48, 0x3a, 0x11, 0x84, 0xc1, 0x22, 0x65, 0x08, 0x58, 0x87, 0x49, 0x32, 0x59, 0x07, + 0x92, 0xbd, 0xc3, 0xec, 0x9d, 0xc5, 0x74, 0x96, 0x3e, 0x83, 0x8f, 0xe0, 0x23, 0xd8, 0x8b, 0xb6, + 0xbe, 0x8d, 0xa4, 0x92, 0xec, 0xec, 0x16, 0xa2, 0xdd, 0xe5, 0x9e, 0xef, 0x5e, 0xce, 0x39, 0x74, + 0xa0, 0xb2, 0x02, 0x76, 0x7c, 0x09, 0xd9, 0x5a, 0xa7, 0x7c, 0x09, 0x56, 0xf1, 0x62, 0xcc, 0xef, + 0x11, 0xcd, 0xdc, 0x59, 0xcd, 0x8c, 0x05, 0x84, 0xe8, 0xb4, 0x84, 0x98, 0x87, 0xd8, 0x01, 0x62, + 0xc5, 0xb8, 0xdb, 0x4b, 0x01, 0xd2, 0x8d, 0xe2, 0x25, 0xb3, 0x70, 0x6b, 0xbe, 0x72, 0x56, 0xa2, + 0x86, 0xcc, 0x5f, 0x75, 0x2f, 0xdc, 0xca, 0x48, 0x2e, 0xb3, 0x0c, 0xb0, 0x5c, 0xe7, 0x3c, 0x47, + 0x89, 0x2e, 0xaf, 0xe4, 0xcb, 0x5f, 0x72, 0xa1, 0x6c, 0xae, 0x21, 0xd3, 0x59, 0x5a, 0x21, 0x67, + 0x85, 0xdc, 0xe8, 0x95, 0x44, 0xc5, 0xeb, 0xc1, 0x0b, 0xfd, 0x77, 0x42, 0xc3, 0x09, 0xa2, 0xb9, + 0xb3, 0x3a, 0x8a, 0x69, 0xd3, 0x59, 0xdd, 0x21, 0x09, 0x19, 0xfe, 0x17, 0xe1, 0x5e, 0xb4, 0x6c, + 0x90, 0x90, 0xd9, 0x61, 0x17, 0x0d, 0x68, 0xb8, 0xdc, 0xb8, 0x1c, 0x95, 0xed, 0x04, 0x3f, 0xe4, + 0x49, 0x63, 0x56, 0x2b, 0xd1, 0x0d, 0x0d, 0x51, 0x6f, 0x15, 0x38, 0xec, 0x34, 0x13, 0x32, 0x3c, + 0x1a, 0xc5, 0xcc, 0x07, 0x63, 0x75, 0x30, 0x76, 0x5b, 0x05, 0x13, 0x74, 0x2f, 0xc2, 0x17, 0xd2, + 0xfa, 0x47, 0x46, 0x8d, 0x59, 0x7d, 0x75, 0x95, 0x3c, 0xbf, 0x3d, 0xf5, 0xce, 0x69, 0xec, 0x4b, + 0x92, 0x46, 0xb3, 0x62, 0xe4, 0x4b, 0xaa, 0x2c, 0x8a, 0x98, 0x46, 0xbe, 0x51, 0x93, 0xa3, 0x55, + 0x72, 0x3b, 0xc7, 0x9d, 0x51, 0x51, 0xf3, 0x4b, 0x10, 0x71, 0xfd, 0xfa, 0xf8, 0xf1, 0xd9, 0x0e, + 0x4e, 0x02, 0xda, 0xd7, 0xc0, 0xca, 0x17, 0xc6, 0xc2, 0xc3, 0x8e, 0xfd, 0x55, 0xb9, 0x38, 0xae, + 0x3e, 0x4e, 0x0f, 0xce, 0xa6, 0x64, 0xd1, 0x2e, 0x2d, 0x8e, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, + 0xfe, 0xc4, 0xd8, 0x15, 0xc6, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/http_uri.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/http_uri.pb.validate.go new file mode 100644 index 000000000..3fdd2385f --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/http_uri.pb.validate.go @@ -0,0 +1,155 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/core/v3/http_uri.proto + +package envoy_config_core_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _http_uri_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on HttpUri with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *HttpUri) Validate() error { + if m == nil { + return nil + } + + if len(m.GetUri()) < 1 { + return HttpUriValidationError{ + field: "Uri", + reason: "value length must be at least 1 bytes", + } + } + + if m.GetTimeout() == nil { + return HttpUriValidationError{ + field: "Timeout", + reason: "value is required", + } + } + + if d := m.GetTimeout(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return HttpUriValidationError{ + field: "Timeout", + reason: "value is not a valid duration", + cause: err, + } + } + + gte := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur < gte { + return HttpUriValidationError{ + field: "Timeout", + reason: "value must be greater than or equal to 0s", + } + } + + } + + switch m.HttpUpstreamType.(type) { + + case *HttpUri_Cluster: + + if len(m.GetCluster()) < 1 { + return HttpUriValidationError{ + field: "Cluster", + reason: "value length must be at least 1 bytes", + } + } + + default: + return HttpUriValidationError{ + field: "HttpUpstreamType", + reason: "value is required", + } + + } + + return nil +} + +// HttpUriValidationError is the validation error returned by HttpUri.Validate +// if the designated constraints aren't met. +type HttpUriValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HttpUriValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HttpUriValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HttpUriValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HttpUriValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HttpUriValidationError) ErrorName() string { return "HttpUriValidationError" } + +// Error satisfies the builtin error interface +func (e HttpUriValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHttpUri.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HttpUriValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HttpUriValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/protocol.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/protocol.pb.go new file mode 100644 index 000000000..7fb396666 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/protocol.pb.go @@ -0,0 +1,661 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/core/v3/protocol.proto + +package envoy_config_core_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + duration "github.com/golang/protobuf/ptypes/duration" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type TcpProtocolOptions struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TcpProtocolOptions) Reset() { *m = TcpProtocolOptions{} } +func (m *TcpProtocolOptions) String() string { return proto.CompactTextString(m) } +func (*TcpProtocolOptions) ProtoMessage() {} +func (*TcpProtocolOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_767741306bfd0da6, []int{0} +} + +func (m *TcpProtocolOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TcpProtocolOptions.Unmarshal(m, b) +} +func (m *TcpProtocolOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TcpProtocolOptions.Marshal(b, m, deterministic) +} +func (m *TcpProtocolOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_TcpProtocolOptions.Merge(m, src) +} +func (m *TcpProtocolOptions) XXX_Size() int { + return xxx_messageInfo_TcpProtocolOptions.Size(m) +} +func (m *TcpProtocolOptions) XXX_DiscardUnknown() { + xxx_messageInfo_TcpProtocolOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_TcpProtocolOptions proto.InternalMessageInfo + +type UpstreamHttpProtocolOptions struct { + AutoSni bool `protobuf:"varint,1,opt,name=auto_sni,json=autoSni,proto3" json:"auto_sni,omitempty"` + AutoSanValidation bool `protobuf:"varint,2,opt,name=auto_san_validation,json=autoSanValidation,proto3" json:"auto_san_validation,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UpstreamHttpProtocolOptions) Reset() { *m = UpstreamHttpProtocolOptions{} } +func (m *UpstreamHttpProtocolOptions) String() string { return proto.CompactTextString(m) } +func (*UpstreamHttpProtocolOptions) ProtoMessage() {} +func (*UpstreamHttpProtocolOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_767741306bfd0da6, []int{1} +} + +func (m *UpstreamHttpProtocolOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpstreamHttpProtocolOptions.Unmarshal(m, b) +} +func (m *UpstreamHttpProtocolOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpstreamHttpProtocolOptions.Marshal(b, m, deterministic) +} +func (m *UpstreamHttpProtocolOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpstreamHttpProtocolOptions.Merge(m, src) +} +func (m *UpstreamHttpProtocolOptions) XXX_Size() int { + return xxx_messageInfo_UpstreamHttpProtocolOptions.Size(m) +} +func (m *UpstreamHttpProtocolOptions) XXX_DiscardUnknown() { + xxx_messageInfo_UpstreamHttpProtocolOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_UpstreamHttpProtocolOptions proto.InternalMessageInfo + +func (m *UpstreamHttpProtocolOptions) GetAutoSni() bool { + if m != nil { + return m.AutoSni + } + return false +} + +func (m *UpstreamHttpProtocolOptions) GetAutoSanValidation() bool { + if m != nil { + return m.AutoSanValidation + } + return false +} + +type HttpProtocolOptions struct { + IdleTimeout *duration.Duration `protobuf:"bytes,1,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"` + MaxConnectionDuration *duration.Duration `protobuf:"bytes,3,opt,name=max_connection_duration,json=maxConnectionDuration,proto3" json:"max_connection_duration,omitempty"` + MaxHeadersCount *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=max_headers_count,json=maxHeadersCount,proto3" json:"max_headers_count,omitempty"` + MaxStreamDuration *duration.Duration `protobuf:"bytes,4,opt,name=max_stream_duration,json=maxStreamDuration,proto3" json:"max_stream_duration,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HttpProtocolOptions) Reset() { *m = HttpProtocolOptions{} } +func (m *HttpProtocolOptions) String() string { return proto.CompactTextString(m) } +func (*HttpProtocolOptions) ProtoMessage() {} +func (*HttpProtocolOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_767741306bfd0da6, []int{2} +} + +func (m *HttpProtocolOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HttpProtocolOptions.Unmarshal(m, b) +} +func (m *HttpProtocolOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HttpProtocolOptions.Marshal(b, m, deterministic) +} +func (m *HttpProtocolOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_HttpProtocolOptions.Merge(m, src) +} +func (m *HttpProtocolOptions) XXX_Size() int { + return xxx_messageInfo_HttpProtocolOptions.Size(m) +} +func (m *HttpProtocolOptions) XXX_DiscardUnknown() { + xxx_messageInfo_HttpProtocolOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_HttpProtocolOptions proto.InternalMessageInfo + +func (m *HttpProtocolOptions) GetIdleTimeout() *duration.Duration { + if m != nil { + return m.IdleTimeout + } + return nil +} + +func (m *HttpProtocolOptions) GetMaxConnectionDuration() *duration.Duration { + if m != nil { + return m.MaxConnectionDuration + } + return nil +} + +func (m *HttpProtocolOptions) GetMaxHeadersCount() *wrappers.UInt32Value { + if m != nil { + return m.MaxHeadersCount + } + return nil +} + +func (m *HttpProtocolOptions) GetMaxStreamDuration() *duration.Duration { + if m != nil { + return m.MaxStreamDuration + } + return nil +} + +type Http1ProtocolOptions struct { + AllowAbsoluteUrl *wrappers.BoolValue `protobuf:"bytes,1,opt,name=allow_absolute_url,json=allowAbsoluteUrl,proto3" json:"allow_absolute_url,omitempty"` + AcceptHttp_10 bool `protobuf:"varint,2,opt,name=accept_http_10,json=acceptHttp10,proto3" json:"accept_http_10,omitempty"` + DefaultHostForHttp_10 string `protobuf:"bytes,3,opt,name=default_host_for_http_10,json=defaultHostForHttp10,proto3" json:"default_host_for_http_10,omitempty"` + HeaderKeyFormat *Http1ProtocolOptions_HeaderKeyFormat `protobuf:"bytes,4,opt,name=header_key_format,json=headerKeyFormat,proto3" json:"header_key_format,omitempty"` + EnableTrailers bool `protobuf:"varint,5,opt,name=enable_trailers,json=enableTrailers,proto3" json:"enable_trailers,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Http1ProtocolOptions) Reset() { *m = Http1ProtocolOptions{} } +func (m *Http1ProtocolOptions) String() string { return proto.CompactTextString(m) } +func (*Http1ProtocolOptions) ProtoMessage() {} +func (*Http1ProtocolOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_767741306bfd0da6, []int{3} +} + +func (m *Http1ProtocolOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Http1ProtocolOptions.Unmarshal(m, b) +} +func (m *Http1ProtocolOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Http1ProtocolOptions.Marshal(b, m, deterministic) +} +func (m *Http1ProtocolOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_Http1ProtocolOptions.Merge(m, src) +} +func (m *Http1ProtocolOptions) XXX_Size() int { + return xxx_messageInfo_Http1ProtocolOptions.Size(m) +} +func (m *Http1ProtocolOptions) XXX_DiscardUnknown() { + xxx_messageInfo_Http1ProtocolOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_Http1ProtocolOptions proto.InternalMessageInfo + +func (m *Http1ProtocolOptions) GetAllowAbsoluteUrl() *wrappers.BoolValue { + if m != nil { + return m.AllowAbsoluteUrl + } + return nil +} + +func (m *Http1ProtocolOptions) GetAcceptHttp_10() bool { + if m != nil { + return m.AcceptHttp_10 + } + return false +} + +func (m *Http1ProtocolOptions) GetDefaultHostForHttp_10() string { + if m != nil { + return m.DefaultHostForHttp_10 + } + return "" +} + +func (m *Http1ProtocolOptions) GetHeaderKeyFormat() *Http1ProtocolOptions_HeaderKeyFormat { + if m != nil { + return m.HeaderKeyFormat + } + return nil +} + +func (m *Http1ProtocolOptions) GetEnableTrailers() bool { + if m != nil { + return m.EnableTrailers + } + return false +} + +type Http1ProtocolOptions_HeaderKeyFormat struct { + // Types that are valid to be assigned to HeaderFormat: + // *Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords_ + HeaderFormat isHttp1ProtocolOptions_HeaderKeyFormat_HeaderFormat `protobuf_oneof:"header_format"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Http1ProtocolOptions_HeaderKeyFormat) Reset() { *m = Http1ProtocolOptions_HeaderKeyFormat{} } +func (m *Http1ProtocolOptions_HeaderKeyFormat) String() string { return proto.CompactTextString(m) } +func (*Http1ProtocolOptions_HeaderKeyFormat) ProtoMessage() {} +func (*Http1ProtocolOptions_HeaderKeyFormat) Descriptor() ([]byte, []int) { + return fileDescriptor_767741306bfd0da6, []int{3, 0} +} + +func (m *Http1ProtocolOptions_HeaderKeyFormat) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Http1ProtocolOptions_HeaderKeyFormat.Unmarshal(m, b) +} +func (m *Http1ProtocolOptions_HeaderKeyFormat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Http1ProtocolOptions_HeaderKeyFormat.Marshal(b, m, deterministic) +} +func (m *Http1ProtocolOptions_HeaderKeyFormat) XXX_Merge(src proto.Message) { + xxx_messageInfo_Http1ProtocolOptions_HeaderKeyFormat.Merge(m, src) +} +func (m *Http1ProtocolOptions_HeaderKeyFormat) XXX_Size() int { + return xxx_messageInfo_Http1ProtocolOptions_HeaderKeyFormat.Size(m) +} +func (m *Http1ProtocolOptions_HeaderKeyFormat) XXX_DiscardUnknown() { + xxx_messageInfo_Http1ProtocolOptions_HeaderKeyFormat.DiscardUnknown(m) +} + +var xxx_messageInfo_Http1ProtocolOptions_HeaderKeyFormat proto.InternalMessageInfo + +type isHttp1ProtocolOptions_HeaderKeyFormat_HeaderFormat interface { + isHttp1ProtocolOptions_HeaderKeyFormat_HeaderFormat() +} + +type Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords_ struct { + ProperCaseWords *Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords `protobuf:"bytes,1,opt,name=proper_case_words,json=properCaseWords,proto3,oneof"` +} + +func (*Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords_) isHttp1ProtocolOptions_HeaderKeyFormat_HeaderFormat() { +} + +func (m *Http1ProtocolOptions_HeaderKeyFormat) GetHeaderFormat() isHttp1ProtocolOptions_HeaderKeyFormat_HeaderFormat { + if m != nil { + return m.HeaderFormat + } + return nil +} + +func (m *Http1ProtocolOptions_HeaderKeyFormat) GetProperCaseWords() *Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords { + if x, ok := m.GetHeaderFormat().(*Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords_); ok { + return x.ProperCaseWords + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Http1ProtocolOptions_HeaderKeyFormat) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords_)(nil), + } +} + +type Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords) Reset() { + *m = Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords{} +} +func (m *Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords) String() string { + return proto.CompactTextString(m) +} +func (*Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords) ProtoMessage() {} +func (*Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords) Descriptor() ([]byte, []int) { + return fileDescriptor_767741306bfd0da6, []int{3, 0, 0} +} + +func (m *Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords.Unmarshal(m, b) +} +func (m *Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords.Marshal(b, m, deterministic) +} +func (m *Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords) XXX_Merge(src proto.Message) { + xxx_messageInfo_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords.Merge(m, src) +} +func (m *Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords) XXX_Size() int { + return xxx_messageInfo_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords.Size(m) +} +func (m *Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords) XXX_DiscardUnknown() { + xxx_messageInfo_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords.DiscardUnknown(m) +} + +var xxx_messageInfo_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords proto.InternalMessageInfo + +type Http2ProtocolOptions struct { + HpackTableSize *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=hpack_table_size,json=hpackTableSize,proto3" json:"hpack_table_size,omitempty"` + MaxConcurrentStreams *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=max_concurrent_streams,json=maxConcurrentStreams,proto3" json:"max_concurrent_streams,omitempty"` + InitialStreamWindowSize *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=initial_stream_window_size,json=initialStreamWindowSize,proto3" json:"initial_stream_window_size,omitempty"` + InitialConnectionWindowSize *wrappers.UInt32Value `protobuf:"bytes,4,opt,name=initial_connection_window_size,json=initialConnectionWindowSize,proto3" json:"initial_connection_window_size,omitempty"` + AllowConnect bool `protobuf:"varint,5,opt,name=allow_connect,json=allowConnect,proto3" json:"allow_connect,omitempty"` + AllowMetadata bool `protobuf:"varint,6,opt,name=allow_metadata,json=allowMetadata,proto3" json:"allow_metadata,omitempty"` + MaxOutboundFrames *wrappers.UInt32Value `protobuf:"bytes,7,opt,name=max_outbound_frames,json=maxOutboundFrames,proto3" json:"max_outbound_frames,omitempty"` + MaxOutboundControlFrames *wrappers.UInt32Value `protobuf:"bytes,8,opt,name=max_outbound_control_frames,json=maxOutboundControlFrames,proto3" json:"max_outbound_control_frames,omitempty"` + MaxConsecutiveInboundFramesWithEmptyPayload *wrappers.UInt32Value `protobuf:"bytes,9,opt,name=max_consecutive_inbound_frames_with_empty_payload,json=maxConsecutiveInboundFramesWithEmptyPayload,proto3" json:"max_consecutive_inbound_frames_with_empty_payload,omitempty"` + MaxInboundPriorityFramesPerStream *wrappers.UInt32Value `protobuf:"bytes,10,opt,name=max_inbound_priority_frames_per_stream,json=maxInboundPriorityFramesPerStream,proto3" json:"max_inbound_priority_frames_per_stream,omitempty"` + MaxInboundWindowUpdateFramesPerDataFrameSent *wrappers.UInt32Value `protobuf:"bytes,11,opt,name=max_inbound_window_update_frames_per_data_frame_sent,json=maxInboundWindowUpdateFramesPerDataFrameSent,proto3" json:"max_inbound_window_update_frames_per_data_frame_sent,omitempty"` + StreamErrorOnInvalidHttpMessaging bool `protobuf:"varint,12,opt,name=stream_error_on_invalid_http_messaging,json=streamErrorOnInvalidHttpMessaging,proto3" json:"stream_error_on_invalid_http_messaging,omitempty"` + CustomSettingsParameters []*Http2ProtocolOptions_SettingsParameter `protobuf:"bytes,13,rep,name=custom_settings_parameters,json=customSettingsParameters,proto3" json:"custom_settings_parameters,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Http2ProtocolOptions) Reset() { *m = Http2ProtocolOptions{} } +func (m *Http2ProtocolOptions) String() string { return proto.CompactTextString(m) } +func (*Http2ProtocolOptions) ProtoMessage() {} +func (*Http2ProtocolOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_767741306bfd0da6, []int{4} +} + +func (m *Http2ProtocolOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Http2ProtocolOptions.Unmarshal(m, b) +} +func (m *Http2ProtocolOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Http2ProtocolOptions.Marshal(b, m, deterministic) +} +func (m *Http2ProtocolOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_Http2ProtocolOptions.Merge(m, src) +} +func (m *Http2ProtocolOptions) XXX_Size() int { + return xxx_messageInfo_Http2ProtocolOptions.Size(m) +} +func (m *Http2ProtocolOptions) XXX_DiscardUnknown() { + xxx_messageInfo_Http2ProtocolOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_Http2ProtocolOptions proto.InternalMessageInfo + +func (m *Http2ProtocolOptions) GetHpackTableSize() *wrappers.UInt32Value { + if m != nil { + return m.HpackTableSize + } + return nil +} + +func (m *Http2ProtocolOptions) GetMaxConcurrentStreams() *wrappers.UInt32Value { + if m != nil { + return m.MaxConcurrentStreams + } + return nil +} + +func (m *Http2ProtocolOptions) GetInitialStreamWindowSize() *wrappers.UInt32Value { + if m != nil { + return m.InitialStreamWindowSize + } + return nil +} + +func (m *Http2ProtocolOptions) GetInitialConnectionWindowSize() *wrappers.UInt32Value { + if m != nil { + return m.InitialConnectionWindowSize + } + return nil +} + +func (m *Http2ProtocolOptions) GetAllowConnect() bool { + if m != nil { + return m.AllowConnect + } + return false +} + +func (m *Http2ProtocolOptions) GetAllowMetadata() bool { + if m != nil { + return m.AllowMetadata + } + return false +} + +func (m *Http2ProtocolOptions) GetMaxOutboundFrames() *wrappers.UInt32Value { + if m != nil { + return m.MaxOutboundFrames + } + return nil +} + +func (m *Http2ProtocolOptions) GetMaxOutboundControlFrames() *wrappers.UInt32Value { + if m != nil { + return m.MaxOutboundControlFrames + } + return nil +} + +func (m *Http2ProtocolOptions) GetMaxConsecutiveInboundFramesWithEmptyPayload() *wrappers.UInt32Value { + if m != nil { + return m.MaxConsecutiveInboundFramesWithEmptyPayload + } + return nil +} + +func (m *Http2ProtocolOptions) GetMaxInboundPriorityFramesPerStream() *wrappers.UInt32Value { + if m != nil { + return m.MaxInboundPriorityFramesPerStream + } + return nil +} + +func (m *Http2ProtocolOptions) GetMaxInboundWindowUpdateFramesPerDataFrameSent() *wrappers.UInt32Value { + if m != nil { + return m.MaxInboundWindowUpdateFramesPerDataFrameSent + } + return nil +} + +func (m *Http2ProtocolOptions) GetStreamErrorOnInvalidHttpMessaging() bool { + if m != nil { + return m.StreamErrorOnInvalidHttpMessaging + } + return false +} + +func (m *Http2ProtocolOptions) GetCustomSettingsParameters() []*Http2ProtocolOptions_SettingsParameter { + if m != nil { + return m.CustomSettingsParameters + } + return nil +} + +type Http2ProtocolOptions_SettingsParameter struct { + Identifier *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"` + Value *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Http2ProtocolOptions_SettingsParameter) Reset() { + *m = Http2ProtocolOptions_SettingsParameter{} +} +func (m *Http2ProtocolOptions_SettingsParameter) String() string { return proto.CompactTextString(m) } +func (*Http2ProtocolOptions_SettingsParameter) ProtoMessage() {} +func (*Http2ProtocolOptions_SettingsParameter) Descriptor() ([]byte, []int) { + return fileDescriptor_767741306bfd0da6, []int{4, 0} +} + +func (m *Http2ProtocolOptions_SettingsParameter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Http2ProtocolOptions_SettingsParameter.Unmarshal(m, b) +} +func (m *Http2ProtocolOptions_SettingsParameter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Http2ProtocolOptions_SettingsParameter.Marshal(b, m, deterministic) +} +func (m *Http2ProtocolOptions_SettingsParameter) XXX_Merge(src proto.Message) { + xxx_messageInfo_Http2ProtocolOptions_SettingsParameter.Merge(m, src) +} +func (m *Http2ProtocolOptions_SettingsParameter) XXX_Size() int { + return xxx_messageInfo_Http2ProtocolOptions_SettingsParameter.Size(m) +} +func (m *Http2ProtocolOptions_SettingsParameter) XXX_DiscardUnknown() { + xxx_messageInfo_Http2ProtocolOptions_SettingsParameter.DiscardUnknown(m) +} + +var xxx_messageInfo_Http2ProtocolOptions_SettingsParameter proto.InternalMessageInfo + +func (m *Http2ProtocolOptions_SettingsParameter) GetIdentifier() *wrappers.UInt32Value { + if m != nil { + return m.Identifier + } + return nil +} + +func (m *Http2ProtocolOptions_SettingsParameter) GetValue() *wrappers.UInt32Value { + if m != nil { + return m.Value + } + return nil +} + +type GrpcProtocolOptions struct { + Http2ProtocolOptions *Http2ProtocolOptions `protobuf:"bytes,1,opt,name=http2_protocol_options,json=http2ProtocolOptions,proto3" json:"http2_protocol_options,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GrpcProtocolOptions) Reset() { *m = GrpcProtocolOptions{} } +func (m *GrpcProtocolOptions) String() string { return proto.CompactTextString(m) } +func (*GrpcProtocolOptions) ProtoMessage() {} +func (*GrpcProtocolOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_767741306bfd0da6, []int{5} +} + +func (m *GrpcProtocolOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GrpcProtocolOptions.Unmarshal(m, b) +} +func (m *GrpcProtocolOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GrpcProtocolOptions.Marshal(b, m, deterministic) +} +func (m *GrpcProtocolOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_GrpcProtocolOptions.Merge(m, src) +} +func (m *GrpcProtocolOptions) XXX_Size() int { + return xxx_messageInfo_GrpcProtocolOptions.Size(m) +} +func (m *GrpcProtocolOptions) XXX_DiscardUnknown() { + xxx_messageInfo_GrpcProtocolOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_GrpcProtocolOptions proto.InternalMessageInfo + +func (m *GrpcProtocolOptions) GetHttp2ProtocolOptions() *Http2ProtocolOptions { + if m != nil { + return m.Http2ProtocolOptions + } + return nil +} + +func init() { + proto.RegisterType((*TcpProtocolOptions)(nil), "envoy.config.core.v3.TcpProtocolOptions") + proto.RegisterType((*UpstreamHttpProtocolOptions)(nil), "envoy.config.core.v3.UpstreamHttpProtocolOptions") + proto.RegisterType((*HttpProtocolOptions)(nil), "envoy.config.core.v3.HttpProtocolOptions") + proto.RegisterType((*Http1ProtocolOptions)(nil), "envoy.config.core.v3.Http1ProtocolOptions") + proto.RegisterType((*Http1ProtocolOptions_HeaderKeyFormat)(nil), "envoy.config.core.v3.Http1ProtocolOptions.HeaderKeyFormat") + proto.RegisterType((*Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords)(nil), "envoy.config.core.v3.Http1ProtocolOptions.HeaderKeyFormat.ProperCaseWords") + proto.RegisterType((*Http2ProtocolOptions)(nil), "envoy.config.core.v3.Http2ProtocolOptions") + proto.RegisterType((*Http2ProtocolOptions_SettingsParameter)(nil), "envoy.config.core.v3.Http2ProtocolOptions.SettingsParameter") + proto.RegisterType((*GrpcProtocolOptions)(nil), "envoy.config.core.v3.GrpcProtocolOptions") +} + +func init() { + proto.RegisterFile("envoy/config/core/v3/protocol.proto", fileDescriptor_767741306bfd0da6) +} + +var fileDescriptor_767741306bfd0da6 = []byte{ + // 1273 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0x4f, 0x6f, 0x13, 0x47, + 0x14, 0xef, 0x3a, 0x7f, 0x99, 0xfc, 0x71, 0xb2, 0x49, 0x61, 0x31, 0x2d, 0x82, 0x00, 0x21, 0x0a, + 0xb0, 0x06, 0x07, 0x21, 0x64, 0x81, 0x2a, 0x1c, 0x48, 0x93, 0x56, 0x08, 0xb3, 0x49, 0xe0, 0x38, + 0x4c, 0x76, 0xc7, 0xf6, 0x94, 0xdd, 0x99, 0xd5, 0xcc, 0xac, 0x13, 0x73, 0xe2, 0xd0, 0x43, 0xd5, + 0x5b, 0xaf, 0x55, 0xd5, 0x5b, 0xbf, 0x44, 0x8f, 0xad, 0x2a, 0xf5, 0xda, 0x0f, 0xd1, 0x2f, 0xd0, + 0x53, 0x95, 0x4b, 0xaa, 0xf9, 0xb3, 0xc1, 0xd8, 0x2e, 0x71, 0x38, 0xc5, 0xfb, 0xde, 0xef, 0xfd, + 0x7e, 0x6f, 0xde, 0x7b, 0xf3, 0x76, 0x03, 0xae, 0x60, 0xda, 0x66, 0x9d, 0x72, 0xc8, 0x68, 0x83, + 0x34, 0xcb, 0x21, 0xe3, 0xb8, 0xdc, 0x5e, 0x2b, 0xa7, 0x9c, 0x49, 0x16, 0xb2, 0xd8, 0xd7, 0x3f, + 0xdc, 0x45, 0x0d, 0xf2, 0x0d, 0xc8, 0x57, 0x20, 0xbf, 0xbd, 0x56, 0xba, 0xd8, 0x64, 0xac, 0x19, + 0x63, 0x03, 0xde, 0xcb, 0x1a, 0xe5, 0x28, 0xe3, 0x48, 0x12, 0x46, 0x4d, 0x54, 0xbf, 0x7f, 0x9f, + 0xa3, 0x34, 0xc5, 0x5c, 0x58, 0xff, 0xe7, 0x59, 0x94, 0xa2, 0x32, 0xa2, 0x94, 0x49, 0x1d, 0x26, + 0xca, 0x42, 0x22, 0x99, 0xe5, 0xee, 0xcb, 0x7d, 0xee, 0x36, 0xe6, 0x82, 0x30, 0x4a, 0x68, 0xd3, + 0x42, 0xce, 0xb5, 0x51, 0x4c, 0x22, 0x24, 0x71, 0x39, 0xff, 0x61, 0x1c, 0x4b, 0x8f, 0x80, 0xbb, + 0x13, 0xa6, 0x75, 0x7b, 0x8a, 0x67, 0xa9, 0x8e, 0xaf, 0xde, 0xf8, 0xf1, 0x8f, 0xef, 0x2e, 0x2e, + 0x83, 0xab, 0xe6, 0x34, 0x28, 0x25, 0x7e, 0xbb, 0x62, 0x4e, 0xd3, 0x0f, 0x5e, 0xfa, 0xd9, 0x01, + 0x17, 0x76, 0x53, 0x21, 0x39, 0x46, 0xc9, 0xa6, 0x94, 0xbd, 0x7e, 0xf7, 0x3c, 0x98, 0x44, 0x99, + 0x64, 0x50, 0x50, 0xe2, 0x39, 0x97, 0x9c, 0x95, 0xc9, 0x60, 0x42, 0x3d, 0x6f, 0x53, 0xe2, 0xfa, + 0x60, 0xc1, 0xb8, 0x10, 0x85, 0x36, 0x31, 0xc2, 0xa8, 0x57, 0xd0, 0xa8, 0x79, 0x8d, 0x42, 0xf4, + 0xc5, 0xb1, 0xa3, 0x7a, 0x57, 0xe5, 0x55, 0x06, 0xb7, 0xfa, 0xf3, 0xfa, 0x40, 0x02, 0x4b, 0xff, + 0x14, 0xc0, 0xc2, 0xa0, 0xc4, 0x1e, 0x80, 0x69, 0x12, 0xc5, 0x18, 0x4a, 0x92, 0x60, 0x96, 0x49, + 0x9d, 0xdc, 0x54, 0xe5, 0xbc, 0x6f, 0xba, 0xe1, 0xe7, 0xdd, 0xf0, 0x1f, 0xdb, 0x6e, 0x05, 0x53, + 0x0a, 0xbe, 0x63, 0xd0, 0xee, 0x73, 0x70, 0x2e, 0x41, 0x07, 0x30, 0x64, 0x94, 0xe2, 0x50, 0xb9, + 0x61, 0xde, 0x55, 0x6f, 0xe4, 0x24, 0xa2, 0x4f, 0x13, 0x74, 0xb0, 0x7e, 0x1c, 0x98, 0x9b, 0xdd, + 0xe7, 0x60, 0x5e, 0x51, 0xb6, 0x30, 0x8a, 0x30, 0x17, 0x30, 0x64, 0x19, 0x95, 0xba, 0x18, 0x53, + 0x95, 0xcf, 0xfa, 0xc8, 0x76, 0xb7, 0xa8, 0x5c, 0xab, 0xbc, 0x40, 0x71, 0x86, 0x6b, 0x13, 0x87, + 0xb5, 0xd1, 0xd5, 0xc2, 0x8a, 0x13, 0x14, 0x13, 0x74, 0xb0, 0x69, 0xc2, 0xd7, 0x55, 0xb4, 0xbb, + 0x05, 0x16, 0x14, 0xa5, 0x29, 0xce, 0xbb, 0x0c, 0x47, 0x4f, 0xca, 0x50, 0x25, 0xb2, 0xad, 0x83, + 0x72, 0x53, 0xf5, 0xa6, 0x2a, 0xfe, 0x75, 0x70, 0xad, 0xbf, 0xf8, 0x83, 0x8a, 0xfe, 0xfb, 0x18, + 0x58, 0x54, 0xf6, 0x3b, 0xbd, 0x55, 0xdf, 0x04, 0x2e, 0x8a, 0x63, 0xb6, 0x0f, 0xd1, 0x9e, 0x60, + 0x71, 0x26, 0x31, 0xcc, 0x78, 0x6c, 0x6b, 0x5f, 0xea, 0x4b, 0xa8, 0xc6, 0x58, 0xac, 0xcf, 0x18, + 0xcc, 0xe9, 0xa8, 0x47, 0x36, 0x68, 0x97, 0xc7, 0xee, 0x55, 0x30, 0x8b, 0xc2, 0x10, 0xa7, 0x12, + 0xb6, 0xa4, 0x4c, 0xe1, 0x9d, 0xdb, 0x76, 0x70, 0xa6, 0x8d, 0x55, 0xab, 0xdf, 0x76, 0xef, 0x01, + 0x2f, 0xc2, 0x0d, 0x94, 0xc5, 0x12, 0xb6, 0x98, 0x90, 0xb0, 0xc1, 0xf8, 0x31, 0x5e, 0x35, 0xea, + 0x4c, 0xb0, 0x68, 0xfd, 0x9b, 0x4c, 0xc8, 0x0d, 0xc6, 0x6d, 0x5c, 0x03, 0xcc, 0x9b, 0x46, 0xc0, + 0xd7, 0xb8, 0xa3, 0xa2, 0x12, 0x24, 0x6d, 0xdd, 0xaa, 0xfe, 0xa0, 0x6b, 0xee, 0x0f, 0x3a, 0xae, + 0x6f, 0xba, 0xf1, 0x35, 0xee, 0x6c, 0x68, 0x86, 0xa0, 0xd8, 0x7a, 0xdf, 0xe0, 0x5e, 0x07, 0x45, + 0x4c, 0xd1, 0x9e, 0x9a, 0x43, 0x8e, 0x48, 0x8c, 0xb9, 0xf0, 0xc6, 0xf4, 0x31, 0x66, 0x8d, 0x79, + 0xc7, 0x5a, 0x4b, 0xbf, 0x15, 0x40, 0xb1, 0x87, 0xcd, 0x3d, 0x00, 0xf3, 0x29, 0x67, 0x29, 0xe6, + 0x30, 0x44, 0x02, 0xc3, 0x7d, 0xc6, 0x23, 0x61, 0x6b, 0xf9, 0xd5, 0xc7, 0x27, 0xe9, 0xd7, 0x35, + 0xe7, 0x3a, 0x12, 0xf8, 0xa5, 0x62, 0xdc, 0xfc, 0x24, 0x28, 0xa6, 0xef, 0x9b, 0x4a, 0xaf, 0x40, + 0xb1, 0x07, 0x55, 0x7d, 0xaa, 0x06, 0x64, 0x13, 0x6c, 0x0c, 0x1e, 0x90, 0xd3, 0x8a, 0x56, 0x1f, + 0x2a, 0xba, 0xfb, 0xe0, 0xde, 0xc7, 0xd1, 0xd5, 0x16, 0xc1, 0x8c, 0xed, 0x9f, 0xe9, 0x9d, 0x3b, + 0xf2, 0x6f, 0xcd, 0xa9, 0xde, 0x52, 0xa4, 0x2b, 0x60, 0x79, 0x38, 0xd2, 0xa5, 0x9f, 0xa6, 0xcd, + 0x14, 0x57, 0x7a, 0xa7, 0x78, 0x03, 0xcc, 0xb5, 0x52, 0x14, 0xbe, 0x86, 0x52, 0xb7, 0x4e, 0x90, + 0x37, 0xd8, 0xd6, 0xfd, 0x83, 0x37, 0x35, 0x98, 0xd5, 0x51, 0x3b, 0x2a, 0x68, 0x9b, 0xbc, 0xc1, + 0x2e, 0x02, 0x67, 0xed, 0x16, 0x09, 0x33, 0xce, 0x31, 0x95, 0xf6, 0xaa, 0x8a, 0xa1, 0xee, 0xfd, + 0xcc, 0x61, 0x0d, 0xac, 0x4e, 0x7a, 0x47, 0x47, 0x47, 0x47, 0x13, 0x2b, 0x4e, 0xb0, 0x68, 0xd6, + 0x8a, 0x65, 0x32, 0xd7, 0x57, 0xb8, 0xdf, 0x80, 0x12, 0xa1, 0x44, 0x12, 0x14, 0xe7, 0x6b, 0x60, + 0x9f, 0xd0, 0x88, 0xed, 0x9b, 0xa4, 0x47, 0x86, 0x90, 0x29, 0x1e, 0xd6, 0xa6, 0x57, 0x81, 0x95, + 0x39, 0x3a, 0x1a, 0x09, 0xce, 0x59, 0x42, 0x23, 0xf1, 0x52, 0xd3, 0xe9, 0xe3, 0x70, 0x70, 0x31, + 0xd7, 0xea, 0x5a, 0x8c, 0xdd, 0x7a, 0xa3, 0x1f, 0xa3, 0x77, 0xc1, 0x92, 0xbe, 0xdb, 0x99, 0x5d, + 0x9a, 0x57, 0xc0, 0x8c, 0x59, 0x28, 0x56, 0xd1, 0x5e, 0x9f, 0x69, 0x6d, 0xb4, 0x11, 0xee, 0x35, + 0x30, 0x6b, 0x40, 0x09, 0x96, 0x28, 0x42, 0x12, 0x79, 0xe3, 0x1a, 0x65, 0x42, 0x9f, 0x5a, 0xa3, + 0xbb, 0x6b, 0xd6, 0x25, 0xcb, 0xe4, 0x1e, 0xcb, 0x68, 0x04, 0x1b, 0x1c, 0x25, 0x58, 0x78, 0x13, + 0xa7, 0xd9, 0xc1, 0x6a, 0x75, 0x3e, 0xb3, 0x04, 0x1b, 0x3a, 0xde, 0x8d, 0xc0, 0x85, 0xf7, 0x68, + 0x43, 0x46, 0x25, 0x67, 0x71, 0x4e, 0x3f, 0x79, 0x1a, 0x7a, 0xaf, 0x8b, 0x7e, 0xdd, 0xf0, 0x58, + 0x95, 0x6f, 0x1d, 0x70, 0xc7, 0x0e, 0x93, 0xc0, 0x61, 0x26, 0x49, 0x1b, 0x43, 0x42, 0xbb, 0x0f, + 0x02, 0xf7, 0x89, 0x6c, 0x41, 0x9c, 0xa4, 0xb2, 0x03, 0x53, 0xd4, 0x89, 0x19, 0x8a, 0xbc, 0x33, + 0x43, 0x4c, 0xed, 0x0d, 0x33, 0x58, 0x39, 0xeb, 0x16, 0xed, 0x3a, 0xdc, 0x4b, 0x22, 0x5b, 0x4f, + 0x14, 0x63, 0xdd, 0x10, 0xba, 0x0c, 0x2c, 0xab, 0x2c, 0x72, 0xe5, 0x94, 0x13, 0xc6, 0x89, 0xec, + 0xe4, 0x29, 0xa8, 0x65, 0x65, 0xe6, 0xd0, 0x03, 0x43, 0x48, 0x5f, 0x4e, 0xd0, 0x81, 0xd5, 0xab, + 0x5b, 0x26, 0xa3, 0x5b, 0xc7, 0xdc, 0x8c, 0x9f, 0xfb, 0x83, 0x03, 0xee, 0x76, 0x2b, 0xda, 0x71, + 0xcb, 0x52, 0xf5, 0x9d, 0xd3, 0x2d, 0xab, 0x5a, 0x6c, 0x9e, 0xa1, 0xc0, 0x54, 0x7a, 0x53, 0xa7, + 0xa9, 0xfb, 0xcd, 0x77, 0x89, 0x98, 0xe1, 0xdb, 0xd5, 0xfc, 0xc7, 0xc9, 0x3c, 0x46, 0x12, 0xe9, + 0x87, 0x6d, 0x4c, 0xd5, 0xd7, 0xc1, 0xb2, 0xbd, 0x6c, 0x98, 0x73, 0xc6, 0x21, 0xa3, 0x90, 0x50, + 0xfd, 0x89, 0x63, 0x5e, 0x3e, 0x09, 0x16, 0x02, 0x35, 0x09, 0x6d, 0x7a, 0xd3, 0x7a, 0x0e, 0x2f, + 0x1b, 0xf4, 0x13, 0x05, 0x7e, 0x46, 0xb7, 0x0c, 0x54, 0x6d, 0x9e, 0xa7, 0x39, 0xd0, 0x7d, 0x03, + 0x4a, 0x61, 0x26, 0x24, 0x4b, 0xa0, 0xc0, 0x52, 0x12, 0xda, 0x14, 0x30, 0x45, 0x4a, 0x50, 0xaa, + 0x77, 0xc6, 0xcc, 0xa5, 0x91, 0x95, 0xa9, 0xca, 0x83, 0xff, 0x5f, 0xfa, 0xbd, 0x2b, 0xcc, 0xdf, + 0xb6, 0x2c, 0xf5, 0x9c, 0x24, 0xf0, 0x0c, 0x7f, 0x9f, 0x43, 0x94, 0xfe, 0x76, 0xc0, 0x7c, 0x9f, + 0xd9, 0x7d, 0x0e, 0x00, 0x89, 0x30, 0x95, 0xa4, 0x41, 0x30, 0x1f, 0x66, 0xfd, 0xd5, 0x16, 0x0e, + 0x6b, 0x93, 0xab, 0xe3, 0xde, 0xdb, 0xb7, 0xa3, 0x2b, 0xce, 0x61, 0x6d, 0xec, 0x7b, 0xa7, 0x30, + 0xe7, 0x04, 0x5d, 0x24, 0xee, 0x03, 0x30, 0xd6, 0x56, 0xc8, 0xa1, 0xd6, 0xdf, 0xe4, 0x31, 0x85, + 0x09, 0xaa, 0x7e, 0xa1, 0xb6, 0x7b, 0x15, 0xdc, 0x1f, 0xbc, 0xdd, 0x4f, 0xae, 0xc0, 0x09, 0xaf, + 0x87, 0x5e, 0x82, 0xa5, 0x5f, 0x1c, 0xb0, 0xf0, 0x25, 0x4f, 0xc3, 0xde, 0xb7, 0xc3, 0x2b, 0x70, + 0x56, 0x75, 0xb9, 0x02, 0xf3, 0x7f, 0x0f, 0x20, 0x33, 0x1e, 0x5b, 0xa4, 0xd5, 0xe1, 0xdb, 0x14, + 0x2c, 0xb6, 0x06, 0x58, 0x3f, 0xf0, 0x31, 0x36, 0x20, 0x9f, 0xda, 0xc3, 0x5f, 0xdf, 0xfe, 0xf9, + 0xd7, 0x78, 0x61, 0xae, 0x00, 0x96, 0x08, 0x33, 0xda, 0x29, 0x67, 0x07, 0x9d, 0x81, 0x69, 0xd4, + 0x66, 0xf2, 0x70, 0xfd, 0xb7, 0xee, 0xec, 0x8d, 0xeb, 0x63, 0xac, 0xfd, 0x17, 0x00, 0x00, 0xff, + 0xff, 0x36, 0x0a, 0x4e, 0xcb, 0x03, 0x0d, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/protocol.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/protocol.pb.validate.go new file mode 100644 index 000000000..e6d36ea38 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/protocol.pb.validate.go @@ -0,0 +1,905 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/core/v3/protocol.proto + +package envoy_config_core_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _protocol_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on TcpProtocolOptions with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *TcpProtocolOptions) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// TcpProtocolOptionsValidationError is the validation error returned by +// TcpProtocolOptions.Validate if the designated constraints aren't met. +type TcpProtocolOptionsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TcpProtocolOptionsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TcpProtocolOptionsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TcpProtocolOptionsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TcpProtocolOptionsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TcpProtocolOptionsValidationError) ErrorName() string { + return "TcpProtocolOptionsValidationError" +} + +// Error satisfies the builtin error interface +func (e TcpProtocolOptionsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTcpProtocolOptions.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TcpProtocolOptionsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TcpProtocolOptionsValidationError{} + +// Validate checks the field values on UpstreamHttpProtocolOptions with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *UpstreamHttpProtocolOptions) Validate() error { + if m == nil { + return nil + } + + // no validation rules for AutoSni + + // no validation rules for AutoSanValidation + + return nil +} + +// UpstreamHttpProtocolOptionsValidationError is the validation error returned +// by UpstreamHttpProtocolOptions.Validate if the designated constraints +// aren't met. +type UpstreamHttpProtocolOptionsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpstreamHttpProtocolOptionsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpstreamHttpProtocolOptionsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpstreamHttpProtocolOptionsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpstreamHttpProtocolOptionsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpstreamHttpProtocolOptionsValidationError) ErrorName() string { + return "UpstreamHttpProtocolOptionsValidationError" +} + +// Error satisfies the builtin error interface +func (e UpstreamHttpProtocolOptionsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpstreamHttpProtocolOptions.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpstreamHttpProtocolOptionsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpstreamHttpProtocolOptionsValidationError{} + +// Validate checks the field values on HttpProtocolOptions with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *HttpProtocolOptions) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetIdleTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpProtocolOptionsValidationError{ + field: "IdleTimeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetMaxConnectionDuration()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpProtocolOptionsValidationError{ + field: "MaxConnectionDuration", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if wrapper := m.GetMaxHeadersCount(); wrapper != nil { + + if wrapper.GetValue() < 1 { + return HttpProtocolOptionsValidationError{ + field: "MaxHeadersCount", + reason: "value must be greater than or equal to 1", + } + } + + } + + if v, ok := interface{}(m.GetMaxStreamDuration()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpProtocolOptionsValidationError{ + field: "MaxStreamDuration", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// HttpProtocolOptionsValidationError is the validation error returned by +// HttpProtocolOptions.Validate if the designated constraints aren't met. +type HttpProtocolOptionsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HttpProtocolOptionsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HttpProtocolOptionsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HttpProtocolOptionsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HttpProtocolOptionsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HttpProtocolOptionsValidationError) ErrorName() string { + return "HttpProtocolOptionsValidationError" +} + +// Error satisfies the builtin error interface +func (e HttpProtocolOptionsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHttpProtocolOptions.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HttpProtocolOptionsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HttpProtocolOptionsValidationError{} + +// Validate checks the field values on Http1ProtocolOptions with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *Http1ProtocolOptions) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetAllowAbsoluteUrl()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Http1ProtocolOptionsValidationError{ + field: "AllowAbsoluteUrl", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for AcceptHttp_10 + + // no validation rules for DefaultHostForHttp_10 + + if v, ok := interface{}(m.GetHeaderKeyFormat()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Http1ProtocolOptionsValidationError{ + field: "HeaderKeyFormat", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for EnableTrailers + + return nil +} + +// Http1ProtocolOptionsValidationError is the validation error returned by +// Http1ProtocolOptions.Validate if the designated constraints aren't met. +type Http1ProtocolOptionsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Http1ProtocolOptionsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Http1ProtocolOptionsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Http1ProtocolOptionsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Http1ProtocolOptionsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Http1ProtocolOptionsValidationError) ErrorName() string { + return "Http1ProtocolOptionsValidationError" +} + +// Error satisfies the builtin error interface +func (e Http1ProtocolOptionsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHttp1ProtocolOptions.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Http1ProtocolOptionsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Http1ProtocolOptionsValidationError{} + +// Validate checks the field values on Http2ProtocolOptions with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *Http2ProtocolOptions) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetHpackTableSize()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Http2ProtocolOptionsValidationError{ + field: "HpackTableSize", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if wrapper := m.GetMaxConcurrentStreams(); wrapper != nil { + + if val := wrapper.GetValue(); val < 1 || val > 2147483647 { + return Http2ProtocolOptionsValidationError{ + field: "MaxConcurrentStreams", + reason: "value must be inside range [1, 2147483647]", + } + } + + } + + if wrapper := m.GetInitialStreamWindowSize(); wrapper != nil { + + if val := wrapper.GetValue(); val < 65535 || val > 2147483647 { + return Http2ProtocolOptionsValidationError{ + field: "InitialStreamWindowSize", + reason: "value must be inside range [65535, 2147483647]", + } + } + + } + + if wrapper := m.GetInitialConnectionWindowSize(); wrapper != nil { + + if val := wrapper.GetValue(); val < 65535 || val > 2147483647 { + return Http2ProtocolOptionsValidationError{ + field: "InitialConnectionWindowSize", + reason: "value must be inside range [65535, 2147483647]", + } + } + + } + + // no validation rules for AllowConnect + + // no validation rules for AllowMetadata + + if wrapper := m.GetMaxOutboundFrames(); wrapper != nil { + + if wrapper.GetValue() < 1 { + return Http2ProtocolOptionsValidationError{ + field: "MaxOutboundFrames", + reason: "value must be greater than or equal to 1", + } + } + + } + + if wrapper := m.GetMaxOutboundControlFrames(); wrapper != nil { + + if wrapper.GetValue() < 1 { + return Http2ProtocolOptionsValidationError{ + field: "MaxOutboundControlFrames", + reason: "value must be greater than or equal to 1", + } + } + + } + + if v, ok := interface{}(m.GetMaxConsecutiveInboundFramesWithEmptyPayload()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Http2ProtocolOptionsValidationError{ + field: "MaxConsecutiveInboundFramesWithEmptyPayload", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetMaxInboundPriorityFramesPerStream()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Http2ProtocolOptionsValidationError{ + field: "MaxInboundPriorityFramesPerStream", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if wrapper := m.GetMaxInboundWindowUpdateFramesPerDataFrameSent(); wrapper != nil { + + if wrapper.GetValue() < 1 { + return Http2ProtocolOptionsValidationError{ + field: "MaxInboundWindowUpdateFramesPerDataFrameSent", + reason: "value must be greater than or equal to 1", + } + } + + } + + // no validation rules for StreamErrorOnInvalidHttpMessaging + + for idx, item := range m.GetCustomSettingsParameters() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Http2ProtocolOptionsValidationError{ + field: fmt.Sprintf("CustomSettingsParameters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// Http2ProtocolOptionsValidationError is the validation error returned by +// Http2ProtocolOptions.Validate if the designated constraints aren't met. +type Http2ProtocolOptionsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Http2ProtocolOptionsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Http2ProtocolOptionsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Http2ProtocolOptionsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Http2ProtocolOptionsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Http2ProtocolOptionsValidationError) ErrorName() string { + return "Http2ProtocolOptionsValidationError" +} + +// Error satisfies the builtin error interface +func (e Http2ProtocolOptionsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHttp2ProtocolOptions.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Http2ProtocolOptionsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Http2ProtocolOptionsValidationError{} + +// Validate checks the field values on GrpcProtocolOptions with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *GrpcProtocolOptions) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetHttp2ProtocolOptions()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GrpcProtocolOptionsValidationError{ + field: "Http2ProtocolOptions", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// GrpcProtocolOptionsValidationError is the validation error returned by +// GrpcProtocolOptions.Validate if the designated constraints aren't met. +type GrpcProtocolOptionsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GrpcProtocolOptionsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GrpcProtocolOptionsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GrpcProtocolOptionsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GrpcProtocolOptionsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GrpcProtocolOptionsValidationError) ErrorName() string { + return "GrpcProtocolOptionsValidationError" +} + +// Error satisfies the builtin error interface +func (e GrpcProtocolOptionsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGrpcProtocolOptions.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GrpcProtocolOptionsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GrpcProtocolOptionsValidationError{} + +// Validate checks the field values on Http1ProtocolOptions_HeaderKeyFormat +// with the rules defined in the proto definition for this message. If any +// rules are violated, an error is returned. +func (m *Http1ProtocolOptions_HeaderKeyFormat) Validate() error { + if m == nil { + return nil + } + + switch m.HeaderFormat.(type) { + + case *Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords_: + + if v, ok := interface{}(m.GetProperCaseWords()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Http1ProtocolOptions_HeaderKeyFormatValidationError{ + field: "ProperCaseWords", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return Http1ProtocolOptions_HeaderKeyFormatValidationError{ + field: "HeaderFormat", + reason: "value is required", + } + + } + + return nil +} + +// Http1ProtocolOptions_HeaderKeyFormatValidationError is the validation error +// returned by Http1ProtocolOptions_HeaderKeyFormat.Validate if the designated +// constraints aren't met. +type Http1ProtocolOptions_HeaderKeyFormatValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Http1ProtocolOptions_HeaderKeyFormatValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Http1ProtocolOptions_HeaderKeyFormatValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Http1ProtocolOptions_HeaderKeyFormatValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Http1ProtocolOptions_HeaderKeyFormatValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Http1ProtocolOptions_HeaderKeyFormatValidationError) ErrorName() string { + return "Http1ProtocolOptions_HeaderKeyFormatValidationError" +} + +// Error satisfies the builtin error interface +func (e Http1ProtocolOptions_HeaderKeyFormatValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHttp1ProtocolOptions_HeaderKeyFormat.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Http1ProtocolOptions_HeaderKeyFormatValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Http1ProtocolOptions_HeaderKeyFormatValidationError{} + +// Validate checks the field values on +// Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWordsValidationError is the +// validation error returned by +// Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords.Validate if the +// designated constraints aren't met. +type Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWordsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWordsValidationError) Field() string { + return e.field +} + +// Reason function returns reason value. +func (e Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWordsValidationError) Reason() string { + return e.reason +} + +// Cause function returns cause value. +func (e Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWordsValidationError) Cause() error { + return e.cause +} + +// Key function returns key value. +func (e Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWordsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWordsValidationError) ErrorName() string { + return "Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWordsValidationError" +} + +// Error satisfies the builtin error interface +func (e Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWordsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHttp1ProtocolOptions_HeaderKeyFormat_ProperCaseWords.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWordsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWordsValidationError{} + +// Validate checks the field values on Http2ProtocolOptions_SettingsParameter +// with the rules defined in the proto definition for this message. If any +// rules are violated, an error is returned. +func (m *Http2ProtocolOptions_SettingsParameter) Validate() error { + if m == nil { + return nil + } + + if wrapper := m.GetIdentifier(); wrapper != nil { + + if val := wrapper.GetValue(); val < 1 || val > 65536 { + return Http2ProtocolOptions_SettingsParameterValidationError{ + field: "Identifier", + reason: "value must be inside range [1, 65536]", + } + } + + } else { + return Http2ProtocolOptions_SettingsParameterValidationError{ + field: "Identifier", + reason: "value is required and must not be nil.", + } + } + + if m.GetValue() == nil { + return Http2ProtocolOptions_SettingsParameterValidationError{ + field: "Value", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetValue()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Http2ProtocolOptions_SettingsParameterValidationError{ + field: "Value", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// Http2ProtocolOptions_SettingsParameterValidationError is the validation +// error returned by Http2ProtocolOptions_SettingsParameter.Validate if the +// designated constraints aren't met. +type Http2ProtocolOptions_SettingsParameterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Http2ProtocolOptions_SettingsParameterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Http2ProtocolOptions_SettingsParameterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Http2ProtocolOptions_SettingsParameterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Http2ProtocolOptions_SettingsParameterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Http2ProtocolOptions_SettingsParameterValidationError) ErrorName() string { + return "Http2ProtocolOptions_SettingsParameterValidationError" +} + +// Error satisfies the builtin error interface +func (e Http2ProtocolOptions_SettingsParameterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHttp2ProtocolOptions_SettingsParameter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Http2ProtocolOptions_SettingsParameterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Http2ProtocolOptions_SettingsParameterValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/socket_option.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/socket_option.pb.go new file mode 100644 index 000000000..e4c543f67 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/socket_option.pb.go @@ -0,0 +1,201 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/core/v3/socket_option.proto + +package envoy_config_core_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type SocketOption_SocketState int32 + +const ( + SocketOption_STATE_PREBIND SocketOption_SocketState = 0 + SocketOption_STATE_BOUND SocketOption_SocketState = 1 + SocketOption_STATE_LISTENING SocketOption_SocketState = 2 +) + +var SocketOption_SocketState_name = map[int32]string{ + 0: "STATE_PREBIND", + 1: "STATE_BOUND", + 2: "STATE_LISTENING", +} + +var SocketOption_SocketState_value = map[string]int32{ + "STATE_PREBIND": 0, + "STATE_BOUND": 1, + "STATE_LISTENING": 2, +} + +func (x SocketOption_SocketState) String() string { + return proto.EnumName(SocketOption_SocketState_name, int32(x)) +} + +func (SocketOption_SocketState) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_8e4a49540b4573ea, []int{0, 0} +} + +type SocketOption struct { + Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` + Level int64 `protobuf:"varint,2,opt,name=level,proto3" json:"level,omitempty"` + Name int64 `protobuf:"varint,3,opt,name=name,proto3" json:"name,omitempty"` + // Types that are valid to be assigned to Value: + // *SocketOption_IntValue + // *SocketOption_BufValue + Value isSocketOption_Value `protobuf_oneof:"value"` + State SocketOption_SocketState `protobuf:"varint,6,opt,name=state,proto3,enum=envoy.config.core.v3.SocketOption_SocketState" json:"state,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SocketOption) Reset() { *m = SocketOption{} } +func (m *SocketOption) String() string { return proto.CompactTextString(m) } +func (*SocketOption) ProtoMessage() {} +func (*SocketOption) Descriptor() ([]byte, []int) { + return fileDescriptor_8e4a49540b4573ea, []int{0} +} + +func (m *SocketOption) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SocketOption.Unmarshal(m, b) +} +func (m *SocketOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SocketOption.Marshal(b, m, deterministic) +} +func (m *SocketOption) XXX_Merge(src proto.Message) { + xxx_messageInfo_SocketOption.Merge(m, src) +} +func (m *SocketOption) XXX_Size() int { + return xxx_messageInfo_SocketOption.Size(m) +} +func (m *SocketOption) XXX_DiscardUnknown() { + xxx_messageInfo_SocketOption.DiscardUnknown(m) +} + +var xxx_messageInfo_SocketOption proto.InternalMessageInfo + +func (m *SocketOption) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + +func (m *SocketOption) GetLevel() int64 { + if m != nil { + return m.Level + } + return 0 +} + +func (m *SocketOption) GetName() int64 { + if m != nil { + return m.Name + } + return 0 +} + +type isSocketOption_Value interface { + isSocketOption_Value() +} + +type SocketOption_IntValue struct { + IntValue int64 `protobuf:"varint,4,opt,name=int_value,json=intValue,proto3,oneof"` +} + +type SocketOption_BufValue struct { + BufValue []byte `protobuf:"bytes,5,opt,name=buf_value,json=bufValue,proto3,oneof"` +} + +func (*SocketOption_IntValue) isSocketOption_Value() {} + +func (*SocketOption_BufValue) isSocketOption_Value() {} + +func (m *SocketOption) GetValue() isSocketOption_Value { + if m != nil { + return m.Value + } + return nil +} + +func (m *SocketOption) GetIntValue() int64 { + if x, ok := m.GetValue().(*SocketOption_IntValue); ok { + return x.IntValue + } + return 0 +} + +func (m *SocketOption) GetBufValue() []byte { + if x, ok := m.GetValue().(*SocketOption_BufValue); ok { + return x.BufValue + } + return nil +} + +func (m *SocketOption) GetState() SocketOption_SocketState { + if m != nil { + return m.State + } + return SocketOption_STATE_PREBIND +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*SocketOption) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*SocketOption_IntValue)(nil), + (*SocketOption_BufValue)(nil), + } +} + +func init() { + proto.RegisterEnum("envoy.config.core.v3.SocketOption_SocketState", SocketOption_SocketState_name, SocketOption_SocketState_value) + proto.RegisterType((*SocketOption)(nil), "envoy.config.core.v3.SocketOption") +} + +func init() { + proto.RegisterFile("envoy/config/core/v3/socket_option.proto", fileDescriptor_8e4a49540b4573ea) +} + +var fileDescriptor_8e4a49540b4573ea = []byte{ + // 397 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x91, 0xc1, 0x8a, 0x13, 0x31, + 0x1c, 0xc6, 0x37, 0xd3, 0x9d, 0xb2, 0x9b, 0x56, 0x77, 0x36, 0x2e, 0x38, 0x2c, 0xec, 0x32, 0x16, + 0x84, 0x39, 0x65, 0x60, 0x7b, 0xf3, 0xd6, 0xd0, 0xaa, 0x05, 0x99, 0x96, 0x99, 0xea, 0xb5, 0xa4, + 0xd3, 0xb4, 0x04, 0xc7, 0x64, 0x98, 0xc9, 0x04, 0x7b, 0x13, 0x4f, 0x3e, 0x83, 0x8f, 0xe2, 0x5d, + 0xf0, 0xea, 0x43, 0xf8, 0x0e, 0xe2, 0x49, 0x92, 0x54, 0x18, 0xb0, 0xb7, 0xfc, 0xbf, 0xdf, 0x97, + 0xf0, 0x7d, 0xf9, 0xc3, 0x98, 0x09, 0x2d, 0x0f, 0x49, 0x21, 0xc5, 0x8e, 0xef, 0x93, 0x42, 0xd6, + 0x2c, 0xd1, 0xe3, 0xa4, 0x91, 0xc5, 0x7b, 0xa6, 0xd6, 0xb2, 0x52, 0x5c, 0x0a, 0x5c, 0xd5, 0x52, + 0x49, 0x74, 0x63, 0x9d, 0xd8, 0x39, 0xb1, 0x71, 0x62, 0x3d, 0xbe, 0xbd, 0x6b, 0xb7, 0x15, 0x4d, + 0xa8, 0x10, 0x52, 0x51, 0x63, 0x6e, 0x92, 0x46, 0x51, 0xd5, 0x36, 0xee, 0xd2, 0xed, 0xb3, 0xff, + 0xb0, 0x66, 0x75, 0xc3, 0xa5, 0xe0, 0x62, 0x7f, 0xb4, 0x3c, 0xd5, 0xb4, 0xe4, 0x5b, 0xaa, 0x58, + 0xf2, 0xef, 0xe0, 0xc0, 0xe8, 0x97, 0x07, 0x87, 0xb9, 0x0d, 0xb2, 0xb0, 0x39, 0x50, 0x04, 0x07, + 0x5b, 0xd6, 0x14, 0x35, 0xb7, 0x63, 0x08, 0x22, 0x10, 0x5f, 0x66, 0x5d, 0x09, 0xdd, 0x40, 0xbf, + 0x64, 0x9a, 0x95, 0xa1, 0x17, 0x81, 0xb8, 0x97, 0xb9, 0x01, 0x21, 0x78, 0x2e, 0xe8, 0x07, 0x16, + 0xf6, 0xac, 0x68, 0xcf, 0xe8, 0x0e, 0x5e, 0x72, 0xa1, 0xd6, 0x9a, 0x96, 0x2d, 0x0b, 0xcf, 0x0d, + 0x78, 0x7d, 0x96, 0x5d, 0x70, 0xa1, 0xde, 0x19, 0xc5, 0xe0, 0x4d, 0xbb, 0x3b, 0x62, 0x3f, 0x02, + 0xf1, 0xd0, 0xe0, 0x4d, 0xbb, 0x73, 0x38, 0x85, 0xbe, 0xa9, 0xc9, 0xc2, 0x7e, 0x04, 0xe2, 0xc7, + 0x0f, 0x18, 0x9f, 0xfa, 0x1b, 0xdc, 0x0d, 0x7f, 0x1c, 0x72, 0x73, 0x8b, 0x5c, 0xfc, 0x21, 0xfe, + 0x67, 0xe0, 0x05, 0x20, 0x73, 0xcf, 0x8c, 0x5e, 0xc2, 0x41, 0x87, 0xa3, 0x6b, 0xf8, 0x28, 0x5f, + 0x4d, 0x56, 0xb3, 0xf5, 0x32, 0x9b, 0x91, 0x79, 0x3a, 0x0d, 0xce, 0xd0, 0x15, 0x1c, 0x38, 0x89, + 0x2c, 0xde, 0xa6, 0xd3, 0x00, 0xa0, 0x27, 0xf0, 0xca, 0x09, 0x6f, 0xe6, 0xf9, 0x6a, 0x96, 0xce, + 0xd3, 0x57, 0x81, 0xf7, 0xe2, 0xf9, 0xd7, 0xef, 0x5f, 0xee, 0x23, 0x78, 0xef, 0xe2, 0xd0, 0x8a, + 0x63, 0xfd, 0xe0, 0xe2, 0x74, 0xb3, 0x90, 0x21, 0xf4, 0x6d, 0x33, 0xd4, 0xfb, 0x4d, 0x00, 0x99, + 0x7c, 0xfb, 0xf4, 0xe3, 0x67, 0xdf, 0x0b, 0x3c, 0x38, 0xe2, 0xd2, 0x35, 0xa9, 0x6a, 0xf9, 0xf1, + 0x70, 0xb2, 0x14, 0xb9, 0xee, 0xbe, 0xb4, 0x34, 0x8b, 0x5a, 0x82, 0x4d, 0xdf, 0x6e, 0x6c, 0xfc, + 0x37, 0x00, 0x00, 0xff, 0xff, 0x42, 0x4e, 0x17, 0x40, 0x4e, 0x02, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/socket_option.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/socket_option.pb.validate.go new file mode 100644 index 000000000..479c0cbad --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/core/v3/socket_option.pb.validate.go @@ -0,0 +1,131 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/core/v3/socket_option.proto + +package envoy_config_core_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _socket_option_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on SocketOption with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *SocketOption) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Description + + // no validation rules for Level + + // no validation rules for Name + + if _, ok := SocketOption_SocketState_name[int32(m.GetState())]; !ok { + return SocketOptionValidationError{ + field: "State", + reason: "value must be one of the defined enum values", + } + } + + switch m.Value.(type) { + + case *SocketOption_IntValue: + // no validation rules for IntValue + + case *SocketOption_BufValue: + // no validation rules for BufValue + + default: + return SocketOptionValidationError{ + field: "Value", + reason: "value is required", + } + + } + + return nil +} + +// SocketOptionValidationError is the validation error returned by +// SocketOption.Validate if the designated constraints aren't met. +type SocketOptionValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e SocketOptionValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e SocketOptionValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e SocketOptionValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e SocketOptionValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e SocketOptionValidationError) ErrorName() string { return "SocketOptionValidationError" } + +// Error satisfies the builtin error interface +func (e SocketOptionValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSocketOption.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = SocketOptionValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = SocketOptionValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/endpoint.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/endpoint.pb.go new file mode 100644 index 000000000..5e3115893 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/endpoint.pb.go @@ -0,0 +1,262 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/endpoint/v3/endpoint.proto + +package envoy_config_endpoint_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/type/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + duration "github.com/golang/protobuf/ptypes/duration" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + _ "google.golang.org/genproto/googleapis/api/annotations" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type ClusterLoadAssignment struct { + ClusterName string `protobuf:"bytes,1,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"` + Endpoints []*LocalityLbEndpoints `protobuf:"bytes,2,rep,name=endpoints,proto3" json:"endpoints,omitempty"` + NamedEndpoints map[string]*Endpoint `protobuf:"bytes,5,rep,name=named_endpoints,json=namedEndpoints,proto3" json:"named_endpoints,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Policy *ClusterLoadAssignment_Policy `protobuf:"bytes,4,opt,name=policy,proto3" json:"policy,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ClusterLoadAssignment) Reset() { *m = ClusterLoadAssignment{} } +func (m *ClusterLoadAssignment) String() string { return proto.CompactTextString(m) } +func (*ClusterLoadAssignment) ProtoMessage() {} +func (*ClusterLoadAssignment) Descriptor() ([]byte, []int) { + return fileDescriptor_3459cc50e28e3760, []int{0} +} + +func (m *ClusterLoadAssignment) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ClusterLoadAssignment.Unmarshal(m, b) +} +func (m *ClusterLoadAssignment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ClusterLoadAssignment.Marshal(b, m, deterministic) +} +func (m *ClusterLoadAssignment) XXX_Merge(src proto.Message) { + xxx_messageInfo_ClusterLoadAssignment.Merge(m, src) +} +func (m *ClusterLoadAssignment) XXX_Size() int { + return xxx_messageInfo_ClusterLoadAssignment.Size(m) +} +func (m *ClusterLoadAssignment) XXX_DiscardUnknown() { + xxx_messageInfo_ClusterLoadAssignment.DiscardUnknown(m) +} + +var xxx_messageInfo_ClusterLoadAssignment proto.InternalMessageInfo + +func (m *ClusterLoadAssignment) GetClusterName() string { + if m != nil { + return m.ClusterName + } + return "" +} + +func (m *ClusterLoadAssignment) GetEndpoints() []*LocalityLbEndpoints { + if m != nil { + return m.Endpoints + } + return nil +} + +func (m *ClusterLoadAssignment) GetNamedEndpoints() map[string]*Endpoint { + if m != nil { + return m.NamedEndpoints + } + return nil +} + +func (m *ClusterLoadAssignment) GetPolicy() *ClusterLoadAssignment_Policy { + if m != nil { + return m.Policy + } + return nil +} + +type ClusterLoadAssignment_Policy struct { + DropOverloads []*ClusterLoadAssignment_Policy_DropOverload `protobuf:"bytes,2,rep,name=drop_overloads,json=dropOverloads,proto3" json:"drop_overloads,omitempty"` + OverprovisioningFactor *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=overprovisioning_factor,json=overprovisioningFactor,proto3" json:"overprovisioning_factor,omitempty"` + EndpointStaleAfter *duration.Duration `protobuf:"bytes,4,opt,name=endpoint_stale_after,json=endpointStaleAfter,proto3" json:"endpoint_stale_after,omitempty"` + HiddenEnvoyDeprecatedDisableOverprovisioning bool `protobuf:"varint,5,opt,name=hidden_envoy_deprecated_disable_overprovisioning,json=hiddenEnvoyDeprecatedDisableOverprovisioning,proto3" json:"hidden_envoy_deprecated_disable_overprovisioning,omitempty"` // Deprecated: Do not use. + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ClusterLoadAssignment_Policy) Reset() { *m = ClusterLoadAssignment_Policy{} } +func (m *ClusterLoadAssignment_Policy) String() string { return proto.CompactTextString(m) } +func (*ClusterLoadAssignment_Policy) ProtoMessage() {} +func (*ClusterLoadAssignment_Policy) Descriptor() ([]byte, []int) { + return fileDescriptor_3459cc50e28e3760, []int{0, 0} +} + +func (m *ClusterLoadAssignment_Policy) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ClusterLoadAssignment_Policy.Unmarshal(m, b) +} +func (m *ClusterLoadAssignment_Policy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ClusterLoadAssignment_Policy.Marshal(b, m, deterministic) +} +func (m *ClusterLoadAssignment_Policy) XXX_Merge(src proto.Message) { + xxx_messageInfo_ClusterLoadAssignment_Policy.Merge(m, src) +} +func (m *ClusterLoadAssignment_Policy) XXX_Size() int { + return xxx_messageInfo_ClusterLoadAssignment_Policy.Size(m) +} +func (m *ClusterLoadAssignment_Policy) XXX_DiscardUnknown() { + xxx_messageInfo_ClusterLoadAssignment_Policy.DiscardUnknown(m) +} + +var xxx_messageInfo_ClusterLoadAssignment_Policy proto.InternalMessageInfo + +func (m *ClusterLoadAssignment_Policy) GetDropOverloads() []*ClusterLoadAssignment_Policy_DropOverload { + if m != nil { + return m.DropOverloads + } + return nil +} + +func (m *ClusterLoadAssignment_Policy) GetOverprovisioningFactor() *wrappers.UInt32Value { + if m != nil { + return m.OverprovisioningFactor + } + return nil +} + +func (m *ClusterLoadAssignment_Policy) GetEndpointStaleAfter() *duration.Duration { + if m != nil { + return m.EndpointStaleAfter + } + return nil +} + +// Deprecated: Do not use. +func (m *ClusterLoadAssignment_Policy) GetHiddenEnvoyDeprecatedDisableOverprovisioning() bool { + if m != nil { + return m.HiddenEnvoyDeprecatedDisableOverprovisioning + } + return false +} + +type ClusterLoadAssignment_Policy_DropOverload struct { + Category string `protobuf:"bytes,1,opt,name=category,proto3" json:"category,omitempty"` + DropPercentage *v3.FractionalPercent `protobuf:"bytes,2,opt,name=drop_percentage,json=dropPercentage,proto3" json:"drop_percentage,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ClusterLoadAssignment_Policy_DropOverload) Reset() { + *m = ClusterLoadAssignment_Policy_DropOverload{} +} +func (m *ClusterLoadAssignment_Policy_DropOverload) String() string { return proto.CompactTextString(m) } +func (*ClusterLoadAssignment_Policy_DropOverload) ProtoMessage() {} +func (*ClusterLoadAssignment_Policy_DropOverload) Descriptor() ([]byte, []int) { + return fileDescriptor_3459cc50e28e3760, []int{0, 0, 0} +} + +func (m *ClusterLoadAssignment_Policy_DropOverload) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ClusterLoadAssignment_Policy_DropOverload.Unmarshal(m, b) +} +func (m *ClusterLoadAssignment_Policy_DropOverload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ClusterLoadAssignment_Policy_DropOverload.Marshal(b, m, deterministic) +} +func (m *ClusterLoadAssignment_Policy_DropOverload) XXX_Merge(src proto.Message) { + xxx_messageInfo_ClusterLoadAssignment_Policy_DropOverload.Merge(m, src) +} +func (m *ClusterLoadAssignment_Policy_DropOverload) XXX_Size() int { + return xxx_messageInfo_ClusterLoadAssignment_Policy_DropOverload.Size(m) +} +func (m *ClusterLoadAssignment_Policy_DropOverload) XXX_DiscardUnknown() { + xxx_messageInfo_ClusterLoadAssignment_Policy_DropOverload.DiscardUnknown(m) +} + +var xxx_messageInfo_ClusterLoadAssignment_Policy_DropOverload proto.InternalMessageInfo + +func (m *ClusterLoadAssignment_Policy_DropOverload) GetCategory() string { + if m != nil { + return m.Category + } + return "" +} + +func (m *ClusterLoadAssignment_Policy_DropOverload) GetDropPercentage() *v3.FractionalPercent { + if m != nil { + return m.DropPercentage + } + return nil +} + +func init() { + proto.RegisterType((*ClusterLoadAssignment)(nil), "envoy.config.endpoint.v3.ClusterLoadAssignment") + proto.RegisterMapType((map[string]*Endpoint)(nil), "envoy.config.endpoint.v3.ClusterLoadAssignment.NamedEndpointsEntry") + proto.RegisterType((*ClusterLoadAssignment_Policy)(nil), "envoy.config.endpoint.v3.ClusterLoadAssignment.Policy") + proto.RegisterType((*ClusterLoadAssignment_Policy_DropOverload)(nil), "envoy.config.endpoint.v3.ClusterLoadAssignment.Policy.DropOverload") +} + +func init() { + proto.RegisterFile("envoy/config/endpoint/v3/endpoint.proto", fileDescriptor_3459cc50e28e3760) +} + +var fileDescriptor_3459cc50e28e3760 = []byte{ + // 699 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0x4d, 0x4f, 0x13, 0x4f, + 0x1c, 0xc7, 0xd9, 0x85, 0xf6, 0x5f, 0x86, 0xc7, 0xcc, 0x5f, 0x65, 0xad, 0x48, 0x2a, 0x1a, 0x2d, + 0xa8, 0xbb, 0xa4, 0x4d, 0x08, 0x69, 0xe2, 0x81, 0x52, 0x48, 0x50, 0x02, 0xcd, 0x1a, 0x3c, 0xba, + 0x99, 0xee, 0x4c, 0xeb, 0xe0, 0x76, 0x66, 0x32, 0x3b, 0x5d, 0xed, 0xcd, 0xa3, 0x37, 0xef, 0xbe, + 0x04, 0x5f, 0x82, 0x89, 0x47, 0x13, 0xaf, 0xbe, 0x15, 0x8f, 0x9c, 0xcc, 0xec, 0x13, 0x58, 0x68, + 0x40, 0x6f, 0xd3, 0xfd, 0xfd, 0x3e, 0xdf, 0xef, 0xfc, 0x1e, 0xa6, 0xe0, 0x11, 0x61, 0x11, 0x1f, + 0x3a, 0x3e, 0x67, 0x5d, 0xda, 0x73, 0x08, 0xc3, 0x82, 0x53, 0xa6, 0x9c, 0xa8, 0x9e, 0x9f, 0x6d, + 0x21, 0xb9, 0xe2, 0xd0, 0x8a, 0x13, 0xed, 0x24, 0xd1, 0xce, 0x83, 0x51, 0xbd, 0x5c, 0xbb, 0x52, + 0xc2, 0xf3, 0x79, 0x5f, 0x70, 0x46, 0x98, 0x0a, 0x13, 0xb5, 0xf2, 0x9d, 0x84, 0x51, 0x43, 0x41, + 0x74, 0xa2, 0x20, 0xd2, 0x27, 0x99, 0x55, 0x79, 0xb9, 0xc7, 0x79, 0x2f, 0x20, 0x0e, 0x12, 0xd4, + 0x41, 0x8c, 0x71, 0x85, 0x14, 0xe5, 0x2c, 0x43, 0x57, 0xd2, 0x68, 0xfc, 0xab, 0x33, 0xe8, 0x3a, + 0x78, 0x20, 0xe3, 0x84, 0x71, 0xf1, 0x77, 0x12, 0x09, 0x41, 0x64, 0xc6, 0xdf, 0x1d, 0x60, 0x81, + 0xce, 0xeb, 0x3a, 0xa1, 0x42, 0x6a, 0x90, 0x85, 0xef, 0x5d, 0x08, 0x47, 0x44, 0x86, 0x94, 0x33, + 0xca, 0x7a, 0x69, 0xca, 0x52, 0x84, 0x02, 0x8a, 0x91, 0x22, 0x4e, 0x76, 0x48, 0x02, 0xab, 0xbf, + 0x4a, 0xe0, 0xe6, 0x4e, 0x30, 0x08, 0x15, 0x91, 0x07, 0x1c, 0xe1, 0xed, 0x30, 0xa4, 0x3d, 0xd6, + 0x27, 0x4c, 0xc1, 0x75, 0x30, 0xeb, 0x27, 0x01, 0x8f, 0xa1, 0x3e, 0xb1, 0x8c, 0x8a, 0x51, 0x9d, + 0x6e, 0xfe, 0x77, 0xda, 0x9c, 0x92, 0x66, 0xc5, 0x70, 0x67, 0xd2, 0xe0, 0x21, 0xea, 0x13, 0xf8, + 0x02, 0x4c, 0x67, 0x8d, 0x0b, 0x2d, 0xb3, 0x32, 0x59, 0x9d, 0xa9, 0x3d, 0xb5, 0xc7, 0x75, 0xdf, + 0x3e, 0xe0, 0x3e, 0x0a, 0xa8, 0x1a, 0x1e, 0x74, 0x76, 0x33, 0xc8, 0x3d, 0xe3, 0x61, 0x00, 0x16, + 0xb4, 0x21, 0xf6, 0xce, 0x24, 0x0b, 0xb1, 0xe4, 0xce, 0x78, 0xc9, 0x4b, 0x4b, 0xb0, 0xf5, 0xdd, + 0x70, 0xee, 0xb1, 0xcb, 0x94, 0x1c, 0xba, 0xf3, 0xec, 0x8f, 0x8f, 0xf0, 0x10, 0x14, 0x05, 0x0f, + 0xa8, 0x3f, 0xb4, 0xa6, 0x2a, 0x46, 0x75, 0xa6, 0xb6, 0xf9, 0xb7, 0x26, 0xed, 0x98, 0x76, 0x53, + 0x95, 0xf2, 0xa7, 0x02, 0x28, 0x26, 0x9f, 0xe0, 0x09, 0x98, 0xc7, 0x92, 0x0b, 0x8f, 0x47, 0x44, + 0x06, 0x1c, 0xe1, 0xac, 0x35, 0x3b, 0xff, 0x66, 0x61, 0xb7, 0x24, 0x17, 0x47, 0xa9, 0x96, 0x3b, + 0x87, 0xcf, 0xfd, 0x0a, 0xe1, 0x6b, 0xb0, 0xa4, 0x6d, 0x84, 0xe4, 0x11, 0x4d, 0x47, 0xef, 0x75, + 0x91, 0xaf, 0xb8, 0xb4, 0x26, 0xe3, 0xba, 0x96, 0xed, 0x64, 0xc9, 0xec, 0x6c, 0xc9, 0xec, 0xe3, + 0x7d, 0xa6, 0xea, 0xb5, 0x57, 0x28, 0x18, 0x90, 0x78, 0xac, 0xeb, 0x66, 0x65, 0xc2, 0xbd, 0x35, + 0xaa, 0xb2, 0x17, 0x8b, 0xc0, 0x63, 0x70, 0x23, 0x7f, 0x1a, 0xa1, 0x42, 0x01, 0xf1, 0x50, 0x57, + 0x11, 0x99, 0x36, 0xed, 0xf6, 0x05, 0xf1, 0x56, 0xba, 0xe1, 0xcd, 0xd2, 0x69, 0xb3, 0xf0, 0xc5, + 0x30, 0xd7, 0x27, 0x5c, 0x98, 0x09, 0xbc, 0xd4, 0xfc, 0xb6, 0xc6, 0xe1, 0x09, 0xd8, 0x78, 0x43, + 0x31, 0x26, 0xcc, 0x8b, 0x5b, 0xe2, 0x61, 0x22, 0x24, 0xf1, 0x91, 0x22, 0xd8, 0xc3, 0x34, 0x44, + 0x9d, 0x80, 0x78, 0xa3, 0x17, 0xb2, 0x0a, 0x15, 0xa3, 0x5a, 0x6a, 0x9a, 0x96, 0xe1, 0x3e, 0x49, + 0xd8, 0x5d, 0x8d, 0xb6, 0x72, 0xb2, 0x95, 0x80, 0x47, 0x23, 0x5c, 0xf9, 0x9b, 0x01, 0x66, 0xcf, + 0xb7, 0x10, 0xde, 0x07, 0x25, 0x0d, 0xf4, 0xb8, 0x1c, 0x8e, 0x6e, 0x77, 0x1e, 0x80, 0xfb, 0x60, + 0x21, 0x1e, 0x62, 0xfa, 0xde, 0x51, 0x8f, 0x58, 0x66, 0x5c, 0x73, 0x25, 0x9d, 0xa2, 0xfe, 0x43, + 0xd0, 0xa3, 0xdb, 0x93, 0xc8, 0xd7, 0x15, 0xa3, 0xa0, 0x9d, 0xa4, 0xba, 0xf1, 0xf4, 0xdb, 0x39, + 0xd7, 0x78, 0xf6, 0xf9, 0xfb, 0xc7, 0x95, 0x2d, 0xb0, 0x99, 0x70, 0x48, 0x50, 0x3b, 0xaa, 0x5d, + 0x7f, 0xe2, 0x8d, 0x0d, 0x8d, 0x3f, 0x06, 0x6b, 0xd7, 0xc6, 0x9f, 0x4f, 0x95, 0x8c, 0x45, 0xb3, + 0x4c, 0xc0, 0xff, 0x97, 0x3c, 0x04, 0xb8, 0x08, 0x26, 0xdf, 0x92, 0xb4, 0x70, 0x57, 0x1f, 0xe1, + 0x16, 0x28, 0x44, 0x7a, 0x1b, 0xd2, 0x02, 0x57, 0xc7, 0xaf, 0x69, 0x26, 0xe5, 0x26, 0x40, 0xc3, + 0xdc, 0x32, 0x1a, 0x6b, 0xfa, 0x7a, 0x0f, 0xc0, 0xea, 0xd5, 0xd7, 0x6b, 0x6e, 0x7f, 0xfd, 0xf0, + 0xe3, 0x67, 0xd1, 0x5c, 0x34, 0xc1, 0x43, 0xca, 0x13, 0x17, 0x21, 0xf9, 0xfb, 0xe1, 0x58, 0xc3, + 0xe6, 0x5c, 0xe6, 0xd8, 0xd6, 0x0b, 0xd6, 0x36, 0x3a, 0xc5, 0x78, 0xd3, 0xea, 0xbf, 0x03, 0x00, + 0x00, 0xff, 0xff, 0xfc, 0xd6, 0x14, 0x94, 0x0d, 0x06, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/endpoint.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/endpoint.pb.validate.go new file mode 100644 index 000000000..882017130 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/endpoint.pb.validate.go @@ -0,0 +1,355 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/endpoint/v3/endpoint.proto + +package envoy_config_endpoint_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _endpoint_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on ClusterLoadAssignment with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *ClusterLoadAssignment) Validate() error { + if m == nil { + return nil + } + + if len(m.GetClusterName()) < 1 { + return ClusterLoadAssignmentValidationError{ + field: "ClusterName", + reason: "value length must be at least 1 bytes", + } + } + + for idx, item := range m.GetEndpoints() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterLoadAssignmentValidationError{ + field: fmt.Sprintf("Endpoints[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for key, val := range m.GetNamedEndpoints() { + _ = val + + // no validation rules for NamedEndpoints[key] + + if v, ok := interface{}(val).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterLoadAssignmentValidationError{ + field: fmt.Sprintf("NamedEndpoints[%v]", key), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetPolicy()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterLoadAssignmentValidationError{ + field: "Policy", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// ClusterLoadAssignmentValidationError is the validation error returned by +// ClusterLoadAssignment.Validate if the designated constraints aren't met. +type ClusterLoadAssignmentValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ClusterLoadAssignmentValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ClusterLoadAssignmentValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ClusterLoadAssignmentValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ClusterLoadAssignmentValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ClusterLoadAssignmentValidationError) ErrorName() string { + return "ClusterLoadAssignmentValidationError" +} + +// Error satisfies the builtin error interface +func (e ClusterLoadAssignmentValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sClusterLoadAssignment.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ClusterLoadAssignmentValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ClusterLoadAssignmentValidationError{} + +// Validate checks the field values on ClusterLoadAssignment_Policy with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *ClusterLoadAssignment_Policy) Validate() error { + if m == nil { + return nil + } + + for idx, item := range m.GetDropOverloads() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterLoadAssignment_PolicyValidationError{ + field: fmt.Sprintf("DropOverloads[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if wrapper := m.GetOverprovisioningFactor(); wrapper != nil { + + if wrapper.GetValue() <= 0 { + return ClusterLoadAssignment_PolicyValidationError{ + field: "OverprovisioningFactor", + reason: "value must be greater than 0", + } + } + + } + + if d := m.GetEndpointStaleAfter(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return ClusterLoadAssignment_PolicyValidationError{ + field: "EndpointStaleAfter", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur <= gt { + return ClusterLoadAssignment_PolicyValidationError{ + field: "EndpointStaleAfter", + reason: "value must be greater than 0s", + } + } + + } + + // no validation rules for HiddenEnvoyDeprecatedDisableOverprovisioning + + return nil +} + +// ClusterLoadAssignment_PolicyValidationError is the validation error returned +// by ClusterLoadAssignment_Policy.Validate if the designated constraints +// aren't met. +type ClusterLoadAssignment_PolicyValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ClusterLoadAssignment_PolicyValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ClusterLoadAssignment_PolicyValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ClusterLoadAssignment_PolicyValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ClusterLoadAssignment_PolicyValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ClusterLoadAssignment_PolicyValidationError) ErrorName() string { + return "ClusterLoadAssignment_PolicyValidationError" +} + +// Error satisfies the builtin error interface +func (e ClusterLoadAssignment_PolicyValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sClusterLoadAssignment_Policy.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ClusterLoadAssignment_PolicyValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ClusterLoadAssignment_PolicyValidationError{} + +// Validate checks the field values on +// ClusterLoadAssignment_Policy_DropOverload with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *ClusterLoadAssignment_Policy_DropOverload) Validate() error { + if m == nil { + return nil + } + + if len(m.GetCategory()) < 1 { + return ClusterLoadAssignment_Policy_DropOverloadValidationError{ + field: "Category", + reason: "value length must be at least 1 bytes", + } + } + + if v, ok := interface{}(m.GetDropPercentage()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterLoadAssignment_Policy_DropOverloadValidationError{ + field: "DropPercentage", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// ClusterLoadAssignment_Policy_DropOverloadValidationError is the validation +// error returned by ClusterLoadAssignment_Policy_DropOverload.Validate if the +// designated constraints aren't met. +type ClusterLoadAssignment_Policy_DropOverloadValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ClusterLoadAssignment_Policy_DropOverloadValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ClusterLoadAssignment_Policy_DropOverloadValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ClusterLoadAssignment_Policy_DropOverloadValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ClusterLoadAssignment_Policy_DropOverloadValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ClusterLoadAssignment_Policy_DropOverloadValidationError) ErrorName() string { + return "ClusterLoadAssignment_Policy_DropOverloadValidationError" +} + +// Error satisfies the builtin error interface +func (e ClusterLoadAssignment_Policy_DropOverloadValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sClusterLoadAssignment_Policy_DropOverload.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ClusterLoadAssignment_Policy_DropOverloadValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ClusterLoadAssignment_Policy_DropOverloadValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/endpoint_components.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/endpoint_components.pb.go new file mode 100644 index 000000000..ca87f2aab --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/endpoint_components.pb.go @@ -0,0 +1,343 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/endpoint/v3/endpoint_components.proto + +package envoy_config_endpoint_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type Endpoint struct { + Address *v3.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + HealthCheckConfig *Endpoint_HealthCheckConfig `protobuf:"bytes,2,opt,name=health_check_config,json=healthCheckConfig,proto3" json:"health_check_config,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Endpoint) Reset() { *m = Endpoint{} } +func (m *Endpoint) String() string { return proto.CompactTextString(m) } +func (*Endpoint) ProtoMessage() {} +func (*Endpoint) Descriptor() ([]byte, []int) { + return fileDescriptor_1da004cdf3521995, []int{0} +} + +func (m *Endpoint) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Endpoint.Unmarshal(m, b) +} +func (m *Endpoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Endpoint.Marshal(b, m, deterministic) +} +func (m *Endpoint) XXX_Merge(src proto.Message) { + xxx_messageInfo_Endpoint.Merge(m, src) +} +func (m *Endpoint) XXX_Size() int { + return xxx_messageInfo_Endpoint.Size(m) +} +func (m *Endpoint) XXX_DiscardUnknown() { + xxx_messageInfo_Endpoint.DiscardUnknown(m) +} + +var xxx_messageInfo_Endpoint proto.InternalMessageInfo + +func (m *Endpoint) GetAddress() *v3.Address { + if m != nil { + return m.Address + } + return nil +} + +func (m *Endpoint) GetHealthCheckConfig() *Endpoint_HealthCheckConfig { + if m != nil { + return m.HealthCheckConfig + } + return nil +} + +type Endpoint_HealthCheckConfig struct { + PortValue uint32 `protobuf:"varint,1,opt,name=port_value,json=portValue,proto3" json:"port_value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Endpoint_HealthCheckConfig) Reset() { *m = Endpoint_HealthCheckConfig{} } +func (m *Endpoint_HealthCheckConfig) String() string { return proto.CompactTextString(m) } +func (*Endpoint_HealthCheckConfig) ProtoMessage() {} +func (*Endpoint_HealthCheckConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_1da004cdf3521995, []int{0, 0} +} + +func (m *Endpoint_HealthCheckConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Endpoint_HealthCheckConfig.Unmarshal(m, b) +} +func (m *Endpoint_HealthCheckConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Endpoint_HealthCheckConfig.Marshal(b, m, deterministic) +} +func (m *Endpoint_HealthCheckConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_Endpoint_HealthCheckConfig.Merge(m, src) +} +func (m *Endpoint_HealthCheckConfig) XXX_Size() int { + return xxx_messageInfo_Endpoint_HealthCheckConfig.Size(m) +} +func (m *Endpoint_HealthCheckConfig) XXX_DiscardUnknown() { + xxx_messageInfo_Endpoint_HealthCheckConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_Endpoint_HealthCheckConfig proto.InternalMessageInfo + +func (m *Endpoint_HealthCheckConfig) GetPortValue() uint32 { + if m != nil { + return m.PortValue + } + return 0 +} + +type LbEndpoint struct { + // Types that are valid to be assigned to HostIdentifier: + // *LbEndpoint_Endpoint + // *LbEndpoint_EndpointName + HostIdentifier isLbEndpoint_HostIdentifier `protobuf_oneof:"host_identifier"` + HealthStatus v3.HealthStatus `protobuf:"varint,2,opt,name=health_status,json=healthStatus,proto3,enum=envoy.config.core.v3.HealthStatus" json:"health_status,omitempty"` + Metadata *v3.Metadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"` + LoadBalancingWeight *wrappers.UInt32Value `protobuf:"bytes,4,opt,name=load_balancing_weight,json=loadBalancingWeight,proto3" json:"load_balancing_weight,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LbEndpoint) Reset() { *m = LbEndpoint{} } +func (m *LbEndpoint) String() string { return proto.CompactTextString(m) } +func (*LbEndpoint) ProtoMessage() {} +func (*LbEndpoint) Descriptor() ([]byte, []int) { + return fileDescriptor_1da004cdf3521995, []int{1} +} + +func (m *LbEndpoint) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LbEndpoint.Unmarshal(m, b) +} +func (m *LbEndpoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LbEndpoint.Marshal(b, m, deterministic) +} +func (m *LbEndpoint) XXX_Merge(src proto.Message) { + xxx_messageInfo_LbEndpoint.Merge(m, src) +} +func (m *LbEndpoint) XXX_Size() int { + return xxx_messageInfo_LbEndpoint.Size(m) +} +func (m *LbEndpoint) XXX_DiscardUnknown() { + xxx_messageInfo_LbEndpoint.DiscardUnknown(m) +} + +var xxx_messageInfo_LbEndpoint proto.InternalMessageInfo + +type isLbEndpoint_HostIdentifier interface { + isLbEndpoint_HostIdentifier() +} + +type LbEndpoint_Endpoint struct { + Endpoint *Endpoint `protobuf:"bytes,1,opt,name=endpoint,proto3,oneof"` +} + +type LbEndpoint_EndpointName struct { + EndpointName string `protobuf:"bytes,5,opt,name=endpoint_name,json=endpointName,proto3,oneof"` +} + +func (*LbEndpoint_Endpoint) isLbEndpoint_HostIdentifier() {} + +func (*LbEndpoint_EndpointName) isLbEndpoint_HostIdentifier() {} + +func (m *LbEndpoint) GetHostIdentifier() isLbEndpoint_HostIdentifier { + if m != nil { + return m.HostIdentifier + } + return nil +} + +func (m *LbEndpoint) GetEndpoint() *Endpoint { + if x, ok := m.GetHostIdentifier().(*LbEndpoint_Endpoint); ok { + return x.Endpoint + } + return nil +} + +func (m *LbEndpoint) GetEndpointName() string { + if x, ok := m.GetHostIdentifier().(*LbEndpoint_EndpointName); ok { + return x.EndpointName + } + return "" +} + +func (m *LbEndpoint) GetHealthStatus() v3.HealthStatus { + if m != nil { + return m.HealthStatus + } + return v3.HealthStatus_UNKNOWN +} + +func (m *LbEndpoint) GetMetadata() *v3.Metadata { + if m != nil { + return m.Metadata + } + return nil +} + +func (m *LbEndpoint) GetLoadBalancingWeight() *wrappers.UInt32Value { + if m != nil { + return m.LoadBalancingWeight + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*LbEndpoint) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*LbEndpoint_Endpoint)(nil), + (*LbEndpoint_EndpointName)(nil), + } +} + +type LocalityLbEndpoints struct { + Locality *v3.Locality `protobuf:"bytes,1,opt,name=locality,proto3" json:"locality,omitempty"` + LbEndpoints []*LbEndpoint `protobuf:"bytes,2,rep,name=lb_endpoints,json=lbEndpoints,proto3" json:"lb_endpoints,omitempty"` + LoadBalancingWeight *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=load_balancing_weight,json=loadBalancingWeight,proto3" json:"load_balancing_weight,omitempty"` + Priority uint32 `protobuf:"varint,5,opt,name=priority,proto3" json:"priority,omitempty"` + Proximity *wrappers.UInt32Value `protobuf:"bytes,6,opt,name=proximity,proto3" json:"proximity,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LocalityLbEndpoints) Reset() { *m = LocalityLbEndpoints{} } +func (m *LocalityLbEndpoints) String() string { return proto.CompactTextString(m) } +func (*LocalityLbEndpoints) ProtoMessage() {} +func (*LocalityLbEndpoints) Descriptor() ([]byte, []int) { + return fileDescriptor_1da004cdf3521995, []int{2} +} + +func (m *LocalityLbEndpoints) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LocalityLbEndpoints.Unmarshal(m, b) +} +func (m *LocalityLbEndpoints) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LocalityLbEndpoints.Marshal(b, m, deterministic) +} +func (m *LocalityLbEndpoints) XXX_Merge(src proto.Message) { + xxx_messageInfo_LocalityLbEndpoints.Merge(m, src) +} +func (m *LocalityLbEndpoints) XXX_Size() int { + return xxx_messageInfo_LocalityLbEndpoints.Size(m) +} +func (m *LocalityLbEndpoints) XXX_DiscardUnknown() { + xxx_messageInfo_LocalityLbEndpoints.DiscardUnknown(m) +} + +var xxx_messageInfo_LocalityLbEndpoints proto.InternalMessageInfo + +func (m *LocalityLbEndpoints) GetLocality() *v3.Locality { + if m != nil { + return m.Locality + } + return nil +} + +func (m *LocalityLbEndpoints) GetLbEndpoints() []*LbEndpoint { + if m != nil { + return m.LbEndpoints + } + return nil +} + +func (m *LocalityLbEndpoints) GetLoadBalancingWeight() *wrappers.UInt32Value { + if m != nil { + return m.LoadBalancingWeight + } + return nil +} + +func (m *LocalityLbEndpoints) GetPriority() uint32 { + if m != nil { + return m.Priority + } + return 0 +} + +func (m *LocalityLbEndpoints) GetProximity() *wrappers.UInt32Value { + if m != nil { + return m.Proximity + } + return nil +} + +func init() { + proto.RegisterType((*Endpoint)(nil), "envoy.config.endpoint.v3.Endpoint") + proto.RegisterType((*Endpoint_HealthCheckConfig)(nil), "envoy.config.endpoint.v3.Endpoint.HealthCheckConfig") + proto.RegisterType((*LbEndpoint)(nil), "envoy.config.endpoint.v3.LbEndpoint") + proto.RegisterType((*LocalityLbEndpoints)(nil), "envoy.config.endpoint.v3.LocalityLbEndpoints") +} + +func init() { + proto.RegisterFile("envoy/config/endpoint/v3/endpoint_components.proto", fileDescriptor_1da004cdf3521995) +} + +var fileDescriptor_1da004cdf3521995 = []byte{ + // 666 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0x4f, 0x6f, 0xd3, 0x3e, + 0x18, 0xc7, 0xd7, 0x66, 0xeb, 0x5a, 0x6f, 0xfb, 0xfd, 0x58, 0x26, 0xb4, 0x68, 0x62, 0xa5, 0x54, + 0x1b, 0x2b, 0x43, 0x72, 0xa6, 0x16, 0x69, 0x52, 0x4f, 0x90, 0x09, 0x6d, 0x88, 0x81, 0x26, 0x23, + 0x40, 0x9c, 0x22, 0x37, 0xf1, 0x1a, 0x8b, 0xd4, 0x8e, 0x12, 0x37, 0x63, 0xb7, 0x1d, 0xe1, 0xc8, + 0x95, 0x97, 0xc2, 0x1d, 0x69, 0x57, 0xde, 0xce, 0x2e, 0x43, 0x76, 0xe2, 0x74, 0x7f, 0x1a, 0x76, + 0xe0, 0x16, 0xfb, 0xf9, 0x7c, 0x9f, 0x3f, 0xdf, 0xc7, 0x2d, 0xe8, 0x12, 0x96, 0xf2, 0x53, 0xdb, + 0xe3, 0xec, 0x98, 0x0e, 0x6d, 0xc2, 0xfc, 0x88, 0x53, 0x26, 0xec, 0xb4, 0x57, 0x7c, 0xbb, 0x1e, + 0x1f, 0x45, 0x9c, 0x11, 0x26, 0x12, 0x18, 0xc5, 0x5c, 0x70, 0xd3, 0x52, 0x1a, 0x98, 0x69, 0xa0, + 0xe6, 0x60, 0xda, 0x5b, 0x6b, 0x5f, 0xcb, 0xe6, 0xf1, 0x98, 0xc8, 0x4c, 0xd8, 0xf7, 0x63, 0x92, + 0xe4, 0xea, 0xb5, 0x87, 0x53, 0x99, 0x01, 0x4e, 0x48, 0x0e, 0x6c, 0x4d, 0x05, 0x02, 0x82, 0x43, + 0x11, 0xb8, 0x5e, 0x40, 0xbc, 0xcf, 0x39, 0xd8, 0x1c, 0x72, 0x3e, 0x0c, 0x89, 0xad, 0x4e, 0x83, + 0xf1, 0xb1, 0x7d, 0x12, 0xe3, 0x28, 0x22, 0xb1, 0xae, 0xb4, 0x3e, 0xf6, 0x23, 0x6c, 0x63, 0xc6, + 0xb8, 0xc0, 0x82, 0x72, 0x96, 0xd8, 0x89, 0xc0, 0x62, 0xac, 0xc3, 0x8f, 0x6e, 0x85, 0x53, 0x12, + 0x27, 0x94, 0x33, 0xca, 0x86, 0x39, 0xb2, 0x9a, 0xe2, 0x90, 0xfa, 0x58, 0x10, 0x5b, 0x7f, 0x64, + 0x81, 0xf6, 0x79, 0x15, 0xd4, 0x5f, 0xe6, 0x83, 0x9b, 0xbb, 0x60, 0x3e, 0x1f, 0xd1, 0xaa, 0xb4, + 0x2a, 0x9d, 0x85, 0xee, 0x3a, 0xbc, 0xe6, 0x90, 0x1c, 0x01, 0xa6, 0x3d, 0xf8, 0x22, 0x83, 0x90, + 0xa6, 0x4d, 0x1f, 0xac, 0x5c, 0x1d, 0xcb, 0xcd, 0x78, 0xab, 0xaa, 0x92, 0x3c, 0x83, 0x65, 0x36, + 0x43, 0x5d, 0x19, 0x1e, 0x28, 0xf5, 0x9e, 0x14, 0xef, 0x29, 0x0c, 0x2d, 0x07, 0x37, 0xaf, 0xd6, + 0x52, 0xb0, 0x7c, 0x8b, 0x33, 0x3b, 0x00, 0x44, 0x3c, 0x16, 0x6e, 0x8a, 0xc3, 0x31, 0x51, 0x6d, + 0x2f, 0x39, 0x8d, 0x0b, 0xa7, 0xb6, 0x3d, 0x6b, 0x5d, 0x5e, 0x1a, 0xa8, 0x21, 0x83, 0x1f, 0x64, + 0xac, 0xbf, 0xfb, 0xe3, 0xd7, 0xd7, 0x66, 0x17, 0xec, 0x64, 0xdd, 0xe0, 0x88, 0xc2, 0xb4, 0x3b, + 0xe9, 0xa6, 0xbc, 0x95, 0xfe, 0xa6, 0x14, 0xb6, 0x40, 0xf3, 0xef, 0xc2, 0xf6, 0x77, 0x03, 0x80, + 0xc3, 0x41, 0x61, 0xe6, 0x73, 0x50, 0xd7, 0x4c, 0xee, 0x66, 0xfb, 0x6e, 0x23, 0x0e, 0x66, 0x50, + 0xa1, 0x32, 0x37, 0xc1, 0x52, 0xf1, 0x76, 0x19, 0x1e, 0x11, 0x6b, 0xae, 0x55, 0xe9, 0x34, 0x0e, + 0x66, 0xd0, 0xa2, 0xbe, 0x7e, 0x8b, 0x47, 0xc4, 0xdc, 0x07, 0x4b, 0xb9, 0xf9, 0xd9, 0xab, 0x50, + 0xb6, 0xff, 0x77, 0xb3, 0x9a, 0xde, 0x5d, 0x36, 0xde, 0x3b, 0x45, 0xa2, 0xc5, 0xe0, 0xca, 0xc9, + 0xec, 0x83, 0xfa, 0x88, 0x08, 0xec, 0x63, 0x81, 0x2d, 0x43, 0x75, 0xdc, 0x9c, 0x9e, 0xe3, 0x4d, + 0x4e, 0xa1, 0x82, 0x37, 0x3f, 0x81, 0xfb, 0x21, 0xc7, 0xbe, 0x3b, 0xc0, 0x21, 0x66, 0x1e, 0x65, + 0x43, 0xf7, 0x84, 0xd0, 0x61, 0x20, 0xac, 0x59, 0x95, 0xe8, 0x01, 0xcc, 0x9e, 0x38, 0xd4, 0x4f, + 0x1c, 0xbe, 0x7f, 0xc5, 0x44, 0xaf, 0xab, 0x36, 0xe3, 0xcc, 0x5f, 0x38, 0xb3, 0xdb, 0xd5, 0x4e, + 0x05, 0xad, 0xc8, 0x1c, 0x8e, 0x4e, 0xf1, 0x51, 0x65, 0xe8, 0x6f, 0x49, 0xfb, 0xdb, 0xa0, 0x35, + 0xdd, 0xfe, 0x89, 0xe3, 0xce, 0x32, 0xf8, 0x3f, 0xe0, 0x89, 0x70, 0xa9, 0x4f, 0x98, 0xa0, 0xc7, + 0x94, 0xc4, 0xed, 0x6f, 0x06, 0x58, 0x39, 0xe4, 0x1e, 0x0e, 0xa9, 0x38, 0x9d, 0x90, 0x6a, 0xd4, + 0x30, 0xbf, 0xce, 0x97, 0x53, 0x32, 0xaa, 0x16, 0xa3, 0x82, 0x37, 0xf7, 0xc1, 0x62, 0x38, 0x70, + 0x75, 0x03, 0xd2, 0x6e, 0xa3, 0xb3, 0xd0, 0xdd, 0x28, 0x5f, 0xee, 0xa4, 0x30, 0x5a, 0x08, 0xaf, + 0x34, 0x51, 0xea, 0x99, 0xf1, 0xaf, 0x9e, 0x99, 0x1b, 0xa0, 0x1e, 0xc5, 0x94, 0xc7, 0x72, 0xbe, + 0x39, 0xf5, 0x9b, 0xa8, 0x5f, 0x38, 0x73, 0xdb, 0x86, 0x75, 0x56, 0x41, 0x45, 0xc4, 0xec, 0x83, + 0x46, 0x14, 0xf3, 0x2f, 0x74, 0x24, 0xb1, 0xda, 0xdd, 0x45, 0xd1, 0x04, 0xef, 0xef, 0xc8, 0xad, + 0x3c, 0x05, 0x4f, 0x4a, 0xb6, 0x72, 0xdb, 0x73, 0xe7, 0xf5, 0xcf, 0xb3, 0xf3, 0xdf, 0xb5, 0xea, + 0xbd, 0x2a, 0x78, 0x4c, 0x79, 0xe6, 0x96, 0x4c, 0x77, 0x5a, 0x6a, 0x9c, 0xb3, 0xaa, 0xc5, 0x7b, + 0xc5, 0x3f, 0xf7, 0x91, 0x6c, 0xeb, 0xa8, 0x32, 0xa8, 0xa9, 0xfe, 0x7a, 0x7f, 0x02, 0x00, 0x00, + 0xff, 0xff, 0xbd, 0xb4, 0x67, 0x6e, 0xf7, 0x05, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/endpoint_components.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/endpoint_components.pb.validate.go new file mode 100644 index 000000000..0790dec7f --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/endpoint_components.pb.validate.go @@ -0,0 +1,425 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/endpoint/v3/endpoint_components.proto + +package envoy_config_endpoint_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" + + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} + + _ = v3.HealthStatus(0) +) + +// define the regex for a UUID once up-front +var _endpoint_components_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on Endpoint with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Endpoint) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetAddress()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return EndpointValidationError{ + field: "Address", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetHealthCheckConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return EndpointValidationError{ + field: "HealthCheckConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// EndpointValidationError is the validation error returned by +// Endpoint.Validate if the designated constraints aren't met. +type EndpointValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e EndpointValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e EndpointValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e EndpointValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e EndpointValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e EndpointValidationError) ErrorName() string { return "EndpointValidationError" } + +// Error satisfies the builtin error interface +func (e EndpointValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sEndpoint.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = EndpointValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = EndpointValidationError{} + +// Validate checks the field values on LbEndpoint with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *LbEndpoint) Validate() error { + if m == nil { + return nil + } + + // no validation rules for HealthStatus + + if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return LbEndpointValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if wrapper := m.GetLoadBalancingWeight(); wrapper != nil { + + if wrapper.GetValue() < 1 { + return LbEndpointValidationError{ + field: "LoadBalancingWeight", + reason: "value must be greater than or equal to 1", + } + } + + } + + switch m.HostIdentifier.(type) { + + case *LbEndpoint_Endpoint: + + if v, ok := interface{}(m.GetEndpoint()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return LbEndpointValidationError{ + field: "Endpoint", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *LbEndpoint_EndpointName: + // no validation rules for EndpointName + + } + + return nil +} + +// LbEndpointValidationError is the validation error returned by +// LbEndpoint.Validate if the designated constraints aren't met. +type LbEndpointValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e LbEndpointValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e LbEndpointValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e LbEndpointValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e LbEndpointValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e LbEndpointValidationError) ErrorName() string { return "LbEndpointValidationError" } + +// Error satisfies the builtin error interface +func (e LbEndpointValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sLbEndpoint.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = LbEndpointValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = LbEndpointValidationError{} + +// Validate checks the field values on LocalityLbEndpoints with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *LocalityLbEndpoints) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetLocality()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return LocalityLbEndpointsValidationError{ + field: "Locality", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetLbEndpoints() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return LocalityLbEndpointsValidationError{ + field: fmt.Sprintf("LbEndpoints[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if wrapper := m.GetLoadBalancingWeight(); wrapper != nil { + + if wrapper.GetValue() < 1 { + return LocalityLbEndpointsValidationError{ + field: "LoadBalancingWeight", + reason: "value must be greater than or equal to 1", + } + } + + } + + if m.GetPriority() > 128 { + return LocalityLbEndpointsValidationError{ + field: "Priority", + reason: "value must be less than or equal to 128", + } + } + + if v, ok := interface{}(m.GetProximity()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return LocalityLbEndpointsValidationError{ + field: "Proximity", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// LocalityLbEndpointsValidationError is the validation error returned by +// LocalityLbEndpoints.Validate if the designated constraints aren't met. +type LocalityLbEndpointsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e LocalityLbEndpointsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e LocalityLbEndpointsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e LocalityLbEndpointsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e LocalityLbEndpointsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e LocalityLbEndpointsValidationError) ErrorName() string { + return "LocalityLbEndpointsValidationError" +} + +// Error satisfies the builtin error interface +func (e LocalityLbEndpointsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sLocalityLbEndpoints.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = LocalityLbEndpointsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = LocalityLbEndpointsValidationError{} + +// Validate checks the field values on Endpoint_HealthCheckConfig with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *Endpoint_HealthCheckConfig) Validate() error { + if m == nil { + return nil + } + + if m.GetPortValue() > 65535 { + return Endpoint_HealthCheckConfigValidationError{ + field: "PortValue", + reason: "value must be less than or equal to 65535", + } + } + + return nil +} + +// Endpoint_HealthCheckConfigValidationError is the validation error returned +// by Endpoint_HealthCheckConfig.Validate if the designated constraints aren't met. +type Endpoint_HealthCheckConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Endpoint_HealthCheckConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Endpoint_HealthCheckConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Endpoint_HealthCheckConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Endpoint_HealthCheckConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Endpoint_HealthCheckConfigValidationError) ErrorName() string { + return "Endpoint_HealthCheckConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e Endpoint_HealthCheckConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sEndpoint_HealthCheckConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Endpoint_HealthCheckConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Endpoint_HealthCheckConfigValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/load_report.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/load_report.pb.go new file mode 100644 index 000000000..1c43c6c29 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/load_report.pb.go @@ -0,0 +1,460 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/endpoint/v3/load_report.proto + +package envoy_config_endpoint_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + duration "github.com/golang/protobuf/ptypes/duration" + _struct "github.com/golang/protobuf/ptypes/struct" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type UpstreamLocalityStats struct { + Locality *v3.Locality `protobuf:"bytes,1,opt,name=locality,proto3" json:"locality,omitempty"` + TotalSuccessfulRequests uint64 `protobuf:"varint,2,opt,name=total_successful_requests,json=totalSuccessfulRequests,proto3" json:"total_successful_requests,omitempty"` + TotalRequestsInProgress uint64 `protobuf:"varint,3,opt,name=total_requests_in_progress,json=totalRequestsInProgress,proto3" json:"total_requests_in_progress,omitempty"` + TotalErrorRequests uint64 `protobuf:"varint,4,opt,name=total_error_requests,json=totalErrorRequests,proto3" json:"total_error_requests,omitempty"` + TotalIssuedRequests uint64 `protobuf:"varint,8,opt,name=total_issued_requests,json=totalIssuedRequests,proto3" json:"total_issued_requests,omitempty"` + LoadMetricStats []*EndpointLoadMetricStats `protobuf:"bytes,5,rep,name=load_metric_stats,json=loadMetricStats,proto3" json:"load_metric_stats,omitempty"` + UpstreamEndpointStats []*UpstreamEndpointStats `protobuf:"bytes,7,rep,name=upstream_endpoint_stats,json=upstreamEndpointStats,proto3" json:"upstream_endpoint_stats,omitempty"` + Priority uint32 `protobuf:"varint,6,opt,name=priority,proto3" json:"priority,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UpstreamLocalityStats) Reset() { *m = UpstreamLocalityStats{} } +func (m *UpstreamLocalityStats) String() string { return proto.CompactTextString(m) } +func (*UpstreamLocalityStats) ProtoMessage() {} +func (*UpstreamLocalityStats) Descriptor() ([]byte, []int) { + return fileDescriptor_e66282a187404711, []int{0} +} + +func (m *UpstreamLocalityStats) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpstreamLocalityStats.Unmarshal(m, b) +} +func (m *UpstreamLocalityStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpstreamLocalityStats.Marshal(b, m, deterministic) +} +func (m *UpstreamLocalityStats) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpstreamLocalityStats.Merge(m, src) +} +func (m *UpstreamLocalityStats) XXX_Size() int { + return xxx_messageInfo_UpstreamLocalityStats.Size(m) +} +func (m *UpstreamLocalityStats) XXX_DiscardUnknown() { + xxx_messageInfo_UpstreamLocalityStats.DiscardUnknown(m) +} + +var xxx_messageInfo_UpstreamLocalityStats proto.InternalMessageInfo + +func (m *UpstreamLocalityStats) GetLocality() *v3.Locality { + if m != nil { + return m.Locality + } + return nil +} + +func (m *UpstreamLocalityStats) GetTotalSuccessfulRequests() uint64 { + if m != nil { + return m.TotalSuccessfulRequests + } + return 0 +} + +func (m *UpstreamLocalityStats) GetTotalRequestsInProgress() uint64 { + if m != nil { + return m.TotalRequestsInProgress + } + return 0 +} + +func (m *UpstreamLocalityStats) GetTotalErrorRequests() uint64 { + if m != nil { + return m.TotalErrorRequests + } + return 0 +} + +func (m *UpstreamLocalityStats) GetTotalIssuedRequests() uint64 { + if m != nil { + return m.TotalIssuedRequests + } + return 0 +} + +func (m *UpstreamLocalityStats) GetLoadMetricStats() []*EndpointLoadMetricStats { + if m != nil { + return m.LoadMetricStats + } + return nil +} + +func (m *UpstreamLocalityStats) GetUpstreamEndpointStats() []*UpstreamEndpointStats { + if m != nil { + return m.UpstreamEndpointStats + } + return nil +} + +func (m *UpstreamLocalityStats) GetPriority() uint32 { + if m != nil { + return m.Priority + } + return 0 +} + +type UpstreamEndpointStats struct { + Address *v3.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Metadata *_struct.Struct `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` + TotalSuccessfulRequests uint64 `protobuf:"varint,2,opt,name=total_successful_requests,json=totalSuccessfulRequests,proto3" json:"total_successful_requests,omitempty"` + TotalRequestsInProgress uint64 `protobuf:"varint,3,opt,name=total_requests_in_progress,json=totalRequestsInProgress,proto3" json:"total_requests_in_progress,omitempty"` + TotalErrorRequests uint64 `protobuf:"varint,4,opt,name=total_error_requests,json=totalErrorRequests,proto3" json:"total_error_requests,omitempty"` + TotalIssuedRequests uint64 `protobuf:"varint,7,opt,name=total_issued_requests,json=totalIssuedRequests,proto3" json:"total_issued_requests,omitempty"` + LoadMetricStats []*EndpointLoadMetricStats `protobuf:"bytes,5,rep,name=load_metric_stats,json=loadMetricStats,proto3" json:"load_metric_stats,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UpstreamEndpointStats) Reset() { *m = UpstreamEndpointStats{} } +func (m *UpstreamEndpointStats) String() string { return proto.CompactTextString(m) } +func (*UpstreamEndpointStats) ProtoMessage() {} +func (*UpstreamEndpointStats) Descriptor() ([]byte, []int) { + return fileDescriptor_e66282a187404711, []int{1} +} + +func (m *UpstreamEndpointStats) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpstreamEndpointStats.Unmarshal(m, b) +} +func (m *UpstreamEndpointStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpstreamEndpointStats.Marshal(b, m, deterministic) +} +func (m *UpstreamEndpointStats) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpstreamEndpointStats.Merge(m, src) +} +func (m *UpstreamEndpointStats) XXX_Size() int { + return xxx_messageInfo_UpstreamEndpointStats.Size(m) +} +func (m *UpstreamEndpointStats) XXX_DiscardUnknown() { + xxx_messageInfo_UpstreamEndpointStats.DiscardUnknown(m) +} + +var xxx_messageInfo_UpstreamEndpointStats proto.InternalMessageInfo + +func (m *UpstreamEndpointStats) GetAddress() *v3.Address { + if m != nil { + return m.Address + } + return nil +} + +func (m *UpstreamEndpointStats) GetMetadata() *_struct.Struct { + if m != nil { + return m.Metadata + } + return nil +} + +func (m *UpstreamEndpointStats) GetTotalSuccessfulRequests() uint64 { + if m != nil { + return m.TotalSuccessfulRequests + } + return 0 +} + +func (m *UpstreamEndpointStats) GetTotalRequestsInProgress() uint64 { + if m != nil { + return m.TotalRequestsInProgress + } + return 0 +} + +func (m *UpstreamEndpointStats) GetTotalErrorRequests() uint64 { + if m != nil { + return m.TotalErrorRequests + } + return 0 +} + +func (m *UpstreamEndpointStats) GetTotalIssuedRequests() uint64 { + if m != nil { + return m.TotalIssuedRequests + } + return 0 +} + +func (m *UpstreamEndpointStats) GetLoadMetricStats() []*EndpointLoadMetricStats { + if m != nil { + return m.LoadMetricStats + } + return nil +} + +type EndpointLoadMetricStats struct { + MetricName string `protobuf:"bytes,1,opt,name=metric_name,json=metricName,proto3" json:"metric_name,omitempty"` + NumRequestsFinishedWithMetric uint64 `protobuf:"varint,2,opt,name=num_requests_finished_with_metric,json=numRequestsFinishedWithMetric,proto3" json:"num_requests_finished_with_metric,omitempty"` + TotalMetricValue float64 `protobuf:"fixed64,3,opt,name=total_metric_value,json=totalMetricValue,proto3" json:"total_metric_value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *EndpointLoadMetricStats) Reset() { *m = EndpointLoadMetricStats{} } +func (m *EndpointLoadMetricStats) String() string { return proto.CompactTextString(m) } +func (*EndpointLoadMetricStats) ProtoMessage() {} +func (*EndpointLoadMetricStats) Descriptor() ([]byte, []int) { + return fileDescriptor_e66282a187404711, []int{2} +} + +func (m *EndpointLoadMetricStats) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_EndpointLoadMetricStats.Unmarshal(m, b) +} +func (m *EndpointLoadMetricStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_EndpointLoadMetricStats.Marshal(b, m, deterministic) +} +func (m *EndpointLoadMetricStats) XXX_Merge(src proto.Message) { + xxx_messageInfo_EndpointLoadMetricStats.Merge(m, src) +} +func (m *EndpointLoadMetricStats) XXX_Size() int { + return xxx_messageInfo_EndpointLoadMetricStats.Size(m) +} +func (m *EndpointLoadMetricStats) XXX_DiscardUnknown() { + xxx_messageInfo_EndpointLoadMetricStats.DiscardUnknown(m) +} + +var xxx_messageInfo_EndpointLoadMetricStats proto.InternalMessageInfo + +func (m *EndpointLoadMetricStats) GetMetricName() string { + if m != nil { + return m.MetricName + } + return "" +} + +func (m *EndpointLoadMetricStats) GetNumRequestsFinishedWithMetric() uint64 { + if m != nil { + return m.NumRequestsFinishedWithMetric + } + return 0 +} + +func (m *EndpointLoadMetricStats) GetTotalMetricValue() float64 { + if m != nil { + return m.TotalMetricValue + } + return 0 +} + +type ClusterStats struct { + ClusterName string `protobuf:"bytes,1,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"` + ClusterServiceName string `protobuf:"bytes,6,opt,name=cluster_service_name,json=clusterServiceName,proto3" json:"cluster_service_name,omitempty"` + UpstreamLocalityStats []*UpstreamLocalityStats `protobuf:"bytes,2,rep,name=upstream_locality_stats,json=upstreamLocalityStats,proto3" json:"upstream_locality_stats,omitempty"` + TotalDroppedRequests uint64 `protobuf:"varint,3,opt,name=total_dropped_requests,json=totalDroppedRequests,proto3" json:"total_dropped_requests,omitempty"` + DroppedRequests []*ClusterStats_DroppedRequests `protobuf:"bytes,5,rep,name=dropped_requests,json=droppedRequests,proto3" json:"dropped_requests,omitempty"` + LoadReportInterval *duration.Duration `protobuf:"bytes,4,opt,name=load_report_interval,json=loadReportInterval,proto3" json:"load_report_interval,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ClusterStats) Reset() { *m = ClusterStats{} } +func (m *ClusterStats) String() string { return proto.CompactTextString(m) } +func (*ClusterStats) ProtoMessage() {} +func (*ClusterStats) Descriptor() ([]byte, []int) { + return fileDescriptor_e66282a187404711, []int{3} +} + +func (m *ClusterStats) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ClusterStats.Unmarshal(m, b) +} +func (m *ClusterStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ClusterStats.Marshal(b, m, deterministic) +} +func (m *ClusterStats) XXX_Merge(src proto.Message) { + xxx_messageInfo_ClusterStats.Merge(m, src) +} +func (m *ClusterStats) XXX_Size() int { + return xxx_messageInfo_ClusterStats.Size(m) +} +func (m *ClusterStats) XXX_DiscardUnknown() { + xxx_messageInfo_ClusterStats.DiscardUnknown(m) +} + +var xxx_messageInfo_ClusterStats proto.InternalMessageInfo + +func (m *ClusterStats) GetClusterName() string { + if m != nil { + return m.ClusterName + } + return "" +} + +func (m *ClusterStats) GetClusterServiceName() string { + if m != nil { + return m.ClusterServiceName + } + return "" +} + +func (m *ClusterStats) GetUpstreamLocalityStats() []*UpstreamLocalityStats { + if m != nil { + return m.UpstreamLocalityStats + } + return nil +} + +func (m *ClusterStats) GetTotalDroppedRequests() uint64 { + if m != nil { + return m.TotalDroppedRequests + } + return 0 +} + +func (m *ClusterStats) GetDroppedRequests() []*ClusterStats_DroppedRequests { + if m != nil { + return m.DroppedRequests + } + return nil +} + +func (m *ClusterStats) GetLoadReportInterval() *duration.Duration { + if m != nil { + return m.LoadReportInterval + } + return nil +} + +type ClusterStats_DroppedRequests struct { + Category string `protobuf:"bytes,1,opt,name=category,proto3" json:"category,omitempty"` + DroppedCount uint64 `protobuf:"varint,2,opt,name=dropped_count,json=droppedCount,proto3" json:"dropped_count,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ClusterStats_DroppedRequests) Reset() { *m = ClusterStats_DroppedRequests{} } +func (m *ClusterStats_DroppedRequests) String() string { return proto.CompactTextString(m) } +func (*ClusterStats_DroppedRequests) ProtoMessage() {} +func (*ClusterStats_DroppedRequests) Descriptor() ([]byte, []int) { + return fileDescriptor_e66282a187404711, []int{3, 0} +} + +func (m *ClusterStats_DroppedRequests) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ClusterStats_DroppedRequests.Unmarshal(m, b) +} +func (m *ClusterStats_DroppedRequests) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ClusterStats_DroppedRequests.Marshal(b, m, deterministic) +} +func (m *ClusterStats_DroppedRequests) XXX_Merge(src proto.Message) { + xxx_messageInfo_ClusterStats_DroppedRequests.Merge(m, src) +} +func (m *ClusterStats_DroppedRequests) XXX_Size() int { + return xxx_messageInfo_ClusterStats_DroppedRequests.Size(m) +} +func (m *ClusterStats_DroppedRequests) XXX_DiscardUnknown() { + xxx_messageInfo_ClusterStats_DroppedRequests.DiscardUnknown(m) +} + +var xxx_messageInfo_ClusterStats_DroppedRequests proto.InternalMessageInfo + +func (m *ClusterStats_DroppedRequests) GetCategory() string { + if m != nil { + return m.Category + } + return "" +} + +func (m *ClusterStats_DroppedRequests) GetDroppedCount() uint64 { + if m != nil { + return m.DroppedCount + } + return 0 +} + +func init() { + proto.RegisterType((*UpstreamLocalityStats)(nil), "envoy.config.endpoint.v3.UpstreamLocalityStats") + proto.RegisterType((*UpstreamEndpointStats)(nil), "envoy.config.endpoint.v3.UpstreamEndpointStats") + proto.RegisterType((*EndpointLoadMetricStats)(nil), "envoy.config.endpoint.v3.EndpointLoadMetricStats") + proto.RegisterType((*ClusterStats)(nil), "envoy.config.endpoint.v3.ClusterStats") + proto.RegisterType((*ClusterStats_DroppedRequests)(nil), "envoy.config.endpoint.v3.ClusterStats.DroppedRequests") +} + +func init() { + proto.RegisterFile("envoy/config/endpoint/v3/load_report.proto", fileDescriptor_e66282a187404711) +} + +var fileDescriptor_e66282a187404711 = []byte{ + // 869 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x55, 0x4d, 0x6f, 0xe3, 0x44, + 0x18, 0x96, 0xd3, 0x34, 0x09, 0x93, 0xae, 0x52, 0x4c, 0x4b, 0xb2, 0x11, 0xed, 0x66, 0xb3, 0x08, + 0x85, 0x85, 0xb5, 0x17, 0xa7, 0x02, 0x11, 0x4e, 0xa4, 0xbb, 0x88, 0x8a, 0x82, 0x2a, 0x47, 0xc0, + 0x09, 0x59, 0x53, 0x7b, 0x92, 0x8e, 0xe4, 0xcc, 0x78, 0xe7, 0xc3, 0x90, 0x1b, 0x47, 0xb8, 0x72, + 0xe0, 0xc0, 0x4f, 0xe1, 0x8e, 0x84, 0xb8, 0xf1, 0x2f, 0xf8, 0x07, 0x48, 0x7b, 0x42, 0x9e, 0x0f, + 0xe7, 0xa3, 0x09, 0xec, 0x0d, 0x69, 0x6f, 0xf1, 0x3c, 0xcf, 0x33, 0xef, 0xbc, 0xcf, 0xfb, 0xcc, + 0x04, 0x3c, 0x44, 0x24, 0xa7, 0x0b, 0x3f, 0xa6, 0x64, 0x8a, 0x67, 0x3e, 0x22, 0x49, 0x46, 0x31, + 0x11, 0x7e, 0x3e, 0xf4, 0x53, 0x0a, 0x93, 0x88, 0xa1, 0x8c, 0x32, 0xe1, 0x65, 0x8c, 0x0a, 0xea, + 0x76, 0x14, 0xd7, 0xd3, 0x5c, 0xcf, 0x72, 0xbd, 0x7c, 0xd8, 0xed, 0xaf, 0xed, 0x12, 0x53, 0x86, + 0x8a, 0x1d, 0x60, 0x92, 0x30, 0xc4, 0xb9, 0x56, 0x77, 0xef, 0x6d, 0xe5, 0x5c, 0x43, 0x8e, 0x0c, + 0xe1, 0x74, 0x46, 0xe9, 0x2c, 0x45, 0xbe, 0xfa, 0xba, 0x96, 0x53, 0x3f, 0x91, 0x0c, 0x0a, 0x4c, + 0x89, 0xc1, 0xdf, 0xd8, 0xc4, 0xb9, 0x60, 0x32, 0x36, 0x87, 0xeb, 0x9e, 0xc8, 0x24, 0x83, 0x3e, + 0x24, 0x84, 0x0a, 0x25, 0xe2, 0x3e, 0x17, 0x50, 0x48, 0x5b, 0xfd, 0xfe, 0x2d, 0x38, 0x47, 0x8c, + 0x63, 0x4a, 0x30, 0x99, 0x19, 0x4a, 0x3b, 0x87, 0x29, 0x4e, 0xa0, 0x40, 0xbe, 0xfd, 0xa1, 0x81, + 0xfe, 0x1f, 0x55, 0x70, 0xfc, 0x65, 0xc6, 0x05, 0x43, 0x70, 0x7e, 0x49, 0x63, 0x98, 0x62, 0xb1, + 0x98, 0x08, 0x28, 0xb8, 0x3b, 0x02, 0x8d, 0xd4, 0x2c, 0x74, 0x9c, 0x9e, 0x33, 0x68, 0x06, 0xa7, + 0xde, 0x9a, 0x49, 0x45, 0x9b, 0x5e, 0x3e, 0xf4, 0xac, 0x2c, 0x2c, 0xf9, 0xee, 0x08, 0xdc, 0x15, + 0x54, 0xc0, 0x34, 0xe2, 0x32, 0x8e, 0x11, 0xe7, 0x53, 0x99, 0x46, 0x0c, 0x3d, 0x93, 0x88, 0x0b, + 0xde, 0xa9, 0xf4, 0x9c, 0x41, 0x35, 0x6c, 0x2b, 0xc2, 0xa4, 0xc4, 0x43, 0x03, 0xbb, 0x1f, 0x81, + 0xae, 0xd6, 0x5a, 0x41, 0x84, 0x49, 0x94, 0x31, 0x3a, 0x2b, 0xfc, 0xee, 0xec, 0xad, 0x88, 0xad, + 0xe4, 0x82, 0x5c, 0x19, 0xd8, 0x7d, 0x0c, 0x8e, 0xb4, 0x18, 0x31, 0x46, 0xd9, 0xb2, 0x66, 0x55, + 0xc9, 0x5c, 0x85, 0x3d, 0x2d, 0xa0, 0xb2, 0x5c, 0x00, 0x8e, 0xb5, 0x02, 0x73, 0x2e, 0x51, 0xb2, + 0x94, 0x34, 0x94, 0xe4, 0x35, 0x05, 0x5e, 0x28, 0xac, 0xd4, 0x7c, 0x03, 0x5e, 0x55, 0x09, 0x9a, + 0x23, 0xc1, 0x70, 0x1c, 0x15, 0xc3, 0xe0, 0x9d, 0xfd, 0xde, 0xde, 0xa0, 0x19, 0xbc, 0xe7, 0xed, + 0x0a, 0x92, 0xf7, 0xd4, 0xfc, 0xbe, 0xa4, 0x30, 0xf9, 0x5c, 0x29, 0x95, 0xd1, 0x61, 0x2b, 0x5d, + 0x5f, 0x70, 0x67, 0xa0, 0x2d, 0xcd, 0x48, 0x22, 0xbb, 0x81, 0x29, 0x52, 0x57, 0x45, 0xfc, 0xdd, + 0x45, 0xec, 0x2c, 0x6d, 0x31, 0x5d, 0xe2, 0x58, 0x6e, 0x5b, 0x76, 0xbb, 0xa0, 0x91, 0x31, 0x4c, + 0x59, 0x31, 0xe2, 0x5a, 0xcf, 0x19, 0xdc, 0x09, 0xcb, 0xef, 0x51, 0xf0, 0xcb, 0x6f, 0x3f, 0x9c, + 0x3e, 0x02, 0xef, 0xe8, 0x4a, 0x30, 0xc3, 0x5e, 0x1e, 0x2c, 0x2b, 0x6d, 0x8d, 0x4c, 0xff, 0xef, + 0xbd, 0x65, 0x98, 0xd6, 0x2b, 0x7d, 0x00, 0xea, 0xe6, 0xc6, 0x98, 0x2c, 0x9d, 0x6c, 0xcf, 0xd2, + 0xc7, 0x9a, 0x14, 0x5a, 0xb6, 0x3b, 0x04, 0x8d, 0x39, 0x12, 0x30, 0x81, 0x02, 0xaa, 0x23, 0x36, + 0x83, 0xb6, 0xa7, 0xef, 0x8a, 0x67, 0xef, 0x8a, 0x37, 0x51, 0x77, 0x25, 0x2c, 0x89, 0x2f, 0x45, + 0xfc, 0xea, 0xff, 0x57, 0xfc, 0x5e, 0x70, 0xf2, 0x6b, 0xf3, 0xed, 0xff, 0xe5, 0x80, 0xf6, 0x8e, + 0x02, 0xee, 0x3d, 0xd0, 0x34, 0x27, 0x25, 0x70, 0x8e, 0xd4, 0xfc, 0x5f, 0x09, 0x81, 0x5e, 0xfa, + 0x02, 0xce, 0x91, 0xfb, 0x29, 0xb8, 0x4f, 0xe4, 0x7c, 0x69, 0xf8, 0x14, 0x13, 0xcc, 0x6f, 0x50, + 0x12, 0x7d, 0x8b, 0xc5, 0x8d, 0xe9, 0xd2, 0x8c, 0xed, 0x84, 0xc8, 0xb9, 0xf5, 0xe1, 0x13, 0x43, + 0xfb, 0x1a, 0x8b, 0x1b, 0x5d, 0xcf, 0x7d, 0x17, 0x68, 0x8f, 0xad, 0x35, 0x39, 0x4c, 0x25, 0x52, + 0x43, 0x73, 0xc2, 0x43, 0x85, 0x68, 0xe2, 0x57, 0xc5, 0xfa, 0xe8, 0xac, 0x68, 0xd4, 0x07, 0x8f, + 0xb6, 0x37, 0xba, 0xa3, 0x9d, 0xfe, 0x8f, 0xfb, 0xe0, 0xe0, 0x3c, 0x95, 0x5c, 0x20, 0xa6, 0xfb, + 0x7b, 0x08, 0x0e, 0x62, 0xfd, 0xbd, 0xd2, 0xe0, 0xb8, 0xfe, 0x7c, 0x5c, 0x65, 0x95, 0x9e, 0x13, + 0x36, 0x0d, 0xa8, 0x5a, 0x7d, 0x0c, 0x8e, 0x2c, 0x97, 0x23, 0x96, 0xe3, 0x18, 0x69, 0x4d, 0x4d, + 0x99, 0xe2, 0x1a, 0x6c, 0xa2, 0x21, 0xa5, 0x78, 0xb6, 0xf2, 0x18, 0xd8, 0xf7, 0xd5, 0x8c, 0xbc, + 0xf2, 0xa2, 0x8f, 0xc1, 0xda, 0x2d, 0x1d, 0x37, 0x9e, 0x8f, 0xf7, 0x7f, 0x72, 0x2a, 0x0d, 0x67, + 0xf9, 0x2c, 0xac, 0xbf, 0xfc, 0x67, 0xe0, 0x75, 0xed, 0x62, 0xc2, 0x68, 0x96, 0xad, 0x86, 0x52, + 0xc7, 0x5f, 0x67, 0xfc, 0x89, 0x06, 0xcb, 0x54, 0x42, 0x70, 0x78, 0x8b, 0xaf, 0x43, 0xf9, 0xfe, + 0xee, 0x13, 0xae, 0x1a, 0xe9, 0x6d, 0xec, 0x18, 0xb6, 0x92, 0x8d, 0x12, 0x9f, 0x81, 0xa3, 0x95, + 0x7f, 0xee, 0x08, 0x13, 0x81, 0x58, 0x0e, 0x53, 0x75, 0xbd, 0x9a, 0xc1, 0xdd, 0x5b, 0x0f, 0xc3, + 0x13, 0xf3, 0x27, 0x1b, 0xba, 0x85, 0x2c, 0x54, 0xaa, 0x0b, 0x23, 0xea, 0xfe, 0xec, 0x80, 0xd6, + 0x66, 0x0f, 0x0f, 0x40, 0x23, 0x86, 0x02, 0xcd, 0x28, 0x5b, 0x6c, 0x8e, 0xb1, 0x04, 0xdc, 0x07, + 0xe0, 0x8e, 0x6d, 0x34, 0xa6, 0x92, 0x08, 0x13, 0xcd, 0x03, 0xb3, 0x78, 0x5e, 0xac, 0x8d, 0x3e, + 0x2c, 0xb2, 0x75, 0x06, 0x82, 0xed, 0xd9, 0xfa, 0xb7, 0xb6, 0x47, 0x6f, 0x17, 0xd2, 0x37, 0x41, + 0xff, 0xbf, 0xa5, 0xe3, 0xf3, 0x5f, 0xbf, 0xff, 0xfd, 0xcf, 0x5a, 0xe5, 0xb0, 0x02, 0xde, 0xc2, + 0x54, 0xbb, 0x9c, 0x31, 0xfa, 0xdd, 0x62, 0xa7, 0xe1, 0xe3, 0xd6, 0x65, 0xe9, 0xc4, 0x55, 0x61, + 0xd3, 0x95, 0x73, 0x5d, 0x53, 0x7e, 0x0d, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0xcd, 0x00, 0x7c, + 0x1e, 0x2f, 0x09, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/load_report.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/load_report.pb.validate.go new file mode 100644 index 000000000..432361630 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3/load_report.pb.validate.go @@ -0,0 +1,537 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/endpoint/v3/load_report.proto + +package envoy_config_endpoint_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _load_report_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on UpstreamLocalityStats with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *UpstreamLocalityStats) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetLocality()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpstreamLocalityStatsValidationError{ + field: "Locality", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for TotalSuccessfulRequests + + // no validation rules for TotalRequestsInProgress + + // no validation rules for TotalErrorRequests + + // no validation rules for TotalIssuedRequests + + for idx, item := range m.GetLoadMetricStats() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpstreamLocalityStatsValidationError{ + field: fmt.Sprintf("LoadMetricStats[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for idx, item := range m.GetUpstreamEndpointStats() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpstreamLocalityStatsValidationError{ + field: fmt.Sprintf("UpstreamEndpointStats[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Priority + + return nil +} + +// UpstreamLocalityStatsValidationError is the validation error returned by +// UpstreamLocalityStats.Validate if the designated constraints aren't met. +type UpstreamLocalityStatsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpstreamLocalityStatsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpstreamLocalityStatsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpstreamLocalityStatsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpstreamLocalityStatsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpstreamLocalityStatsValidationError) ErrorName() string { + return "UpstreamLocalityStatsValidationError" +} + +// Error satisfies the builtin error interface +func (e UpstreamLocalityStatsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpstreamLocalityStats.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpstreamLocalityStatsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpstreamLocalityStatsValidationError{} + +// Validate checks the field values on UpstreamEndpointStats with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *UpstreamEndpointStats) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetAddress()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpstreamEndpointStatsValidationError{ + field: "Address", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpstreamEndpointStatsValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for TotalSuccessfulRequests + + // no validation rules for TotalRequestsInProgress + + // no validation rules for TotalErrorRequests + + // no validation rules for TotalIssuedRequests + + for idx, item := range m.GetLoadMetricStats() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpstreamEndpointStatsValidationError{ + field: fmt.Sprintf("LoadMetricStats[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// UpstreamEndpointStatsValidationError is the validation error returned by +// UpstreamEndpointStats.Validate if the designated constraints aren't met. +type UpstreamEndpointStatsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpstreamEndpointStatsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpstreamEndpointStatsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpstreamEndpointStatsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpstreamEndpointStatsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpstreamEndpointStatsValidationError) ErrorName() string { + return "UpstreamEndpointStatsValidationError" +} + +// Error satisfies the builtin error interface +func (e UpstreamEndpointStatsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpstreamEndpointStats.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpstreamEndpointStatsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpstreamEndpointStatsValidationError{} + +// Validate checks the field values on EndpointLoadMetricStats with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *EndpointLoadMetricStats) Validate() error { + if m == nil { + return nil + } + + // no validation rules for MetricName + + // no validation rules for NumRequestsFinishedWithMetric + + // no validation rules for TotalMetricValue + + return nil +} + +// EndpointLoadMetricStatsValidationError is the validation error returned by +// EndpointLoadMetricStats.Validate if the designated constraints aren't met. +type EndpointLoadMetricStatsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e EndpointLoadMetricStatsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e EndpointLoadMetricStatsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e EndpointLoadMetricStatsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e EndpointLoadMetricStatsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e EndpointLoadMetricStatsValidationError) ErrorName() string { + return "EndpointLoadMetricStatsValidationError" +} + +// Error satisfies the builtin error interface +func (e EndpointLoadMetricStatsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sEndpointLoadMetricStats.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = EndpointLoadMetricStatsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = EndpointLoadMetricStatsValidationError{} + +// Validate checks the field values on ClusterStats with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *ClusterStats) Validate() error { + if m == nil { + return nil + } + + if len(m.GetClusterName()) < 1 { + return ClusterStatsValidationError{ + field: "ClusterName", + reason: "value length must be at least 1 bytes", + } + } + + // no validation rules for ClusterServiceName + + if len(m.GetUpstreamLocalityStats()) < 1 { + return ClusterStatsValidationError{ + field: "UpstreamLocalityStats", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetUpstreamLocalityStats() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterStatsValidationError{ + field: fmt.Sprintf("UpstreamLocalityStats[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for TotalDroppedRequests + + for idx, item := range m.GetDroppedRequests() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterStatsValidationError{ + field: fmt.Sprintf("DroppedRequests[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetLoadReportInterval()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ClusterStatsValidationError{ + field: "LoadReportInterval", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// ClusterStatsValidationError is the validation error returned by +// ClusterStats.Validate if the designated constraints aren't met. +type ClusterStatsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ClusterStatsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ClusterStatsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ClusterStatsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ClusterStatsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ClusterStatsValidationError) ErrorName() string { return "ClusterStatsValidationError" } + +// Error satisfies the builtin error interface +func (e ClusterStatsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sClusterStats.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ClusterStatsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ClusterStatsValidationError{} + +// Validate checks the field values on ClusterStats_DroppedRequests with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *ClusterStats_DroppedRequests) Validate() error { + if m == nil { + return nil + } + + if len(m.GetCategory()) < 1 { + return ClusterStats_DroppedRequestsValidationError{ + field: "Category", + reason: "value length must be at least 1 bytes", + } + } + + // no validation rules for DroppedCount + + return nil +} + +// ClusterStats_DroppedRequestsValidationError is the validation error returned +// by ClusterStats_DroppedRequests.Validate if the designated constraints +// aren't met. +type ClusterStats_DroppedRequestsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ClusterStats_DroppedRequestsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ClusterStats_DroppedRequestsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ClusterStats_DroppedRequestsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ClusterStats_DroppedRequestsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ClusterStats_DroppedRequestsValidationError) ErrorName() string { + return "ClusterStats_DroppedRequestsValidationError" +} + +// Error satisfies the builtin error interface +func (e ClusterStats_DroppedRequestsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sClusterStats_DroppedRequests.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ClusterStats_DroppedRequestsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ClusterStats_DroppedRequestsValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/filter/listener/tls_inspector/v2/tls_inspector.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/filter/listener/tls_inspector/v2/tls_inspector.pb.go new file mode 100644 index 000000000..79d1732f6 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/filter/listener/tls_inspector/v2/tls_inspector.pb.go @@ -0,0 +1,79 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/filter/listener/tls_inspector/v2/tls_inspector.proto + +package envoy_config_filter_listener_tls_inspector_v2 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type TlsInspector struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TlsInspector) Reset() { *m = TlsInspector{} } +func (m *TlsInspector) String() string { return proto.CompactTextString(m) } +func (*TlsInspector) ProtoMessage() {} +func (*TlsInspector) Descriptor() ([]byte, []int) { + return fileDescriptor_74d5b8d995215fa0, []int{0} +} + +func (m *TlsInspector) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TlsInspector.Unmarshal(m, b) +} +func (m *TlsInspector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TlsInspector.Marshal(b, m, deterministic) +} +func (m *TlsInspector) XXX_Merge(src proto.Message) { + xxx_messageInfo_TlsInspector.Merge(m, src) +} +func (m *TlsInspector) XXX_Size() int { + return xxx_messageInfo_TlsInspector.Size(m) +} +func (m *TlsInspector) XXX_DiscardUnknown() { + xxx_messageInfo_TlsInspector.DiscardUnknown(m) +} + +var xxx_messageInfo_TlsInspector proto.InternalMessageInfo + +func init() { + proto.RegisterType((*TlsInspector)(nil), "envoy.config.filter.listener.tls_inspector.v2.TlsInspector") +} + +func init() { + proto.RegisterFile("envoy/config/filter/listener/tls_inspector/v2/tls_inspector.proto", fileDescriptor_74d5b8d995215fa0) +} + +var fileDescriptor_74d5b8d995215fa0 = []byte{ + // 215 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x4c, 0xcd, 0x2b, 0xcb, + 0xaf, 0xd4, 0x4f, 0xce, 0xcf, 0x4b, 0xcb, 0x4c, 0xd7, 0x4f, 0xcb, 0xcc, 0x29, 0x49, 0x2d, 0xd2, + 0xcf, 0xc9, 0x2c, 0x2e, 0x49, 0xcd, 0x4b, 0x2d, 0xd2, 0x2f, 0xc9, 0x29, 0x8e, 0xcf, 0xcc, 0x2b, + 0x2e, 0x48, 0x4d, 0x2e, 0xc9, 0x2f, 0xd2, 0x2f, 0x33, 0x42, 0x15, 0xd0, 0x2b, 0x28, 0xca, 0x2f, + 0xc9, 0x17, 0xd2, 0x05, 0x1b, 0xa1, 0x07, 0x31, 0x42, 0x0f, 0x62, 0x84, 0x1e, 0xcc, 0x08, 0x3d, + 0x54, 0x1d, 0x65, 0x46, 0x52, 0x72, 0xa5, 0x29, 0x05, 0x89, 0xfa, 0x89, 0x79, 0x79, 0xf9, 0x25, + 0x89, 0x25, 0x99, 0xf9, 0x79, 0xc5, 0xfa, 0xb9, 0x99, 0xe9, 0x45, 0x89, 0x25, 0xa9, 0x10, 0xe3, + 0xa4, 0x64, 0x31, 0xe4, 0x8b, 0x4b, 0x12, 0x4b, 0x4a, 0x8b, 0x21, 0xd2, 0x4a, 0x7c, 0x5c, 0x3c, + 0x21, 0x39, 0xc5, 0x9e, 0x30, 0x13, 0x9d, 0xa6, 0x30, 0x7e, 0x9a, 0xf1, 0xaf, 0x9f, 0xd5, 0x44, + 0xc8, 0x08, 0xe2, 0x8c, 0xd4, 0x8a, 0x92, 0xd4, 0xbc, 0x62, 0x90, 0x3e, 0xa8, 0x53, 0x8a, 0x71, + 0xba, 0xc5, 0x78, 0x57, 0xc3, 0x89, 0x8b, 0x6c, 0x4c, 0x02, 0x8c, 0x5c, 0xd6, 0x99, 0xf9, 0x7a, + 0x60, 0xed, 0x05, 0x45, 0xf9, 0x15, 0x95, 0x7a, 0x24, 0x79, 0xc8, 0x49, 0x10, 0xd9, 0x3d, 0x01, + 0x20, 0x47, 0x06, 0x30, 0x26, 0xb1, 0x81, 0x5d, 0x6b, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0xef, + 0x2a, 0x5e, 0x21, 0x60, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/filter/listener/tls_inspector/v2/tls_inspector.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/filter/listener/tls_inspector/v2/tls_inspector.pb.validate.go new file mode 100644 index 000000000..b9efd778a --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/filter/listener/tls_inspector/v2/tls_inspector.pb.validate.go @@ -0,0 +1,102 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/filter/listener/tls_inspector/v2/tls_inspector.proto + +package envoy_config_filter_listener_tls_inspector_v2 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _tls_inspector_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on TlsInspector with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *TlsInspector) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// TlsInspectorValidationError is the validation error returned by +// TlsInspector.Validate if the designated constraints aren't met. +type TlsInspectorValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TlsInspectorValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TlsInspectorValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TlsInspectorValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TlsInspectorValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TlsInspectorValidationError) ErrorName() string { return "TlsInspectorValidationError" } + +// Error satisfies the builtin error interface +func (e TlsInspectorValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTlsInspector.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TlsInspectorValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TlsInspectorValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/filter/network/sni_cluster/v2/sni_cluster.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/filter/network/sni_cluster/v2/sni_cluster.pb.go new file mode 100644 index 000000000..e71dc774b --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/filter/network/sni_cluster/v2/sni_cluster.pb.go @@ -0,0 +1,79 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/filter/network/sni_cluster/v2/sni_cluster.proto + +package envoy_config_filter_network_sni_cluster_v2 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type SniCluster struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SniCluster) Reset() { *m = SniCluster{} } +func (m *SniCluster) String() string { return proto.CompactTextString(m) } +func (*SniCluster) ProtoMessage() {} +func (*SniCluster) Descriptor() ([]byte, []int) { + return fileDescriptor_c62c0a0da3b665be, []int{0} +} + +func (m *SniCluster) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SniCluster.Unmarshal(m, b) +} +func (m *SniCluster) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SniCluster.Marshal(b, m, deterministic) +} +func (m *SniCluster) XXX_Merge(src proto.Message) { + xxx_messageInfo_SniCluster.Merge(m, src) +} +func (m *SniCluster) XXX_Size() int { + return xxx_messageInfo_SniCluster.Size(m) +} +func (m *SniCluster) XXX_DiscardUnknown() { + xxx_messageInfo_SniCluster.DiscardUnknown(m) +} + +var xxx_messageInfo_SniCluster proto.InternalMessageInfo + +func init() { + proto.RegisterType((*SniCluster)(nil), "envoy.config.filter.network.sni_cluster.v2.SniCluster") +} + +func init() { + proto.RegisterFile("envoy/config/filter/network/sni_cluster/v2/sni_cluster.proto", fileDescriptor_c62c0a0da3b665be) +} + +var fileDescriptor_c62c0a0da3b665be = []byte{ + // 209 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x49, 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, 0xce, 0xcb, 0x8c, 0x4f, 0xce, 0x29, 0x2d, + 0x06, 0x89, 0x95, 0x19, 0x21, 0x73, 0xf5, 0x0a, 0x8a, 0xf2, 0x4b, 0xf2, 0x85, 0xb4, 0xc0, 0xba, + 0xf5, 0x20, 0xba, 0xf5, 0x20, 0xba, 0xf5, 0xa0, 0xba, 0xf5, 0x90, 0x95, 0x97, 0x19, 0x49, 0xc9, + 0x95, 0xa6, 0x14, 0x24, 0xea, 0x27, 0xe6, 0xe5, 0xe5, 0x97, 0x24, 0x96, 0x64, 0xe6, 0xe7, 0x15, + 0xeb, 0xe7, 0x66, 0xa6, 0x17, 0x25, 0x96, 0xa4, 0x42, 0xcc, 0x92, 0x92, 0xc5, 0x90, 0x2f, 0x2e, + 0x49, 0x2c, 0x29, 0x2d, 0x86, 0x48, 0x2b, 0xf1, 0x70, 0x71, 0x05, 0xe7, 0x65, 0x3a, 0x43, 0xcc, + 0x73, 0xea, 0x61, 0xfc, 0x34, 0xe3, 0x5f, 0x3f, 0xab, 0xa1, 0x90, 0x3e, 0xc4, 0x05, 0xa9, 0x15, + 0x25, 0xa9, 0x79, 0xc5, 0x20, 0x5d, 0x50, 0x57, 0x14, 0x63, 0x77, 0x86, 0xf1, 0xae, 0x86, 0x13, + 0x17, 0xd9, 0x98, 0x04, 0x18, 0xb9, 0x2c, 0x32, 0xf3, 0xf5, 0xc0, 0x7a, 0x0b, 0x8a, 0xf2, 0x2b, + 0x2a, 0xf5, 0x88, 0xf7, 0x88, 0x13, 0x3f, 0xc2, 0x1d, 0x01, 0x20, 0xa7, 0x05, 0x30, 0x26, 0xb1, + 0x81, 0xdd, 0x68, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0xb8, 0x3c, 0x79, 0xd9, 0x4e, 0x01, 0x00, + 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/filter/network/sni_cluster/v2/sni_cluster.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/filter/network/sni_cluster/v2/sni_cluster.pb.validate.go new file mode 100644 index 000000000..1c71cbac9 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/filter/network/sni_cluster/v2/sni_cluster.pb.validate.go @@ -0,0 +1,101 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/filter/network/sni_cluster/v2/sni_cluster.proto + +package envoy_config_filter_network_sni_cluster_v2 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _sni_cluster_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on SniCluster with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *SniCluster) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// SniClusterValidationError is the validation error returned by +// SniCluster.Validate if the designated constraints aren't met. +type SniClusterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e SniClusterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e SniClusterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e SniClusterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e SniClusterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e SniClusterValidationError) ErrorName() string { return "SniClusterValidationError" } + +// Error satisfies the builtin error interface +func (e SniClusterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSniCluster.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = SniClusterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = SniClusterValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/api_listener.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/api_listener.pb.go new file mode 100644 index 000000000..3300c3566 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/api_listener.pb.go @@ -0,0 +1,89 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/listener/v3/api_listener.proto + +package envoy_config_listener_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + proto "github.com/golang/protobuf/proto" + any "github.com/golang/protobuf/ptypes/any" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type ApiListener struct { + ApiListener *any.Any `protobuf:"bytes,1,opt,name=api_listener,json=apiListener,proto3" json:"api_listener,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApiListener) Reset() { *m = ApiListener{} } +func (m *ApiListener) String() string { return proto.CompactTextString(m) } +func (*ApiListener) ProtoMessage() {} +func (*ApiListener) Descriptor() ([]byte, []int) { + return fileDescriptor_9fd48717df5cccf7, []int{0} +} + +func (m *ApiListener) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ApiListener.Unmarshal(m, b) +} +func (m *ApiListener) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ApiListener.Marshal(b, m, deterministic) +} +func (m *ApiListener) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApiListener.Merge(m, src) +} +func (m *ApiListener) XXX_Size() int { + return xxx_messageInfo_ApiListener.Size(m) +} +func (m *ApiListener) XXX_DiscardUnknown() { + xxx_messageInfo_ApiListener.DiscardUnknown(m) +} + +var xxx_messageInfo_ApiListener proto.InternalMessageInfo + +func (m *ApiListener) GetApiListener() *any.Any { + if m != nil { + return m.ApiListener + } + return nil +} + +func init() { + proto.RegisterType((*ApiListener)(nil), "envoy.config.listener.v3.ApiListener") +} + +func init() { + proto.RegisterFile("envoy/config/listener/v3/api_listener.proto", fileDescriptor_9fd48717df5cccf7) +} + +var fileDescriptor_9fd48717df5cccf7 = []byte{ + // 233 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4e, 0xcd, 0x2b, 0xcb, + 0xaf, 0xd4, 0x4f, 0xce, 0xcf, 0x4b, 0xcb, 0x4c, 0xd7, 0xcf, 0xc9, 0x2c, 0x2e, 0x49, 0xcd, 0x4b, + 0x2d, 0xd2, 0x2f, 0x33, 0xd6, 0x4f, 0x2c, 0xc8, 0x8c, 0x87, 0xf1, 0xf5, 0x0a, 0x8a, 0xf2, 0x4b, + 0xf2, 0x85, 0x24, 0xc0, 0x8a, 0xf5, 0x20, 0x8a, 0xf5, 0xe0, 0x92, 0x65, 0xc6, 0x52, 0x92, 0xe9, + 0xf9, 0xf9, 0xe9, 0x39, 0xa9, 0xfa, 0x60, 0x75, 0x49, 0xa5, 0x69, 0xfa, 0x89, 0x79, 0x95, 0x10, + 0x4d, 0x52, 0xb2, 0xa5, 0x29, 0x05, 0x89, 0xfa, 0x89, 0x79, 0x79, 0xf9, 0x25, 0x89, 0x25, 0x99, + 0xf9, 0x79, 0xc5, 0xfa, 0xc5, 0x25, 0x89, 0x25, 0xa5, 0xc5, 0x50, 0x69, 0x45, 0x0c, 0xe9, 0xb2, + 0xd4, 0xa2, 0xe2, 0xcc, 0xfc, 0xbc, 0xcc, 0xbc, 0x74, 0x88, 0x12, 0xa5, 0x62, 0x2e, 0x6e, 0xc7, + 0x82, 0x4c, 0x1f, 0xa8, 0x75, 0x42, 0xe6, 0x5c, 0x3c, 0xc8, 0x6e, 0x93, 0x60, 0x54, 0x60, 0xd4, + 0xe0, 0x36, 0x12, 0xd1, 0x83, 0x38, 0x41, 0x0f, 0xe6, 0x04, 0x3d, 0xc7, 0xbc, 0xca, 0x20, 0xee, + 0x44, 0x84, 0x46, 0x2b, 0xed, 0x59, 0x47, 0x3b, 0xe4, 0xd4, 0xb8, 0x54, 0x70, 0xf8, 0xc2, 0x48, + 0x0f, 0xc9, 0x16, 0x27, 0x97, 0x5d, 0x0d, 0x27, 0x2e, 0xb2, 0x31, 0x09, 0x30, 0x71, 0xa9, 0x65, + 0xe6, 0xeb, 0x81, 0xb5, 0x14, 0x14, 0xe5, 0x57, 0x54, 0xea, 0xe1, 0x0a, 0x03, 0x27, 0x01, 0x24, + 0xed, 0x01, 0x20, 0x47, 0x04, 0x30, 0x26, 0xb1, 0x81, 0x5d, 0x63, 0x0c, 0x08, 0x00, 0x00, 0xff, + 0xff, 0x94, 0x93, 0xe2, 0x09, 0x67, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/api_listener.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/api_listener.pb.validate.go new file mode 100644 index 000000000..45c48d585 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/api_listener.pb.validate.go @@ -0,0 +1,112 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/listener/v3/api_listener.proto + +package envoy_config_listener_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _api_listener_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on ApiListener with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *ApiListener) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetApiListener()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ApiListenerValidationError{ + field: "ApiListener", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// ApiListenerValidationError is the validation error returned by +// ApiListener.Validate if the designated constraints aren't met. +type ApiListenerValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ApiListenerValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ApiListenerValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ApiListenerValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ApiListenerValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ApiListenerValidationError) ErrorName() string { return "ApiListenerValidationError" } + +// Error satisfies the builtin error interface +func (e ApiListenerValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sApiListener.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ApiListenerValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ApiListenerValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/listener.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/listener.pb.go new file mode 100644 index 000000000..e1f85dcb6 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/listener.pb.go @@ -0,0 +1,478 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/listener/v3/listener.proto + +package envoy_config_listener_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v31 "github.com/envoyproxy/go-control-plane/envoy/config/accesslog/v3" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + duration "github.com/golang/protobuf/ptypes/duration" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + _ "google.golang.org/genproto/googleapis/api/annotations" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type Listener_DrainType int32 + +const ( + Listener_DEFAULT Listener_DrainType = 0 + Listener_MODIFY_ONLY Listener_DrainType = 1 +) + +var Listener_DrainType_name = map[int32]string{ + 0: "DEFAULT", + 1: "MODIFY_ONLY", +} + +var Listener_DrainType_value = map[string]int32{ + "DEFAULT": 0, + "MODIFY_ONLY": 1, +} + +func (x Listener_DrainType) String() string { + return proto.EnumName(Listener_DrainType_name, int32(x)) +} + +func (Listener_DrainType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_1700162847fce94e, []int{0, 0} +} + +type Listener struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Address *v3.Address `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` + FilterChains []*FilterChain `protobuf:"bytes,3,rep,name=filter_chains,json=filterChains,proto3" json:"filter_chains,omitempty"` + HiddenEnvoyDeprecatedUseOriginalDst *wrappers.BoolValue `protobuf:"bytes,4,opt,name=hidden_envoy_deprecated_use_original_dst,json=hiddenEnvoyDeprecatedUseOriginalDst,proto3" json:"hidden_envoy_deprecated_use_original_dst,omitempty"` // Deprecated: Do not use. + PerConnectionBufferLimitBytes *wrappers.UInt32Value `protobuf:"bytes,5,opt,name=per_connection_buffer_limit_bytes,json=perConnectionBufferLimitBytes,proto3" json:"per_connection_buffer_limit_bytes,omitempty"` + Metadata *v3.Metadata `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` + DeprecatedV1 *Listener_DeprecatedV1 `protobuf:"bytes,7,opt,name=deprecated_v1,json=deprecatedV1,proto3" json:"deprecated_v1,omitempty"` + DrainType Listener_DrainType `protobuf:"varint,8,opt,name=drain_type,json=drainType,proto3,enum=envoy.config.listener.v3.Listener_DrainType" json:"drain_type,omitempty"` + ListenerFilters []*ListenerFilter `protobuf:"bytes,9,rep,name=listener_filters,json=listenerFilters,proto3" json:"listener_filters,omitempty"` + ListenerFiltersTimeout *duration.Duration `protobuf:"bytes,15,opt,name=listener_filters_timeout,json=listenerFiltersTimeout,proto3" json:"listener_filters_timeout,omitempty"` + ContinueOnListenerFiltersTimeout bool `protobuf:"varint,17,opt,name=continue_on_listener_filters_timeout,json=continueOnListenerFiltersTimeout,proto3" json:"continue_on_listener_filters_timeout,omitempty"` + Transparent *wrappers.BoolValue `protobuf:"bytes,10,opt,name=transparent,proto3" json:"transparent,omitempty"` + Freebind *wrappers.BoolValue `protobuf:"bytes,11,opt,name=freebind,proto3" json:"freebind,omitempty"` + SocketOptions []*v3.SocketOption `protobuf:"bytes,13,rep,name=socket_options,json=socketOptions,proto3" json:"socket_options,omitempty"` + TcpFastOpenQueueLength *wrappers.UInt32Value `protobuf:"bytes,12,opt,name=tcp_fast_open_queue_length,json=tcpFastOpenQueueLength,proto3" json:"tcp_fast_open_queue_length,omitempty"` + TrafficDirection v3.TrafficDirection `protobuf:"varint,16,opt,name=traffic_direction,json=trafficDirection,proto3,enum=envoy.config.core.v3.TrafficDirection" json:"traffic_direction,omitempty"` + UdpListenerConfig *UdpListenerConfig `protobuf:"bytes,18,opt,name=udp_listener_config,json=udpListenerConfig,proto3" json:"udp_listener_config,omitempty"` + ApiListener *ApiListener `protobuf:"bytes,19,opt,name=api_listener,json=apiListener,proto3" json:"api_listener,omitempty"` + ConnectionBalanceConfig *Listener_ConnectionBalanceConfig `protobuf:"bytes,20,opt,name=connection_balance_config,json=connectionBalanceConfig,proto3" json:"connection_balance_config,omitempty"` + ReusePort bool `protobuf:"varint,21,opt,name=reuse_port,json=reusePort,proto3" json:"reuse_port,omitempty"` + AccessLog []*v31.AccessLog `protobuf:"bytes,22,rep,name=access_log,json=accessLog,proto3" json:"access_log,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Listener) Reset() { *m = Listener{} } +func (m *Listener) String() string { return proto.CompactTextString(m) } +func (*Listener) ProtoMessage() {} +func (*Listener) Descriptor() ([]byte, []int) { + return fileDescriptor_1700162847fce94e, []int{0} +} + +func (m *Listener) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Listener.Unmarshal(m, b) +} +func (m *Listener) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Listener.Marshal(b, m, deterministic) +} +func (m *Listener) XXX_Merge(src proto.Message) { + xxx_messageInfo_Listener.Merge(m, src) +} +func (m *Listener) XXX_Size() int { + return xxx_messageInfo_Listener.Size(m) +} +func (m *Listener) XXX_DiscardUnknown() { + xxx_messageInfo_Listener.DiscardUnknown(m) +} + +var xxx_messageInfo_Listener proto.InternalMessageInfo + +func (m *Listener) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Listener) GetAddress() *v3.Address { + if m != nil { + return m.Address + } + return nil +} + +func (m *Listener) GetFilterChains() []*FilterChain { + if m != nil { + return m.FilterChains + } + return nil +} + +// Deprecated: Do not use. +func (m *Listener) GetHiddenEnvoyDeprecatedUseOriginalDst() *wrappers.BoolValue { + if m != nil { + return m.HiddenEnvoyDeprecatedUseOriginalDst + } + return nil +} + +func (m *Listener) GetPerConnectionBufferLimitBytes() *wrappers.UInt32Value { + if m != nil { + return m.PerConnectionBufferLimitBytes + } + return nil +} + +func (m *Listener) GetMetadata() *v3.Metadata { + if m != nil { + return m.Metadata + } + return nil +} + +func (m *Listener) GetDeprecatedV1() *Listener_DeprecatedV1 { + if m != nil { + return m.DeprecatedV1 + } + return nil +} + +func (m *Listener) GetDrainType() Listener_DrainType { + if m != nil { + return m.DrainType + } + return Listener_DEFAULT +} + +func (m *Listener) GetListenerFilters() []*ListenerFilter { + if m != nil { + return m.ListenerFilters + } + return nil +} + +func (m *Listener) GetListenerFiltersTimeout() *duration.Duration { + if m != nil { + return m.ListenerFiltersTimeout + } + return nil +} + +func (m *Listener) GetContinueOnListenerFiltersTimeout() bool { + if m != nil { + return m.ContinueOnListenerFiltersTimeout + } + return false +} + +func (m *Listener) GetTransparent() *wrappers.BoolValue { + if m != nil { + return m.Transparent + } + return nil +} + +func (m *Listener) GetFreebind() *wrappers.BoolValue { + if m != nil { + return m.Freebind + } + return nil +} + +func (m *Listener) GetSocketOptions() []*v3.SocketOption { + if m != nil { + return m.SocketOptions + } + return nil +} + +func (m *Listener) GetTcpFastOpenQueueLength() *wrappers.UInt32Value { + if m != nil { + return m.TcpFastOpenQueueLength + } + return nil +} + +func (m *Listener) GetTrafficDirection() v3.TrafficDirection { + if m != nil { + return m.TrafficDirection + } + return v3.TrafficDirection_UNSPECIFIED +} + +func (m *Listener) GetUdpListenerConfig() *UdpListenerConfig { + if m != nil { + return m.UdpListenerConfig + } + return nil +} + +func (m *Listener) GetApiListener() *ApiListener { + if m != nil { + return m.ApiListener + } + return nil +} + +func (m *Listener) GetConnectionBalanceConfig() *Listener_ConnectionBalanceConfig { + if m != nil { + return m.ConnectionBalanceConfig + } + return nil +} + +func (m *Listener) GetReusePort() bool { + if m != nil { + return m.ReusePort + } + return false +} + +func (m *Listener) GetAccessLog() []*v31.AccessLog { + if m != nil { + return m.AccessLog + } + return nil +} + +type Listener_DeprecatedV1 struct { + BindToPort *wrappers.BoolValue `protobuf:"bytes,1,opt,name=bind_to_port,json=bindToPort,proto3" json:"bind_to_port,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Listener_DeprecatedV1) Reset() { *m = Listener_DeprecatedV1{} } +func (m *Listener_DeprecatedV1) String() string { return proto.CompactTextString(m) } +func (*Listener_DeprecatedV1) ProtoMessage() {} +func (*Listener_DeprecatedV1) Descriptor() ([]byte, []int) { + return fileDescriptor_1700162847fce94e, []int{0, 0} +} + +func (m *Listener_DeprecatedV1) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Listener_DeprecatedV1.Unmarshal(m, b) +} +func (m *Listener_DeprecatedV1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Listener_DeprecatedV1.Marshal(b, m, deterministic) +} +func (m *Listener_DeprecatedV1) XXX_Merge(src proto.Message) { + xxx_messageInfo_Listener_DeprecatedV1.Merge(m, src) +} +func (m *Listener_DeprecatedV1) XXX_Size() int { + return xxx_messageInfo_Listener_DeprecatedV1.Size(m) +} +func (m *Listener_DeprecatedV1) XXX_DiscardUnknown() { + xxx_messageInfo_Listener_DeprecatedV1.DiscardUnknown(m) +} + +var xxx_messageInfo_Listener_DeprecatedV1 proto.InternalMessageInfo + +func (m *Listener_DeprecatedV1) GetBindToPort() *wrappers.BoolValue { + if m != nil { + return m.BindToPort + } + return nil +} + +type Listener_ConnectionBalanceConfig struct { + // Types that are valid to be assigned to BalanceType: + // *Listener_ConnectionBalanceConfig_ExactBalance_ + BalanceType isListener_ConnectionBalanceConfig_BalanceType `protobuf_oneof:"balance_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Listener_ConnectionBalanceConfig) Reset() { *m = Listener_ConnectionBalanceConfig{} } +func (m *Listener_ConnectionBalanceConfig) String() string { return proto.CompactTextString(m) } +func (*Listener_ConnectionBalanceConfig) ProtoMessage() {} +func (*Listener_ConnectionBalanceConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_1700162847fce94e, []int{0, 1} +} + +func (m *Listener_ConnectionBalanceConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Listener_ConnectionBalanceConfig.Unmarshal(m, b) +} +func (m *Listener_ConnectionBalanceConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Listener_ConnectionBalanceConfig.Marshal(b, m, deterministic) +} +func (m *Listener_ConnectionBalanceConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_Listener_ConnectionBalanceConfig.Merge(m, src) +} +func (m *Listener_ConnectionBalanceConfig) XXX_Size() int { + return xxx_messageInfo_Listener_ConnectionBalanceConfig.Size(m) +} +func (m *Listener_ConnectionBalanceConfig) XXX_DiscardUnknown() { + xxx_messageInfo_Listener_ConnectionBalanceConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_Listener_ConnectionBalanceConfig proto.InternalMessageInfo + +type isListener_ConnectionBalanceConfig_BalanceType interface { + isListener_ConnectionBalanceConfig_BalanceType() +} + +type Listener_ConnectionBalanceConfig_ExactBalance_ struct { + ExactBalance *Listener_ConnectionBalanceConfig_ExactBalance `protobuf:"bytes,1,opt,name=exact_balance,json=exactBalance,proto3,oneof"` +} + +func (*Listener_ConnectionBalanceConfig_ExactBalance_) isListener_ConnectionBalanceConfig_BalanceType() { +} + +func (m *Listener_ConnectionBalanceConfig) GetBalanceType() isListener_ConnectionBalanceConfig_BalanceType { + if m != nil { + return m.BalanceType + } + return nil +} + +func (m *Listener_ConnectionBalanceConfig) GetExactBalance() *Listener_ConnectionBalanceConfig_ExactBalance { + if x, ok := m.GetBalanceType().(*Listener_ConnectionBalanceConfig_ExactBalance_); ok { + return x.ExactBalance + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Listener_ConnectionBalanceConfig) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*Listener_ConnectionBalanceConfig_ExactBalance_)(nil), + } +} + +type Listener_ConnectionBalanceConfig_ExactBalance struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Listener_ConnectionBalanceConfig_ExactBalance) Reset() { + *m = Listener_ConnectionBalanceConfig_ExactBalance{} +} +func (m *Listener_ConnectionBalanceConfig_ExactBalance) String() string { + return proto.CompactTextString(m) +} +func (*Listener_ConnectionBalanceConfig_ExactBalance) ProtoMessage() {} +func (*Listener_ConnectionBalanceConfig_ExactBalance) Descriptor() ([]byte, []int) { + return fileDescriptor_1700162847fce94e, []int{0, 1, 0} +} + +func (m *Listener_ConnectionBalanceConfig_ExactBalance) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Listener_ConnectionBalanceConfig_ExactBalance.Unmarshal(m, b) +} +func (m *Listener_ConnectionBalanceConfig_ExactBalance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Listener_ConnectionBalanceConfig_ExactBalance.Marshal(b, m, deterministic) +} +func (m *Listener_ConnectionBalanceConfig_ExactBalance) XXX_Merge(src proto.Message) { + xxx_messageInfo_Listener_ConnectionBalanceConfig_ExactBalance.Merge(m, src) +} +func (m *Listener_ConnectionBalanceConfig_ExactBalance) XXX_Size() int { + return xxx_messageInfo_Listener_ConnectionBalanceConfig_ExactBalance.Size(m) +} +func (m *Listener_ConnectionBalanceConfig_ExactBalance) XXX_DiscardUnknown() { + xxx_messageInfo_Listener_ConnectionBalanceConfig_ExactBalance.DiscardUnknown(m) +} + +var xxx_messageInfo_Listener_ConnectionBalanceConfig_ExactBalance proto.InternalMessageInfo + +func init() { + proto.RegisterEnum("envoy.config.listener.v3.Listener_DrainType", Listener_DrainType_name, Listener_DrainType_value) + proto.RegisterType((*Listener)(nil), "envoy.config.listener.v3.Listener") + proto.RegisterType((*Listener_DeprecatedV1)(nil), "envoy.config.listener.v3.Listener.DeprecatedV1") + proto.RegisterType((*Listener_ConnectionBalanceConfig)(nil), "envoy.config.listener.v3.Listener.ConnectionBalanceConfig") + proto.RegisterType((*Listener_ConnectionBalanceConfig_ExactBalance)(nil), "envoy.config.listener.v3.Listener.ConnectionBalanceConfig.ExactBalance") +} + +func init() { + proto.RegisterFile("envoy/config/listener/v3/listener.proto", fileDescriptor_1700162847fce94e) +} + +var fileDescriptor_1700162847fce94e = []byte{ + // 1096 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xc1, 0x52, 0x1b, 0x47, + 0x13, 0xf6, 0x0a, 0x0c, 0xd2, 0x48, 0x02, 0x31, 0xfc, 0x86, 0xb5, 0x0a, 0xf8, 0x65, 0x42, 0x1c, + 0x51, 0x4e, 0x56, 0x65, 0x91, 0xca, 0x41, 0xc5, 0x45, 0x42, 0x10, 0xe3, 0xc8, 0x16, 0x5e, 0x84, + 0x2b, 0xae, 0x1c, 0xa6, 0x46, 0xbb, 0x23, 0x31, 0x95, 0x65, 0x66, 0xb3, 0x33, 0x2b, 0x9b, 0x5b, + 0x8e, 0xa9, 0x3c, 0x42, 0x5e, 0x20, 0xef, 0x90, 0x7b, 0xaa, 0x52, 0xb9, 0xe5, 0x6d, 0x52, 0x39, + 0xa5, 0x66, 0x76, 0x57, 0xac, 0x40, 0x8a, 0x48, 0x6e, 0xd3, 0xdb, 0x5f, 0x7f, 0xd3, 0xfd, 0x75, + 0x4f, 0x4b, 0xe0, 0x13, 0xc2, 0x46, 0xfc, 0xba, 0xe6, 0x70, 0x36, 0xa0, 0xc3, 0x9a, 0x47, 0x85, + 0x24, 0x8c, 0x04, 0xb5, 0xd1, 0xc1, 0xf8, 0x6c, 0xf9, 0x01, 0x97, 0x1c, 0x9a, 0x1a, 0x68, 0x45, + 0x40, 0x6b, 0xec, 0x1c, 0x1d, 0x94, 0xf7, 0x27, 0x28, 0xb0, 0xe3, 0x10, 0x21, 0x3c, 0x3e, 0x54, + 0x1c, 0x63, 0x23, 0x22, 0x29, 0xef, 0x4e, 0x40, 0x1d, 0x1e, 0x10, 0x8d, 0x72, 0xdd, 0x80, 0x08, + 0x11, 0x63, 0xfe, 0x3f, 0x15, 0xd3, 0xc7, 0x82, 0xc4, 0x80, 0xea, 0x54, 0x80, 0xe0, 0xce, 0xb7, + 0x44, 0x22, 0xee, 0x4b, 0xca, 0x59, 0x8c, 0x7c, 0x36, 0xb3, 0x38, 0xec, 0x53, 0x34, 0x59, 0x60, + 0xb9, 0x3e, 0x57, 0x09, 0xe4, 0xf0, 0x2b, 0x9f, 0x33, 0xc2, 0xa4, 0x98, 0x1b, 0x13, 0xba, 0x3e, + 0x4a, 0xc5, 0x69, 0xd1, 0xa2, 0x98, 0xad, 0x21, 0xe7, 0x43, 0x8f, 0xa8, 0x14, 0x6a, 0x98, 0x31, + 0x2e, 0xb1, 0xca, 0x38, 0x61, 0xdc, 0x89, 0xbd, 0xda, 0xea, 0x87, 0x83, 0x9a, 0x1b, 0x06, 0x38, + 0x55, 0xd2, 0x1d, 0xff, 0xfb, 0x00, 0xfb, 0x3e, 0x09, 0x92, 0xf8, 0xed, 0xd0, 0xf5, 0x71, 0x9a, + 0xb7, 0x26, 0x24, 0x96, 0x61, 0xe2, 0x7e, 0x72, 0xc7, 0x3d, 0x22, 0x81, 0xa0, 0x9c, 0x51, 0x96, + 0xe4, 0xb7, 0x39, 0xc2, 0x1e, 0x75, 0xb1, 0x24, 0xb5, 0xe4, 0x10, 0x39, 0x76, 0x7f, 0x2f, 0x81, + 0x6c, 0x27, 0x2e, 0x09, 0x42, 0xb0, 0xc8, 0xf0, 0x15, 0x31, 0x8d, 0x8a, 0x51, 0xcd, 0xd9, 0xfa, + 0x0c, 0x9b, 0x60, 0x39, 0x6e, 0xa5, 0x99, 0xa9, 0x18, 0xd5, 0x7c, 0x7d, 0xdb, 0x9a, 0x18, 0x1a, + 0xd5, 0x2a, 0x6b, 0x74, 0x60, 0x35, 0x23, 0x50, 0x2b, 0xfb, 0x57, 0xeb, 0xe1, 0x8f, 0x46, 0xa6, + 0x64, 0xd8, 0x49, 0x1c, 0x7c, 0x09, 0x8a, 0x03, 0xea, 0x49, 0xa5, 0xd9, 0x25, 0xa6, 0x4c, 0x98, + 0x0b, 0x95, 0x85, 0x6a, 0xbe, 0xfe, 0xb1, 0x35, 0x6b, 0xfa, 0xac, 0x13, 0x0d, 0x3f, 0x52, 0x68, + 0xbb, 0x30, 0xb8, 0x31, 0x04, 0x0c, 0x41, 0xf5, 0x92, 0xba, 0x2e, 0x61, 0x48, 0x07, 0x23, 0x97, + 0xf8, 0x01, 0x71, 0xb0, 0x24, 0x2e, 0x0a, 0x05, 0x41, 0x3c, 0xa0, 0x43, 0xca, 0xb0, 0x87, 0x5c, + 0x21, 0xcd, 0x45, 0x9d, 0x6f, 0xd9, 0x8a, 0xd4, 0xb5, 0x12, 0x75, 0xad, 0x16, 0xe7, 0xde, 0x5b, + 0xec, 0x85, 0xa4, 0x95, 0x31, 0x0d, 0xfb, 0xa3, 0x88, 0xef, 0x58, 0xd1, 0xb5, 0xc7, 0x6c, 0x17, + 0x82, 0x74, 0x63, 0xae, 0xb6, 0x90, 0x70, 0x00, 0x9e, 0xf8, 0x51, 0xcf, 0x19, 0x71, 0x94, 0xc6, + 0xa8, 0x1f, 0x0e, 0x06, 0x24, 0x40, 0x1e, 0xbd, 0xa2, 0x12, 0xf5, 0xaf, 0x25, 0x11, 0xe6, 0x43, + 0x7d, 0xdf, 0xd6, 0x9d, 0xfb, 0x2e, 0x4e, 0x99, 0x3c, 0xa8, 0xeb, 0x1b, 0xed, 0x6d, 0x9f, 0x04, + 0x47, 0x63, 0x96, 0x96, 0x26, 0xe9, 0x28, 0x8e, 0x96, 0xa2, 0x80, 0x0d, 0x90, 0xbd, 0x22, 0x12, + 0xbb, 0x58, 0x62, 0x73, 0x49, 0xd3, 0xed, 0x4c, 0x97, 0xfb, 0x55, 0x8c, 0xb2, 0xc7, 0x78, 0xd8, + 0x03, 0xc5, 0x94, 0x1a, 0xa3, 0xe7, 0xe6, 0xb2, 0x26, 0xa8, 0xcd, 0x96, 0x39, 0x69, 0xbc, 0x75, + 0x53, 0xf7, 0xdb, 0xe7, 0x76, 0xc1, 0x4d, 0x59, 0xf0, 0x2b, 0x00, 0xdc, 0x00, 0x53, 0x86, 0xe4, + 0xb5, 0x4f, 0xcc, 0x6c, 0xc5, 0xa8, 0xae, 0xd4, 0x3f, 0xbd, 0x0f, 0xa5, 0x0a, 0xea, 0x5d, 0xfb, + 0xc4, 0xce, 0xb9, 0xc9, 0x11, 0x9e, 0x83, 0xd2, 0xf8, 0xfd, 0x44, 0x6d, 0x15, 0x66, 0x4e, 0x0f, + 0x43, 0x75, 0x3e, 0x65, 0x34, 0x14, 0xf6, 0xaa, 0x37, 0x61, 0x0b, 0x78, 0x0e, 0xcc, 0xdb, 0xa4, + 0x48, 0xd2, 0x2b, 0xc2, 0x43, 0x69, 0xae, 0x6a, 0x09, 0x1e, 0xdf, 0x69, 0x49, 0x3b, 0x7e, 0x80, + 0xf6, 0xc6, 0x2d, 0xb6, 0x5e, 0x14, 0x08, 0x5f, 0x83, 0x3d, 0x87, 0x33, 0x49, 0x59, 0x48, 0x10, + 0x67, 0x68, 0xe6, 0x05, 0x6b, 0x15, 0xa3, 0x9a, 0xb5, 0x2b, 0x09, 0xb6, 0xcb, 0x3a, 0xd3, 0xf9, + 0x0e, 0x41, 0x5e, 0x06, 0x98, 0x09, 0x1f, 0x07, 0x84, 0x49, 0x13, 0xcc, 0x1b, 0x4d, 0x3b, 0x0d, + 0x87, 0x5f, 0x80, 0xec, 0x20, 0x20, 0xa4, 0x4f, 0x99, 0x6b, 0xe6, 0xe7, 0x86, 0x8e, 0xb1, 0xf0, + 0x14, 0xac, 0x4c, 0xac, 0x50, 0x61, 0x16, 0xb5, 0xda, 0xbb, 0xd3, 0x87, 0xea, 0x5c, 0x63, 0xbb, + 0x1a, 0x6a, 0x17, 0x45, 0xca, 0x12, 0xf0, 0x6b, 0x50, 0x96, 0x8e, 0x8f, 0x06, 0x58, 0x28, 0x32, + 0xc2, 0xd0, 0x77, 0x21, 0x09, 0x09, 0xf2, 0x08, 0x1b, 0xca, 0x4b, 0xb3, 0x70, 0x8f, 0xd1, 0xdf, + 0x90, 0x8e, 0x7f, 0x82, 0x85, 0xec, 0xfa, 0x84, 0xbd, 0x51, 0xc1, 0x1d, 0x1d, 0x0b, 0xcf, 0xc1, + 0x9a, 0x0c, 0xf0, 0x60, 0x40, 0x1d, 0xe4, 0xd2, 0x20, 0x7a, 0x18, 0x66, 0x49, 0x0f, 0xda, 0xd3, + 0xe9, 0x79, 0xf6, 0x22, 0x78, 0x3b, 0x41, 0xdb, 0x25, 0x79, 0xeb, 0x0b, 0xfc, 0x06, 0xac, 0x4f, + 0xd9, 0xd6, 0x26, 0xd4, 0x79, 0x3e, 0x9b, 0x3d, 0x6c, 0x17, 0xae, 0x9f, 0x74, 0xf0, 0x48, 0x7b, + 0xed, 0xb5, 0xf0, 0xf6, 0x27, 0xf8, 0x02, 0x14, 0xd2, 0xbf, 0x35, 0xe6, 0xba, 0x66, 0xfd, 0x87, + 0x7d, 0xd6, 0xf4, 0x69, 0x42, 0x61, 0xe7, 0xf1, 0x8d, 0x01, 0x47, 0xe0, 0x71, 0x7a, 0xa7, 0x60, + 0x0f, 0x33, 0x87, 0x24, 0xc9, 0xfe, 0x4f, 0xd3, 0x36, 0xee, 0xf1, 0xd8, 0x52, 0x1b, 0x25, 0xa2, + 0x88, 0x73, 0xdf, 0x74, 0xa6, 0x3b, 0xe0, 0x36, 0x00, 0x01, 0x51, 0x0b, 0xd3, 0xe7, 0x81, 0x34, + 0x1f, 0xe9, 0x21, 0xce, 0xe9, 0x2f, 0x67, 0x3c, 0x90, 0xf0, 0x08, 0x80, 0xe8, 0x57, 0x1e, 0x79, + 0x7c, 0x68, 0x6e, 0xe8, 0x99, 0xd9, 0x9b, 0xcc, 0xe3, 0xe6, 0x5f, 0x80, 0xaa, 0x4f, 0x1b, 0x1d, + 0x3e, 0xb4, 0x73, 0x38, 0x39, 0x96, 0xdf, 0x83, 0x42, 0x7a, 0xaf, 0xc0, 0x43, 0x50, 0x50, 0x43, + 0x89, 0x24, 0x8f, 0x6e, 0x35, 0xe6, 0x0e, 0x32, 0x50, 0xf8, 0x1e, 0x57, 0x29, 0x35, 0xf6, 0x7f, + 0xfa, 0xf5, 0x87, 0x9d, 0x3d, 0x10, 0xfd, 0xd9, 0xb0, 0xb0, 0x4f, 0xad, 0x51, 0x7d, 0xfa, 0x02, + 0x2b, 0xff, 0x9c, 0x01, 0x9b, 0x33, 0x14, 0x81, 0x0c, 0x14, 0xc9, 0x07, 0xec, 0xc8, 0x44, 0xeb, + 0x38, 0x8b, 0x2f, 0xff, 0xbb, 0xc8, 0xd6, 0xb1, 0xe2, 0x8b, 0x3f, 0xbd, 0x78, 0x60, 0x17, 0x48, + 0xca, 0x2e, 0xbf, 0x01, 0x85, 0xb4, 0xbf, 0xd1, 0x54, 0x65, 0x1c, 0x82, 0xc6, 0xf4, 0x32, 0xee, + 0x73, 0x45, 0xe3, 0x73, 0x45, 0x51, 0x03, 0x9f, 0xfd, 0x2b, 0x8a, 0xd6, 0x3a, 0x28, 0x24, 0xe3, + 0xa5, 0x36, 0x39, 0x5c, 0xf8, 0xb3, 0x65, 0xec, 0xee, 0x83, 0xdc, 0x78, 0x4f, 0xc3, 0x3c, 0x58, + 0x6e, 0x1f, 0x9f, 0x34, 0x2f, 0x3a, 0xbd, 0xd2, 0x03, 0xb8, 0x0a, 0xf2, 0xaf, 0xba, 0xed, 0xd3, + 0x93, 0x77, 0xa8, 0xfb, 0xba, 0xf3, 0xae, 0x64, 0x34, 0xb6, 0xd4, 0xad, 0x9b, 0xe0, 0xd1, 0xd4, + 0x5b, 0x5f, 0x2e, 0x66, 0x57, 0x4a, 0xab, 0xad, 0xe6, 0x2f, 0xdf, 0xff, 0xf6, 0xc7, 0x52, 0xa6, + 0x94, 0x01, 0x4f, 0x29, 0x8f, 0x14, 0xf5, 0x03, 0xfe, 0xe1, 0x7a, 0xa6, 0xb8, 0xad, 0x62, 0xc2, + 0x70, 0xa6, 0xba, 0x7f, 0x66, 0xf4, 0x97, 0xf4, 0x18, 0x1c, 0xfc, 0x1d, 0x00, 0x00, 0xff, 0xff, + 0xf9, 0x12, 0x8d, 0xe7, 0xc3, 0x0a, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/listener.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/listener.pb.validate.go new file mode 100644 index 000000000..82c19fae7 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/listener.pb.validate.go @@ -0,0 +1,538 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/listener/v3/listener.proto + +package envoy_config_listener_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" + + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} + + _ = v3.TrafficDirection(0) +) + +// define the regex for a UUID once up-front +var _listener_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on Listener with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Listener) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Name + + if m.GetAddress() == nil { + return ListenerValidationError{ + field: "Address", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetAddress()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerValidationError{ + field: "Address", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetFilterChains() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerValidationError{ + field: fmt.Sprintf("FilterChains[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedUseOriginalDst()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerValidationError{ + field: "HiddenEnvoyDeprecatedUseOriginalDst", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetPerConnectionBufferLimitBytes()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerValidationError{ + field: "PerConnectionBufferLimitBytes", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetDeprecatedV1()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerValidationError{ + field: "DeprecatedV1", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for DrainType + + for idx, item := range m.GetListenerFilters() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerValidationError{ + field: fmt.Sprintf("ListenerFilters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetListenerFiltersTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerValidationError{ + field: "ListenerFiltersTimeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for ContinueOnListenerFiltersTimeout + + if v, ok := interface{}(m.GetTransparent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerValidationError{ + field: "Transparent", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetFreebind()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerValidationError{ + field: "Freebind", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetSocketOptions() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerValidationError{ + field: fmt.Sprintf("SocketOptions[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetTcpFastOpenQueueLength()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerValidationError{ + field: "TcpFastOpenQueueLength", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for TrafficDirection + + if v, ok := interface{}(m.GetUdpListenerConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerValidationError{ + field: "UdpListenerConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetApiListener()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerValidationError{ + field: "ApiListener", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetConnectionBalanceConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerValidationError{ + field: "ConnectionBalanceConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for ReusePort + + for idx, item := range m.GetAccessLog() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerValidationError{ + field: fmt.Sprintf("AccessLog[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// ListenerValidationError is the validation error returned by +// Listener.Validate if the designated constraints aren't met. +type ListenerValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListenerValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListenerValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListenerValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListenerValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListenerValidationError) ErrorName() string { return "ListenerValidationError" } + +// Error satisfies the builtin error interface +func (e ListenerValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListener.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListenerValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListenerValidationError{} + +// Validate checks the field values on Listener_DeprecatedV1 with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *Listener_DeprecatedV1) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetBindToPort()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Listener_DeprecatedV1ValidationError{ + field: "BindToPort", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// Listener_DeprecatedV1ValidationError is the validation error returned by +// Listener_DeprecatedV1.Validate if the designated constraints aren't met. +type Listener_DeprecatedV1ValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Listener_DeprecatedV1ValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Listener_DeprecatedV1ValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Listener_DeprecatedV1ValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Listener_DeprecatedV1ValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Listener_DeprecatedV1ValidationError) ErrorName() string { + return "Listener_DeprecatedV1ValidationError" +} + +// Error satisfies the builtin error interface +func (e Listener_DeprecatedV1ValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListener_DeprecatedV1.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Listener_DeprecatedV1ValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Listener_DeprecatedV1ValidationError{} + +// Validate checks the field values on Listener_ConnectionBalanceConfig with +// the rules defined in the proto definition for this message. If any rules +// are violated, an error is returned. +func (m *Listener_ConnectionBalanceConfig) Validate() error { + if m == nil { + return nil + } + + switch m.BalanceType.(type) { + + case *Listener_ConnectionBalanceConfig_ExactBalance_: + + if v, ok := interface{}(m.GetExactBalance()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Listener_ConnectionBalanceConfigValidationError{ + field: "ExactBalance", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return Listener_ConnectionBalanceConfigValidationError{ + field: "BalanceType", + reason: "value is required", + } + + } + + return nil +} + +// Listener_ConnectionBalanceConfigValidationError is the validation error +// returned by Listener_ConnectionBalanceConfig.Validate if the designated +// constraints aren't met. +type Listener_ConnectionBalanceConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Listener_ConnectionBalanceConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Listener_ConnectionBalanceConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Listener_ConnectionBalanceConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Listener_ConnectionBalanceConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Listener_ConnectionBalanceConfigValidationError) ErrorName() string { + return "Listener_ConnectionBalanceConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e Listener_ConnectionBalanceConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListener_ConnectionBalanceConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Listener_ConnectionBalanceConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Listener_ConnectionBalanceConfigValidationError{} + +// Validate checks the field values on +// Listener_ConnectionBalanceConfig_ExactBalance with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Listener_ConnectionBalanceConfig_ExactBalance) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// Listener_ConnectionBalanceConfig_ExactBalanceValidationError is the +// validation error returned by +// Listener_ConnectionBalanceConfig_ExactBalance.Validate if the designated +// constraints aren't met. +type Listener_ConnectionBalanceConfig_ExactBalanceValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Listener_ConnectionBalanceConfig_ExactBalanceValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Listener_ConnectionBalanceConfig_ExactBalanceValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Listener_ConnectionBalanceConfig_ExactBalanceValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Listener_ConnectionBalanceConfig_ExactBalanceValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Listener_ConnectionBalanceConfig_ExactBalanceValidationError) ErrorName() string { + return "Listener_ConnectionBalanceConfig_ExactBalanceValidationError" +} + +// Error satisfies the builtin error interface +func (e Listener_ConnectionBalanceConfig_ExactBalanceValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListener_ConnectionBalanceConfig_ExactBalance.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Listener_ConnectionBalanceConfig_ExactBalanceValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Listener_ConnectionBalanceConfig_ExactBalanceValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/listener_components.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/listener_components.pb.go new file mode 100644 index 000000000..ebd52d398 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/listener_components.pb.go @@ -0,0 +1,707 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/listener/v3/listener_components.proto + +package envoy_config_listener_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + v31 "github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3" + v32 "github.com/envoyproxy/go-control-plane/envoy/type/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + any "github.com/golang/protobuf/ptypes/any" + _struct "github.com/golang/protobuf/ptypes/struct" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type FilterChainMatch_ConnectionSourceType int32 + +const ( + FilterChainMatch_ANY FilterChainMatch_ConnectionSourceType = 0 + FilterChainMatch_SAME_IP_OR_LOOPBACK FilterChainMatch_ConnectionSourceType = 1 + FilterChainMatch_EXTERNAL FilterChainMatch_ConnectionSourceType = 2 +) + +var FilterChainMatch_ConnectionSourceType_name = map[int32]string{ + 0: "ANY", + 1: "SAME_IP_OR_LOOPBACK", + 2: "EXTERNAL", +} + +var FilterChainMatch_ConnectionSourceType_value = map[string]int32{ + "ANY": 0, + "SAME_IP_OR_LOOPBACK": 1, + "EXTERNAL": 2, +} + +func (x FilterChainMatch_ConnectionSourceType) String() string { + return proto.EnumName(FilterChainMatch_ConnectionSourceType_name, int32(x)) +} + +func (FilterChainMatch_ConnectionSourceType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_87f255d2eccc91b5, []int{1, 0} +} + +type Filter struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Types that are valid to be assigned to ConfigType: + // *Filter_HiddenEnvoyDeprecatedConfig + // *Filter_TypedConfig + ConfigType isFilter_ConfigType `protobuf_oneof:"config_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Filter) Reset() { *m = Filter{} } +func (m *Filter) String() string { return proto.CompactTextString(m) } +func (*Filter) ProtoMessage() {} +func (*Filter) Descriptor() ([]byte, []int) { + return fileDescriptor_87f255d2eccc91b5, []int{0} +} + +func (m *Filter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Filter.Unmarshal(m, b) +} +func (m *Filter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Filter.Marshal(b, m, deterministic) +} +func (m *Filter) XXX_Merge(src proto.Message) { + xxx_messageInfo_Filter.Merge(m, src) +} +func (m *Filter) XXX_Size() int { + return xxx_messageInfo_Filter.Size(m) +} +func (m *Filter) XXX_DiscardUnknown() { + xxx_messageInfo_Filter.DiscardUnknown(m) +} + +var xxx_messageInfo_Filter proto.InternalMessageInfo + +func (m *Filter) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type isFilter_ConfigType interface { + isFilter_ConfigType() +} + +type Filter_HiddenEnvoyDeprecatedConfig struct { + HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"` +} + +type Filter_TypedConfig struct { + TypedConfig *any.Any `protobuf:"bytes,4,opt,name=typed_config,json=typedConfig,proto3,oneof"` +} + +func (*Filter_HiddenEnvoyDeprecatedConfig) isFilter_ConfigType() {} + +func (*Filter_TypedConfig) isFilter_ConfigType() {} + +func (m *Filter) GetConfigType() isFilter_ConfigType { + if m != nil { + return m.ConfigType + } + return nil +} + +// Deprecated: Do not use. +func (m *Filter) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct { + if x, ok := m.GetConfigType().(*Filter_HiddenEnvoyDeprecatedConfig); ok { + return x.HiddenEnvoyDeprecatedConfig + } + return nil +} + +func (m *Filter) GetTypedConfig() *any.Any { + if x, ok := m.GetConfigType().(*Filter_TypedConfig); ok { + return x.TypedConfig + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Filter) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*Filter_HiddenEnvoyDeprecatedConfig)(nil), + (*Filter_TypedConfig)(nil), + } +} + +type FilterChainMatch struct { + DestinationPort *wrappers.UInt32Value `protobuf:"bytes,8,opt,name=destination_port,json=destinationPort,proto3" json:"destination_port,omitempty"` + PrefixRanges []*v3.CidrRange `protobuf:"bytes,3,rep,name=prefix_ranges,json=prefixRanges,proto3" json:"prefix_ranges,omitempty"` + AddressSuffix string `protobuf:"bytes,4,opt,name=address_suffix,json=addressSuffix,proto3" json:"address_suffix,omitempty"` + SuffixLen *wrappers.UInt32Value `protobuf:"bytes,5,opt,name=suffix_len,json=suffixLen,proto3" json:"suffix_len,omitempty"` + SourceType FilterChainMatch_ConnectionSourceType `protobuf:"varint,12,opt,name=source_type,json=sourceType,proto3,enum=envoy.config.listener.v3.FilterChainMatch_ConnectionSourceType" json:"source_type,omitempty"` + SourcePrefixRanges []*v3.CidrRange `protobuf:"bytes,6,rep,name=source_prefix_ranges,json=sourcePrefixRanges,proto3" json:"source_prefix_ranges,omitempty"` + SourcePorts []uint32 `protobuf:"varint,7,rep,packed,name=source_ports,json=sourcePorts,proto3" json:"source_ports,omitempty"` + ServerNames []string `protobuf:"bytes,11,rep,name=server_names,json=serverNames,proto3" json:"server_names,omitempty"` + TransportProtocol string `protobuf:"bytes,9,opt,name=transport_protocol,json=transportProtocol,proto3" json:"transport_protocol,omitempty"` + ApplicationProtocols []string `protobuf:"bytes,10,rep,name=application_protocols,json=applicationProtocols,proto3" json:"application_protocols,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FilterChainMatch) Reset() { *m = FilterChainMatch{} } +func (m *FilterChainMatch) String() string { return proto.CompactTextString(m) } +func (*FilterChainMatch) ProtoMessage() {} +func (*FilterChainMatch) Descriptor() ([]byte, []int) { + return fileDescriptor_87f255d2eccc91b5, []int{1} +} + +func (m *FilterChainMatch) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FilterChainMatch.Unmarshal(m, b) +} +func (m *FilterChainMatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FilterChainMatch.Marshal(b, m, deterministic) +} +func (m *FilterChainMatch) XXX_Merge(src proto.Message) { + xxx_messageInfo_FilterChainMatch.Merge(m, src) +} +func (m *FilterChainMatch) XXX_Size() int { + return xxx_messageInfo_FilterChainMatch.Size(m) +} +func (m *FilterChainMatch) XXX_DiscardUnknown() { + xxx_messageInfo_FilterChainMatch.DiscardUnknown(m) +} + +var xxx_messageInfo_FilterChainMatch proto.InternalMessageInfo + +func (m *FilterChainMatch) GetDestinationPort() *wrappers.UInt32Value { + if m != nil { + return m.DestinationPort + } + return nil +} + +func (m *FilterChainMatch) GetPrefixRanges() []*v3.CidrRange { + if m != nil { + return m.PrefixRanges + } + return nil +} + +func (m *FilterChainMatch) GetAddressSuffix() string { + if m != nil { + return m.AddressSuffix + } + return "" +} + +func (m *FilterChainMatch) GetSuffixLen() *wrappers.UInt32Value { + if m != nil { + return m.SuffixLen + } + return nil +} + +func (m *FilterChainMatch) GetSourceType() FilterChainMatch_ConnectionSourceType { + if m != nil { + return m.SourceType + } + return FilterChainMatch_ANY +} + +func (m *FilterChainMatch) GetSourcePrefixRanges() []*v3.CidrRange { + if m != nil { + return m.SourcePrefixRanges + } + return nil +} + +func (m *FilterChainMatch) GetSourcePorts() []uint32 { + if m != nil { + return m.SourcePorts + } + return nil +} + +func (m *FilterChainMatch) GetServerNames() []string { + if m != nil { + return m.ServerNames + } + return nil +} + +func (m *FilterChainMatch) GetTransportProtocol() string { + if m != nil { + return m.TransportProtocol + } + return "" +} + +func (m *FilterChainMatch) GetApplicationProtocols() []string { + if m != nil { + return m.ApplicationProtocols + } + return nil +} + +type FilterChain struct { + FilterChainMatch *FilterChainMatch `protobuf:"bytes,1,opt,name=filter_chain_match,json=filterChainMatch,proto3" json:"filter_chain_match,omitempty"` + HiddenEnvoyDeprecatedTlsContext *v31.DownstreamTlsContext `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_tls_context,json=hiddenEnvoyDeprecatedTlsContext,proto3" json:"hidden_envoy_deprecated_tls_context,omitempty"` // Deprecated: Do not use. + Filters []*Filter `protobuf:"bytes,3,rep,name=filters,proto3" json:"filters,omitempty"` + UseProxyProto *wrappers.BoolValue `protobuf:"bytes,4,opt,name=use_proxy_proto,json=useProxyProto,proto3" json:"use_proxy_proto,omitempty"` + Metadata *v3.Metadata `protobuf:"bytes,5,opt,name=metadata,proto3" json:"metadata,omitempty"` + TransportSocket *v3.TransportSocket `protobuf:"bytes,6,opt,name=transport_socket,json=transportSocket,proto3" json:"transport_socket,omitempty"` + Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FilterChain) Reset() { *m = FilterChain{} } +func (m *FilterChain) String() string { return proto.CompactTextString(m) } +func (*FilterChain) ProtoMessage() {} +func (*FilterChain) Descriptor() ([]byte, []int) { + return fileDescriptor_87f255d2eccc91b5, []int{2} +} + +func (m *FilterChain) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FilterChain.Unmarshal(m, b) +} +func (m *FilterChain) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FilterChain.Marshal(b, m, deterministic) +} +func (m *FilterChain) XXX_Merge(src proto.Message) { + xxx_messageInfo_FilterChain.Merge(m, src) +} +func (m *FilterChain) XXX_Size() int { + return xxx_messageInfo_FilterChain.Size(m) +} +func (m *FilterChain) XXX_DiscardUnknown() { + xxx_messageInfo_FilterChain.DiscardUnknown(m) +} + +var xxx_messageInfo_FilterChain proto.InternalMessageInfo + +func (m *FilterChain) GetFilterChainMatch() *FilterChainMatch { + if m != nil { + return m.FilterChainMatch + } + return nil +} + +// Deprecated: Do not use. +func (m *FilterChain) GetHiddenEnvoyDeprecatedTlsContext() *v31.DownstreamTlsContext { + if m != nil { + return m.HiddenEnvoyDeprecatedTlsContext + } + return nil +} + +func (m *FilterChain) GetFilters() []*Filter { + if m != nil { + return m.Filters + } + return nil +} + +func (m *FilterChain) GetUseProxyProto() *wrappers.BoolValue { + if m != nil { + return m.UseProxyProto + } + return nil +} + +func (m *FilterChain) GetMetadata() *v3.Metadata { + if m != nil { + return m.Metadata + } + return nil +} + +func (m *FilterChain) GetTransportSocket() *v3.TransportSocket { + if m != nil { + return m.TransportSocket + } + return nil +} + +func (m *FilterChain) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type ListenerFilterChainMatchPredicate struct { + // Types that are valid to be assigned to Rule: + // *ListenerFilterChainMatchPredicate_OrMatch + // *ListenerFilterChainMatchPredicate_AndMatch + // *ListenerFilterChainMatchPredicate_NotMatch + // *ListenerFilterChainMatchPredicate_AnyMatch + // *ListenerFilterChainMatchPredicate_DestinationPortRange + Rule isListenerFilterChainMatchPredicate_Rule `protobuf_oneof:"rule"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListenerFilterChainMatchPredicate) Reset() { *m = ListenerFilterChainMatchPredicate{} } +func (m *ListenerFilterChainMatchPredicate) String() string { return proto.CompactTextString(m) } +func (*ListenerFilterChainMatchPredicate) ProtoMessage() {} +func (*ListenerFilterChainMatchPredicate) Descriptor() ([]byte, []int) { + return fileDescriptor_87f255d2eccc91b5, []int{3} +} + +func (m *ListenerFilterChainMatchPredicate) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListenerFilterChainMatchPredicate.Unmarshal(m, b) +} +func (m *ListenerFilterChainMatchPredicate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListenerFilterChainMatchPredicate.Marshal(b, m, deterministic) +} +func (m *ListenerFilterChainMatchPredicate) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListenerFilterChainMatchPredicate.Merge(m, src) +} +func (m *ListenerFilterChainMatchPredicate) XXX_Size() int { + return xxx_messageInfo_ListenerFilterChainMatchPredicate.Size(m) +} +func (m *ListenerFilterChainMatchPredicate) XXX_DiscardUnknown() { + xxx_messageInfo_ListenerFilterChainMatchPredicate.DiscardUnknown(m) +} + +var xxx_messageInfo_ListenerFilterChainMatchPredicate proto.InternalMessageInfo + +type isListenerFilterChainMatchPredicate_Rule interface { + isListenerFilterChainMatchPredicate_Rule() +} + +type ListenerFilterChainMatchPredicate_OrMatch struct { + OrMatch *ListenerFilterChainMatchPredicate_MatchSet `protobuf:"bytes,1,opt,name=or_match,json=orMatch,proto3,oneof"` +} + +type ListenerFilterChainMatchPredicate_AndMatch struct { + AndMatch *ListenerFilterChainMatchPredicate_MatchSet `protobuf:"bytes,2,opt,name=and_match,json=andMatch,proto3,oneof"` +} + +type ListenerFilterChainMatchPredicate_NotMatch struct { + NotMatch *ListenerFilterChainMatchPredicate `protobuf:"bytes,3,opt,name=not_match,json=notMatch,proto3,oneof"` +} + +type ListenerFilterChainMatchPredicate_AnyMatch struct { + AnyMatch bool `protobuf:"varint,4,opt,name=any_match,json=anyMatch,proto3,oneof"` +} + +type ListenerFilterChainMatchPredicate_DestinationPortRange struct { + DestinationPortRange *v32.Int32Range `protobuf:"bytes,5,opt,name=destination_port_range,json=destinationPortRange,proto3,oneof"` +} + +func (*ListenerFilterChainMatchPredicate_OrMatch) isListenerFilterChainMatchPredicate_Rule() {} + +func (*ListenerFilterChainMatchPredicate_AndMatch) isListenerFilterChainMatchPredicate_Rule() {} + +func (*ListenerFilterChainMatchPredicate_NotMatch) isListenerFilterChainMatchPredicate_Rule() {} + +func (*ListenerFilterChainMatchPredicate_AnyMatch) isListenerFilterChainMatchPredicate_Rule() {} + +func (*ListenerFilterChainMatchPredicate_DestinationPortRange) isListenerFilterChainMatchPredicate_Rule() { +} + +func (m *ListenerFilterChainMatchPredicate) GetRule() isListenerFilterChainMatchPredicate_Rule { + if m != nil { + return m.Rule + } + return nil +} + +func (m *ListenerFilterChainMatchPredicate) GetOrMatch() *ListenerFilterChainMatchPredicate_MatchSet { + if x, ok := m.GetRule().(*ListenerFilterChainMatchPredicate_OrMatch); ok { + return x.OrMatch + } + return nil +} + +func (m *ListenerFilterChainMatchPredicate) GetAndMatch() *ListenerFilterChainMatchPredicate_MatchSet { + if x, ok := m.GetRule().(*ListenerFilterChainMatchPredicate_AndMatch); ok { + return x.AndMatch + } + return nil +} + +func (m *ListenerFilterChainMatchPredicate) GetNotMatch() *ListenerFilterChainMatchPredicate { + if x, ok := m.GetRule().(*ListenerFilterChainMatchPredicate_NotMatch); ok { + return x.NotMatch + } + return nil +} + +func (m *ListenerFilterChainMatchPredicate) GetAnyMatch() bool { + if x, ok := m.GetRule().(*ListenerFilterChainMatchPredicate_AnyMatch); ok { + return x.AnyMatch + } + return false +} + +func (m *ListenerFilterChainMatchPredicate) GetDestinationPortRange() *v32.Int32Range { + if x, ok := m.GetRule().(*ListenerFilterChainMatchPredicate_DestinationPortRange); ok { + return x.DestinationPortRange + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ListenerFilterChainMatchPredicate) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ListenerFilterChainMatchPredicate_OrMatch)(nil), + (*ListenerFilterChainMatchPredicate_AndMatch)(nil), + (*ListenerFilterChainMatchPredicate_NotMatch)(nil), + (*ListenerFilterChainMatchPredicate_AnyMatch)(nil), + (*ListenerFilterChainMatchPredicate_DestinationPortRange)(nil), + } +} + +type ListenerFilterChainMatchPredicate_MatchSet struct { + Rules []*ListenerFilterChainMatchPredicate `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListenerFilterChainMatchPredicate_MatchSet) Reset() { + *m = ListenerFilterChainMatchPredicate_MatchSet{} +} +func (m *ListenerFilterChainMatchPredicate_MatchSet) String() string { + return proto.CompactTextString(m) +} +func (*ListenerFilterChainMatchPredicate_MatchSet) ProtoMessage() {} +func (*ListenerFilterChainMatchPredicate_MatchSet) Descriptor() ([]byte, []int) { + return fileDescriptor_87f255d2eccc91b5, []int{3, 0} +} + +func (m *ListenerFilterChainMatchPredicate_MatchSet) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListenerFilterChainMatchPredicate_MatchSet.Unmarshal(m, b) +} +func (m *ListenerFilterChainMatchPredicate_MatchSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListenerFilterChainMatchPredicate_MatchSet.Marshal(b, m, deterministic) +} +func (m *ListenerFilterChainMatchPredicate_MatchSet) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListenerFilterChainMatchPredicate_MatchSet.Merge(m, src) +} +func (m *ListenerFilterChainMatchPredicate_MatchSet) XXX_Size() int { + return xxx_messageInfo_ListenerFilterChainMatchPredicate_MatchSet.Size(m) +} +func (m *ListenerFilterChainMatchPredicate_MatchSet) XXX_DiscardUnknown() { + xxx_messageInfo_ListenerFilterChainMatchPredicate_MatchSet.DiscardUnknown(m) +} + +var xxx_messageInfo_ListenerFilterChainMatchPredicate_MatchSet proto.InternalMessageInfo + +func (m *ListenerFilterChainMatchPredicate_MatchSet) GetRules() []*ListenerFilterChainMatchPredicate { + if m != nil { + return m.Rules + } + return nil +} + +type ListenerFilter struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Types that are valid to be assigned to ConfigType: + // *ListenerFilter_HiddenEnvoyDeprecatedConfig + // *ListenerFilter_TypedConfig + ConfigType isListenerFilter_ConfigType `protobuf_oneof:"config_type"` + FilterDisabled *ListenerFilterChainMatchPredicate `protobuf:"bytes,4,opt,name=filter_disabled,json=filterDisabled,proto3" json:"filter_disabled,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListenerFilter) Reset() { *m = ListenerFilter{} } +func (m *ListenerFilter) String() string { return proto.CompactTextString(m) } +func (*ListenerFilter) ProtoMessage() {} +func (*ListenerFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_87f255d2eccc91b5, []int{4} +} + +func (m *ListenerFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListenerFilter.Unmarshal(m, b) +} +func (m *ListenerFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListenerFilter.Marshal(b, m, deterministic) +} +func (m *ListenerFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListenerFilter.Merge(m, src) +} +func (m *ListenerFilter) XXX_Size() int { + return xxx_messageInfo_ListenerFilter.Size(m) +} +func (m *ListenerFilter) XXX_DiscardUnknown() { + xxx_messageInfo_ListenerFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_ListenerFilter proto.InternalMessageInfo + +func (m *ListenerFilter) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type isListenerFilter_ConfigType interface { + isListenerFilter_ConfigType() +} + +type ListenerFilter_HiddenEnvoyDeprecatedConfig struct { + HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"` +} + +type ListenerFilter_TypedConfig struct { + TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"` +} + +func (*ListenerFilter_HiddenEnvoyDeprecatedConfig) isListenerFilter_ConfigType() {} + +func (*ListenerFilter_TypedConfig) isListenerFilter_ConfigType() {} + +func (m *ListenerFilter) GetConfigType() isListenerFilter_ConfigType { + if m != nil { + return m.ConfigType + } + return nil +} + +// Deprecated: Do not use. +func (m *ListenerFilter) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct { + if x, ok := m.GetConfigType().(*ListenerFilter_HiddenEnvoyDeprecatedConfig); ok { + return x.HiddenEnvoyDeprecatedConfig + } + return nil +} + +func (m *ListenerFilter) GetTypedConfig() *any.Any { + if x, ok := m.GetConfigType().(*ListenerFilter_TypedConfig); ok { + return x.TypedConfig + } + return nil +} + +func (m *ListenerFilter) GetFilterDisabled() *ListenerFilterChainMatchPredicate { + if m != nil { + return m.FilterDisabled + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ListenerFilter) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ListenerFilter_HiddenEnvoyDeprecatedConfig)(nil), + (*ListenerFilter_TypedConfig)(nil), + } +} + +func init() { + proto.RegisterEnum("envoy.config.listener.v3.FilterChainMatch_ConnectionSourceType", FilterChainMatch_ConnectionSourceType_name, FilterChainMatch_ConnectionSourceType_value) + proto.RegisterType((*Filter)(nil), "envoy.config.listener.v3.Filter") + proto.RegisterType((*FilterChainMatch)(nil), "envoy.config.listener.v3.FilterChainMatch") + proto.RegisterType((*FilterChain)(nil), "envoy.config.listener.v3.FilterChain") + proto.RegisterType((*ListenerFilterChainMatchPredicate)(nil), "envoy.config.listener.v3.ListenerFilterChainMatchPredicate") + proto.RegisterType((*ListenerFilterChainMatchPredicate_MatchSet)(nil), "envoy.config.listener.v3.ListenerFilterChainMatchPredicate.MatchSet") + proto.RegisterType((*ListenerFilter)(nil), "envoy.config.listener.v3.ListenerFilter") +} + +func init() { + proto.RegisterFile("envoy/config/listener/v3/listener_components.proto", fileDescriptor_87f255d2eccc91b5) +} + +var fileDescriptor_87f255d2eccc91b5 = []byte{ + // 1238 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0xcf, 0x6f, 0x1b, 0x45, + 0x14, 0xce, 0xda, 0x8e, 0xb3, 0x1e, 0xe7, 0x87, 0x19, 0x02, 0xd9, 0xa6, 0x25, 0x75, 0x5c, 0x1a, + 0x59, 0x45, 0x5d, 0x4b, 0x36, 0x12, 0xaa, 0x2b, 0x01, 0x59, 0x27, 0x25, 0x6d, 0xd3, 0xd6, 0xdd, + 0x04, 0x54, 0xe0, 0xb0, 0x9a, 0xec, 0x8e, 0xd3, 0x2d, 0x9b, 0x99, 0xd5, 0xcc, 0xd8, 0x8d, 0x6f, + 0x88, 0x13, 0xe2, 0x46, 0x8f, 0xfc, 0x15, 0x9c, 0x39, 0x22, 0x21, 0xb8, 0xf2, 0x8f, 0x70, 0x46, + 0x39, 0x50, 0x34, 0x3f, 0xd6, 0x49, 0x9c, 0x84, 0x44, 0x84, 0x03, 0x37, 0xcf, 0xbc, 0xf7, 0xbe, + 0x79, 0xef, 0xcd, 0xf7, 0xbe, 0x59, 0x83, 0x26, 0x26, 0x03, 0x3a, 0x6c, 0x84, 0x94, 0xf4, 0xe2, + 0xdd, 0x46, 0x12, 0x73, 0x81, 0x09, 0x66, 0x8d, 0x41, 0x6b, 0xf4, 0x3b, 0x08, 0xe9, 0x5e, 0x4a, + 0x09, 0x26, 0x82, 0xbb, 0x29, 0xa3, 0x82, 0x42, 0x47, 0xc5, 0xb8, 0x3a, 0xc6, 0xcd, 0xfc, 0xdc, + 0x41, 0x6b, 0xb1, 0x76, 0x0c, 0x2d, 0xa4, 0x0c, 0x4b, 0x24, 0x14, 0x45, 0x0c, 0x73, 0x13, 0xbd, + 0x78, 0xfd, 0x54, 0x9f, 0x1d, 0xc4, 0xb1, 0x71, 0x78, 0x5f, 0x3b, 0xe0, 0x7d, 0x81, 0x09, 0x8f, + 0x29, 0xe1, 0x0d, 0xc1, 0x10, 0xe1, 0x29, 0x65, 0x22, 0xe0, 0x34, 0xfc, 0x0a, 0x0b, 0xde, 0x10, + 0x09, 0x97, 0x51, 0x21, 0x66, 0xc2, 0x44, 0x5d, 0xd1, 0x51, 0x62, 0x98, 0x2a, 0x3c, 0x86, 0xc8, + 0x6e, 0x06, 0x78, 0x65, 0x97, 0xd2, 0xdd, 0x04, 0x37, 0xd4, 0x6a, 0xa7, 0xdf, 0x6b, 0x20, 0x32, + 0x34, 0xa6, 0x6b, 0xe3, 0x26, 0x2e, 0x58, 0x3f, 0xcc, 0x30, 0x97, 0xc6, 0xad, 0x2f, 0x19, 0x4a, + 0x53, 0xcc, 0xb2, 0x52, 0xde, 0xe9, 0x47, 0x29, 0x6a, 0x20, 0x42, 0xa8, 0x40, 0x42, 0x65, 0xca, + 0x05, 0x12, 0xfd, 0xcc, 0xbc, 0x7c, 0xc2, 0x3c, 0xc0, 0x4c, 0x56, 0x14, 0x93, 0x5d, 0xe3, 0xb2, + 0x30, 0x40, 0x49, 0x1c, 0x21, 0x81, 0x1b, 0xd9, 0x0f, 0x6d, 0xa8, 0xfd, 0x65, 0x81, 0xe2, 0xbd, + 0x38, 0x11, 0x98, 0xc1, 0xab, 0xa0, 0x40, 0xd0, 0x1e, 0x76, 0xac, 0xaa, 0x55, 0x2f, 0x79, 0x53, + 0x07, 0x5e, 0x81, 0xe5, 0xaa, 0x96, 0xaf, 0x36, 0xe1, 0x0e, 0x58, 0x7a, 0x1e, 0x47, 0x11, 0x26, + 0x81, 0xaa, 0x3f, 0x88, 0x70, 0xca, 0x70, 0x88, 0x04, 0x8e, 0x02, 0xdd, 0x61, 0x27, 0x57, 0xb5, + 0xea, 0xe5, 0xe6, 0x82, 0xab, 0x6b, 0x71, 0xb3, 0x5a, 0xdc, 0x2d, 0x55, 0xa9, 0x97, 0x73, 0xac, + 0x8d, 0x09, 0xff, 0xaa, 0x06, 0x59, 0x97, 0x18, 0x6b, 0x23, 0x88, 0x8e, 0x42, 0x80, 0x77, 0xc0, + 0xb4, 0x6c, 0xeb, 0x08, 0xb1, 0xa0, 0x10, 0xe7, 0x4f, 0x20, 0xae, 0x92, 0xe1, 0xc6, 0x84, 0x5f, + 0x56, 0xbe, 0x3a, 0xb4, 0x7d, 0xe3, 0x87, 0x5f, 0xbe, 0x5d, 0x5a, 0x02, 0xd7, 0x34, 0x63, 0x50, + 0x1a, 0xbb, 0x83, 0xe6, 0x21, 0x63, 0x74, 0x81, 0xde, 0x0c, 0x28, 0x6b, 0xe4, 0x40, 0x86, 0x3e, + 0x28, 0xd8, 0xf9, 0x4a, 0xa1, 0xf6, 0x5d, 0x11, 0x54, 0xb4, 0xbd, 0xf3, 0x1c, 0xc5, 0xe4, 0x11, + 0x12, 0xe1, 0x73, 0xb8, 0x0d, 0x2a, 0x11, 0xe6, 0x22, 0x26, 0xaa, 0x9f, 0x81, 0xa4, 0x84, 0x63, + 0xab, 0x6c, 0xae, 0x9d, 0xc8, 0xe6, 0xd3, 0xfb, 0x44, 0xb4, 0x9a, 0x9f, 0xa1, 0xa4, 0x8f, 0xbd, + 0xf2, 0x81, 0x67, 0xdf, 0x2a, 0x3a, 0xaf, 0x5f, 0xe7, 0xeb, 0x96, 0x3f, 0x77, 0x04, 0xa2, 0x4b, + 0x99, 0x80, 0x6b, 0x60, 0x26, 0x65, 0xb8, 0x17, 0xef, 0x07, 0x8a, 0x35, 0xdc, 0xc9, 0x57, 0xf3, + 0xf5, 0x72, 0xf3, 0xba, 0x7b, 0x8c, 0xe7, 0x92, 0xa9, 0xee, 0xa0, 0xe5, 0x76, 0xe2, 0x88, 0xf9, + 0xd2, 0xcf, 0x9f, 0xd6, 0x51, 0x6a, 0xc1, 0xe1, 0x4d, 0x30, 0x6b, 0x88, 0x1e, 0xf0, 0x7e, 0xaf, + 0x17, 0xef, 0xab, 0x3e, 0x95, 0xfc, 0x19, 0xb3, 0xbb, 0xa5, 0x36, 0xe1, 0x5d, 0x00, 0xb4, 0x39, + 0x48, 0x30, 0x71, 0x26, 0xcf, 0x4f, 0xde, 0x2f, 0x69, 0xff, 0x4d, 0x4c, 0xe0, 0x0b, 0x50, 0xe6, + 0xb4, 0xcf, 0x42, 0xac, 0x3a, 0xe5, 0x4c, 0x57, 0xad, 0xfa, 0x6c, 0xf3, 0x23, 0xf7, 0xac, 0x79, + 0x74, 0xc7, 0x1b, 0xe8, 0x76, 0x28, 0x21, 0x38, 0x94, 0x95, 0x6f, 0x29, 0x9c, 0xed, 0x61, 0x8a, + 0x3d, 0xfb, 0xc0, 0x9b, 0xfc, 0xc6, 0xca, 0x55, 0x2c, 0x1f, 0xf0, 0xd1, 0x2e, 0x7c, 0x0a, 0xe6, + 0xcd, 0x59, 0xc7, 0x9b, 0x53, 0xbc, 0x58, 0x73, 0xa0, 0x0e, 0xee, 0x1e, 0x6d, 0x51, 0x0b, 0x4c, + 0x67, 0x90, 0x94, 0x09, 0xee, 0x4c, 0x55, 0xf3, 0xf5, 0x19, 0xaf, 0x72, 0xe0, 0xcd, 0xbc, 0xb2, + 0x40, 0xed, 0xf0, 0x86, 0x4c, 0x91, 0xf2, 0x72, 0x38, 0x5c, 0x06, 0xd3, 0x1c, 0xb3, 0x01, 0x66, + 0x81, 0x24, 0x3c, 0x77, 0xca, 0xd5, 0x7c, 0xbd, 0xe4, 0x97, 0xf5, 0xde, 0x63, 0xb9, 0x05, 0x6f, + 0x03, 0x78, 0x28, 0x11, 0xaa, 0x87, 0x21, 0x4d, 0x9c, 0x92, 0x6a, 0xff, 0x1b, 0x23, 0x4b, 0xd7, + 0x18, 0x60, 0x0b, 0xbc, 0x85, 0xd2, 0x34, 0x89, 0x43, 0xc3, 0x22, 0xb3, 0xcf, 0x1d, 0xa0, 0xa0, + 0xe7, 0x8f, 0x18, 0xb3, 0x18, 0x5e, 0xbb, 0x07, 0xe6, 0x4f, 0x6b, 0x1e, 0x9c, 0x02, 0xf9, 0xd5, + 0xc7, 0x9f, 0x57, 0x26, 0xe0, 0x02, 0x78, 0x73, 0x6b, 0xf5, 0xd1, 0x7a, 0x70, 0xbf, 0x1b, 0x3c, + 0xf1, 0x83, 0xcd, 0x27, 0x4f, 0xba, 0xde, 0x6a, 0xe7, 0x61, 0xc5, 0x82, 0xd3, 0xc0, 0x5e, 0x7f, + 0xb6, 0xbd, 0xee, 0x3f, 0x5e, 0xdd, 0xac, 0xe4, 0xda, 0xb7, 0xe5, 0x44, 0xd4, 0xc1, 0xca, 0x3f, + 0x4d, 0xc4, 0xe1, 0x85, 0x3d, 0x28, 0xd8, 0x56, 0x25, 0x57, 0xfb, 0xb5, 0x00, 0xca, 0x47, 0x4c, + 0xf0, 0x19, 0x80, 0x3d, 0xb5, 0x0c, 0x42, 0xb9, 0x0e, 0xf6, 0xa4, 0xaf, 0x12, 0x88, 0x72, 0xf3, + 0xd6, 0xc5, 0xe9, 0xe0, 0x57, 0x7a, 0xe3, 0x13, 0xf6, 0xbd, 0x05, 0x6e, 0x9c, 0x25, 0x28, 0x22, + 0xe1, 0x52, 0x02, 0x04, 0xde, 0x17, 0x46, 0x55, 0x32, 0xea, 0x1d, 0x6a, 0xb5, 0x7b, 0x42, 0xab, + 0x5d, 0x91, 0x70, 0x79, 0xf8, 0x1a, 0x7d, 0x49, 0xb8, 0x60, 0x18, 0xed, 0x6d, 0x27, 0xbc, 0xa3, + 0x61, 0xa4, 0xfa, 0xf8, 0xd7, 0x4f, 0xd5, 0x9e, 0x43, 0x27, 0xd8, 0x06, 0x53, 0x3a, 0xcf, 0x6c, + 0x32, 0xab, 0xe7, 0x95, 0xe8, 0x67, 0x01, 0xd0, 0x03, 0x73, 0x7d, 0x2e, 0x29, 0x4c, 0xf7, 0x87, + 0xfa, 0xa6, 0x8d, 0x7c, 0x2d, 0x9e, 0x98, 0x39, 0x8f, 0xd2, 0x44, 0x4f, 0xdc, 0x4c, 0x9f, 0xe3, + 0xae, 0x8c, 0x50, 0xd7, 0x0f, 0xdb, 0xc0, 0xde, 0xc3, 0x02, 0x45, 0x48, 0x20, 0x33, 0xb0, 0x4b, + 0xa7, 0xb3, 0xff, 0x91, 0xf1, 0xf2, 0x47, 0xfe, 0xb0, 0x0b, 0x2a, 0xe3, 0x1d, 0x71, 0x8a, 0x0a, + 0xe3, 0xe6, 0xe9, 0x18, 0xdb, 0x99, 0xf7, 0x96, 0x72, 0xf6, 0xe7, 0xc4, 0xf1, 0x0d, 0x08, 0xcd, + 0x73, 0x30, 0xa5, 0xe8, 0xad, 0x7e, 0xb7, 0xeb, 0x92, 0x54, 0x37, 0xc0, 0xf2, 0xb9, 0xa4, 0xaa, + 0xfd, 0x3c, 0x09, 0x96, 0x37, 0x8d, 0x61, 0x9c, 0x0e, 0x5d, 0x86, 0x23, 0xc9, 0x7b, 0x0c, 0x11, + 0xb0, 0x29, 0x3b, 0xc6, 0xaa, 0xb5, 0xb3, 0x5b, 0x7e, 0x2e, 0x9c, 0xab, 0x96, 0x5b, 0x58, 0x6c, + 0x4c, 0xf8, 0x53, 0x94, 0x69, 0xa2, 0x85, 0xa0, 0x84, 0x48, 0x64, 0xce, 0xc8, 0xfd, 0xa7, 0x67, + 0xd8, 0x88, 0x44, 0xfa, 0x90, 0x2f, 0x40, 0x89, 0x50, 0x61, 0x0e, 0xc9, 0xab, 0x43, 0xee, 0x5e, + 0xe2, 0x10, 0x89, 0x4d, 0xa8, 0xd0, 0xd8, 0x2b, 0xb2, 0x80, 0xa1, 0xc1, 0x96, 0x9c, 0xb2, 0xd5, + 0xdb, 0xfc, 0x22, 0x67, 0x5b, 0x3a, 0x87, 0xa1, 0xf6, 0x7b, 0x0a, 0xde, 0x1e, 0x7f, 0xb3, 0xb4, + 0x94, 0x1a, 0x2e, 0x5d, 0x31, 0x09, 0x49, 0x45, 0x97, 0x59, 0x28, 0xe5, 0x57, 0x82, 0xb9, 0x31, + 0xe1, 0xcf, 0x8f, 0xbd, 0x55, 0x6a, 0x7f, 0xf1, 0x47, 0x0b, 0xd8, 0x59, 0xbd, 0xf0, 0x4b, 0x30, + 0xc9, 0xfa, 0x09, 0xe6, 0x8e, 0xa5, 0x66, 0xe3, 0x32, 0xf5, 0xa9, 0x97, 0xe0, 0x95, 0x95, 0xb3, + 0x73, 0xbe, 0xc6, 0x6c, 0x7f, 0x22, 0x89, 0xe5, 0x81, 0x8f, 0x4f, 0x27, 0xd6, 0xc5, 0x6f, 0xa5, + 0xfd, 0xa1, 0x04, 0xba, 0x03, 0x3e, 0xf8, 0x97, 0x40, 0x5e, 0x19, 0x14, 0x64, 0x46, 0x30, 0xff, + 0xa7, 0x67, 0xd5, 0xfe, 0xc8, 0x81, 0xd9, 0xe3, 0x21, 0xff, 0xbf, 0x8f, 0xa4, 0xfc, 0x85, 0x3f, + 0x92, 0x60, 0x04, 0xe6, 0x8c, 0x9a, 0x47, 0x31, 0x47, 0x3b, 0x09, 0x8e, 0x8c, 0x46, 0x5d, 0xe6, + 0x2e, 0xfd, 0x59, 0x8d, 0xb9, 0x66, 0x20, 0xdb, 0xef, 0xc9, 0x1b, 0x58, 0x01, 0xef, 0x5e, 0xe4, + 0x06, 0xc6, 0x3e, 0xc9, 0xbc, 0x87, 0x3f, 0x7d, 0xfd, 0xdb, 0xef, 0xc5, 0x5c, 0x25, 0x07, 0x56, + 0x62, 0xaa, 0x93, 0x52, 0x8a, 0x7a, 0x66, 0x7e, 0xde, 0x42, 0x06, 0xd8, 0x19, 0xfd, 0x7b, 0x50, + 0x62, 0xda, 0xb5, 0x76, 0x8a, 0xaa, 0x17, 0xad, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x07, 0xd7, + 0xa6, 0xe1, 0x7b, 0x0c, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/listener_components.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/listener_components.pb.validate.go new file mode 100644 index 000000000..56cb2a232 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/listener_components.pb.validate.go @@ -0,0 +1,742 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/listener/v3/listener_components.proto + +package envoy_config_listener_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _listener_components_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on Filter with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Filter) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return FilterValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + switch m.ConfigType.(type) { + + case *Filter_HiddenEnvoyDeprecatedConfig: + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return FilterValidationError{ + field: "HiddenEnvoyDeprecatedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Filter_TypedConfig: + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return FilterValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// FilterValidationError is the validation error returned by Filter.Validate if +// the designated constraints aren't met. +type FilterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e FilterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e FilterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e FilterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e FilterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e FilterValidationError) ErrorName() string { return "FilterValidationError" } + +// Error satisfies the builtin error interface +func (e FilterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sFilter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = FilterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = FilterValidationError{} + +// Validate checks the field values on FilterChainMatch with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *FilterChainMatch) Validate() error { + if m == nil { + return nil + } + + if wrapper := m.GetDestinationPort(); wrapper != nil { + + if val := wrapper.GetValue(); val < 1 || val > 65535 { + return FilterChainMatchValidationError{ + field: "DestinationPort", + reason: "value must be inside range [1, 65535]", + } + } + + } + + for idx, item := range m.GetPrefixRanges() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return FilterChainMatchValidationError{ + field: fmt.Sprintf("PrefixRanges[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for AddressSuffix + + if v, ok := interface{}(m.GetSuffixLen()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return FilterChainMatchValidationError{ + field: "SuffixLen", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if _, ok := FilterChainMatch_ConnectionSourceType_name[int32(m.GetSourceType())]; !ok { + return FilterChainMatchValidationError{ + field: "SourceType", + reason: "value must be one of the defined enum values", + } + } + + for idx, item := range m.GetSourcePrefixRanges() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return FilterChainMatchValidationError{ + field: fmt.Sprintf("SourcePrefixRanges[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for idx, item := range m.GetSourcePorts() { + _, _ = idx, item + + if val := item; val < 1 || val > 65535 { + return FilterChainMatchValidationError{ + field: fmt.Sprintf("SourcePorts[%v]", idx), + reason: "value must be inside range [1, 65535]", + } + } + + } + + // no validation rules for TransportProtocol + + return nil +} + +// FilterChainMatchValidationError is the validation error returned by +// FilterChainMatch.Validate if the designated constraints aren't met. +type FilterChainMatchValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e FilterChainMatchValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e FilterChainMatchValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e FilterChainMatchValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e FilterChainMatchValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e FilterChainMatchValidationError) ErrorName() string { return "FilterChainMatchValidationError" } + +// Error satisfies the builtin error interface +func (e FilterChainMatchValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sFilterChainMatch.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = FilterChainMatchValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = FilterChainMatchValidationError{} + +// Validate checks the field values on FilterChain with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *FilterChain) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetFilterChainMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return FilterChainValidationError{ + field: "FilterChainMatch", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedTlsContext()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return FilterChainValidationError{ + field: "HiddenEnvoyDeprecatedTlsContext", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetFilters() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return FilterChainValidationError{ + field: fmt.Sprintf("Filters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetUseProxyProto()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return FilterChainValidationError{ + field: "UseProxyProto", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return FilterChainValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetTransportSocket()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return FilterChainValidationError{ + field: "TransportSocket", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for Name + + return nil +} + +// FilterChainValidationError is the validation error returned by +// FilterChain.Validate if the designated constraints aren't met. +type FilterChainValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e FilterChainValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e FilterChainValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e FilterChainValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e FilterChainValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e FilterChainValidationError) ErrorName() string { return "FilterChainValidationError" } + +// Error satisfies the builtin error interface +func (e FilterChainValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sFilterChain.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = FilterChainValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = FilterChainValidationError{} + +// Validate checks the field values on ListenerFilterChainMatchPredicate with +// the rules defined in the proto definition for this message. If any rules +// are violated, an error is returned. +func (m *ListenerFilterChainMatchPredicate) Validate() error { + if m == nil { + return nil + } + + switch m.Rule.(type) { + + case *ListenerFilterChainMatchPredicate_OrMatch: + + if v, ok := interface{}(m.GetOrMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerFilterChainMatchPredicateValidationError{ + field: "OrMatch", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ListenerFilterChainMatchPredicate_AndMatch: + + if v, ok := interface{}(m.GetAndMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerFilterChainMatchPredicateValidationError{ + field: "AndMatch", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ListenerFilterChainMatchPredicate_NotMatch: + + if v, ok := interface{}(m.GetNotMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerFilterChainMatchPredicateValidationError{ + field: "NotMatch", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ListenerFilterChainMatchPredicate_AnyMatch: + + if m.GetAnyMatch() != true { + return ListenerFilterChainMatchPredicateValidationError{ + field: "AnyMatch", + reason: "value must equal true", + } + } + + case *ListenerFilterChainMatchPredicate_DestinationPortRange: + + if v, ok := interface{}(m.GetDestinationPortRange()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerFilterChainMatchPredicateValidationError{ + field: "DestinationPortRange", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return ListenerFilterChainMatchPredicateValidationError{ + field: "Rule", + reason: "value is required", + } + + } + + return nil +} + +// ListenerFilterChainMatchPredicateValidationError is the validation error +// returned by ListenerFilterChainMatchPredicate.Validate if the designated +// constraints aren't met. +type ListenerFilterChainMatchPredicateValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListenerFilterChainMatchPredicateValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListenerFilterChainMatchPredicateValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListenerFilterChainMatchPredicateValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListenerFilterChainMatchPredicateValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListenerFilterChainMatchPredicateValidationError) ErrorName() string { + return "ListenerFilterChainMatchPredicateValidationError" +} + +// Error satisfies the builtin error interface +func (e ListenerFilterChainMatchPredicateValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListenerFilterChainMatchPredicate.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListenerFilterChainMatchPredicateValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListenerFilterChainMatchPredicateValidationError{} + +// Validate checks the field values on ListenerFilter with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *ListenerFilter) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return ListenerFilterValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + if v, ok := interface{}(m.GetFilterDisabled()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerFilterValidationError{ + field: "FilterDisabled", + reason: "embedded message failed validation", + cause: err, + } + } + } + + switch m.ConfigType.(type) { + + case *ListenerFilter_HiddenEnvoyDeprecatedConfig: + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerFilterValidationError{ + field: "HiddenEnvoyDeprecatedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ListenerFilter_TypedConfig: + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerFilterValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// ListenerFilterValidationError is the validation error returned by +// ListenerFilter.Validate if the designated constraints aren't met. +type ListenerFilterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListenerFilterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListenerFilterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListenerFilterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListenerFilterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListenerFilterValidationError) ErrorName() string { return "ListenerFilterValidationError" } + +// Error satisfies the builtin error interface +func (e ListenerFilterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListenerFilter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListenerFilterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListenerFilterValidationError{} + +// Validate checks the field values on +// ListenerFilterChainMatchPredicate_MatchSet with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *ListenerFilterChainMatchPredicate_MatchSet) Validate() error { + if m == nil { + return nil + } + + if len(m.GetRules()) < 2 { + return ListenerFilterChainMatchPredicate_MatchSetValidationError{ + field: "Rules", + reason: "value must contain at least 2 item(s)", + } + } + + for idx, item := range m.GetRules() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListenerFilterChainMatchPredicate_MatchSetValidationError{ + field: fmt.Sprintf("Rules[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// ListenerFilterChainMatchPredicate_MatchSetValidationError is the validation +// error returned by ListenerFilterChainMatchPredicate_MatchSet.Validate if +// the designated constraints aren't met. +type ListenerFilterChainMatchPredicate_MatchSetValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListenerFilterChainMatchPredicate_MatchSetValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListenerFilterChainMatchPredicate_MatchSetValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListenerFilterChainMatchPredicate_MatchSetValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListenerFilterChainMatchPredicate_MatchSetValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListenerFilterChainMatchPredicate_MatchSetValidationError) ErrorName() string { + return "ListenerFilterChainMatchPredicate_MatchSetValidationError" +} + +// Error satisfies the builtin error interface +func (e ListenerFilterChainMatchPredicate_MatchSetValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListenerFilterChainMatchPredicate_MatchSet.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListenerFilterChainMatchPredicate_MatchSetValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListenerFilterChainMatchPredicate_MatchSetValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/quic_config.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/quic_config.pb.go new file mode 100644 index 000000000..cf949cad8 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/quic_config.pb.go @@ -0,0 +1,113 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/listener/v3/quic_config.proto + +package envoy_config_listener_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + proto "github.com/golang/protobuf/proto" + duration "github.com/golang/protobuf/ptypes/duration" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type QuicProtocolOptions struct { + MaxConcurrentStreams *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=max_concurrent_streams,json=maxConcurrentStreams,proto3" json:"max_concurrent_streams,omitempty"` + IdleTimeout *duration.Duration `protobuf:"bytes,2,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"` + CryptoHandshakeTimeout *duration.Duration `protobuf:"bytes,3,opt,name=crypto_handshake_timeout,json=cryptoHandshakeTimeout,proto3" json:"crypto_handshake_timeout,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *QuicProtocolOptions) Reset() { *m = QuicProtocolOptions{} } +func (m *QuicProtocolOptions) String() string { return proto.CompactTextString(m) } +func (*QuicProtocolOptions) ProtoMessage() {} +func (*QuicProtocolOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_a504aa24c2bbc7cf, []int{0} +} + +func (m *QuicProtocolOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_QuicProtocolOptions.Unmarshal(m, b) +} +func (m *QuicProtocolOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_QuicProtocolOptions.Marshal(b, m, deterministic) +} +func (m *QuicProtocolOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_QuicProtocolOptions.Merge(m, src) +} +func (m *QuicProtocolOptions) XXX_Size() int { + return xxx_messageInfo_QuicProtocolOptions.Size(m) +} +func (m *QuicProtocolOptions) XXX_DiscardUnknown() { + xxx_messageInfo_QuicProtocolOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_QuicProtocolOptions proto.InternalMessageInfo + +func (m *QuicProtocolOptions) GetMaxConcurrentStreams() *wrappers.UInt32Value { + if m != nil { + return m.MaxConcurrentStreams + } + return nil +} + +func (m *QuicProtocolOptions) GetIdleTimeout() *duration.Duration { + if m != nil { + return m.IdleTimeout + } + return nil +} + +func (m *QuicProtocolOptions) GetCryptoHandshakeTimeout() *duration.Duration { + if m != nil { + return m.CryptoHandshakeTimeout + } + return nil +} + +func init() { + proto.RegisterType((*QuicProtocolOptions)(nil), "envoy.config.listener.v3.QuicProtocolOptions") +} + +func init() { + proto.RegisterFile("envoy/config/listener/v3/quic_config.proto", fileDescriptor_a504aa24c2bbc7cf) +} + +var fileDescriptor_a504aa24c2bbc7cf = []byte{ + // 351 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x91, 0xbd, 0x4e, 0xe3, 0x40, + 0x14, 0x85, 0x15, 0xaf, 0x94, 0xc2, 0x59, 0x69, 0x57, 0xde, 0x55, 0x64, 0x10, 0x44, 0x40, 0x81, + 0xf8, 0x91, 0x66, 0x50, 0xdc, 0x21, 0xaa, 0x84, 0x02, 0x2a, 0x42, 0x02, 0xb4, 0xd6, 0xc4, 0x9e, + 0x24, 0x23, 0xec, 0xb9, 0xc3, 0xfc, 0x98, 0xa4, 0xa3, 0xe4, 0x19, 0x78, 0x08, 0x1e, 0x80, 0x1e, + 0x89, 0x96, 0x37, 0x42, 0x9e, 0xb1, 0x49, 0x11, 0x10, 0xe5, 0xdc, 0x73, 0xce, 0xa7, 0x33, 0xf7, + 0xfa, 0x07, 0x94, 0x17, 0xb0, 0xc0, 0x09, 0xf0, 0x09, 0x9b, 0xe2, 0x8c, 0x29, 0x4d, 0x39, 0x95, + 0xb8, 0x88, 0xf0, 0x9d, 0x61, 0x49, 0xec, 0xe6, 0x48, 0x48, 0xd0, 0x10, 0x84, 0xd6, 0x8b, 0xaa, + 0x59, 0xed, 0x45, 0x45, 0xb4, 0xde, 0x99, 0x02, 0x4c, 0x33, 0x8a, 0xad, 0x6f, 0x6c, 0x26, 0x38, + 0x35, 0x92, 0x68, 0x06, 0xdc, 0x25, 0x57, 0xf5, 0x7b, 0x49, 0x84, 0xa0, 0x52, 0x55, 0xfa, 0xa6, + 0x49, 0x05, 0xc1, 0x84, 0x73, 0xd0, 0x36, 0xa6, 0xb0, 0xd2, 0x44, 0x9b, 0x5a, 0xde, 0x5e, 0x91, + 0x0b, 0x2a, 0x15, 0x03, 0xce, 0x78, 0xd5, 0x6d, 0xe7, 0xd9, 0xf3, 0xff, 0x5d, 0x1a, 0x96, 0x0c, + 0xca, 0x57, 0x02, 0xd9, 0x85, 0xb0, 0xc6, 0x60, 0xe8, 0xb7, 0x73, 0x32, 0x2f, 0xff, 0x91, 0x18, + 0x29, 0x29, 0xd7, 0xb1, 0xd2, 0x92, 0x92, 0x5c, 0x85, 0x8d, 0xad, 0xc6, 0x5e, 0xab, 0xbb, 0x81, + 0x5c, 0x35, 0x54, 0x57, 0x43, 0xd7, 0xe7, 0x5c, 0x47, 0xdd, 0x1b, 0x92, 0x19, 0x3a, 0xfc, 0x9f, + 0x93, 0x79, 0xff, 0x33, 0x3a, 0x72, 0xc9, 0xe0, 0xc4, 0xff, 0xcd, 0xd2, 0x8c, 0xc6, 0x9a, 0xe5, + 0x14, 0x8c, 0x0e, 0x3d, 0x4b, 0x5a, 0x5b, 0x21, 0x9d, 0x56, 0x4b, 0x18, 0xb6, 0x4a, 0xfb, 0x95, + 0x73, 0x07, 0x23, 0x3f, 0x4c, 0xe4, 0x42, 0x68, 0x88, 0x67, 0x84, 0xa7, 0x6a, 0x46, 0x6e, 0x97, + 0xa4, 0x5f, 0x3f, 0x91, 0xda, 0x2e, 0x7a, 0x56, 0x27, 0x2b, 0xe8, 0xf1, 0xd1, 0xd3, 0xeb, 0x63, + 0xe7, 0xd0, 0xdf, 0x77, 0x17, 0x22, 0x82, 0xa1, 0xa2, 0xbb, 0xbc, 0xd0, 0x17, 0x8b, 0xe9, 0xf5, + 0x5f, 0x1e, 0xde, 0xde, 0x9b, 0xde, 0x5f, 0xcf, 0xdf, 0x65, 0x80, 0x6c, 0x4e, 0x48, 0x98, 0x2f, + 0xd0, 0x77, 0x47, 0xee, 0xfd, 0x29, 0x31, 0x7d, 0x3b, 0xb7, 0xb0, 0x41, 0x63, 0xdc, 0xb4, 0x0d, + 0xa3, 0x8f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd6, 0x8d, 0x45, 0x6f, 0x46, 0x02, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/quic_config.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/quic_config.pb.validate.go new file mode 100644 index 000000000..9fa500489 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/quic_config.pb.validate.go @@ -0,0 +1,134 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/listener/v3/quic_config.proto + +package envoy_config_listener_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _quic_config_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on QuicProtocolOptions with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *QuicProtocolOptions) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetMaxConcurrentStreams()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return QuicProtocolOptionsValidationError{ + field: "MaxConcurrentStreams", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetIdleTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return QuicProtocolOptionsValidationError{ + field: "IdleTimeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetCryptoHandshakeTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return QuicProtocolOptionsValidationError{ + field: "CryptoHandshakeTimeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// QuicProtocolOptionsValidationError is the validation error returned by +// QuicProtocolOptions.Validate if the designated constraints aren't met. +type QuicProtocolOptionsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e QuicProtocolOptionsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e QuicProtocolOptionsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e QuicProtocolOptionsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e QuicProtocolOptionsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e QuicProtocolOptionsValidationError) ErrorName() string { + return "QuicProtocolOptionsValidationError" +} + +// Error satisfies the builtin error interface +func (e QuicProtocolOptionsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sQuicProtocolOptions.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = QuicProtocolOptionsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = QuicProtocolOptionsValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/udp_listener_config.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/udp_listener_config.pb.go new file mode 100644 index 000000000..1636ce6d8 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/udp_listener_config.pb.go @@ -0,0 +1,180 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/listener/v3/udp_listener_config.proto + +package envoy_config_listener_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + proto "github.com/golang/protobuf/proto" + any "github.com/golang/protobuf/ptypes/any" + _struct "github.com/golang/protobuf/ptypes/struct" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type UdpListenerConfig struct { + UdpListenerName string `protobuf:"bytes,1,opt,name=udp_listener_name,json=udpListenerName,proto3" json:"udp_listener_name,omitempty"` + // Types that are valid to be assigned to ConfigType: + // *UdpListenerConfig_HiddenEnvoyDeprecatedConfig + // *UdpListenerConfig_TypedConfig + ConfigType isUdpListenerConfig_ConfigType `protobuf_oneof:"config_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UdpListenerConfig) Reset() { *m = UdpListenerConfig{} } +func (m *UdpListenerConfig) String() string { return proto.CompactTextString(m) } +func (*UdpListenerConfig) ProtoMessage() {} +func (*UdpListenerConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_4ac914914a155255, []int{0} +} + +func (m *UdpListenerConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UdpListenerConfig.Unmarshal(m, b) +} +func (m *UdpListenerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UdpListenerConfig.Marshal(b, m, deterministic) +} +func (m *UdpListenerConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_UdpListenerConfig.Merge(m, src) +} +func (m *UdpListenerConfig) XXX_Size() int { + return xxx_messageInfo_UdpListenerConfig.Size(m) +} +func (m *UdpListenerConfig) XXX_DiscardUnknown() { + xxx_messageInfo_UdpListenerConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_UdpListenerConfig proto.InternalMessageInfo + +func (m *UdpListenerConfig) GetUdpListenerName() string { + if m != nil { + return m.UdpListenerName + } + return "" +} + +type isUdpListenerConfig_ConfigType interface { + isUdpListenerConfig_ConfigType() +} + +type UdpListenerConfig_HiddenEnvoyDeprecatedConfig struct { + HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"` +} + +type UdpListenerConfig_TypedConfig struct { + TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"` +} + +func (*UdpListenerConfig_HiddenEnvoyDeprecatedConfig) isUdpListenerConfig_ConfigType() {} + +func (*UdpListenerConfig_TypedConfig) isUdpListenerConfig_ConfigType() {} + +func (m *UdpListenerConfig) GetConfigType() isUdpListenerConfig_ConfigType { + if m != nil { + return m.ConfigType + } + return nil +} + +// Deprecated: Do not use. +func (m *UdpListenerConfig) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct { + if x, ok := m.GetConfigType().(*UdpListenerConfig_HiddenEnvoyDeprecatedConfig); ok { + return x.HiddenEnvoyDeprecatedConfig + } + return nil +} + +func (m *UdpListenerConfig) GetTypedConfig() *any.Any { + if x, ok := m.GetConfigType().(*UdpListenerConfig_TypedConfig); ok { + return x.TypedConfig + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*UdpListenerConfig) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*UdpListenerConfig_HiddenEnvoyDeprecatedConfig)(nil), + (*UdpListenerConfig_TypedConfig)(nil), + } +} + +type ActiveRawUdpListenerConfig struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ActiveRawUdpListenerConfig) Reset() { *m = ActiveRawUdpListenerConfig{} } +func (m *ActiveRawUdpListenerConfig) String() string { return proto.CompactTextString(m) } +func (*ActiveRawUdpListenerConfig) ProtoMessage() {} +func (*ActiveRawUdpListenerConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_4ac914914a155255, []int{1} +} + +func (m *ActiveRawUdpListenerConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ActiveRawUdpListenerConfig.Unmarshal(m, b) +} +func (m *ActiveRawUdpListenerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ActiveRawUdpListenerConfig.Marshal(b, m, deterministic) +} +func (m *ActiveRawUdpListenerConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_ActiveRawUdpListenerConfig.Merge(m, src) +} +func (m *ActiveRawUdpListenerConfig) XXX_Size() int { + return xxx_messageInfo_ActiveRawUdpListenerConfig.Size(m) +} +func (m *ActiveRawUdpListenerConfig) XXX_DiscardUnknown() { + xxx_messageInfo_ActiveRawUdpListenerConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_ActiveRawUdpListenerConfig proto.InternalMessageInfo + +func init() { + proto.RegisterType((*UdpListenerConfig)(nil), "envoy.config.listener.v3.UdpListenerConfig") + proto.RegisterType((*ActiveRawUdpListenerConfig)(nil), "envoy.config.listener.v3.ActiveRawUdpListenerConfig") +} + +func init() { + proto.RegisterFile("envoy/config/listener/v3/udp_listener_config.proto", fileDescriptor_4ac914914a155255) +} + +var fileDescriptor_4ac914914a155255 = []byte{ + // 366 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0x41, 0x4b, 0xc3, 0x30, + 0x18, 0x86, 0xd7, 0x0a, 0x03, 0x33, 0x45, 0x37, 0x44, 0xeb, 0xd4, 0x31, 0x77, 0xd0, 0xe9, 0x21, + 0x91, 0xee, 0x20, 0xee, 0xb6, 0xaa, 0x30, 0x44, 0x64, 0x54, 0x76, 0x2e, 0x59, 0x9b, 0xcd, 0xc0, + 0x96, 0x84, 0x36, 0xad, 0xf6, 0xe6, 0xd1, 0xdf, 0x20, 0xf8, 0x47, 0xbc, 0x0b, 0x5e, 0xfd, 0x47, + 0xd2, 0x34, 0x73, 0x68, 0xdd, 0xb1, 0xfd, 0xde, 0xf7, 0xe9, 0xf7, 0x7c, 0x14, 0xd8, 0x84, 0x25, + 0x3c, 0x45, 0x3e, 0x67, 0x63, 0x3a, 0x41, 0x53, 0x1a, 0x49, 0xc2, 0x48, 0x88, 0x92, 0x0e, 0x8a, + 0x03, 0xe1, 0xcd, 0x9f, 0xbd, 0x7c, 0x0e, 0x45, 0xc8, 0x25, 0xaf, 0x59, 0xaa, 0x03, 0xf5, 0xbb, + 0x79, 0x06, 0x26, 0x9d, 0xfa, 0xee, 0x84, 0xf3, 0xc9, 0x94, 0x20, 0x95, 0x1b, 0xc5, 0x63, 0x84, + 0x59, 0x9a, 0x97, 0xea, 0xfb, 0x7f, 0x47, 0x91, 0x0c, 0x63, 0x5f, 0xea, 0xe9, 0x41, 0x1c, 0x08, + 0x8c, 0x30, 0x63, 0x5c, 0x62, 0x49, 0x39, 0x8b, 0x50, 0x24, 0xb1, 0x8c, 0x23, 0x3d, 0x3e, 0x2c, + 0x8c, 0x13, 0x12, 0x46, 0x94, 0x33, 0xca, 0xf4, 0x52, 0xad, 0x37, 0x13, 0x54, 0x87, 0x81, 0xb8, + 0xd5, 0xdb, 0x5c, 0xaa, 0xe5, 0x6a, 0xa7, 0xa0, 0xfa, 0xcb, 0x83, 0xe1, 0x19, 0xb1, 0x8c, 0xa6, + 0xd1, 0x5e, 0x75, 0x37, 0xe2, 0x45, 0xfa, 0x0e, 0xcf, 0x48, 0x6d, 0x04, 0x1a, 0x0f, 0x34, 0x08, + 0x08, 0xf3, 0x94, 0x9f, 0x17, 0x10, 0x11, 0x12, 0x1f, 0x4b, 0x12, 0x68, 0x7d, 0xcb, 0x6c, 0x1a, + 0xed, 0x8a, 0xbd, 0x03, 0x73, 0x15, 0x38, 0x57, 0x81, 0xf7, 0x4a, 0xc5, 0x31, 0x2d, 0xa3, 0x5f, + 0x72, 0xf7, 0x72, 0xc8, 0x75, 0xc6, 0xb8, 0xfa, 0x41, 0xe8, 0x7d, 0x2e, 0xc0, 0x9a, 0x4c, 0xc5, + 0x82, 0xb8, 0xa2, 0x88, 0x5b, 0x05, 0x62, 0x8f, 0xa5, 0xfd, 0x92, 0x5b, 0x51, 0xd9, 0xbc, 0xda, + 0x85, 0xaf, 0x1f, 0x2f, 0x8d, 0x13, 0x70, 0x9c, 0x1f, 0x1f, 0x0b, 0x0a, 0x13, 0x7b, 0x71, 0xfc, + 0x82, 0xba, 0xb3, 0x0e, 0x2a, 0xf9, 0x47, 0xbc, 0x8c, 0xd2, 0x1a, 0x82, 0x7a, 0xcf, 0x97, 0x34, + 0x21, 0x2e, 0x7e, 0x2c, 0x84, 0xbb, 0xe7, 0x19, 0xdc, 0x06, 0x67, 0xff, 0xc3, 0x97, 0x17, 0x9d, + 0x9b, 0xf7, 0xe7, 0xcf, 0xaf, 0xb2, 0xb9, 0x69, 0x82, 0x23, 0xca, 0xa1, 0xaa, 0x8b, 0x90, 0x3f, + 0xa5, 0x70, 0xd9, 0x3f, 0xe2, 0x6c, 0x17, 0x20, 0x83, 0xcc, 0x7a, 0x60, 0x8c, 0xca, 0x4a, 0xbf, + 0xf3, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xee, 0xda, 0x84, 0x44, 0x94, 0x02, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/udp_listener_config.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/udp_listener_config.pb.validate.go new file mode 100644 index 000000000..cb1d5500a --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/listener/v3/udp_listener_config.pb.validate.go @@ -0,0 +1,201 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/listener/v3/udp_listener_config.proto + +package envoy_config_listener_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _udp_listener_config_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on UdpListenerConfig with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *UdpListenerConfig) Validate() error { + if m == nil { + return nil + } + + // no validation rules for UdpListenerName + + switch m.ConfigType.(type) { + + case *UdpListenerConfig_HiddenEnvoyDeprecatedConfig: + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UdpListenerConfigValidationError{ + field: "HiddenEnvoyDeprecatedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *UdpListenerConfig_TypedConfig: + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UdpListenerConfigValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// UdpListenerConfigValidationError is the validation error returned by +// UdpListenerConfig.Validate if the designated constraints aren't met. +type UdpListenerConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UdpListenerConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UdpListenerConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UdpListenerConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UdpListenerConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UdpListenerConfigValidationError) ErrorName() string { + return "UdpListenerConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e UdpListenerConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUdpListenerConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UdpListenerConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UdpListenerConfigValidationError{} + +// Validate checks the field values on ActiveRawUdpListenerConfig with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *ActiveRawUdpListenerConfig) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// ActiveRawUdpListenerConfigValidationError is the validation error returned +// by ActiveRawUdpListenerConfig.Validate if the designated constraints aren't met. +type ActiveRawUdpListenerConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ActiveRawUdpListenerConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ActiveRawUdpListenerConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ActiveRawUdpListenerConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ActiveRawUdpListenerConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ActiveRawUdpListenerConfigValidationError) ErrorName() string { + return "ActiveRawUdpListenerConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e ActiveRawUdpListenerConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sActiveRawUdpListenerConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ActiveRawUdpListenerConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ActiveRawUdpListenerConfigValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v2/metrics_service.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v2/metrics_service.pb.go new file mode 100644 index 000000000..7274d5d56 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v2/metrics_service.pb.go @@ -0,0 +1,90 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/metrics/v2/metrics_service.proto + +package envoy_config_metrics_v2 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + core "github.com/envoyproxy/go-control-plane/envoy/api/v2/core" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type MetricsServiceConfig struct { + GrpcService *core.GrpcService `protobuf:"bytes,1,opt,name=grpc_service,json=grpcService,proto3" json:"grpc_service,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MetricsServiceConfig) Reset() { *m = MetricsServiceConfig{} } +func (m *MetricsServiceConfig) String() string { return proto.CompactTextString(m) } +func (*MetricsServiceConfig) ProtoMessage() {} +func (*MetricsServiceConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_81ac893a597f6d53, []int{0} +} + +func (m *MetricsServiceConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MetricsServiceConfig.Unmarshal(m, b) +} +func (m *MetricsServiceConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MetricsServiceConfig.Marshal(b, m, deterministic) +} +func (m *MetricsServiceConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_MetricsServiceConfig.Merge(m, src) +} +func (m *MetricsServiceConfig) XXX_Size() int { + return xxx_messageInfo_MetricsServiceConfig.Size(m) +} +func (m *MetricsServiceConfig) XXX_DiscardUnknown() { + xxx_messageInfo_MetricsServiceConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_MetricsServiceConfig proto.InternalMessageInfo + +func (m *MetricsServiceConfig) GetGrpcService() *core.GrpcService { + if m != nil { + return m.GrpcService + } + return nil +} + +func init() { + proto.RegisterType((*MetricsServiceConfig)(nil), "envoy.config.metrics.v2.MetricsServiceConfig") +} + +func init() { + proto.RegisterFile("envoy/config/metrics/v2/metrics_service.proto", fileDescriptor_81ac893a597f6d53) +} + +var fileDescriptor_81ac893a597f6d53 = []byte{ + // 240 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4d, 0xcd, 0x2b, 0xcb, + 0xaf, 0xd4, 0x4f, 0xce, 0xcf, 0x4b, 0xcb, 0x4c, 0xd7, 0xcf, 0x4d, 0x2d, 0x29, 0xca, 0x4c, 0x2e, + 0xd6, 0x2f, 0x33, 0x82, 0x31, 0xe3, 0x8b, 0x53, 0x8b, 0xca, 0x32, 0x93, 0x53, 0xf5, 0x0a, 0x8a, + 0xf2, 0x4b, 0xf2, 0x85, 0xc4, 0xc1, 0xca, 0xf5, 0x20, 0xca, 0xf5, 0xa0, 0x6a, 0xf4, 0xca, 0x8c, + 0xa4, 0x54, 0x20, 0xe6, 0x24, 0x16, 0x64, 0x82, 0x34, 0x27, 0xe7, 0x17, 0xa5, 0xea, 0xa7, 0x17, + 0x15, 0x24, 0xa3, 0x6a, 0x97, 0x92, 0x2d, 0x4d, 0x29, 0x48, 0xd4, 0x4f, 0xcc, 0xcb, 0xcb, 0x2f, + 0x49, 0x2c, 0xc9, 0xcc, 0xcf, 0x2b, 0xd6, 0x2f, 0x2e, 0x49, 0x2c, 0x29, 0x2d, 0x86, 0x4a, 0x8b, + 0x97, 0x25, 0xe6, 0x64, 0xa6, 0x24, 0x96, 0xa4, 0xea, 0xc3, 0x18, 0x10, 0x09, 0xa5, 0x64, 0x2e, + 0x11, 0x5f, 0x88, 0x5d, 0xc1, 0x10, 0xf3, 0x9c, 0xc1, 0x0e, 0x10, 0xf2, 0xe6, 0xe2, 0x41, 0xb6, + 0x45, 0x82, 0x51, 0x81, 0x51, 0x83, 0xdb, 0x48, 0x4e, 0x0f, 0xe2, 0xca, 0xc4, 0x82, 0x4c, 0xbd, + 0x32, 0x23, 0x3d, 0x90, 0x63, 0xf4, 0xdc, 0x8b, 0x0a, 0x92, 0xa1, 0x7a, 0x9d, 0x38, 0x7e, 0x39, + 0xb1, 0x76, 0x31, 0x32, 0x09, 0x30, 0x06, 0x71, 0xa7, 0x23, 0x09, 0xbb, 0xed, 0x6a, 0x38, 0x71, + 0x91, 0x8d, 0x49, 0x80, 0x91, 0x4b, 0x35, 0x33, 0x1f, 0x62, 0x44, 0x41, 0x51, 0x7e, 0x45, 0xa5, + 0x1e, 0x0e, 0x3f, 0x3b, 0x09, 0xa3, 0xba, 0x29, 0x00, 0xe4, 0xd4, 0x00, 0xc6, 0x24, 0x36, 0xb0, + 0x9b, 0x8d, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xb3, 0x07, 0xfa, 0x60, 0x5b, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v2/metrics_service.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v2/metrics_service.pb.validate.go new file mode 100644 index 000000000..e5934eb66 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v2/metrics_service.pb.validate.go @@ -0,0 +1,121 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/metrics/v2/metrics_service.proto + +package envoy_config_metrics_v2 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _metrics_service_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on MetricsServiceConfig with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *MetricsServiceConfig) Validate() error { + if m == nil { + return nil + } + + if m.GetGrpcService() == nil { + return MetricsServiceConfigValidationError{ + field: "GrpcService", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetGrpcService()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return MetricsServiceConfigValidationError{ + field: "GrpcService", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// MetricsServiceConfigValidationError is the validation error returned by +// MetricsServiceConfig.Validate if the designated constraints aren't met. +type MetricsServiceConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MetricsServiceConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MetricsServiceConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MetricsServiceConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MetricsServiceConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MetricsServiceConfigValidationError) ErrorName() string { + return "MetricsServiceConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e MetricsServiceConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMetricsServiceConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MetricsServiceConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MetricsServiceConfigValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v2/stats.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v2/stats.pb.go new file mode 100644 index 000000000..f78a4e1fb --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v2/stats.pb.go @@ -0,0 +1,619 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/metrics/v2/stats.proto + +package envoy_config_metrics_v2 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + core "github.com/envoyproxy/go-control-plane/envoy/api/v2/core" + matcher "github.com/envoyproxy/go-control-plane/envoy/type/matcher" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + any "github.com/golang/protobuf/ptypes/any" + _struct "github.com/golang/protobuf/ptypes/struct" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type StatsSink struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Types that are valid to be assigned to ConfigType: + // *StatsSink_Config + // *StatsSink_TypedConfig + ConfigType isStatsSink_ConfigType `protobuf_oneof:"config_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StatsSink) Reset() { *m = StatsSink{} } +func (m *StatsSink) String() string { return proto.CompactTextString(m) } +func (*StatsSink) ProtoMessage() {} +func (*StatsSink) Descriptor() ([]byte, []int) { + return fileDescriptor_51e6d6532209c486, []int{0} +} + +func (m *StatsSink) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StatsSink.Unmarshal(m, b) +} +func (m *StatsSink) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StatsSink.Marshal(b, m, deterministic) +} +func (m *StatsSink) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatsSink.Merge(m, src) +} +func (m *StatsSink) XXX_Size() int { + return xxx_messageInfo_StatsSink.Size(m) +} +func (m *StatsSink) XXX_DiscardUnknown() { + xxx_messageInfo_StatsSink.DiscardUnknown(m) +} + +var xxx_messageInfo_StatsSink proto.InternalMessageInfo + +func (m *StatsSink) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type isStatsSink_ConfigType interface { + isStatsSink_ConfigType() +} + +type StatsSink_Config struct { + Config *_struct.Struct `protobuf:"bytes,2,opt,name=config,proto3,oneof"` +} + +type StatsSink_TypedConfig struct { + TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"` +} + +func (*StatsSink_Config) isStatsSink_ConfigType() {} + +func (*StatsSink_TypedConfig) isStatsSink_ConfigType() {} + +func (m *StatsSink) GetConfigType() isStatsSink_ConfigType { + if m != nil { + return m.ConfigType + } + return nil +} + +// Deprecated: Do not use. +func (m *StatsSink) GetConfig() *_struct.Struct { + if x, ok := m.GetConfigType().(*StatsSink_Config); ok { + return x.Config + } + return nil +} + +func (m *StatsSink) GetTypedConfig() *any.Any { + if x, ok := m.GetConfigType().(*StatsSink_TypedConfig); ok { + return x.TypedConfig + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*StatsSink) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*StatsSink_Config)(nil), + (*StatsSink_TypedConfig)(nil), + } +} + +type StatsConfig struct { + StatsTags []*TagSpecifier `protobuf:"bytes,1,rep,name=stats_tags,json=statsTags,proto3" json:"stats_tags,omitempty"` + UseAllDefaultTags *wrappers.BoolValue `protobuf:"bytes,2,opt,name=use_all_default_tags,json=useAllDefaultTags,proto3" json:"use_all_default_tags,omitempty"` + StatsMatcher *StatsMatcher `protobuf:"bytes,3,opt,name=stats_matcher,json=statsMatcher,proto3" json:"stats_matcher,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StatsConfig) Reset() { *m = StatsConfig{} } +func (m *StatsConfig) String() string { return proto.CompactTextString(m) } +func (*StatsConfig) ProtoMessage() {} +func (*StatsConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_51e6d6532209c486, []int{1} +} + +func (m *StatsConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StatsConfig.Unmarshal(m, b) +} +func (m *StatsConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StatsConfig.Marshal(b, m, deterministic) +} +func (m *StatsConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatsConfig.Merge(m, src) +} +func (m *StatsConfig) XXX_Size() int { + return xxx_messageInfo_StatsConfig.Size(m) +} +func (m *StatsConfig) XXX_DiscardUnknown() { + xxx_messageInfo_StatsConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_StatsConfig proto.InternalMessageInfo + +func (m *StatsConfig) GetStatsTags() []*TagSpecifier { + if m != nil { + return m.StatsTags + } + return nil +} + +func (m *StatsConfig) GetUseAllDefaultTags() *wrappers.BoolValue { + if m != nil { + return m.UseAllDefaultTags + } + return nil +} + +func (m *StatsConfig) GetStatsMatcher() *StatsMatcher { + if m != nil { + return m.StatsMatcher + } + return nil +} + +type StatsMatcher struct { + // Types that are valid to be assigned to StatsMatcher: + // *StatsMatcher_RejectAll + // *StatsMatcher_ExclusionList + // *StatsMatcher_InclusionList + StatsMatcher isStatsMatcher_StatsMatcher `protobuf_oneof:"stats_matcher"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StatsMatcher) Reset() { *m = StatsMatcher{} } +func (m *StatsMatcher) String() string { return proto.CompactTextString(m) } +func (*StatsMatcher) ProtoMessage() {} +func (*StatsMatcher) Descriptor() ([]byte, []int) { + return fileDescriptor_51e6d6532209c486, []int{2} +} + +func (m *StatsMatcher) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StatsMatcher.Unmarshal(m, b) +} +func (m *StatsMatcher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StatsMatcher.Marshal(b, m, deterministic) +} +func (m *StatsMatcher) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatsMatcher.Merge(m, src) +} +func (m *StatsMatcher) XXX_Size() int { + return xxx_messageInfo_StatsMatcher.Size(m) +} +func (m *StatsMatcher) XXX_DiscardUnknown() { + xxx_messageInfo_StatsMatcher.DiscardUnknown(m) +} + +var xxx_messageInfo_StatsMatcher proto.InternalMessageInfo + +type isStatsMatcher_StatsMatcher interface { + isStatsMatcher_StatsMatcher() +} + +type StatsMatcher_RejectAll struct { + RejectAll bool `protobuf:"varint,1,opt,name=reject_all,json=rejectAll,proto3,oneof"` +} + +type StatsMatcher_ExclusionList struct { + ExclusionList *matcher.ListStringMatcher `protobuf:"bytes,2,opt,name=exclusion_list,json=exclusionList,proto3,oneof"` +} + +type StatsMatcher_InclusionList struct { + InclusionList *matcher.ListStringMatcher `protobuf:"bytes,3,opt,name=inclusion_list,json=inclusionList,proto3,oneof"` +} + +func (*StatsMatcher_RejectAll) isStatsMatcher_StatsMatcher() {} + +func (*StatsMatcher_ExclusionList) isStatsMatcher_StatsMatcher() {} + +func (*StatsMatcher_InclusionList) isStatsMatcher_StatsMatcher() {} + +func (m *StatsMatcher) GetStatsMatcher() isStatsMatcher_StatsMatcher { + if m != nil { + return m.StatsMatcher + } + return nil +} + +func (m *StatsMatcher) GetRejectAll() bool { + if x, ok := m.GetStatsMatcher().(*StatsMatcher_RejectAll); ok { + return x.RejectAll + } + return false +} + +func (m *StatsMatcher) GetExclusionList() *matcher.ListStringMatcher { + if x, ok := m.GetStatsMatcher().(*StatsMatcher_ExclusionList); ok { + return x.ExclusionList + } + return nil +} + +func (m *StatsMatcher) GetInclusionList() *matcher.ListStringMatcher { + if x, ok := m.GetStatsMatcher().(*StatsMatcher_InclusionList); ok { + return x.InclusionList + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*StatsMatcher) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*StatsMatcher_RejectAll)(nil), + (*StatsMatcher_ExclusionList)(nil), + (*StatsMatcher_InclusionList)(nil), + } +} + +type TagSpecifier struct { + TagName string `protobuf:"bytes,1,opt,name=tag_name,json=tagName,proto3" json:"tag_name,omitempty"` + // Types that are valid to be assigned to TagValue: + // *TagSpecifier_Regex + // *TagSpecifier_FixedValue + TagValue isTagSpecifier_TagValue `protobuf_oneof:"tag_value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TagSpecifier) Reset() { *m = TagSpecifier{} } +func (m *TagSpecifier) String() string { return proto.CompactTextString(m) } +func (*TagSpecifier) ProtoMessage() {} +func (*TagSpecifier) Descriptor() ([]byte, []int) { + return fileDescriptor_51e6d6532209c486, []int{3} +} + +func (m *TagSpecifier) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TagSpecifier.Unmarshal(m, b) +} +func (m *TagSpecifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TagSpecifier.Marshal(b, m, deterministic) +} +func (m *TagSpecifier) XXX_Merge(src proto.Message) { + xxx_messageInfo_TagSpecifier.Merge(m, src) +} +func (m *TagSpecifier) XXX_Size() int { + return xxx_messageInfo_TagSpecifier.Size(m) +} +func (m *TagSpecifier) XXX_DiscardUnknown() { + xxx_messageInfo_TagSpecifier.DiscardUnknown(m) +} + +var xxx_messageInfo_TagSpecifier proto.InternalMessageInfo + +func (m *TagSpecifier) GetTagName() string { + if m != nil { + return m.TagName + } + return "" +} + +type isTagSpecifier_TagValue interface { + isTagSpecifier_TagValue() +} + +type TagSpecifier_Regex struct { + Regex string `protobuf:"bytes,2,opt,name=regex,proto3,oneof"` +} + +type TagSpecifier_FixedValue struct { + FixedValue string `protobuf:"bytes,3,opt,name=fixed_value,json=fixedValue,proto3,oneof"` +} + +func (*TagSpecifier_Regex) isTagSpecifier_TagValue() {} + +func (*TagSpecifier_FixedValue) isTagSpecifier_TagValue() {} + +func (m *TagSpecifier) GetTagValue() isTagSpecifier_TagValue { + if m != nil { + return m.TagValue + } + return nil +} + +func (m *TagSpecifier) GetRegex() string { + if x, ok := m.GetTagValue().(*TagSpecifier_Regex); ok { + return x.Regex + } + return "" +} + +func (m *TagSpecifier) GetFixedValue() string { + if x, ok := m.GetTagValue().(*TagSpecifier_FixedValue); ok { + return x.FixedValue + } + return "" +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*TagSpecifier) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*TagSpecifier_Regex)(nil), + (*TagSpecifier_FixedValue)(nil), + } +} + +type StatsdSink struct { + // Types that are valid to be assigned to StatsdSpecifier: + // *StatsdSink_Address + // *StatsdSink_TcpClusterName + StatsdSpecifier isStatsdSink_StatsdSpecifier `protobuf_oneof:"statsd_specifier"` + Prefix string `protobuf:"bytes,3,opt,name=prefix,proto3" json:"prefix,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StatsdSink) Reset() { *m = StatsdSink{} } +func (m *StatsdSink) String() string { return proto.CompactTextString(m) } +func (*StatsdSink) ProtoMessage() {} +func (*StatsdSink) Descriptor() ([]byte, []int) { + return fileDescriptor_51e6d6532209c486, []int{4} +} + +func (m *StatsdSink) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StatsdSink.Unmarshal(m, b) +} +func (m *StatsdSink) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StatsdSink.Marshal(b, m, deterministic) +} +func (m *StatsdSink) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatsdSink.Merge(m, src) +} +func (m *StatsdSink) XXX_Size() int { + return xxx_messageInfo_StatsdSink.Size(m) +} +func (m *StatsdSink) XXX_DiscardUnknown() { + xxx_messageInfo_StatsdSink.DiscardUnknown(m) +} + +var xxx_messageInfo_StatsdSink proto.InternalMessageInfo + +type isStatsdSink_StatsdSpecifier interface { + isStatsdSink_StatsdSpecifier() +} + +type StatsdSink_Address struct { + Address *core.Address `protobuf:"bytes,1,opt,name=address,proto3,oneof"` +} + +type StatsdSink_TcpClusterName struct { + TcpClusterName string `protobuf:"bytes,2,opt,name=tcp_cluster_name,json=tcpClusterName,proto3,oneof"` +} + +func (*StatsdSink_Address) isStatsdSink_StatsdSpecifier() {} + +func (*StatsdSink_TcpClusterName) isStatsdSink_StatsdSpecifier() {} + +func (m *StatsdSink) GetStatsdSpecifier() isStatsdSink_StatsdSpecifier { + if m != nil { + return m.StatsdSpecifier + } + return nil +} + +func (m *StatsdSink) GetAddress() *core.Address { + if x, ok := m.GetStatsdSpecifier().(*StatsdSink_Address); ok { + return x.Address + } + return nil +} + +func (m *StatsdSink) GetTcpClusterName() string { + if x, ok := m.GetStatsdSpecifier().(*StatsdSink_TcpClusterName); ok { + return x.TcpClusterName + } + return "" +} + +func (m *StatsdSink) GetPrefix() string { + if m != nil { + return m.Prefix + } + return "" +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*StatsdSink) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*StatsdSink_Address)(nil), + (*StatsdSink_TcpClusterName)(nil), + } +} + +type DogStatsdSink struct { + // Types that are valid to be assigned to DogStatsdSpecifier: + // *DogStatsdSink_Address + DogStatsdSpecifier isDogStatsdSink_DogStatsdSpecifier `protobuf_oneof:"dog_statsd_specifier"` + Prefix string `protobuf:"bytes,3,opt,name=prefix,proto3" json:"prefix,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DogStatsdSink) Reset() { *m = DogStatsdSink{} } +func (m *DogStatsdSink) String() string { return proto.CompactTextString(m) } +func (*DogStatsdSink) ProtoMessage() {} +func (*DogStatsdSink) Descriptor() ([]byte, []int) { + return fileDescriptor_51e6d6532209c486, []int{5} +} + +func (m *DogStatsdSink) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DogStatsdSink.Unmarshal(m, b) +} +func (m *DogStatsdSink) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DogStatsdSink.Marshal(b, m, deterministic) +} +func (m *DogStatsdSink) XXX_Merge(src proto.Message) { + xxx_messageInfo_DogStatsdSink.Merge(m, src) +} +func (m *DogStatsdSink) XXX_Size() int { + return xxx_messageInfo_DogStatsdSink.Size(m) +} +func (m *DogStatsdSink) XXX_DiscardUnknown() { + xxx_messageInfo_DogStatsdSink.DiscardUnknown(m) +} + +var xxx_messageInfo_DogStatsdSink proto.InternalMessageInfo + +type isDogStatsdSink_DogStatsdSpecifier interface { + isDogStatsdSink_DogStatsdSpecifier() +} + +type DogStatsdSink_Address struct { + Address *core.Address `protobuf:"bytes,1,opt,name=address,proto3,oneof"` +} + +func (*DogStatsdSink_Address) isDogStatsdSink_DogStatsdSpecifier() {} + +func (m *DogStatsdSink) GetDogStatsdSpecifier() isDogStatsdSink_DogStatsdSpecifier { + if m != nil { + return m.DogStatsdSpecifier + } + return nil +} + +func (m *DogStatsdSink) GetAddress() *core.Address { + if x, ok := m.GetDogStatsdSpecifier().(*DogStatsdSink_Address); ok { + return x.Address + } + return nil +} + +func (m *DogStatsdSink) GetPrefix() string { + if m != nil { + return m.Prefix + } + return "" +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*DogStatsdSink) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*DogStatsdSink_Address)(nil), + } +} + +type HystrixSink struct { + NumBuckets int64 `protobuf:"varint,1,opt,name=num_buckets,json=numBuckets,proto3" json:"num_buckets,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HystrixSink) Reset() { *m = HystrixSink{} } +func (m *HystrixSink) String() string { return proto.CompactTextString(m) } +func (*HystrixSink) ProtoMessage() {} +func (*HystrixSink) Descriptor() ([]byte, []int) { + return fileDescriptor_51e6d6532209c486, []int{6} +} + +func (m *HystrixSink) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HystrixSink.Unmarshal(m, b) +} +func (m *HystrixSink) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HystrixSink.Marshal(b, m, deterministic) +} +func (m *HystrixSink) XXX_Merge(src proto.Message) { + xxx_messageInfo_HystrixSink.Merge(m, src) +} +func (m *HystrixSink) XXX_Size() int { + return xxx_messageInfo_HystrixSink.Size(m) +} +func (m *HystrixSink) XXX_DiscardUnknown() { + xxx_messageInfo_HystrixSink.DiscardUnknown(m) +} + +var xxx_messageInfo_HystrixSink proto.InternalMessageInfo + +func (m *HystrixSink) GetNumBuckets() int64 { + if m != nil { + return m.NumBuckets + } + return 0 +} + +func init() { + proto.RegisterType((*StatsSink)(nil), "envoy.config.metrics.v2.StatsSink") + proto.RegisterType((*StatsConfig)(nil), "envoy.config.metrics.v2.StatsConfig") + proto.RegisterType((*StatsMatcher)(nil), "envoy.config.metrics.v2.StatsMatcher") + proto.RegisterType((*TagSpecifier)(nil), "envoy.config.metrics.v2.TagSpecifier") + proto.RegisterType((*StatsdSink)(nil), "envoy.config.metrics.v2.StatsdSink") + proto.RegisterType((*DogStatsdSink)(nil), "envoy.config.metrics.v2.DogStatsdSink") + proto.RegisterType((*HystrixSink)(nil), "envoy.config.metrics.v2.HystrixSink") +} + +func init() { + proto.RegisterFile("envoy/config/metrics/v2/stats.proto", fileDescriptor_51e6d6532209c486) +} + +var fileDescriptor_51e6d6532209c486 = []byte{ + // 725 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0xcd, 0x6e, 0xd3, 0x4c, + 0x14, 0x8d, 0x93, 0x36, 0x4d, 0xae, 0x93, 0x2a, 0x9f, 0x15, 0x7d, 0x49, 0xcb, 0x4f, 0x43, 0x50, + 0xa5, 0x88, 0x85, 0x2d, 0x05, 0x81, 0xc4, 0x82, 0x45, 0xdc, 0x2e, 0xa2, 0x02, 0x55, 0xe5, 0x54, + 0x6c, 0xad, 0xa9, 0x3d, 0x31, 0x43, 0x1d, 0x8f, 0x35, 0x33, 0x0e, 0x89, 0xd8, 0x54, 0x3c, 0x09, + 0xbc, 0x06, 0x4f, 0xc0, 0x96, 0x87, 0x60, 0xc7, 0x03, 0x20, 0x56, 0x68, 0x7e, 0x52, 0x85, 0x96, + 0x2c, 0x90, 0xd8, 0x79, 0xe6, 0x9c, 0x73, 0xef, 0xb9, 0xf7, 0xce, 0x35, 0x3c, 0xc4, 0xd9, 0x9c, + 0x2e, 0xbd, 0x88, 0x66, 0x53, 0x92, 0x78, 0x33, 0x2c, 0x18, 0x89, 0xb8, 0x37, 0x1f, 0x7a, 0x5c, + 0x20, 0xc1, 0xdd, 0x9c, 0x51, 0x41, 0x9d, 0x8e, 0x22, 0xb9, 0x9a, 0xe4, 0x1a, 0x92, 0x3b, 0x1f, + 0xee, 0x1f, 0x68, 0x35, 0xca, 0x89, 0x94, 0x44, 0x94, 0x61, 0x0f, 0xc5, 0x31, 0xc3, 0xdc, 0x28, + 0x57, 0x04, 0xb1, 0xcc, 0xb1, 0x37, 0x43, 0x22, 0x7a, 0x83, 0x99, 0xc7, 0x05, 0x23, 0x59, 0x62, + 0x08, 0x7b, 0x09, 0xa5, 0x49, 0x8a, 0x3d, 0x75, 0xba, 0x28, 0xa6, 0x1e, 0xca, 0x96, 0x06, 0xba, + 0x7b, 0x13, 0xe2, 0x82, 0x15, 0x91, 0x30, 0xe8, 0xfd, 0x9b, 0xe8, 0x3b, 0x86, 0xf2, 0x1c, 0xb3, + 0x55, 0xe6, 0x7b, 0x45, 0x9c, 0x23, 0x0f, 0x65, 0x19, 0x15, 0x48, 0x10, 0x9a, 0x71, 0x55, 0x51, + 0xb1, 0x82, 0x3b, 0x73, 0x94, 0x92, 0x18, 0x09, 0xec, 0xad, 0x3e, 0x34, 0xd0, 0xff, 0x68, 0x41, + 0x7d, 0x22, 0x6b, 0x9f, 0x90, 0xec, 0xd2, 0x71, 0x60, 0x2b, 0x43, 0x33, 0xdc, 0xb5, 0x7a, 0xd6, + 0xa0, 0x1e, 0xa8, 0x6f, 0xe7, 0x09, 0x54, 0x75, 0x27, 0xba, 0xe5, 0x9e, 0x35, 0xb0, 0x87, 0x1d, + 0x57, 0x5b, 0x71, 0x57, 0x56, 0xdc, 0x89, 0x32, 0xea, 0x97, 0xbb, 0xd6, 0xb8, 0x14, 0x18, 0xb2, + 0xf3, 0x0c, 0x1a, 0xb2, 0x0d, 0x71, 0x68, 0xc4, 0x15, 0x25, 0x6e, 0xdf, 0x12, 0x8f, 0xb2, 0xe5, + 0xb8, 0x14, 0xd8, 0x8a, 0x7b, 0xa4, 0xa8, 0x7e, 0x13, 0x6c, 0x2d, 0x0a, 0xe5, 0x6d, 0xff, 0xbb, + 0x05, 0xb6, 0xb2, 0xa8, 0x61, 0xe7, 0x18, 0x40, 0x4d, 0x2b, 0x14, 0x28, 0xe1, 0x5d, 0xab, 0x57, + 0x19, 0xd8, 0xc3, 0x43, 0x77, 0xc3, 0xcc, 0xdc, 0x73, 0x94, 0x4c, 0x72, 0x1c, 0x91, 0x29, 0xc1, + 0x2c, 0xa8, 0x2b, 0xe1, 0x39, 0x4a, 0xb8, 0xf3, 0x02, 0xda, 0x05, 0xc7, 0x21, 0x4a, 0xd3, 0x30, + 0xc6, 0x53, 0x54, 0xa4, 0x42, 0xc7, 0xd3, 0x45, 0xee, 0xdf, 0xf2, 0xe9, 0x53, 0x9a, 0xbe, 0x46, + 0x69, 0x81, 0x83, 0xff, 0x0a, 0x8e, 0x47, 0x69, 0x7a, 0xac, 0x55, 0x2a, 0xd8, 0x09, 0x34, 0xb5, + 0x25, 0x33, 0x74, 0x53, 0xed, 0x66, 0x57, 0xaa, 0x9e, 0x57, 0x9a, 0x1c, 0x34, 0xf8, 0xda, 0xa9, + 0xff, 0xcd, 0x82, 0xc6, 0x3a, 0xec, 0x1c, 0x00, 0x30, 0xfc, 0x16, 0x47, 0x42, 0x9a, 0x55, 0xa3, + 0xa9, 0x8d, 0x4b, 0x41, 0x5d, 0xdf, 0x8d, 0xd2, 0xd4, 0x39, 0x85, 0x5d, 0xbc, 0x88, 0xd2, 0x82, + 0x13, 0x9a, 0x85, 0x29, 0xe1, 0xc2, 0x14, 0xb1, 0x4a, 0x2f, 0xbb, 0xe8, 0x1a, 0x67, 0xee, 0x4b, + 0xc2, 0xc5, 0x44, 0x3d, 0x49, 0x13, 0x7f, 0x5c, 0x0a, 0x9a, 0xd7, 0x72, 0x89, 0xca, 0x78, 0x24, + 0xfb, 0x2d, 0x5e, 0xe5, 0x2f, 0xe3, 0x5d, 0xcb, 0x25, 0xea, 0xb7, 0x6f, 0x74, 0xc7, 0xa9, 0xfc, + 0xf0, 0xad, 0xfe, 0x7b, 0x68, 0xac, 0xcf, 0xc6, 0xd9, 0x83, 0x9a, 0x40, 0x49, 0xb8, 0xf6, 0xfe, + 0x76, 0x04, 0x4a, 0x4e, 0xe5, 0x13, 0xec, 0xc1, 0x36, 0xc3, 0x09, 0x5e, 0xa8, 0xba, 0xea, 0x7e, + 0xed, 0xa7, 0xbf, 0xcd, 0x2a, 0x83, 0x2b, 0xd9, 0x06, 0x0d, 0x38, 0x0f, 0xc0, 0x9e, 0x92, 0x05, + 0x8e, 0xc3, 0xb9, 0x1c, 0x91, 0xf2, 0x5b, 0x1f, 0x97, 0x02, 0x50, 0x97, 0x6a, 0x6c, 0xbe, 0x0d, + 0x75, 0x19, 0x5f, 0x11, 0xfa, 0x9f, 0x2c, 0x00, 0xd5, 0xe4, 0x58, 0xbd, 0xfb, 0xa7, 0xb0, 0x63, + 0x16, 0x59, 0xa5, 0x96, 0xf3, 0xd7, 0xa5, 0xa2, 0x9c, 0xc8, 0x71, 0xc9, 0x55, 0x77, 0x47, 0x9a, + 0x31, 0x2e, 0x05, 0x2b, 0xb2, 0xf3, 0x08, 0x5a, 0x22, 0xca, 0x43, 0x59, 0xac, 0xc0, 0x4c, 0x7b, + 0x2f, 0x9b, 0xdc, 0xbb, 0x22, 0xca, 0x8f, 0x34, 0xa0, 0x8a, 0xf8, 0x1f, 0xaa, 0x39, 0xc3, 0x53, + 0xb2, 0xd0, 0xee, 0x02, 0x73, 0xf2, 0x3b, 0xd0, 0x52, 0xdd, 0x89, 0x43, 0x7e, 0xdd, 0x0b, 0xd5, + 0xa0, 0x0f, 0x16, 0x34, 0x8f, 0x69, 0xf2, 0x0f, 0x6c, 0x6e, 0x4a, 0x7d, 0x07, 0xda, 0x31, 0x4d, + 0xc2, 0x3f, 0xa6, 0x3f, 0xd9, 0xaa, 0x95, 0x5b, 0x95, 0xbe, 0x0b, 0xf6, 0x78, 0x29, 0x7f, 0x61, + 0x0b, 0xe5, 0xe0, 0x00, 0xec, 0xac, 0x98, 0x85, 0x17, 0x45, 0x74, 0x89, 0x85, 0x76, 0x51, 0x09, + 0x20, 0x2b, 0x66, 0xbe, 0xbe, 0xf1, 0x9f, 0x7f, 0xbe, 0xfa, 0xf2, 0xb5, 0x5a, 0x6e, 0x59, 0x70, + 0x48, 0xa8, 0x76, 0x97, 0x33, 0xba, 0x58, 0x6e, 0xda, 0x04, 0x5f, 0x8f, 0xe1, 0x4c, 0xae, 0xd9, + 0x99, 0x75, 0x51, 0x55, 0xfb, 0xf6, 0xf8, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0x48, 0x8f, 0xd7, + 0x70, 0xa8, 0x05, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v2/stats.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v2/stats.pb.validate.go new file mode 100644 index 000000000..4d83fdabc --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v2/stats.pb.validate.go @@ -0,0 +1,663 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/metrics/v2/stats.proto + +package envoy_config_metrics_v2 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _stats_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on StatsSink with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *StatsSink) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Name + + switch m.ConfigType.(type) { + + case *StatsSink_Config: + + if v, ok := interface{}(m.GetConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StatsSinkValidationError{ + field: "Config", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *StatsSink_TypedConfig: + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StatsSinkValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// StatsSinkValidationError is the validation error returned by +// StatsSink.Validate if the designated constraints aren't met. +type StatsSinkValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e StatsSinkValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e StatsSinkValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e StatsSinkValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e StatsSinkValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e StatsSinkValidationError) ErrorName() string { return "StatsSinkValidationError" } + +// Error satisfies the builtin error interface +func (e StatsSinkValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sStatsSink.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = StatsSinkValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = StatsSinkValidationError{} + +// Validate checks the field values on StatsConfig with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *StatsConfig) Validate() error { + if m == nil { + return nil + } + + for idx, item := range m.GetStatsTags() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StatsConfigValidationError{ + field: fmt.Sprintf("StatsTags[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetUseAllDefaultTags()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StatsConfigValidationError{ + field: "UseAllDefaultTags", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetStatsMatcher()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StatsConfigValidationError{ + field: "StatsMatcher", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// StatsConfigValidationError is the validation error returned by +// StatsConfig.Validate if the designated constraints aren't met. +type StatsConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e StatsConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e StatsConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e StatsConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e StatsConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e StatsConfigValidationError) ErrorName() string { return "StatsConfigValidationError" } + +// Error satisfies the builtin error interface +func (e StatsConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sStatsConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = StatsConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = StatsConfigValidationError{} + +// Validate checks the field values on StatsMatcher with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *StatsMatcher) Validate() error { + if m == nil { + return nil + } + + switch m.StatsMatcher.(type) { + + case *StatsMatcher_RejectAll: + // no validation rules for RejectAll + + case *StatsMatcher_ExclusionList: + + if v, ok := interface{}(m.GetExclusionList()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StatsMatcherValidationError{ + field: "ExclusionList", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *StatsMatcher_InclusionList: + + if v, ok := interface{}(m.GetInclusionList()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StatsMatcherValidationError{ + field: "InclusionList", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return StatsMatcherValidationError{ + field: "StatsMatcher", + reason: "value is required", + } + + } + + return nil +} + +// StatsMatcherValidationError is the validation error returned by +// StatsMatcher.Validate if the designated constraints aren't met. +type StatsMatcherValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e StatsMatcherValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e StatsMatcherValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e StatsMatcherValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e StatsMatcherValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e StatsMatcherValidationError) ErrorName() string { return "StatsMatcherValidationError" } + +// Error satisfies the builtin error interface +func (e StatsMatcherValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sStatsMatcher.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = StatsMatcherValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = StatsMatcherValidationError{} + +// Validate checks the field values on TagSpecifier with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *TagSpecifier) Validate() error { + if m == nil { + return nil + } + + // no validation rules for TagName + + switch m.TagValue.(type) { + + case *TagSpecifier_Regex: + + if len(m.GetRegex()) > 1024 { + return TagSpecifierValidationError{ + field: "Regex", + reason: "value length must be at most 1024 bytes", + } + } + + case *TagSpecifier_FixedValue: + // no validation rules for FixedValue + + } + + return nil +} + +// TagSpecifierValidationError is the validation error returned by +// TagSpecifier.Validate if the designated constraints aren't met. +type TagSpecifierValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TagSpecifierValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TagSpecifierValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TagSpecifierValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TagSpecifierValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TagSpecifierValidationError) ErrorName() string { return "TagSpecifierValidationError" } + +// Error satisfies the builtin error interface +func (e TagSpecifierValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTagSpecifier.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TagSpecifierValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TagSpecifierValidationError{} + +// Validate checks the field values on StatsdSink with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *StatsdSink) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Prefix + + switch m.StatsdSpecifier.(type) { + + case *StatsdSink_Address: + + if v, ok := interface{}(m.GetAddress()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StatsdSinkValidationError{ + field: "Address", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *StatsdSink_TcpClusterName: + // no validation rules for TcpClusterName + + default: + return StatsdSinkValidationError{ + field: "StatsdSpecifier", + reason: "value is required", + } + + } + + return nil +} + +// StatsdSinkValidationError is the validation error returned by +// StatsdSink.Validate if the designated constraints aren't met. +type StatsdSinkValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e StatsdSinkValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e StatsdSinkValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e StatsdSinkValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e StatsdSinkValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e StatsdSinkValidationError) ErrorName() string { return "StatsdSinkValidationError" } + +// Error satisfies the builtin error interface +func (e StatsdSinkValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sStatsdSink.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = StatsdSinkValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = StatsdSinkValidationError{} + +// Validate checks the field values on DogStatsdSink with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *DogStatsdSink) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Prefix + + switch m.DogStatsdSpecifier.(type) { + + case *DogStatsdSink_Address: + + if v, ok := interface{}(m.GetAddress()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DogStatsdSinkValidationError{ + field: "Address", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return DogStatsdSinkValidationError{ + field: "DogStatsdSpecifier", + reason: "value is required", + } + + } + + return nil +} + +// DogStatsdSinkValidationError is the validation error returned by +// DogStatsdSink.Validate if the designated constraints aren't met. +type DogStatsdSinkValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DogStatsdSinkValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DogStatsdSinkValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DogStatsdSinkValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DogStatsdSinkValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DogStatsdSinkValidationError) ErrorName() string { return "DogStatsdSinkValidationError" } + +// Error satisfies the builtin error interface +func (e DogStatsdSinkValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDogStatsdSink.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DogStatsdSinkValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DogStatsdSinkValidationError{} + +// Validate checks the field values on HystrixSink with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *HystrixSink) Validate() error { + if m == nil { + return nil + } + + // no validation rules for NumBuckets + + return nil +} + +// HystrixSinkValidationError is the validation error returned by +// HystrixSink.Validate if the designated constraints aren't met. +type HystrixSinkValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HystrixSinkValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HystrixSinkValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HystrixSinkValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HystrixSinkValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HystrixSinkValidationError) ErrorName() string { return "HystrixSinkValidationError" } + +// Error satisfies the builtin error interface +func (e HystrixSinkValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHystrixSink.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HystrixSinkValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HystrixSinkValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3/metrics_service.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3/metrics_service.pb.go new file mode 100644 index 000000000..4a6141507 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3/metrics_service.pb.go @@ -0,0 +1,92 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/metrics/v3/metrics_service.proto + +package envoy_config_metrics_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type MetricsServiceConfig struct { + GrpcService *v3.GrpcService `protobuf:"bytes,1,opt,name=grpc_service,json=grpcService,proto3" json:"grpc_service,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MetricsServiceConfig) Reset() { *m = MetricsServiceConfig{} } +func (m *MetricsServiceConfig) String() string { return proto.CompactTextString(m) } +func (*MetricsServiceConfig) ProtoMessage() {} +func (*MetricsServiceConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_10f80b3d56cf3c1b, []int{0} +} + +func (m *MetricsServiceConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MetricsServiceConfig.Unmarshal(m, b) +} +func (m *MetricsServiceConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MetricsServiceConfig.Marshal(b, m, deterministic) +} +func (m *MetricsServiceConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_MetricsServiceConfig.Merge(m, src) +} +func (m *MetricsServiceConfig) XXX_Size() int { + return xxx_messageInfo_MetricsServiceConfig.Size(m) +} +func (m *MetricsServiceConfig) XXX_DiscardUnknown() { + xxx_messageInfo_MetricsServiceConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_MetricsServiceConfig proto.InternalMessageInfo + +func (m *MetricsServiceConfig) GetGrpcService() *v3.GrpcService { + if m != nil { + return m.GrpcService + } + return nil +} + +func init() { + proto.RegisterType((*MetricsServiceConfig)(nil), "envoy.config.metrics.v3.MetricsServiceConfig") +} + +func init() { + proto.RegisterFile("envoy/config/metrics/v3/metrics_service.proto", fileDescriptor_10f80b3d56cf3c1b) +} + +var fileDescriptor_10f80b3d56cf3c1b = []byte{ + // 266 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4d, 0xcd, 0x2b, 0xcb, + 0xaf, 0xd4, 0x4f, 0xce, 0xcf, 0x4b, 0xcb, 0x4c, 0xd7, 0xcf, 0x4d, 0x2d, 0x29, 0xca, 0x4c, 0x2e, + 0xd6, 0x2f, 0x33, 0x86, 0x31, 0xe3, 0x8b, 0x53, 0x8b, 0xca, 0x32, 0x93, 0x53, 0xf5, 0x0a, 0x8a, + 0xf2, 0x4b, 0xf2, 0x85, 0xc4, 0xc1, 0xca, 0xf5, 0x20, 0xca, 0xf5, 0xa0, 0x6a, 0xf4, 0xca, 0x8c, + 0xa5, 0xd4, 0x51, 0xcc, 0x49, 0xce, 0x2f, 0x4a, 0x05, 0x19, 0x92, 0x5e, 0x54, 0x90, 0x8c, 0x6a, + 0x82, 0x94, 0x6c, 0x69, 0x4a, 0x41, 0xa2, 0x7e, 0x62, 0x5e, 0x5e, 0x7e, 0x49, 0x62, 0x49, 0x66, + 0x7e, 0x5e, 0xb1, 0x7e, 0x71, 0x49, 0x62, 0x49, 0x69, 0x31, 0x54, 0x5a, 0x11, 0x43, 0xba, 0x2c, + 0xb5, 0xa8, 0x38, 0x33, 0x3f, 0x2f, 0x33, 0x2f, 0x1d, 0xaa, 0x44, 0xbc, 0x2c, 0x31, 0x27, 0x33, + 0x25, 0xb1, 0x24, 0x55, 0x1f, 0xc6, 0x80, 0x48, 0x28, 0xcd, 0x66, 0xe4, 0x12, 0xf1, 0x85, 0x38, + 0x29, 0x18, 0x62, 0xa7, 0x33, 0xd8, 0x39, 0x42, 0x7e, 0x5c, 0x3c, 0xc8, 0x2e, 0x91, 0x60, 0x54, + 0x60, 0xd4, 0xe0, 0x36, 0x52, 0xd4, 0x43, 0xf1, 0x0c, 0xc8, 0xcd, 0x7a, 0x65, 0xc6, 0x7a, 0xee, + 0x45, 0x05, 0xc9, 0x50, 0xed, 0x4e, 0x1c, 0xbf, 0x9c, 0x58, 0xbb, 0x18, 0x99, 0x04, 0x18, 0x83, + 0xb8, 0xd3, 0x11, 0xc2, 0x56, 0xc6, 0xb3, 0x8e, 0x76, 0xc8, 0xe9, 0x71, 0xe9, 0x60, 0x0f, 0x0c, + 0x23, 0x3d, 0x6c, 0x8e, 0x70, 0x72, 0xdb, 0xd5, 0x70, 0xe2, 0x22, 0x1b, 0x93, 0x00, 0x13, 0x97, + 0x6a, 0x66, 0x3e, 0xc4, 0xea, 0x82, 0xa2, 0xfc, 0x8a, 0x4a, 0x3d, 0x1c, 0x41, 0xea, 0x24, 0x8c, + 0x6a, 0x4c, 0x00, 0xc8, 0x8f, 0x01, 0x8c, 0x49, 0x6c, 0x60, 0xcf, 0x1a, 0x03, 0x02, 0x00, 0x00, + 0xff, 0xff, 0x4b, 0xa8, 0xd4, 0xd2, 0xba, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3/metrics_service.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3/metrics_service.pb.validate.go new file mode 100644 index 000000000..5c3688ab0 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3/metrics_service.pb.validate.go @@ -0,0 +1,121 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/metrics/v3/metrics_service.proto + +package envoy_config_metrics_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _metrics_service_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on MetricsServiceConfig with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *MetricsServiceConfig) Validate() error { + if m == nil { + return nil + } + + if m.GetGrpcService() == nil { + return MetricsServiceConfigValidationError{ + field: "GrpcService", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetGrpcService()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return MetricsServiceConfigValidationError{ + field: "GrpcService", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// MetricsServiceConfigValidationError is the validation error returned by +// MetricsServiceConfig.Validate if the designated constraints aren't met. +type MetricsServiceConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MetricsServiceConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MetricsServiceConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MetricsServiceConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MetricsServiceConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MetricsServiceConfigValidationError) ErrorName() string { + return "MetricsServiceConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e MetricsServiceConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMetricsServiceConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MetricsServiceConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MetricsServiceConfigValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3/stats.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3/stats.pb.go new file mode 100644 index 000000000..30fee4565 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3/stats.pb.go @@ -0,0 +1,626 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/metrics/v3/stats.proto + +package envoy_config_metrics_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v31 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + v3 "github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + any "github.com/golang/protobuf/ptypes/any" + _struct "github.com/golang/protobuf/ptypes/struct" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type StatsSink struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Types that are valid to be assigned to ConfigType: + // *StatsSink_HiddenEnvoyDeprecatedConfig + // *StatsSink_TypedConfig + ConfigType isStatsSink_ConfigType `protobuf_oneof:"config_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StatsSink) Reset() { *m = StatsSink{} } +func (m *StatsSink) String() string { return proto.CompactTextString(m) } +func (*StatsSink) ProtoMessage() {} +func (*StatsSink) Descriptor() ([]byte, []int) { + return fileDescriptor_38edc339428e9971, []int{0} +} + +func (m *StatsSink) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StatsSink.Unmarshal(m, b) +} +func (m *StatsSink) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StatsSink.Marshal(b, m, deterministic) +} +func (m *StatsSink) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatsSink.Merge(m, src) +} +func (m *StatsSink) XXX_Size() int { + return xxx_messageInfo_StatsSink.Size(m) +} +func (m *StatsSink) XXX_DiscardUnknown() { + xxx_messageInfo_StatsSink.DiscardUnknown(m) +} + +var xxx_messageInfo_StatsSink proto.InternalMessageInfo + +func (m *StatsSink) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type isStatsSink_ConfigType interface { + isStatsSink_ConfigType() +} + +type StatsSink_HiddenEnvoyDeprecatedConfig struct { + HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"` +} + +type StatsSink_TypedConfig struct { + TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"` +} + +func (*StatsSink_HiddenEnvoyDeprecatedConfig) isStatsSink_ConfigType() {} + +func (*StatsSink_TypedConfig) isStatsSink_ConfigType() {} + +func (m *StatsSink) GetConfigType() isStatsSink_ConfigType { + if m != nil { + return m.ConfigType + } + return nil +} + +// Deprecated: Do not use. +func (m *StatsSink) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct { + if x, ok := m.GetConfigType().(*StatsSink_HiddenEnvoyDeprecatedConfig); ok { + return x.HiddenEnvoyDeprecatedConfig + } + return nil +} + +func (m *StatsSink) GetTypedConfig() *any.Any { + if x, ok := m.GetConfigType().(*StatsSink_TypedConfig); ok { + return x.TypedConfig + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*StatsSink) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*StatsSink_HiddenEnvoyDeprecatedConfig)(nil), + (*StatsSink_TypedConfig)(nil), + } +} + +type StatsConfig struct { + StatsTags []*TagSpecifier `protobuf:"bytes,1,rep,name=stats_tags,json=statsTags,proto3" json:"stats_tags,omitempty"` + UseAllDefaultTags *wrappers.BoolValue `protobuf:"bytes,2,opt,name=use_all_default_tags,json=useAllDefaultTags,proto3" json:"use_all_default_tags,omitempty"` + StatsMatcher *StatsMatcher `protobuf:"bytes,3,opt,name=stats_matcher,json=statsMatcher,proto3" json:"stats_matcher,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StatsConfig) Reset() { *m = StatsConfig{} } +func (m *StatsConfig) String() string { return proto.CompactTextString(m) } +func (*StatsConfig) ProtoMessage() {} +func (*StatsConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_38edc339428e9971, []int{1} +} + +func (m *StatsConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StatsConfig.Unmarshal(m, b) +} +func (m *StatsConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StatsConfig.Marshal(b, m, deterministic) +} +func (m *StatsConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatsConfig.Merge(m, src) +} +func (m *StatsConfig) XXX_Size() int { + return xxx_messageInfo_StatsConfig.Size(m) +} +func (m *StatsConfig) XXX_DiscardUnknown() { + xxx_messageInfo_StatsConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_StatsConfig proto.InternalMessageInfo + +func (m *StatsConfig) GetStatsTags() []*TagSpecifier { + if m != nil { + return m.StatsTags + } + return nil +} + +func (m *StatsConfig) GetUseAllDefaultTags() *wrappers.BoolValue { + if m != nil { + return m.UseAllDefaultTags + } + return nil +} + +func (m *StatsConfig) GetStatsMatcher() *StatsMatcher { + if m != nil { + return m.StatsMatcher + } + return nil +} + +type StatsMatcher struct { + // Types that are valid to be assigned to StatsMatcher: + // *StatsMatcher_RejectAll + // *StatsMatcher_ExclusionList + // *StatsMatcher_InclusionList + StatsMatcher isStatsMatcher_StatsMatcher `protobuf_oneof:"stats_matcher"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StatsMatcher) Reset() { *m = StatsMatcher{} } +func (m *StatsMatcher) String() string { return proto.CompactTextString(m) } +func (*StatsMatcher) ProtoMessage() {} +func (*StatsMatcher) Descriptor() ([]byte, []int) { + return fileDescriptor_38edc339428e9971, []int{2} +} + +func (m *StatsMatcher) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StatsMatcher.Unmarshal(m, b) +} +func (m *StatsMatcher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StatsMatcher.Marshal(b, m, deterministic) +} +func (m *StatsMatcher) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatsMatcher.Merge(m, src) +} +func (m *StatsMatcher) XXX_Size() int { + return xxx_messageInfo_StatsMatcher.Size(m) +} +func (m *StatsMatcher) XXX_DiscardUnknown() { + xxx_messageInfo_StatsMatcher.DiscardUnknown(m) +} + +var xxx_messageInfo_StatsMatcher proto.InternalMessageInfo + +type isStatsMatcher_StatsMatcher interface { + isStatsMatcher_StatsMatcher() +} + +type StatsMatcher_RejectAll struct { + RejectAll bool `protobuf:"varint,1,opt,name=reject_all,json=rejectAll,proto3,oneof"` +} + +type StatsMatcher_ExclusionList struct { + ExclusionList *v3.ListStringMatcher `protobuf:"bytes,2,opt,name=exclusion_list,json=exclusionList,proto3,oneof"` +} + +type StatsMatcher_InclusionList struct { + InclusionList *v3.ListStringMatcher `protobuf:"bytes,3,opt,name=inclusion_list,json=inclusionList,proto3,oneof"` +} + +func (*StatsMatcher_RejectAll) isStatsMatcher_StatsMatcher() {} + +func (*StatsMatcher_ExclusionList) isStatsMatcher_StatsMatcher() {} + +func (*StatsMatcher_InclusionList) isStatsMatcher_StatsMatcher() {} + +func (m *StatsMatcher) GetStatsMatcher() isStatsMatcher_StatsMatcher { + if m != nil { + return m.StatsMatcher + } + return nil +} + +func (m *StatsMatcher) GetRejectAll() bool { + if x, ok := m.GetStatsMatcher().(*StatsMatcher_RejectAll); ok { + return x.RejectAll + } + return false +} + +func (m *StatsMatcher) GetExclusionList() *v3.ListStringMatcher { + if x, ok := m.GetStatsMatcher().(*StatsMatcher_ExclusionList); ok { + return x.ExclusionList + } + return nil +} + +func (m *StatsMatcher) GetInclusionList() *v3.ListStringMatcher { + if x, ok := m.GetStatsMatcher().(*StatsMatcher_InclusionList); ok { + return x.InclusionList + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*StatsMatcher) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*StatsMatcher_RejectAll)(nil), + (*StatsMatcher_ExclusionList)(nil), + (*StatsMatcher_InclusionList)(nil), + } +} + +type TagSpecifier struct { + TagName string `protobuf:"bytes,1,opt,name=tag_name,json=tagName,proto3" json:"tag_name,omitempty"` + // Types that are valid to be assigned to TagValue: + // *TagSpecifier_Regex + // *TagSpecifier_FixedValue + TagValue isTagSpecifier_TagValue `protobuf_oneof:"tag_value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TagSpecifier) Reset() { *m = TagSpecifier{} } +func (m *TagSpecifier) String() string { return proto.CompactTextString(m) } +func (*TagSpecifier) ProtoMessage() {} +func (*TagSpecifier) Descriptor() ([]byte, []int) { + return fileDescriptor_38edc339428e9971, []int{3} +} + +func (m *TagSpecifier) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TagSpecifier.Unmarshal(m, b) +} +func (m *TagSpecifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TagSpecifier.Marshal(b, m, deterministic) +} +func (m *TagSpecifier) XXX_Merge(src proto.Message) { + xxx_messageInfo_TagSpecifier.Merge(m, src) +} +func (m *TagSpecifier) XXX_Size() int { + return xxx_messageInfo_TagSpecifier.Size(m) +} +func (m *TagSpecifier) XXX_DiscardUnknown() { + xxx_messageInfo_TagSpecifier.DiscardUnknown(m) +} + +var xxx_messageInfo_TagSpecifier proto.InternalMessageInfo + +func (m *TagSpecifier) GetTagName() string { + if m != nil { + return m.TagName + } + return "" +} + +type isTagSpecifier_TagValue interface { + isTagSpecifier_TagValue() +} + +type TagSpecifier_Regex struct { + Regex string `protobuf:"bytes,2,opt,name=regex,proto3,oneof"` +} + +type TagSpecifier_FixedValue struct { + FixedValue string `protobuf:"bytes,3,opt,name=fixed_value,json=fixedValue,proto3,oneof"` +} + +func (*TagSpecifier_Regex) isTagSpecifier_TagValue() {} + +func (*TagSpecifier_FixedValue) isTagSpecifier_TagValue() {} + +func (m *TagSpecifier) GetTagValue() isTagSpecifier_TagValue { + if m != nil { + return m.TagValue + } + return nil +} + +func (m *TagSpecifier) GetRegex() string { + if x, ok := m.GetTagValue().(*TagSpecifier_Regex); ok { + return x.Regex + } + return "" +} + +func (m *TagSpecifier) GetFixedValue() string { + if x, ok := m.GetTagValue().(*TagSpecifier_FixedValue); ok { + return x.FixedValue + } + return "" +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*TagSpecifier) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*TagSpecifier_Regex)(nil), + (*TagSpecifier_FixedValue)(nil), + } +} + +type StatsdSink struct { + // Types that are valid to be assigned to StatsdSpecifier: + // *StatsdSink_Address + // *StatsdSink_TcpClusterName + StatsdSpecifier isStatsdSink_StatsdSpecifier `protobuf_oneof:"statsd_specifier"` + Prefix string `protobuf:"bytes,3,opt,name=prefix,proto3" json:"prefix,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StatsdSink) Reset() { *m = StatsdSink{} } +func (m *StatsdSink) String() string { return proto.CompactTextString(m) } +func (*StatsdSink) ProtoMessage() {} +func (*StatsdSink) Descriptor() ([]byte, []int) { + return fileDescriptor_38edc339428e9971, []int{4} +} + +func (m *StatsdSink) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StatsdSink.Unmarshal(m, b) +} +func (m *StatsdSink) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StatsdSink.Marshal(b, m, deterministic) +} +func (m *StatsdSink) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatsdSink.Merge(m, src) +} +func (m *StatsdSink) XXX_Size() int { + return xxx_messageInfo_StatsdSink.Size(m) +} +func (m *StatsdSink) XXX_DiscardUnknown() { + xxx_messageInfo_StatsdSink.DiscardUnknown(m) +} + +var xxx_messageInfo_StatsdSink proto.InternalMessageInfo + +type isStatsdSink_StatsdSpecifier interface { + isStatsdSink_StatsdSpecifier() +} + +type StatsdSink_Address struct { + Address *v31.Address `protobuf:"bytes,1,opt,name=address,proto3,oneof"` +} + +type StatsdSink_TcpClusterName struct { + TcpClusterName string `protobuf:"bytes,2,opt,name=tcp_cluster_name,json=tcpClusterName,proto3,oneof"` +} + +func (*StatsdSink_Address) isStatsdSink_StatsdSpecifier() {} + +func (*StatsdSink_TcpClusterName) isStatsdSink_StatsdSpecifier() {} + +func (m *StatsdSink) GetStatsdSpecifier() isStatsdSink_StatsdSpecifier { + if m != nil { + return m.StatsdSpecifier + } + return nil +} + +func (m *StatsdSink) GetAddress() *v31.Address { + if x, ok := m.GetStatsdSpecifier().(*StatsdSink_Address); ok { + return x.Address + } + return nil +} + +func (m *StatsdSink) GetTcpClusterName() string { + if x, ok := m.GetStatsdSpecifier().(*StatsdSink_TcpClusterName); ok { + return x.TcpClusterName + } + return "" +} + +func (m *StatsdSink) GetPrefix() string { + if m != nil { + return m.Prefix + } + return "" +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*StatsdSink) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*StatsdSink_Address)(nil), + (*StatsdSink_TcpClusterName)(nil), + } +} + +type DogStatsdSink struct { + // Types that are valid to be assigned to DogStatsdSpecifier: + // *DogStatsdSink_Address + DogStatsdSpecifier isDogStatsdSink_DogStatsdSpecifier `protobuf_oneof:"dog_statsd_specifier"` + Prefix string `protobuf:"bytes,3,opt,name=prefix,proto3" json:"prefix,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DogStatsdSink) Reset() { *m = DogStatsdSink{} } +func (m *DogStatsdSink) String() string { return proto.CompactTextString(m) } +func (*DogStatsdSink) ProtoMessage() {} +func (*DogStatsdSink) Descriptor() ([]byte, []int) { + return fileDescriptor_38edc339428e9971, []int{5} +} + +func (m *DogStatsdSink) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DogStatsdSink.Unmarshal(m, b) +} +func (m *DogStatsdSink) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DogStatsdSink.Marshal(b, m, deterministic) +} +func (m *DogStatsdSink) XXX_Merge(src proto.Message) { + xxx_messageInfo_DogStatsdSink.Merge(m, src) +} +func (m *DogStatsdSink) XXX_Size() int { + return xxx_messageInfo_DogStatsdSink.Size(m) +} +func (m *DogStatsdSink) XXX_DiscardUnknown() { + xxx_messageInfo_DogStatsdSink.DiscardUnknown(m) +} + +var xxx_messageInfo_DogStatsdSink proto.InternalMessageInfo + +type isDogStatsdSink_DogStatsdSpecifier interface { + isDogStatsdSink_DogStatsdSpecifier() +} + +type DogStatsdSink_Address struct { + Address *v31.Address `protobuf:"bytes,1,opt,name=address,proto3,oneof"` +} + +func (*DogStatsdSink_Address) isDogStatsdSink_DogStatsdSpecifier() {} + +func (m *DogStatsdSink) GetDogStatsdSpecifier() isDogStatsdSink_DogStatsdSpecifier { + if m != nil { + return m.DogStatsdSpecifier + } + return nil +} + +func (m *DogStatsdSink) GetAddress() *v31.Address { + if x, ok := m.GetDogStatsdSpecifier().(*DogStatsdSink_Address); ok { + return x.Address + } + return nil +} + +func (m *DogStatsdSink) GetPrefix() string { + if m != nil { + return m.Prefix + } + return "" +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*DogStatsdSink) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*DogStatsdSink_Address)(nil), + } +} + +type HystrixSink struct { + NumBuckets int64 `protobuf:"varint,1,opt,name=num_buckets,json=numBuckets,proto3" json:"num_buckets,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HystrixSink) Reset() { *m = HystrixSink{} } +func (m *HystrixSink) String() string { return proto.CompactTextString(m) } +func (*HystrixSink) ProtoMessage() {} +func (*HystrixSink) Descriptor() ([]byte, []int) { + return fileDescriptor_38edc339428e9971, []int{6} +} + +func (m *HystrixSink) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HystrixSink.Unmarshal(m, b) +} +func (m *HystrixSink) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HystrixSink.Marshal(b, m, deterministic) +} +func (m *HystrixSink) XXX_Merge(src proto.Message) { + xxx_messageInfo_HystrixSink.Merge(m, src) +} +func (m *HystrixSink) XXX_Size() int { + return xxx_messageInfo_HystrixSink.Size(m) +} +func (m *HystrixSink) XXX_DiscardUnknown() { + xxx_messageInfo_HystrixSink.DiscardUnknown(m) +} + +var xxx_messageInfo_HystrixSink proto.InternalMessageInfo + +func (m *HystrixSink) GetNumBuckets() int64 { + if m != nil { + return m.NumBuckets + } + return 0 +} + +func init() { + proto.RegisterType((*StatsSink)(nil), "envoy.config.metrics.v3.StatsSink") + proto.RegisterType((*StatsConfig)(nil), "envoy.config.metrics.v3.StatsConfig") + proto.RegisterType((*StatsMatcher)(nil), "envoy.config.metrics.v3.StatsMatcher") + proto.RegisterType((*TagSpecifier)(nil), "envoy.config.metrics.v3.TagSpecifier") + proto.RegisterType((*StatsdSink)(nil), "envoy.config.metrics.v3.StatsdSink") + proto.RegisterType((*DogStatsdSink)(nil), "envoy.config.metrics.v3.DogStatsdSink") + proto.RegisterType((*HystrixSink)(nil), "envoy.config.metrics.v3.HystrixSink") +} + +func init() { + proto.RegisterFile("envoy/config/metrics/v3/stats.proto", fileDescriptor_38edc339428e9971) +} + +var fileDescriptor_38edc339428e9971 = []byte{ + // 834 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0x4d, 0x6f, 0xe2, 0x56, + 0x14, 0xc5, 0x30, 0x93, 0x81, 0x6b, 0x18, 0x51, 0x0b, 0x15, 0x66, 0xa6, 0x93, 0x21, 0xcc, 0xd0, + 0xd2, 0x69, 0x65, 0x4b, 0x64, 0x15, 0xa4, 0x2e, 0x70, 0xa8, 0x84, 0xd2, 0x0f, 0xa5, 0x26, 0xea, + 0xa2, 0x1b, 0xeb, 0x61, 0x3f, 0x9c, 0xd7, 0x18, 0x3f, 0xeb, 0xf9, 0x99, 0xc2, 0x2e, 0xcb, 0xfe, + 0x84, 0xaa, 0xbf, 0xa0, 0xfb, 0xee, 0xba, 0xaf, 0xd4, 0x5d, 0xd5, 0x5f, 0xd3, 0xaa, 0xab, 0xea, + 0x7d, 0x40, 0x21, 0x09, 0x89, 0x2a, 0x75, 0x87, 0xdf, 0xb9, 0xf7, 0xf8, 0x9c, 0xe3, 0x7b, 0x1f, + 0xf0, 0x1a, 0x27, 0x0b, 0xba, 0x72, 0x02, 0x9a, 0xcc, 0x48, 0xe4, 0xcc, 0x31, 0x67, 0x24, 0xc8, + 0x9c, 0xc5, 0xb1, 0x93, 0x71, 0xc4, 0x33, 0x3b, 0x65, 0x94, 0x53, 0xab, 0x29, 0x8b, 0x6c, 0x55, + 0x64, 0xeb, 0x22, 0x7b, 0x71, 0xfc, 0xbc, 0xb3, 0xd3, 0x1d, 0x50, 0x86, 0x45, 0x2b, 0x0a, 0x43, + 0x86, 0x33, 0xdd, 0xbc, 0xae, 0xe1, 0xab, 0x14, 0x3b, 0x73, 0xc4, 0x83, 0x4b, 0xcc, 0x14, 0x3f, + 0x23, 0x49, 0xa4, 0x6b, 0x9e, 0x45, 0x94, 0x46, 0x31, 0x76, 0xe4, 0xd3, 0x34, 0x9f, 0x39, 0x28, + 0x59, 0x69, 0xe8, 0xbd, 0x9b, 0x50, 0xc6, 0x59, 0x1e, 0x70, 0x8d, 0x1e, 0xde, 0x44, 0xbf, 0x63, + 0x28, 0x4d, 0x31, 0x5b, 0xbf, 0xfc, 0x65, 0x1e, 0xa6, 0xc8, 0x41, 0x49, 0x42, 0x39, 0xe2, 0x84, + 0x26, 0x99, 0xf4, 0x95, 0xaf, 0xe1, 0xa3, 0x5b, 0xf0, 0x02, 0xb3, 0x8c, 0xd0, 0xe4, 0x5f, 0x69, + 0xcd, 0x05, 0x8a, 0x49, 0x88, 0x38, 0x76, 0xd6, 0x3f, 0x14, 0xd0, 0xf9, 0xd3, 0x80, 0xca, 0x44, + 0x84, 0x34, 0x21, 0xc9, 0x95, 0x65, 0xc1, 0xa3, 0x04, 0xcd, 0x71, 0xcb, 0x68, 0x1b, 0xbd, 0x8a, + 0x27, 0x7f, 0x5b, 0x53, 0x38, 0xbc, 0x24, 0x61, 0x88, 0x13, 0x5f, 0x46, 0xe0, 0x87, 0x38, 0x65, + 0x38, 0x40, 0x1c, 0x87, 0xbe, 0x4a, 0xac, 0x55, 0x6c, 0x1b, 0x3d, 0xb3, 0xdf, 0xb4, 0x95, 0x0b, + 0x7b, 0xed, 0xc2, 0x9e, 0x48, 0x8f, 0x6e, 0xb1, 0x65, 0x8c, 0x0b, 0xde, 0x0b, 0x45, 0xf2, 0xa9, + 0xe0, 0x18, 0x6d, 0x28, 0x4e, 0x25, 0x83, 0x75, 0x02, 0x55, 0x91, 0xec, 0x86, 0xb1, 0x24, 0x19, + 0x1b, 0xb7, 0x18, 0x87, 0xc9, 0x6a, 0x5c, 0xf0, 0x4c, 0x59, 0xab, 0x5a, 0x07, 0xbd, 0x1f, 0x7f, + 0xfd, 0xfe, 0xf0, 0x35, 0x1c, 0xdd, 0xfd, 0x71, 0xfb, 0xf6, 0xc6, 0x9c, 0x5b, 0x03, 0x53, 0xc1, + 0xbe, 0xe8, 0xef, 0xfc, 0x50, 0x04, 0x53, 0x82, 0x5a, 0xc3, 0x08, 0x40, 0x4e, 0x8b, 0xcf, 0x51, + 0x94, 0xb5, 0x8c, 0x76, 0xa9, 0x67, 0xf6, 0xbb, 0xf6, 0x9e, 0x99, 0xb1, 0x2f, 0x50, 0x34, 0x49, + 0x71, 0x40, 0x66, 0x04, 0x33, 0xaf, 0x22, 0x1b, 0x2f, 0x50, 0x94, 0x59, 0x9f, 0x41, 0x23, 0xcf, + 0xb0, 0x8f, 0xe2, 0xd8, 0x0f, 0xf1, 0x0c, 0xe5, 0x31, 0x57, 0x7c, 0x2a, 0xa3, 0xe7, 0xb7, 0x1c, + 0xb9, 0x94, 0xc6, 0x5f, 0xa3, 0x38, 0xc7, 0xde, 0x3b, 0x79, 0x86, 0x87, 0x71, 0x3c, 0x52, 0x5d, + 0x92, 0xec, 0x0c, 0x6a, 0x4a, 0x92, 0x9e, 0x38, 0x9d, 0xcb, 0x7e, 0x55, 0xd2, 0xcf, 0x17, 0xaa, + 0xd8, 0xab, 0x66, 0x5b, 0x4f, 0x83, 0xb7, 0x22, 0xa7, 0xae, 0xde, 0x94, 0x7d, 0x39, 0xa9, 0x28, + 0x44, 0x34, 0xd5, 0x6d, 0x2a, 0xeb, 0x15, 0x00, 0xc3, 0xdf, 0xe2, 0x80, 0x0b, 0x63, 0x72, 0x3a, + 0xca, 0xe3, 0x82, 0x57, 0x51, 0x67, 0xc3, 0x38, 0xb6, 0xbe, 0x82, 0xa7, 0x78, 0x19, 0xc4, 0xb9, + 0x98, 0x3a, 0x3f, 0x26, 0x19, 0xd7, 0x86, 0x7b, 0x5a, 0xaa, 0x48, 0xdc, 0xd6, 0x2e, 0x84, 0xd0, + 0xcf, 0x49, 0xc6, 0x27, 0x72, 0x77, 0xf4, 0x2b, 0xc6, 0x05, 0xaf, 0xb6, 0x61, 0x10, 0xa8, 0xa0, + 0x24, 0xc9, 0x0e, 0x65, 0xe9, 0xbf, 0x53, 0x6e, 0x18, 0x04, 0x3a, 0xf8, 0x48, 0x64, 0xf0, 0x3e, + 0xbc, 0xb9, 0x37, 0x03, 0xdd, 0xed, 0x36, 0x6e, 0x84, 0x6f, 0x95, 0xfe, 0x72, 0x8d, 0xce, 0x4f, + 0x06, 0x54, 0xb7, 0xbf, 0xbd, 0xf5, 0x0c, 0xca, 0x1c, 0x45, 0xfe, 0xd6, 0xda, 0x3c, 0xe1, 0x28, + 0xfa, 0x52, 0x6c, 0x4e, 0x1b, 0x1e, 0x33, 0x1c, 0xe1, 0xa5, 0xcc, 0xa2, 0xe2, 0x96, 0xff, 0x76, + 0x1f, 0xb3, 0x52, 0xef, 0x5a, 0x44, 0xa7, 0x00, 0xeb, 0x08, 0xcc, 0x19, 0x59, 0xe2, 0xd0, 0x5f, + 0x88, 0x11, 0x90, 0x06, 0x2b, 0xe3, 0x82, 0x07, 0xf2, 0x50, 0x8e, 0xc5, 0x83, 0x9a, 0xb7, 0xc5, + 0xb8, 0x26, 0x54, 0x84, 0x18, 0xc9, 0xd6, 0xf9, 0xdd, 0x00, 0x90, 0x8e, 0x42, 0xb9, 0xdb, 0x27, + 0xf0, 0x44, 0x5f, 0x69, 0x52, 0xa7, 0xd9, 0x7f, 0xb9, 0x3b, 0x46, 0xe2, 0xde, 0x13, 0x39, 0x0e, + 0x55, 0xd1, 0xb8, 0xe0, 0xad, 0xeb, 0xad, 0xb7, 0x50, 0xe7, 0x41, 0xea, 0x8b, 0x28, 0x39, 0x66, + 0xca, 0x6b, 0x51, 0x6b, 0x7d, 0xca, 0x83, 0xf4, 0x54, 0x01, 0xd2, 0xf4, 0xbb, 0x70, 0x90, 0x32, + 0x3c, 0x23, 0x4b, 0xe5, 0xc6, 0xd3, 0x4f, 0x83, 0x0f, 0x85, 0x8f, 0x37, 0xd0, 0xb9, 0x37, 0x7b, + 0xa9, 0xd4, 0x6d, 0x42, 0x5d, 0x26, 0x1f, 0xfa, 0xd9, 0x26, 0x66, 0x19, 0xfe, 0xcf, 0x06, 0xd4, + 0x46, 0x34, 0xfa, 0x7f, 0x4c, 0xed, 0x13, 0xfa, 0xb1, 0x10, 0xfa, 0x01, 0x74, 0xf7, 0x09, 0xdd, + 0x11, 0xe0, 0xbe, 0x80, 0x46, 0x48, 0x23, 0xff, 0x4e, 0xbd, 0x67, 0x8f, 0xca, 0xc5, 0x7a, 0xa9, + 0xf3, 0x0d, 0x98, 0xe3, 0x95, 0xf8, 0xa3, 0x58, 0x4a, 0xc9, 0xaf, 0xc0, 0x4c, 0xf2, 0xb9, 0x3f, + 0xcd, 0x83, 0x2b, 0xcc, 0x95, 0xec, 0x92, 0x07, 0x49, 0x3e, 0x77, 0xd5, 0xc9, 0x83, 0x9b, 0xba, + 0x45, 0xe6, 0x7e, 0xf2, 0xcb, 0xf5, 0x6f, 0x7f, 0x1c, 0x14, 0xeb, 0x45, 0xe8, 0x12, 0xaa, 0xac, + 0xa7, 0x8c, 0x2e, 0x57, 0xfb, 0x6e, 0x08, 0x57, 0x4d, 0xc4, 0xb9, 0xb8, 0x7e, 0xce, 0x8d, 0xe9, + 0x81, 0xbc, 0x87, 0x8e, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x29, 0xc5, 0x9a, 0xd9, 0x40, 0x07, + 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3/stats.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3/stats.pb.validate.go new file mode 100644 index 000000000..d5a79bc6f --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3/stats.pb.validate.go @@ -0,0 +1,663 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/metrics/v3/stats.proto + +package envoy_config_metrics_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _stats_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on StatsSink with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *StatsSink) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Name + + switch m.ConfigType.(type) { + + case *StatsSink_HiddenEnvoyDeprecatedConfig: + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StatsSinkValidationError{ + field: "HiddenEnvoyDeprecatedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *StatsSink_TypedConfig: + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StatsSinkValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// StatsSinkValidationError is the validation error returned by +// StatsSink.Validate if the designated constraints aren't met. +type StatsSinkValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e StatsSinkValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e StatsSinkValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e StatsSinkValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e StatsSinkValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e StatsSinkValidationError) ErrorName() string { return "StatsSinkValidationError" } + +// Error satisfies the builtin error interface +func (e StatsSinkValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sStatsSink.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = StatsSinkValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = StatsSinkValidationError{} + +// Validate checks the field values on StatsConfig with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *StatsConfig) Validate() error { + if m == nil { + return nil + } + + for idx, item := range m.GetStatsTags() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StatsConfigValidationError{ + field: fmt.Sprintf("StatsTags[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetUseAllDefaultTags()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StatsConfigValidationError{ + field: "UseAllDefaultTags", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetStatsMatcher()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StatsConfigValidationError{ + field: "StatsMatcher", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// StatsConfigValidationError is the validation error returned by +// StatsConfig.Validate if the designated constraints aren't met. +type StatsConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e StatsConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e StatsConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e StatsConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e StatsConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e StatsConfigValidationError) ErrorName() string { return "StatsConfigValidationError" } + +// Error satisfies the builtin error interface +func (e StatsConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sStatsConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = StatsConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = StatsConfigValidationError{} + +// Validate checks the field values on StatsMatcher with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *StatsMatcher) Validate() error { + if m == nil { + return nil + } + + switch m.StatsMatcher.(type) { + + case *StatsMatcher_RejectAll: + // no validation rules for RejectAll + + case *StatsMatcher_ExclusionList: + + if v, ok := interface{}(m.GetExclusionList()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StatsMatcherValidationError{ + field: "ExclusionList", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *StatsMatcher_InclusionList: + + if v, ok := interface{}(m.GetInclusionList()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StatsMatcherValidationError{ + field: "InclusionList", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return StatsMatcherValidationError{ + field: "StatsMatcher", + reason: "value is required", + } + + } + + return nil +} + +// StatsMatcherValidationError is the validation error returned by +// StatsMatcher.Validate if the designated constraints aren't met. +type StatsMatcherValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e StatsMatcherValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e StatsMatcherValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e StatsMatcherValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e StatsMatcherValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e StatsMatcherValidationError) ErrorName() string { return "StatsMatcherValidationError" } + +// Error satisfies the builtin error interface +func (e StatsMatcherValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sStatsMatcher.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = StatsMatcherValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = StatsMatcherValidationError{} + +// Validate checks the field values on TagSpecifier with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *TagSpecifier) Validate() error { + if m == nil { + return nil + } + + // no validation rules for TagName + + switch m.TagValue.(type) { + + case *TagSpecifier_Regex: + + if len(m.GetRegex()) > 1024 { + return TagSpecifierValidationError{ + field: "Regex", + reason: "value length must be at most 1024 bytes", + } + } + + case *TagSpecifier_FixedValue: + // no validation rules for FixedValue + + } + + return nil +} + +// TagSpecifierValidationError is the validation error returned by +// TagSpecifier.Validate if the designated constraints aren't met. +type TagSpecifierValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TagSpecifierValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TagSpecifierValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TagSpecifierValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TagSpecifierValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TagSpecifierValidationError) ErrorName() string { return "TagSpecifierValidationError" } + +// Error satisfies the builtin error interface +func (e TagSpecifierValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTagSpecifier.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TagSpecifierValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TagSpecifierValidationError{} + +// Validate checks the field values on StatsdSink with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *StatsdSink) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Prefix + + switch m.StatsdSpecifier.(type) { + + case *StatsdSink_Address: + + if v, ok := interface{}(m.GetAddress()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StatsdSinkValidationError{ + field: "Address", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *StatsdSink_TcpClusterName: + // no validation rules for TcpClusterName + + default: + return StatsdSinkValidationError{ + field: "StatsdSpecifier", + reason: "value is required", + } + + } + + return nil +} + +// StatsdSinkValidationError is the validation error returned by +// StatsdSink.Validate if the designated constraints aren't met. +type StatsdSinkValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e StatsdSinkValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e StatsdSinkValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e StatsdSinkValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e StatsdSinkValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e StatsdSinkValidationError) ErrorName() string { return "StatsdSinkValidationError" } + +// Error satisfies the builtin error interface +func (e StatsdSinkValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sStatsdSink.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = StatsdSinkValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = StatsdSinkValidationError{} + +// Validate checks the field values on DogStatsdSink with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *DogStatsdSink) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Prefix + + switch m.DogStatsdSpecifier.(type) { + + case *DogStatsdSink_Address: + + if v, ok := interface{}(m.GetAddress()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DogStatsdSinkValidationError{ + field: "Address", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return DogStatsdSinkValidationError{ + field: "DogStatsdSpecifier", + reason: "value is required", + } + + } + + return nil +} + +// DogStatsdSinkValidationError is the validation error returned by +// DogStatsdSink.Validate if the designated constraints aren't met. +type DogStatsdSinkValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DogStatsdSinkValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DogStatsdSinkValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DogStatsdSinkValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DogStatsdSinkValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DogStatsdSinkValidationError) ErrorName() string { return "DogStatsdSinkValidationError" } + +// Error satisfies the builtin error interface +func (e DogStatsdSinkValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDogStatsdSink.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DogStatsdSinkValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DogStatsdSinkValidationError{} + +// Validate checks the field values on HystrixSink with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *HystrixSink) Validate() error { + if m == nil { + return nil + } + + // no validation rules for NumBuckets + + return nil +} + +// HystrixSinkValidationError is the validation error returned by +// HystrixSink.Validate if the designated constraints aren't met. +type HystrixSinkValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HystrixSinkValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HystrixSinkValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HystrixSinkValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HystrixSinkValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HystrixSinkValidationError) ErrorName() string { return "HystrixSinkValidationError" } + +// Error satisfies the builtin error interface +func (e HystrixSinkValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHystrixSink.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HystrixSinkValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HystrixSinkValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/rbac/v3/rbac.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/rbac/v3/rbac.pb.go new file mode 100644 index 000000000..219cd9784 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/rbac/v3/rbac.pb.go @@ -0,0 +1,740 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/rbac/v3/rbac.proto + +package envoy_config_rbac_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v32 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/route/v3" + v31 "github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + v1alpha1 "google.golang.org/genproto/googleapis/api/expr/v1alpha1" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type RBAC_Action int32 + +const ( + RBAC_ALLOW RBAC_Action = 0 + RBAC_DENY RBAC_Action = 1 +) + +var RBAC_Action_name = map[int32]string{ + 0: "ALLOW", + 1: "DENY", +} + +var RBAC_Action_value = map[string]int32{ + "ALLOW": 0, + "DENY": 1, +} + +func (x RBAC_Action) String() string { + return proto.EnumName(RBAC_Action_name, int32(x)) +} + +func (RBAC_Action) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_17db9cb79f9c2859, []int{0, 0} +} + +type RBAC struct { + Action RBAC_Action `protobuf:"varint,1,opt,name=action,proto3,enum=envoy.config.rbac.v3.RBAC_Action" json:"action,omitempty"` + Policies map[string]*Policy `protobuf:"bytes,2,rep,name=policies,proto3" json:"policies,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RBAC) Reset() { *m = RBAC{} } +func (m *RBAC) String() string { return proto.CompactTextString(m) } +func (*RBAC) ProtoMessage() {} +func (*RBAC) Descriptor() ([]byte, []int) { + return fileDescriptor_17db9cb79f9c2859, []int{0} +} + +func (m *RBAC) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RBAC.Unmarshal(m, b) +} +func (m *RBAC) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RBAC.Marshal(b, m, deterministic) +} +func (m *RBAC) XXX_Merge(src proto.Message) { + xxx_messageInfo_RBAC.Merge(m, src) +} +func (m *RBAC) XXX_Size() int { + return xxx_messageInfo_RBAC.Size(m) +} +func (m *RBAC) XXX_DiscardUnknown() { + xxx_messageInfo_RBAC.DiscardUnknown(m) +} + +var xxx_messageInfo_RBAC proto.InternalMessageInfo + +func (m *RBAC) GetAction() RBAC_Action { + if m != nil { + return m.Action + } + return RBAC_ALLOW +} + +func (m *RBAC) GetPolicies() map[string]*Policy { + if m != nil { + return m.Policies + } + return nil +} + +type Policy struct { + Permissions []*Permission `protobuf:"bytes,1,rep,name=permissions,proto3" json:"permissions,omitempty"` + Principals []*Principal `protobuf:"bytes,2,rep,name=principals,proto3" json:"principals,omitempty"` + Condition *v1alpha1.Expr `protobuf:"bytes,3,opt,name=condition,proto3" json:"condition,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Policy) Reset() { *m = Policy{} } +func (m *Policy) String() string { return proto.CompactTextString(m) } +func (*Policy) ProtoMessage() {} +func (*Policy) Descriptor() ([]byte, []int) { + return fileDescriptor_17db9cb79f9c2859, []int{1} +} + +func (m *Policy) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Policy.Unmarshal(m, b) +} +func (m *Policy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Policy.Marshal(b, m, deterministic) +} +func (m *Policy) XXX_Merge(src proto.Message) { + xxx_messageInfo_Policy.Merge(m, src) +} +func (m *Policy) XXX_Size() int { + return xxx_messageInfo_Policy.Size(m) +} +func (m *Policy) XXX_DiscardUnknown() { + xxx_messageInfo_Policy.DiscardUnknown(m) +} + +var xxx_messageInfo_Policy proto.InternalMessageInfo + +func (m *Policy) GetPermissions() []*Permission { + if m != nil { + return m.Permissions + } + return nil +} + +func (m *Policy) GetPrincipals() []*Principal { + if m != nil { + return m.Principals + } + return nil +} + +func (m *Policy) GetCondition() *v1alpha1.Expr { + if m != nil { + return m.Condition + } + return nil +} + +type Permission struct { + // Types that are valid to be assigned to Rule: + // *Permission_AndRules + // *Permission_OrRules + // *Permission_Any + // *Permission_Header + // *Permission_UrlPath + // *Permission_DestinationIp + // *Permission_DestinationPort + // *Permission_Metadata + // *Permission_NotRule + // *Permission_RequestedServerName + Rule isPermission_Rule `protobuf_oneof:"rule"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Permission) Reset() { *m = Permission{} } +func (m *Permission) String() string { return proto.CompactTextString(m) } +func (*Permission) ProtoMessage() {} +func (*Permission) Descriptor() ([]byte, []int) { + return fileDescriptor_17db9cb79f9c2859, []int{2} +} + +func (m *Permission) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Permission.Unmarshal(m, b) +} +func (m *Permission) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Permission.Marshal(b, m, deterministic) +} +func (m *Permission) XXX_Merge(src proto.Message) { + xxx_messageInfo_Permission.Merge(m, src) +} +func (m *Permission) XXX_Size() int { + return xxx_messageInfo_Permission.Size(m) +} +func (m *Permission) XXX_DiscardUnknown() { + xxx_messageInfo_Permission.DiscardUnknown(m) +} + +var xxx_messageInfo_Permission proto.InternalMessageInfo + +type isPermission_Rule interface { + isPermission_Rule() +} + +type Permission_AndRules struct { + AndRules *Permission_Set `protobuf:"bytes,1,opt,name=and_rules,json=andRules,proto3,oneof"` +} + +type Permission_OrRules struct { + OrRules *Permission_Set `protobuf:"bytes,2,opt,name=or_rules,json=orRules,proto3,oneof"` +} + +type Permission_Any struct { + Any bool `protobuf:"varint,3,opt,name=any,proto3,oneof"` +} + +type Permission_Header struct { + Header *v3.HeaderMatcher `protobuf:"bytes,4,opt,name=header,proto3,oneof"` +} + +type Permission_UrlPath struct { + UrlPath *v31.PathMatcher `protobuf:"bytes,10,opt,name=url_path,json=urlPath,proto3,oneof"` +} + +type Permission_DestinationIp struct { + DestinationIp *v32.CidrRange `protobuf:"bytes,5,opt,name=destination_ip,json=destinationIp,proto3,oneof"` +} + +type Permission_DestinationPort struct { + DestinationPort uint32 `protobuf:"varint,6,opt,name=destination_port,json=destinationPort,proto3,oneof"` +} + +type Permission_Metadata struct { + Metadata *v31.MetadataMatcher `protobuf:"bytes,7,opt,name=metadata,proto3,oneof"` +} + +type Permission_NotRule struct { + NotRule *Permission `protobuf:"bytes,8,opt,name=not_rule,json=notRule,proto3,oneof"` +} + +type Permission_RequestedServerName struct { + RequestedServerName *v31.StringMatcher `protobuf:"bytes,9,opt,name=requested_server_name,json=requestedServerName,proto3,oneof"` +} + +func (*Permission_AndRules) isPermission_Rule() {} + +func (*Permission_OrRules) isPermission_Rule() {} + +func (*Permission_Any) isPermission_Rule() {} + +func (*Permission_Header) isPermission_Rule() {} + +func (*Permission_UrlPath) isPermission_Rule() {} + +func (*Permission_DestinationIp) isPermission_Rule() {} + +func (*Permission_DestinationPort) isPermission_Rule() {} + +func (*Permission_Metadata) isPermission_Rule() {} + +func (*Permission_NotRule) isPermission_Rule() {} + +func (*Permission_RequestedServerName) isPermission_Rule() {} + +func (m *Permission) GetRule() isPermission_Rule { + if m != nil { + return m.Rule + } + return nil +} + +func (m *Permission) GetAndRules() *Permission_Set { + if x, ok := m.GetRule().(*Permission_AndRules); ok { + return x.AndRules + } + return nil +} + +func (m *Permission) GetOrRules() *Permission_Set { + if x, ok := m.GetRule().(*Permission_OrRules); ok { + return x.OrRules + } + return nil +} + +func (m *Permission) GetAny() bool { + if x, ok := m.GetRule().(*Permission_Any); ok { + return x.Any + } + return false +} + +func (m *Permission) GetHeader() *v3.HeaderMatcher { + if x, ok := m.GetRule().(*Permission_Header); ok { + return x.Header + } + return nil +} + +func (m *Permission) GetUrlPath() *v31.PathMatcher { + if x, ok := m.GetRule().(*Permission_UrlPath); ok { + return x.UrlPath + } + return nil +} + +func (m *Permission) GetDestinationIp() *v32.CidrRange { + if x, ok := m.GetRule().(*Permission_DestinationIp); ok { + return x.DestinationIp + } + return nil +} + +func (m *Permission) GetDestinationPort() uint32 { + if x, ok := m.GetRule().(*Permission_DestinationPort); ok { + return x.DestinationPort + } + return 0 +} + +func (m *Permission) GetMetadata() *v31.MetadataMatcher { + if x, ok := m.GetRule().(*Permission_Metadata); ok { + return x.Metadata + } + return nil +} + +func (m *Permission) GetNotRule() *Permission { + if x, ok := m.GetRule().(*Permission_NotRule); ok { + return x.NotRule + } + return nil +} + +func (m *Permission) GetRequestedServerName() *v31.StringMatcher { + if x, ok := m.GetRule().(*Permission_RequestedServerName); ok { + return x.RequestedServerName + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Permission) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*Permission_AndRules)(nil), + (*Permission_OrRules)(nil), + (*Permission_Any)(nil), + (*Permission_Header)(nil), + (*Permission_UrlPath)(nil), + (*Permission_DestinationIp)(nil), + (*Permission_DestinationPort)(nil), + (*Permission_Metadata)(nil), + (*Permission_NotRule)(nil), + (*Permission_RequestedServerName)(nil), + } +} + +type Permission_Set struct { + Rules []*Permission `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Permission_Set) Reset() { *m = Permission_Set{} } +func (m *Permission_Set) String() string { return proto.CompactTextString(m) } +func (*Permission_Set) ProtoMessage() {} +func (*Permission_Set) Descriptor() ([]byte, []int) { + return fileDescriptor_17db9cb79f9c2859, []int{2, 0} +} + +func (m *Permission_Set) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Permission_Set.Unmarshal(m, b) +} +func (m *Permission_Set) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Permission_Set.Marshal(b, m, deterministic) +} +func (m *Permission_Set) XXX_Merge(src proto.Message) { + xxx_messageInfo_Permission_Set.Merge(m, src) +} +func (m *Permission_Set) XXX_Size() int { + return xxx_messageInfo_Permission_Set.Size(m) +} +func (m *Permission_Set) XXX_DiscardUnknown() { + xxx_messageInfo_Permission_Set.DiscardUnknown(m) +} + +var xxx_messageInfo_Permission_Set proto.InternalMessageInfo + +func (m *Permission_Set) GetRules() []*Permission { + if m != nil { + return m.Rules + } + return nil +} + +type Principal struct { + // Types that are valid to be assigned to Identifier: + // *Principal_AndIds + // *Principal_OrIds + // *Principal_Any + // *Principal_Authenticated_ + // *Principal_SourceIp + // *Principal_Header + // *Principal_UrlPath + // *Principal_Metadata + // *Principal_NotId + Identifier isPrincipal_Identifier `protobuf_oneof:"identifier"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Principal) Reset() { *m = Principal{} } +func (m *Principal) String() string { return proto.CompactTextString(m) } +func (*Principal) ProtoMessage() {} +func (*Principal) Descriptor() ([]byte, []int) { + return fileDescriptor_17db9cb79f9c2859, []int{3} +} + +func (m *Principal) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Principal.Unmarshal(m, b) +} +func (m *Principal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Principal.Marshal(b, m, deterministic) +} +func (m *Principal) XXX_Merge(src proto.Message) { + xxx_messageInfo_Principal.Merge(m, src) +} +func (m *Principal) XXX_Size() int { + return xxx_messageInfo_Principal.Size(m) +} +func (m *Principal) XXX_DiscardUnknown() { + xxx_messageInfo_Principal.DiscardUnknown(m) +} + +var xxx_messageInfo_Principal proto.InternalMessageInfo + +type isPrincipal_Identifier interface { + isPrincipal_Identifier() +} + +type Principal_AndIds struct { + AndIds *Principal_Set `protobuf:"bytes,1,opt,name=and_ids,json=andIds,proto3,oneof"` +} + +type Principal_OrIds struct { + OrIds *Principal_Set `protobuf:"bytes,2,opt,name=or_ids,json=orIds,proto3,oneof"` +} + +type Principal_Any struct { + Any bool `protobuf:"varint,3,opt,name=any,proto3,oneof"` +} + +type Principal_Authenticated_ struct { + Authenticated *Principal_Authenticated `protobuf:"bytes,4,opt,name=authenticated,proto3,oneof"` +} + +type Principal_SourceIp struct { + SourceIp *v32.CidrRange `protobuf:"bytes,5,opt,name=source_ip,json=sourceIp,proto3,oneof"` +} + +type Principal_Header struct { + Header *v3.HeaderMatcher `protobuf:"bytes,6,opt,name=header,proto3,oneof"` +} + +type Principal_UrlPath struct { + UrlPath *v31.PathMatcher `protobuf:"bytes,9,opt,name=url_path,json=urlPath,proto3,oneof"` +} + +type Principal_Metadata struct { + Metadata *v31.MetadataMatcher `protobuf:"bytes,7,opt,name=metadata,proto3,oneof"` +} + +type Principal_NotId struct { + NotId *Principal `protobuf:"bytes,8,opt,name=not_id,json=notId,proto3,oneof"` +} + +func (*Principal_AndIds) isPrincipal_Identifier() {} + +func (*Principal_OrIds) isPrincipal_Identifier() {} + +func (*Principal_Any) isPrincipal_Identifier() {} + +func (*Principal_Authenticated_) isPrincipal_Identifier() {} + +func (*Principal_SourceIp) isPrincipal_Identifier() {} + +func (*Principal_Header) isPrincipal_Identifier() {} + +func (*Principal_UrlPath) isPrincipal_Identifier() {} + +func (*Principal_Metadata) isPrincipal_Identifier() {} + +func (*Principal_NotId) isPrincipal_Identifier() {} + +func (m *Principal) GetIdentifier() isPrincipal_Identifier { + if m != nil { + return m.Identifier + } + return nil +} + +func (m *Principal) GetAndIds() *Principal_Set { + if x, ok := m.GetIdentifier().(*Principal_AndIds); ok { + return x.AndIds + } + return nil +} + +func (m *Principal) GetOrIds() *Principal_Set { + if x, ok := m.GetIdentifier().(*Principal_OrIds); ok { + return x.OrIds + } + return nil +} + +func (m *Principal) GetAny() bool { + if x, ok := m.GetIdentifier().(*Principal_Any); ok { + return x.Any + } + return false +} + +func (m *Principal) GetAuthenticated() *Principal_Authenticated { + if x, ok := m.GetIdentifier().(*Principal_Authenticated_); ok { + return x.Authenticated + } + return nil +} + +func (m *Principal) GetSourceIp() *v32.CidrRange { + if x, ok := m.GetIdentifier().(*Principal_SourceIp); ok { + return x.SourceIp + } + return nil +} + +func (m *Principal) GetHeader() *v3.HeaderMatcher { + if x, ok := m.GetIdentifier().(*Principal_Header); ok { + return x.Header + } + return nil +} + +func (m *Principal) GetUrlPath() *v31.PathMatcher { + if x, ok := m.GetIdentifier().(*Principal_UrlPath); ok { + return x.UrlPath + } + return nil +} + +func (m *Principal) GetMetadata() *v31.MetadataMatcher { + if x, ok := m.GetIdentifier().(*Principal_Metadata); ok { + return x.Metadata + } + return nil +} + +func (m *Principal) GetNotId() *Principal { + if x, ok := m.GetIdentifier().(*Principal_NotId); ok { + return x.NotId + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Principal) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*Principal_AndIds)(nil), + (*Principal_OrIds)(nil), + (*Principal_Any)(nil), + (*Principal_Authenticated_)(nil), + (*Principal_SourceIp)(nil), + (*Principal_Header)(nil), + (*Principal_UrlPath)(nil), + (*Principal_Metadata)(nil), + (*Principal_NotId)(nil), + } +} + +type Principal_Set struct { + Ids []*Principal `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Principal_Set) Reset() { *m = Principal_Set{} } +func (m *Principal_Set) String() string { return proto.CompactTextString(m) } +func (*Principal_Set) ProtoMessage() {} +func (*Principal_Set) Descriptor() ([]byte, []int) { + return fileDescriptor_17db9cb79f9c2859, []int{3, 0} +} + +func (m *Principal_Set) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Principal_Set.Unmarshal(m, b) +} +func (m *Principal_Set) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Principal_Set.Marshal(b, m, deterministic) +} +func (m *Principal_Set) XXX_Merge(src proto.Message) { + xxx_messageInfo_Principal_Set.Merge(m, src) +} +func (m *Principal_Set) XXX_Size() int { + return xxx_messageInfo_Principal_Set.Size(m) +} +func (m *Principal_Set) XXX_DiscardUnknown() { + xxx_messageInfo_Principal_Set.DiscardUnknown(m) +} + +var xxx_messageInfo_Principal_Set proto.InternalMessageInfo + +func (m *Principal_Set) GetIds() []*Principal { + if m != nil { + return m.Ids + } + return nil +} + +type Principal_Authenticated struct { + PrincipalName *v31.StringMatcher `protobuf:"bytes,2,opt,name=principal_name,json=principalName,proto3" json:"principal_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Principal_Authenticated) Reset() { *m = Principal_Authenticated{} } +func (m *Principal_Authenticated) String() string { return proto.CompactTextString(m) } +func (*Principal_Authenticated) ProtoMessage() {} +func (*Principal_Authenticated) Descriptor() ([]byte, []int) { + return fileDescriptor_17db9cb79f9c2859, []int{3, 1} +} + +func (m *Principal_Authenticated) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Principal_Authenticated.Unmarshal(m, b) +} +func (m *Principal_Authenticated) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Principal_Authenticated.Marshal(b, m, deterministic) +} +func (m *Principal_Authenticated) XXX_Merge(src proto.Message) { + xxx_messageInfo_Principal_Authenticated.Merge(m, src) +} +func (m *Principal_Authenticated) XXX_Size() int { + return xxx_messageInfo_Principal_Authenticated.Size(m) +} +func (m *Principal_Authenticated) XXX_DiscardUnknown() { + xxx_messageInfo_Principal_Authenticated.DiscardUnknown(m) +} + +var xxx_messageInfo_Principal_Authenticated proto.InternalMessageInfo + +func (m *Principal_Authenticated) GetPrincipalName() *v31.StringMatcher { + if m != nil { + return m.PrincipalName + } + return nil +} + +func init() { + proto.RegisterEnum("envoy.config.rbac.v3.RBAC_Action", RBAC_Action_name, RBAC_Action_value) + proto.RegisterType((*RBAC)(nil), "envoy.config.rbac.v3.RBAC") + proto.RegisterMapType((map[string]*Policy)(nil), "envoy.config.rbac.v3.RBAC.PoliciesEntry") + proto.RegisterType((*Policy)(nil), "envoy.config.rbac.v3.Policy") + proto.RegisterType((*Permission)(nil), "envoy.config.rbac.v3.Permission") + proto.RegisterType((*Permission_Set)(nil), "envoy.config.rbac.v3.Permission.Set") + proto.RegisterType((*Principal)(nil), "envoy.config.rbac.v3.Principal") + proto.RegisterType((*Principal_Set)(nil), "envoy.config.rbac.v3.Principal.Set") + proto.RegisterType((*Principal_Authenticated)(nil), "envoy.config.rbac.v3.Principal.Authenticated") +} + +func init() { proto.RegisterFile("envoy/config/rbac/v3/rbac.proto", fileDescriptor_17db9cb79f9c2859) } + +var fileDescriptor_17db9cb79f9c2859 = []byte{ + // 1050 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xcf, 0x6f, 0xe3, 0x44, + 0x18, 0x8d, 0x9d, 0xc4, 0x71, 0xbe, 0x2a, 0x25, 0x0c, 0x20, 0x4c, 0x4a, 0xbb, 0xa9, 0xb7, 0x5d, + 0x95, 0xd5, 0xe2, 0x68, 0x53, 0x09, 0xed, 0x06, 0x28, 0xd4, 0xdd, 0x4a, 0x29, 0x74, 0x97, 0xca, + 0x15, 0x42, 0xcb, 0x25, 0x9a, 0xda, 0xb3, 0xcd, 0x40, 0x32, 0x63, 0xc6, 0x93, 0xa8, 0xb9, 0x81, + 0xb8, 0x70, 0xe6, 0x82, 0xc4, 0x95, 0xff, 0x82, 0x0b, 0x27, 0x24, 0xae, 0xfc, 0x37, 0xa8, 0x97, + 0x45, 0x33, 0x76, 0x7e, 0x2d, 0x69, 0x43, 0x61, 0x4f, 0xb1, 0x32, 0xef, 0xbd, 0xf9, 0xe6, 0xfb, + 0xde, 0x1b, 0x1b, 0x6e, 0x11, 0x36, 0xe4, 0xa3, 0x46, 0xc8, 0xd9, 0x33, 0x7a, 0xde, 0x10, 0x67, + 0x38, 0x6c, 0x0c, 0x77, 0xf5, 0xaf, 0x17, 0x0b, 0x2e, 0x39, 0x7a, 0x5d, 0x03, 0xbc, 0x14, 0xe0, + 0xe9, 0x85, 0xe1, 0x6e, 0xcd, 0x9d, 0xa3, 0x85, 0x5c, 0x10, 0x45, 0xc3, 0x51, 0x24, 0x48, 0x92, + 0xa4, 0xcc, 0xda, 0xbd, 0x79, 0x69, 0x3e, 0x90, 0x1a, 0xa4, 0x1f, 0x3a, 0x21, 0xef, 0xc7, 0x9c, + 0x11, 0x26, 0xc7, 0xe8, 0xad, 0x14, 0x2d, 0x47, 0x31, 0x69, 0xf4, 0xb1, 0x0c, 0xbb, 0x44, 0x28, + 0x74, 0x9f, 0x48, 0x1c, 0x61, 0x89, 0x33, 0x54, 0x7d, 0x31, 0x2a, 0xc6, 0xb2, 0x9b, 0x21, 0xdc, + 0xc5, 0x88, 0x44, 0x0a, 0xca, 0xce, 0x33, 0xcc, 0xf6, 0x39, 0xe7, 0xe7, 0x3d, 0xd2, 0xc0, 0x31, + 0x6d, 0x90, 0x8b, 0x58, 0x34, 0x86, 0xf7, 0x71, 0x2f, 0xee, 0xe2, 0xfb, 0x8d, 0x64, 0xc4, 0x24, + 0xbe, 0xc8, 0x60, 0xeb, 0x83, 0x28, 0xc6, 0x0d, 0xcc, 0x18, 0x97, 0x58, 0x52, 0xce, 0x92, 0x46, + 0x22, 0xb1, 0x1c, 0x8c, 0x2b, 0xde, 0xfc, 0xc7, 0xf2, 0x90, 0x88, 0x84, 0x72, 0x36, 0xdd, 0xe8, + 0xcd, 0x21, 0xee, 0xd1, 0x08, 0xab, 0x83, 0x67, 0x0f, 0xe9, 0x82, 0xfb, 0x8b, 0x09, 0x85, 0xc0, + 0xdf, 0x3f, 0x40, 0x0f, 0xc1, 0xc2, 0xa1, 0x62, 0x3b, 0x46, 0xdd, 0xd8, 0x59, 0x6d, 0x6e, 0x7a, + 0x8b, 0xfa, 0xed, 0x29, 0xac, 0xb7, 0xaf, 0x81, 0x41, 0x46, 0x40, 0x8f, 0xc0, 0x8e, 0x79, 0x8f, + 0x86, 0x94, 0x24, 0x8e, 0x59, 0xcf, 0xef, 0xac, 0x34, 0x77, 0xae, 0x21, 0x9f, 0x64, 0xd0, 0x43, + 0x26, 0xc5, 0x28, 0x98, 0x30, 0x6b, 0x4f, 0xa1, 0x32, 0xb7, 0x84, 0xaa, 0x90, 0xff, 0x9a, 0x8c, + 0x74, 0x39, 0xe5, 0x40, 0x3d, 0xa2, 0x26, 0x14, 0x87, 0xb8, 0x37, 0x20, 0x8e, 0x59, 0x37, 0x76, + 0x56, 0x9a, 0x6f, 0x2f, 0xde, 0x45, 0xab, 0x8c, 0x82, 0x14, 0xda, 0x32, 0x1f, 0x18, 0xee, 0x3a, + 0x58, 0x69, 0xc9, 0xa8, 0x0c, 0xc5, 0xfd, 0xe3, 0xe3, 0xcf, 0xbe, 0xa8, 0xe6, 0x90, 0x0d, 0x85, + 0x47, 0x87, 0x4f, 0x9e, 0x56, 0x8d, 0x56, 0xfd, 0xe7, 0xdf, 0x7f, 0xd8, 0x58, 0x83, 0xb7, 0x16, + 0xa8, 0x35, 0x75, 0xcd, 0xee, 0xf7, 0x26, 0x58, 0xa9, 0x2c, 0x3a, 0x86, 0x95, 0x98, 0x88, 0x3e, + 0x4d, 0x54, 0x83, 0x13, 0xc7, 0xd0, 0xe7, 0xad, 0x5f, 0x51, 0xc9, 0x04, 0xe8, 0xdb, 0x97, 0x7e, + 0xf1, 0x47, 0xc3, 0xb4, 0x8d, 0x60, 0x96, 0x8e, 0x8e, 0x00, 0x62, 0x41, 0x59, 0x48, 0x63, 0xdc, + 0x1b, 0x37, 0xef, 0xd6, 0x15, 0x62, 0x63, 0xdc, 0x8c, 0xd6, 0x0c, 0x19, 0x7d, 0x00, 0xe5, 0x90, + 0xb3, 0x88, 0xea, 0x19, 0xe6, 0x75, 0x83, 0x36, 0xbc, 0xd4, 0x5f, 0x1e, 0x8e, 0xa9, 0xa7, 0xfc, + 0xe5, 0x8d, 0xfd, 0xe5, 0x1d, 0x5e, 0xc4, 0x22, 0x98, 0x12, 0x5a, 0xae, 0xea, 0xc1, 0x3a, 0xac, + 0x2d, 0xec, 0x41, 0x7a, 0x74, 0xf7, 0x37, 0x0b, 0x60, 0x7a, 0x24, 0x74, 0x00, 0x65, 0xcc, 0xa2, + 0x8e, 0x18, 0xf4, 0x48, 0xa2, 0xa7, 0xb4, 0xd2, 0xdc, 0x5a, 0xd6, 0x07, 0xef, 0x94, 0xc8, 0x76, + 0x2e, 0xb0, 0x31, 0x8b, 0x02, 0xc5, 0x43, 0xfb, 0x60, 0x73, 0x91, 0x69, 0x98, 0x37, 0xd2, 0x28, + 0x71, 0x91, 0x4a, 0xac, 0x41, 0x1e, 0xb3, 0x91, 0x3e, 0xb2, 0xed, 0x97, 0x2e, 0xfd, 0xc2, 0x57, + 0xa6, 0x6d, 0xb4, 0x73, 0x81, 0xfa, 0x17, 0xed, 0x81, 0xd5, 0x25, 0x38, 0x22, 0xc2, 0x29, 0x2c, + 0x54, 0x57, 0x77, 0x80, 0x92, 0x6f, 0x6b, 0xd0, 0xe3, 0x34, 0xa7, 0xed, 0x5c, 0x90, 0xb1, 0xd0, + 0x47, 0x60, 0x0f, 0x44, 0xaf, 0xa3, 0x72, 0xed, 0x80, 0x56, 0x70, 0x33, 0x05, 0x15, 0x6c, 0x2f, + 0x0b, 0xb6, 0x2e, 0x10, 0xcb, 0xee, 0x94, 0x5f, 0x1a, 0x88, 0x9e, 0xfa, 0x07, 0xb5, 0x61, 0x35, + 0x22, 0x89, 0xa4, 0x4c, 0x47, 0xb3, 0x43, 0x63, 0xa7, 0xa8, 0x65, 0x5e, 0x98, 0xb2, 0xba, 0xb9, + 0x94, 0xca, 0x01, 0x8d, 0x44, 0x80, 0xd9, 0x39, 0x69, 0xe7, 0x82, 0xca, 0x0c, 0xf1, 0x28, 0x46, + 0xef, 0x41, 0x75, 0x56, 0x29, 0xe6, 0x42, 0x3a, 0x56, 0xdd, 0xd8, 0xa9, 0xf8, 0xe5, 0x4b, 0xdf, + 0xba, 0x5b, 0x70, 0x9e, 0x3f, 0xcf, 0xb7, 0x73, 0xc1, 0x2b, 0x33, 0xa0, 0x13, 0x2e, 0xa4, 0x8a, + 0xe7, 0xf8, 0xf2, 0x72, 0x4a, 0x7a, 0xef, 0x3b, 0x57, 0x1c, 0xe1, 0x71, 0x06, 0x9b, 0x1e, 0x63, + 0xc2, 0x44, 0x1f, 0x82, 0xcd, 0xb8, 0xd4, 0x93, 0x72, 0x6c, 0xad, 0xb2, 0xd4, 0xf4, 0xaa, 0x0d, + 0x8c, 0x4b, 0x35, 0x25, 0xf4, 0x25, 0xbc, 0x21, 0xc8, 0x37, 0x03, 0x92, 0x48, 0x12, 0x75, 0x12, + 0x22, 0x86, 0x44, 0x74, 0x18, 0xee, 0x13, 0xa7, 0x3c, 0x37, 0x96, 0x17, 0x2b, 0x3a, 0xd5, 0xb7, + 0xe5, 0xb4, 0x9e, 0xd7, 0x26, 0x22, 0xa7, 0x5a, 0xe3, 0x09, 0xee, 0x93, 0x5a, 0x02, 0xf9, 0x53, + 0x22, 0xd1, 0xc7, 0x50, 0x1c, 0x7b, 0xf1, 0xa6, 0x99, 0x4c, 0x89, 0xad, 0xbb, 0x2a, 0x04, 0xdb, + 0x70, 0x7b, 0x71, 0x08, 0xe6, 0x0c, 0xd8, 0xba, 0xa3, 0xb0, 0x9b, 0xd9, 0x6b, 0xeb, 0x6a, 0xac, + 0xbf, 0x02, 0x05, 0x25, 0x8e, 0xf2, 0x7f, 0xf9, 0x86, 0xfb, 0x5d, 0x09, 0xca, 0x93, 0x1c, 0xa3, + 0x3d, 0x28, 0xa9, 0x00, 0xd1, 0x68, 0x1c, 0x9f, 0xdb, 0x4b, 0x92, 0x9f, 0x39, 0xdf, 0xc2, 0x2c, + 0x3a, 0x8a, 0x54, 0xe2, 0x2d, 0x2e, 0x34, 0xdd, 0xbc, 0x09, 0xbd, 0xc8, 0x85, 0x62, 0x5f, 0x1b, + 0x9b, 0xcf, 0xa1, 0x82, 0x07, 0xb2, 0x4b, 0x98, 0xa4, 0x21, 0x96, 0x24, 0xca, 0xd2, 0xf3, 0xee, + 0xb2, 0x1d, 0xf6, 0x67, 0x49, 0xca, 0xc2, 0x73, 0x2a, 0x68, 0x0f, 0xca, 0x09, 0x1f, 0x88, 0x90, + 0xdc, 0x28, 0x07, 0x76, 0xca, 0x39, 0x8a, 0x67, 0xd2, 0x6c, 0xfd, 0xef, 0x34, 0x97, 0xff, 0x4b, + 0x9a, 0x5f, 0x4e, 0x96, 0x1e, 0x80, 0xa5, 0xb2, 0x44, 0xa3, 0x2c, 0x49, 0xcb, 0x6e, 0x7c, 0x35, + 0x34, 0xc6, 0xe5, 0x51, 0x54, 0xeb, 0xa7, 0x56, 0x7f, 0x1f, 0xf2, 0xa9, 0x6b, 0x6e, 0xf8, 0xbe, + 0x50, 0xac, 0xd6, 0x3b, 0xca, 0xb9, 0x5b, 0xe0, 0x2e, 0x76, 0xee, 0xac, 0x59, 0x6a, 0x3f, 0x19, + 0x50, 0x99, 0x1b, 0x29, 0xfa, 0x14, 0x56, 0x27, 0xef, 0x9c, 0x34, 0xc0, 0xe6, 0xbf, 0x0f, 0x70, + 0x50, 0x99, 0x70, 0x55, 0x70, 0x5b, 0xbb, 0xaa, 0x12, 0x0f, 0xee, 0x2d, 0xa9, 0x64, 0xae, 0x82, + 0x4f, 0x0a, 0xb6, 0x51, 0x35, 0x5b, 0xdb, 0x8a, 0x5a, 0x87, 0x8d, 0xeb, 0xa9, 0xfe, 0xab, 0x00, + 0x34, 0x52, 0xdc, 0x67, 0x94, 0x08, 0x9d, 0x41, 0xff, 0xe1, 0xaf, 0xdf, 0xfe, 0xf1, 0xa7, 0x65, + 0x56, 0x4d, 0x70, 0x29, 0x4f, 0xab, 0x8e, 0x05, 0xbf, 0x18, 0x2d, 0xec, 0xa2, 0x5f, 0x0e, 0xce, + 0x70, 0x78, 0xa2, 0x3e, 0x95, 0x4e, 0x8c, 0x33, 0x4b, 0x7f, 0x33, 0xed, 0xfe, 0x1d, 0x00, 0x00, + 0xff, 0xff, 0x9e, 0xc6, 0xfc, 0x9b, 0xac, 0x0a, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/rbac/v3/rbac.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/rbac/v3/rbac.pb.validate.go new file mode 100644 index 000000000..33df455f4 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/rbac/v3/rbac.pb.validate.go @@ -0,0 +1,856 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/rbac/v3/rbac.proto + +package envoy_config_rbac_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _rbac_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on RBAC with the rules defined in the proto +// definition for this message. If any rules are violated, an error is returned. +func (m *RBAC) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Action + + for key, val := range m.GetPolicies() { + _ = val + + // no validation rules for Policies[key] + + if v, ok := interface{}(val).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RBACValidationError{ + field: fmt.Sprintf("Policies[%v]", key), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// RBACValidationError is the validation error returned by RBAC.Validate if the +// designated constraints aren't met. +type RBACValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RBACValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RBACValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RBACValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RBACValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RBACValidationError) ErrorName() string { return "RBACValidationError" } + +// Error satisfies the builtin error interface +func (e RBACValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRBAC.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RBACValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RBACValidationError{} + +// Validate checks the field values on Policy with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Policy) Validate() error { + if m == nil { + return nil + } + + if len(m.GetPermissions()) < 1 { + return PolicyValidationError{ + field: "Permissions", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetPermissions() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PolicyValidationError{ + field: fmt.Sprintf("Permissions[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(m.GetPrincipals()) < 1 { + return PolicyValidationError{ + field: "Principals", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetPrincipals() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PolicyValidationError{ + field: fmt.Sprintf("Principals[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetCondition()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PolicyValidationError{ + field: "Condition", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// PolicyValidationError is the validation error returned by Policy.Validate if +// the designated constraints aren't met. +type PolicyValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e PolicyValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e PolicyValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e PolicyValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e PolicyValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e PolicyValidationError) ErrorName() string { return "PolicyValidationError" } + +// Error satisfies the builtin error interface +func (e PolicyValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sPolicy.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = PolicyValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = PolicyValidationError{} + +// Validate checks the field values on Permission with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Permission) Validate() error { + if m == nil { + return nil + } + + switch m.Rule.(type) { + + case *Permission_AndRules: + + if v, ok := interface{}(m.GetAndRules()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PermissionValidationError{ + field: "AndRules", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Permission_OrRules: + + if v, ok := interface{}(m.GetOrRules()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PermissionValidationError{ + field: "OrRules", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Permission_Any: + + if m.GetAny() != true { + return PermissionValidationError{ + field: "Any", + reason: "value must equal true", + } + } + + case *Permission_Header: + + if v, ok := interface{}(m.GetHeader()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PermissionValidationError{ + field: "Header", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Permission_UrlPath: + + if v, ok := interface{}(m.GetUrlPath()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PermissionValidationError{ + field: "UrlPath", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Permission_DestinationIp: + + if v, ok := interface{}(m.GetDestinationIp()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PermissionValidationError{ + field: "DestinationIp", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Permission_DestinationPort: + + if m.GetDestinationPort() > 65535 { + return PermissionValidationError{ + field: "DestinationPort", + reason: "value must be less than or equal to 65535", + } + } + + case *Permission_Metadata: + + if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PermissionValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Permission_NotRule: + + if v, ok := interface{}(m.GetNotRule()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PermissionValidationError{ + field: "NotRule", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Permission_RequestedServerName: + + if v, ok := interface{}(m.GetRequestedServerName()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PermissionValidationError{ + field: "RequestedServerName", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return PermissionValidationError{ + field: "Rule", + reason: "value is required", + } + + } + + return nil +} + +// PermissionValidationError is the validation error returned by +// Permission.Validate if the designated constraints aren't met. +type PermissionValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e PermissionValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e PermissionValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e PermissionValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e PermissionValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e PermissionValidationError) ErrorName() string { return "PermissionValidationError" } + +// Error satisfies the builtin error interface +func (e PermissionValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sPermission.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = PermissionValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = PermissionValidationError{} + +// Validate checks the field values on Principal with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Principal) Validate() error { + if m == nil { + return nil + } + + switch m.Identifier.(type) { + + case *Principal_AndIds: + + if v, ok := interface{}(m.GetAndIds()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PrincipalValidationError{ + field: "AndIds", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Principal_OrIds: + + if v, ok := interface{}(m.GetOrIds()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PrincipalValidationError{ + field: "OrIds", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Principal_Any: + + if m.GetAny() != true { + return PrincipalValidationError{ + field: "Any", + reason: "value must equal true", + } + } + + case *Principal_Authenticated_: + + if v, ok := interface{}(m.GetAuthenticated()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PrincipalValidationError{ + field: "Authenticated", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Principal_SourceIp: + + if v, ok := interface{}(m.GetSourceIp()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PrincipalValidationError{ + field: "SourceIp", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Principal_Header: + + if v, ok := interface{}(m.GetHeader()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PrincipalValidationError{ + field: "Header", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Principal_UrlPath: + + if v, ok := interface{}(m.GetUrlPath()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PrincipalValidationError{ + field: "UrlPath", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Principal_Metadata: + + if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PrincipalValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Principal_NotId: + + if v, ok := interface{}(m.GetNotId()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PrincipalValidationError{ + field: "NotId", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return PrincipalValidationError{ + field: "Identifier", + reason: "value is required", + } + + } + + return nil +} + +// PrincipalValidationError is the validation error returned by +// Principal.Validate if the designated constraints aren't met. +type PrincipalValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e PrincipalValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e PrincipalValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e PrincipalValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e PrincipalValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e PrincipalValidationError) ErrorName() string { return "PrincipalValidationError" } + +// Error satisfies the builtin error interface +func (e PrincipalValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sPrincipal.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = PrincipalValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = PrincipalValidationError{} + +// Validate checks the field values on Permission_Set with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *Permission_Set) Validate() error { + if m == nil { + return nil + } + + if len(m.GetRules()) < 1 { + return Permission_SetValidationError{ + field: "Rules", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetRules() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Permission_SetValidationError{ + field: fmt.Sprintf("Rules[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// Permission_SetValidationError is the validation error returned by +// Permission_Set.Validate if the designated constraints aren't met. +type Permission_SetValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Permission_SetValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Permission_SetValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Permission_SetValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Permission_SetValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Permission_SetValidationError) ErrorName() string { return "Permission_SetValidationError" } + +// Error satisfies the builtin error interface +func (e Permission_SetValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sPermission_Set.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Permission_SetValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Permission_SetValidationError{} + +// Validate checks the field values on Principal_Set with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *Principal_Set) Validate() error { + if m == nil { + return nil + } + + if len(m.GetIds()) < 1 { + return Principal_SetValidationError{ + field: "Ids", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetIds() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Principal_SetValidationError{ + field: fmt.Sprintf("Ids[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// Principal_SetValidationError is the validation error returned by +// Principal_Set.Validate if the designated constraints aren't met. +type Principal_SetValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Principal_SetValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Principal_SetValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Principal_SetValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Principal_SetValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Principal_SetValidationError) ErrorName() string { return "Principal_SetValidationError" } + +// Error satisfies the builtin error interface +func (e Principal_SetValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sPrincipal_Set.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Principal_SetValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Principal_SetValidationError{} + +// Validate checks the field values on Principal_Authenticated with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *Principal_Authenticated) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetPrincipalName()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Principal_AuthenticatedValidationError{ + field: "PrincipalName", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// Principal_AuthenticatedValidationError is the validation error returned by +// Principal_Authenticated.Validate if the designated constraints aren't met. +type Principal_AuthenticatedValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Principal_AuthenticatedValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Principal_AuthenticatedValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Principal_AuthenticatedValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Principal_AuthenticatedValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Principal_AuthenticatedValidationError) ErrorName() string { + return "Principal_AuthenticatedValidationError" +} + +// Error satisfies the builtin error interface +func (e Principal_AuthenticatedValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sPrincipal_Authenticated.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Principal_AuthenticatedValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Principal_AuthenticatedValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/route.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/route.pb.go new file mode 100644 index 000000000..a11cedcb7 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/route.pb.go @@ -0,0 +1,226 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/route/v3/route.proto + +package envoy_config_route_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type RouteConfiguration struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + VirtualHosts []*VirtualHost `protobuf:"bytes,2,rep,name=virtual_hosts,json=virtualHosts,proto3" json:"virtual_hosts,omitempty"` + Vhds *Vhds `protobuf:"bytes,9,opt,name=vhds,proto3" json:"vhds,omitempty"` + InternalOnlyHeaders []string `protobuf:"bytes,3,rep,name=internal_only_headers,json=internalOnlyHeaders,proto3" json:"internal_only_headers,omitempty"` + ResponseHeadersToAdd []*v3.HeaderValueOption `protobuf:"bytes,4,rep,name=response_headers_to_add,json=responseHeadersToAdd,proto3" json:"response_headers_to_add,omitempty"` + ResponseHeadersToRemove []string `protobuf:"bytes,5,rep,name=response_headers_to_remove,json=responseHeadersToRemove,proto3" json:"response_headers_to_remove,omitempty"` + RequestHeadersToAdd []*v3.HeaderValueOption `protobuf:"bytes,6,rep,name=request_headers_to_add,json=requestHeadersToAdd,proto3" json:"request_headers_to_add,omitempty"` + RequestHeadersToRemove []string `protobuf:"bytes,8,rep,name=request_headers_to_remove,json=requestHeadersToRemove,proto3" json:"request_headers_to_remove,omitempty"` + MostSpecificHeaderMutationsWins bool `protobuf:"varint,10,opt,name=most_specific_header_mutations_wins,json=mostSpecificHeaderMutationsWins,proto3" json:"most_specific_header_mutations_wins,omitempty"` + ValidateClusters *wrappers.BoolValue `protobuf:"bytes,7,opt,name=validate_clusters,json=validateClusters,proto3" json:"validate_clusters,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RouteConfiguration) Reset() { *m = RouteConfiguration{} } +func (m *RouteConfiguration) String() string { return proto.CompactTextString(m) } +func (*RouteConfiguration) ProtoMessage() {} +func (*RouteConfiguration) Descriptor() ([]byte, []int) { + return fileDescriptor_bdb402428dbbe6a7, []int{0} +} + +func (m *RouteConfiguration) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RouteConfiguration.Unmarshal(m, b) +} +func (m *RouteConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RouteConfiguration.Marshal(b, m, deterministic) +} +func (m *RouteConfiguration) XXX_Merge(src proto.Message) { + xxx_messageInfo_RouteConfiguration.Merge(m, src) +} +func (m *RouteConfiguration) XXX_Size() int { + return xxx_messageInfo_RouteConfiguration.Size(m) +} +func (m *RouteConfiguration) XXX_DiscardUnknown() { + xxx_messageInfo_RouteConfiguration.DiscardUnknown(m) +} + +var xxx_messageInfo_RouteConfiguration proto.InternalMessageInfo + +func (m *RouteConfiguration) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *RouteConfiguration) GetVirtualHosts() []*VirtualHost { + if m != nil { + return m.VirtualHosts + } + return nil +} + +func (m *RouteConfiguration) GetVhds() *Vhds { + if m != nil { + return m.Vhds + } + return nil +} + +func (m *RouteConfiguration) GetInternalOnlyHeaders() []string { + if m != nil { + return m.InternalOnlyHeaders + } + return nil +} + +func (m *RouteConfiguration) GetResponseHeadersToAdd() []*v3.HeaderValueOption { + if m != nil { + return m.ResponseHeadersToAdd + } + return nil +} + +func (m *RouteConfiguration) GetResponseHeadersToRemove() []string { + if m != nil { + return m.ResponseHeadersToRemove + } + return nil +} + +func (m *RouteConfiguration) GetRequestHeadersToAdd() []*v3.HeaderValueOption { + if m != nil { + return m.RequestHeadersToAdd + } + return nil +} + +func (m *RouteConfiguration) GetRequestHeadersToRemove() []string { + if m != nil { + return m.RequestHeadersToRemove + } + return nil +} + +func (m *RouteConfiguration) GetMostSpecificHeaderMutationsWins() bool { + if m != nil { + return m.MostSpecificHeaderMutationsWins + } + return false +} + +func (m *RouteConfiguration) GetValidateClusters() *wrappers.BoolValue { + if m != nil { + return m.ValidateClusters + } + return nil +} + +type Vhds struct { + ConfigSource *v3.ConfigSource `protobuf:"bytes,1,opt,name=config_source,json=configSource,proto3" json:"config_source,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Vhds) Reset() { *m = Vhds{} } +func (m *Vhds) String() string { return proto.CompactTextString(m) } +func (*Vhds) ProtoMessage() {} +func (*Vhds) Descriptor() ([]byte, []int) { + return fileDescriptor_bdb402428dbbe6a7, []int{1} +} + +func (m *Vhds) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Vhds.Unmarshal(m, b) +} +func (m *Vhds) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Vhds.Marshal(b, m, deterministic) +} +func (m *Vhds) XXX_Merge(src proto.Message) { + xxx_messageInfo_Vhds.Merge(m, src) +} +func (m *Vhds) XXX_Size() int { + return xxx_messageInfo_Vhds.Size(m) +} +func (m *Vhds) XXX_DiscardUnknown() { + xxx_messageInfo_Vhds.DiscardUnknown(m) +} + +var xxx_messageInfo_Vhds proto.InternalMessageInfo + +func (m *Vhds) GetConfigSource() *v3.ConfigSource { + if m != nil { + return m.ConfigSource + } + return nil +} + +func init() { + proto.RegisterType((*RouteConfiguration)(nil), "envoy.config.route.v3.RouteConfiguration") + proto.RegisterType((*Vhds)(nil), "envoy.config.route.v3.Vhds") +} + +func init() { proto.RegisterFile("envoy/config/route/v3/route.proto", fileDescriptor_bdb402428dbbe6a7) } + +var fileDescriptor_bdb402428dbbe6a7 = []byte{ + // 629 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x93, 0xc1, 0x4e, 0xdb, 0x4c, + 0x10, 0xc7, 0x3f, 0x27, 0x21, 0x24, 0x0b, 0x48, 0xc1, 0x7c, 0x80, 0x9b, 0xaa, 0x10, 0x82, 0xd4, + 0xfa, 0x50, 0xd9, 0x12, 0xdc, 0xe8, 0xa9, 0xa6, 0x12, 0x48, 0x2d, 0x82, 0x9a, 0x8a, 0x1e, 0xad, + 0xc5, 0x5e, 0x92, 0x95, 0x9c, 0x1d, 0x77, 0x77, 0x6d, 0x9a, 0x5b, 0x8f, 0x55, 0x8f, 0x5c, 0x2a, + 0xf5, 0x51, 0x7a, 0xea, 0xa5, 0x12, 0xd7, 0xbe, 0x45, 0x9f, 0x81, 0x53, 0xe5, 0xdd, 0xb5, 0xda, + 0x90, 0xa4, 0x87, 0xde, 0x76, 0x3d, 0xff, 0xf9, 0xcf, 0x6f, 0xd6, 0x33, 0x68, 0x87, 0xb0, 0x02, + 0xc6, 0x7e, 0x0c, 0xec, 0x8a, 0x0e, 0x7c, 0x0e, 0xb9, 0x24, 0x7e, 0xb1, 0xaf, 0x0f, 0x5e, 0xc6, + 0x41, 0x82, 0xbd, 0xae, 0x24, 0x9e, 0x96, 0x78, 0x3a, 0x52, 0xec, 0x77, 0xb7, 0x27, 0x32, 0x63, + 0xe0, 0x2a, 0xf1, 0x12, 0x0b, 0x93, 0xd7, 0x75, 0x67, 0x0a, 0xf4, 0x35, 0x12, 0x90, 0xf3, 0xb8, + 0x52, 0x3e, 0xfd, 0x0b, 0x44, 0x14, 0xc3, 0x28, 0x03, 0x46, 0x98, 0x14, 0x46, 0xbd, 0x35, 0x00, + 0x18, 0xa4, 0xc4, 0x57, 0xb7, 0xcb, 0xfc, 0xca, 0xbf, 0xe6, 0x38, 0xcb, 0x08, 0xaf, 0xe2, 0x8f, + 0xf2, 0x24, 0xc3, 0x3e, 0x66, 0x0c, 0x24, 0x96, 0x14, 0x98, 0xf0, 0x85, 0xc4, 0x32, 0xaf, 0xc2, + 0x3b, 0x53, 0xe1, 0x82, 0x70, 0x41, 0x81, 0x51, 0x36, 0x30, 0x92, 0xcd, 0x02, 0xa7, 0x34, 0xc1, + 0x25, 0x85, 0x39, 0xe8, 0x40, 0xff, 0x73, 0x13, 0xd9, 0x61, 0x49, 0x75, 0xa8, 0x50, 0x73, 0xae, + 0x1c, 0x6c, 0x1b, 0x35, 0x18, 0x1e, 0x11, 0xc7, 0xea, 0x59, 0x6e, 0x3b, 0x54, 0x67, 0xfb, 0x08, + 0xad, 0x14, 0x94, 0xcb, 0x1c, 0xa7, 0xd1, 0x10, 0x84, 0x14, 0x4e, 0xad, 0x57, 0x77, 0x97, 0xf6, + 0xfa, 0xde, 0xcc, 0xd7, 0xf4, 0x2e, 0xb4, 0xf6, 0x18, 0x84, 0x0c, 0x97, 0x8b, 0xdf, 0x17, 0x61, + 0xfb, 0xa8, 0x51, 0x0c, 0x13, 0xe1, 0xb4, 0x7b, 0x96, 0xbb, 0xb4, 0xf7, 0x70, 0x5e, 0xfe, 0x30, + 0x11, 0xa1, 0x12, 0xda, 0x2f, 0xd0, 0x3a, 0x65, 0x92, 0x70, 0x86, 0xd3, 0x08, 0x58, 0x3a, 0x8e, + 0x86, 0x04, 0x27, 0x84, 0x0b, 0xa7, 0xde, 0xab, 0xbb, 0xed, 0xa0, 0x73, 0x17, 0xac, 0xdc, 0x58, + 0xa8, 0xdf, 0xe2, 0xcd, 0x6f, 0x96, 0x75, 0x6b, 0xfd, 0x17, 0xae, 0x55, 0xf2, 0x53, 0x96, 0x8e, + 0x8f, 0xb5, 0xd8, 0xa6, 0x68, 0x93, 0x13, 0x91, 0x01, 0x13, 0xa4, 0x32, 0x88, 0x24, 0x44, 0x38, + 0x49, 0x9c, 0x86, 0xea, 0xe4, 0xc9, 0x24, 0x49, 0xf9, 0x7f, 0x4b, 0x10, 0x9d, 0x7f, 0x81, 0xd3, + 0x9c, 0x9c, 0x66, 0xe5, 0xeb, 0x04, 0xed, 0xbb, 0xa0, 0x79, 0x63, 0xd5, 0x3b, 0x3f, 0x17, 0xc3, + 0xff, 0x2b, 0x4b, 0x53, 0xe5, 0x0d, 0x3c, 0x4f, 0x12, 0xfb, 0x04, 0x75, 0x67, 0x95, 0xe2, 0x64, + 0x04, 0x05, 0x71, 0x16, 0xe6, 0x50, 0x6f, 0x4e, 0x79, 0x85, 0x2a, 0xc1, 0x1e, 0xa0, 0x0d, 0x4e, + 0xde, 0xe5, 0x44, 0xc8, 0xfb, 0xe0, 0xcd, 0x7f, 0x06, 0x5f, 0x33, 0x8e, 0x13, 0xdc, 0x2f, 0xd1, + 0x83, 0x19, 0x85, 0x0c, 0x76, 0x6b, 0x0e, 0xf6, 0xc6, 0x7d, 0x27, 0x43, 0xfd, 0x0a, 0xed, 0x8e, + 0x40, 0xc8, 0x48, 0x64, 0x24, 0xa6, 0x57, 0x34, 0x36, 0x96, 0xd1, 0x28, 0x37, 0x63, 0x1a, 0x5d, + 0x53, 0x26, 0x1c, 0xd4, 0xb3, 0xdc, 0x56, 0xb8, 0x5d, 0x4a, 0xcf, 0x8d, 0x52, 0x3b, 0x9d, 0x54, + 0xba, 0xb7, 0x94, 0x09, 0xfb, 0x08, 0xad, 0x56, 0xa3, 0x1b, 0xc5, 0x69, 0x2e, 0x64, 0xf9, 0xff, + 0x17, 0xd5, 0x04, 0x75, 0x3d, 0xbd, 0x3f, 0x5e, 0xb5, 0x3f, 0x5e, 0x00, 0x90, 0xaa, 0xbe, 0xc3, + 0x4e, 0x95, 0x74, 0x68, 0x72, 0x0e, 0x1e, 0x7f, 0xf9, 0xfe, 0x71, 0x6b, 0x07, 0xe9, 0x65, 0xf7, + 0x70, 0x46, 0xbd, 0x62, 0xcf, 0x9b, 0x5e, 0x81, 0xbe, 0x40, 0x8d, 0x72, 0x04, 0xed, 0xd7, 0x68, + 0x65, 0x62, 0xc3, 0xd5, 0x4e, 0x4c, 0x8d, 0x7d, 0xf5, 0xe6, 0xda, 0xe3, 0x5c, 0x29, 0x83, 0xd6, + 0x5d, 0xb0, 0xf0, 0xc9, 0xaa, 0x75, 0xac, 0x70, 0x39, 0xfe, 0xe3, 0xfb, 0x81, 0x53, 0x22, 0xac, + 0xa1, 0xd5, 0x09, 0x84, 0xb2, 0x58, 0xf0, 0xec, 0xeb, 0x87, 0xdb, 0x1f, 0xcd, 0x5a, 0xa7, 0x86, + 0x76, 0x29, 0xe8, 0x0a, 0x19, 0x87, 0xf7, 0xe3, 0xd9, 0x3b, 0x12, 0x20, 0xc5, 0x7d, 0x56, 0xb6, + 0x7d, 0x66, 0x5d, 0x36, 0x55, 0xff, 0xfb, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0xa7, 0xc2, 0x3f, + 0xae, 0x02, 0x05, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/route.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/route.pb.validate.go new file mode 100644 index 000000000..b96b873bc --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/route.pb.validate.go @@ -0,0 +1,310 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/route/v3/route.proto + +package envoy_config_route_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _route_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on RouteConfiguration with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *RouteConfiguration) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Name + + for idx, item := range m.GetVirtualHosts() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteConfigurationValidationError{ + field: fmt.Sprintf("VirtualHosts[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetVhds()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteConfigurationValidationError{ + field: "Vhds", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetInternalOnlyHeaders() { + _, _ = idx, item + + if !_RouteConfiguration_InternalOnlyHeaders_Pattern.MatchString(item) { + return RouteConfigurationValidationError{ + field: fmt.Sprintf("InternalOnlyHeaders[%v]", idx), + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + } + + } + + if len(m.GetResponseHeadersToAdd()) > 1000 { + return RouteConfigurationValidationError{ + field: "ResponseHeadersToAdd", + reason: "value must contain no more than 1000 item(s)", + } + } + + for idx, item := range m.GetResponseHeadersToAdd() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteConfigurationValidationError{ + field: fmt.Sprintf("ResponseHeadersToAdd[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for idx, item := range m.GetResponseHeadersToRemove() { + _, _ = idx, item + + if !_RouteConfiguration_ResponseHeadersToRemove_Pattern.MatchString(item) { + return RouteConfigurationValidationError{ + field: fmt.Sprintf("ResponseHeadersToRemove[%v]", idx), + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + } + + } + + if len(m.GetRequestHeadersToAdd()) > 1000 { + return RouteConfigurationValidationError{ + field: "RequestHeadersToAdd", + reason: "value must contain no more than 1000 item(s)", + } + } + + for idx, item := range m.GetRequestHeadersToAdd() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteConfigurationValidationError{ + field: fmt.Sprintf("RequestHeadersToAdd[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for idx, item := range m.GetRequestHeadersToRemove() { + _, _ = idx, item + + if !_RouteConfiguration_RequestHeadersToRemove_Pattern.MatchString(item) { + return RouteConfigurationValidationError{ + field: fmt.Sprintf("RequestHeadersToRemove[%v]", idx), + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + } + + } + + // no validation rules for MostSpecificHeaderMutationsWins + + if v, ok := interface{}(m.GetValidateClusters()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteConfigurationValidationError{ + field: "ValidateClusters", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// RouteConfigurationValidationError is the validation error returned by +// RouteConfiguration.Validate if the designated constraints aren't met. +type RouteConfigurationValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RouteConfigurationValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RouteConfigurationValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RouteConfigurationValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RouteConfigurationValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RouteConfigurationValidationError) ErrorName() string { + return "RouteConfigurationValidationError" +} + +// Error satisfies the builtin error interface +func (e RouteConfigurationValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRouteConfiguration.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RouteConfigurationValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RouteConfigurationValidationError{} + +var _RouteConfiguration_InternalOnlyHeaders_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +var _RouteConfiguration_ResponseHeadersToRemove_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +var _RouteConfiguration_RequestHeadersToRemove_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +// Validate checks the field values on Vhds with the rules defined in the proto +// definition for this message. If any rules are violated, an error is returned. +func (m *Vhds) Validate() error { + if m == nil { + return nil + } + + if m.GetConfigSource() == nil { + return VhdsValidationError{ + field: "ConfigSource", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetConfigSource()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return VhdsValidationError{ + field: "ConfigSource", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// VhdsValidationError is the validation error returned by Vhds.Validate if the +// designated constraints aren't met. +type VhdsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e VhdsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e VhdsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e VhdsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e VhdsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e VhdsValidationError) ErrorName() string { return "VhdsValidationError" } + +// Error satisfies the builtin error interface +func (e VhdsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sVhds.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = VhdsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = VhdsValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/route_components.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/route_components.pb.go new file mode 100644 index 000000000..3663f3ee4 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/route_components.pb.go @@ -0,0 +1,3755 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/route/v3/route_components.proto + +package envoy_config_route_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/go-control-plane/envoy/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + v31 "github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3" + v33 "github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3" + v32 "github.com/envoyproxy/go-control-plane/envoy/type/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + any "github.com/golang/protobuf/ptypes/any" + duration "github.com/golang/protobuf/ptypes/duration" + _struct "github.com/golang/protobuf/ptypes/struct" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type VirtualHost_TlsRequirementType int32 + +const ( + VirtualHost_NONE VirtualHost_TlsRequirementType = 0 + VirtualHost_EXTERNAL_ONLY VirtualHost_TlsRequirementType = 1 + VirtualHost_ALL VirtualHost_TlsRequirementType = 2 +) + +var VirtualHost_TlsRequirementType_name = map[int32]string{ + 0: "NONE", + 1: "EXTERNAL_ONLY", + 2: "ALL", +} + +var VirtualHost_TlsRequirementType_value = map[string]int32{ + "NONE": 0, + "EXTERNAL_ONLY": 1, + "ALL": 2, +} + +func (x VirtualHost_TlsRequirementType) String() string { + return proto.EnumName(VirtualHost_TlsRequirementType_name, int32(x)) +} + +func (VirtualHost_TlsRequirementType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{0, 0} +} + +type RouteAction_ClusterNotFoundResponseCode int32 + +const ( + RouteAction_SERVICE_UNAVAILABLE RouteAction_ClusterNotFoundResponseCode = 0 + RouteAction_NOT_FOUND RouteAction_ClusterNotFoundResponseCode = 1 +) + +var RouteAction_ClusterNotFoundResponseCode_name = map[int32]string{ + 0: "SERVICE_UNAVAILABLE", + 1: "NOT_FOUND", +} + +var RouteAction_ClusterNotFoundResponseCode_value = map[string]int32{ + "SERVICE_UNAVAILABLE": 0, + "NOT_FOUND": 1, +} + +func (x RouteAction_ClusterNotFoundResponseCode) String() string { + return proto.EnumName(RouteAction_ClusterNotFoundResponseCode_name, int32(x)) +} + +func (RouteAction_ClusterNotFoundResponseCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{6, 0} +} + +type RouteAction_InternalRedirectAction int32 + +const ( + RouteAction_PASS_THROUGH_INTERNAL_REDIRECT RouteAction_InternalRedirectAction = 0 + RouteAction_HANDLE_INTERNAL_REDIRECT RouteAction_InternalRedirectAction = 1 +) + +var RouteAction_InternalRedirectAction_name = map[int32]string{ + 0: "PASS_THROUGH_INTERNAL_REDIRECT", + 1: "HANDLE_INTERNAL_REDIRECT", +} + +var RouteAction_InternalRedirectAction_value = map[string]int32{ + "PASS_THROUGH_INTERNAL_REDIRECT": 0, + "HANDLE_INTERNAL_REDIRECT": 1, +} + +func (x RouteAction_InternalRedirectAction) String() string { + return proto.EnumName(RouteAction_InternalRedirectAction_name, int32(x)) +} + +func (RouteAction_InternalRedirectAction) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{6, 1} +} + +type RedirectAction_RedirectResponseCode int32 + +const ( + RedirectAction_MOVED_PERMANENTLY RedirectAction_RedirectResponseCode = 0 + RedirectAction_FOUND RedirectAction_RedirectResponseCode = 1 + RedirectAction_SEE_OTHER RedirectAction_RedirectResponseCode = 2 + RedirectAction_TEMPORARY_REDIRECT RedirectAction_RedirectResponseCode = 3 + RedirectAction_PERMANENT_REDIRECT RedirectAction_RedirectResponseCode = 4 +) + +var RedirectAction_RedirectResponseCode_name = map[int32]string{ + 0: "MOVED_PERMANENTLY", + 1: "FOUND", + 2: "SEE_OTHER", + 3: "TEMPORARY_REDIRECT", + 4: "PERMANENT_REDIRECT", +} + +var RedirectAction_RedirectResponseCode_value = map[string]int32{ + "MOVED_PERMANENTLY": 0, + "FOUND": 1, + "SEE_OTHER": 2, + "TEMPORARY_REDIRECT": 3, + "PERMANENT_REDIRECT": 4, +} + +func (x RedirectAction_RedirectResponseCode) String() string { + return proto.EnumName(RedirectAction_RedirectResponseCode_name, int32(x)) +} + +func (RedirectAction_RedirectResponseCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{9, 0} +} + +type VirtualHost struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Domains []string `protobuf:"bytes,2,rep,name=domains,proto3" json:"domains,omitempty"` + Routes []*Route `protobuf:"bytes,3,rep,name=routes,proto3" json:"routes,omitempty"` + RequireTls VirtualHost_TlsRequirementType `protobuf:"varint,4,opt,name=require_tls,json=requireTls,proto3,enum=envoy.config.route.v3.VirtualHost_TlsRequirementType" json:"require_tls,omitempty"` + VirtualClusters []*VirtualCluster `protobuf:"bytes,5,rep,name=virtual_clusters,json=virtualClusters,proto3" json:"virtual_clusters,omitempty"` + RateLimits []*RateLimit `protobuf:"bytes,6,rep,name=rate_limits,json=rateLimits,proto3" json:"rate_limits,omitempty"` + RequestHeadersToAdd []*v3.HeaderValueOption `protobuf:"bytes,7,rep,name=request_headers_to_add,json=requestHeadersToAdd,proto3" json:"request_headers_to_add,omitempty"` + RequestHeadersToRemove []string `protobuf:"bytes,13,rep,name=request_headers_to_remove,json=requestHeadersToRemove,proto3" json:"request_headers_to_remove,omitempty"` + ResponseHeadersToAdd []*v3.HeaderValueOption `protobuf:"bytes,10,rep,name=response_headers_to_add,json=responseHeadersToAdd,proto3" json:"response_headers_to_add,omitempty"` + ResponseHeadersToRemove []string `protobuf:"bytes,11,rep,name=response_headers_to_remove,json=responseHeadersToRemove,proto3" json:"response_headers_to_remove,omitempty"` + Cors *CorsPolicy `protobuf:"bytes,8,opt,name=cors,proto3" json:"cors,omitempty"` + HiddenEnvoyDeprecatedPerFilterConfig map[string]*_struct.Struct `protobuf:"bytes,12,rep,name=hidden_envoy_deprecated_per_filter_config,json=hiddenEnvoyDeprecatedPerFilterConfig,proto3" json:"hidden_envoy_deprecated_per_filter_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Deprecated: Do not use. + TypedPerFilterConfig map[string]*any.Any `protobuf:"bytes,15,rep,name=typed_per_filter_config,json=typedPerFilterConfig,proto3" json:"typed_per_filter_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + IncludeRequestAttemptCount bool `protobuf:"varint,14,opt,name=include_request_attempt_count,json=includeRequestAttemptCount,proto3" json:"include_request_attempt_count,omitempty"` + IncludeAttemptCountInResponse bool `protobuf:"varint,19,opt,name=include_attempt_count_in_response,json=includeAttemptCountInResponse,proto3" json:"include_attempt_count_in_response,omitempty"` + RetryPolicy *RetryPolicy `protobuf:"bytes,16,opt,name=retry_policy,json=retryPolicy,proto3" json:"retry_policy,omitempty"` + RetryPolicyTypedConfig *any.Any `protobuf:"bytes,20,opt,name=retry_policy_typed_config,json=retryPolicyTypedConfig,proto3" json:"retry_policy_typed_config,omitempty"` + HedgePolicy *HedgePolicy `protobuf:"bytes,17,opt,name=hedge_policy,json=hedgePolicy,proto3" json:"hedge_policy,omitempty"` + PerRequestBufferLimitBytes *wrappers.UInt32Value `protobuf:"bytes,18,opt,name=per_request_buffer_limit_bytes,json=perRequestBufferLimitBytes,proto3" json:"per_request_buffer_limit_bytes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VirtualHost) Reset() { *m = VirtualHost{} } +func (m *VirtualHost) String() string { return proto.CompactTextString(m) } +func (*VirtualHost) ProtoMessage() {} +func (*VirtualHost) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{0} +} + +func (m *VirtualHost) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VirtualHost.Unmarshal(m, b) +} +func (m *VirtualHost) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VirtualHost.Marshal(b, m, deterministic) +} +func (m *VirtualHost) XXX_Merge(src proto.Message) { + xxx_messageInfo_VirtualHost.Merge(m, src) +} +func (m *VirtualHost) XXX_Size() int { + return xxx_messageInfo_VirtualHost.Size(m) +} +func (m *VirtualHost) XXX_DiscardUnknown() { + xxx_messageInfo_VirtualHost.DiscardUnknown(m) +} + +var xxx_messageInfo_VirtualHost proto.InternalMessageInfo + +func (m *VirtualHost) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *VirtualHost) GetDomains() []string { + if m != nil { + return m.Domains + } + return nil +} + +func (m *VirtualHost) GetRoutes() []*Route { + if m != nil { + return m.Routes + } + return nil +} + +func (m *VirtualHost) GetRequireTls() VirtualHost_TlsRequirementType { + if m != nil { + return m.RequireTls + } + return VirtualHost_NONE +} + +func (m *VirtualHost) GetVirtualClusters() []*VirtualCluster { + if m != nil { + return m.VirtualClusters + } + return nil +} + +func (m *VirtualHost) GetRateLimits() []*RateLimit { + if m != nil { + return m.RateLimits + } + return nil +} + +func (m *VirtualHost) GetRequestHeadersToAdd() []*v3.HeaderValueOption { + if m != nil { + return m.RequestHeadersToAdd + } + return nil +} + +func (m *VirtualHost) GetRequestHeadersToRemove() []string { + if m != nil { + return m.RequestHeadersToRemove + } + return nil +} + +func (m *VirtualHost) GetResponseHeadersToAdd() []*v3.HeaderValueOption { + if m != nil { + return m.ResponseHeadersToAdd + } + return nil +} + +func (m *VirtualHost) GetResponseHeadersToRemove() []string { + if m != nil { + return m.ResponseHeadersToRemove + } + return nil +} + +func (m *VirtualHost) GetCors() *CorsPolicy { + if m != nil { + return m.Cors + } + return nil +} + +// Deprecated: Do not use. +func (m *VirtualHost) GetHiddenEnvoyDeprecatedPerFilterConfig() map[string]*_struct.Struct { + if m != nil { + return m.HiddenEnvoyDeprecatedPerFilterConfig + } + return nil +} + +func (m *VirtualHost) GetTypedPerFilterConfig() map[string]*any.Any { + if m != nil { + return m.TypedPerFilterConfig + } + return nil +} + +func (m *VirtualHost) GetIncludeRequestAttemptCount() bool { + if m != nil { + return m.IncludeRequestAttemptCount + } + return false +} + +func (m *VirtualHost) GetIncludeAttemptCountInResponse() bool { + if m != nil { + return m.IncludeAttemptCountInResponse + } + return false +} + +func (m *VirtualHost) GetRetryPolicy() *RetryPolicy { + if m != nil { + return m.RetryPolicy + } + return nil +} + +func (m *VirtualHost) GetRetryPolicyTypedConfig() *any.Any { + if m != nil { + return m.RetryPolicyTypedConfig + } + return nil +} + +func (m *VirtualHost) GetHedgePolicy() *HedgePolicy { + if m != nil { + return m.HedgePolicy + } + return nil +} + +func (m *VirtualHost) GetPerRequestBufferLimitBytes() *wrappers.UInt32Value { + if m != nil { + return m.PerRequestBufferLimitBytes + } + return nil +} + +type FilterAction struct { + Action *any.Any `protobuf:"bytes,1,opt,name=action,proto3" json:"action,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FilterAction) Reset() { *m = FilterAction{} } +func (m *FilterAction) String() string { return proto.CompactTextString(m) } +func (*FilterAction) ProtoMessage() {} +func (*FilterAction) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{1} +} + +func (m *FilterAction) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FilterAction.Unmarshal(m, b) +} +func (m *FilterAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FilterAction.Marshal(b, m, deterministic) +} +func (m *FilterAction) XXX_Merge(src proto.Message) { + xxx_messageInfo_FilterAction.Merge(m, src) +} +func (m *FilterAction) XXX_Size() int { + return xxx_messageInfo_FilterAction.Size(m) +} +func (m *FilterAction) XXX_DiscardUnknown() { + xxx_messageInfo_FilterAction.DiscardUnknown(m) +} + +var xxx_messageInfo_FilterAction proto.InternalMessageInfo + +func (m *FilterAction) GetAction() *any.Any { + if m != nil { + return m.Action + } + return nil +} + +type Route struct { + Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` + Match *RouteMatch `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"` + // Types that are valid to be assigned to Action: + // *Route_Route + // *Route_Redirect + // *Route_DirectResponse + // *Route_FilterAction + Action isRoute_Action `protobuf_oneof:"action"` + Metadata *v3.Metadata `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"` + Decorator *Decorator `protobuf:"bytes,5,opt,name=decorator,proto3" json:"decorator,omitempty"` + HiddenEnvoyDeprecatedPerFilterConfig map[string]*_struct.Struct `protobuf:"bytes,8,rep,name=hidden_envoy_deprecated_per_filter_config,json=hiddenEnvoyDeprecatedPerFilterConfig,proto3" json:"hidden_envoy_deprecated_per_filter_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Deprecated: Do not use. + TypedPerFilterConfig map[string]*any.Any `protobuf:"bytes,13,rep,name=typed_per_filter_config,json=typedPerFilterConfig,proto3" json:"typed_per_filter_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + RequestHeadersToAdd []*v3.HeaderValueOption `protobuf:"bytes,9,rep,name=request_headers_to_add,json=requestHeadersToAdd,proto3" json:"request_headers_to_add,omitempty"` + RequestHeadersToRemove []string `protobuf:"bytes,12,rep,name=request_headers_to_remove,json=requestHeadersToRemove,proto3" json:"request_headers_to_remove,omitempty"` + ResponseHeadersToAdd []*v3.HeaderValueOption `protobuf:"bytes,10,rep,name=response_headers_to_add,json=responseHeadersToAdd,proto3" json:"response_headers_to_add,omitempty"` + ResponseHeadersToRemove []string `protobuf:"bytes,11,rep,name=response_headers_to_remove,json=responseHeadersToRemove,proto3" json:"response_headers_to_remove,omitempty"` + Tracing *Tracing `protobuf:"bytes,15,opt,name=tracing,proto3" json:"tracing,omitempty"` + PerRequestBufferLimitBytes *wrappers.UInt32Value `protobuf:"bytes,16,opt,name=per_request_buffer_limit_bytes,json=perRequestBufferLimitBytes,proto3" json:"per_request_buffer_limit_bytes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Route) Reset() { *m = Route{} } +func (m *Route) String() string { return proto.CompactTextString(m) } +func (*Route) ProtoMessage() {} +func (*Route) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{2} +} + +func (m *Route) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Route.Unmarshal(m, b) +} +func (m *Route) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Route.Marshal(b, m, deterministic) +} +func (m *Route) XXX_Merge(src proto.Message) { + xxx_messageInfo_Route.Merge(m, src) +} +func (m *Route) XXX_Size() int { + return xxx_messageInfo_Route.Size(m) +} +func (m *Route) XXX_DiscardUnknown() { + xxx_messageInfo_Route.DiscardUnknown(m) +} + +var xxx_messageInfo_Route proto.InternalMessageInfo + +func (m *Route) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Route) GetMatch() *RouteMatch { + if m != nil { + return m.Match + } + return nil +} + +type isRoute_Action interface { + isRoute_Action() +} + +type Route_Route struct { + Route *RouteAction `protobuf:"bytes,2,opt,name=route,proto3,oneof"` +} + +type Route_Redirect struct { + Redirect *RedirectAction `protobuf:"bytes,3,opt,name=redirect,proto3,oneof"` +} + +type Route_DirectResponse struct { + DirectResponse *DirectResponseAction `protobuf:"bytes,7,opt,name=direct_response,json=directResponse,proto3,oneof"` +} + +type Route_FilterAction struct { + FilterAction *FilterAction `protobuf:"bytes,17,opt,name=filter_action,json=filterAction,proto3,oneof"` +} + +func (*Route_Route) isRoute_Action() {} + +func (*Route_Redirect) isRoute_Action() {} + +func (*Route_DirectResponse) isRoute_Action() {} + +func (*Route_FilterAction) isRoute_Action() {} + +func (m *Route) GetAction() isRoute_Action { + if m != nil { + return m.Action + } + return nil +} + +func (m *Route) GetRoute() *RouteAction { + if x, ok := m.GetAction().(*Route_Route); ok { + return x.Route + } + return nil +} + +func (m *Route) GetRedirect() *RedirectAction { + if x, ok := m.GetAction().(*Route_Redirect); ok { + return x.Redirect + } + return nil +} + +func (m *Route) GetDirectResponse() *DirectResponseAction { + if x, ok := m.GetAction().(*Route_DirectResponse); ok { + return x.DirectResponse + } + return nil +} + +func (m *Route) GetFilterAction() *FilterAction { + if x, ok := m.GetAction().(*Route_FilterAction); ok { + return x.FilterAction + } + return nil +} + +func (m *Route) GetMetadata() *v3.Metadata { + if m != nil { + return m.Metadata + } + return nil +} + +func (m *Route) GetDecorator() *Decorator { + if m != nil { + return m.Decorator + } + return nil +} + +// Deprecated: Do not use. +func (m *Route) GetHiddenEnvoyDeprecatedPerFilterConfig() map[string]*_struct.Struct { + if m != nil { + return m.HiddenEnvoyDeprecatedPerFilterConfig + } + return nil +} + +func (m *Route) GetTypedPerFilterConfig() map[string]*any.Any { + if m != nil { + return m.TypedPerFilterConfig + } + return nil +} + +func (m *Route) GetRequestHeadersToAdd() []*v3.HeaderValueOption { + if m != nil { + return m.RequestHeadersToAdd + } + return nil +} + +func (m *Route) GetRequestHeadersToRemove() []string { + if m != nil { + return m.RequestHeadersToRemove + } + return nil +} + +func (m *Route) GetResponseHeadersToAdd() []*v3.HeaderValueOption { + if m != nil { + return m.ResponseHeadersToAdd + } + return nil +} + +func (m *Route) GetResponseHeadersToRemove() []string { + if m != nil { + return m.ResponseHeadersToRemove + } + return nil +} + +func (m *Route) GetTracing() *Tracing { + if m != nil { + return m.Tracing + } + return nil +} + +func (m *Route) GetPerRequestBufferLimitBytes() *wrappers.UInt32Value { + if m != nil { + return m.PerRequestBufferLimitBytes + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Route) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*Route_Route)(nil), + (*Route_Redirect)(nil), + (*Route_DirectResponse)(nil), + (*Route_FilterAction)(nil), + } +} + +type WeightedCluster struct { + Clusters []*WeightedCluster_ClusterWeight `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"` + TotalWeight *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=total_weight,json=totalWeight,proto3" json:"total_weight,omitempty"` + RuntimeKeyPrefix string `protobuf:"bytes,2,opt,name=runtime_key_prefix,json=runtimeKeyPrefix,proto3" json:"runtime_key_prefix,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *WeightedCluster) Reset() { *m = WeightedCluster{} } +func (m *WeightedCluster) String() string { return proto.CompactTextString(m) } +func (*WeightedCluster) ProtoMessage() {} +func (*WeightedCluster) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{3} +} + +func (m *WeightedCluster) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_WeightedCluster.Unmarshal(m, b) +} +func (m *WeightedCluster) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_WeightedCluster.Marshal(b, m, deterministic) +} +func (m *WeightedCluster) XXX_Merge(src proto.Message) { + xxx_messageInfo_WeightedCluster.Merge(m, src) +} +func (m *WeightedCluster) XXX_Size() int { + return xxx_messageInfo_WeightedCluster.Size(m) +} +func (m *WeightedCluster) XXX_DiscardUnknown() { + xxx_messageInfo_WeightedCluster.DiscardUnknown(m) +} + +var xxx_messageInfo_WeightedCluster proto.InternalMessageInfo + +func (m *WeightedCluster) GetClusters() []*WeightedCluster_ClusterWeight { + if m != nil { + return m.Clusters + } + return nil +} + +func (m *WeightedCluster) GetTotalWeight() *wrappers.UInt32Value { + if m != nil { + return m.TotalWeight + } + return nil +} + +func (m *WeightedCluster) GetRuntimeKeyPrefix() string { + if m != nil { + return m.RuntimeKeyPrefix + } + return "" +} + +type WeightedCluster_ClusterWeight struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Weight *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=weight,proto3" json:"weight,omitempty"` + MetadataMatch *v3.Metadata `protobuf:"bytes,3,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"` + RequestHeadersToAdd []*v3.HeaderValueOption `protobuf:"bytes,4,rep,name=request_headers_to_add,json=requestHeadersToAdd,proto3" json:"request_headers_to_add,omitempty"` + RequestHeadersToRemove []string `protobuf:"bytes,9,rep,name=request_headers_to_remove,json=requestHeadersToRemove,proto3" json:"request_headers_to_remove,omitempty"` + ResponseHeadersToAdd []*v3.HeaderValueOption `protobuf:"bytes,5,rep,name=response_headers_to_add,json=responseHeadersToAdd,proto3" json:"response_headers_to_add,omitempty"` + ResponseHeadersToRemove []string `protobuf:"bytes,6,rep,name=response_headers_to_remove,json=responseHeadersToRemove,proto3" json:"response_headers_to_remove,omitempty"` + HiddenEnvoyDeprecatedPerFilterConfig map[string]*_struct.Struct `protobuf:"bytes,8,rep,name=hidden_envoy_deprecated_per_filter_config,json=hiddenEnvoyDeprecatedPerFilterConfig,proto3" json:"hidden_envoy_deprecated_per_filter_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Deprecated: Do not use. + TypedPerFilterConfig map[string]*any.Any `protobuf:"bytes,10,rep,name=typed_per_filter_config,json=typedPerFilterConfig,proto3" json:"typed_per_filter_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *WeightedCluster_ClusterWeight) Reset() { *m = WeightedCluster_ClusterWeight{} } +func (m *WeightedCluster_ClusterWeight) String() string { return proto.CompactTextString(m) } +func (*WeightedCluster_ClusterWeight) ProtoMessage() {} +func (*WeightedCluster_ClusterWeight) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{3, 0} +} + +func (m *WeightedCluster_ClusterWeight) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_WeightedCluster_ClusterWeight.Unmarshal(m, b) +} +func (m *WeightedCluster_ClusterWeight) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_WeightedCluster_ClusterWeight.Marshal(b, m, deterministic) +} +func (m *WeightedCluster_ClusterWeight) XXX_Merge(src proto.Message) { + xxx_messageInfo_WeightedCluster_ClusterWeight.Merge(m, src) +} +func (m *WeightedCluster_ClusterWeight) XXX_Size() int { + return xxx_messageInfo_WeightedCluster_ClusterWeight.Size(m) +} +func (m *WeightedCluster_ClusterWeight) XXX_DiscardUnknown() { + xxx_messageInfo_WeightedCluster_ClusterWeight.DiscardUnknown(m) +} + +var xxx_messageInfo_WeightedCluster_ClusterWeight proto.InternalMessageInfo + +func (m *WeightedCluster_ClusterWeight) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *WeightedCluster_ClusterWeight) GetWeight() *wrappers.UInt32Value { + if m != nil { + return m.Weight + } + return nil +} + +func (m *WeightedCluster_ClusterWeight) GetMetadataMatch() *v3.Metadata { + if m != nil { + return m.MetadataMatch + } + return nil +} + +func (m *WeightedCluster_ClusterWeight) GetRequestHeadersToAdd() []*v3.HeaderValueOption { + if m != nil { + return m.RequestHeadersToAdd + } + return nil +} + +func (m *WeightedCluster_ClusterWeight) GetRequestHeadersToRemove() []string { + if m != nil { + return m.RequestHeadersToRemove + } + return nil +} + +func (m *WeightedCluster_ClusterWeight) GetResponseHeadersToAdd() []*v3.HeaderValueOption { + if m != nil { + return m.ResponseHeadersToAdd + } + return nil +} + +func (m *WeightedCluster_ClusterWeight) GetResponseHeadersToRemove() []string { + if m != nil { + return m.ResponseHeadersToRemove + } + return nil +} + +// Deprecated: Do not use. +func (m *WeightedCluster_ClusterWeight) GetHiddenEnvoyDeprecatedPerFilterConfig() map[string]*_struct.Struct { + if m != nil { + return m.HiddenEnvoyDeprecatedPerFilterConfig + } + return nil +} + +func (m *WeightedCluster_ClusterWeight) GetTypedPerFilterConfig() map[string]*any.Any { + if m != nil { + return m.TypedPerFilterConfig + } + return nil +} + +type RouteMatch struct { + // Types that are valid to be assigned to PathSpecifier: + // *RouteMatch_Prefix + // *RouteMatch_Path + // *RouteMatch_HiddenEnvoyDeprecatedRegex + // *RouteMatch_SafeRegex + PathSpecifier isRouteMatch_PathSpecifier `protobuf_oneof:"path_specifier"` + CaseSensitive *wrappers.BoolValue `protobuf:"bytes,4,opt,name=case_sensitive,json=caseSensitive,proto3" json:"case_sensitive,omitempty"` + RuntimeFraction *v3.RuntimeFractionalPercent `protobuf:"bytes,9,opt,name=runtime_fraction,json=runtimeFraction,proto3" json:"runtime_fraction,omitempty"` + Headers []*HeaderMatcher `protobuf:"bytes,6,rep,name=headers,proto3" json:"headers,omitempty"` + QueryParameters []*QueryParameterMatcher `protobuf:"bytes,7,rep,name=query_parameters,json=queryParameters,proto3" json:"query_parameters,omitempty"` + Grpc *RouteMatch_GrpcRouteMatchOptions `protobuf:"bytes,8,opt,name=grpc,proto3" json:"grpc,omitempty"` + TlsContext *RouteMatch_TlsContextMatchOptions `protobuf:"bytes,11,opt,name=tls_context,json=tlsContext,proto3" json:"tls_context,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RouteMatch) Reset() { *m = RouteMatch{} } +func (m *RouteMatch) String() string { return proto.CompactTextString(m) } +func (*RouteMatch) ProtoMessage() {} +func (*RouteMatch) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{4} +} + +func (m *RouteMatch) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RouteMatch.Unmarshal(m, b) +} +func (m *RouteMatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RouteMatch.Marshal(b, m, deterministic) +} +func (m *RouteMatch) XXX_Merge(src proto.Message) { + xxx_messageInfo_RouteMatch.Merge(m, src) +} +func (m *RouteMatch) XXX_Size() int { + return xxx_messageInfo_RouteMatch.Size(m) +} +func (m *RouteMatch) XXX_DiscardUnknown() { + xxx_messageInfo_RouteMatch.DiscardUnknown(m) +} + +var xxx_messageInfo_RouteMatch proto.InternalMessageInfo + +type isRouteMatch_PathSpecifier interface { + isRouteMatch_PathSpecifier() +} + +type RouteMatch_Prefix struct { + Prefix string `protobuf:"bytes,1,opt,name=prefix,proto3,oneof"` +} + +type RouteMatch_Path struct { + Path string `protobuf:"bytes,2,opt,name=path,proto3,oneof"` +} + +type RouteMatch_HiddenEnvoyDeprecatedRegex struct { + HiddenEnvoyDeprecatedRegex string `protobuf:"bytes,3,opt,name=hidden_envoy_deprecated_regex,json=hiddenEnvoyDeprecatedRegex,proto3,oneof"` +} + +type RouteMatch_SafeRegex struct { + SafeRegex *v31.RegexMatcher `protobuf:"bytes,10,opt,name=safe_regex,json=safeRegex,proto3,oneof"` +} + +func (*RouteMatch_Prefix) isRouteMatch_PathSpecifier() {} + +func (*RouteMatch_Path) isRouteMatch_PathSpecifier() {} + +func (*RouteMatch_HiddenEnvoyDeprecatedRegex) isRouteMatch_PathSpecifier() {} + +func (*RouteMatch_SafeRegex) isRouteMatch_PathSpecifier() {} + +func (m *RouteMatch) GetPathSpecifier() isRouteMatch_PathSpecifier { + if m != nil { + return m.PathSpecifier + } + return nil +} + +func (m *RouteMatch) GetPrefix() string { + if x, ok := m.GetPathSpecifier().(*RouteMatch_Prefix); ok { + return x.Prefix + } + return "" +} + +func (m *RouteMatch) GetPath() string { + if x, ok := m.GetPathSpecifier().(*RouteMatch_Path); ok { + return x.Path + } + return "" +} + +// Deprecated: Do not use. +func (m *RouteMatch) GetHiddenEnvoyDeprecatedRegex() string { + if x, ok := m.GetPathSpecifier().(*RouteMatch_HiddenEnvoyDeprecatedRegex); ok { + return x.HiddenEnvoyDeprecatedRegex + } + return "" +} + +func (m *RouteMatch) GetSafeRegex() *v31.RegexMatcher { + if x, ok := m.GetPathSpecifier().(*RouteMatch_SafeRegex); ok { + return x.SafeRegex + } + return nil +} + +func (m *RouteMatch) GetCaseSensitive() *wrappers.BoolValue { + if m != nil { + return m.CaseSensitive + } + return nil +} + +func (m *RouteMatch) GetRuntimeFraction() *v3.RuntimeFractionalPercent { + if m != nil { + return m.RuntimeFraction + } + return nil +} + +func (m *RouteMatch) GetHeaders() []*HeaderMatcher { + if m != nil { + return m.Headers + } + return nil +} + +func (m *RouteMatch) GetQueryParameters() []*QueryParameterMatcher { + if m != nil { + return m.QueryParameters + } + return nil +} + +func (m *RouteMatch) GetGrpc() *RouteMatch_GrpcRouteMatchOptions { + if m != nil { + return m.Grpc + } + return nil +} + +func (m *RouteMatch) GetTlsContext() *RouteMatch_TlsContextMatchOptions { + if m != nil { + return m.TlsContext + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*RouteMatch) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*RouteMatch_Prefix)(nil), + (*RouteMatch_Path)(nil), + (*RouteMatch_HiddenEnvoyDeprecatedRegex)(nil), + (*RouteMatch_SafeRegex)(nil), + } +} + +type RouteMatch_GrpcRouteMatchOptions struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RouteMatch_GrpcRouteMatchOptions) Reset() { *m = RouteMatch_GrpcRouteMatchOptions{} } +func (m *RouteMatch_GrpcRouteMatchOptions) String() string { return proto.CompactTextString(m) } +func (*RouteMatch_GrpcRouteMatchOptions) ProtoMessage() {} +func (*RouteMatch_GrpcRouteMatchOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{4, 0} +} + +func (m *RouteMatch_GrpcRouteMatchOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RouteMatch_GrpcRouteMatchOptions.Unmarshal(m, b) +} +func (m *RouteMatch_GrpcRouteMatchOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RouteMatch_GrpcRouteMatchOptions.Marshal(b, m, deterministic) +} +func (m *RouteMatch_GrpcRouteMatchOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_RouteMatch_GrpcRouteMatchOptions.Merge(m, src) +} +func (m *RouteMatch_GrpcRouteMatchOptions) XXX_Size() int { + return xxx_messageInfo_RouteMatch_GrpcRouteMatchOptions.Size(m) +} +func (m *RouteMatch_GrpcRouteMatchOptions) XXX_DiscardUnknown() { + xxx_messageInfo_RouteMatch_GrpcRouteMatchOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_RouteMatch_GrpcRouteMatchOptions proto.InternalMessageInfo + +type RouteMatch_TlsContextMatchOptions struct { + Presented *wrappers.BoolValue `protobuf:"bytes,1,opt,name=presented,proto3" json:"presented,omitempty"` + Validated *wrappers.BoolValue `protobuf:"bytes,2,opt,name=validated,proto3" json:"validated,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RouteMatch_TlsContextMatchOptions) Reset() { *m = RouteMatch_TlsContextMatchOptions{} } +func (m *RouteMatch_TlsContextMatchOptions) String() string { return proto.CompactTextString(m) } +func (*RouteMatch_TlsContextMatchOptions) ProtoMessage() {} +func (*RouteMatch_TlsContextMatchOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{4, 1} +} + +func (m *RouteMatch_TlsContextMatchOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RouteMatch_TlsContextMatchOptions.Unmarshal(m, b) +} +func (m *RouteMatch_TlsContextMatchOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RouteMatch_TlsContextMatchOptions.Marshal(b, m, deterministic) +} +func (m *RouteMatch_TlsContextMatchOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_RouteMatch_TlsContextMatchOptions.Merge(m, src) +} +func (m *RouteMatch_TlsContextMatchOptions) XXX_Size() int { + return xxx_messageInfo_RouteMatch_TlsContextMatchOptions.Size(m) +} +func (m *RouteMatch_TlsContextMatchOptions) XXX_DiscardUnknown() { + xxx_messageInfo_RouteMatch_TlsContextMatchOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_RouteMatch_TlsContextMatchOptions proto.InternalMessageInfo + +func (m *RouteMatch_TlsContextMatchOptions) GetPresented() *wrappers.BoolValue { + if m != nil { + return m.Presented + } + return nil +} + +func (m *RouteMatch_TlsContextMatchOptions) GetValidated() *wrappers.BoolValue { + if m != nil { + return m.Validated + } + return nil +} + +type CorsPolicy struct { + HiddenEnvoyDeprecatedAllowOrigin []string `protobuf:"bytes,1,rep,name=hidden_envoy_deprecated_allow_origin,json=hiddenEnvoyDeprecatedAllowOrigin,proto3" json:"hidden_envoy_deprecated_allow_origin,omitempty"` // Deprecated: Do not use. + HiddenEnvoyDeprecatedAllowOriginRegex []string `protobuf:"bytes,8,rep,name=hidden_envoy_deprecated_allow_origin_regex,json=hiddenEnvoyDeprecatedAllowOriginRegex,proto3" json:"hidden_envoy_deprecated_allow_origin_regex,omitempty"` // Deprecated: Do not use. + AllowOriginStringMatch []*v31.StringMatcher `protobuf:"bytes,11,rep,name=allow_origin_string_match,json=allowOriginStringMatch,proto3" json:"allow_origin_string_match,omitempty"` + AllowMethods string `protobuf:"bytes,2,opt,name=allow_methods,json=allowMethods,proto3" json:"allow_methods,omitempty"` + AllowHeaders string `protobuf:"bytes,3,opt,name=allow_headers,json=allowHeaders,proto3" json:"allow_headers,omitempty"` + ExposeHeaders string `protobuf:"bytes,4,opt,name=expose_headers,json=exposeHeaders,proto3" json:"expose_headers,omitempty"` + MaxAge string `protobuf:"bytes,5,opt,name=max_age,json=maxAge,proto3" json:"max_age,omitempty"` + AllowCredentials *wrappers.BoolValue `protobuf:"bytes,6,opt,name=allow_credentials,json=allowCredentials,proto3" json:"allow_credentials,omitempty"` + // Types that are valid to be assigned to EnabledSpecifier: + // *CorsPolicy_HiddenEnvoyDeprecatedEnabled + // *CorsPolicy_FilterEnabled + EnabledSpecifier isCorsPolicy_EnabledSpecifier `protobuf_oneof:"enabled_specifier"` + ShadowEnabled *v3.RuntimeFractionalPercent `protobuf:"bytes,10,opt,name=shadow_enabled,json=shadowEnabled,proto3" json:"shadow_enabled,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CorsPolicy) Reset() { *m = CorsPolicy{} } +func (m *CorsPolicy) String() string { return proto.CompactTextString(m) } +func (*CorsPolicy) ProtoMessage() {} +func (*CorsPolicy) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{5} +} + +func (m *CorsPolicy) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CorsPolicy.Unmarshal(m, b) +} +func (m *CorsPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CorsPolicy.Marshal(b, m, deterministic) +} +func (m *CorsPolicy) XXX_Merge(src proto.Message) { + xxx_messageInfo_CorsPolicy.Merge(m, src) +} +func (m *CorsPolicy) XXX_Size() int { + return xxx_messageInfo_CorsPolicy.Size(m) +} +func (m *CorsPolicy) XXX_DiscardUnknown() { + xxx_messageInfo_CorsPolicy.DiscardUnknown(m) +} + +var xxx_messageInfo_CorsPolicy proto.InternalMessageInfo + +// Deprecated: Do not use. +func (m *CorsPolicy) GetHiddenEnvoyDeprecatedAllowOrigin() []string { + if m != nil { + return m.HiddenEnvoyDeprecatedAllowOrigin + } + return nil +} + +// Deprecated: Do not use. +func (m *CorsPolicy) GetHiddenEnvoyDeprecatedAllowOriginRegex() []string { + if m != nil { + return m.HiddenEnvoyDeprecatedAllowOriginRegex + } + return nil +} + +func (m *CorsPolicy) GetAllowOriginStringMatch() []*v31.StringMatcher { + if m != nil { + return m.AllowOriginStringMatch + } + return nil +} + +func (m *CorsPolicy) GetAllowMethods() string { + if m != nil { + return m.AllowMethods + } + return "" +} + +func (m *CorsPolicy) GetAllowHeaders() string { + if m != nil { + return m.AllowHeaders + } + return "" +} + +func (m *CorsPolicy) GetExposeHeaders() string { + if m != nil { + return m.ExposeHeaders + } + return "" +} + +func (m *CorsPolicy) GetMaxAge() string { + if m != nil { + return m.MaxAge + } + return "" +} + +func (m *CorsPolicy) GetAllowCredentials() *wrappers.BoolValue { + if m != nil { + return m.AllowCredentials + } + return nil +} + +type isCorsPolicy_EnabledSpecifier interface { + isCorsPolicy_EnabledSpecifier() +} + +type CorsPolicy_HiddenEnvoyDeprecatedEnabled struct { + HiddenEnvoyDeprecatedEnabled *wrappers.BoolValue `protobuf:"bytes,7,opt,name=hidden_envoy_deprecated_enabled,json=hiddenEnvoyDeprecatedEnabled,proto3,oneof"` +} + +type CorsPolicy_FilterEnabled struct { + FilterEnabled *v3.RuntimeFractionalPercent `protobuf:"bytes,9,opt,name=filter_enabled,json=filterEnabled,proto3,oneof"` +} + +func (*CorsPolicy_HiddenEnvoyDeprecatedEnabled) isCorsPolicy_EnabledSpecifier() {} + +func (*CorsPolicy_FilterEnabled) isCorsPolicy_EnabledSpecifier() {} + +func (m *CorsPolicy) GetEnabledSpecifier() isCorsPolicy_EnabledSpecifier { + if m != nil { + return m.EnabledSpecifier + } + return nil +} + +// Deprecated: Do not use. +func (m *CorsPolicy) GetHiddenEnvoyDeprecatedEnabled() *wrappers.BoolValue { + if x, ok := m.GetEnabledSpecifier().(*CorsPolicy_HiddenEnvoyDeprecatedEnabled); ok { + return x.HiddenEnvoyDeprecatedEnabled + } + return nil +} + +func (m *CorsPolicy) GetFilterEnabled() *v3.RuntimeFractionalPercent { + if x, ok := m.GetEnabledSpecifier().(*CorsPolicy_FilterEnabled); ok { + return x.FilterEnabled + } + return nil +} + +func (m *CorsPolicy) GetShadowEnabled() *v3.RuntimeFractionalPercent { + if m != nil { + return m.ShadowEnabled + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*CorsPolicy) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*CorsPolicy_HiddenEnvoyDeprecatedEnabled)(nil), + (*CorsPolicy_FilterEnabled)(nil), + } +} + +type RouteAction struct { + // Types that are valid to be assigned to ClusterSpecifier: + // *RouteAction_Cluster + // *RouteAction_ClusterHeader + // *RouteAction_WeightedClusters + ClusterSpecifier isRouteAction_ClusterSpecifier `protobuf_oneof:"cluster_specifier"` + ClusterNotFoundResponseCode RouteAction_ClusterNotFoundResponseCode `protobuf:"varint,20,opt,name=cluster_not_found_response_code,json=clusterNotFoundResponseCode,proto3,enum=envoy.config.route.v3.RouteAction_ClusterNotFoundResponseCode" json:"cluster_not_found_response_code,omitempty"` + MetadataMatch *v3.Metadata `protobuf:"bytes,4,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"` + PrefixRewrite string `protobuf:"bytes,5,opt,name=prefix_rewrite,json=prefixRewrite,proto3" json:"prefix_rewrite,omitempty"` + RegexRewrite *v31.RegexMatchAndSubstitute `protobuf:"bytes,32,opt,name=regex_rewrite,json=regexRewrite,proto3" json:"regex_rewrite,omitempty"` + // Types that are valid to be assigned to HostRewriteSpecifier: + // *RouteAction_HostRewriteLiteral + // *RouteAction_AutoHostRewrite + // *RouteAction_HostRewriteHeader + HostRewriteSpecifier isRouteAction_HostRewriteSpecifier `protobuf_oneof:"host_rewrite_specifier"` + Timeout *duration.Duration `protobuf:"bytes,8,opt,name=timeout,proto3" json:"timeout,omitempty"` + IdleTimeout *duration.Duration `protobuf:"bytes,24,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"` + RetryPolicy *RetryPolicy `protobuf:"bytes,9,opt,name=retry_policy,json=retryPolicy,proto3" json:"retry_policy,omitempty"` + RetryPolicyTypedConfig *any.Any `protobuf:"bytes,33,opt,name=retry_policy_typed_config,json=retryPolicyTypedConfig,proto3" json:"retry_policy_typed_config,omitempty"` + HiddenEnvoyDeprecatedRequestMirrorPolicy *RouteAction_RequestMirrorPolicy `protobuf:"bytes,10,opt,name=hidden_envoy_deprecated_request_mirror_policy,json=hiddenEnvoyDeprecatedRequestMirrorPolicy,proto3" json:"hidden_envoy_deprecated_request_mirror_policy,omitempty"` // Deprecated: Do not use. + RequestMirrorPolicies []*RouteAction_RequestMirrorPolicy `protobuf:"bytes,30,rep,name=request_mirror_policies,json=requestMirrorPolicies,proto3" json:"request_mirror_policies,omitempty"` + Priority v3.RoutingPriority `protobuf:"varint,11,opt,name=priority,proto3,enum=envoy.config.core.v3.RoutingPriority" json:"priority,omitempty"` + RateLimits []*RateLimit `protobuf:"bytes,13,rep,name=rate_limits,json=rateLimits,proto3" json:"rate_limits,omitempty"` + IncludeVhRateLimits *wrappers.BoolValue `protobuf:"bytes,14,opt,name=include_vh_rate_limits,json=includeVhRateLimits,proto3" json:"include_vh_rate_limits,omitempty"` + HashPolicy []*RouteAction_HashPolicy `protobuf:"bytes,15,rep,name=hash_policy,json=hashPolicy,proto3" json:"hash_policy,omitempty"` + Cors *CorsPolicy `protobuf:"bytes,17,opt,name=cors,proto3" json:"cors,omitempty"` + MaxGrpcTimeout *duration.Duration `protobuf:"bytes,23,opt,name=max_grpc_timeout,json=maxGrpcTimeout,proto3" json:"max_grpc_timeout,omitempty"` + GrpcTimeoutOffset *duration.Duration `protobuf:"bytes,28,opt,name=grpc_timeout_offset,json=grpcTimeoutOffset,proto3" json:"grpc_timeout_offset,omitempty"` + UpgradeConfigs []*RouteAction_UpgradeConfig `protobuf:"bytes,25,rep,name=upgrade_configs,json=upgradeConfigs,proto3" json:"upgrade_configs,omitempty"` + InternalRedirectAction RouteAction_InternalRedirectAction `protobuf:"varint,26,opt,name=internal_redirect_action,json=internalRedirectAction,proto3,enum=envoy.config.route.v3.RouteAction_InternalRedirectAction" json:"internal_redirect_action,omitempty"` + MaxInternalRedirects *wrappers.UInt32Value `protobuf:"bytes,31,opt,name=max_internal_redirects,json=maxInternalRedirects,proto3" json:"max_internal_redirects,omitempty"` + HedgePolicy *HedgePolicy `protobuf:"bytes,27,opt,name=hedge_policy,json=hedgePolicy,proto3" json:"hedge_policy,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RouteAction) Reset() { *m = RouteAction{} } +func (m *RouteAction) String() string { return proto.CompactTextString(m) } +func (*RouteAction) ProtoMessage() {} +func (*RouteAction) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{6} +} + +func (m *RouteAction) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RouteAction.Unmarshal(m, b) +} +func (m *RouteAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RouteAction.Marshal(b, m, deterministic) +} +func (m *RouteAction) XXX_Merge(src proto.Message) { + xxx_messageInfo_RouteAction.Merge(m, src) +} +func (m *RouteAction) XXX_Size() int { + return xxx_messageInfo_RouteAction.Size(m) +} +func (m *RouteAction) XXX_DiscardUnknown() { + xxx_messageInfo_RouteAction.DiscardUnknown(m) +} + +var xxx_messageInfo_RouteAction proto.InternalMessageInfo + +type isRouteAction_ClusterSpecifier interface { + isRouteAction_ClusterSpecifier() +} + +type RouteAction_Cluster struct { + Cluster string `protobuf:"bytes,1,opt,name=cluster,proto3,oneof"` +} + +type RouteAction_ClusterHeader struct { + ClusterHeader string `protobuf:"bytes,2,opt,name=cluster_header,json=clusterHeader,proto3,oneof"` +} + +type RouteAction_WeightedClusters struct { + WeightedClusters *WeightedCluster `protobuf:"bytes,3,opt,name=weighted_clusters,json=weightedClusters,proto3,oneof"` +} + +func (*RouteAction_Cluster) isRouteAction_ClusterSpecifier() {} + +func (*RouteAction_ClusterHeader) isRouteAction_ClusterSpecifier() {} + +func (*RouteAction_WeightedClusters) isRouteAction_ClusterSpecifier() {} + +func (m *RouteAction) GetClusterSpecifier() isRouteAction_ClusterSpecifier { + if m != nil { + return m.ClusterSpecifier + } + return nil +} + +func (m *RouteAction) GetCluster() string { + if x, ok := m.GetClusterSpecifier().(*RouteAction_Cluster); ok { + return x.Cluster + } + return "" +} + +func (m *RouteAction) GetClusterHeader() string { + if x, ok := m.GetClusterSpecifier().(*RouteAction_ClusterHeader); ok { + return x.ClusterHeader + } + return "" +} + +func (m *RouteAction) GetWeightedClusters() *WeightedCluster { + if x, ok := m.GetClusterSpecifier().(*RouteAction_WeightedClusters); ok { + return x.WeightedClusters + } + return nil +} + +func (m *RouteAction) GetClusterNotFoundResponseCode() RouteAction_ClusterNotFoundResponseCode { + if m != nil { + return m.ClusterNotFoundResponseCode + } + return RouteAction_SERVICE_UNAVAILABLE +} + +func (m *RouteAction) GetMetadataMatch() *v3.Metadata { + if m != nil { + return m.MetadataMatch + } + return nil +} + +func (m *RouteAction) GetPrefixRewrite() string { + if m != nil { + return m.PrefixRewrite + } + return "" +} + +func (m *RouteAction) GetRegexRewrite() *v31.RegexMatchAndSubstitute { + if m != nil { + return m.RegexRewrite + } + return nil +} + +type isRouteAction_HostRewriteSpecifier interface { + isRouteAction_HostRewriteSpecifier() +} + +type RouteAction_HostRewriteLiteral struct { + HostRewriteLiteral string `protobuf:"bytes,6,opt,name=host_rewrite_literal,json=hostRewriteLiteral,proto3,oneof"` +} + +type RouteAction_AutoHostRewrite struct { + AutoHostRewrite *wrappers.BoolValue `protobuf:"bytes,7,opt,name=auto_host_rewrite,json=autoHostRewrite,proto3,oneof"` +} + +type RouteAction_HostRewriteHeader struct { + HostRewriteHeader string `protobuf:"bytes,29,opt,name=host_rewrite_header,json=hostRewriteHeader,proto3,oneof"` +} + +func (*RouteAction_HostRewriteLiteral) isRouteAction_HostRewriteSpecifier() {} + +func (*RouteAction_AutoHostRewrite) isRouteAction_HostRewriteSpecifier() {} + +func (*RouteAction_HostRewriteHeader) isRouteAction_HostRewriteSpecifier() {} + +func (m *RouteAction) GetHostRewriteSpecifier() isRouteAction_HostRewriteSpecifier { + if m != nil { + return m.HostRewriteSpecifier + } + return nil +} + +func (m *RouteAction) GetHostRewriteLiteral() string { + if x, ok := m.GetHostRewriteSpecifier().(*RouteAction_HostRewriteLiteral); ok { + return x.HostRewriteLiteral + } + return "" +} + +func (m *RouteAction) GetAutoHostRewrite() *wrappers.BoolValue { + if x, ok := m.GetHostRewriteSpecifier().(*RouteAction_AutoHostRewrite); ok { + return x.AutoHostRewrite + } + return nil +} + +func (m *RouteAction) GetHostRewriteHeader() string { + if x, ok := m.GetHostRewriteSpecifier().(*RouteAction_HostRewriteHeader); ok { + return x.HostRewriteHeader + } + return "" +} + +func (m *RouteAction) GetTimeout() *duration.Duration { + if m != nil { + return m.Timeout + } + return nil +} + +func (m *RouteAction) GetIdleTimeout() *duration.Duration { + if m != nil { + return m.IdleTimeout + } + return nil +} + +func (m *RouteAction) GetRetryPolicy() *RetryPolicy { + if m != nil { + return m.RetryPolicy + } + return nil +} + +func (m *RouteAction) GetRetryPolicyTypedConfig() *any.Any { + if m != nil { + return m.RetryPolicyTypedConfig + } + return nil +} + +// Deprecated: Do not use. +func (m *RouteAction) GetHiddenEnvoyDeprecatedRequestMirrorPolicy() *RouteAction_RequestMirrorPolicy { + if m != nil { + return m.HiddenEnvoyDeprecatedRequestMirrorPolicy + } + return nil +} + +func (m *RouteAction) GetRequestMirrorPolicies() []*RouteAction_RequestMirrorPolicy { + if m != nil { + return m.RequestMirrorPolicies + } + return nil +} + +func (m *RouteAction) GetPriority() v3.RoutingPriority { + if m != nil { + return m.Priority + } + return v3.RoutingPriority_DEFAULT +} + +func (m *RouteAction) GetRateLimits() []*RateLimit { + if m != nil { + return m.RateLimits + } + return nil +} + +func (m *RouteAction) GetIncludeVhRateLimits() *wrappers.BoolValue { + if m != nil { + return m.IncludeVhRateLimits + } + return nil +} + +func (m *RouteAction) GetHashPolicy() []*RouteAction_HashPolicy { + if m != nil { + return m.HashPolicy + } + return nil +} + +func (m *RouteAction) GetCors() *CorsPolicy { + if m != nil { + return m.Cors + } + return nil +} + +func (m *RouteAction) GetMaxGrpcTimeout() *duration.Duration { + if m != nil { + return m.MaxGrpcTimeout + } + return nil +} + +func (m *RouteAction) GetGrpcTimeoutOffset() *duration.Duration { + if m != nil { + return m.GrpcTimeoutOffset + } + return nil +} + +func (m *RouteAction) GetUpgradeConfigs() []*RouteAction_UpgradeConfig { + if m != nil { + return m.UpgradeConfigs + } + return nil +} + +func (m *RouteAction) GetInternalRedirectAction() RouteAction_InternalRedirectAction { + if m != nil { + return m.InternalRedirectAction + } + return RouteAction_PASS_THROUGH_INTERNAL_REDIRECT +} + +func (m *RouteAction) GetMaxInternalRedirects() *wrappers.UInt32Value { + if m != nil { + return m.MaxInternalRedirects + } + return nil +} + +func (m *RouteAction) GetHedgePolicy() *HedgePolicy { + if m != nil { + return m.HedgePolicy + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*RouteAction) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*RouteAction_Cluster)(nil), + (*RouteAction_ClusterHeader)(nil), + (*RouteAction_WeightedClusters)(nil), + (*RouteAction_HostRewriteLiteral)(nil), + (*RouteAction_AutoHostRewrite)(nil), + (*RouteAction_HostRewriteHeader)(nil), + } +} + +type RouteAction_RequestMirrorPolicy struct { + Cluster string `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"` + HiddenEnvoyDeprecatedRuntimeKey string `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_runtime_key,json=hiddenEnvoyDeprecatedRuntimeKey,proto3" json:"hidden_envoy_deprecated_runtime_key,omitempty"` // Deprecated: Do not use. + RuntimeFraction *v3.RuntimeFractionalPercent `protobuf:"bytes,3,opt,name=runtime_fraction,json=runtimeFraction,proto3" json:"runtime_fraction,omitempty"` + TraceSampled *wrappers.BoolValue `protobuf:"bytes,4,opt,name=trace_sampled,json=traceSampled,proto3" json:"trace_sampled,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RouteAction_RequestMirrorPolicy) Reset() { *m = RouteAction_RequestMirrorPolicy{} } +func (m *RouteAction_RequestMirrorPolicy) String() string { return proto.CompactTextString(m) } +func (*RouteAction_RequestMirrorPolicy) ProtoMessage() {} +func (*RouteAction_RequestMirrorPolicy) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{6, 0} +} + +func (m *RouteAction_RequestMirrorPolicy) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RouteAction_RequestMirrorPolicy.Unmarshal(m, b) +} +func (m *RouteAction_RequestMirrorPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RouteAction_RequestMirrorPolicy.Marshal(b, m, deterministic) +} +func (m *RouteAction_RequestMirrorPolicy) XXX_Merge(src proto.Message) { + xxx_messageInfo_RouteAction_RequestMirrorPolicy.Merge(m, src) +} +func (m *RouteAction_RequestMirrorPolicy) XXX_Size() int { + return xxx_messageInfo_RouteAction_RequestMirrorPolicy.Size(m) +} +func (m *RouteAction_RequestMirrorPolicy) XXX_DiscardUnknown() { + xxx_messageInfo_RouteAction_RequestMirrorPolicy.DiscardUnknown(m) +} + +var xxx_messageInfo_RouteAction_RequestMirrorPolicy proto.InternalMessageInfo + +func (m *RouteAction_RequestMirrorPolicy) GetCluster() string { + if m != nil { + return m.Cluster + } + return "" +} + +// Deprecated: Do not use. +func (m *RouteAction_RequestMirrorPolicy) GetHiddenEnvoyDeprecatedRuntimeKey() string { + if m != nil { + return m.HiddenEnvoyDeprecatedRuntimeKey + } + return "" +} + +func (m *RouteAction_RequestMirrorPolicy) GetRuntimeFraction() *v3.RuntimeFractionalPercent { + if m != nil { + return m.RuntimeFraction + } + return nil +} + +func (m *RouteAction_RequestMirrorPolicy) GetTraceSampled() *wrappers.BoolValue { + if m != nil { + return m.TraceSampled + } + return nil +} + +type RouteAction_HashPolicy struct { + // Types that are valid to be assigned to PolicySpecifier: + // *RouteAction_HashPolicy_Header_ + // *RouteAction_HashPolicy_Cookie_ + // *RouteAction_HashPolicy_ConnectionProperties_ + // *RouteAction_HashPolicy_QueryParameter_ + // *RouteAction_HashPolicy_FilterState_ + PolicySpecifier isRouteAction_HashPolicy_PolicySpecifier `protobuf_oneof:"policy_specifier"` + Terminal bool `protobuf:"varint,4,opt,name=terminal,proto3" json:"terminal,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RouteAction_HashPolicy) Reset() { *m = RouteAction_HashPolicy{} } +func (m *RouteAction_HashPolicy) String() string { return proto.CompactTextString(m) } +func (*RouteAction_HashPolicy) ProtoMessage() {} +func (*RouteAction_HashPolicy) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{6, 1} +} + +func (m *RouteAction_HashPolicy) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RouteAction_HashPolicy.Unmarshal(m, b) +} +func (m *RouteAction_HashPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RouteAction_HashPolicy.Marshal(b, m, deterministic) +} +func (m *RouteAction_HashPolicy) XXX_Merge(src proto.Message) { + xxx_messageInfo_RouteAction_HashPolicy.Merge(m, src) +} +func (m *RouteAction_HashPolicy) XXX_Size() int { + return xxx_messageInfo_RouteAction_HashPolicy.Size(m) +} +func (m *RouteAction_HashPolicy) XXX_DiscardUnknown() { + xxx_messageInfo_RouteAction_HashPolicy.DiscardUnknown(m) +} + +var xxx_messageInfo_RouteAction_HashPolicy proto.InternalMessageInfo + +type isRouteAction_HashPolicy_PolicySpecifier interface { + isRouteAction_HashPolicy_PolicySpecifier() +} + +type RouteAction_HashPolicy_Header_ struct { + Header *RouteAction_HashPolicy_Header `protobuf:"bytes,1,opt,name=header,proto3,oneof"` +} + +type RouteAction_HashPolicy_Cookie_ struct { + Cookie *RouteAction_HashPolicy_Cookie `protobuf:"bytes,2,opt,name=cookie,proto3,oneof"` +} + +type RouteAction_HashPolicy_ConnectionProperties_ struct { + ConnectionProperties *RouteAction_HashPolicy_ConnectionProperties `protobuf:"bytes,3,opt,name=connection_properties,json=connectionProperties,proto3,oneof"` +} + +type RouteAction_HashPolicy_QueryParameter_ struct { + QueryParameter *RouteAction_HashPolicy_QueryParameter `protobuf:"bytes,5,opt,name=query_parameter,json=queryParameter,proto3,oneof"` +} + +type RouteAction_HashPolicy_FilterState_ struct { + FilterState *RouteAction_HashPolicy_FilterState `protobuf:"bytes,6,opt,name=filter_state,json=filterState,proto3,oneof"` +} + +func (*RouteAction_HashPolicy_Header_) isRouteAction_HashPolicy_PolicySpecifier() {} + +func (*RouteAction_HashPolicy_Cookie_) isRouteAction_HashPolicy_PolicySpecifier() {} + +func (*RouteAction_HashPolicy_ConnectionProperties_) isRouteAction_HashPolicy_PolicySpecifier() {} + +func (*RouteAction_HashPolicy_QueryParameter_) isRouteAction_HashPolicy_PolicySpecifier() {} + +func (*RouteAction_HashPolicy_FilterState_) isRouteAction_HashPolicy_PolicySpecifier() {} + +func (m *RouteAction_HashPolicy) GetPolicySpecifier() isRouteAction_HashPolicy_PolicySpecifier { + if m != nil { + return m.PolicySpecifier + } + return nil +} + +func (m *RouteAction_HashPolicy) GetHeader() *RouteAction_HashPolicy_Header { + if x, ok := m.GetPolicySpecifier().(*RouteAction_HashPolicy_Header_); ok { + return x.Header + } + return nil +} + +func (m *RouteAction_HashPolicy) GetCookie() *RouteAction_HashPolicy_Cookie { + if x, ok := m.GetPolicySpecifier().(*RouteAction_HashPolicy_Cookie_); ok { + return x.Cookie + } + return nil +} + +func (m *RouteAction_HashPolicy) GetConnectionProperties() *RouteAction_HashPolicy_ConnectionProperties { + if x, ok := m.GetPolicySpecifier().(*RouteAction_HashPolicy_ConnectionProperties_); ok { + return x.ConnectionProperties + } + return nil +} + +func (m *RouteAction_HashPolicy) GetQueryParameter() *RouteAction_HashPolicy_QueryParameter { + if x, ok := m.GetPolicySpecifier().(*RouteAction_HashPolicy_QueryParameter_); ok { + return x.QueryParameter + } + return nil +} + +func (m *RouteAction_HashPolicy) GetFilterState() *RouteAction_HashPolicy_FilterState { + if x, ok := m.GetPolicySpecifier().(*RouteAction_HashPolicy_FilterState_); ok { + return x.FilterState + } + return nil +} + +func (m *RouteAction_HashPolicy) GetTerminal() bool { + if m != nil { + return m.Terminal + } + return false +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*RouteAction_HashPolicy) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*RouteAction_HashPolicy_Header_)(nil), + (*RouteAction_HashPolicy_Cookie_)(nil), + (*RouteAction_HashPolicy_ConnectionProperties_)(nil), + (*RouteAction_HashPolicy_QueryParameter_)(nil), + (*RouteAction_HashPolicy_FilterState_)(nil), + } +} + +type RouteAction_HashPolicy_Header struct { + HeaderName string `protobuf:"bytes,1,opt,name=header_name,json=headerName,proto3" json:"header_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RouteAction_HashPolicy_Header) Reset() { *m = RouteAction_HashPolicy_Header{} } +func (m *RouteAction_HashPolicy_Header) String() string { return proto.CompactTextString(m) } +func (*RouteAction_HashPolicy_Header) ProtoMessage() {} +func (*RouteAction_HashPolicy_Header) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{6, 1, 0} +} + +func (m *RouteAction_HashPolicy_Header) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RouteAction_HashPolicy_Header.Unmarshal(m, b) +} +func (m *RouteAction_HashPolicy_Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RouteAction_HashPolicy_Header.Marshal(b, m, deterministic) +} +func (m *RouteAction_HashPolicy_Header) XXX_Merge(src proto.Message) { + xxx_messageInfo_RouteAction_HashPolicy_Header.Merge(m, src) +} +func (m *RouteAction_HashPolicy_Header) XXX_Size() int { + return xxx_messageInfo_RouteAction_HashPolicy_Header.Size(m) +} +func (m *RouteAction_HashPolicy_Header) XXX_DiscardUnknown() { + xxx_messageInfo_RouteAction_HashPolicy_Header.DiscardUnknown(m) +} + +var xxx_messageInfo_RouteAction_HashPolicy_Header proto.InternalMessageInfo + +func (m *RouteAction_HashPolicy_Header) GetHeaderName() string { + if m != nil { + return m.HeaderName + } + return "" +} + +type RouteAction_HashPolicy_Cookie struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Ttl *duration.Duration `protobuf:"bytes,2,opt,name=ttl,proto3" json:"ttl,omitempty"` + Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RouteAction_HashPolicy_Cookie) Reset() { *m = RouteAction_HashPolicy_Cookie{} } +func (m *RouteAction_HashPolicy_Cookie) String() string { return proto.CompactTextString(m) } +func (*RouteAction_HashPolicy_Cookie) ProtoMessage() {} +func (*RouteAction_HashPolicy_Cookie) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{6, 1, 1} +} + +func (m *RouteAction_HashPolicy_Cookie) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RouteAction_HashPolicy_Cookie.Unmarshal(m, b) +} +func (m *RouteAction_HashPolicy_Cookie) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RouteAction_HashPolicy_Cookie.Marshal(b, m, deterministic) +} +func (m *RouteAction_HashPolicy_Cookie) XXX_Merge(src proto.Message) { + xxx_messageInfo_RouteAction_HashPolicy_Cookie.Merge(m, src) +} +func (m *RouteAction_HashPolicy_Cookie) XXX_Size() int { + return xxx_messageInfo_RouteAction_HashPolicy_Cookie.Size(m) +} +func (m *RouteAction_HashPolicy_Cookie) XXX_DiscardUnknown() { + xxx_messageInfo_RouteAction_HashPolicy_Cookie.DiscardUnknown(m) +} + +var xxx_messageInfo_RouteAction_HashPolicy_Cookie proto.InternalMessageInfo + +func (m *RouteAction_HashPolicy_Cookie) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *RouteAction_HashPolicy_Cookie) GetTtl() *duration.Duration { + if m != nil { + return m.Ttl + } + return nil +} + +func (m *RouteAction_HashPolicy_Cookie) GetPath() string { + if m != nil { + return m.Path + } + return "" +} + +type RouteAction_HashPolicy_ConnectionProperties struct { + SourceIp bool `protobuf:"varint,1,opt,name=source_ip,json=sourceIp,proto3" json:"source_ip,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RouteAction_HashPolicy_ConnectionProperties) Reset() { + *m = RouteAction_HashPolicy_ConnectionProperties{} +} +func (m *RouteAction_HashPolicy_ConnectionProperties) String() string { + return proto.CompactTextString(m) +} +func (*RouteAction_HashPolicy_ConnectionProperties) ProtoMessage() {} +func (*RouteAction_HashPolicy_ConnectionProperties) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{6, 1, 2} +} + +func (m *RouteAction_HashPolicy_ConnectionProperties) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RouteAction_HashPolicy_ConnectionProperties.Unmarshal(m, b) +} +func (m *RouteAction_HashPolicy_ConnectionProperties) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RouteAction_HashPolicy_ConnectionProperties.Marshal(b, m, deterministic) +} +func (m *RouteAction_HashPolicy_ConnectionProperties) XXX_Merge(src proto.Message) { + xxx_messageInfo_RouteAction_HashPolicy_ConnectionProperties.Merge(m, src) +} +func (m *RouteAction_HashPolicy_ConnectionProperties) XXX_Size() int { + return xxx_messageInfo_RouteAction_HashPolicy_ConnectionProperties.Size(m) +} +func (m *RouteAction_HashPolicy_ConnectionProperties) XXX_DiscardUnknown() { + xxx_messageInfo_RouteAction_HashPolicy_ConnectionProperties.DiscardUnknown(m) +} + +var xxx_messageInfo_RouteAction_HashPolicy_ConnectionProperties proto.InternalMessageInfo + +func (m *RouteAction_HashPolicy_ConnectionProperties) GetSourceIp() bool { + if m != nil { + return m.SourceIp + } + return false +} + +type RouteAction_HashPolicy_QueryParameter struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RouteAction_HashPolicy_QueryParameter) Reset() { *m = RouteAction_HashPolicy_QueryParameter{} } +func (m *RouteAction_HashPolicy_QueryParameter) String() string { return proto.CompactTextString(m) } +func (*RouteAction_HashPolicy_QueryParameter) ProtoMessage() {} +func (*RouteAction_HashPolicy_QueryParameter) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{6, 1, 3} +} + +func (m *RouteAction_HashPolicy_QueryParameter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RouteAction_HashPolicy_QueryParameter.Unmarshal(m, b) +} +func (m *RouteAction_HashPolicy_QueryParameter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RouteAction_HashPolicy_QueryParameter.Marshal(b, m, deterministic) +} +func (m *RouteAction_HashPolicy_QueryParameter) XXX_Merge(src proto.Message) { + xxx_messageInfo_RouteAction_HashPolicy_QueryParameter.Merge(m, src) +} +func (m *RouteAction_HashPolicy_QueryParameter) XXX_Size() int { + return xxx_messageInfo_RouteAction_HashPolicy_QueryParameter.Size(m) +} +func (m *RouteAction_HashPolicy_QueryParameter) XXX_DiscardUnknown() { + xxx_messageInfo_RouteAction_HashPolicy_QueryParameter.DiscardUnknown(m) +} + +var xxx_messageInfo_RouteAction_HashPolicy_QueryParameter proto.InternalMessageInfo + +func (m *RouteAction_HashPolicy_QueryParameter) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type RouteAction_HashPolicy_FilterState struct { + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RouteAction_HashPolicy_FilterState) Reset() { *m = RouteAction_HashPolicy_FilterState{} } +func (m *RouteAction_HashPolicy_FilterState) String() string { return proto.CompactTextString(m) } +func (*RouteAction_HashPolicy_FilterState) ProtoMessage() {} +func (*RouteAction_HashPolicy_FilterState) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{6, 1, 4} +} + +func (m *RouteAction_HashPolicy_FilterState) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RouteAction_HashPolicy_FilterState.Unmarshal(m, b) +} +func (m *RouteAction_HashPolicy_FilterState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RouteAction_HashPolicy_FilterState.Marshal(b, m, deterministic) +} +func (m *RouteAction_HashPolicy_FilterState) XXX_Merge(src proto.Message) { + xxx_messageInfo_RouteAction_HashPolicy_FilterState.Merge(m, src) +} +func (m *RouteAction_HashPolicy_FilterState) XXX_Size() int { + return xxx_messageInfo_RouteAction_HashPolicy_FilterState.Size(m) +} +func (m *RouteAction_HashPolicy_FilterState) XXX_DiscardUnknown() { + xxx_messageInfo_RouteAction_HashPolicy_FilterState.DiscardUnknown(m) +} + +var xxx_messageInfo_RouteAction_HashPolicy_FilterState proto.InternalMessageInfo + +func (m *RouteAction_HashPolicy_FilterState) GetKey() string { + if m != nil { + return m.Key + } + return "" +} + +type RouteAction_UpgradeConfig struct { + UpgradeType string `protobuf:"bytes,1,opt,name=upgrade_type,json=upgradeType,proto3" json:"upgrade_type,omitempty"` + Enabled *wrappers.BoolValue `protobuf:"bytes,2,opt,name=enabled,proto3" json:"enabled,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RouteAction_UpgradeConfig) Reset() { *m = RouteAction_UpgradeConfig{} } +func (m *RouteAction_UpgradeConfig) String() string { return proto.CompactTextString(m) } +func (*RouteAction_UpgradeConfig) ProtoMessage() {} +func (*RouteAction_UpgradeConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{6, 2} +} + +func (m *RouteAction_UpgradeConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RouteAction_UpgradeConfig.Unmarshal(m, b) +} +func (m *RouteAction_UpgradeConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RouteAction_UpgradeConfig.Marshal(b, m, deterministic) +} +func (m *RouteAction_UpgradeConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_RouteAction_UpgradeConfig.Merge(m, src) +} +func (m *RouteAction_UpgradeConfig) XXX_Size() int { + return xxx_messageInfo_RouteAction_UpgradeConfig.Size(m) +} +func (m *RouteAction_UpgradeConfig) XXX_DiscardUnknown() { + xxx_messageInfo_RouteAction_UpgradeConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_RouteAction_UpgradeConfig proto.InternalMessageInfo + +func (m *RouteAction_UpgradeConfig) GetUpgradeType() string { + if m != nil { + return m.UpgradeType + } + return "" +} + +func (m *RouteAction_UpgradeConfig) GetEnabled() *wrappers.BoolValue { + if m != nil { + return m.Enabled + } + return nil +} + +type RetryPolicy struct { + RetryOn string `protobuf:"bytes,1,opt,name=retry_on,json=retryOn,proto3" json:"retry_on,omitempty"` + NumRetries *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=num_retries,json=numRetries,proto3" json:"num_retries,omitempty"` + PerTryTimeout *duration.Duration `protobuf:"bytes,3,opt,name=per_try_timeout,json=perTryTimeout,proto3" json:"per_try_timeout,omitempty"` + RetryPriority *RetryPolicy_RetryPriority `protobuf:"bytes,4,opt,name=retry_priority,json=retryPriority,proto3" json:"retry_priority,omitempty"` + RetryHostPredicate []*RetryPolicy_RetryHostPredicate `protobuf:"bytes,5,rep,name=retry_host_predicate,json=retryHostPredicate,proto3" json:"retry_host_predicate,omitempty"` + HostSelectionRetryMaxAttempts int64 `protobuf:"varint,6,opt,name=host_selection_retry_max_attempts,json=hostSelectionRetryMaxAttempts,proto3" json:"host_selection_retry_max_attempts,omitempty"` + RetriableStatusCodes []uint32 `protobuf:"varint,7,rep,packed,name=retriable_status_codes,json=retriableStatusCodes,proto3" json:"retriable_status_codes,omitempty"` + RetryBackOff *RetryPolicy_RetryBackOff `protobuf:"bytes,8,opt,name=retry_back_off,json=retryBackOff,proto3" json:"retry_back_off,omitempty"` + RetriableHeaders []*HeaderMatcher `protobuf:"bytes,9,rep,name=retriable_headers,json=retriableHeaders,proto3" json:"retriable_headers,omitempty"` + RetriableRequestHeaders []*HeaderMatcher `protobuf:"bytes,10,rep,name=retriable_request_headers,json=retriableRequestHeaders,proto3" json:"retriable_request_headers,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RetryPolicy) Reset() { *m = RetryPolicy{} } +func (m *RetryPolicy) String() string { return proto.CompactTextString(m) } +func (*RetryPolicy) ProtoMessage() {} +func (*RetryPolicy) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{7} +} + +func (m *RetryPolicy) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RetryPolicy.Unmarshal(m, b) +} +func (m *RetryPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RetryPolicy.Marshal(b, m, deterministic) +} +func (m *RetryPolicy) XXX_Merge(src proto.Message) { + xxx_messageInfo_RetryPolicy.Merge(m, src) +} +func (m *RetryPolicy) XXX_Size() int { + return xxx_messageInfo_RetryPolicy.Size(m) +} +func (m *RetryPolicy) XXX_DiscardUnknown() { + xxx_messageInfo_RetryPolicy.DiscardUnknown(m) +} + +var xxx_messageInfo_RetryPolicy proto.InternalMessageInfo + +func (m *RetryPolicy) GetRetryOn() string { + if m != nil { + return m.RetryOn + } + return "" +} + +func (m *RetryPolicy) GetNumRetries() *wrappers.UInt32Value { + if m != nil { + return m.NumRetries + } + return nil +} + +func (m *RetryPolicy) GetPerTryTimeout() *duration.Duration { + if m != nil { + return m.PerTryTimeout + } + return nil +} + +func (m *RetryPolicy) GetRetryPriority() *RetryPolicy_RetryPriority { + if m != nil { + return m.RetryPriority + } + return nil +} + +func (m *RetryPolicy) GetRetryHostPredicate() []*RetryPolicy_RetryHostPredicate { + if m != nil { + return m.RetryHostPredicate + } + return nil +} + +func (m *RetryPolicy) GetHostSelectionRetryMaxAttempts() int64 { + if m != nil { + return m.HostSelectionRetryMaxAttempts + } + return 0 +} + +func (m *RetryPolicy) GetRetriableStatusCodes() []uint32 { + if m != nil { + return m.RetriableStatusCodes + } + return nil +} + +func (m *RetryPolicy) GetRetryBackOff() *RetryPolicy_RetryBackOff { + if m != nil { + return m.RetryBackOff + } + return nil +} + +func (m *RetryPolicy) GetRetriableHeaders() []*HeaderMatcher { + if m != nil { + return m.RetriableHeaders + } + return nil +} + +func (m *RetryPolicy) GetRetriableRequestHeaders() []*HeaderMatcher { + if m != nil { + return m.RetriableRequestHeaders + } + return nil +} + +type RetryPolicy_RetryPriority struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Types that are valid to be assigned to ConfigType: + // *RetryPolicy_RetryPriority_HiddenEnvoyDeprecatedConfig + // *RetryPolicy_RetryPriority_TypedConfig + ConfigType isRetryPolicy_RetryPriority_ConfigType `protobuf_oneof:"config_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RetryPolicy_RetryPriority) Reset() { *m = RetryPolicy_RetryPriority{} } +func (m *RetryPolicy_RetryPriority) String() string { return proto.CompactTextString(m) } +func (*RetryPolicy_RetryPriority) ProtoMessage() {} +func (*RetryPolicy_RetryPriority) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{7, 0} +} + +func (m *RetryPolicy_RetryPriority) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RetryPolicy_RetryPriority.Unmarshal(m, b) +} +func (m *RetryPolicy_RetryPriority) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RetryPolicy_RetryPriority.Marshal(b, m, deterministic) +} +func (m *RetryPolicy_RetryPriority) XXX_Merge(src proto.Message) { + xxx_messageInfo_RetryPolicy_RetryPriority.Merge(m, src) +} +func (m *RetryPolicy_RetryPriority) XXX_Size() int { + return xxx_messageInfo_RetryPolicy_RetryPriority.Size(m) +} +func (m *RetryPolicy_RetryPriority) XXX_DiscardUnknown() { + xxx_messageInfo_RetryPolicy_RetryPriority.DiscardUnknown(m) +} + +var xxx_messageInfo_RetryPolicy_RetryPriority proto.InternalMessageInfo + +func (m *RetryPolicy_RetryPriority) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type isRetryPolicy_RetryPriority_ConfigType interface { + isRetryPolicy_RetryPriority_ConfigType() +} + +type RetryPolicy_RetryPriority_HiddenEnvoyDeprecatedConfig struct { + HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"` +} + +type RetryPolicy_RetryPriority_TypedConfig struct { + TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"` +} + +func (*RetryPolicy_RetryPriority_HiddenEnvoyDeprecatedConfig) isRetryPolicy_RetryPriority_ConfigType() { +} + +func (*RetryPolicy_RetryPriority_TypedConfig) isRetryPolicy_RetryPriority_ConfigType() {} + +func (m *RetryPolicy_RetryPriority) GetConfigType() isRetryPolicy_RetryPriority_ConfigType { + if m != nil { + return m.ConfigType + } + return nil +} + +// Deprecated: Do not use. +func (m *RetryPolicy_RetryPriority) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct { + if x, ok := m.GetConfigType().(*RetryPolicy_RetryPriority_HiddenEnvoyDeprecatedConfig); ok { + return x.HiddenEnvoyDeprecatedConfig + } + return nil +} + +func (m *RetryPolicy_RetryPriority) GetTypedConfig() *any.Any { + if x, ok := m.GetConfigType().(*RetryPolicy_RetryPriority_TypedConfig); ok { + return x.TypedConfig + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*RetryPolicy_RetryPriority) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*RetryPolicy_RetryPriority_HiddenEnvoyDeprecatedConfig)(nil), + (*RetryPolicy_RetryPriority_TypedConfig)(nil), + } +} + +type RetryPolicy_RetryHostPredicate struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Types that are valid to be assigned to ConfigType: + // *RetryPolicy_RetryHostPredicate_HiddenEnvoyDeprecatedConfig + // *RetryPolicy_RetryHostPredicate_TypedConfig + ConfigType isRetryPolicy_RetryHostPredicate_ConfigType `protobuf_oneof:"config_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RetryPolicy_RetryHostPredicate) Reset() { *m = RetryPolicy_RetryHostPredicate{} } +func (m *RetryPolicy_RetryHostPredicate) String() string { return proto.CompactTextString(m) } +func (*RetryPolicy_RetryHostPredicate) ProtoMessage() {} +func (*RetryPolicy_RetryHostPredicate) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{7, 1} +} + +func (m *RetryPolicy_RetryHostPredicate) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RetryPolicy_RetryHostPredicate.Unmarshal(m, b) +} +func (m *RetryPolicy_RetryHostPredicate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RetryPolicy_RetryHostPredicate.Marshal(b, m, deterministic) +} +func (m *RetryPolicy_RetryHostPredicate) XXX_Merge(src proto.Message) { + xxx_messageInfo_RetryPolicy_RetryHostPredicate.Merge(m, src) +} +func (m *RetryPolicy_RetryHostPredicate) XXX_Size() int { + return xxx_messageInfo_RetryPolicy_RetryHostPredicate.Size(m) +} +func (m *RetryPolicy_RetryHostPredicate) XXX_DiscardUnknown() { + xxx_messageInfo_RetryPolicy_RetryHostPredicate.DiscardUnknown(m) +} + +var xxx_messageInfo_RetryPolicy_RetryHostPredicate proto.InternalMessageInfo + +func (m *RetryPolicy_RetryHostPredicate) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type isRetryPolicy_RetryHostPredicate_ConfigType interface { + isRetryPolicy_RetryHostPredicate_ConfigType() +} + +type RetryPolicy_RetryHostPredicate_HiddenEnvoyDeprecatedConfig struct { + HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"` +} + +type RetryPolicy_RetryHostPredicate_TypedConfig struct { + TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"` +} + +func (*RetryPolicy_RetryHostPredicate_HiddenEnvoyDeprecatedConfig) isRetryPolicy_RetryHostPredicate_ConfigType() { +} + +func (*RetryPolicy_RetryHostPredicate_TypedConfig) isRetryPolicy_RetryHostPredicate_ConfigType() {} + +func (m *RetryPolicy_RetryHostPredicate) GetConfigType() isRetryPolicy_RetryHostPredicate_ConfigType { + if m != nil { + return m.ConfigType + } + return nil +} + +// Deprecated: Do not use. +func (m *RetryPolicy_RetryHostPredicate) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct { + if x, ok := m.GetConfigType().(*RetryPolicy_RetryHostPredicate_HiddenEnvoyDeprecatedConfig); ok { + return x.HiddenEnvoyDeprecatedConfig + } + return nil +} + +func (m *RetryPolicy_RetryHostPredicate) GetTypedConfig() *any.Any { + if x, ok := m.GetConfigType().(*RetryPolicy_RetryHostPredicate_TypedConfig); ok { + return x.TypedConfig + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*RetryPolicy_RetryHostPredicate) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*RetryPolicy_RetryHostPredicate_HiddenEnvoyDeprecatedConfig)(nil), + (*RetryPolicy_RetryHostPredicate_TypedConfig)(nil), + } +} + +type RetryPolicy_RetryBackOff struct { + BaseInterval *duration.Duration `protobuf:"bytes,1,opt,name=base_interval,json=baseInterval,proto3" json:"base_interval,omitempty"` + MaxInterval *duration.Duration `protobuf:"bytes,2,opt,name=max_interval,json=maxInterval,proto3" json:"max_interval,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RetryPolicy_RetryBackOff) Reset() { *m = RetryPolicy_RetryBackOff{} } +func (m *RetryPolicy_RetryBackOff) String() string { return proto.CompactTextString(m) } +func (*RetryPolicy_RetryBackOff) ProtoMessage() {} +func (*RetryPolicy_RetryBackOff) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{7, 2} +} + +func (m *RetryPolicy_RetryBackOff) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RetryPolicy_RetryBackOff.Unmarshal(m, b) +} +func (m *RetryPolicy_RetryBackOff) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RetryPolicy_RetryBackOff.Marshal(b, m, deterministic) +} +func (m *RetryPolicy_RetryBackOff) XXX_Merge(src proto.Message) { + xxx_messageInfo_RetryPolicy_RetryBackOff.Merge(m, src) +} +func (m *RetryPolicy_RetryBackOff) XXX_Size() int { + return xxx_messageInfo_RetryPolicy_RetryBackOff.Size(m) +} +func (m *RetryPolicy_RetryBackOff) XXX_DiscardUnknown() { + xxx_messageInfo_RetryPolicy_RetryBackOff.DiscardUnknown(m) +} + +var xxx_messageInfo_RetryPolicy_RetryBackOff proto.InternalMessageInfo + +func (m *RetryPolicy_RetryBackOff) GetBaseInterval() *duration.Duration { + if m != nil { + return m.BaseInterval + } + return nil +} + +func (m *RetryPolicy_RetryBackOff) GetMaxInterval() *duration.Duration { + if m != nil { + return m.MaxInterval + } + return nil +} + +type HedgePolicy struct { + InitialRequests *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=initial_requests,json=initialRequests,proto3" json:"initial_requests,omitempty"` + AdditionalRequestChance *v32.FractionalPercent `protobuf:"bytes,2,opt,name=additional_request_chance,json=additionalRequestChance,proto3" json:"additional_request_chance,omitempty"` + HedgeOnPerTryTimeout bool `protobuf:"varint,3,opt,name=hedge_on_per_try_timeout,json=hedgeOnPerTryTimeout,proto3" json:"hedge_on_per_try_timeout,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HedgePolicy) Reset() { *m = HedgePolicy{} } +func (m *HedgePolicy) String() string { return proto.CompactTextString(m) } +func (*HedgePolicy) ProtoMessage() {} +func (*HedgePolicy) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{8} +} + +func (m *HedgePolicy) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HedgePolicy.Unmarshal(m, b) +} +func (m *HedgePolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HedgePolicy.Marshal(b, m, deterministic) +} +func (m *HedgePolicy) XXX_Merge(src proto.Message) { + xxx_messageInfo_HedgePolicy.Merge(m, src) +} +func (m *HedgePolicy) XXX_Size() int { + return xxx_messageInfo_HedgePolicy.Size(m) +} +func (m *HedgePolicy) XXX_DiscardUnknown() { + xxx_messageInfo_HedgePolicy.DiscardUnknown(m) +} + +var xxx_messageInfo_HedgePolicy proto.InternalMessageInfo + +func (m *HedgePolicy) GetInitialRequests() *wrappers.UInt32Value { + if m != nil { + return m.InitialRequests + } + return nil +} + +func (m *HedgePolicy) GetAdditionalRequestChance() *v32.FractionalPercent { + if m != nil { + return m.AdditionalRequestChance + } + return nil +} + +func (m *HedgePolicy) GetHedgeOnPerTryTimeout() bool { + if m != nil { + return m.HedgeOnPerTryTimeout + } + return false +} + +type RedirectAction struct { + // Types that are valid to be assigned to SchemeRewriteSpecifier: + // *RedirectAction_HttpsRedirect + // *RedirectAction_SchemeRedirect + SchemeRewriteSpecifier isRedirectAction_SchemeRewriteSpecifier `protobuf_oneof:"scheme_rewrite_specifier"` + HostRedirect string `protobuf:"bytes,1,opt,name=host_redirect,json=hostRedirect,proto3" json:"host_redirect,omitempty"` + PortRedirect uint32 `protobuf:"varint,8,opt,name=port_redirect,json=portRedirect,proto3" json:"port_redirect,omitempty"` + // Types that are valid to be assigned to PathRewriteSpecifier: + // *RedirectAction_PathRedirect + // *RedirectAction_PrefixRewrite + PathRewriteSpecifier isRedirectAction_PathRewriteSpecifier `protobuf_oneof:"path_rewrite_specifier"` + ResponseCode RedirectAction_RedirectResponseCode `protobuf:"varint,3,opt,name=response_code,json=responseCode,proto3,enum=envoy.config.route.v3.RedirectAction_RedirectResponseCode" json:"response_code,omitempty"` + StripQuery bool `protobuf:"varint,6,opt,name=strip_query,json=stripQuery,proto3" json:"strip_query,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RedirectAction) Reset() { *m = RedirectAction{} } +func (m *RedirectAction) String() string { return proto.CompactTextString(m) } +func (*RedirectAction) ProtoMessage() {} +func (*RedirectAction) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{9} +} + +func (m *RedirectAction) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RedirectAction.Unmarshal(m, b) +} +func (m *RedirectAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RedirectAction.Marshal(b, m, deterministic) +} +func (m *RedirectAction) XXX_Merge(src proto.Message) { + xxx_messageInfo_RedirectAction.Merge(m, src) +} +func (m *RedirectAction) XXX_Size() int { + return xxx_messageInfo_RedirectAction.Size(m) +} +func (m *RedirectAction) XXX_DiscardUnknown() { + xxx_messageInfo_RedirectAction.DiscardUnknown(m) +} + +var xxx_messageInfo_RedirectAction proto.InternalMessageInfo + +type isRedirectAction_SchemeRewriteSpecifier interface { + isRedirectAction_SchemeRewriteSpecifier() +} + +type RedirectAction_HttpsRedirect struct { + HttpsRedirect bool `protobuf:"varint,4,opt,name=https_redirect,json=httpsRedirect,proto3,oneof"` +} + +type RedirectAction_SchemeRedirect struct { + SchemeRedirect string `protobuf:"bytes,7,opt,name=scheme_redirect,json=schemeRedirect,proto3,oneof"` +} + +func (*RedirectAction_HttpsRedirect) isRedirectAction_SchemeRewriteSpecifier() {} + +func (*RedirectAction_SchemeRedirect) isRedirectAction_SchemeRewriteSpecifier() {} + +func (m *RedirectAction) GetSchemeRewriteSpecifier() isRedirectAction_SchemeRewriteSpecifier { + if m != nil { + return m.SchemeRewriteSpecifier + } + return nil +} + +func (m *RedirectAction) GetHttpsRedirect() bool { + if x, ok := m.GetSchemeRewriteSpecifier().(*RedirectAction_HttpsRedirect); ok { + return x.HttpsRedirect + } + return false +} + +func (m *RedirectAction) GetSchemeRedirect() string { + if x, ok := m.GetSchemeRewriteSpecifier().(*RedirectAction_SchemeRedirect); ok { + return x.SchemeRedirect + } + return "" +} + +func (m *RedirectAction) GetHostRedirect() string { + if m != nil { + return m.HostRedirect + } + return "" +} + +func (m *RedirectAction) GetPortRedirect() uint32 { + if m != nil { + return m.PortRedirect + } + return 0 +} + +type isRedirectAction_PathRewriteSpecifier interface { + isRedirectAction_PathRewriteSpecifier() +} + +type RedirectAction_PathRedirect struct { + PathRedirect string `protobuf:"bytes,2,opt,name=path_redirect,json=pathRedirect,proto3,oneof"` +} + +type RedirectAction_PrefixRewrite struct { + PrefixRewrite string `protobuf:"bytes,5,opt,name=prefix_rewrite,json=prefixRewrite,proto3,oneof"` +} + +func (*RedirectAction_PathRedirect) isRedirectAction_PathRewriteSpecifier() {} + +func (*RedirectAction_PrefixRewrite) isRedirectAction_PathRewriteSpecifier() {} + +func (m *RedirectAction) GetPathRewriteSpecifier() isRedirectAction_PathRewriteSpecifier { + if m != nil { + return m.PathRewriteSpecifier + } + return nil +} + +func (m *RedirectAction) GetPathRedirect() string { + if x, ok := m.GetPathRewriteSpecifier().(*RedirectAction_PathRedirect); ok { + return x.PathRedirect + } + return "" +} + +func (m *RedirectAction) GetPrefixRewrite() string { + if x, ok := m.GetPathRewriteSpecifier().(*RedirectAction_PrefixRewrite); ok { + return x.PrefixRewrite + } + return "" +} + +func (m *RedirectAction) GetResponseCode() RedirectAction_RedirectResponseCode { + if m != nil { + return m.ResponseCode + } + return RedirectAction_MOVED_PERMANENTLY +} + +func (m *RedirectAction) GetStripQuery() bool { + if m != nil { + return m.StripQuery + } + return false +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*RedirectAction) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*RedirectAction_HttpsRedirect)(nil), + (*RedirectAction_SchemeRedirect)(nil), + (*RedirectAction_PathRedirect)(nil), + (*RedirectAction_PrefixRewrite)(nil), + } +} + +type DirectResponseAction struct { + Status uint32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` + Body *v3.DataSource `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DirectResponseAction) Reset() { *m = DirectResponseAction{} } +func (m *DirectResponseAction) String() string { return proto.CompactTextString(m) } +func (*DirectResponseAction) ProtoMessage() {} +func (*DirectResponseAction) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{10} +} + +func (m *DirectResponseAction) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DirectResponseAction.Unmarshal(m, b) +} +func (m *DirectResponseAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DirectResponseAction.Marshal(b, m, deterministic) +} +func (m *DirectResponseAction) XXX_Merge(src proto.Message) { + xxx_messageInfo_DirectResponseAction.Merge(m, src) +} +func (m *DirectResponseAction) XXX_Size() int { + return xxx_messageInfo_DirectResponseAction.Size(m) +} +func (m *DirectResponseAction) XXX_DiscardUnknown() { + xxx_messageInfo_DirectResponseAction.DiscardUnknown(m) +} + +var xxx_messageInfo_DirectResponseAction proto.InternalMessageInfo + +func (m *DirectResponseAction) GetStatus() uint32 { + if m != nil { + return m.Status + } + return 0 +} + +func (m *DirectResponseAction) GetBody() *v3.DataSource { + if m != nil { + return m.Body + } + return nil +} + +type Decorator struct { + Operation string `protobuf:"bytes,1,opt,name=operation,proto3" json:"operation,omitempty"` + Propagate *wrappers.BoolValue `protobuf:"bytes,2,opt,name=propagate,proto3" json:"propagate,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Decorator) Reset() { *m = Decorator{} } +func (m *Decorator) String() string { return proto.CompactTextString(m) } +func (*Decorator) ProtoMessage() {} +func (*Decorator) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{11} +} + +func (m *Decorator) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Decorator.Unmarshal(m, b) +} +func (m *Decorator) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Decorator.Marshal(b, m, deterministic) +} +func (m *Decorator) XXX_Merge(src proto.Message) { + xxx_messageInfo_Decorator.Merge(m, src) +} +func (m *Decorator) XXX_Size() int { + return xxx_messageInfo_Decorator.Size(m) +} +func (m *Decorator) XXX_DiscardUnknown() { + xxx_messageInfo_Decorator.DiscardUnknown(m) +} + +var xxx_messageInfo_Decorator proto.InternalMessageInfo + +func (m *Decorator) GetOperation() string { + if m != nil { + return m.Operation + } + return "" +} + +func (m *Decorator) GetPropagate() *wrappers.BoolValue { + if m != nil { + return m.Propagate + } + return nil +} + +type Tracing struct { + ClientSampling *v32.FractionalPercent `protobuf:"bytes,1,opt,name=client_sampling,json=clientSampling,proto3" json:"client_sampling,omitempty"` + RandomSampling *v32.FractionalPercent `protobuf:"bytes,2,opt,name=random_sampling,json=randomSampling,proto3" json:"random_sampling,omitempty"` + OverallSampling *v32.FractionalPercent `protobuf:"bytes,3,opt,name=overall_sampling,json=overallSampling,proto3" json:"overall_sampling,omitempty"` + CustomTags []*v33.CustomTag `protobuf:"bytes,4,rep,name=custom_tags,json=customTags,proto3" json:"custom_tags,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Tracing) Reset() { *m = Tracing{} } +func (m *Tracing) String() string { return proto.CompactTextString(m) } +func (*Tracing) ProtoMessage() {} +func (*Tracing) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{12} +} + +func (m *Tracing) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Tracing.Unmarshal(m, b) +} +func (m *Tracing) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Tracing.Marshal(b, m, deterministic) +} +func (m *Tracing) XXX_Merge(src proto.Message) { + xxx_messageInfo_Tracing.Merge(m, src) +} +func (m *Tracing) XXX_Size() int { + return xxx_messageInfo_Tracing.Size(m) +} +func (m *Tracing) XXX_DiscardUnknown() { + xxx_messageInfo_Tracing.DiscardUnknown(m) +} + +var xxx_messageInfo_Tracing proto.InternalMessageInfo + +func (m *Tracing) GetClientSampling() *v32.FractionalPercent { + if m != nil { + return m.ClientSampling + } + return nil +} + +func (m *Tracing) GetRandomSampling() *v32.FractionalPercent { + if m != nil { + return m.RandomSampling + } + return nil +} + +func (m *Tracing) GetOverallSampling() *v32.FractionalPercent { + if m != nil { + return m.OverallSampling + } + return nil +} + +func (m *Tracing) GetCustomTags() []*v33.CustomTag { + if m != nil { + return m.CustomTags + } + return nil +} + +type VirtualCluster struct { + HiddenEnvoyDeprecatedPattern string `protobuf:"bytes,1,opt,name=hidden_envoy_deprecated_pattern,json=hiddenEnvoyDeprecatedPattern,proto3" json:"hidden_envoy_deprecated_pattern,omitempty"` // Deprecated: Do not use. + Headers []*HeaderMatcher `protobuf:"bytes,4,rep,name=headers,proto3" json:"headers,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + HiddenEnvoyDeprecatedMethod v3.RequestMethod `protobuf:"varint,3,opt,name=hidden_envoy_deprecated_method,json=hiddenEnvoyDeprecatedMethod,proto3,enum=envoy.config.core.v3.RequestMethod" json:"hidden_envoy_deprecated_method,omitempty"` // Deprecated: Do not use. + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VirtualCluster) Reset() { *m = VirtualCluster{} } +func (m *VirtualCluster) String() string { return proto.CompactTextString(m) } +func (*VirtualCluster) ProtoMessage() {} +func (*VirtualCluster) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{13} +} + +func (m *VirtualCluster) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VirtualCluster.Unmarshal(m, b) +} +func (m *VirtualCluster) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VirtualCluster.Marshal(b, m, deterministic) +} +func (m *VirtualCluster) XXX_Merge(src proto.Message) { + xxx_messageInfo_VirtualCluster.Merge(m, src) +} +func (m *VirtualCluster) XXX_Size() int { + return xxx_messageInfo_VirtualCluster.Size(m) +} +func (m *VirtualCluster) XXX_DiscardUnknown() { + xxx_messageInfo_VirtualCluster.DiscardUnknown(m) +} + +var xxx_messageInfo_VirtualCluster proto.InternalMessageInfo + +// Deprecated: Do not use. +func (m *VirtualCluster) GetHiddenEnvoyDeprecatedPattern() string { + if m != nil { + return m.HiddenEnvoyDeprecatedPattern + } + return "" +} + +func (m *VirtualCluster) GetHeaders() []*HeaderMatcher { + if m != nil { + return m.Headers + } + return nil +} + +func (m *VirtualCluster) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +// Deprecated: Do not use. +func (m *VirtualCluster) GetHiddenEnvoyDeprecatedMethod() v3.RequestMethod { + if m != nil { + return m.HiddenEnvoyDeprecatedMethod + } + return v3.RequestMethod_METHOD_UNSPECIFIED +} + +type RateLimit struct { + Stage *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=stage,proto3" json:"stage,omitempty"` + DisableKey string `protobuf:"bytes,2,opt,name=disable_key,json=disableKey,proto3" json:"disable_key,omitempty"` + Actions []*RateLimit_Action `protobuf:"bytes,3,rep,name=actions,proto3" json:"actions,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RateLimit) Reset() { *m = RateLimit{} } +func (m *RateLimit) String() string { return proto.CompactTextString(m) } +func (*RateLimit) ProtoMessage() {} +func (*RateLimit) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{14} +} + +func (m *RateLimit) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RateLimit.Unmarshal(m, b) +} +func (m *RateLimit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RateLimit.Marshal(b, m, deterministic) +} +func (m *RateLimit) XXX_Merge(src proto.Message) { + xxx_messageInfo_RateLimit.Merge(m, src) +} +func (m *RateLimit) XXX_Size() int { + return xxx_messageInfo_RateLimit.Size(m) +} +func (m *RateLimit) XXX_DiscardUnknown() { + xxx_messageInfo_RateLimit.DiscardUnknown(m) +} + +var xxx_messageInfo_RateLimit proto.InternalMessageInfo + +func (m *RateLimit) GetStage() *wrappers.UInt32Value { + if m != nil { + return m.Stage + } + return nil +} + +func (m *RateLimit) GetDisableKey() string { + if m != nil { + return m.DisableKey + } + return "" +} + +func (m *RateLimit) GetActions() []*RateLimit_Action { + if m != nil { + return m.Actions + } + return nil +} + +type RateLimit_Action struct { + // Types that are valid to be assigned to ActionSpecifier: + // *RateLimit_Action_SourceCluster_ + // *RateLimit_Action_DestinationCluster_ + // *RateLimit_Action_RequestHeaders_ + // *RateLimit_Action_RemoteAddress_ + // *RateLimit_Action_GenericKey_ + // *RateLimit_Action_HeaderValueMatch_ + ActionSpecifier isRateLimit_Action_ActionSpecifier `protobuf_oneof:"action_specifier"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RateLimit_Action) Reset() { *m = RateLimit_Action{} } +func (m *RateLimit_Action) String() string { return proto.CompactTextString(m) } +func (*RateLimit_Action) ProtoMessage() {} +func (*RateLimit_Action) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{14, 0} +} + +func (m *RateLimit_Action) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RateLimit_Action.Unmarshal(m, b) +} +func (m *RateLimit_Action) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RateLimit_Action.Marshal(b, m, deterministic) +} +func (m *RateLimit_Action) XXX_Merge(src proto.Message) { + xxx_messageInfo_RateLimit_Action.Merge(m, src) +} +func (m *RateLimit_Action) XXX_Size() int { + return xxx_messageInfo_RateLimit_Action.Size(m) +} +func (m *RateLimit_Action) XXX_DiscardUnknown() { + xxx_messageInfo_RateLimit_Action.DiscardUnknown(m) +} + +var xxx_messageInfo_RateLimit_Action proto.InternalMessageInfo + +type isRateLimit_Action_ActionSpecifier interface { + isRateLimit_Action_ActionSpecifier() +} + +type RateLimit_Action_SourceCluster_ struct { + SourceCluster *RateLimit_Action_SourceCluster `protobuf:"bytes,1,opt,name=source_cluster,json=sourceCluster,proto3,oneof"` +} + +type RateLimit_Action_DestinationCluster_ struct { + DestinationCluster *RateLimit_Action_DestinationCluster `protobuf:"bytes,2,opt,name=destination_cluster,json=destinationCluster,proto3,oneof"` +} + +type RateLimit_Action_RequestHeaders_ struct { + RequestHeaders *RateLimit_Action_RequestHeaders `protobuf:"bytes,3,opt,name=request_headers,json=requestHeaders,proto3,oneof"` +} + +type RateLimit_Action_RemoteAddress_ struct { + RemoteAddress *RateLimit_Action_RemoteAddress `protobuf:"bytes,4,opt,name=remote_address,json=remoteAddress,proto3,oneof"` +} + +type RateLimit_Action_GenericKey_ struct { + GenericKey *RateLimit_Action_GenericKey `protobuf:"bytes,5,opt,name=generic_key,json=genericKey,proto3,oneof"` +} + +type RateLimit_Action_HeaderValueMatch_ struct { + HeaderValueMatch *RateLimit_Action_HeaderValueMatch `protobuf:"bytes,6,opt,name=header_value_match,json=headerValueMatch,proto3,oneof"` +} + +func (*RateLimit_Action_SourceCluster_) isRateLimit_Action_ActionSpecifier() {} + +func (*RateLimit_Action_DestinationCluster_) isRateLimit_Action_ActionSpecifier() {} + +func (*RateLimit_Action_RequestHeaders_) isRateLimit_Action_ActionSpecifier() {} + +func (*RateLimit_Action_RemoteAddress_) isRateLimit_Action_ActionSpecifier() {} + +func (*RateLimit_Action_GenericKey_) isRateLimit_Action_ActionSpecifier() {} + +func (*RateLimit_Action_HeaderValueMatch_) isRateLimit_Action_ActionSpecifier() {} + +func (m *RateLimit_Action) GetActionSpecifier() isRateLimit_Action_ActionSpecifier { + if m != nil { + return m.ActionSpecifier + } + return nil +} + +func (m *RateLimit_Action) GetSourceCluster() *RateLimit_Action_SourceCluster { + if x, ok := m.GetActionSpecifier().(*RateLimit_Action_SourceCluster_); ok { + return x.SourceCluster + } + return nil +} + +func (m *RateLimit_Action) GetDestinationCluster() *RateLimit_Action_DestinationCluster { + if x, ok := m.GetActionSpecifier().(*RateLimit_Action_DestinationCluster_); ok { + return x.DestinationCluster + } + return nil +} + +func (m *RateLimit_Action) GetRequestHeaders() *RateLimit_Action_RequestHeaders { + if x, ok := m.GetActionSpecifier().(*RateLimit_Action_RequestHeaders_); ok { + return x.RequestHeaders + } + return nil +} + +func (m *RateLimit_Action) GetRemoteAddress() *RateLimit_Action_RemoteAddress { + if x, ok := m.GetActionSpecifier().(*RateLimit_Action_RemoteAddress_); ok { + return x.RemoteAddress + } + return nil +} + +func (m *RateLimit_Action) GetGenericKey() *RateLimit_Action_GenericKey { + if x, ok := m.GetActionSpecifier().(*RateLimit_Action_GenericKey_); ok { + return x.GenericKey + } + return nil +} + +func (m *RateLimit_Action) GetHeaderValueMatch() *RateLimit_Action_HeaderValueMatch { + if x, ok := m.GetActionSpecifier().(*RateLimit_Action_HeaderValueMatch_); ok { + return x.HeaderValueMatch + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*RateLimit_Action) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*RateLimit_Action_SourceCluster_)(nil), + (*RateLimit_Action_DestinationCluster_)(nil), + (*RateLimit_Action_RequestHeaders_)(nil), + (*RateLimit_Action_RemoteAddress_)(nil), + (*RateLimit_Action_GenericKey_)(nil), + (*RateLimit_Action_HeaderValueMatch_)(nil), + } +} + +type RateLimit_Action_SourceCluster struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RateLimit_Action_SourceCluster) Reset() { *m = RateLimit_Action_SourceCluster{} } +func (m *RateLimit_Action_SourceCluster) String() string { return proto.CompactTextString(m) } +func (*RateLimit_Action_SourceCluster) ProtoMessage() {} +func (*RateLimit_Action_SourceCluster) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{14, 0, 0} +} + +func (m *RateLimit_Action_SourceCluster) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RateLimit_Action_SourceCluster.Unmarshal(m, b) +} +func (m *RateLimit_Action_SourceCluster) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RateLimit_Action_SourceCluster.Marshal(b, m, deterministic) +} +func (m *RateLimit_Action_SourceCluster) XXX_Merge(src proto.Message) { + xxx_messageInfo_RateLimit_Action_SourceCluster.Merge(m, src) +} +func (m *RateLimit_Action_SourceCluster) XXX_Size() int { + return xxx_messageInfo_RateLimit_Action_SourceCluster.Size(m) +} +func (m *RateLimit_Action_SourceCluster) XXX_DiscardUnknown() { + xxx_messageInfo_RateLimit_Action_SourceCluster.DiscardUnknown(m) +} + +var xxx_messageInfo_RateLimit_Action_SourceCluster proto.InternalMessageInfo + +type RateLimit_Action_DestinationCluster struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RateLimit_Action_DestinationCluster) Reset() { *m = RateLimit_Action_DestinationCluster{} } +func (m *RateLimit_Action_DestinationCluster) String() string { return proto.CompactTextString(m) } +func (*RateLimit_Action_DestinationCluster) ProtoMessage() {} +func (*RateLimit_Action_DestinationCluster) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{14, 0, 1} +} + +func (m *RateLimit_Action_DestinationCluster) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RateLimit_Action_DestinationCluster.Unmarshal(m, b) +} +func (m *RateLimit_Action_DestinationCluster) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RateLimit_Action_DestinationCluster.Marshal(b, m, deterministic) +} +func (m *RateLimit_Action_DestinationCluster) XXX_Merge(src proto.Message) { + xxx_messageInfo_RateLimit_Action_DestinationCluster.Merge(m, src) +} +func (m *RateLimit_Action_DestinationCluster) XXX_Size() int { + return xxx_messageInfo_RateLimit_Action_DestinationCluster.Size(m) +} +func (m *RateLimit_Action_DestinationCluster) XXX_DiscardUnknown() { + xxx_messageInfo_RateLimit_Action_DestinationCluster.DiscardUnknown(m) +} + +var xxx_messageInfo_RateLimit_Action_DestinationCluster proto.InternalMessageInfo + +type RateLimit_Action_RequestHeaders struct { + HeaderName string `protobuf:"bytes,1,opt,name=header_name,json=headerName,proto3" json:"header_name,omitempty"` + DescriptorKey string `protobuf:"bytes,2,opt,name=descriptor_key,json=descriptorKey,proto3" json:"descriptor_key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RateLimit_Action_RequestHeaders) Reset() { *m = RateLimit_Action_RequestHeaders{} } +func (m *RateLimit_Action_RequestHeaders) String() string { return proto.CompactTextString(m) } +func (*RateLimit_Action_RequestHeaders) ProtoMessage() {} +func (*RateLimit_Action_RequestHeaders) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{14, 0, 2} +} + +func (m *RateLimit_Action_RequestHeaders) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RateLimit_Action_RequestHeaders.Unmarshal(m, b) +} +func (m *RateLimit_Action_RequestHeaders) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RateLimit_Action_RequestHeaders.Marshal(b, m, deterministic) +} +func (m *RateLimit_Action_RequestHeaders) XXX_Merge(src proto.Message) { + xxx_messageInfo_RateLimit_Action_RequestHeaders.Merge(m, src) +} +func (m *RateLimit_Action_RequestHeaders) XXX_Size() int { + return xxx_messageInfo_RateLimit_Action_RequestHeaders.Size(m) +} +func (m *RateLimit_Action_RequestHeaders) XXX_DiscardUnknown() { + xxx_messageInfo_RateLimit_Action_RequestHeaders.DiscardUnknown(m) +} + +var xxx_messageInfo_RateLimit_Action_RequestHeaders proto.InternalMessageInfo + +func (m *RateLimit_Action_RequestHeaders) GetHeaderName() string { + if m != nil { + return m.HeaderName + } + return "" +} + +func (m *RateLimit_Action_RequestHeaders) GetDescriptorKey() string { + if m != nil { + return m.DescriptorKey + } + return "" +} + +type RateLimit_Action_RemoteAddress struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RateLimit_Action_RemoteAddress) Reset() { *m = RateLimit_Action_RemoteAddress{} } +func (m *RateLimit_Action_RemoteAddress) String() string { return proto.CompactTextString(m) } +func (*RateLimit_Action_RemoteAddress) ProtoMessage() {} +func (*RateLimit_Action_RemoteAddress) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{14, 0, 3} +} + +func (m *RateLimit_Action_RemoteAddress) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RateLimit_Action_RemoteAddress.Unmarshal(m, b) +} +func (m *RateLimit_Action_RemoteAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RateLimit_Action_RemoteAddress.Marshal(b, m, deterministic) +} +func (m *RateLimit_Action_RemoteAddress) XXX_Merge(src proto.Message) { + xxx_messageInfo_RateLimit_Action_RemoteAddress.Merge(m, src) +} +func (m *RateLimit_Action_RemoteAddress) XXX_Size() int { + return xxx_messageInfo_RateLimit_Action_RemoteAddress.Size(m) +} +func (m *RateLimit_Action_RemoteAddress) XXX_DiscardUnknown() { + xxx_messageInfo_RateLimit_Action_RemoteAddress.DiscardUnknown(m) +} + +var xxx_messageInfo_RateLimit_Action_RemoteAddress proto.InternalMessageInfo + +type RateLimit_Action_GenericKey struct { + DescriptorValue string `protobuf:"bytes,1,opt,name=descriptor_value,json=descriptorValue,proto3" json:"descriptor_value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RateLimit_Action_GenericKey) Reset() { *m = RateLimit_Action_GenericKey{} } +func (m *RateLimit_Action_GenericKey) String() string { return proto.CompactTextString(m) } +func (*RateLimit_Action_GenericKey) ProtoMessage() {} +func (*RateLimit_Action_GenericKey) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{14, 0, 4} +} + +func (m *RateLimit_Action_GenericKey) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RateLimit_Action_GenericKey.Unmarshal(m, b) +} +func (m *RateLimit_Action_GenericKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RateLimit_Action_GenericKey.Marshal(b, m, deterministic) +} +func (m *RateLimit_Action_GenericKey) XXX_Merge(src proto.Message) { + xxx_messageInfo_RateLimit_Action_GenericKey.Merge(m, src) +} +func (m *RateLimit_Action_GenericKey) XXX_Size() int { + return xxx_messageInfo_RateLimit_Action_GenericKey.Size(m) +} +func (m *RateLimit_Action_GenericKey) XXX_DiscardUnknown() { + xxx_messageInfo_RateLimit_Action_GenericKey.DiscardUnknown(m) +} + +var xxx_messageInfo_RateLimit_Action_GenericKey proto.InternalMessageInfo + +func (m *RateLimit_Action_GenericKey) GetDescriptorValue() string { + if m != nil { + return m.DescriptorValue + } + return "" +} + +type RateLimit_Action_HeaderValueMatch struct { + DescriptorValue string `protobuf:"bytes,1,opt,name=descriptor_value,json=descriptorValue,proto3" json:"descriptor_value,omitempty"` + ExpectMatch *wrappers.BoolValue `protobuf:"bytes,2,opt,name=expect_match,json=expectMatch,proto3" json:"expect_match,omitempty"` + Headers []*HeaderMatcher `protobuf:"bytes,3,rep,name=headers,proto3" json:"headers,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RateLimit_Action_HeaderValueMatch) Reset() { *m = RateLimit_Action_HeaderValueMatch{} } +func (m *RateLimit_Action_HeaderValueMatch) String() string { return proto.CompactTextString(m) } +func (*RateLimit_Action_HeaderValueMatch) ProtoMessage() {} +func (*RateLimit_Action_HeaderValueMatch) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{14, 0, 5} +} + +func (m *RateLimit_Action_HeaderValueMatch) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RateLimit_Action_HeaderValueMatch.Unmarshal(m, b) +} +func (m *RateLimit_Action_HeaderValueMatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RateLimit_Action_HeaderValueMatch.Marshal(b, m, deterministic) +} +func (m *RateLimit_Action_HeaderValueMatch) XXX_Merge(src proto.Message) { + xxx_messageInfo_RateLimit_Action_HeaderValueMatch.Merge(m, src) +} +func (m *RateLimit_Action_HeaderValueMatch) XXX_Size() int { + return xxx_messageInfo_RateLimit_Action_HeaderValueMatch.Size(m) +} +func (m *RateLimit_Action_HeaderValueMatch) XXX_DiscardUnknown() { + xxx_messageInfo_RateLimit_Action_HeaderValueMatch.DiscardUnknown(m) +} + +var xxx_messageInfo_RateLimit_Action_HeaderValueMatch proto.InternalMessageInfo + +func (m *RateLimit_Action_HeaderValueMatch) GetDescriptorValue() string { + if m != nil { + return m.DescriptorValue + } + return "" +} + +func (m *RateLimit_Action_HeaderValueMatch) GetExpectMatch() *wrappers.BoolValue { + if m != nil { + return m.ExpectMatch + } + return nil +} + +func (m *RateLimit_Action_HeaderValueMatch) GetHeaders() []*HeaderMatcher { + if m != nil { + return m.Headers + } + return nil +} + +type HeaderMatcher struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Types that are valid to be assigned to HeaderMatchSpecifier: + // *HeaderMatcher_ExactMatch + // *HeaderMatcher_HiddenEnvoyDeprecatedRegexMatch + // *HeaderMatcher_SafeRegexMatch + // *HeaderMatcher_RangeMatch + // *HeaderMatcher_PresentMatch + // *HeaderMatcher_PrefixMatch + // *HeaderMatcher_SuffixMatch + HeaderMatchSpecifier isHeaderMatcher_HeaderMatchSpecifier `protobuf_oneof:"header_match_specifier"` + InvertMatch bool `protobuf:"varint,8,opt,name=invert_match,json=invertMatch,proto3" json:"invert_match,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HeaderMatcher) Reset() { *m = HeaderMatcher{} } +func (m *HeaderMatcher) String() string { return proto.CompactTextString(m) } +func (*HeaderMatcher) ProtoMessage() {} +func (*HeaderMatcher) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{15} +} + +func (m *HeaderMatcher) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HeaderMatcher.Unmarshal(m, b) +} +func (m *HeaderMatcher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HeaderMatcher.Marshal(b, m, deterministic) +} +func (m *HeaderMatcher) XXX_Merge(src proto.Message) { + xxx_messageInfo_HeaderMatcher.Merge(m, src) +} +func (m *HeaderMatcher) XXX_Size() int { + return xxx_messageInfo_HeaderMatcher.Size(m) +} +func (m *HeaderMatcher) XXX_DiscardUnknown() { + xxx_messageInfo_HeaderMatcher.DiscardUnknown(m) +} + +var xxx_messageInfo_HeaderMatcher proto.InternalMessageInfo + +func (m *HeaderMatcher) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type isHeaderMatcher_HeaderMatchSpecifier interface { + isHeaderMatcher_HeaderMatchSpecifier() +} + +type HeaderMatcher_ExactMatch struct { + ExactMatch string `protobuf:"bytes,4,opt,name=exact_match,json=exactMatch,proto3,oneof"` +} + +type HeaderMatcher_HiddenEnvoyDeprecatedRegexMatch struct { + HiddenEnvoyDeprecatedRegexMatch string `protobuf:"bytes,5,opt,name=hidden_envoy_deprecated_regex_match,json=hiddenEnvoyDeprecatedRegexMatch,proto3,oneof"` +} + +type HeaderMatcher_SafeRegexMatch struct { + SafeRegexMatch *v31.RegexMatcher `protobuf:"bytes,11,opt,name=safe_regex_match,json=safeRegexMatch,proto3,oneof"` +} + +type HeaderMatcher_RangeMatch struct { + RangeMatch *v32.Int64Range `protobuf:"bytes,6,opt,name=range_match,json=rangeMatch,proto3,oneof"` +} + +type HeaderMatcher_PresentMatch struct { + PresentMatch bool `protobuf:"varint,7,opt,name=present_match,json=presentMatch,proto3,oneof"` +} + +type HeaderMatcher_PrefixMatch struct { + PrefixMatch string `protobuf:"bytes,9,opt,name=prefix_match,json=prefixMatch,proto3,oneof"` +} + +type HeaderMatcher_SuffixMatch struct { + SuffixMatch string `protobuf:"bytes,10,opt,name=suffix_match,json=suffixMatch,proto3,oneof"` +} + +func (*HeaderMatcher_ExactMatch) isHeaderMatcher_HeaderMatchSpecifier() {} + +func (*HeaderMatcher_HiddenEnvoyDeprecatedRegexMatch) isHeaderMatcher_HeaderMatchSpecifier() {} + +func (*HeaderMatcher_SafeRegexMatch) isHeaderMatcher_HeaderMatchSpecifier() {} + +func (*HeaderMatcher_RangeMatch) isHeaderMatcher_HeaderMatchSpecifier() {} + +func (*HeaderMatcher_PresentMatch) isHeaderMatcher_HeaderMatchSpecifier() {} + +func (*HeaderMatcher_PrefixMatch) isHeaderMatcher_HeaderMatchSpecifier() {} + +func (*HeaderMatcher_SuffixMatch) isHeaderMatcher_HeaderMatchSpecifier() {} + +func (m *HeaderMatcher) GetHeaderMatchSpecifier() isHeaderMatcher_HeaderMatchSpecifier { + if m != nil { + return m.HeaderMatchSpecifier + } + return nil +} + +func (m *HeaderMatcher) GetExactMatch() string { + if x, ok := m.GetHeaderMatchSpecifier().(*HeaderMatcher_ExactMatch); ok { + return x.ExactMatch + } + return "" +} + +// Deprecated: Do not use. +func (m *HeaderMatcher) GetHiddenEnvoyDeprecatedRegexMatch() string { + if x, ok := m.GetHeaderMatchSpecifier().(*HeaderMatcher_HiddenEnvoyDeprecatedRegexMatch); ok { + return x.HiddenEnvoyDeprecatedRegexMatch + } + return "" +} + +func (m *HeaderMatcher) GetSafeRegexMatch() *v31.RegexMatcher { + if x, ok := m.GetHeaderMatchSpecifier().(*HeaderMatcher_SafeRegexMatch); ok { + return x.SafeRegexMatch + } + return nil +} + +func (m *HeaderMatcher) GetRangeMatch() *v32.Int64Range { + if x, ok := m.GetHeaderMatchSpecifier().(*HeaderMatcher_RangeMatch); ok { + return x.RangeMatch + } + return nil +} + +func (m *HeaderMatcher) GetPresentMatch() bool { + if x, ok := m.GetHeaderMatchSpecifier().(*HeaderMatcher_PresentMatch); ok { + return x.PresentMatch + } + return false +} + +func (m *HeaderMatcher) GetPrefixMatch() string { + if x, ok := m.GetHeaderMatchSpecifier().(*HeaderMatcher_PrefixMatch); ok { + return x.PrefixMatch + } + return "" +} + +func (m *HeaderMatcher) GetSuffixMatch() string { + if x, ok := m.GetHeaderMatchSpecifier().(*HeaderMatcher_SuffixMatch); ok { + return x.SuffixMatch + } + return "" +} + +func (m *HeaderMatcher) GetInvertMatch() bool { + if m != nil { + return m.InvertMatch + } + return false +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*HeaderMatcher) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*HeaderMatcher_ExactMatch)(nil), + (*HeaderMatcher_HiddenEnvoyDeprecatedRegexMatch)(nil), + (*HeaderMatcher_SafeRegexMatch)(nil), + (*HeaderMatcher_RangeMatch)(nil), + (*HeaderMatcher_PresentMatch)(nil), + (*HeaderMatcher_PrefixMatch)(nil), + (*HeaderMatcher_SuffixMatch)(nil), + } +} + +type QueryParameterMatcher struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + HiddenEnvoyDeprecatedValue string `protobuf:"bytes,3,opt,name=hidden_envoy_deprecated_value,json=hiddenEnvoyDeprecatedValue,proto3" json:"hidden_envoy_deprecated_value,omitempty"` // Deprecated: Do not use. + HiddenEnvoyDeprecatedRegex *wrappers.BoolValue `protobuf:"bytes,4,opt,name=hidden_envoy_deprecated_regex,json=hiddenEnvoyDeprecatedRegex,proto3" json:"hidden_envoy_deprecated_regex,omitempty"` // Deprecated: Do not use. + // Types that are valid to be assigned to QueryParameterMatchSpecifier: + // *QueryParameterMatcher_StringMatch + // *QueryParameterMatcher_PresentMatch + QueryParameterMatchSpecifier isQueryParameterMatcher_QueryParameterMatchSpecifier `protobuf_oneof:"query_parameter_match_specifier"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *QueryParameterMatcher) Reset() { *m = QueryParameterMatcher{} } +func (m *QueryParameterMatcher) String() string { return proto.CompactTextString(m) } +func (*QueryParameterMatcher) ProtoMessage() {} +func (*QueryParameterMatcher) Descriptor() ([]byte, []int) { + return fileDescriptor_39a2838304dd45b4, []int{16} +} + +func (m *QueryParameterMatcher) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_QueryParameterMatcher.Unmarshal(m, b) +} +func (m *QueryParameterMatcher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_QueryParameterMatcher.Marshal(b, m, deterministic) +} +func (m *QueryParameterMatcher) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryParameterMatcher.Merge(m, src) +} +func (m *QueryParameterMatcher) XXX_Size() int { + return xxx_messageInfo_QueryParameterMatcher.Size(m) +} +func (m *QueryParameterMatcher) XXX_DiscardUnknown() { + xxx_messageInfo_QueryParameterMatcher.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryParameterMatcher proto.InternalMessageInfo + +func (m *QueryParameterMatcher) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +// Deprecated: Do not use. +func (m *QueryParameterMatcher) GetHiddenEnvoyDeprecatedValue() string { + if m != nil { + return m.HiddenEnvoyDeprecatedValue + } + return "" +} + +// Deprecated: Do not use. +func (m *QueryParameterMatcher) GetHiddenEnvoyDeprecatedRegex() *wrappers.BoolValue { + if m != nil { + return m.HiddenEnvoyDeprecatedRegex + } + return nil +} + +type isQueryParameterMatcher_QueryParameterMatchSpecifier interface { + isQueryParameterMatcher_QueryParameterMatchSpecifier() +} + +type QueryParameterMatcher_StringMatch struct { + StringMatch *v31.StringMatcher `protobuf:"bytes,5,opt,name=string_match,json=stringMatch,proto3,oneof"` +} + +type QueryParameterMatcher_PresentMatch struct { + PresentMatch bool `protobuf:"varint,6,opt,name=present_match,json=presentMatch,proto3,oneof"` +} + +func (*QueryParameterMatcher_StringMatch) isQueryParameterMatcher_QueryParameterMatchSpecifier() {} + +func (*QueryParameterMatcher_PresentMatch) isQueryParameterMatcher_QueryParameterMatchSpecifier() {} + +func (m *QueryParameterMatcher) GetQueryParameterMatchSpecifier() isQueryParameterMatcher_QueryParameterMatchSpecifier { + if m != nil { + return m.QueryParameterMatchSpecifier + } + return nil +} + +func (m *QueryParameterMatcher) GetStringMatch() *v31.StringMatcher { + if x, ok := m.GetQueryParameterMatchSpecifier().(*QueryParameterMatcher_StringMatch); ok { + return x.StringMatch + } + return nil +} + +func (m *QueryParameterMatcher) GetPresentMatch() bool { + if x, ok := m.GetQueryParameterMatchSpecifier().(*QueryParameterMatcher_PresentMatch); ok { + return x.PresentMatch + } + return false +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*QueryParameterMatcher) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*QueryParameterMatcher_StringMatch)(nil), + (*QueryParameterMatcher_PresentMatch)(nil), + } +} + +func init() { + proto.RegisterEnum("envoy.config.route.v3.VirtualHost_TlsRequirementType", VirtualHost_TlsRequirementType_name, VirtualHost_TlsRequirementType_value) + proto.RegisterEnum("envoy.config.route.v3.RouteAction_ClusterNotFoundResponseCode", RouteAction_ClusterNotFoundResponseCode_name, RouteAction_ClusterNotFoundResponseCode_value) + proto.RegisterEnum("envoy.config.route.v3.RouteAction_InternalRedirectAction", RouteAction_InternalRedirectAction_name, RouteAction_InternalRedirectAction_value) + proto.RegisterEnum("envoy.config.route.v3.RedirectAction_RedirectResponseCode", RedirectAction_RedirectResponseCode_name, RedirectAction_RedirectResponseCode_value) + proto.RegisterType((*VirtualHost)(nil), "envoy.config.route.v3.VirtualHost") + proto.RegisterMapType((map[string]*_struct.Struct)(nil), "envoy.config.route.v3.VirtualHost.HiddenEnvoyDeprecatedPerFilterConfigEntry") + proto.RegisterMapType((map[string]*any.Any)(nil), "envoy.config.route.v3.VirtualHost.TypedPerFilterConfigEntry") + proto.RegisterType((*FilterAction)(nil), "envoy.config.route.v3.FilterAction") + proto.RegisterType((*Route)(nil), "envoy.config.route.v3.Route") + proto.RegisterMapType((map[string]*_struct.Struct)(nil), "envoy.config.route.v3.Route.HiddenEnvoyDeprecatedPerFilterConfigEntry") + proto.RegisterMapType((map[string]*any.Any)(nil), "envoy.config.route.v3.Route.TypedPerFilterConfigEntry") + proto.RegisterType((*WeightedCluster)(nil), "envoy.config.route.v3.WeightedCluster") + proto.RegisterType((*WeightedCluster_ClusterWeight)(nil), "envoy.config.route.v3.WeightedCluster.ClusterWeight") + proto.RegisterMapType((map[string]*_struct.Struct)(nil), "envoy.config.route.v3.WeightedCluster.ClusterWeight.HiddenEnvoyDeprecatedPerFilterConfigEntry") + proto.RegisterMapType((map[string]*any.Any)(nil), "envoy.config.route.v3.WeightedCluster.ClusterWeight.TypedPerFilterConfigEntry") + proto.RegisterType((*RouteMatch)(nil), "envoy.config.route.v3.RouteMatch") + proto.RegisterType((*RouteMatch_GrpcRouteMatchOptions)(nil), "envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions") + proto.RegisterType((*RouteMatch_TlsContextMatchOptions)(nil), "envoy.config.route.v3.RouteMatch.TlsContextMatchOptions") + proto.RegisterType((*CorsPolicy)(nil), "envoy.config.route.v3.CorsPolicy") + proto.RegisterType((*RouteAction)(nil), "envoy.config.route.v3.RouteAction") + proto.RegisterType((*RouteAction_RequestMirrorPolicy)(nil), "envoy.config.route.v3.RouteAction.RequestMirrorPolicy") + proto.RegisterType((*RouteAction_HashPolicy)(nil), "envoy.config.route.v3.RouteAction.HashPolicy") + proto.RegisterType((*RouteAction_HashPolicy_Header)(nil), "envoy.config.route.v3.RouteAction.HashPolicy.Header") + proto.RegisterType((*RouteAction_HashPolicy_Cookie)(nil), "envoy.config.route.v3.RouteAction.HashPolicy.Cookie") + proto.RegisterType((*RouteAction_HashPolicy_ConnectionProperties)(nil), "envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties") + proto.RegisterType((*RouteAction_HashPolicy_QueryParameter)(nil), "envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter") + proto.RegisterType((*RouteAction_HashPolicy_FilterState)(nil), "envoy.config.route.v3.RouteAction.HashPolicy.FilterState") + proto.RegisterType((*RouteAction_UpgradeConfig)(nil), "envoy.config.route.v3.RouteAction.UpgradeConfig") + proto.RegisterType((*RetryPolicy)(nil), "envoy.config.route.v3.RetryPolicy") + proto.RegisterType((*RetryPolicy_RetryPriority)(nil), "envoy.config.route.v3.RetryPolicy.RetryPriority") + proto.RegisterType((*RetryPolicy_RetryHostPredicate)(nil), "envoy.config.route.v3.RetryPolicy.RetryHostPredicate") + proto.RegisterType((*RetryPolicy_RetryBackOff)(nil), "envoy.config.route.v3.RetryPolicy.RetryBackOff") + proto.RegisterType((*HedgePolicy)(nil), "envoy.config.route.v3.HedgePolicy") + proto.RegisterType((*RedirectAction)(nil), "envoy.config.route.v3.RedirectAction") + proto.RegisterType((*DirectResponseAction)(nil), "envoy.config.route.v3.DirectResponseAction") + proto.RegisterType((*Decorator)(nil), "envoy.config.route.v3.Decorator") + proto.RegisterType((*Tracing)(nil), "envoy.config.route.v3.Tracing") + proto.RegisterType((*VirtualCluster)(nil), "envoy.config.route.v3.VirtualCluster") + proto.RegisterType((*RateLimit)(nil), "envoy.config.route.v3.RateLimit") + proto.RegisterType((*RateLimit_Action)(nil), "envoy.config.route.v3.RateLimit.Action") + proto.RegisterType((*RateLimit_Action_SourceCluster)(nil), "envoy.config.route.v3.RateLimit.Action.SourceCluster") + proto.RegisterType((*RateLimit_Action_DestinationCluster)(nil), "envoy.config.route.v3.RateLimit.Action.DestinationCluster") + proto.RegisterType((*RateLimit_Action_RequestHeaders)(nil), "envoy.config.route.v3.RateLimit.Action.RequestHeaders") + proto.RegisterType((*RateLimit_Action_RemoteAddress)(nil), "envoy.config.route.v3.RateLimit.Action.RemoteAddress") + proto.RegisterType((*RateLimit_Action_GenericKey)(nil), "envoy.config.route.v3.RateLimit.Action.GenericKey") + proto.RegisterType((*RateLimit_Action_HeaderValueMatch)(nil), "envoy.config.route.v3.RateLimit.Action.HeaderValueMatch") + proto.RegisterType((*HeaderMatcher)(nil), "envoy.config.route.v3.HeaderMatcher") + proto.RegisterType((*QueryParameterMatcher)(nil), "envoy.config.route.v3.QueryParameterMatcher") +} + +func init() { + proto.RegisterFile("envoy/config/route/v3/route_components.proto", fileDescriptor_39a2838304dd45b4) +} + +var fileDescriptor_39a2838304dd45b4 = []byte{ + // 5008 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5c, 0x4b, 0x6c, 0x1b, 0x49, + 0x7a, 0x66, 0x93, 0x94, 0x44, 0xfe, 0x7c, 0x88, 0x2a, 0xcb, 0x12, 0x4d, 0xbf, 0x24, 0x7a, 0xbc, + 0x23, 0x7b, 0x3c, 0xb4, 0x23, 0x3f, 0xd6, 0xc3, 0x79, 0x85, 0x94, 0xe9, 0xa1, 0x64, 0x5b, 0xd2, + 0x96, 0x64, 0xcf, 0x7a, 0x91, 0x4c, 0x4f, 0x8b, 0x5d, 0xa2, 0x3a, 0x43, 0x76, 0x73, 0xaa, 0x9b, + 0xb2, 0x94, 0xd3, 0x20, 0x41, 0x80, 0x60, 0x11, 0x24, 0xc8, 0xdc, 0xf2, 0x00, 0x36, 0x40, 0x80, + 0x05, 0x32, 0x39, 0xe5, 0x16, 0x64, 0x11, 0x60, 0x72, 0x08, 0x30, 0x41, 0x4e, 0xd9, 0x43, 0x90, + 0x53, 0x90, 0xc3, 0x02, 0xc9, 0x29, 0x87, 0x9c, 0x02, 0x9f, 0x82, 0x7a, 0xf4, 0x8b, 0x6a, 0x3e, + 0x24, 0x64, 0x06, 0xc8, 0x22, 0x27, 0xb3, 0xab, 0xff, 0xff, 0xab, 0xbf, 0xab, 0xfe, 0xff, 0xaf, + 0xff, 0x51, 0x32, 0xdc, 0x22, 0xe6, 0xa1, 0x75, 0x7c, 0xbb, 0x65, 0x99, 0xfb, 0x46, 0xfb, 0x36, + 0xb5, 0xfa, 0x0e, 0xb9, 0x7d, 0x78, 0x57, 0xfc, 0x50, 0x5b, 0x56, 0xb7, 0x67, 0x99, 0xc4, 0x74, + 0xec, 0x4a, 0x8f, 0x5a, 0x8e, 0x85, 0xce, 0x73, 0xea, 0x8a, 0xa0, 0xae, 0x70, 0xa2, 0xca, 0xe1, + 0xdd, 0xd2, 0xd5, 0x10, 0x48, 0xcb, 0xa2, 0x1c, 0x63, 0x4f, 0xb3, 0x89, 0xe0, 0x2b, 0x2d, 0x0b, + 0x02, 0xe7, 0xb8, 0x47, 0x6e, 0x77, 0x35, 0xa7, 0x75, 0x40, 0x28, 0x9f, 0x85, 0xb4, 0xc9, 0x91, + 0x24, 0x29, 0x47, 0x93, 0xd8, 0x0e, 0x35, 0xcc, 0xb6, 0xa4, 0xf9, 0x5e, 0x80, 0xc6, 0xa1, 0x5a, + 0xcb, 0x30, 0xdb, 0x8c, 0xa6, 0xd5, 0xb7, 0x1d, 0xab, 0xab, 0x3a, 0x9a, 0x4b, 0x77, 0x31, 0x40, + 0x77, 0x78, 0xf7, 0x76, 0x8f, 0xd0, 0x16, 0x31, 0x1d, 0xf9, 0xf2, 0x42, 0xf8, 0x25, 0xd5, 0xcc, + 0xb6, 0x2b, 0xe6, 0x85, 0xb6, 0x65, 0xb5, 0x3b, 0xe4, 0x36, 0x7f, 0xda, 0xeb, 0xef, 0xdf, 0xd6, + 0xcc, 0x63, 0xf9, 0xea, 0xca, 0xe0, 0x2b, 0xbd, 0x4f, 0x35, 0xc7, 0xb0, 0x4c, 0xf9, 0xfe, 0xd2, + 0xe0, 0x7b, 0xdb, 0xa1, 0xfd, 0x96, 0x33, 0x8c, 0xfb, 0x15, 0xd5, 0x7a, 0x3d, 0x42, 0xe5, 0xba, + 0x96, 0xae, 0x09, 0x99, 0x34, 0xd3, 0xb4, 0x1c, 0x8e, 0x6a, 0xdf, 0xd6, 0x49, 0x8f, 0x92, 0x56, + 0x70, 0x8a, 0xcb, 0x7d, 0xbd, 0xa7, 0x85, 0x68, 0x6c, 0x47, 0x73, 0xfa, 0x2e, 0xc6, 0xf2, 0x89, + 0xd7, 0x87, 0x84, 0xda, 0x86, 0x65, 0xfa, 0xeb, 0xb7, 0x78, 0xa8, 0x75, 0x0c, 0x5d, 0x63, 0x5b, + 0x2c, 0x7f, 0x88, 0x17, 0xe5, 0xbf, 0xca, 0x43, 0xe6, 0x85, 0x41, 0x9d, 0xbe, 0xd6, 0x69, 0x5a, + 0xb6, 0x83, 0x2e, 0x42, 0xd2, 0xd4, 0xba, 0xa4, 0xa8, 0x2c, 0x29, 0x2b, 0xe9, 0xfa, 0xcc, 0xeb, + 0x7a, 0x92, 0xc6, 0x97, 0x14, 0xcc, 0x07, 0xd1, 0x2d, 0x98, 0xd1, 0xad, 0xae, 0x66, 0x98, 0x76, + 0x31, 0xbe, 0x94, 0x58, 0x49, 0xd7, 0xd1, 0xeb, 0xfa, 0xec, 0x97, 0x4a, 0x36, 0xa5, 0x94, 0x53, + 0x74, 0xfa, 0x6b, 0x25, 0xfe, 0x8d, 0x12, 0xc3, 0x2e, 0x09, 0xba, 0x07, 0xd3, 0x5c, 0x4f, 0xec, + 0x62, 0x62, 0x29, 0xb1, 0x92, 0x59, 0xbd, 0x54, 0x89, 0xd4, 0xa1, 0x0a, 0x66, 0x3f, 0xb0, 0xa4, + 0x45, 0x9f, 0x42, 0x86, 0x92, 0xcf, 0xfb, 0x06, 0x25, 0xaa, 0xd3, 0xb1, 0x8b, 0xc9, 0x25, 0x65, + 0x25, 0xbf, 0x7a, 0x7f, 0x08, 0x6b, 0x40, 0xf2, 0xca, 0x6e, 0xc7, 0xc6, 0x82, 0xb1, 0x4b, 0x4c, + 0x67, 0xf7, 0xb8, 0x47, 0xea, 0xa9, 0xd7, 0xf5, 0xa9, 0xdf, 0x52, 0xe2, 0x05, 0x05, 0x83, 0xc4, + 0xdc, 0xed, 0xd8, 0x68, 0x1b, 0x0a, 0x87, 0x82, 0x4f, 0x6d, 0x75, 0xfa, 0xb6, 0x43, 0xa8, 0x5d, + 0x9c, 0xe2, 0x12, 0x5e, 0x1f, 0x3d, 0xcd, 0x9a, 0xa0, 0xc6, 0xb3, 0x87, 0xa1, 0x67, 0x1b, 0xd5, + 0x20, 0x43, 0x35, 0x87, 0xa8, 0x1d, 0xa3, 0x6b, 0x38, 0x76, 0x71, 0x9a, 0x83, 0x2d, 0x0d, 0xfb, + 0x5c, 0xcd, 0x21, 0x4f, 0x19, 0x21, 0x06, 0xea, 0xfe, 0xb4, 0x51, 0x1b, 0x16, 0x98, 0x88, 0xc4, + 0x76, 0xd4, 0x03, 0xa2, 0xe9, 0x84, 0xda, 0xaa, 0x63, 0xa9, 0x9a, 0xae, 0x17, 0x67, 0x38, 0xda, + 0x9b, 0x61, 0x34, 0x66, 0x69, 0x0c, 0xac, 0xc9, 0x69, 0x5f, 0x68, 0x9d, 0x3e, 0xd9, 0xea, 0xb1, + 0xbd, 0xaf, 0xa7, 0x5f, 0xd7, 0xa7, 0xbf, 0x54, 0x12, 0x85, 0xff, 0x98, 0xc1, 0xe7, 0x24, 0xa2, + 0x20, 0xb2, 0x77, 0xad, 0x9a, 0xae, 0xa3, 0x77, 0xe0, 0x42, 0xc4, 0x44, 0x94, 0x74, 0xad, 0x43, + 0x52, 0xcc, 0xb1, 0x5d, 0xc5, 0x0b, 0x83, 0x7c, 0x98, 0xbf, 0x45, 0x06, 0x2c, 0x52, 0x62, 0xf7, + 0x2c, 0xd3, 0x26, 0x83, 0x42, 0xc2, 0x99, 0x85, 0x9c, 0x77, 0x21, 0x43, 0x52, 0xbe, 0x0b, 0xa5, + 0xa8, 0xa9, 0xa4, 0x98, 0x19, 0x2e, 0xe6, 0xe2, 0x09, 0x4e, 0x29, 0xe7, 0x7d, 0x48, 0xb6, 0x2c, + 0x6a, 0x17, 0x53, 0x4b, 0xca, 0x4a, 0x66, 0x75, 0x79, 0xc8, 0x3e, 0xac, 0x59, 0xd4, 0xde, 0xb6, + 0x3a, 0x46, 0xeb, 0x18, 0x73, 0x72, 0xf4, 0x17, 0x0a, 0xdc, 0x38, 0x30, 0x74, 0x9d, 0x98, 0x2a, + 0xe7, 0x50, 0x5d, 0x43, 0x24, 0xba, 0xda, 0x23, 0x54, 0xdd, 0x37, 0x3a, 0x0e, 0xa1, 0xaa, 0xc0, + 0x29, 0x66, 0xf9, 0x17, 0x3f, 0x9d, 0x40, 0x31, 0x9b, 0x1c, 0xb3, 0xc1, 0xe8, 0x1e, 0x79, 0x88, + 0xdb, 0x84, 0x3e, 0xe6, 0x78, 0x6b, 0x9c, 0xb3, 0x61, 0x3a, 0xf4, 0xb8, 0x1e, 0x2f, 0x2a, 0xf8, + 0x8d, 0x83, 0x09, 0xc8, 0x91, 0x0d, 0x8b, 0xcc, 0x8d, 0x45, 0x09, 0x36, 0xcb, 0x05, 0x7b, 0x6f, + 0x12, 0x8b, 0x61, 0x08, 0x51, 0x82, 0xe0, 0x79, 0x27, 0xe2, 0x15, 0xaa, 0xc1, 0x65, 0xc3, 0x6c, + 0x75, 0xfa, 0x3a, 0x51, 0x5d, 0x15, 0xd2, 0x1c, 0x87, 0x74, 0x7b, 0x8e, 0xda, 0xb2, 0xfa, 0xa6, + 0x53, 0xcc, 0x2f, 0x29, 0x2b, 0x29, 0x5c, 0x92, 0x44, 0x58, 0xd0, 0xd4, 0x04, 0xc9, 0x1a, 0xa3, + 0x40, 0x4d, 0x58, 0x76, 0x21, 0x42, 0xac, 0xaa, 0x61, 0xaa, 0xee, 0x76, 0x16, 0xcf, 0x71, 0x18, + 0x77, 0xae, 0x20, 0xff, 0xba, 0x89, 0x25, 0x11, 0x6a, 0x40, 0x96, 0x12, 0x87, 0x1e, 0xab, 0x3d, + 0xbe, 0x87, 0xc5, 0x02, 0xdf, 0xec, 0xf2, 0x30, 0xa3, 0x63, 0xa4, 0x72, 0xb7, 0x33, 0xd4, 0x7f, + 0x40, 0x5b, 0xcc, 0x1c, 0x7c, 0x18, 0x55, 0xac, 0xaa, 0x5c, 0xca, 0x79, 0x8e, 0x39, 0x5f, 0x11, + 0x3e, 0xbc, 0xe2, 0xfa, 0xf0, 0x4a, 0xcd, 0x3c, 0x66, 0x46, 0xe2, 0xa1, 0xf0, 0x85, 0x94, 0x8b, + 0xd4, 0x80, 0xec, 0x01, 0xd1, 0xdb, 0xc4, 0x95, 0x6b, 0x6e, 0xa4, 0x5c, 0x4d, 0x46, 0xea, 0xca, + 0x75, 0xe0, 0x3f, 0xa0, 0x4f, 0xe1, 0x0a, 0xdb, 0x5a, 0x77, 0x9d, 0xf7, 0xfa, 0xfb, 0xfb, 0x84, + 0x0a, 0x07, 0xa3, 0xee, 0x1d, 0x33, 0xa7, 0x8a, 0x38, 0xf0, 0xa5, 0x13, 0xc2, 0x3d, 0x5f, 0x37, + 0x9d, 0xbb, 0xab, 0xdc, 0xda, 0x70, 0xa9, 0x47, 0xa8, 0xdc, 0x86, 0x3a, 0x47, 0xe0, 0xde, 0xa6, + 0xce, 0xf8, 0x4b, 0x3d, 0xb8, 0x31, 0xb1, 0x66, 0xa2, 0x02, 0x24, 0x3e, 0x23, 0xc7, 0xe2, 0x54, + 0xc0, 0xec, 0x27, 0x7a, 0x1b, 0xa6, 0x0e, 0xd9, 0x1c, 0xc5, 0x38, 0x97, 0x63, 0xf1, 0x84, 0x1c, + 0x3b, 0xfc, 0x18, 0xc4, 0x82, 0xaa, 0x1a, 0x7f, 0xa8, 0x94, 0x7e, 0x1d, 0x2e, 0x0c, 0x55, 0xb9, + 0x88, 0x19, 0x6e, 0x86, 0x67, 0x88, 0xde, 0x06, 0x1f, 0xbe, 0x5c, 0x05, 0x74, 0xf2, 0x0c, 0x40, + 0x29, 0x48, 0x6e, 0x6e, 0x6d, 0x36, 0x0a, 0x31, 0x34, 0x07, 0xb9, 0xc6, 0x0f, 0x77, 0x1b, 0x78, + 0xb3, 0xf6, 0x54, 0xdd, 0xda, 0x7c, 0xfa, 0xb2, 0xa0, 0xa0, 0x19, 0x48, 0xd4, 0x9e, 0x3e, 0x2d, + 0xc4, 0xab, 0xd7, 0xff, 0xf8, 0xef, 0x7f, 0xf7, 0xca, 0x12, 0x5c, 0x11, 0xbb, 0xa4, 0xf5, 0x8c, + 0xca, 0xe1, 0xaa, 0xdc, 0xa5, 0x80, 0xc5, 0x6c, 0x24, 0x53, 0xe9, 0x02, 0x94, 0x75, 0xc8, 0x0a, + 0xf9, 0x6b, 0x2d, 0xe6, 0xcd, 0xd0, 0x2d, 0x98, 0xd6, 0xf8, 0x2f, 0x2e, 0xfd, 0x30, 0x49, 0x25, + 0x4d, 0xf5, 0x7b, 0x6c, 0xaa, 0x65, 0xb8, 0x1a, 0x31, 0x55, 0x10, 0xb5, 0xfc, 0xdb, 0x59, 0x98, + 0xe2, 0x47, 0x23, 0x42, 0xf2, 0x4c, 0xce, 0xf3, 0xb5, 0x11, 0x47, 0x71, 0x0d, 0xa6, 0x78, 0xac, + 0x24, 0xa7, 0x5c, 0x1e, 0x75, 0xb6, 0x3e, 0x63, 0x84, 0xfc, 0x30, 0xfc, 0x31, 0x3f, 0x0c, 0x05, + 0x27, 0xaa, 0xc2, 0x14, 0xa7, 0x93, 0xeb, 0x5b, 0x1e, 0x05, 0x21, 0x64, 0x6a, 0xc6, 0xb0, 0x60, + 0x41, 0x6b, 0x90, 0xa2, 0x44, 0x37, 0x28, 0x69, 0x39, 0xc5, 0x04, 0x67, 0xbf, 0x3e, 0xd4, 0xf2, + 0x04, 0x99, 0x87, 0xe0, 0x31, 0xa2, 0x17, 0x30, 0x2b, 0x7e, 0xf9, 0xa6, 0x3f, 0xc3, 0xb1, 0xde, + 0x1a, 0x82, 0xf5, 0x88, 0x53, 0xbb, 0x2e, 0xc0, 0x43, 0xcc, 0xeb, 0xa1, 0x71, 0xb4, 0x01, 0x39, + 0xe9, 0x12, 0xe5, 0xb6, 0x08, 0x1b, 0xbc, 0x36, 0x04, 0x35, 0xb8, 0xea, 0xcd, 0x18, 0xce, 0xee, + 0x07, 0xf7, 0xb6, 0x0a, 0xa9, 0x2e, 0x71, 0x34, 0x5d, 0x73, 0x34, 0x1e, 0x8b, 0x64, 0x56, 0xaf, + 0x44, 0x1f, 0x72, 0xcf, 0x24, 0x15, 0xf6, 0xe8, 0xd1, 0x07, 0x90, 0xd6, 0x49, 0xcb, 0xa2, 0x9a, + 0x63, 0xd1, 0xe2, 0x14, 0x67, 0x1e, 0x16, 0x14, 0x3c, 0x72, 0xe9, 0xb0, 0xcf, 0x82, 0xfe, 0xfc, + 0x54, 0x07, 0x52, 0x8a, 0xfb, 0xfd, 0xc7, 0xa3, 0x76, 0xf1, 0x5b, 0x39, 0x8a, 0xba, 0xc3, 0x8f, + 0xa2, 0x1c, 0x17, 0xe9, 0xc1, 0x48, 0x91, 0x4e, 0x7b, 0x08, 0x0d, 0x0f, 0x94, 0xd2, 0xdf, 0x61, + 0xa0, 0x94, 0xfd, 0xa5, 0x08, 0x94, 0x1e, 0xc2, 0x8c, 0x4c, 0xa6, 0x8a, 0xb3, 0x51, 0xba, 0xed, + 0x6d, 0xd5, 0xae, 0xa0, 0xc2, 0x2e, 0xf9, 0x04, 0xc7, 0x53, 0xe1, 0xff, 0x8f, 0xa7, 0xd0, 0xf1, + 0x54, 0xbd, 0xca, 0xfc, 0x7e, 0x09, 0x8a, 0x11, 0x7e, 0x9f, 0x5b, 0x42, 0x3d, 0xe7, 0x1e, 0x23, + 0x28, 0xf1, 0xdf, 0x75, 0x65, 0x23, 0x99, 0x9a, 0x2e, 0xcc, 0x94, 0xff, 0x15, 0x60, 0xf6, 0x63, + 0x62, 0xb4, 0x0f, 0x1c, 0xa2, 0xcb, 0x7c, 0x03, 0xfd, 0x08, 0x52, 0x5e, 0xe2, 0xa2, 0x70, 0x7d, + 0xba, 0x37, 0x64, 0xdf, 0x06, 0x38, 0x2b, 0xf2, 0x5f, 0x31, 0xcc, 0x4f, 0x84, 0x2f, 0x95, 0x78, + 0x4a, 0xc1, 0x1e, 0x1e, 0x6a, 0x42, 0xd6, 0xb1, 0x1c, 0xad, 0xa3, 0xbe, 0xe2, 0x34, 0xd2, 0xb9, + 0x8f, 0xdc, 0x46, 0x9e, 0x25, 0xde, 0x8c, 0xaf, 0x28, 0x38, 0xc3, 0x59, 0x05, 0x3a, 0xba, 0x05, + 0x88, 0xf6, 0x4d, 0xc7, 0xe8, 0x12, 0xf5, 0x33, 0x72, 0xac, 0xf6, 0x28, 0xd9, 0x37, 0x8e, 0xf8, + 0x62, 0xa5, 0x71, 0x41, 0xbe, 0x79, 0x42, 0x8e, 0xb7, 0xf9, 0x78, 0xe9, 0x1f, 0x53, 0x90, 0x0b, + 0x49, 0x37, 0x3a, 0x13, 0xbd, 0x07, 0xd3, 0x52, 0xc0, 0xf8, 0x04, 0x7a, 0x26, 0x69, 0x51, 0x03, + 0xf2, 0xae, 0x73, 0x56, 0xc5, 0xe9, 0x99, 0x98, 0xc8, 0xa5, 0xe7, 0x5c, 0x2e, 0x7e, 0x92, 0x8e, + 0x70, 0x41, 0xc9, 0xef, 0xd0, 0x05, 0xa5, 0xcf, 0xea, 0x82, 0xa6, 0xbe, 0x53, 0x17, 0x34, 0x3d, + 0xda, 0x05, 0xfd, 0xec, 0x0c, 0x67, 0xdc, 0x27, 0x67, 0xd1, 0xf6, 0x6f, 0xe5, 0xec, 0xfb, 0x1d, + 0x65, 0xf8, 0xe1, 0x27, 0x3c, 0xfd, 0xe6, 0x99, 0x64, 0x3d, 0xe5, 0xa1, 0xf8, 0xcb, 0xe7, 0x2c, + 0xbf, 0xcf, 0x9c, 0xe5, 0x2a, 0xdc, 0x89, 0x70, 0x96, 0x23, 0x57, 0x6e, 0x23, 0x99, 0x9a, 0x29, + 0xa4, 0xaa, 0x37, 0x18, 0xfb, 0x1b, 0x50, 0x1e, 0xcf, 0x5e, 0xfe, 0x69, 0x0a, 0xc0, 0x8f, 0x92, + 0x51, 0x11, 0xa6, 0xa5, 0xa7, 0xe2, 0xd2, 0x37, 0x63, 0x58, 0x3e, 0xa3, 0x79, 0x48, 0xf6, 0x34, + 0xe7, 0x40, 0x78, 0xb0, 0x66, 0x0c, 0xf3, 0x27, 0xf4, 0x1c, 0x2e, 0x0f, 0x53, 0x5f, 0x5e, 0xe3, + 0xe4, 0x1e, 0x26, 0x5d, 0x2f, 0xbc, 0xae, 0x4f, 0xd1, 0xc4, 0xca, 0x17, 0xa9, 0xbf, 0xfe, 0xcf, + 0xff, 0xfa, 0xf9, 0x94, 0x52, 0x54, 0x9a, 0x31, 0x5c, 0x8a, 0x54, 0x31, 0xcc, 0xb8, 0xd0, 0x26, + 0x80, 0xad, 0xed, 0x13, 0x89, 0x01, 0xa1, 0xf8, 0x95, 0x69, 0x40, 0x45, 0x16, 0x4a, 0x45, 0x84, + 0xdd, 0x26, 0x47, 0xcf, 0xc4, 0xb3, 0x1f, 0xe5, 0x37, 0x63, 0x38, 0xcd, 0x20, 0x04, 0x5e, 0x0d, + 0xf2, 0x2d, 0xcd, 0x26, 0xaa, 0x4d, 0x4c, 0xdb, 0x70, 0x8c, 0x43, 0x22, 0x83, 0xd9, 0xd2, 0x89, + 0x8d, 0xa8, 0x5b, 0x56, 0x47, 0x78, 0xcd, 0x1c, 0xe3, 0xd8, 0x71, 0x19, 0xd0, 0x4b, 0x70, 0xbd, + 0xb6, 0xba, 0x4f, 0x65, 0x60, 0x9d, 0xe6, 0x20, 0x95, 0x68, 0x57, 0x82, 0x05, 0xf5, 0x63, 0x49, + 0xac, 0x75, 0xb6, 0x45, 0x35, 0x16, 0xcf, 0xd2, 0xf0, 0x1b, 0xf4, 0x01, 0xcc, 0x48, 0xc7, 0x21, + 0x6b, 0x67, 0x6f, 0x0c, 0x4d, 0x97, 0x19, 0x95, 0xfc, 0x56, 0xec, 0x32, 0xa1, 0x8f, 0xa1, 0xf0, + 0x79, 0x9f, 0xb0, 0x24, 0x5e, 0xa3, 0x5a, 0x97, 0xf0, 0x83, 0x51, 0x94, 0xcd, 0x6e, 0x0d, 0x01, + 0xfa, 0x01, 0x23, 0xdf, 0x76, 0xa9, 0x5d, 0xc0, 0xd9, 0xcf, 0x43, 0xc3, 0x36, 0x7a, 0x02, 0xc9, + 0x36, 0xed, 0xb5, 0x64, 0x25, 0xe9, 0xfb, 0x63, 0x93, 0xac, 0xca, 0x47, 0xb4, 0xd7, 0xf2, 0x1f, + 0x85, 0x07, 0xb5, 0x31, 0x07, 0x41, 0x2f, 0x21, 0xe3, 0x74, 0x6c, 0xe6, 0x1e, 0x1c, 0x72, 0xe4, + 0x14, 0x33, 0x1c, 0xf3, 0xe1, 0x78, 0xcc, 0xdd, 0x8e, 0xbd, 0x26, 0x78, 0x42, 0xa0, 0xe0, 0x78, + 0xe3, 0xa5, 0x1d, 0x38, 0x1f, 0x39, 0x73, 0xb5, 0xca, 0x0c, 0xe1, 0x3e, 0xdc, 0x1d, 0x16, 0x74, + 0x8c, 0x90, 0xba, 0xf4, 0x0f, 0x0a, 0x2c, 0x44, 0xcf, 0x8d, 0x1e, 0x42, 0xba, 0x47, 0x89, 0x4d, + 0x4c, 0x87, 0xe8, 0x32, 0x03, 0x1d, 0xa5, 0x49, 0x3e, 0x31, 0xe3, 0x74, 0x2b, 0xd0, 0xba, 0x74, + 0x06, 0x23, 0x39, 0x3d, 0xe2, 0xea, 0xbb, 0xec, 0x53, 0x1e, 0xc0, 0xbd, 0xd1, 0x9f, 0x12, 0x2d, + 0x70, 0xf5, 0x0d, 0xc6, 0x7c, 0x15, 0x2e, 0x8f, 0x64, 0xae, 0x9f, 0x87, 0x3c, 0x33, 0x6a, 0xd5, + 0xee, 0x91, 0x96, 0xb1, 0x6f, 0x10, 0xea, 0x46, 0x62, 0x53, 0x85, 0xe9, 0xf2, 0xbf, 0x4d, 0x03, + 0xf8, 0x35, 0x43, 0xf4, 0x43, 0x78, 0x63, 0x98, 0xe1, 0x6b, 0x9d, 0x8e, 0xf5, 0x4a, 0xb5, 0xa8, + 0xd1, 0x36, 0x4c, 0x1e, 0xa0, 0xa5, 0xeb, 0x9e, 0xdd, 0xe3, 0xa5, 0x48, 0xab, 0xaf, 0x31, 0x96, + 0x2d, 0xce, 0x81, 0x7e, 0x03, 0x6e, 0x4e, 0x82, 0x2c, 0x7d, 0x43, 0x8a, 0xe3, 0xcf, 0xbe, 0xae, + 0xc3, 0x97, 0xca, 0x4c, 0x59, 0x38, 0x99, 0xa2, 0x82, 0xaf, 0x8f, 0x9b, 0x46, 0xf8, 0x05, 0x15, + 0x2e, 0x84, 0x30, 0x45, 0xd3, 0x45, 0x06, 0x47, 0x99, 0x90, 0x2d, 0x0e, 0xba, 0x9d, 0x1d, 0x4e, + 0xea, 0x9a, 0xce, 0x82, 0xe6, 0x43, 0x07, 0xde, 0xa0, 0x6b, 0x90, 0x13, 0x13, 0x74, 0x89, 0x73, + 0x60, 0xe9, 0xb6, 0x0c, 0x00, 0xb3, 0x7c, 0xf0, 0x99, 0x18, 0xf3, 0x89, 0x5c, 0x2f, 0x90, 0x08, + 0x10, 0xc9, 0x88, 0x01, 0x5d, 0x87, 0x3c, 0x39, 0xea, 0x59, 0x7e, 0x90, 0xc1, 0x5d, 0x58, 0x1a, + 0xe7, 0xc4, 0xa8, 0x4b, 0xb6, 0x08, 0x33, 0x5d, 0xed, 0x48, 0xd5, 0xda, 0x84, 0xa7, 0xdc, 0x69, + 0x3c, 0xdd, 0xd5, 0x8e, 0x6a, 0x6d, 0x82, 0x3e, 0x82, 0x39, 0x31, 0x49, 0x8b, 0x12, 0x9d, 0x98, + 0x8e, 0xa1, 0x75, 0x98, 0xbb, 0x19, 0xa7, 0x81, 0x05, 0xce, 0xb4, 0xe6, 0xf3, 0xa0, 0x2e, 0x5c, + 0x1d, 0xb6, 0x3f, 0xc4, 0xd4, 0xf6, 0x3a, 0x44, 0x97, 0x65, 0x8c, 0x11, 0xb0, 0xf5, 0xe0, 0x41, + 0x70, 0x29, 0x72, 0xaf, 0x1a, 0x02, 0x0b, 0x7d, 0x0c, 0x79, 0x19, 0x58, 0xb8, 0xe8, 0x67, 0xf2, + 0xba, 0xcd, 0x18, 0x96, 0x55, 0x11, 0x17, 0xf8, 0x39, 0xe4, 0xed, 0x03, 0x4d, 0xb7, 0x5e, 0x79, + 0xc0, 0x70, 0x26, 0x77, 0x9e, 0x13, 0x28, 0x12, 0x76, 0x94, 0xa9, 0xf9, 0xe6, 0x53, 0x3f, 0x07, + 0x73, 0x72, 0x56, 0xdf, 0xda, 0xca, 0xbf, 0x58, 0x82, 0x4c, 0xa0, 0xdc, 0x84, 0xae, 0xc1, 0x8c, + 0x4c, 0x4c, 0x06, 0xb2, 0x80, 0x66, 0x0c, 0xbb, 0x6f, 0xd0, 0x03, 0xc8, 0xcb, 0x9f, 0x52, 0x31, + 0x84, 0x8a, 0xd5, 0x73, 0xaf, 0xeb, 0x40, 0x53, 0x4b, 0xca, 0xd7, 0x8a, 0xf2, 0x8d, 0x12, 0x63, + 0x9f, 0x2f, 0xc9, 0x84, 0xa6, 0xa0, 0xe7, 0x30, 0xf7, 0x4a, 0xc6, 0x02, 0x7e, 0x1f, 0x48, 0xe4, + 0x03, 0xdf, 0x9b, 0x2c, 0x68, 0x6b, 0xc6, 0x70, 0xe1, 0x55, 0x78, 0xc8, 0x46, 0xbf, 0xaf, 0xc0, + 0x55, 0x57, 0x1e, 0xd3, 0x72, 0xd4, 0x7d, 0xab, 0x6f, 0xea, 0x5e, 0x81, 0x4b, 0x6d, 0x59, 0x3a, + 0xe1, 0x75, 0xe5, 0xfc, 0xea, 0x07, 0xe3, 0x0b, 0x6e, 0x6e, 0x70, 0xb3, 0x69, 0x39, 0x8f, 0x19, + 0x8e, 0x5b, 0xe2, 0x5a, 0xb3, 0xf4, 0x60, 0x77, 0xeb, 0x62, 0x6b, 0x38, 0x59, 0x44, 0xd2, 0x93, + 0x3c, 0x4b, 0xd2, 0xb3, 0x0a, 0x79, 0x11, 0x08, 0xa9, 0x94, 0xbc, 0xa2, 0x86, 0x23, 0xcd, 0xab, + 0x9e, 0x79, 0x5d, 0xf7, 0x7b, 0x7f, 0x39, 0x41, 0x82, 0x05, 0x05, 0xda, 0x81, 0x1c, 0x77, 0x52, + 0x1e, 0xcb, 0x52, 0x48, 0xc1, 0x86, 0x07, 0x32, 0x35, 0x53, 0xdf, 0xe9, 0xef, 0xd9, 0x8e, 0xe1, + 0xf4, 0x1d, 0x82, 0xb3, 0x1c, 0xc4, 0x05, 0xfd, 0x10, 0xe6, 0x0f, 0x2c, 0xdb, 0x71, 0x31, 0xd5, + 0x8e, 0xe1, 0x10, 0xaa, 0x75, 0xb8, 0x29, 0x87, 0xc5, 0x69, 0x2a, 0x18, 0x31, 0x52, 0xc9, 0xf9, + 0x54, 0x10, 0xa2, 0x26, 0xcc, 0x69, 0x7d, 0xc7, 0x52, 0x83, 0x28, 0xe3, 0x2d, 0xb6, 0xa9, 0xe0, + 0x59, 0xc6, 0xd6, 0xf4, 0x01, 0xd1, 0xfb, 0x70, 0x2e, 0x24, 0x8a, 0xd4, 0xbf, 0xcb, 0x21, 0x49, + 0x14, 0x21, 0xc9, 0x5c, 0x40, 0x12, 0xa9, 0x81, 0x77, 0x61, 0x86, 0x59, 0x94, 0xd5, 0x77, 0x64, + 0x80, 0x71, 0xe1, 0xc4, 0xf4, 0x8f, 0x64, 0xaf, 0x19, 0xbb, 0x94, 0xe8, 0x3d, 0xc8, 0x1a, 0x7a, + 0x87, 0xa8, 0x2e, 0x67, 0x71, 0x1c, 0x67, 0x86, 0x91, 0xef, 0x4a, 0xee, 0xc1, 0xae, 0x49, 0xfa, + 0x5b, 0xe8, 0x9a, 0x2c, 0x9f, 0xa1, 0x6b, 0xf2, 0x27, 0x0a, 0xbc, 0x3d, 0x3c, 0x8e, 0x16, 0x29, + 0x70, 0xd7, 0xa0, 0xd4, 0xa2, 0xae, 0xe4, 0xc2, 0x57, 0x3d, 0x98, 0xc0, 0x86, 0x64, 0x85, 0xe9, + 0x19, 0x67, 0x97, 0xee, 0x87, 0xa5, 0x78, 0x2b, 0x43, 0xe2, 0xef, 0x13, 0xd4, 0xc8, 0x64, 0xc9, + 0xf4, 0x49, 0x21, 0x0c, 0x62, 0x17, 0xaf, 0x8c, 0x2f, 0x71, 0x0e, 0x17, 0x03, 0x9f, 0xa7, 0x27, + 0x06, 0x0d, 0xc2, 0xc2, 0xce, 0x54, 0x8f, 0x1a, 0x16, 0x35, 0x9c, 0x63, 0x1e, 0x26, 0xe6, 0x07, + 0xab, 0xeb, 0x9e, 0x4f, 0xb6, 0xfa, 0x8e, 0x61, 0xb6, 0xb7, 0x25, 0x71, 0xc0, 0x25, 0x78, 0x00, + 0x83, 0xcd, 0xe9, 0xdc, 0x19, 0x9a, 0xd3, 0x5b, 0xb0, 0xe0, 0x76, 0xed, 0x0e, 0x0f, 0xd4, 0x20, + 0x5a, 0x7e, 0xec, 0xf9, 0x79, 0x4e, 0x72, 0xbe, 0x38, 0xc0, 0x3e, 0xe0, 0x26, 0x64, 0x0e, 0x34, + 0xfb, 0xc0, 0xdd, 0x4b, 0xd1, 0xb2, 0x7c, 0x7b, 0x82, 0x45, 0x6c, 0x6a, 0xf6, 0x81, 0x5c, 0x3b, + 0x38, 0xf0, 0x7e, 0x7b, 0x1d, 0xdf, 0xb9, 0xd3, 0x75, 0x7c, 0xd7, 0xa0, 0xc0, 0x62, 0x05, 0x16, + 0x9d, 0x7b, 0xf6, 0xb4, 0x38, 0xce, 0x9e, 0xf2, 0x5d, 0xed, 0x88, 0x05, 0xcc, 0xae, 0x49, 0xad, + 0xc3, 0xb9, 0x20, 0x80, 0x6a, 0xed, 0xef, 0xdb, 0xc4, 0x29, 0x5e, 0x1a, 0x87, 0x33, 0xd7, 0xf6, + 0x41, 0xb6, 0x38, 0x0f, 0x7a, 0x09, 0xb3, 0xfd, 0x5e, 0x9b, 0x6a, 0x3a, 0x91, 0xb6, 0x64, 0x17, + 0x2f, 0xf0, 0xa5, 0xb9, 0x33, 0xc1, 0xd2, 0x3c, 0x17, 0x9c, 0xc2, 0xa0, 0x70, 0xbe, 0x1f, 0x7c, + 0xb4, 0x91, 0x0d, 0x45, 0xc3, 0x74, 0x08, 0x35, 0xb5, 0x8e, 0xea, 0x36, 0x60, 0xdc, 0xf6, 0x48, + 0x89, 0xab, 0xd8, 0x3b, 0x13, 0xcc, 0xb1, 0x2e, 0x21, 0xc2, 0x4d, 0x1d, 0xbc, 0x60, 0x44, 0x8e, + 0x23, 0x0c, 0x0b, 0x6c, 0x7d, 0x4f, 0x4c, 0x6c, 0x17, 0xaf, 0x4e, 0x50, 0xb5, 0x9b, 0xef, 0x6a, + 0x47, 0x83, 0x13, 0xda, 0x27, 0xfa, 0xab, 0x17, 0xcf, 0xd4, 0x5f, 0x2d, 0xfd, 0x7b, 0x1c, 0xce, + 0x45, 0x99, 0xfa, 0xf2, 0xb0, 0x90, 0xc3, 0x0f, 0x38, 0x5e, 0xc0, 0xb5, 0xa1, 0xae, 0xca, 0x2f, + 0x78, 0xca, 0x28, 0xc4, 0x0f, 0xfc, 0xaf, 0x46, 0xbb, 0x1b, 0xaf, 0x10, 0x1a, 0x99, 0x60, 0x27, + 0xfe, 0x77, 0x12, 0xec, 0x0f, 0x21, 0xe7, 0x50, 0xad, 0x45, 0x54, 0x5b, 0xeb, 0xf6, 0x58, 0xa4, + 0x37, 0x3e, 0xfb, 0xcf, 0x72, 0x86, 0x1d, 0x41, 0x5f, 0x7d, 0x87, 0x05, 0x75, 0xf7, 0x60, 0x75, + 0x58, 0xfe, 0x34, 0xdc, 0xc7, 0x95, 0xbe, 0x4e, 0x03, 0xf8, 0x66, 0x8b, 0x36, 0x61, 0x5a, 0x1e, + 0x93, 0x22, 0x6f, 0xbc, 0x77, 0x2a, 0xab, 0x97, 0x15, 0x80, 0x66, 0x0c, 0x4b, 0x14, 0x86, 0xd7, + 0xb2, 0xac, 0xcf, 0x0c, 0xb7, 0xb4, 0x74, 0x4a, 0xbc, 0x35, 0xce, 0xcb, 0xf0, 0x04, 0x0a, 0x3a, + 0x86, 0xf3, 0x2d, 0xcb, 0x34, 0x09, 0xa7, 0x54, 0x7b, 0xd4, 0xea, 0x11, 0xea, 0x18, 0xc4, 0x0d, + 0x0d, 0xeb, 0xa7, 0x85, 0x77, 0xa1, 0xb6, 0x3d, 0xa4, 0x66, 0x0c, 0xcf, 0xb7, 0x22, 0xc6, 0x51, + 0x1b, 0x66, 0x07, 0xca, 0x18, 0xb2, 0x6b, 0xf8, 0xde, 0xe9, 0x26, 0x0d, 0x17, 0x37, 0x9a, 0x31, + 0x9c, 0x0f, 0xd7, 0x35, 0xd0, 0x27, 0x20, 0x9b, 0x9c, 0xaa, 0xed, 0x68, 0x0e, 0x91, 0x59, 0xd0, + 0x3b, 0xa7, 0x9b, 0x45, 0x94, 0xfd, 0x76, 0x18, 0x40, 0x33, 0x86, 0x33, 0xfb, 0xfe, 0x23, 0x2a, + 0x41, 0xca, 0x21, 0xb4, 0x6b, 0x98, 0x5a, 0x87, 0x6b, 0x5a, 0x0a, 0x7b, 0xcf, 0xa5, 0xcf, 0x61, + 0x5a, 0x86, 0x3f, 0x15, 0xc8, 0x88, 0x3d, 0x54, 0x03, 0x75, 0xfe, 0x70, 0xd4, 0x8e, 0x41, 0x50, + 0x6c, 0x6a, 0x5d, 0x32, 0xaa, 0x26, 0x38, 0x52, 0x59, 0x4a, 0x3f, 0x51, 0x60, 0x5a, 0xec, 0xf3, + 0xe8, 0xa6, 0xc2, 0x5b, 0x90, 0x70, 0x9c, 0x8e, 0xd4, 0xa3, 0x11, 0x9e, 0x9b, 0x51, 0x21, 0x24, + 0xcb, 0x81, 0x22, 0x55, 0xe5, 0xbf, 0xcf, 0x20, 0xa1, 0x10, 0xab, 0xf4, 0x9b, 0x30, 0x1f, 0xa5, + 0x29, 0xe8, 0x22, 0xa4, 0x6d, 0xab, 0x4f, 0x5b, 0x44, 0x35, 0x7a, 0x5c, 0xe6, 0x14, 0x4e, 0x89, + 0x81, 0xf5, 0x5e, 0xb5, 0xc1, 0x66, 0xfb, 0x55, 0xf8, 0xe0, 0x34, 0xb3, 0x9d, 0x9c, 0xa3, 0x64, + 0x42, 0x3e, 0xac, 0x30, 0x23, 0x17, 0xa9, 0xfa, 0x21, 0x9b, 0xb5, 0x0a, 0x0f, 0x27, 0x9f, 0x35, + 0x8c, 0x5e, 0xda, 0x87, 0x4c, 0x40, 0x75, 0xd0, 0x85, 0x40, 0xad, 0xd8, 0x9f, 0x8b, 0x8d, 0x55, + 0xdf, 0x63, 0x53, 0x7d, 0x1f, 0xee, 0x4f, 0x3e, 0x55, 0x00, 0xb8, 0x7a, 0x87, 0x71, 0xbf, 0x05, + 0x37, 0x26, 0xe6, 0xae, 0x2f, 0x42, 0x41, 0xc6, 0xb3, 0xe1, 0x02, 0x50, 0xe9, 0x2b, 0x05, 0x72, + 0xa1, 0xe3, 0x15, 0x55, 0x20, 0xeb, 0x9e, 0xd4, 0x2c, 0xf6, 0x95, 0xe2, 0x87, 0x72, 0xa1, 0x8c, + 0x24, 0xe0, 0xb7, 0x50, 0xee, 0xc1, 0x8c, 0x9b, 0x64, 0x8f, 0x2f, 0x7a, 0xb9, 0xa4, 0xd5, 0xbb, + 0xec, 0x13, 0x2a, 0xf2, 0xa6, 0xee, 0xf0, 0x4f, 0x08, 0x89, 0x56, 0x6e, 0xc0, 0xc5, 0x11, 0x59, + 0x23, 0x5a, 0x84, 0x73, 0x3b, 0x0d, 0xfc, 0x62, 0x7d, 0xad, 0xa1, 0x3e, 0xdf, 0xac, 0xbd, 0xa8, + 0xad, 0x3f, 0xad, 0xd5, 0x9f, 0x36, 0x0a, 0x31, 0x94, 0x83, 0xf4, 0xe6, 0xd6, 0xae, 0xfa, 0x78, + 0xeb, 0xf9, 0xe6, 0xa3, 0x82, 0x52, 0xfe, 0x11, 0x2c, 0x44, 0x9f, 0xf6, 0xa8, 0x0c, 0x57, 0xb6, + 0x6b, 0x3b, 0x3b, 0xea, 0x6e, 0x13, 0x6f, 0x3d, 0xff, 0xa8, 0xa9, 0xae, 0x6f, 0xca, 0x4b, 0x35, + 0xb8, 0xf1, 0x68, 0x1d, 0x37, 0xd6, 0x76, 0x0b, 0x31, 0x74, 0x09, 0x8a, 0xcd, 0xda, 0xe6, 0xa3, + 0xa7, 0x8d, 0x88, 0xb7, 0xca, 0xa8, 0xdb, 0x36, 0x81, 0xef, 0xaa, 0x17, 0x61, 0xce, 0xcd, 0xa4, + 0xc3, 0x1b, 0x52, 0x2f, 0xc2, 0x42, 0x28, 0xf1, 0xf2, 0x5e, 0x6f, 0x24, 0x53, 0xd9, 0x42, 0x6e, + 0x23, 0x99, 0x42, 0x85, 0x73, 0x1b, 0xc9, 0xd4, 0xb9, 0xc2, 0xfc, 0x46, 0x32, 0x55, 0x28, 0xcc, + 0x6d, 0x24, 0x53, 0x0b, 0x85, 0xc5, 0x8d, 0x64, 0xea, 0x7c, 0x61, 0xa1, 0xfc, 0xd3, 0x2c, 0x64, + 0x02, 0xa9, 0x0d, 0xba, 0x00, 0x29, 0x91, 0xcd, 0xc8, 0x1b, 0x3c, 0x69, 0x3c, 0xc3, 0x9f, 0xb7, + 0x4c, 0xf4, 0x3e, 0x64, 0xcc, 0x7e, 0x57, 0x65, 0x8f, 0xec, 0x0c, 0x98, 0xa4, 0xd9, 0x08, 0x66, + 0xbf, 0x8b, 0x05, 0x3d, 0xaa, 0xc1, 0x6c, 0x8f, 0x50, 0x95, 0x61, 0xbb, 0xf1, 0x65, 0x62, 0x9c, + 0x77, 0xc9, 0xf5, 0x08, 0xdd, 0xa5, 0xc7, 0x6e, 0x78, 0xf9, 0x31, 0xe4, 0x65, 0xaa, 0xe5, 0x66, + 0x04, 0xe2, 0xec, 0xbe, 0x33, 0x3e, 0x67, 0x93, 0xbf, 0x25, 0x1f, 0xce, 0xd1, 0xe0, 0x23, 0x6a, + 0xc3, 0xbc, 0x00, 0xe6, 0x2b, 0xd9, 0x63, 0xb1, 0x19, 0x8b, 0x48, 0x64, 0x7b, 0xf0, 0xfe, 0xa4, + 0xf0, 0x2c, 0x1f, 0xde, 0x76, 0x99, 0x31, 0xa2, 0x27, 0xc6, 0x50, 0x13, 0x96, 0xf9, 0x14, 0x36, + 0xe9, 0xc8, 0x53, 0x55, 0xcc, 0xcb, 0xcb, 0x74, 0xe2, 0x72, 0x9f, 0x28, 0xc4, 0x25, 0xf0, 0x65, + 0x46, 0xb8, 0xe3, 0xd2, 0x71, 0xfc, 0x67, 0xda, 0x91, 0xbc, 0x01, 0x68, 0xa3, 0x7b, 0xc0, 0xf3, + 0x47, 0x83, 0x59, 0x87, 0x2a, 0xae, 0x40, 0xf3, 0x82, 0x8a, 0xa8, 0xf6, 0xe7, 0xf0, 0xbc, 0xf7, + 0x76, 0x87, 0xbf, 0x64, 0x0a, 0x6f, 0xa3, 0xe7, 0xee, 0x0a, 0xee, 0x69, 0xad, 0xcf, 0x58, 0x78, + 0x2e, 0xb3, 0xed, 0xdb, 0x93, 0x7e, 0x62, 0x5d, 0x6b, 0x7d, 0xb6, 0xb5, 0xbf, 0x8f, 0x45, 0xea, + 0x2c, 0x9f, 0xd0, 0x0f, 0x60, 0xce, 0x17, 0xc6, 0x2d, 0x49, 0xa6, 0x4f, 0xd1, 0xbe, 0x28, 0x78, + 0xec, 0x6e, 0xed, 0xf2, 0x53, 0x91, 0x56, 0x0b, 0xc8, 0x81, 0xce, 0xaf, 0xec, 0x27, 0x4e, 0x06, + 0xbd, 0xe8, 0xc1, 0xe0, 0x50, 0x7b, 0xb8, 0xf4, 0x07, 0x71, 0xc8, 0x85, 0xb4, 0x62, 0xf4, 0x89, + 0xb8, 0x07, 0x57, 0x86, 0x85, 0xba, 0x32, 0xd9, 0x1f, 0xdd, 0x31, 0x64, 0x79, 0x76, 0x33, 0x86, + 0x2f, 0x46, 0x86, 0xbe, 0xd2, 0x95, 0xbe, 0x03, 0xd9, 0x50, 0xf9, 0x20, 0x31, 0xbc, 0x7c, 0xc0, + 0xe2, 0x0c, 0xc7, 0xaf, 0x1a, 0x8c, 0xf4, 0x8f, 0xc3, 0xcc, 0xa0, 0x9e, 0x83, 0x8c, 0x98, 0x89, + 0x7b, 0xee, 0xd2, 0x1f, 0xc5, 0x01, 0x9d, 0x54, 0xe4, 0xff, 0xd3, 0xcb, 0xf2, 0x90, 0x2d, 0xcb, + 0x5d, 0xf8, 0x95, 0x49, 0x96, 0x25, 0xf4, 0xd5, 0x83, 0x6b, 0xf3, 0xcf, 0x0a, 0x64, 0x83, 0x16, + 0x80, 0x36, 0x20, 0xb7, 0xa7, 0xd9, 0x44, 0x64, 0x74, 0x87, 0x5a, 0x47, 0xc6, 0xf0, 0xc3, 0xbd, + 0x59, 0x1d, 0x5e, 0xd7, 0x67, 0xbe, 0x52, 0x92, 0x29, 0xe5, 0x66, 0x0c, 0x67, 0x19, 0xef, 0xba, + 0x64, 0x45, 0x8f, 0x21, 0xeb, 0x25, 0x87, 0x0c, 0x6a, 0x5c, 0xd8, 0xc5, 0x8b, 0x1b, 0x5f, 0x29, + 0xf1, 0x9b, 0x31, 0x9c, 0x71, 0x33, 0xc3, 0x43, 0xad, 0x53, 0x5d, 0x65, 0x5f, 0xfb, 0x36, 0xbc, + 0x35, 0xc9, 0xd7, 0xca, 0xef, 0x18, 0x79, 0x00, 0xf9, 0x3c, 0xe5, 0x3f, 0x8d, 0x43, 0x26, 0x90, + 0x41, 0xa2, 0x6d, 0x28, 0x18, 0xa6, 0xe1, 0x18, 0x3c, 0x95, 0xe5, 0x76, 0x65, 0xcb, 0x15, 0x98, + 0xf0, 0x82, 0xcc, 0xac, 0x64, 0x97, 0x56, 0x69, 0xa3, 0x5f, 0x83, 0x0b, 0x9a, 0xae, 0x1b, 0x22, + 0x7d, 0xf3, 0x4c, 0xbe, 0x75, 0xa0, 0x99, 0x2d, 0x37, 0xa1, 0x59, 0x0a, 0x56, 0x4b, 0x0f, 0xef, + 0x56, 0x4e, 0xa6, 0x7b, 0x8b, 0x3e, 0x84, 0x04, 0x5e, 0xe3, 0x00, 0xe8, 0x01, 0x14, 0x45, 0xae, + 0xcc, 0x32, 0x99, 0x88, 0x73, 0x28, 0x85, 0xe7, 0xf9, 0xfb, 0x2d, 0x73, 0x3b, 0x78, 0xe6, 0x8c, + 0x5a, 0x9e, 0xc0, 0x72, 0x94, 0x7f, 0x3c, 0x05, 0xf9, 0x81, 0xd8, 0xe0, 0x4d, 0xc8, 0x1f, 0x38, + 0x4e, 0xcf, 0xf6, 0x52, 0x7d, 0x11, 0xff, 0x37, 0x63, 0x38, 0xc7, 0xc7, 0x5d, 0x72, 0x74, 0x03, + 0x66, 0xed, 0xd6, 0x01, 0xe9, 0x12, 0x9f, 0x72, 0x46, 0x36, 0xd6, 0xf3, 0xe2, 0x85, 0x47, 0x7a, + 0x07, 0x72, 0xf2, 0xb0, 0x97, 0x84, 0x11, 0xc1, 0x56, 0x56, 0x54, 0x57, 0x25, 0xc7, 0x35, 0xc8, + 0xf5, 0x2c, 0x1a, 0xe0, 0x60, 0x0e, 0x3f, 0x87, 0xb3, 0x6c, 0xd0, 0x23, 0x5a, 0x85, 0x1c, 0x6f, + 0xf6, 0x79, 0x44, 0xf1, 0xa8, 0x02, 0x72, 0x96, 0xd1, 0x78, 0x3c, 0xf7, 0x26, 0x28, 0x82, 0x37, + 0x95, 0xc1, 0x32, 0xb8, 0x01, 0xb9, 0x70, 0xfd, 0x3f, 0xc1, 0x0b, 0x2e, 0xd5, 0x89, 0x6e, 0xcc, + 0x7a, 0x8f, 0x43, 0x6a, 0xff, 0x59, 0x1a, 0x8c, 0xee, 0xae, 0x42, 0xc6, 0x76, 0xa8, 0xd1, 0x53, + 0x79, 0xc6, 0xc7, 0x4f, 0xd5, 0x14, 0x06, 0x3e, 0xc4, 0xc3, 0xf0, 0xf2, 0x2b, 0x98, 0x8f, 0x02, + 0x44, 0xe7, 0x61, 0xee, 0xd9, 0xd6, 0x8b, 0xc6, 0x23, 0x75, 0xbb, 0x81, 0x9f, 0xd5, 0x36, 0x1b, + 0x9b, 0xbb, 0x4f, 0x5f, 0x16, 0x62, 0x28, 0x0d, 0x53, 0x32, 0x20, 0x64, 0xf1, 0xe1, 0x4e, 0xa3, + 0xa1, 0x6e, 0xed, 0x36, 0x1b, 0xb8, 0x10, 0x47, 0x0b, 0x80, 0x76, 0x1b, 0xcf, 0xb6, 0xb7, 0x70, + 0x0d, 0xbf, 0xf4, 0x63, 0xbb, 0x04, 0x1b, 0xf7, 0x20, 0xfc, 0xf1, 0x64, 0x75, 0x85, 0xe9, 0xd4, + 0x35, 0x58, 0x8e, 0x34, 0xb9, 0xe0, 0x07, 0xd7, 0x4b, 0x50, 0xf4, 0x54, 0x63, 0x20, 0xbc, 0x63, + 0x81, 0x9f, 0xdc, 0xb4, 0x81, 0x37, 0xe5, 0x3f, 0x53, 0x60, 0x3e, 0xea, 0x7e, 0x30, 0x2a, 0xc3, + 0xb4, 0x08, 0x15, 0xb8, 0xde, 0xe4, 0xb8, 0x47, 0xba, 0x39, 0x55, 0xf8, 0x97, 0xe4, 0x8a, 0x8e, + 0xe5, 0x1b, 0x74, 0x0f, 0x92, 0x7b, 0x96, 0x7e, 0x3c, 0x60, 0x71, 0x03, 0xe5, 0x96, 0x47, 0x9a, + 0xa3, 0xed, 0xf0, 0xe4, 0x0b, 0x73, 0xea, 0x6a, 0x85, 0x7d, 0xd2, 0x0d, 0x78, 0x33, 0xe2, 0x93, + 0xa2, 0x24, 0x29, 0xff, 0xa1, 0x02, 0x69, 0xef, 0xa2, 0x2f, 0xba, 0x0e, 0x69, 0x96, 0x83, 0x69, + 0xde, 0xc5, 0xf1, 0xc0, 0x31, 0xe3, 0xbf, 0x11, 0xad, 0x76, 0xab, 0xa7, 0xb5, 0x35, 0xef, 0xa6, + 0xf6, 0x98, 0x56, 0xbb, 0x24, 0xae, 0x5e, 0x63, 0xe2, 0x5d, 0x81, 0x4b, 0x51, 0xe2, 0xb9, 0x52, + 0x94, 0x7f, 0x1e, 0x87, 0x19, 0x79, 0xbb, 0x13, 0xad, 0xc3, 0x6c, 0xab, 0x63, 0x10, 0xd3, 0x11, + 0x65, 0x22, 0xc3, 0x6c, 0x4b, 0xef, 0x36, 0xde, 0x05, 0xe5, 0x05, 0xe3, 0x8e, 0xe4, 0x63, 0x50, + 0x54, 0x33, 0x75, 0xab, 0xeb, 0x43, 0x4d, 0xea, 0xcd, 0xf2, 0x82, 0xd1, 0x83, 0x7a, 0x02, 0x05, + 0xeb, 0x90, 0x50, 0xad, 0xd3, 0xf1, 0xb1, 0x12, 0x13, 0x62, 0xcd, 0x4a, 0x4e, 0x0f, 0xac, 0x06, + 0x19, 0xff, 0x6f, 0x06, 0x6d, 0x79, 0x5f, 0x2f, 0x84, 0x23, 0x6f, 0xb8, 0xf2, 0x7a, 0x31, 0xa7, + 0xdc, 0xd5, 0xda, 0x18, 0x5a, 0xee, 0x4f, 0xbb, 0xba, 0xcc, 0x96, 0xf5, 0x12, 0x94, 0x22, 0x96, + 0x55, 0x2e, 0x64, 0xf9, 0x17, 0x71, 0xc8, 0x87, 0xff, 0x66, 0x0c, 0x7d, 0x3c, 0xbc, 0x69, 0xdc, + 0x63, 0x41, 0x30, 0x75, 0x75, 0xe0, 0xc4, 0x4d, 0xa1, 0x21, 0xed, 0xe1, 0x6d, 0xc1, 0x15, 0xbc, + 0x3b, 0x93, 0x3c, 0xcb, 0xdd, 0x19, 0x37, 0xd0, 0x89, 0x47, 0x05, 0x3a, 0x74, 0x78, 0xa0, 0x23, + 0xfa, 0xf9, 0xd2, 0x95, 0x5d, 0x1b, 0x52, 0xa0, 0x94, 0xe5, 0x40, 0x4e, 0x1a, 0x28, 0x85, 0x46, + 0x07, 0x3e, 0x82, 0x6c, 0x94, 0xa3, 0x08, 0xaf, 0x69, 0xf9, 0x27, 0x39, 0x48, 0x7b, 0x4d, 0x05, + 0xf4, 0x2e, 0x4c, 0xd9, 0x8e, 0xd6, 0x26, 0xa7, 0x38, 0x91, 0x8b, 0x80, 0x05, 0x0f, 0xf3, 0x9b, + 0xba, 0x61, 0xf3, 0xb8, 0xdb, 0xab, 0xdd, 0x62, 0x90, 0x43, 0x4f, 0xc8, 0x31, 0x7a, 0x02, 0x33, + 0x42, 0xb9, 0xdc, 0xbf, 0x66, 0x7c, 0x73, 0x5c, 0x07, 0xa5, 0x22, 0xdd, 0x99, 0x7f, 0xcb, 0xd6, + 0x45, 0x28, 0xfd, 0x5d, 0x06, 0xa6, 0xa5, 0x77, 0xfa, 0x04, 0xf2, 0xb2, 0xc2, 0x13, 0x2c, 0x3b, + 0x8f, 0xc8, 0xbf, 0x06, 0xe0, 0x2b, 0xc2, 0x23, 0xf9, 0x1d, 0xe9, 0x9c, 0x1d, 0x1c, 0x40, 0x5d, + 0x38, 0xa7, 0x13, 0xdb, 0x31, 0x4c, 0xee, 0x4d, 0xbc, 0x49, 0x84, 0x31, 0x56, 0x27, 0x9d, 0xe4, + 0x91, 0x0f, 0xe1, 0xcf, 0x84, 0xf4, 0x13, 0xa3, 0x48, 0x83, 0xd9, 0xc1, 0xbc, 0x25, 0x31, 0xba, + 0x51, 0x37, 0x38, 0x55, 0x38, 0x61, 0x61, 0xe1, 0x40, 0xf8, 0x86, 0x2b, 0x5b, 0x31, 0x4a, 0xba, + 0x96, 0x43, 0x54, 0x4d, 0xd7, 0x29, 0xb1, 0x6d, 0x99, 0x10, 0xdf, 0x9f, 0x7c, 0x06, 0xc6, 0x5d, + 0x13, 0xcc, 0x6c, 0xc5, 0x68, 0x70, 0x00, 0x3d, 0x87, 0x4c, 0x9b, 0x98, 0x84, 0x1a, 0x2d, 0xae, + 0x0a, 0xa2, 0x02, 0xbb, 0x3a, 0x29, 0xf8, 0x47, 0x82, 0xf5, 0x09, 0x61, 0x51, 0x39, 0xb4, 0xbd, + 0x27, 0x74, 0x00, 0x48, 0x56, 0x3b, 0xf9, 0x2d, 0x47, 0xd9, 0x8a, 0x9f, 0x1e, 0x7d, 0x09, 0x6c, + 0x10, 0x3d, 0x70, 0x3b, 0x97, 0x1b, 0x72, 0x33, 0x86, 0x0b, 0x07, 0x03, 0x63, 0xa5, 0x75, 0xc8, + 0x85, 0x94, 0x62, 0x64, 0x3e, 0x30, 0x52, 0x9d, 0x4a, 0x3b, 0x80, 0x4e, 0x6e, 0x7d, 0xf5, 0x7d, + 0x86, 0xf7, 0x10, 0x1e, 0x4c, 0x82, 0x77, 0x92, 0xbd, 0xf4, 0x97, 0x0a, 0x0b, 0x1b, 0x43, 0x7b, + 0x7a, 0xca, 0x52, 0x30, 0xaa, 0x40, 0x5e, 0x27, 0x76, 0x8b, 0x1a, 0x3d, 0xc7, 0xa2, 0x81, 0x6e, + 0x8b, 0xe7, 0xbe, 0x72, 0xfe, 0xeb, 0x27, 0xe4, 0x78, 0x64, 0xfb, 0x62, 0xb4, 0x02, 0xb2, 0xd5, + 0x0c, 0x29, 0xcc, 0xa9, 0x56, 0x33, 0xc4, 0x59, 0x7a, 0x05, 0xe0, 0xab, 0x07, 0x5a, 0x85, 0x42, + 0xe0, 0x1b, 0xc4, 0xed, 0xd8, 0x81, 0x30, 0x60, 0xd6, 0x27, 0xe0, 0xfb, 0x5b, 0xbd, 0xcf, 0xe6, + 0xbe, 0x03, 0x95, 0x49, 0xe6, 0xf6, 0xa7, 0x2a, 0xfd, 0x5e, 0x1c, 0x0a, 0x83, 0xaa, 0x73, 0x96, + 0xf9, 0xd1, 0xfb, 0x90, 0x25, 0x47, 0x3d, 0xd2, 0x72, 0xa4, 0xfa, 0x8e, 0x8f, 0x47, 0x32, 0x82, + 0x5e, 0x4c, 0xd9, 0xf4, 0xcf, 0xaa, 0xc4, 0xe4, 0x67, 0x55, 0xd0, 0x83, 0x4a, 0xf6, 0x91, 0x97, + 0x01, 0xc7, 0x19, 0x4d, 0xf5, 0x26, 0x63, 0xbe, 0x0e, 0xd7, 0x26, 0x60, 0xae, 0x2f, 0x42, 0x41, + 0x78, 0xed, 0x81, 0x12, 0xe4, 0xa8, 0xe8, 0xca, 0x03, 0x29, 0xff, 0x2c, 0x09, 0xb9, 0xd0, 0xb7, + 0xa0, 0xe5, 0x50, 0x5d, 0x61, 0x40, 0xc5, 0xc5, 0xa1, 0xbb, 0x0c, 0x19, 0x72, 0xa4, 0x79, 0x6b, + 0x9c, 0x94, 0x69, 0x11, 0xf0, 0x41, 0xb1, 0x90, 0x9f, 0x8e, 0x68, 0x41, 0xf2, 0x0b, 0x37, 0x82, + 0x75, 0x6a, 0xe8, 0xdd, 0xe3, 0xab, 0xc3, 0xef, 0x1e, 0x8b, 0x19, 0xb6, 0xa0, 0xe0, 0x5f, 0x40, + 0xf6, 0xee, 0x03, 0x4e, 0x7a, 0x0d, 0x99, 0x67, 0x71, 0xee, 0xe5, 0x63, 0x01, 0xf8, 0x1e, 0x64, + 0xf8, 0x7f, 0xb8, 0x10, 0x72, 0x7c, 0x17, 0x06, 0x22, 0xb8, 0x75, 0xd3, 0x79, 0x70, 0x0f, 0x33, + 0x32, 0xf6, 0xc1, 0x9c, 0x5e, 0x70, 0x5f, 0x87, 0x9c, 0xbc, 0x43, 0x2a, 0xf9, 0x67, 0x64, 0x5a, + 0x99, 0x95, 0xc3, 0x82, 0xec, 0x16, 0x64, 0x65, 0x7e, 0x26, 0xa8, 0xd2, 0x83, 0xb7, 0xc6, 0x32, + 0xe2, 0xb5, 0x47, 0x6d, 0xf7, 0xf7, 0x7d, 0x6a, 0x38, 0x41, 0x2d, 0x5e, 0x0b, 0xea, 0x65, 0xc8, + 0x1a, 0xe6, 0x21, 0xa1, 0xae, 0x04, 0x29, 0x9e, 0x5b, 0x65, 0xc4, 0x98, 0x50, 0xac, 0x37, 0x99, + 0x4e, 0x94, 0x61, 0x29, 0x32, 0x6f, 0x0e, 0x6a, 0x74, 0x11, 0x16, 0xa4, 0xbf, 0xe3, 0x58, 0xa1, + 0xfa, 0x75, 0xbc, 0x90, 0xd8, 0x48, 0xa6, 0x12, 0x85, 0x64, 0xf9, 0x6f, 0x13, 0x70, 0x3e, 0xf2, + 0xa2, 0x32, 0xba, 0x12, 0xd2, 0x22, 0x96, 0xd1, 0x50, 0xb6, 0xd7, 0x5f, 0xa4, 0xa4, 0x0a, 0x3d, + 0x19, 0x7e, 0x2b, 0x5d, 0x18, 0x7a, 0x62, 0xa0, 0x39, 0x1d, 0x7d, 0x17, 0x5d, 0x18, 0x7d, 0x7b, + 0xdc, 0x15, 0xf7, 0xe4, 0xe4, 0xb7, 0x1d, 0x47, 0x5e, 0x7a, 0xdf, 0x81, 0x6c, 0xe8, 0xfe, 0xa9, + 0x38, 0x7a, 0x27, 0xba, 0x7f, 0x1a, 0xba, 0xf7, 0x9e, 0xb1, 0x03, 0x17, 0x50, 0x4f, 0x68, 0xce, + 0x74, 0x94, 0xe6, 0x54, 0x6f, 0xb3, 0xad, 0xbb, 0x09, 0x2b, 0x11, 0x5b, 0x17, 0xb9, 0x05, 0xf5, + 0x65, 0xb8, 0x3a, 0xd0, 0xac, 0x1d, 0xdc, 0xcb, 0x7a, 0xe3, 0x6f, 0xbe, 0xf8, 0xe6, 0x9f, 0xa6, + 0xe3, 0x85, 0x38, 0x5c, 0x33, 0x2c, 0xf1, 0x15, 0x3d, 0x6a, 0x1d, 0x1d, 0x47, 0x3b, 0xbd, 0xfa, + 0x3c, 0xef, 0x7d, 0xac, 0x79, 0xff, 0xf3, 0xca, 0x36, 0x5b, 0xc7, 0x6d, 0x65, 0x6f, 0x9a, 0x2f, + 0xe8, 0xdd, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x60, 0xdb, 0x6e, 0xf4, 0xb1, 0x45, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/route_components.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/route_components.pb.validate.go new file mode 100644 index 000000000..d668fbeb2 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/route_components.pb.validate.go @@ -0,0 +1,4521 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/route/v3/route_components.proto + +package envoy_config_route_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" + + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} + + _ = v3.RoutingPriority(0) + + _ = v3.RequestMethod(0) +) + +// define the regex for a UUID once up-front +var _route_components_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on VirtualHost with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *VirtualHost) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return VirtualHostValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + if len(m.GetDomains()) < 1 { + return VirtualHostValidationError{ + field: "Domains", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetDomains() { + _, _ = idx, item + + if !_VirtualHost_Domains_Pattern.MatchString(item) { + return VirtualHostValidationError{ + field: fmt.Sprintf("Domains[%v]", idx), + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + } + + } + + for idx, item := range m.GetRoutes() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return VirtualHostValidationError{ + field: fmt.Sprintf("Routes[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if _, ok := VirtualHost_TlsRequirementType_name[int32(m.GetRequireTls())]; !ok { + return VirtualHostValidationError{ + field: "RequireTls", + reason: "value must be one of the defined enum values", + } + } + + for idx, item := range m.GetVirtualClusters() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return VirtualHostValidationError{ + field: fmt.Sprintf("VirtualClusters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for idx, item := range m.GetRateLimits() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return VirtualHostValidationError{ + field: fmt.Sprintf("RateLimits[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(m.GetRequestHeadersToAdd()) > 1000 { + return VirtualHostValidationError{ + field: "RequestHeadersToAdd", + reason: "value must contain no more than 1000 item(s)", + } + } + + for idx, item := range m.GetRequestHeadersToAdd() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return VirtualHostValidationError{ + field: fmt.Sprintf("RequestHeadersToAdd[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(m.GetResponseHeadersToAdd()) > 1000 { + return VirtualHostValidationError{ + field: "ResponseHeadersToAdd", + reason: "value must contain no more than 1000 item(s)", + } + } + + for idx, item := range m.GetResponseHeadersToAdd() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return VirtualHostValidationError{ + field: fmt.Sprintf("ResponseHeadersToAdd[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetCors()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return VirtualHostValidationError{ + field: "Cors", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for key, val := range m.GetHiddenEnvoyDeprecatedPerFilterConfig() { + _ = val + + // no validation rules for HiddenEnvoyDeprecatedPerFilterConfig[key] + + if v, ok := interface{}(val).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return VirtualHostValidationError{ + field: fmt.Sprintf("HiddenEnvoyDeprecatedPerFilterConfig[%v]", key), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for key, val := range m.GetTypedPerFilterConfig() { + _ = val + + // no validation rules for TypedPerFilterConfig[key] + + if v, ok := interface{}(val).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return VirtualHostValidationError{ + field: fmt.Sprintf("TypedPerFilterConfig[%v]", key), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for IncludeRequestAttemptCount + + // no validation rules for IncludeAttemptCountInResponse + + if v, ok := interface{}(m.GetRetryPolicy()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return VirtualHostValidationError{ + field: "RetryPolicy", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetRetryPolicyTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return VirtualHostValidationError{ + field: "RetryPolicyTypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetHedgePolicy()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return VirtualHostValidationError{ + field: "HedgePolicy", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetPerRequestBufferLimitBytes()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return VirtualHostValidationError{ + field: "PerRequestBufferLimitBytes", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// VirtualHostValidationError is the validation error returned by +// VirtualHost.Validate if the designated constraints aren't met. +type VirtualHostValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e VirtualHostValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e VirtualHostValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e VirtualHostValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e VirtualHostValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e VirtualHostValidationError) ErrorName() string { return "VirtualHostValidationError" } + +// Error satisfies the builtin error interface +func (e VirtualHostValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sVirtualHost.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = VirtualHostValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = VirtualHostValidationError{} + +var _VirtualHost_Domains_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +// Validate checks the field values on FilterAction with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *FilterAction) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetAction()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return FilterActionValidationError{ + field: "Action", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// FilterActionValidationError is the validation error returned by +// FilterAction.Validate if the designated constraints aren't met. +type FilterActionValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e FilterActionValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e FilterActionValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e FilterActionValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e FilterActionValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e FilterActionValidationError) ErrorName() string { return "FilterActionValidationError" } + +// Error satisfies the builtin error interface +func (e FilterActionValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sFilterAction.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = FilterActionValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = FilterActionValidationError{} + +// Validate checks the field values on Route with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Route) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Name + + if m.GetMatch() == nil { + return RouteValidationError{ + field: "Match", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: "Match", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetDecorator()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: "Decorator", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for key, val := range m.GetHiddenEnvoyDeprecatedPerFilterConfig() { + _ = val + + // no validation rules for HiddenEnvoyDeprecatedPerFilterConfig[key] + + if v, ok := interface{}(val).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: fmt.Sprintf("HiddenEnvoyDeprecatedPerFilterConfig[%v]", key), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for key, val := range m.GetTypedPerFilterConfig() { + _ = val + + // no validation rules for TypedPerFilterConfig[key] + + if v, ok := interface{}(val).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: fmt.Sprintf("TypedPerFilterConfig[%v]", key), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(m.GetRequestHeadersToAdd()) > 1000 { + return RouteValidationError{ + field: "RequestHeadersToAdd", + reason: "value must contain no more than 1000 item(s)", + } + } + + for idx, item := range m.GetRequestHeadersToAdd() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: fmt.Sprintf("RequestHeadersToAdd[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(m.GetResponseHeadersToAdd()) > 1000 { + return RouteValidationError{ + field: "ResponseHeadersToAdd", + reason: "value must contain no more than 1000 item(s)", + } + } + + for idx, item := range m.GetResponseHeadersToAdd() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: fmt.Sprintf("ResponseHeadersToAdd[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetTracing()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: "Tracing", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetPerRequestBufferLimitBytes()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: "PerRequestBufferLimitBytes", + reason: "embedded message failed validation", + cause: err, + } + } + } + + switch m.Action.(type) { + + case *Route_Route: + + if v, ok := interface{}(m.GetRoute()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: "Route", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Route_Redirect: + + if v, ok := interface{}(m.GetRedirect()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: "Redirect", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Route_DirectResponse: + + if v, ok := interface{}(m.GetDirectResponse()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: "DirectResponse", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Route_FilterAction: + + if v, ok := interface{}(m.GetFilterAction()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: "FilterAction", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return RouteValidationError{ + field: "Action", + reason: "value is required", + } + + } + + return nil +} + +// RouteValidationError is the validation error returned by Route.Validate if +// the designated constraints aren't met. +type RouteValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RouteValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RouteValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RouteValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RouteValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RouteValidationError) ErrorName() string { return "RouteValidationError" } + +// Error satisfies the builtin error interface +func (e RouteValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRoute.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RouteValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RouteValidationError{} + +// Validate checks the field values on WeightedCluster with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *WeightedCluster) Validate() error { + if m == nil { + return nil + } + + if len(m.GetClusters()) < 1 { + return WeightedClusterValidationError{ + field: "Clusters", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetClusters() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WeightedClusterValidationError{ + field: fmt.Sprintf("Clusters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if wrapper := m.GetTotalWeight(); wrapper != nil { + + if wrapper.GetValue() < 1 { + return WeightedClusterValidationError{ + field: "TotalWeight", + reason: "value must be greater than or equal to 1", + } + } + + } + + // no validation rules for RuntimeKeyPrefix + + return nil +} + +// WeightedClusterValidationError is the validation error returned by +// WeightedCluster.Validate if the designated constraints aren't met. +type WeightedClusterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WeightedClusterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WeightedClusterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WeightedClusterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WeightedClusterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WeightedClusterValidationError) ErrorName() string { return "WeightedClusterValidationError" } + +// Error satisfies the builtin error interface +func (e WeightedClusterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWeightedCluster.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WeightedClusterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WeightedClusterValidationError{} + +// Validate checks the field values on RouteMatch with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *RouteMatch) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetCaseSensitive()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteMatchValidationError{ + field: "CaseSensitive", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetRuntimeFraction()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteMatchValidationError{ + field: "RuntimeFraction", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetHeaders() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteMatchValidationError{ + field: fmt.Sprintf("Headers[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for idx, item := range m.GetQueryParameters() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteMatchValidationError{ + field: fmt.Sprintf("QueryParameters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetGrpc()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteMatchValidationError{ + field: "Grpc", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetTlsContext()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteMatchValidationError{ + field: "TlsContext", + reason: "embedded message failed validation", + cause: err, + } + } + } + + switch m.PathSpecifier.(type) { + + case *RouteMatch_Prefix: + // no validation rules for Prefix + + case *RouteMatch_Path: + // no validation rules for Path + + case *RouteMatch_HiddenEnvoyDeprecatedRegex: + + if len(m.GetHiddenEnvoyDeprecatedRegex()) > 1024 { + return RouteMatchValidationError{ + field: "HiddenEnvoyDeprecatedRegex", + reason: "value length must be at most 1024 bytes", + } + } + + case *RouteMatch_SafeRegex: + + if m.GetSafeRegex() == nil { + return RouteMatchValidationError{ + field: "SafeRegex", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetSafeRegex()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteMatchValidationError{ + field: "SafeRegex", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return RouteMatchValidationError{ + field: "PathSpecifier", + reason: "value is required", + } + + } + + return nil +} + +// RouteMatchValidationError is the validation error returned by +// RouteMatch.Validate if the designated constraints aren't met. +type RouteMatchValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RouteMatchValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RouteMatchValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RouteMatchValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RouteMatchValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RouteMatchValidationError) ErrorName() string { return "RouteMatchValidationError" } + +// Error satisfies the builtin error interface +func (e RouteMatchValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRouteMatch.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RouteMatchValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RouteMatchValidationError{} + +// Validate checks the field values on CorsPolicy with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *CorsPolicy) Validate() error { + if m == nil { + return nil + } + + for idx, item := range m.GetHiddenEnvoyDeprecatedAllowOriginRegex() { + _, _ = idx, item + + if len(item) > 1024 { + return CorsPolicyValidationError{ + field: fmt.Sprintf("HiddenEnvoyDeprecatedAllowOriginRegex[%v]", idx), + reason: "value length must be at most 1024 bytes", + } + } + + } + + for idx, item := range m.GetAllowOriginStringMatch() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CorsPolicyValidationError{ + field: fmt.Sprintf("AllowOriginStringMatch[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for AllowMethods + + // no validation rules for AllowHeaders + + // no validation rules for ExposeHeaders + + // no validation rules for MaxAge + + if v, ok := interface{}(m.GetAllowCredentials()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CorsPolicyValidationError{ + field: "AllowCredentials", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetShadowEnabled()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CorsPolicyValidationError{ + field: "ShadowEnabled", + reason: "embedded message failed validation", + cause: err, + } + } + } + + switch m.EnabledSpecifier.(type) { + + case *CorsPolicy_HiddenEnvoyDeprecatedEnabled: + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedEnabled()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CorsPolicyValidationError{ + field: "HiddenEnvoyDeprecatedEnabled", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *CorsPolicy_FilterEnabled: + + if v, ok := interface{}(m.GetFilterEnabled()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CorsPolicyValidationError{ + field: "FilterEnabled", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// CorsPolicyValidationError is the validation error returned by +// CorsPolicy.Validate if the designated constraints aren't met. +type CorsPolicyValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CorsPolicyValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CorsPolicyValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CorsPolicyValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CorsPolicyValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CorsPolicyValidationError) ErrorName() string { return "CorsPolicyValidationError" } + +// Error satisfies the builtin error interface +func (e CorsPolicyValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCorsPolicy.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CorsPolicyValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CorsPolicyValidationError{} + +// Validate checks the field values on RouteAction with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *RouteAction) Validate() error { + if m == nil { + return nil + } + + if _, ok := RouteAction_ClusterNotFoundResponseCode_name[int32(m.GetClusterNotFoundResponseCode())]; !ok { + return RouteActionValidationError{ + field: "ClusterNotFoundResponseCode", + reason: "value must be one of the defined enum values", + } + } + + if v, ok := interface{}(m.GetMetadataMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: "MetadataMatch", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if !_RouteAction_PrefixRewrite_Pattern.MatchString(m.GetPrefixRewrite()) { + return RouteActionValidationError{ + field: "PrefixRewrite", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + } + + if v, ok := interface{}(m.GetRegexRewrite()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: "RegexRewrite", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: "Timeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetIdleTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: "IdleTimeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetRetryPolicy()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: "RetryPolicy", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetRetryPolicyTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: "RetryPolicyTypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedRequestMirrorPolicy()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: "HiddenEnvoyDeprecatedRequestMirrorPolicy", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetRequestMirrorPolicies() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: fmt.Sprintf("RequestMirrorPolicies[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if _, ok := v3.RoutingPriority_name[int32(m.GetPriority())]; !ok { + return RouteActionValidationError{ + field: "Priority", + reason: "value must be one of the defined enum values", + } + } + + for idx, item := range m.GetRateLimits() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: fmt.Sprintf("RateLimits[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetIncludeVhRateLimits()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: "IncludeVhRateLimits", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetHashPolicy() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: fmt.Sprintf("HashPolicy[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetCors()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: "Cors", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetMaxGrpcTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: "MaxGrpcTimeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetGrpcTimeoutOffset()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: "GrpcTimeoutOffset", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetUpgradeConfigs() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: fmt.Sprintf("UpgradeConfigs[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for InternalRedirectAction + + if v, ok := interface{}(m.GetMaxInternalRedirects()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: "MaxInternalRedirects", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetHedgePolicy()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: "HedgePolicy", + reason: "embedded message failed validation", + cause: err, + } + } + } + + switch m.ClusterSpecifier.(type) { + + case *RouteAction_Cluster: + + if len(m.GetCluster()) < 1 { + return RouteActionValidationError{ + field: "Cluster", + reason: "value length must be at least 1 bytes", + } + } + + case *RouteAction_ClusterHeader: + + if len(m.GetClusterHeader()) < 1 { + return RouteActionValidationError{ + field: "ClusterHeader", + reason: "value length must be at least 1 bytes", + } + } + + if !_RouteAction_ClusterHeader_Pattern.MatchString(m.GetClusterHeader()) { + return RouteActionValidationError{ + field: "ClusterHeader", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + } + + case *RouteAction_WeightedClusters: + + if v, ok := interface{}(m.GetWeightedClusters()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: "WeightedClusters", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return RouteActionValidationError{ + field: "ClusterSpecifier", + reason: "value is required", + } + + } + + switch m.HostRewriteSpecifier.(type) { + + case *RouteAction_HostRewriteLiteral: + + if !_RouteAction_HostRewriteLiteral_Pattern.MatchString(m.GetHostRewriteLiteral()) { + return RouteActionValidationError{ + field: "HostRewriteLiteral", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + } + + case *RouteAction_AutoHostRewrite: + + if v, ok := interface{}(m.GetAutoHostRewrite()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteActionValidationError{ + field: "AutoHostRewrite", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *RouteAction_HostRewriteHeader: + + if !_RouteAction_HostRewriteHeader_Pattern.MatchString(m.GetHostRewriteHeader()) { + return RouteActionValidationError{ + field: "HostRewriteHeader", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + } + + } + + return nil +} + +// RouteActionValidationError is the validation error returned by +// RouteAction.Validate if the designated constraints aren't met. +type RouteActionValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RouteActionValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RouteActionValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RouteActionValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RouteActionValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RouteActionValidationError) ErrorName() string { return "RouteActionValidationError" } + +// Error satisfies the builtin error interface +func (e RouteActionValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRouteAction.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RouteActionValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RouteActionValidationError{} + +var _RouteAction_ClusterHeader_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +var _RouteAction_PrefixRewrite_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +var _RouteAction_HostRewriteLiteral_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +var _RouteAction_HostRewriteHeader_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +// Validate checks the field values on RetryPolicy with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *RetryPolicy) Validate() error { + if m == nil { + return nil + } + + // no validation rules for RetryOn + + if v, ok := interface{}(m.GetNumRetries()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RetryPolicyValidationError{ + field: "NumRetries", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetPerTryTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RetryPolicyValidationError{ + field: "PerTryTimeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetRetryPriority()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RetryPolicyValidationError{ + field: "RetryPriority", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetRetryHostPredicate() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RetryPolicyValidationError{ + field: fmt.Sprintf("RetryHostPredicate[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for HostSelectionRetryMaxAttempts + + if v, ok := interface{}(m.GetRetryBackOff()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RetryPolicyValidationError{ + field: "RetryBackOff", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetRetriableHeaders() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RetryPolicyValidationError{ + field: fmt.Sprintf("RetriableHeaders[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for idx, item := range m.GetRetriableRequestHeaders() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RetryPolicyValidationError{ + field: fmt.Sprintf("RetriableRequestHeaders[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// RetryPolicyValidationError is the validation error returned by +// RetryPolicy.Validate if the designated constraints aren't met. +type RetryPolicyValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RetryPolicyValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RetryPolicyValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RetryPolicyValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RetryPolicyValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RetryPolicyValidationError) ErrorName() string { return "RetryPolicyValidationError" } + +// Error satisfies the builtin error interface +func (e RetryPolicyValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRetryPolicy.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RetryPolicyValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RetryPolicyValidationError{} + +// Validate checks the field values on HedgePolicy with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *HedgePolicy) Validate() error { + if m == nil { + return nil + } + + if wrapper := m.GetInitialRequests(); wrapper != nil { + + if wrapper.GetValue() < 1 { + return HedgePolicyValidationError{ + field: "InitialRequests", + reason: "value must be greater than or equal to 1", + } + } + + } + + if v, ok := interface{}(m.GetAdditionalRequestChance()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HedgePolicyValidationError{ + field: "AdditionalRequestChance", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for HedgeOnPerTryTimeout + + return nil +} + +// HedgePolicyValidationError is the validation error returned by +// HedgePolicy.Validate if the designated constraints aren't met. +type HedgePolicyValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HedgePolicyValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HedgePolicyValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HedgePolicyValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HedgePolicyValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HedgePolicyValidationError) ErrorName() string { return "HedgePolicyValidationError" } + +// Error satisfies the builtin error interface +func (e HedgePolicyValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHedgePolicy.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HedgePolicyValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HedgePolicyValidationError{} + +// Validate checks the field values on RedirectAction with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *RedirectAction) Validate() error { + if m == nil { + return nil + } + + if !_RedirectAction_HostRedirect_Pattern.MatchString(m.GetHostRedirect()) { + return RedirectActionValidationError{ + field: "HostRedirect", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + } + + // no validation rules for PortRedirect + + if _, ok := RedirectAction_RedirectResponseCode_name[int32(m.GetResponseCode())]; !ok { + return RedirectActionValidationError{ + field: "ResponseCode", + reason: "value must be one of the defined enum values", + } + } + + // no validation rules for StripQuery + + switch m.SchemeRewriteSpecifier.(type) { + + case *RedirectAction_HttpsRedirect: + // no validation rules for HttpsRedirect + + case *RedirectAction_SchemeRedirect: + // no validation rules for SchemeRedirect + + } + + switch m.PathRewriteSpecifier.(type) { + + case *RedirectAction_PathRedirect: + + if !_RedirectAction_PathRedirect_Pattern.MatchString(m.GetPathRedirect()) { + return RedirectActionValidationError{ + field: "PathRedirect", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + } + + case *RedirectAction_PrefixRewrite: + + if !_RedirectAction_PrefixRewrite_Pattern.MatchString(m.GetPrefixRewrite()) { + return RedirectActionValidationError{ + field: "PrefixRewrite", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + } + + } + + return nil +} + +// RedirectActionValidationError is the validation error returned by +// RedirectAction.Validate if the designated constraints aren't met. +type RedirectActionValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RedirectActionValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RedirectActionValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RedirectActionValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RedirectActionValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RedirectActionValidationError) ErrorName() string { return "RedirectActionValidationError" } + +// Error satisfies the builtin error interface +func (e RedirectActionValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRedirectAction.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RedirectActionValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RedirectActionValidationError{} + +var _RedirectAction_HostRedirect_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +var _RedirectAction_PathRedirect_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +var _RedirectAction_PrefixRewrite_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +// Validate checks the field values on DirectResponseAction with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *DirectResponseAction) Validate() error { + if m == nil { + return nil + } + + if val := m.GetStatus(); val < 100 || val >= 600 { + return DirectResponseActionValidationError{ + field: "Status", + reason: "value must be inside range [100, 600)", + } + } + + if v, ok := interface{}(m.GetBody()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DirectResponseActionValidationError{ + field: "Body", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// DirectResponseActionValidationError is the validation error returned by +// DirectResponseAction.Validate if the designated constraints aren't met. +type DirectResponseActionValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DirectResponseActionValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DirectResponseActionValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DirectResponseActionValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DirectResponseActionValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DirectResponseActionValidationError) ErrorName() string { + return "DirectResponseActionValidationError" +} + +// Error satisfies the builtin error interface +func (e DirectResponseActionValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDirectResponseAction.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DirectResponseActionValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DirectResponseActionValidationError{} + +// Validate checks the field values on Decorator with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Decorator) Validate() error { + if m == nil { + return nil + } + + if len(m.GetOperation()) < 1 { + return DecoratorValidationError{ + field: "Operation", + reason: "value length must be at least 1 bytes", + } + } + + if v, ok := interface{}(m.GetPropagate()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DecoratorValidationError{ + field: "Propagate", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// DecoratorValidationError is the validation error returned by +// Decorator.Validate if the designated constraints aren't met. +type DecoratorValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DecoratorValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DecoratorValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DecoratorValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DecoratorValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DecoratorValidationError) ErrorName() string { return "DecoratorValidationError" } + +// Error satisfies the builtin error interface +func (e DecoratorValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDecorator.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DecoratorValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DecoratorValidationError{} + +// Validate checks the field values on Tracing with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Tracing) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetClientSampling()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TracingValidationError{ + field: "ClientSampling", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetRandomSampling()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TracingValidationError{ + field: "RandomSampling", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetOverallSampling()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TracingValidationError{ + field: "OverallSampling", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetCustomTags() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TracingValidationError{ + field: fmt.Sprintf("CustomTags[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// TracingValidationError is the validation error returned by Tracing.Validate +// if the designated constraints aren't met. +type TracingValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TracingValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TracingValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TracingValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TracingValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TracingValidationError) ErrorName() string { return "TracingValidationError" } + +// Error satisfies the builtin error interface +func (e TracingValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTracing.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TracingValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TracingValidationError{} + +// Validate checks the field values on VirtualCluster with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *VirtualCluster) Validate() error { + if m == nil { + return nil + } + + if len(m.GetHiddenEnvoyDeprecatedPattern()) > 1024 { + return VirtualClusterValidationError{ + field: "HiddenEnvoyDeprecatedPattern", + reason: "value length must be at most 1024 bytes", + } + } + + for idx, item := range m.GetHeaders() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return VirtualClusterValidationError{ + field: fmt.Sprintf("Headers[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(m.GetName()) < 1 { + return VirtualClusterValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + // no validation rules for HiddenEnvoyDeprecatedMethod + + return nil +} + +// VirtualClusterValidationError is the validation error returned by +// VirtualCluster.Validate if the designated constraints aren't met. +type VirtualClusterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e VirtualClusterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e VirtualClusterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e VirtualClusterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e VirtualClusterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e VirtualClusterValidationError) ErrorName() string { return "VirtualClusterValidationError" } + +// Error satisfies the builtin error interface +func (e VirtualClusterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sVirtualCluster.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = VirtualClusterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = VirtualClusterValidationError{} + +// Validate checks the field values on RateLimit with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *RateLimit) Validate() error { + if m == nil { + return nil + } + + if wrapper := m.GetStage(); wrapper != nil { + + if wrapper.GetValue() > 10 { + return RateLimitValidationError{ + field: "Stage", + reason: "value must be less than or equal to 10", + } + } + + } + + // no validation rules for DisableKey + + if len(m.GetActions()) < 1 { + return RateLimitValidationError{ + field: "Actions", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetActions() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RateLimitValidationError{ + field: fmt.Sprintf("Actions[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// RateLimitValidationError is the validation error returned by +// RateLimit.Validate if the designated constraints aren't met. +type RateLimitValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RateLimitValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RateLimitValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RateLimitValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RateLimitValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RateLimitValidationError) ErrorName() string { return "RateLimitValidationError" } + +// Error satisfies the builtin error interface +func (e RateLimitValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRateLimit.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RateLimitValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RateLimitValidationError{} + +// Validate checks the field values on HeaderMatcher with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *HeaderMatcher) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return HeaderMatcherValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + if !_HeaderMatcher_Name_Pattern.MatchString(m.GetName()) { + return HeaderMatcherValidationError{ + field: "Name", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + } + + // no validation rules for InvertMatch + + switch m.HeaderMatchSpecifier.(type) { + + case *HeaderMatcher_ExactMatch: + // no validation rules for ExactMatch + + case *HeaderMatcher_HiddenEnvoyDeprecatedRegexMatch: + + if len(m.GetHiddenEnvoyDeprecatedRegexMatch()) > 1024 { + return HeaderMatcherValidationError{ + field: "HiddenEnvoyDeprecatedRegexMatch", + reason: "value length must be at most 1024 bytes", + } + } + + case *HeaderMatcher_SafeRegexMatch: + + if v, ok := interface{}(m.GetSafeRegexMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HeaderMatcherValidationError{ + field: "SafeRegexMatch", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *HeaderMatcher_RangeMatch: + + if v, ok := interface{}(m.GetRangeMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HeaderMatcherValidationError{ + field: "RangeMatch", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *HeaderMatcher_PresentMatch: + // no validation rules for PresentMatch + + case *HeaderMatcher_PrefixMatch: + + if len(m.GetPrefixMatch()) < 1 { + return HeaderMatcherValidationError{ + field: "PrefixMatch", + reason: "value length must be at least 1 bytes", + } + } + + case *HeaderMatcher_SuffixMatch: + + if len(m.GetSuffixMatch()) < 1 { + return HeaderMatcherValidationError{ + field: "SuffixMatch", + reason: "value length must be at least 1 bytes", + } + } + + } + + return nil +} + +// HeaderMatcherValidationError is the validation error returned by +// HeaderMatcher.Validate if the designated constraints aren't met. +type HeaderMatcherValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HeaderMatcherValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HeaderMatcherValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HeaderMatcherValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HeaderMatcherValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HeaderMatcherValidationError) ErrorName() string { return "HeaderMatcherValidationError" } + +// Error satisfies the builtin error interface +func (e HeaderMatcherValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHeaderMatcher.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HeaderMatcherValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HeaderMatcherValidationError{} + +var _HeaderMatcher_Name_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +// Validate checks the field values on QueryParameterMatcher with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *QueryParameterMatcher) Validate() error { + if m == nil { + return nil + } + + if l := len(m.GetName()); l < 1 || l > 1024 { + return QueryParameterMatcherValidationError{ + field: "Name", + reason: "value length must be between 1 and 1024 bytes, inclusive", + } + } + + // no validation rules for HiddenEnvoyDeprecatedValue + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedRegex()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return QueryParameterMatcherValidationError{ + field: "HiddenEnvoyDeprecatedRegex", + reason: "embedded message failed validation", + cause: err, + } + } + } + + switch m.QueryParameterMatchSpecifier.(type) { + + case *QueryParameterMatcher_StringMatch: + + if m.GetStringMatch() == nil { + return QueryParameterMatcherValidationError{ + field: "StringMatch", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetStringMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return QueryParameterMatcherValidationError{ + field: "StringMatch", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *QueryParameterMatcher_PresentMatch: + // no validation rules for PresentMatch + + } + + return nil +} + +// QueryParameterMatcherValidationError is the validation error returned by +// QueryParameterMatcher.Validate if the designated constraints aren't met. +type QueryParameterMatcherValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e QueryParameterMatcherValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e QueryParameterMatcherValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e QueryParameterMatcherValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e QueryParameterMatcherValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e QueryParameterMatcherValidationError) ErrorName() string { + return "QueryParameterMatcherValidationError" +} + +// Error satisfies the builtin error interface +func (e QueryParameterMatcherValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sQueryParameterMatcher.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = QueryParameterMatcherValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = QueryParameterMatcherValidationError{} + +// Validate checks the field values on WeightedCluster_ClusterWeight with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *WeightedCluster_ClusterWeight) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return WeightedCluster_ClusterWeightValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + if v, ok := interface{}(m.GetWeight()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WeightedCluster_ClusterWeightValidationError{ + field: "Weight", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetMetadataMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WeightedCluster_ClusterWeightValidationError{ + field: "MetadataMatch", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(m.GetRequestHeadersToAdd()) > 1000 { + return WeightedCluster_ClusterWeightValidationError{ + field: "RequestHeadersToAdd", + reason: "value must contain no more than 1000 item(s)", + } + } + + for idx, item := range m.GetRequestHeadersToAdd() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WeightedCluster_ClusterWeightValidationError{ + field: fmt.Sprintf("RequestHeadersToAdd[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(m.GetResponseHeadersToAdd()) > 1000 { + return WeightedCluster_ClusterWeightValidationError{ + field: "ResponseHeadersToAdd", + reason: "value must contain no more than 1000 item(s)", + } + } + + for idx, item := range m.GetResponseHeadersToAdd() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WeightedCluster_ClusterWeightValidationError{ + field: fmt.Sprintf("ResponseHeadersToAdd[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for key, val := range m.GetHiddenEnvoyDeprecatedPerFilterConfig() { + _ = val + + // no validation rules for HiddenEnvoyDeprecatedPerFilterConfig[key] + + if v, ok := interface{}(val).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WeightedCluster_ClusterWeightValidationError{ + field: fmt.Sprintf("HiddenEnvoyDeprecatedPerFilterConfig[%v]", key), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for key, val := range m.GetTypedPerFilterConfig() { + _ = val + + // no validation rules for TypedPerFilterConfig[key] + + if v, ok := interface{}(val).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WeightedCluster_ClusterWeightValidationError{ + field: fmt.Sprintf("TypedPerFilterConfig[%v]", key), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// WeightedCluster_ClusterWeightValidationError is the validation error +// returned by WeightedCluster_ClusterWeight.Validate if the designated +// constraints aren't met. +type WeightedCluster_ClusterWeightValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WeightedCluster_ClusterWeightValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WeightedCluster_ClusterWeightValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WeightedCluster_ClusterWeightValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WeightedCluster_ClusterWeightValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WeightedCluster_ClusterWeightValidationError) ErrorName() string { + return "WeightedCluster_ClusterWeightValidationError" +} + +// Error satisfies the builtin error interface +func (e WeightedCluster_ClusterWeightValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWeightedCluster_ClusterWeight.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WeightedCluster_ClusterWeightValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WeightedCluster_ClusterWeightValidationError{} + +// Validate checks the field values on RouteMatch_GrpcRouteMatchOptions with +// the rules defined in the proto definition for this message. If any rules +// are violated, an error is returned. +func (m *RouteMatch_GrpcRouteMatchOptions) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// RouteMatch_GrpcRouteMatchOptionsValidationError is the validation error +// returned by RouteMatch_GrpcRouteMatchOptions.Validate if the designated +// constraints aren't met. +type RouteMatch_GrpcRouteMatchOptionsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RouteMatch_GrpcRouteMatchOptionsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RouteMatch_GrpcRouteMatchOptionsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RouteMatch_GrpcRouteMatchOptionsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RouteMatch_GrpcRouteMatchOptionsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RouteMatch_GrpcRouteMatchOptionsValidationError) ErrorName() string { + return "RouteMatch_GrpcRouteMatchOptionsValidationError" +} + +// Error satisfies the builtin error interface +func (e RouteMatch_GrpcRouteMatchOptionsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRouteMatch_GrpcRouteMatchOptions.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RouteMatch_GrpcRouteMatchOptionsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RouteMatch_GrpcRouteMatchOptionsValidationError{} + +// Validate checks the field values on RouteMatch_TlsContextMatchOptions with +// the rules defined in the proto definition for this message. If any rules +// are violated, an error is returned. +func (m *RouteMatch_TlsContextMatchOptions) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetPresented()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteMatch_TlsContextMatchOptionsValidationError{ + field: "Presented", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetValidated()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteMatch_TlsContextMatchOptionsValidationError{ + field: "Validated", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// RouteMatch_TlsContextMatchOptionsValidationError is the validation error +// returned by RouteMatch_TlsContextMatchOptions.Validate if the designated +// constraints aren't met. +type RouteMatch_TlsContextMatchOptionsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RouteMatch_TlsContextMatchOptionsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RouteMatch_TlsContextMatchOptionsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RouteMatch_TlsContextMatchOptionsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RouteMatch_TlsContextMatchOptionsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RouteMatch_TlsContextMatchOptionsValidationError) ErrorName() string { + return "RouteMatch_TlsContextMatchOptionsValidationError" +} + +// Error satisfies the builtin error interface +func (e RouteMatch_TlsContextMatchOptionsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRouteMatch_TlsContextMatchOptions.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RouteMatch_TlsContextMatchOptionsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RouteMatch_TlsContextMatchOptionsValidationError{} + +// Validate checks the field values on RouteAction_RequestMirrorPolicy with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *RouteAction_RequestMirrorPolicy) Validate() error { + if m == nil { + return nil + } + + if len(m.GetCluster()) < 1 { + return RouteAction_RequestMirrorPolicyValidationError{ + field: "Cluster", + reason: "value length must be at least 1 bytes", + } + } + + // no validation rules for HiddenEnvoyDeprecatedRuntimeKey + + if v, ok := interface{}(m.GetRuntimeFraction()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteAction_RequestMirrorPolicyValidationError{ + field: "RuntimeFraction", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetTraceSampled()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteAction_RequestMirrorPolicyValidationError{ + field: "TraceSampled", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// RouteAction_RequestMirrorPolicyValidationError is the validation error +// returned by RouteAction_RequestMirrorPolicy.Validate if the designated +// constraints aren't met. +type RouteAction_RequestMirrorPolicyValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RouteAction_RequestMirrorPolicyValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RouteAction_RequestMirrorPolicyValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RouteAction_RequestMirrorPolicyValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RouteAction_RequestMirrorPolicyValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RouteAction_RequestMirrorPolicyValidationError) ErrorName() string { + return "RouteAction_RequestMirrorPolicyValidationError" +} + +// Error satisfies the builtin error interface +func (e RouteAction_RequestMirrorPolicyValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRouteAction_RequestMirrorPolicy.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RouteAction_RequestMirrorPolicyValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RouteAction_RequestMirrorPolicyValidationError{} + +// Validate checks the field values on RouteAction_HashPolicy with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *RouteAction_HashPolicy) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Terminal + + switch m.PolicySpecifier.(type) { + + case *RouteAction_HashPolicy_Header_: + + if v, ok := interface{}(m.GetHeader()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteAction_HashPolicyValidationError{ + field: "Header", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *RouteAction_HashPolicy_Cookie_: + + if v, ok := interface{}(m.GetCookie()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteAction_HashPolicyValidationError{ + field: "Cookie", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *RouteAction_HashPolicy_ConnectionProperties_: + + if v, ok := interface{}(m.GetConnectionProperties()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteAction_HashPolicyValidationError{ + field: "ConnectionProperties", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *RouteAction_HashPolicy_QueryParameter_: + + if v, ok := interface{}(m.GetQueryParameter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteAction_HashPolicyValidationError{ + field: "QueryParameter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *RouteAction_HashPolicy_FilterState_: + + if v, ok := interface{}(m.GetFilterState()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteAction_HashPolicyValidationError{ + field: "FilterState", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return RouteAction_HashPolicyValidationError{ + field: "PolicySpecifier", + reason: "value is required", + } + + } + + return nil +} + +// RouteAction_HashPolicyValidationError is the validation error returned by +// RouteAction_HashPolicy.Validate if the designated constraints aren't met. +type RouteAction_HashPolicyValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RouteAction_HashPolicyValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RouteAction_HashPolicyValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RouteAction_HashPolicyValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RouteAction_HashPolicyValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RouteAction_HashPolicyValidationError) ErrorName() string { + return "RouteAction_HashPolicyValidationError" +} + +// Error satisfies the builtin error interface +func (e RouteAction_HashPolicyValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRouteAction_HashPolicy.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RouteAction_HashPolicyValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RouteAction_HashPolicyValidationError{} + +// Validate checks the field values on RouteAction_UpgradeConfig with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *RouteAction_UpgradeConfig) Validate() error { + if m == nil { + return nil + } + + if !_RouteAction_UpgradeConfig_UpgradeType_Pattern.MatchString(m.GetUpgradeType()) { + return RouteAction_UpgradeConfigValidationError{ + field: "UpgradeType", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + } + + if v, ok := interface{}(m.GetEnabled()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteAction_UpgradeConfigValidationError{ + field: "Enabled", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// RouteAction_UpgradeConfigValidationError is the validation error returned by +// RouteAction_UpgradeConfig.Validate if the designated constraints aren't met. +type RouteAction_UpgradeConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RouteAction_UpgradeConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RouteAction_UpgradeConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RouteAction_UpgradeConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RouteAction_UpgradeConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RouteAction_UpgradeConfigValidationError) ErrorName() string { + return "RouteAction_UpgradeConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e RouteAction_UpgradeConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRouteAction_UpgradeConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RouteAction_UpgradeConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RouteAction_UpgradeConfigValidationError{} + +var _RouteAction_UpgradeConfig_UpgradeType_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +// Validate checks the field values on RouteAction_HashPolicy_Header with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *RouteAction_HashPolicy_Header) Validate() error { + if m == nil { + return nil + } + + if len(m.GetHeaderName()) < 1 { + return RouteAction_HashPolicy_HeaderValidationError{ + field: "HeaderName", + reason: "value length must be at least 1 bytes", + } + } + + if !_RouteAction_HashPolicy_Header_HeaderName_Pattern.MatchString(m.GetHeaderName()) { + return RouteAction_HashPolicy_HeaderValidationError{ + field: "HeaderName", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + } + + return nil +} + +// RouteAction_HashPolicy_HeaderValidationError is the validation error +// returned by RouteAction_HashPolicy_Header.Validate if the designated +// constraints aren't met. +type RouteAction_HashPolicy_HeaderValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RouteAction_HashPolicy_HeaderValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RouteAction_HashPolicy_HeaderValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RouteAction_HashPolicy_HeaderValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RouteAction_HashPolicy_HeaderValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RouteAction_HashPolicy_HeaderValidationError) ErrorName() string { + return "RouteAction_HashPolicy_HeaderValidationError" +} + +// Error satisfies the builtin error interface +func (e RouteAction_HashPolicy_HeaderValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRouteAction_HashPolicy_Header.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RouteAction_HashPolicy_HeaderValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RouteAction_HashPolicy_HeaderValidationError{} + +var _RouteAction_HashPolicy_Header_HeaderName_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +// Validate checks the field values on RouteAction_HashPolicy_Cookie with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *RouteAction_HashPolicy_Cookie) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return RouteAction_HashPolicy_CookieValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + if v, ok := interface{}(m.GetTtl()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteAction_HashPolicy_CookieValidationError{ + field: "Ttl", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for Path + + return nil +} + +// RouteAction_HashPolicy_CookieValidationError is the validation error +// returned by RouteAction_HashPolicy_Cookie.Validate if the designated +// constraints aren't met. +type RouteAction_HashPolicy_CookieValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RouteAction_HashPolicy_CookieValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RouteAction_HashPolicy_CookieValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RouteAction_HashPolicy_CookieValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RouteAction_HashPolicy_CookieValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RouteAction_HashPolicy_CookieValidationError) ErrorName() string { + return "RouteAction_HashPolicy_CookieValidationError" +} + +// Error satisfies the builtin error interface +func (e RouteAction_HashPolicy_CookieValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRouteAction_HashPolicy_Cookie.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RouteAction_HashPolicy_CookieValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RouteAction_HashPolicy_CookieValidationError{} + +// Validate checks the field values on +// RouteAction_HashPolicy_ConnectionProperties with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *RouteAction_HashPolicy_ConnectionProperties) Validate() error { + if m == nil { + return nil + } + + // no validation rules for SourceIp + + return nil +} + +// RouteAction_HashPolicy_ConnectionPropertiesValidationError is the validation +// error returned by RouteAction_HashPolicy_ConnectionProperties.Validate if +// the designated constraints aren't met. +type RouteAction_HashPolicy_ConnectionPropertiesValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RouteAction_HashPolicy_ConnectionPropertiesValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RouteAction_HashPolicy_ConnectionPropertiesValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RouteAction_HashPolicy_ConnectionPropertiesValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RouteAction_HashPolicy_ConnectionPropertiesValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RouteAction_HashPolicy_ConnectionPropertiesValidationError) ErrorName() string { + return "RouteAction_HashPolicy_ConnectionPropertiesValidationError" +} + +// Error satisfies the builtin error interface +func (e RouteAction_HashPolicy_ConnectionPropertiesValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRouteAction_HashPolicy_ConnectionProperties.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RouteAction_HashPolicy_ConnectionPropertiesValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RouteAction_HashPolicy_ConnectionPropertiesValidationError{} + +// Validate checks the field values on RouteAction_HashPolicy_QueryParameter +// with the rules defined in the proto definition for this message. If any +// rules are violated, an error is returned. +func (m *RouteAction_HashPolicy_QueryParameter) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return RouteAction_HashPolicy_QueryParameterValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + return nil +} + +// RouteAction_HashPolicy_QueryParameterValidationError is the validation error +// returned by RouteAction_HashPolicy_QueryParameter.Validate if the +// designated constraints aren't met. +type RouteAction_HashPolicy_QueryParameterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RouteAction_HashPolicy_QueryParameterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RouteAction_HashPolicy_QueryParameterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RouteAction_HashPolicy_QueryParameterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RouteAction_HashPolicy_QueryParameterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RouteAction_HashPolicy_QueryParameterValidationError) ErrorName() string { + return "RouteAction_HashPolicy_QueryParameterValidationError" +} + +// Error satisfies the builtin error interface +func (e RouteAction_HashPolicy_QueryParameterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRouteAction_HashPolicy_QueryParameter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RouteAction_HashPolicy_QueryParameterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RouteAction_HashPolicy_QueryParameterValidationError{} + +// Validate checks the field values on RouteAction_HashPolicy_FilterState with +// the rules defined in the proto definition for this message. If any rules +// are violated, an error is returned. +func (m *RouteAction_HashPolicy_FilterState) Validate() error { + if m == nil { + return nil + } + + if len(m.GetKey()) < 1 { + return RouteAction_HashPolicy_FilterStateValidationError{ + field: "Key", + reason: "value length must be at least 1 bytes", + } + } + + return nil +} + +// RouteAction_HashPolicy_FilterStateValidationError is the validation error +// returned by RouteAction_HashPolicy_FilterState.Validate if the designated +// constraints aren't met. +type RouteAction_HashPolicy_FilterStateValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RouteAction_HashPolicy_FilterStateValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RouteAction_HashPolicy_FilterStateValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RouteAction_HashPolicy_FilterStateValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RouteAction_HashPolicy_FilterStateValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RouteAction_HashPolicy_FilterStateValidationError) ErrorName() string { + return "RouteAction_HashPolicy_FilterStateValidationError" +} + +// Error satisfies the builtin error interface +func (e RouteAction_HashPolicy_FilterStateValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRouteAction_HashPolicy_FilterState.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RouteAction_HashPolicy_FilterStateValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RouteAction_HashPolicy_FilterStateValidationError{} + +// Validate checks the field values on RetryPolicy_RetryPriority with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *RetryPolicy_RetryPriority) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return RetryPolicy_RetryPriorityValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + switch m.ConfigType.(type) { + + case *RetryPolicy_RetryPriority_HiddenEnvoyDeprecatedConfig: + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RetryPolicy_RetryPriorityValidationError{ + field: "HiddenEnvoyDeprecatedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *RetryPolicy_RetryPriority_TypedConfig: + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RetryPolicy_RetryPriorityValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// RetryPolicy_RetryPriorityValidationError is the validation error returned by +// RetryPolicy_RetryPriority.Validate if the designated constraints aren't met. +type RetryPolicy_RetryPriorityValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RetryPolicy_RetryPriorityValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RetryPolicy_RetryPriorityValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RetryPolicy_RetryPriorityValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RetryPolicy_RetryPriorityValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RetryPolicy_RetryPriorityValidationError) ErrorName() string { + return "RetryPolicy_RetryPriorityValidationError" +} + +// Error satisfies the builtin error interface +func (e RetryPolicy_RetryPriorityValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRetryPolicy_RetryPriority.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RetryPolicy_RetryPriorityValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RetryPolicy_RetryPriorityValidationError{} + +// Validate checks the field values on RetryPolicy_RetryHostPredicate with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *RetryPolicy_RetryHostPredicate) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return RetryPolicy_RetryHostPredicateValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + switch m.ConfigType.(type) { + + case *RetryPolicy_RetryHostPredicate_HiddenEnvoyDeprecatedConfig: + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RetryPolicy_RetryHostPredicateValidationError{ + field: "HiddenEnvoyDeprecatedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *RetryPolicy_RetryHostPredicate_TypedConfig: + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RetryPolicy_RetryHostPredicateValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// RetryPolicy_RetryHostPredicateValidationError is the validation error +// returned by RetryPolicy_RetryHostPredicate.Validate if the designated +// constraints aren't met. +type RetryPolicy_RetryHostPredicateValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RetryPolicy_RetryHostPredicateValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RetryPolicy_RetryHostPredicateValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RetryPolicy_RetryHostPredicateValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RetryPolicy_RetryHostPredicateValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RetryPolicy_RetryHostPredicateValidationError) ErrorName() string { + return "RetryPolicy_RetryHostPredicateValidationError" +} + +// Error satisfies the builtin error interface +func (e RetryPolicy_RetryHostPredicateValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRetryPolicy_RetryHostPredicate.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RetryPolicy_RetryHostPredicateValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RetryPolicy_RetryHostPredicateValidationError{} + +// Validate checks the field values on RetryPolicy_RetryBackOff with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *RetryPolicy_RetryBackOff) Validate() error { + if m == nil { + return nil + } + + if m.GetBaseInterval() == nil { + return RetryPolicy_RetryBackOffValidationError{ + field: "BaseInterval", + reason: "value is required", + } + } + + if d := m.GetBaseInterval(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return RetryPolicy_RetryBackOffValidationError{ + field: "BaseInterval", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur <= gt { + return RetryPolicy_RetryBackOffValidationError{ + field: "BaseInterval", + reason: "value must be greater than 0s", + } + } + + } + + if d := m.GetMaxInterval(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return RetryPolicy_RetryBackOffValidationError{ + field: "MaxInterval", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur <= gt { + return RetryPolicy_RetryBackOffValidationError{ + field: "MaxInterval", + reason: "value must be greater than 0s", + } + } + + } + + return nil +} + +// RetryPolicy_RetryBackOffValidationError is the validation error returned by +// RetryPolicy_RetryBackOff.Validate if the designated constraints aren't met. +type RetryPolicy_RetryBackOffValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RetryPolicy_RetryBackOffValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RetryPolicy_RetryBackOffValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RetryPolicy_RetryBackOffValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RetryPolicy_RetryBackOffValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RetryPolicy_RetryBackOffValidationError) ErrorName() string { + return "RetryPolicy_RetryBackOffValidationError" +} + +// Error satisfies the builtin error interface +func (e RetryPolicy_RetryBackOffValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRetryPolicy_RetryBackOff.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RetryPolicy_RetryBackOffValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RetryPolicy_RetryBackOffValidationError{} + +// Validate checks the field values on RateLimit_Action with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *RateLimit_Action) Validate() error { + if m == nil { + return nil + } + + switch m.ActionSpecifier.(type) { + + case *RateLimit_Action_SourceCluster_: + + if v, ok := interface{}(m.GetSourceCluster()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RateLimit_ActionValidationError{ + field: "SourceCluster", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *RateLimit_Action_DestinationCluster_: + + if v, ok := interface{}(m.GetDestinationCluster()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RateLimit_ActionValidationError{ + field: "DestinationCluster", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *RateLimit_Action_RequestHeaders_: + + if v, ok := interface{}(m.GetRequestHeaders()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RateLimit_ActionValidationError{ + field: "RequestHeaders", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *RateLimit_Action_RemoteAddress_: + + if v, ok := interface{}(m.GetRemoteAddress()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RateLimit_ActionValidationError{ + field: "RemoteAddress", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *RateLimit_Action_GenericKey_: + + if v, ok := interface{}(m.GetGenericKey()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RateLimit_ActionValidationError{ + field: "GenericKey", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *RateLimit_Action_HeaderValueMatch_: + + if v, ok := interface{}(m.GetHeaderValueMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RateLimit_ActionValidationError{ + field: "HeaderValueMatch", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return RateLimit_ActionValidationError{ + field: "ActionSpecifier", + reason: "value is required", + } + + } + + return nil +} + +// RateLimit_ActionValidationError is the validation error returned by +// RateLimit_Action.Validate if the designated constraints aren't met. +type RateLimit_ActionValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RateLimit_ActionValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RateLimit_ActionValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RateLimit_ActionValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RateLimit_ActionValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RateLimit_ActionValidationError) ErrorName() string { return "RateLimit_ActionValidationError" } + +// Error satisfies the builtin error interface +func (e RateLimit_ActionValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRateLimit_Action.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RateLimit_ActionValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RateLimit_ActionValidationError{} + +// Validate checks the field values on RateLimit_Action_SourceCluster with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *RateLimit_Action_SourceCluster) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// RateLimit_Action_SourceClusterValidationError is the validation error +// returned by RateLimit_Action_SourceCluster.Validate if the designated +// constraints aren't met. +type RateLimit_Action_SourceClusterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RateLimit_Action_SourceClusterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RateLimit_Action_SourceClusterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RateLimit_Action_SourceClusterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RateLimit_Action_SourceClusterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RateLimit_Action_SourceClusterValidationError) ErrorName() string { + return "RateLimit_Action_SourceClusterValidationError" +} + +// Error satisfies the builtin error interface +func (e RateLimit_Action_SourceClusterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRateLimit_Action_SourceCluster.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RateLimit_Action_SourceClusterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RateLimit_Action_SourceClusterValidationError{} + +// Validate checks the field values on RateLimit_Action_DestinationCluster with +// the rules defined in the proto definition for this message. If any rules +// are violated, an error is returned. +func (m *RateLimit_Action_DestinationCluster) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// RateLimit_Action_DestinationClusterValidationError is the validation error +// returned by RateLimit_Action_DestinationCluster.Validate if the designated +// constraints aren't met. +type RateLimit_Action_DestinationClusterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RateLimit_Action_DestinationClusterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RateLimit_Action_DestinationClusterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RateLimit_Action_DestinationClusterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RateLimit_Action_DestinationClusterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RateLimit_Action_DestinationClusterValidationError) ErrorName() string { + return "RateLimit_Action_DestinationClusterValidationError" +} + +// Error satisfies the builtin error interface +func (e RateLimit_Action_DestinationClusterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRateLimit_Action_DestinationCluster.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RateLimit_Action_DestinationClusterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RateLimit_Action_DestinationClusterValidationError{} + +// Validate checks the field values on RateLimit_Action_RequestHeaders with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *RateLimit_Action_RequestHeaders) Validate() error { + if m == nil { + return nil + } + + if len(m.GetHeaderName()) < 1 { + return RateLimit_Action_RequestHeadersValidationError{ + field: "HeaderName", + reason: "value length must be at least 1 bytes", + } + } + + if !_RateLimit_Action_RequestHeaders_HeaderName_Pattern.MatchString(m.GetHeaderName()) { + return RateLimit_Action_RequestHeadersValidationError{ + field: "HeaderName", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + } + + if len(m.GetDescriptorKey()) < 1 { + return RateLimit_Action_RequestHeadersValidationError{ + field: "DescriptorKey", + reason: "value length must be at least 1 bytes", + } + } + + return nil +} + +// RateLimit_Action_RequestHeadersValidationError is the validation error +// returned by RateLimit_Action_RequestHeaders.Validate if the designated +// constraints aren't met. +type RateLimit_Action_RequestHeadersValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RateLimit_Action_RequestHeadersValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RateLimit_Action_RequestHeadersValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RateLimit_Action_RequestHeadersValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RateLimit_Action_RequestHeadersValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RateLimit_Action_RequestHeadersValidationError) ErrorName() string { + return "RateLimit_Action_RequestHeadersValidationError" +} + +// Error satisfies the builtin error interface +func (e RateLimit_Action_RequestHeadersValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRateLimit_Action_RequestHeaders.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RateLimit_Action_RequestHeadersValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RateLimit_Action_RequestHeadersValidationError{} + +var _RateLimit_Action_RequestHeaders_HeaderName_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +// Validate checks the field values on RateLimit_Action_RemoteAddress with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *RateLimit_Action_RemoteAddress) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// RateLimit_Action_RemoteAddressValidationError is the validation error +// returned by RateLimit_Action_RemoteAddress.Validate if the designated +// constraints aren't met. +type RateLimit_Action_RemoteAddressValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RateLimit_Action_RemoteAddressValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RateLimit_Action_RemoteAddressValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RateLimit_Action_RemoteAddressValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RateLimit_Action_RemoteAddressValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RateLimit_Action_RemoteAddressValidationError) ErrorName() string { + return "RateLimit_Action_RemoteAddressValidationError" +} + +// Error satisfies the builtin error interface +func (e RateLimit_Action_RemoteAddressValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRateLimit_Action_RemoteAddress.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RateLimit_Action_RemoteAddressValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RateLimit_Action_RemoteAddressValidationError{} + +// Validate checks the field values on RateLimit_Action_GenericKey with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *RateLimit_Action_GenericKey) Validate() error { + if m == nil { + return nil + } + + if len(m.GetDescriptorValue()) < 1 { + return RateLimit_Action_GenericKeyValidationError{ + field: "DescriptorValue", + reason: "value length must be at least 1 bytes", + } + } + + return nil +} + +// RateLimit_Action_GenericKeyValidationError is the validation error returned +// by RateLimit_Action_GenericKey.Validate if the designated constraints +// aren't met. +type RateLimit_Action_GenericKeyValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RateLimit_Action_GenericKeyValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RateLimit_Action_GenericKeyValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RateLimit_Action_GenericKeyValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RateLimit_Action_GenericKeyValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RateLimit_Action_GenericKeyValidationError) ErrorName() string { + return "RateLimit_Action_GenericKeyValidationError" +} + +// Error satisfies the builtin error interface +func (e RateLimit_Action_GenericKeyValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRateLimit_Action_GenericKey.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RateLimit_Action_GenericKeyValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RateLimit_Action_GenericKeyValidationError{} + +// Validate checks the field values on RateLimit_Action_HeaderValueMatch with +// the rules defined in the proto definition for this message. If any rules +// are violated, an error is returned. +func (m *RateLimit_Action_HeaderValueMatch) Validate() error { + if m == nil { + return nil + } + + if len(m.GetDescriptorValue()) < 1 { + return RateLimit_Action_HeaderValueMatchValidationError{ + field: "DescriptorValue", + reason: "value length must be at least 1 bytes", + } + } + + if v, ok := interface{}(m.GetExpectMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RateLimit_Action_HeaderValueMatchValidationError{ + field: "ExpectMatch", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(m.GetHeaders()) < 1 { + return RateLimit_Action_HeaderValueMatchValidationError{ + field: "Headers", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetHeaders() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RateLimit_Action_HeaderValueMatchValidationError{ + field: fmt.Sprintf("Headers[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// RateLimit_Action_HeaderValueMatchValidationError is the validation error +// returned by RateLimit_Action_HeaderValueMatch.Validate if the designated +// constraints aren't met. +type RateLimit_Action_HeaderValueMatchValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RateLimit_Action_HeaderValueMatchValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RateLimit_Action_HeaderValueMatchValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RateLimit_Action_HeaderValueMatchValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RateLimit_Action_HeaderValueMatchValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RateLimit_Action_HeaderValueMatchValidationError) ErrorName() string { + return "RateLimit_Action_HeaderValueMatchValidationError" +} + +// Error satisfies the builtin error interface +func (e RateLimit_Action_HeaderValueMatchValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRateLimit_Action_HeaderValueMatch.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RateLimit_Action_HeaderValueMatchValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RateLimit_Action_HeaderValueMatchValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/scoped_route.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/scoped_route.pb.go new file mode 100644 index 000000000..ac470f159 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/scoped_route.pb.go @@ -0,0 +1,222 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/route/v3/scoped_route.proto + +package envoy_config_route_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type ScopedRouteConfiguration struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + RouteConfigurationName string `protobuf:"bytes,2,opt,name=route_configuration_name,json=routeConfigurationName,proto3" json:"route_configuration_name,omitempty"` + Key *ScopedRouteConfiguration_Key `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ScopedRouteConfiguration) Reset() { *m = ScopedRouteConfiguration{} } +func (m *ScopedRouteConfiguration) String() string { return proto.CompactTextString(m) } +func (*ScopedRouteConfiguration) ProtoMessage() {} +func (*ScopedRouteConfiguration) Descriptor() ([]byte, []int) { + return fileDescriptor_3339c04c2fb0ae6d, []int{0} +} + +func (m *ScopedRouteConfiguration) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ScopedRouteConfiguration.Unmarshal(m, b) +} +func (m *ScopedRouteConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ScopedRouteConfiguration.Marshal(b, m, deterministic) +} +func (m *ScopedRouteConfiguration) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScopedRouteConfiguration.Merge(m, src) +} +func (m *ScopedRouteConfiguration) XXX_Size() int { + return xxx_messageInfo_ScopedRouteConfiguration.Size(m) +} +func (m *ScopedRouteConfiguration) XXX_DiscardUnknown() { + xxx_messageInfo_ScopedRouteConfiguration.DiscardUnknown(m) +} + +var xxx_messageInfo_ScopedRouteConfiguration proto.InternalMessageInfo + +func (m *ScopedRouteConfiguration) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *ScopedRouteConfiguration) GetRouteConfigurationName() string { + if m != nil { + return m.RouteConfigurationName + } + return "" +} + +func (m *ScopedRouteConfiguration) GetKey() *ScopedRouteConfiguration_Key { + if m != nil { + return m.Key + } + return nil +} + +type ScopedRouteConfiguration_Key struct { + Fragments []*ScopedRouteConfiguration_Key_Fragment `protobuf:"bytes,1,rep,name=fragments,proto3" json:"fragments,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ScopedRouteConfiguration_Key) Reset() { *m = ScopedRouteConfiguration_Key{} } +func (m *ScopedRouteConfiguration_Key) String() string { return proto.CompactTextString(m) } +func (*ScopedRouteConfiguration_Key) ProtoMessage() {} +func (*ScopedRouteConfiguration_Key) Descriptor() ([]byte, []int) { + return fileDescriptor_3339c04c2fb0ae6d, []int{0, 0} +} + +func (m *ScopedRouteConfiguration_Key) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ScopedRouteConfiguration_Key.Unmarshal(m, b) +} +func (m *ScopedRouteConfiguration_Key) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ScopedRouteConfiguration_Key.Marshal(b, m, deterministic) +} +func (m *ScopedRouteConfiguration_Key) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScopedRouteConfiguration_Key.Merge(m, src) +} +func (m *ScopedRouteConfiguration_Key) XXX_Size() int { + return xxx_messageInfo_ScopedRouteConfiguration_Key.Size(m) +} +func (m *ScopedRouteConfiguration_Key) XXX_DiscardUnknown() { + xxx_messageInfo_ScopedRouteConfiguration_Key.DiscardUnknown(m) +} + +var xxx_messageInfo_ScopedRouteConfiguration_Key proto.InternalMessageInfo + +func (m *ScopedRouteConfiguration_Key) GetFragments() []*ScopedRouteConfiguration_Key_Fragment { + if m != nil { + return m.Fragments + } + return nil +} + +type ScopedRouteConfiguration_Key_Fragment struct { + // Types that are valid to be assigned to Type: + // *ScopedRouteConfiguration_Key_Fragment_StringKey + Type isScopedRouteConfiguration_Key_Fragment_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ScopedRouteConfiguration_Key_Fragment) Reset() { *m = ScopedRouteConfiguration_Key_Fragment{} } +func (m *ScopedRouteConfiguration_Key_Fragment) String() string { return proto.CompactTextString(m) } +func (*ScopedRouteConfiguration_Key_Fragment) ProtoMessage() {} +func (*ScopedRouteConfiguration_Key_Fragment) Descriptor() ([]byte, []int) { + return fileDescriptor_3339c04c2fb0ae6d, []int{0, 0, 0} +} + +func (m *ScopedRouteConfiguration_Key_Fragment) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ScopedRouteConfiguration_Key_Fragment.Unmarshal(m, b) +} +func (m *ScopedRouteConfiguration_Key_Fragment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ScopedRouteConfiguration_Key_Fragment.Marshal(b, m, deterministic) +} +func (m *ScopedRouteConfiguration_Key_Fragment) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScopedRouteConfiguration_Key_Fragment.Merge(m, src) +} +func (m *ScopedRouteConfiguration_Key_Fragment) XXX_Size() int { + return xxx_messageInfo_ScopedRouteConfiguration_Key_Fragment.Size(m) +} +func (m *ScopedRouteConfiguration_Key_Fragment) XXX_DiscardUnknown() { + xxx_messageInfo_ScopedRouteConfiguration_Key_Fragment.DiscardUnknown(m) +} + +var xxx_messageInfo_ScopedRouteConfiguration_Key_Fragment proto.InternalMessageInfo + +type isScopedRouteConfiguration_Key_Fragment_Type interface { + isScopedRouteConfiguration_Key_Fragment_Type() +} + +type ScopedRouteConfiguration_Key_Fragment_StringKey struct { + StringKey string `protobuf:"bytes,1,opt,name=string_key,json=stringKey,proto3,oneof"` +} + +func (*ScopedRouteConfiguration_Key_Fragment_StringKey) isScopedRouteConfiguration_Key_Fragment_Type() { +} + +func (m *ScopedRouteConfiguration_Key_Fragment) GetType() isScopedRouteConfiguration_Key_Fragment_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *ScopedRouteConfiguration_Key_Fragment) GetStringKey() string { + if x, ok := m.GetType().(*ScopedRouteConfiguration_Key_Fragment_StringKey); ok { + return x.StringKey + } + return "" +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ScopedRouteConfiguration_Key_Fragment) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ScopedRouteConfiguration_Key_Fragment_StringKey)(nil), + } +} + +func init() { + proto.RegisterType((*ScopedRouteConfiguration)(nil), "envoy.config.route.v3.ScopedRouteConfiguration") + proto.RegisterType((*ScopedRouteConfiguration_Key)(nil), "envoy.config.route.v3.ScopedRouteConfiguration.Key") + proto.RegisterType((*ScopedRouteConfiguration_Key_Fragment)(nil), "envoy.config.route.v3.ScopedRouteConfiguration.Key.Fragment") +} + +func init() { + proto.RegisterFile("envoy/config/route/v3/scoped_route.proto", fileDescriptor_3339c04c2fb0ae6d) +} + +var fileDescriptor_3339c04c2fb0ae6d = []byte{ + // 399 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x92, 0x41, 0x8b, 0xd3, 0x40, + 0x1c, 0xc5, 0x9d, 0x24, 0xd6, 0x76, 0x7a, 0x29, 0x01, 0x35, 0x44, 0xd4, 0xa8, 0x88, 0x11, 0x65, + 0x22, 0x89, 0x17, 0x8b, 0x97, 0x46, 0x10, 0xa1, 0xa0, 0x25, 0x7e, 0x80, 0x30, 0x36, 0xd3, 0x30, + 0x68, 0x67, 0xc2, 0xcc, 0x24, 0x98, 0x9b, 0x47, 0xf1, 0xe0, 0xa1, 0xc7, 0xfd, 0x28, 0x7b, 0x5f, + 0xd8, 0xeb, 0x7e, 0x9b, 0xa5, 0xa7, 0x65, 0x26, 0x5d, 0xb6, 0x4b, 0xbb, 0x50, 0xf6, 0x96, 0xcc, + 0xff, 0xbd, 0xdf, 0x7b, 0xf3, 0x67, 0x60, 0x48, 0x58, 0xc3, 0xdb, 0x68, 0xce, 0xd9, 0x82, 0x96, + 0x91, 0xe0, 0xb5, 0x22, 0x51, 0x93, 0x44, 0x72, 0xce, 0x2b, 0x52, 0xe4, 0xe6, 0x1f, 0x55, 0x82, + 0x2b, 0xee, 0xde, 0x37, 0x4a, 0xd4, 0x29, 0x51, 0x37, 0x69, 0x12, 0xff, 0x71, 0x5d, 0x54, 0x38, + 0xc2, 0x8c, 0x71, 0x85, 0x15, 0xe5, 0x4c, 0x46, 0x52, 0x61, 0x55, 0xcb, 0xce, 0xe5, 0x3f, 0xdb, + 0x19, 0x37, 0x44, 0x48, 0xca, 0x19, 0x65, 0xe5, 0x46, 0xf2, 0xb0, 0xc1, 0xbf, 0x68, 0x81, 0x75, + 0xf0, 0xe6, 0xa3, 0x1b, 0x3c, 0xff, 0xef, 0x40, 0xef, 0xbb, 0x29, 0x92, 0xe9, 0xb4, 0x4f, 0x26, + 0xb9, 0x16, 0x86, 0xe3, 0x3e, 0x82, 0x0e, 0xc3, 0x4b, 0xe2, 0x81, 0x00, 0x84, 0x83, 0xf4, 0xde, + 0x3a, 0x75, 0x84, 0x15, 0x80, 0xcc, 0x1c, 0xba, 0x13, 0xe8, 0x99, 0x82, 0xf9, 0x7c, 0xdb, 0x93, + 0x1b, 0x83, 0x75, 0xdd, 0xf0, 0x40, 0xec, 0xb0, 0xbf, 0x6a, 0xc4, 0x37, 0x68, 0xff, 0x24, 0xad, + 0x67, 0x07, 0x20, 0x1c, 0xc6, 0x09, 0xda, 0x7b, 0x79, 0x74, 0x53, 0x3b, 0x34, 0x25, 0x6d, 0xda, + 0x5f, 0xa7, 0x77, 0xff, 0x01, 0x6b, 0x04, 0x32, 0x4d, 0xf2, 0x57, 0x16, 0xb4, 0xa7, 0xa4, 0x75, + 0x0b, 0x38, 0x58, 0x08, 0x5c, 0x2e, 0x09, 0x53, 0xd2, 0x03, 0x81, 0x1d, 0x0e, 0xe3, 0x8f, 0xb7, + 0xc0, 0xa3, 0xcf, 0x1b, 0x88, 0xc9, 0x59, 0x01, 0xab, 0x0f, 0xb2, 0x2b, 0xb0, 0x2f, 0x61, 0xff, + 0x52, 0xe0, 0x3e, 0x85, 0x50, 0x2a, 0x41, 0x59, 0x99, 0xeb, 0x1b, 0x99, 0x85, 0x7d, 0xb9, 0x93, + 0x0d, 0xba, 0xb3, 0x29, 0x69, 0xc7, 0x1f, 0x8e, 0x4e, 0xfe, 0x3e, 0x79, 0x0f, 0xe3, 0xae, 0x05, + 0xae, 0x28, 0x6a, 0xe2, 0x03, 0xc3, 0x87, 0xd0, 0x51, 0x6d, 0x45, 0x5c, 0xfb, 0x3c, 0x05, 0xe3, + 0x77, 0x9a, 0xf3, 0x06, 0xbe, 0x3e, 0x98, 0x33, 0x7e, 0xab, 0x1d, 0xaf, 0xe0, 0xcb, 0x83, 0x1c, + 0xe9, 0xe4, 0xf8, 0xcf, 0xe9, 0x59, 0xcf, 0x1a, 0x59, 0xf0, 0x05, 0xe5, 0xdd, 0xce, 0x2a, 0xc1, + 0x7f, 0xb7, 0xfb, 0xd7, 0x97, 0x8e, 0xb6, 0x40, 0x33, 0xfd, 0xa2, 0x66, 0xe0, 0x47, 0xcf, 0x3c, + 0xad, 0xe4, 0x22, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x0d, 0x2b, 0xcd, 0xf8, 0x02, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/scoped_route.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/scoped_route.pb.validate.go new file mode 100644 index 000000000..acbc10be9 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/route/v3/scoped_route.pb.validate.go @@ -0,0 +1,306 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/route/v3/scoped_route.proto + +package envoy_config_route_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _scoped_route_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on ScopedRouteConfiguration with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *ScopedRouteConfiguration) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return ScopedRouteConfigurationValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + if len(m.GetRouteConfigurationName()) < 1 { + return ScopedRouteConfigurationValidationError{ + field: "RouteConfigurationName", + reason: "value length must be at least 1 bytes", + } + } + + if m.GetKey() == nil { + return ScopedRouteConfigurationValidationError{ + field: "Key", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetKey()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ScopedRouteConfigurationValidationError{ + field: "Key", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// ScopedRouteConfigurationValidationError is the validation error returned by +// ScopedRouteConfiguration.Validate if the designated constraints aren't met. +type ScopedRouteConfigurationValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ScopedRouteConfigurationValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ScopedRouteConfigurationValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ScopedRouteConfigurationValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ScopedRouteConfigurationValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ScopedRouteConfigurationValidationError) ErrorName() string { + return "ScopedRouteConfigurationValidationError" +} + +// Error satisfies the builtin error interface +func (e ScopedRouteConfigurationValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sScopedRouteConfiguration.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ScopedRouteConfigurationValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ScopedRouteConfigurationValidationError{} + +// Validate checks the field values on ScopedRouteConfiguration_Key with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *ScopedRouteConfiguration_Key) Validate() error { + if m == nil { + return nil + } + + if len(m.GetFragments()) < 1 { + return ScopedRouteConfiguration_KeyValidationError{ + field: "Fragments", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetFragments() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ScopedRouteConfiguration_KeyValidationError{ + field: fmt.Sprintf("Fragments[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// ScopedRouteConfiguration_KeyValidationError is the validation error returned +// by ScopedRouteConfiguration_Key.Validate if the designated constraints +// aren't met. +type ScopedRouteConfiguration_KeyValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ScopedRouteConfiguration_KeyValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ScopedRouteConfiguration_KeyValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ScopedRouteConfiguration_KeyValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ScopedRouteConfiguration_KeyValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ScopedRouteConfiguration_KeyValidationError) ErrorName() string { + return "ScopedRouteConfiguration_KeyValidationError" +} + +// Error satisfies the builtin error interface +func (e ScopedRouteConfiguration_KeyValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sScopedRouteConfiguration_Key.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ScopedRouteConfiguration_KeyValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ScopedRouteConfiguration_KeyValidationError{} + +// Validate checks the field values on ScopedRouteConfiguration_Key_Fragment +// with the rules defined in the proto definition for this message. If any +// rules are violated, an error is returned. +func (m *ScopedRouteConfiguration_Key_Fragment) Validate() error { + if m == nil { + return nil + } + + switch m.Type.(type) { + + case *ScopedRouteConfiguration_Key_Fragment_StringKey: + // no validation rules for StringKey + + default: + return ScopedRouteConfiguration_Key_FragmentValidationError{ + field: "Type", + reason: "value is required", + } + + } + + return nil +} + +// ScopedRouteConfiguration_Key_FragmentValidationError is the validation error +// returned by ScopedRouteConfiguration_Key_Fragment.Validate if the +// designated constraints aren't met. +type ScopedRouteConfiguration_Key_FragmentValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ScopedRouteConfiguration_Key_FragmentValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ScopedRouteConfiguration_Key_FragmentValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ScopedRouteConfiguration_Key_FragmentValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ScopedRouteConfiguration_Key_FragmentValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ScopedRouteConfiguration_Key_FragmentValidationError) ErrorName() string { + return "ScopedRouteConfiguration_Key_FragmentValidationError" +} + +// Error satisfies the builtin error interface +func (e ScopedRouteConfiguration_Key_FragmentValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sScopedRouteConfiguration_Key_Fragment.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ScopedRouteConfiguration_Key_FragmentValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ScopedRouteConfiguration_Key_FragmentValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/trace/v3/trace.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/trace/v3/trace.pb.go new file mode 100644 index 000000000..6acd956f7 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/trace/v3/trace.pb.go @@ -0,0 +1,749 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/trace/v3/trace.proto + +package envoy_config_trace_v3 + +import ( + fmt "fmt" + v1 "github.com/census-instrumentation/opencensus-proto/gen-go/trace/v1" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/go-control-plane/envoy/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + any "github.com/golang/protobuf/ptypes/any" + _struct "github.com/golang/protobuf/ptypes/struct" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type LightstepConfig_PropagationMode int32 + +const ( + LightstepConfig_ENVOY LightstepConfig_PropagationMode = 0 + LightstepConfig_LIGHTSTEP LightstepConfig_PropagationMode = 1 + LightstepConfig_B3 LightstepConfig_PropagationMode = 2 + LightstepConfig_TRACE_CONTEXT LightstepConfig_PropagationMode = 3 +) + +var LightstepConfig_PropagationMode_name = map[int32]string{ + 0: "ENVOY", + 1: "LIGHTSTEP", + 2: "B3", + 3: "TRACE_CONTEXT", +} + +var LightstepConfig_PropagationMode_value = map[string]int32{ + "ENVOY": 0, + "LIGHTSTEP": 1, + "B3": 2, + "TRACE_CONTEXT": 3, +} + +func (x LightstepConfig_PropagationMode) String() string { + return proto.EnumName(LightstepConfig_PropagationMode_name, int32(x)) +} + +func (LightstepConfig_PropagationMode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_a8ab8dce64ff7a05, []int{1, 0} +} + +type ZipkinConfig_CollectorEndpointVersion int32 + +const ( + ZipkinConfig_hidden_envoy_deprecated_HTTP_JSON_V1 ZipkinConfig_CollectorEndpointVersion = 0 // Deprecated: Do not use. + ZipkinConfig_HTTP_JSON ZipkinConfig_CollectorEndpointVersion = 1 + ZipkinConfig_HTTP_PROTO ZipkinConfig_CollectorEndpointVersion = 2 + ZipkinConfig_GRPC ZipkinConfig_CollectorEndpointVersion = 3 +) + +var ZipkinConfig_CollectorEndpointVersion_name = map[int32]string{ + 0: "hidden_envoy_deprecated_HTTP_JSON_V1", + 1: "HTTP_JSON", + 2: "HTTP_PROTO", + 3: "GRPC", +} + +var ZipkinConfig_CollectorEndpointVersion_value = map[string]int32{ + "hidden_envoy_deprecated_HTTP_JSON_V1": 0, + "HTTP_JSON": 1, + "HTTP_PROTO": 2, + "GRPC": 3, +} + +func (x ZipkinConfig_CollectorEndpointVersion) String() string { + return proto.EnumName(ZipkinConfig_CollectorEndpointVersion_name, int32(x)) +} + +func (ZipkinConfig_CollectorEndpointVersion) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_a8ab8dce64ff7a05, []int{2, 0} +} + +type OpenCensusConfig_TraceContext int32 + +const ( + OpenCensusConfig_NONE OpenCensusConfig_TraceContext = 0 + OpenCensusConfig_TRACE_CONTEXT OpenCensusConfig_TraceContext = 1 + OpenCensusConfig_GRPC_TRACE_BIN OpenCensusConfig_TraceContext = 2 + OpenCensusConfig_CLOUD_TRACE_CONTEXT OpenCensusConfig_TraceContext = 3 + OpenCensusConfig_B3 OpenCensusConfig_TraceContext = 4 +) + +var OpenCensusConfig_TraceContext_name = map[int32]string{ + 0: "NONE", + 1: "TRACE_CONTEXT", + 2: "GRPC_TRACE_BIN", + 3: "CLOUD_TRACE_CONTEXT", + 4: "B3", +} + +var OpenCensusConfig_TraceContext_value = map[string]int32{ + "NONE": 0, + "TRACE_CONTEXT": 1, + "GRPC_TRACE_BIN": 2, + "CLOUD_TRACE_CONTEXT": 3, + "B3": 4, +} + +func (x OpenCensusConfig_TraceContext) String() string { + return proto.EnumName(OpenCensusConfig_TraceContext_name, int32(x)) +} + +func (OpenCensusConfig_TraceContext) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_a8ab8dce64ff7a05, []int{5, 0} +} + +type Tracing struct { + Http *Tracing_Http `protobuf:"bytes,1,opt,name=http,proto3" json:"http,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Tracing) Reset() { *m = Tracing{} } +func (m *Tracing) String() string { return proto.CompactTextString(m) } +func (*Tracing) ProtoMessage() {} +func (*Tracing) Descriptor() ([]byte, []int) { + return fileDescriptor_a8ab8dce64ff7a05, []int{0} +} + +func (m *Tracing) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Tracing.Unmarshal(m, b) +} +func (m *Tracing) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Tracing.Marshal(b, m, deterministic) +} +func (m *Tracing) XXX_Merge(src proto.Message) { + xxx_messageInfo_Tracing.Merge(m, src) +} +func (m *Tracing) XXX_Size() int { + return xxx_messageInfo_Tracing.Size(m) +} +func (m *Tracing) XXX_DiscardUnknown() { + xxx_messageInfo_Tracing.DiscardUnknown(m) +} + +var xxx_messageInfo_Tracing proto.InternalMessageInfo + +func (m *Tracing) GetHttp() *Tracing_Http { + if m != nil { + return m.Http + } + return nil +} + +type Tracing_Http struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Types that are valid to be assigned to ConfigType: + // *Tracing_Http_HiddenEnvoyDeprecatedConfig + // *Tracing_Http_TypedConfig + ConfigType isTracing_Http_ConfigType `protobuf_oneof:"config_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Tracing_Http) Reset() { *m = Tracing_Http{} } +func (m *Tracing_Http) String() string { return proto.CompactTextString(m) } +func (*Tracing_Http) ProtoMessage() {} +func (*Tracing_Http) Descriptor() ([]byte, []int) { + return fileDescriptor_a8ab8dce64ff7a05, []int{0, 0} +} + +func (m *Tracing_Http) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Tracing_Http.Unmarshal(m, b) +} +func (m *Tracing_Http) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Tracing_Http.Marshal(b, m, deterministic) +} +func (m *Tracing_Http) XXX_Merge(src proto.Message) { + xxx_messageInfo_Tracing_Http.Merge(m, src) +} +func (m *Tracing_Http) XXX_Size() int { + return xxx_messageInfo_Tracing_Http.Size(m) +} +func (m *Tracing_Http) XXX_DiscardUnknown() { + xxx_messageInfo_Tracing_Http.DiscardUnknown(m) +} + +var xxx_messageInfo_Tracing_Http proto.InternalMessageInfo + +func (m *Tracing_Http) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type isTracing_Http_ConfigType interface { + isTracing_Http_ConfigType() +} + +type Tracing_Http_HiddenEnvoyDeprecatedConfig struct { + HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"` +} + +type Tracing_Http_TypedConfig struct { + TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"` +} + +func (*Tracing_Http_HiddenEnvoyDeprecatedConfig) isTracing_Http_ConfigType() {} + +func (*Tracing_Http_TypedConfig) isTracing_Http_ConfigType() {} + +func (m *Tracing_Http) GetConfigType() isTracing_Http_ConfigType { + if m != nil { + return m.ConfigType + } + return nil +} + +// Deprecated: Do not use. +func (m *Tracing_Http) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct { + if x, ok := m.GetConfigType().(*Tracing_Http_HiddenEnvoyDeprecatedConfig); ok { + return x.HiddenEnvoyDeprecatedConfig + } + return nil +} + +func (m *Tracing_Http) GetTypedConfig() *any.Any { + if x, ok := m.GetConfigType().(*Tracing_Http_TypedConfig); ok { + return x.TypedConfig + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Tracing_Http) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*Tracing_Http_HiddenEnvoyDeprecatedConfig)(nil), + (*Tracing_Http_TypedConfig)(nil), + } +} + +type LightstepConfig struct { + CollectorCluster string `protobuf:"bytes,1,opt,name=collector_cluster,json=collectorCluster,proto3" json:"collector_cluster,omitempty"` + AccessTokenFile string `protobuf:"bytes,2,opt,name=access_token_file,json=accessTokenFile,proto3" json:"access_token_file,omitempty"` + PropagationModes []LightstepConfig_PropagationMode `protobuf:"varint,3,rep,packed,name=propagation_modes,json=propagationModes,proto3,enum=envoy.config.trace.v3.LightstepConfig_PropagationMode" json:"propagation_modes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LightstepConfig) Reset() { *m = LightstepConfig{} } +func (m *LightstepConfig) String() string { return proto.CompactTextString(m) } +func (*LightstepConfig) ProtoMessage() {} +func (*LightstepConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_a8ab8dce64ff7a05, []int{1} +} + +func (m *LightstepConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LightstepConfig.Unmarshal(m, b) +} +func (m *LightstepConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LightstepConfig.Marshal(b, m, deterministic) +} +func (m *LightstepConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_LightstepConfig.Merge(m, src) +} +func (m *LightstepConfig) XXX_Size() int { + return xxx_messageInfo_LightstepConfig.Size(m) +} +func (m *LightstepConfig) XXX_DiscardUnknown() { + xxx_messageInfo_LightstepConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_LightstepConfig proto.InternalMessageInfo + +func (m *LightstepConfig) GetCollectorCluster() string { + if m != nil { + return m.CollectorCluster + } + return "" +} + +func (m *LightstepConfig) GetAccessTokenFile() string { + if m != nil { + return m.AccessTokenFile + } + return "" +} + +func (m *LightstepConfig) GetPropagationModes() []LightstepConfig_PropagationMode { + if m != nil { + return m.PropagationModes + } + return nil +} + +type ZipkinConfig struct { + CollectorCluster string `protobuf:"bytes,1,opt,name=collector_cluster,json=collectorCluster,proto3" json:"collector_cluster,omitempty"` + CollectorEndpoint string `protobuf:"bytes,2,opt,name=collector_endpoint,json=collectorEndpoint,proto3" json:"collector_endpoint,omitempty"` + TraceId_128Bit bool `protobuf:"varint,3,opt,name=trace_id_128bit,json=traceId128bit,proto3" json:"trace_id_128bit,omitempty"` + SharedSpanContext *wrappers.BoolValue `protobuf:"bytes,4,opt,name=shared_span_context,json=sharedSpanContext,proto3" json:"shared_span_context,omitempty"` + CollectorEndpointVersion ZipkinConfig_CollectorEndpointVersion `protobuf:"varint,5,opt,name=collector_endpoint_version,json=collectorEndpointVersion,proto3,enum=envoy.config.trace.v3.ZipkinConfig_CollectorEndpointVersion" json:"collector_endpoint_version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ZipkinConfig) Reset() { *m = ZipkinConfig{} } +func (m *ZipkinConfig) String() string { return proto.CompactTextString(m) } +func (*ZipkinConfig) ProtoMessage() {} +func (*ZipkinConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_a8ab8dce64ff7a05, []int{2} +} + +func (m *ZipkinConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ZipkinConfig.Unmarshal(m, b) +} +func (m *ZipkinConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ZipkinConfig.Marshal(b, m, deterministic) +} +func (m *ZipkinConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_ZipkinConfig.Merge(m, src) +} +func (m *ZipkinConfig) XXX_Size() int { + return xxx_messageInfo_ZipkinConfig.Size(m) +} +func (m *ZipkinConfig) XXX_DiscardUnknown() { + xxx_messageInfo_ZipkinConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_ZipkinConfig proto.InternalMessageInfo + +func (m *ZipkinConfig) GetCollectorCluster() string { + if m != nil { + return m.CollectorCluster + } + return "" +} + +func (m *ZipkinConfig) GetCollectorEndpoint() string { + if m != nil { + return m.CollectorEndpoint + } + return "" +} + +func (m *ZipkinConfig) GetTraceId_128Bit() bool { + if m != nil { + return m.TraceId_128Bit + } + return false +} + +func (m *ZipkinConfig) GetSharedSpanContext() *wrappers.BoolValue { + if m != nil { + return m.SharedSpanContext + } + return nil +} + +func (m *ZipkinConfig) GetCollectorEndpointVersion() ZipkinConfig_CollectorEndpointVersion { + if m != nil { + return m.CollectorEndpointVersion + } + return ZipkinConfig_hidden_envoy_deprecated_HTTP_JSON_V1 +} + +type DynamicOtConfig struct { + Library string `protobuf:"bytes,1,opt,name=library,proto3" json:"library,omitempty"` + Config *_struct.Struct `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DynamicOtConfig) Reset() { *m = DynamicOtConfig{} } +func (m *DynamicOtConfig) String() string { return proto.CompactTextString(m) } +func (*DynamicOtConfig) ProtoMessage() {} +func (*DynamicOtConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_a8ab8dce64ff7a05, []int{3} +} + +func (m *DynamicOtConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DynamicOtConfig.Unmarshal(m, b) +} +func (m *DynamicOtConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DynamicOtConfig.Marshal(b, m, deterministic) +} +func (m *DynamicOtConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_DynamicOtConfig.Merge(m, src) +} +func (m *DynamicOtConfig) XXX_Size() int { + return xxx_messageInfo_DynamicOtConfig.Size(m) +} +func (m *DynamicOtConfig) XXX_DiscardUnknown() { + xxx_messageInfo_DynamicOtConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_DynamicOtConfig proto.InternalMessageInfo + +func (m *DynamicOtConfig) GetLibrary() string { + if m != nil { + return m.Library + } + return "" +} + +func (m *DynamicOtConfig) GetConfig() *_struct.Struct { + if m != nil { + return m.Config + } + return nil +} + +type DatadogConfig struct { + CollectorCluster string `protobuf:"bytes,1,opt,name=collector_cluster,json=collectorCluster,proto3" json:"collector_cluster,omitempty"` + ServiceName string `protobuf:"bytes,2,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DatadogConfig) Reset() { *m = DatadogConfig{} } +func (m *DatadogConfig) String() string { return proto.CompactTextString(m) } +func (*DatadogConfig) ProtoMessage() {} +func (*DatadogConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_a8ab8dce64ff7a05, []int{4} +} + +func (m *DatadogConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DatadogConfig.Unmarshal(m, b) +} +func (m *DatadogConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DatadogConfig.Marshal(b, m, deterministic) +} +func (m *DatadogConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_DatadogConfig.Merge(m, src) +} +func (m *DatadogConfig) XXX_Size() int { + return xxx_messageInfo_DatadogConfig.Size(m) +} +func (m *DatadogConfig) XXX_DiscardUnknown() { + xxx_messageInfo_DatadogConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_DatadogConfig proto.InternalMessageInfo + +func (m *DatadogConfig) GetCollectorCluster() string { + if m != nil { + return m.CollectorCluster + } + return "" +} + +func (m *DatadogConfig) GetServiceName() string { + if m != nil { + return m.ServiceName + } + return "" +} + +type OpenCensusConfig struct { + TraceConfig *v1.TraceConfig `protobuf:"bytes,1,opt,name=trace_config,json=traceConfig,proto3" json:"trace_config,omitempty"` + StdoutExporterEnabled bool `protobuf:"varint,2,opt,name=stdout_exporter_enabled,json=stdoutExporterEnabled,proto3" json:"stdout_exporter_enabled,omitempty"` + StackdriverExporterEnabled bool `protobuf:"varint,3,opt,name=stackdriver_exporter_enabled,json=stackdriverExporterEnabled,proto3" json:"stackdriver_exporter_enabled,omitempty"` + StackdriverProjectId string `protobuf:"bytes,4,opt,name=stackdriver_project_id,json=stackdriverProjectId,proto3" json:"stackdriver_project_id,omitempty"` + StackdriverAddress string `protobuf:"bytes,10,opt,name=stackdriver_address,json=stackdriverAddress,proto3" json:"stackdriver_address,omitempty"` + StackdriverGrpcService *v3.GrpcService `protobuf:"bytes,13,opt,name=stackdriver_grpc_service,json=stackdriverGrpcService,proto3" json:"stackdriver_grpc_service,omitempty"` + ZipkinExporterEnabled bool `protobuf:"varint,5,opt,name=zipkin_exporter_enabled,json=zipkinExporterEnabled,proto3" json:"zipkin_exporter_enabled,omitempty"` + ZipkinUrl string `protobuf:"bytes,6,opt,name=zipkin_url,json=zipkinUrl,proto3" json:"zipkin_url,omitempty"` + OcagentExporterEnabled bool `protobuf:"varint,11,opt,name=ocagent_exporter_enabled,json=ocagentExporterEnabled,proto3" json:"ocagent_exporter_enabled,omitempty"` + OcagentAddress string `protobuf:"bytes,12,opt,name=ocagent_address,json=ocagentAddress,proto3" json:"ocagent_address,omitempty"` + OcagentGrpcService *v3.GrpcService `protobuf:"bytes,14,opt,name=ocagent_grpc_service,json=ocagentGrpcService,proto3" json:"ocagent_grpc_service,omitempty"` + IncomingTraceContext []OpenCensusConfig_TraceContext `protobuf:"varint,8,rep,packed,name=incoming_trace_context,json=incomingTraceContext,proto3,enum=envoy.config.trace.v3.OpenCensusConfig_TraceContext" json:"incoming_trace_context,omitempty"` + OutgoingTraceContext []OpenCensusConfig_TraceContext `protobuf:"varint,9,rep,packed,name=outgoing_trace_context,json=outgoingTraceContext,proto3,enum=envoy.config.trace.v3.OpenCensusConfig_TraceContext" json:"outgoing_trace_context,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *OpenCensusConfig) Reset() { *m = OpenCensusConfig{} } +func (m *OpenCensusConfig) String() string { return proto.CompactTextString(m) } +func (*OpenCensusConfig) ProtoMessage() {} +func (*OpenCensusConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_a8ab8dce64ff7a05, []int{5} +} + +func (m *OpenCensusConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OpenCensusConfig.Unmarshal(m, b) +} +func (m *OpenCensusConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OpenCensusConfig.Marshal(b, m, deterministic) +} +func (m *OpenCensusConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_OpenCensusConfig.Merge(m, src) +} +func (m *OpenCensusConfig) XXX_Size() int { + return xxx_messageInfo_OpenCensusConfig.Size(m) +} +func (m *OpenCensusConfig) XXX_DiscardUnknown() { + xxx_messageInfo_OpenCensusConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_OpenCensusConfig proto.InternalMessageInfo + +func (m *OpenCensusConfig) GetTraceConfig() *v1.TraceConfig { + if m != nil { + return m.TraceConfig + } + return nil +} + +func (m *OpenCensusConfig) GetStdoutExporterEnabled() bool { + if m != nil { + return m.StdoutExporterEnabled + } + return false +} + +func (m *OpenCensusConfig) GetStackdriverExporterEnabled() bool { + if m != nil { + return m.StackdriverExporterEnabled + } + return false +} + +func (m *OpenCensusConfig) GetStackdriverProjectId() string { + if m != nil { + return m.StackdriverProjectId + } + return "" +} + +func (m *OpenCensusConfig) GetStackdriverAddress() string { + if m != nil { + return m.StackdriverAddress + } + return "" +} + +func (m *OpenCensusConfig) GetStackdriverGrpcService() *v3.GrpcService { + if m != nil { + return m.StackdriverGrpcService + } + return nil +} + +func (m *OpenCensusConfig) GetZipkinExporterEnabled() bool { + if m != nil { + return m.ZipkinExporterEnabled + } + return false +} + +func (m *OpenCensusConfig) GetZipkinUrl() string { + if m != nil { + return m.ZipkinUrl + } + return "" +} + +func (m *OpenCensusConfig) GetOcagentExporterEnabled() bool { + if m != nil { + return m.OcagentExporterEnabled + } + return false +} + +func (m *OpenCensusConfig) GetOcagentAddress() string { + if m != nil { + return m.OcagentAddress + } + return "" +} + +func (m *OpenCensusConfig) GetOcagentGrpcService() *v3.GrpcService { + if m != nil { + return m.OcagentGrpcService + } + return nil +} + +func (m *OpenCensusConfig) GetIncomingTraceContext() []OpenCensusConfig_TraceContext { + if m != nil { + return m.IncomingTraceContext + } + return nil +} + +func (m *OpenCensusConfig) GetOutgoingTraceContext() []OpenCensusConfig_TraceContext { + if m != nil { + return m.OutgoingTraceContext + } + return nil +} + +type TraceServiceConfig struct { + GrpcService *v3.GrpcService `protobuf:"bytes,1,opt,name=grpc_service,json=grpcService,proto3" json:"grpc_service,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TraceServiceConfig) Reset() { *m = TraceServiceConfig{} } +func (m *TraceServiceConfig) String() string { return proto.CompactTextString(m) } +func (*TraceServiceConfig) ProtoMessage() {} +func (*TraceServiceConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_a8ab8dce64ff7a05, []int{6} +} + +func (m *TraceServiceConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TraceServiceConfig.Unmarshal(m, b) +} +func (m *TraceServiceConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TraceServiceConfig.Marshal(b, m, deterministic) +} +func (m *TraceServiceConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_TraceServiceConfig.Merge(m, src) +} +func (m *TraceServiceConfig) XXX_Size() int { + return xxx_messageInfo_TraceServiceConfig.Size(m) +} +func (m *TraceServiceConfig) XXX_DiscardUnknown() { + xxx_messageInfo_TraceServiceConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_TraceServiceConfig proto.InternalMessageInfo + +func (m *TraceServiceConfig) GetGrpcService() *v3.GrpcService { + if m != nil { + return m.GrpcService + } + return nil +} + +func init() { + proto.RegisterEnum("envoy.config.trace.v3.LightstepConfig_PropagationMode", LightstepConfig_PropagationMode_name, LightstepConfig_PropagationMode_value) + proto.RegisterEnum("envoy.config.trace.v3.ZipkinConfig_CollectorEndpointVersion", ZipkinConfig_CollectorEndpointVersion_name, ZipkinConfig_CollectorEndpointVersion_value) + proto.RegisterEnum("envoy.config.trace.v3.OpenCensusConfig_TraceContext", OpenCensusConfig_TraceContext_name, OpenCensusConfig_TraceContext_value) + proto.RegisterType((*Tracing)(nil), "envoy.config.trace.v3.Tracing") + proto.RegisterType((*Tracing_Http)(nil), "envoy.config.trace.v3.Tracing.Http") + proto.RegisterType((*LightstepConfig)(nil), "envoy.config.trace.v3.LightstepConfig") + proto.RegisterType((*ZipkinConfig)(nil), "envoy.config.trace.v3.ZipkinConfig") + proto.RegisterType((*DynamicOtConfig)(nil), "envoy.config.trace.v3.DynamicOtConfig") + proto.RegisterType((*DatadogConfig)(nil), "envoy.config.trace.v3.DatadogConfig") + proto.RegisterType((*OpenCensusConfig)(nil), "envoy.config.trace.v3.OpenCensusConfig") + proto.RegisterType((*TraceServiceConfig)(nil), "envoy.config.trace.v3.TraceServiceConfig") +} + +func init() { proto.RegisterFile("envoy/config/trace/v3/trace.proto", fileDescriptor_a8ab8dce64ff7a05) } + +var fileDescriptor_a8ab8dce64ff7a05 = []byte{ + // 1302 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x4d, 0x6f, 0xdb, 0xc6, + 0x16, 0x35, 0x69, 0xd9, 0x96, 0xaf, 0x24, 0x9b, 0x9e, 0x38, 0x31, 0x9f, 0xf2, 0xf1, 0x6c, 0x39, + 0x1f, 0x7e, 0x41, 0x9e, 0x04, 0xdb, 0x41, 0x5e, 0x9e, 0xdb, 0x45, 0x43, 0x59, 0x89, 0x1d, 0xa4, + 0x92, 0x40, 0x2b, 0x46, 0x3f, 0x16, 0xec, 0x98, 0x9c, 0xc8, 0x4c, 0x68, 0x0e, 0x31, 0x1c, 0x29, + 0x51, 0x56, 0x45, 0x57, 0x45, 0xbb, 0x29, 0x5a, 0x74, 0xd1, 0x02, 0xdd, 0xf7, 0x07, 0x74, 0xd5, + 0x7d, 0x81, 0x6e, 0xfb, 0x27, 0xda, 0x9f, 0x50, 0x20, 0xe8, 0xa2, 0xe0, 0x0c, 0x69, 0x51, 0x94, + 0xd5, 0x04, 0xc8, 0x8e, 0xbc, 0xe7, 0x9e, 0x33, 0x77, 0x0e, 0xef, 0xdc, 0x21, 0xac, 0x11, 0xbf, + 0x4f, 0x07, 0x35, 0x9b, 0xfa, 0x4f, 0xdc, 0x6e, 0x8d, 0x33, 0x6c, 0x93, 0x5a, 0x7f, 0x5b, 0x3e, + 0x54, 0x03, 0x46, 0x39, 0x45, 0xe7, 0x45, 0x4a, 0x55, 0xa6, 0x54, 0x25, 0xd2, 0xdf, 0x2e, 0xdf, + 0x18, 0x61, 0xda, 0x94, 0x09, 0x62, 0x97, 0x05, 0xb6, 0x15, 0x12, 0xd6, 0x77, 0x13, 0x7e, 0xf9, + 0x5f, 0x5d, 0x4a, 0xbb, 0x1e, 0xa9, 0x89, 0xb7, 0xa3, 0xde, 0x93, 0x1a, 0xf6, 0x07, 0x31, 0x74, + 0x29, 0x0b, 0x85, 0x9c, 0xf5, 0x6c, 0x1e, 0xa3, 0x57, 0xb2, 0xe8, 0x73, 0x86, 0x83, 0x80, 0xb0, + 0x30, 0xc6, 0x6f, 0xd1, 0x80, 0xf8, 0x36, 0xf1, 0xc3, 0x5e, 0x28, 0x73, 0x92, 0xfa, 0x37, 0xe5, + 0x83, 0x15, 0x97, 0x2c, 0xb3, 0xd7, 0x65, 0xbd, 0xd8, 0xf7, 0x29, 0xc7, 0xdc, 0xa5, 0x7e, 0x58, + 0x73, 0x48, 0xc0, 0x88, 0x2d, 0x5e, 0xe2, 0xa4, 0xcb, 0x3d, 0x27, 0xc0, 0x23, 0x39, 0x21, 0xc7, + 0xbc, 0x97, 0xac, 0xb8, 0x36, 0x06, 0xf7, 0x09, 0x0b, 0x5d, 0xea, 0xbb, 0x7e, 0xb2, 0xcc, 0x4a, + 0x1f, 0x7b, 0xae, 0x83, 0x39, 0xa9, 0x25, 0x0f, 0x12, 0xa8, 0xfc, 0xa1, 0xc2, 0x5c, 0x87, 0x61, + 0xdb, 0xf5, 0xbb, 0xe8, 0x7f, 0x90, 0x3b, 0xe6, 0x3c, 0xd0, 0x95, 0x55, 0x65, 0xa3, 0xb0, 0xb5, + 0x5e, 0x3d, 0xd3, 0xe1, 0x6a, 0x9c, 0x5d, 0xdd, 0xe3, 0x3c, 0x30, 0x05, 0xa1, 0xfc, 0x97, 0x02, + 0xb9, 0xe8, 0x15, 0x5d, 0x84, 0x9c, 0x8f, 0x4f, 0x88, 0x50, 0x98, 0x37, 0xe6, 0x5e, 0x19, 0x39, + 0xa6, 0xae, 0x2a, 0xa6, 0x08, 0xa2, 0x23, 0xb8, 0x72, 0xec, 0x3a, 0x0e, 0xf1, 0x2d, 0x21, 0x6c, + 0x25, 0xfb, 0x24, 0x4e, 0x6c, 0x89, 0xae, 0x8a, 0x85, 0x57, 0xaa, 0xd2, 0xe1, 0x6a, 0xe2, 0x70, + 0xf5, 0x40, 0xf8, 0x6f, 0xa8, 0xba, 0xb2, 0x37, 0x65, 0x5e, 0x94, 0x22, 0x8d, 0x48, 0x63, 0xf7, + 0x54, 0xa2, 0x2e, 0x14, 0xd0, 0xff, 0xa1, 0xc8, 0x07, 0xc1, 0x50, 0x71, 0x5a, 0x28, 0x2e, 0x8f, + 0x29, 0xde, 0xf3, 0x07, 0x7b, 0x53, 0x66, 0x41, 0xe4, 0x4a, 0xea, 0xce, 0x7f, 0xbe, 0xff, 0xe5, + 0xf3, 0x2b, 0x57, 0xa1, 0x72, 0xd6, 0xae, 0xb7, 0x46, 0x76, 0x6d, 0x94, 0xa0, 0x20, 0x71, 0x2b, + 0x12, 0xd8, 0xb9, 0x1a, 0x31, 0xff, 0x0d, 0x97, 0xff, 0x91, 0x59, 0xf9, 0x5d, 0x85, 0xc5, 0x47, + 0x6e, 0xf7, 0x98, 0x87, 0x9c, 0x04, 0x71, 0xb9, 0xb7, 0x61, 0xc9, 0xa6, 0x9e, 0x47, 0x6c, 0x4e, + 0x99, 0x65, 0x7b, 0xbd, 0x90, 0x13, 0x96, 0x35, 0x4f, 0x3b, 0xcd, 0xa8, 0xcb, 0x04, 0xb4, 0x0d, + 0x4b, 0xd8, 0xb6, 0x49, 0x18, 0x5a, 0x9c, 0x3e, 0x23, 0xbe, 0xf5, 0xc4, 0xf5, 0x88, 0xf0, 0x2e, + 0xc5, 0x5a, 0x94, 0x19, 0x9d, 0x28, 0xe1, 0xbe, 0xeb, 0x11, 0xc4, 0x60, 0x29, 0x60, 0x34, 0xc0, + 0x5d, 0xd1, 0x22, 0xd6, 0x09, 0x75, 0x48, 0xa8, 0x4f, 0xaf, 0x4e, 0x6f, 0x2c, 0x6c, 0xdd, 0x99, + 0xf0, 0xa5, 0x33, 0xd5, 0x56, 0xdb, 0x43, 0xfe, 0xfb, 0xd4, 0x21, 0x46, 0xe9, 0x95, 0x01, 0x5f, + 0x2b, 0x73, 0x95, 0x99, 0xcf, 0x14, 0x55, 0x53, 0x4c, 0x2d, 0x18, 0xc5, 0xc3, 0xca, 0x7d, 0x58, + 0xcc, 0x70, 0xd0, 0x3c, 0xcc, 0x34, 0x9a, 0x87, 0xad, 0x0f, 0xb5, 0x29, 0x54, 0x82, 0xf9, 0x47, + 0xfb, 0x0f, 0xf6, 0x3a, 0x07, 0x9d, 0x46, 0x5b, 0x53, 0xd0, 0x2c, 0xa8, 0xc6, 0xb6, 0xa6, 0xa2, + 0x25, 0x28, 0x75, 0xcc, 0x7b, 0xf5, 0x86, 0x55, 0x6f, 0x35, 0x3b, 0x8d, 0x0f, 0x3a, 0xda, 0xf4, + 0xce, 0xad, 0xc8, 0xe0, 0x1b, 0x70, 0xed, 0x6c, 0x83, 0x33, 0x65, 0x56, 0xbe, 0xca, 0x41, 0xf1, + 0x23, 0x37, 0x78, 0xe6, 0xfa, 0x6f, 0xe5, 0xf2, 0x1d, 0x40, 0x43, 0x16, 0xf1, 0x9d, 0x80, 0xba, + 0x3e, 0xcf, 0xda, 0x3c, 0x14, 0x6e, 0xc4, 0x19, 0xe8, 0x3a, 0x2c, 0xca, 0x73, 0xee, 0x3a, 0xd6, + 0xe6, 0xd6, 0xdd, 0x23, 0x97, 0x8b, 0x2e, 0xcc, 0x9b, 0x25, 0x11, 0xde, 0x77, 0x64, 0x10, 0x3d, + 0x84, 0x73, 0xe1, 0x31, 0x66, 0xc4, 0xb1, 0xc2, 0x00, 0xfb, 0x51, 0xc3, 0x72, 0xf2, 0x82, 0xeb, + 0x39, 0xd1, 0xb1, 0xe5, 0xb1, 0x8e, 0x35, 0x28, 0xf5, 0x0e, 0xb1, 0xd7, 0x23, 0xe6, 0x92, 0xa4, + 0x1d, 0x04, 0x38, 0xda, 0x60, 0x44, 0x42, 0x2f, 0xa1, 0x3c, 0x5e, 0xab, 0x15, 0x4f, 0x01, 0x7d, + 0x66, 0x55, 0xd9, 0x58, 0xd8, 0x7a, 0x77, 0xc2, 0x57, 0x4e, 0x5b, 0x55, 0xad, 0x67, 0xb7, 0x73, + 0x28, 0x35, 0x4c, 0xdd, 0x9e, 0x80, 0x54, 0x9e, 0x83, 0x3e, 0x89, 0x85, 0xb6, 0xe0, 0xea, 0xa4, + 0x23, 0xbf, 0xd7, 0xe9, 0xb4, 0xad, 0x87, 0x07, 0xad, 0xa6, 0x75, 0xb8, 0xa9, 0x4d, 0x95, 0xf3, + 0x3f, 0xfe, 0xf9, 0xd3, 0x97, 0xaa, 0x92, 0x57, 0xa2, 0xb6, 0x38, 0xc5, 0x34, 0x05, 0x2d, 0x00, + 0x88, 0xd7, 0xb6, 0xd9, 0xea, 0xb4, 0x34, 0x15, 0xe5, 0x21, 0xf7, 0xc0, 0x6c, 0xd7, 0xb5, 0xe9, + 0xd7, 0x1c, 0xd8, 0xf4, 0xb6, 0x2a, 0xdf, 0x28, 0xb0, 0xb8, 0x3b, 0xf0, 0xf1, 0x89, 0x6b, 0xb7, + 0x78, 0xdc, 0x15, 0x6b, 0x30, 0xe7, 0xb9, 0x47, 0x0c, 0xb3, 0x41, 0xb6, 0x17, 0x92, 0x38, 0xaa, + 0xc1, 0xec, 0x1b, 0x4d, 0x26, 0x33, 0x4e, 0x7b, 0x4d, 0xa3, 0x66, 0x2a, 0xa8, 0xfc, 0xa0, 0x40, + 0x69, 0x17, 0x73, 0xec, 0xd0, 0xee, 0x5b, 0x75, 0xea, 0x4d, 0x28, 0xc6, 0x77, 0x9b, 0x25, 0xa6, + 0x6f, 0xa6, 0x47, 0x0b, 0x31, 0xd8, 0xc4, 0x27, 0x64, 0xe7, 0x66, 0x54, 0xe1, 0x35, 0x58, 0x9f, + 0x50, 0x61, 0xba, 0x9a, 0xca, 0x77, 0x79, 0xd0, 0x5a, 0x01, 0xf1, 0xeb, 0xe2, 0x32, 0x8b, 0x4b, + 0xdc, 0x87, 0x62, 0xfa, 0x1a, 0x8b, 0x2f, 0x8b, 0xeb, 0xd5, 0xe1, 0xad, 0x27, 0xdd, 0x49, 0x44, + 0x37, 0xc5, 0x00, 0x24, 0x92, 0x6d, 0x16, 0xf8, 0xf0, 0x05, 0xdd, 0x81, 0x95, 0x90, 0x3b, 0xb4, + 0xc7, 0x2d, 0xf2, 0x22, 0xa0, 0x8c, 0x93, 0xa8, 0x77, 0xf1, 0x91, 0x47, 0x1c, 0xb1, 0x85, 0xbc, + 0x79, 0x5e, 0xc2, 0x8d, 0x18, 0x6d, 0x48, 0x10, 0xbd, 0x07, 0x97, 0x42, 0x8e, 0xed, 0x67, 0x0e, + 0x73, 0xfb, 0x11, 0x27, 0x4b, 0x96, 0xc7, 0xad, 0x9c, 0xca, 0xc9, 0x2a, 0xdc, 0x86, 0x0b, 0x69, + 0x85, 0x80, 0xd1, 0xa7, 0xc4, 0xe6, 0x96, 0xeb, 0x88, 0xe3, 0x37, 0x6f, 0x2e, 0xa7, 0xd0, 0xb6, + 0x04, 0xf7, 0x1d, 0x54, 0x83, 0x73, 0x69, 0x16, 0x76, 0x1c, 0x46, 0xc2, 0x50, 0x07, 0x41, 0x41, + 0x29, 0xe8, 0x9e, 0x44, 0xd0, 0xc7, 0xa0, 0xa7, 0x09, 0xe9, 0xbf, 0x10, 0xbd, 0x24, 0x7c, 0x5b, + 0x1b, 0x3d, 0x94, 0xd1, 0xff, 0x4a, 0x74, 0x26, 0x1f, 0xb0, 0xc0, 0x3e, 0x90, 0x89, 0x66, 0xba, + 0xd2, 0x54, 0x3c, 0x72, 0xef, 0xa5, 0xe8, 0xf1, 0x71, 0x03, 0x66, 0xa4, 0x7b, 0x12, 0xce, 0xee, + 0xfd, 0x32, 0x40, 0xcc, 0xeb, 0x31, 0x4f, 0x9f, 0x15, 0xc5, 0xcf, 0xcb, 0xc8, 0x63, 0xe6, 0xa1, + 0xbb, 0xa0, 0x53, 0x1b, 0x77, 0x89, 0x7f, 0xc6, 0x57, 0x29, 0x08, 0xdd, 0x0b, 0x31, 0x9e, 0x15, + 0xbe, 0x01, 0x8b, 0x09, 0x33, 0xb1, 0xa6, 0x28, 0xd4, 0x17, 0xe2, 0x70, 0x62, 0xcb, 0x01, 0x2c, + 0x27, 0x89, 0x23, 0x96, 0x2c, 0xbc, 0xa9, 0x25, 0x28, 0xa6, 0xa7, 0xed, 0x78, 0x0a, 0x17, 0x5c, + 0xdf, 0xa6, 0x27, 0xae, 0xdf, 0xb5, 0x4e, 0x1b, 0x54, 0x4c, 0xd4, 0xbc, 0xb8, 0xe4, 0x6e, 0x4f, + 0x18, 0x7f, 0xd9, 0x06, 0x3f, 0x6d, 0xd7, 0x88, 0x6b, 0x2e, 0x27, 0x9a, 0xe9, 0x68, 0xb4, 0x16, + 0xed, 0xf1, 0x2e, 0x1d, 0x5f, 0x6b, 0xfe, 0x6d, 0xd6, 0x4a, 0x34, 0xd3, 0xd1, 0xca, 0x27, 0x50, + 0x1c, 0x59, 0x3b, 0x0f, 0xb9, 0x66, 0xab, 0xd9, 0xd0, 0xa6, 0xc6, 0x2f, 0x4a, 0x05, 0x21, 0x58, + 0x88, 0x86, 0xa3, 0x25, 0xe3, 0xc6, 0x7e, 0x53, 0x53, 0xd1, 0x0a, 0x9c, 0xab, 0x3f, 0x6a, 0x3d, + 0xde, 0xb5, 0x32, 0xb7, 0x6a, 0x7c, 0xe1, 0xe6, 0x76, 0xfe, 0x1b, 0x8d, 0x84, 0x0d, 0xb8, 0x7e, + 0xf6, 0x48, 0xc8, 0xd6, 0xfc, 0x30, 0x97, 0x9f, 0xd3, 0xf2, 0x95, 0x6f, 0x15, 0x40, 0xa2, 0xae, + 0xd8, 0xff, 0xf8, 0x48, 0x37, 0xa1, 0x38, 0xf2, 0x49, 0x95, 0x37, 0xfc, 0xa4, 0x46, 0xfe, 0x95, + 0x31, 0xf3, 0x85, 0xf8, 0x8d, 0x28, 0x74, 0x87, 0xe1, 0x9d, 0x5a, 0x54, 0xdb, 0x4d, 0xd8, 0x98, + 0xfc, 0x6b, 0x35, 0x5a, 0x80, 0xf1, 0xce, 0xcf, 0x9f, 0xfe, 0xfa, 0xdb, 0xac, 0xaa, 0xa9, 0xb0, + 0xee, 0x52, 0xb9, 0x6c, 0xc0, 0xe8, 0x8b, 0xc1, 0xd9, 0x5f, 0xc4, 0x00, 0x21, 0xd1, 0x8e, 0x06, + 0x56, 0x5b, 0x39, 0x9a, 0x15, 0x93, 0x6b, 0xfb, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfb, 0x70, + 0x00, 0x91, 0x7f, 0x0c, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/trace/v3/trace.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/trace/v3/trace.pb.validate.go new file mode 100644 index 000000000..e43f81c89 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/trace/v3/trace.pb.validate.go @@ -0,0 +1,751 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/trace/v3/trace.proto + +package envoy_config_trace_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _trace_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on Tracing with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Tracing) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetHttp()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TracingValidationError{ + field: "Http", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// TracingValidationError is the validation error returned by Tracing.Validate +// if the designated constraints aren't met. +type TracingValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TracingValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TracingValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TracingValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TracingValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TracingValidationError) ErrorName() string { return "TracingValidationError" } + +// Error satisfies the builtin error interface +func (e TracingValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTracing.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TracingValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TracingValidationError{} + +// Validate checks the field values on LightstepConfig with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *LightstepConfig) Validate() error { + if m == nil { + return nil + } + + if len(m.GetCollectorCluster()) < 1 { + return LightstepConfigValidationError{ + field: "CollectorCluster", + reason: "value length must be at least 1 bytes", + } + } + + if len(m.GetAccessTokenFile()) < 1 { + return LightstepConfigValidationError{ + field: "AccessTokenFile", + reason: "value length must be at least 1 bytes", + } + } + + for idx, item := range m.GetPropagationModes() { + _, _ = idx, item + + if _, ok := LightstepConfig_PropagationMode_name[int32(item)]; !ok { + return LightstepConfigValidationError{ + field: fmt.Sprintf("PropagationModes[%v]", idx), + reason: "value must be one of the defined enum values", + } + } + + } + + return nil +} + +// LightstepConfigValidationError is the validation error returned by +// LightstepConfig.Validate if the designated constraints aren't met. +type LightstepConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e LightstepConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e LightstepConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e LightstepConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e LightstepConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e LightstepConfigValidationError) ErrorName() string { return "LightstepConfigValidationError" } + +// Error satisfies the builtin error interface +func (e LightstepConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sLightstepConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = LightstepConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = LightstepConfigValidationError{} + +// Validate checks the field values on ZipkinConfig with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *ZipkinConfig) Validate() error { + if m == nil { + return nil + } + + if len(m.GetCollectorCluster()) < 1 { + return ZipkinConfigValidationError{ + field: "CollectorCluster", + reason: "value length must be at least 1 bytes", + } + } + + if len(m.GetCollectorEndpoint()) < 1 { + return ZipkinConfigValidationError{ + field: "CollectorEndpoint", + reason: "value length must be at least 1 bytes", + } + } + + // no validation rules for TraceId_128Bit + + if v, ok := interface{}(m.GetSharedSpanContext()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ZipkinConfigValidationError{ + field: "SharedSpanContext", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for CollectorEndpointVersion + + return nil +} + +// ZipkinConfigValidationError is the validation error returned by +// ZipkinConfig.Validate if the designated constraints aren't met. +type ZipkinConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ZipkinConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ZipkinConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ZipkinConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ZipkinConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ZipkinConfigValidationError) ErrorName() string { return "ZipkinConfigValidationError" } + +// Error satisfies the builtin error interface +func (e ZipkinConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sZipkinConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ZipkinConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ZipkinConfigValidationError{} + +// Validate checks the field values on DynamicOtConfig with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *DynamicOtConfig) Validate() error { + if m == nil { + return nil + } + + if len(m.GetLibrary()) < 1 { + return DynamicOtConfigValidationError{ + field: "Library", + reason: "value length must be at least 1 bytes", + } + } + + if v, ok := interface{}(m.GetConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DynamicOtConfigValidationError{ + field: "Config", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// DynamicOtConfigValidationError is the validation error returned by +// DynamicOtConfig.Validate if the designated constraints aren't met. +type DynamicOtConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DynamicOtConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DynamicOtConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DynamicOtConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DynamicOtConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DynamicOtConfigValidationError) ErrorName() string { return "DynamicOtConfigValidationError" } + +// Error satisfies the builtin error interface +func (e DynamicOtConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDynamicOtConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DynamicOtConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DynamicOtConfigValidationError{} + +// Validate checks the field values on DatadogConfig with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *DatadogConfig) Validate() error { + if m == nil { + return nil + } + + if len(m.GetCollectorCluster()) < 1 { + return DatadogConfigValidationError{ + field: "CollectorCluster", + reason: "value length must be at least 1 bytes", + } + } + + if len(m.GetServiceName()) < 1 { + return DatadogConfigValidationError{ + field: "ServiceName", + reason: "value length must be at least 1 bytes", + } + } + + return nil +} + +// DatadogConfigValidationError is the validation error returned by +// DatadogConfig.Validate if the designated constraints aren't met. +type DatadogConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DatadogConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DatadogConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DatadogConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DatadogConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DatadogConfigValidationError) ErrorName() string { return "DatadogConfigValidationError" } + +// Error satisfies the builtin error interface +func (e DatadogConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDatadogConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DatadogConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DatadogConfigValidationError{} + +// Validate checks the field values on OpenCensusConfig with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *OpenCensusConfig) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetTraceConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return OpenCensusConfigValidationError{ + field: "TraceConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for StdoutExporterEnabled + + // no validation rules for StackdriverExporterEnabled + + // no validation rules for StackdriverProjectId + + // no validation rules for StackdriverAddress + + if v, ok := interface{}(m.GetStackdriverGrpcService()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return OpenCensusConfigValidationError{ + field: "StackdriverGrpcService", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for ZipkinExporterEnabled + + // no validation rules for ZipkinUrl + + // no validation rules for OcagentExporterEnabled + + // no validation rules for OcagentAddress + + if v, ok := interface{}(m.GetOcagentGrpcService()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return OpenCensusConfigValidationError{ + field: "OcagentGrpcService", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// OpenCensusConfigValidationError is the validation error returned by +// OpenCensusConfig.Validate if the designated constraints aren't met. +type OpenCensusConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e OpenCensusConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e OpenCensusConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e OpenCensusConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e OpenCensusConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e OpenCensusConfigValidationError) ErrorName() string { return "OpenCensusConfigValidationError" } + +// Error satisfies the builtin error interface +func (e OpenCensusConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sOpenCensusConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = OpenCensusConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = OpenCensusConfigValidationError{} + +// Validate checks the field values on TraceServiceConfig with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *TraceServiceConfig) Validate() error { + if m == nil { + return nil + } + + if m.GetGrpcService() == nil { + return TraceServiceConfigValidationError{ + field: "GrpcService", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetGrpcService()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TraceServiceConfigValidationError{ + field: "GrpcService", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// TraceServiceConfigValidationError is the validation error returned by +// TraceServiceConfig.Validate if the designated constraints aren't met. +type TraceServiceConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TraceServiceConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TraceServiceConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TraceServiceConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TraceServiceConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TraceServiceConfigValidationError) ErrorName() string { + return "TraceServiceConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e TraceServiceConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTraceServiceConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TraceServiceConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TraceServiceConfigValidationError{} + +// Validate checks the field values on Tracing_Http with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *Tracing_Http) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return Tracing_HttpValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + switch m.ConfigType.(type) { + + case *Tracing_Http_HiddenEnvoyDeprecatedConfig: + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Tracing_HttpValidationError{ + field: "HiddenEnvoyDeprecatedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Tracing_Http_TypedConfig: + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Tracing_HttpValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// Tracing_HttpValidationError is the validation error returned by +// Tracing_Http.Validate if the designated constraints aren't met. +type Tracing_HttpValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Tracing_HttpValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Tracing_HttpValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Tracing_HttpValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Tracing_HttpValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Tracing_HttpValidationError) ErrorName() string { return "Tracing_HttpValidationError" } + +// Error satisfies the builtin error interface +func (e Tracing_HttpValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTracing_Http.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Tracing_HttpValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Tracing_HttpValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/trace/v3/xray.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/trace/v3/xray.pb.go new file mode 100644 index 000000000..f138772b5 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/trace/v3/xray.pb.go @@ -0,0 +1,112 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/config/trace/v3/xray.proto + +package envoy_config_trace_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type XRayConfig struct { + DaemonEndpoint *v3.SocketAddress `protobuf:"bytes,1,opt,name=daemon_endpoint,json=daemonEndpoint,proto3" json:"daemon_endpoint,omitempty"` + SegmentName string `protobuf:"bytes,2,opt,name=segment_name,json=segmentName,proto3" json:"segment_name,omitempty"` + SamplingRuleManifest *v3.DataSource `protobuf:"bytes,3,opt,name=sampling_rule_manifest,json=samplingRuleManifest,proto3" json:"sampling_rule_manifest,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *XRayConfig) Reset() { *m = XRayConfig{} } +func (m *XRayConfig) String() string { return proto.CompactTextString(m) } +func (*XRayConfig) ProtoMessage() {} +func (*XRayConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_6d491b3510a2e630, []int{0} +} + +func (m *XRayConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_XRayConfig.Unmarshal(m, b) +} +func (m *XRayConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_XRayConfig.Marshal(b, m, deterministic) +} +func (m *XRayConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_XRayConfig.Merge(m, src) +} +func (m *XRayConfig) XXX_Size() int { + return xxx_messageInfo_XRayConfig.Size(m) +} +func (m *XRayConfig) XXX_DiscardUnknown() { + xxx_messageInfo_XRayConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_XRayConfig proto.InternalMessageInfo + +func (m *XRayConfig) GetDaemonEndpoint() *v3.SocketAddress { + if m != nil { + return m.DaemonEndpoint + } + return nil +} + +func (m *XRayConfig) GetSegmentName() string { + if m != nil { + return m.SegmentName + } + return "" +} + +func (m *XRayConfig) GetSamplingRuleManifest() *v3.DataSource { + if m != nil { + return m.SamplingRuleManifest + } + return nil +} + +func init() { + proto.RegisterType((*XRayConfig)(nil), "envoy.config.trace.v3.XRayConfig") +} + +func init() { proto.RegisterFile("envoy/config/trace/v3/xray.proto", fileDescriptor_6d491b3510a2e630) } + +var fileDescriptor_6d491b3510a2e630 = []byte{ + // 360 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x91, 0xcf, 0x6a, 0xdb, 0x40, + 0x10, 0xc6, 0x91, 0x5a, 0x5c, 0xbc, 0x2e, 0xad, 0x11, 0xfd, 0x63, 0x0c, 0x6d, 0x55, 0x9b, 0x52, + 0x13, 0xc2, 0x0a, 0xac, 0x9b, 0x6f, 0x51, 0x92, 0x5b, 0x12, 0x8c, 0x0c, 0xc1, 0x37, 0x31, 0x96, + 0xc6, 0xca, 0x12, 0x69, 0x57, 0xec, 0xae, 0x84, 0x75, 0xcb, 0x31, 0x87, 0x3c, 0x41, 0x1e, 0x25, + 0xf7, 0x40, 0xae, 0x79, 0x9d, 0x9c, 0x82, 0x25, 0x99, 0x60, 0xa2, 0xdb, 0xc2, 0xfc, 0x7e, 0xec, + 0xf7, 0xcd, 0x10, 0x1b, 0x79, 0x21, 0x4a, 0x27, 0x14, 0x7c, 0xcd, 0x62, 0x47, 0x4b, 0x08, 0xd1, + 0x29, 0x5c, 0x67, 0x23, 0xa1, 0xa4, 0x99, 0x14, 0x5a, 0x58, 0xdf, 0x2b, 0x82, 0xd6, 0x04, 0xad, + 0x08, 0x5a, 0xb8, 0xc3, 0xd1, 0x9e, 0x18, 0x0a, 0x59, 0x79, 0x10, 0x45, 0x12, 0x95, 0xaa, 0xd5, + 0xe1, 0x9f, 0x56, 0x66, 0x05, 0x0a, 0x1b, 0xe0, 0x57, 0x1e, 0x65, 0xe0, 0x00, 0xe7, 0x42, 0x83, + 0x66, 0x82, 0x2b, 0x47, 0x69, 0xd0, 0xf9, 0xce, 0xff, 0xfb, 0x6e, 0x5c, 0xa0, 0x54, 0x4c, 0x70, + 0xc6, 0xe3, 0x06, 0xf9, 0x59, 0x40, 0xc2, 0x22, 0xd0, 0xe8, 0xec, 0x1e, 0xf5, 0x60, 0x74, 0x67, + 0x12, 0xb2, 0xf4, 0xa1, 0x3c, 0xae, 0x3e, 0xb7, 0xce, 0xc8, 0xd7, 0x08, 0x30, 0x15, 0x3c, 0x40, + 0x1e, 0x65, 0x82, 0x71, 0x3d, 0x30, 0x6c, 0x63, 0xd2, 0x9b, 0x8e, 0xe9, 0x5e, 0xbf, 0x6d, 0x48, + 0x5a, 0xb8, 0x74, 0x21, 0xc2, 0x6b, 0xd4, 0x47, 0x75, 0x1d, 0xff, 0x4b, 0xed, 0x9e, 0x36, 0xaa, + 0x75, 0x40, 0x3e, 0x2b, 0x8c, 0x53, 0xe4, 0x3a, 0xe0, 0x90, 0xe2, 0xc0, 0xb4, 0x8d, 0x49, 0xd7, + 0xfb, 0xf4, 0xe2, 0x7d, 0x94, 0x66, 0xdf, 0xf0, 0x7b, 0xcd, 0xf0, 0x02, 0x52, 0xb4, 0x2e, 0xc9, + 0x0f, 0x05, 0x69, 0x96, 0x30, 0x1e, 0x07, 0x32, 0x4f, 0x30, 0x48, 0x81, 0xb3, 0x35, 0x2a, 0x3d, + 0xf8, 0x50, 0x05, 0xb0, 0xdb, 0x03, 0x9c, 0x80, 0x86, 0x85, 0xc8, 0x65, 0x88, 0xfe, 0xb7, 0x9d, + 0xef, 0xe7, 0x09, 0x9e, 0x37, 0xf6, 0xec, 0xf0, 0xfe, 0xf1, 0xf6, 0xf7, 0x7f, 0xf2, 0xaf, 0xed, + 0x3c, 0x53, 0x48, 0xb2, 0x2b, 0xa0, 0x6f, 0xfd, 0xbd, 0xd9, 0xc3, 0xcd, 0xd3, 0x73, 0xc7, 0xec, + 0x9b, 0x64, 0xcc, 0x44, 0xfd, 0x63, 0x26, 0xc5, 0xa6, 0xa4, 0xad, 0xd7, 0xf5, 0xba, 0x4b, 0x09, + 0xe5, 0x7c, 0xbb, 0xc8, 0xb9, 0xb1, 0xea, 0x54, 0x1b, 0x75, 0x5f, 0x03, 0x00, 0x00, 0xff, 0xff, + 0x11, 0x27, 0xc0, 0x0e, 0x2c, 0x02, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/config/trace/v3/xray.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/trace/v3/xray.pb.validate.go new file mode 100644 index 000000000..461f0bcc9 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/config/trace/v3/xray.pb.validate.go @@ -0,0 +1,128 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/config/trace/v3/xray.proto + +package envoy_config_trace_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _xray_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on XRayConfig with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *XRayConfig) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetDaemonEndpoint()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return XRayConfigValidationError{ + field: "DaemonEndpoint", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if utf8.RuneCountInString(m.GetSegmentName()) < 1 { + return XRayConfigValidationError{ + field: "SegmentName", + reason: "value length must be at least 1 runes", + } + } + + if v, ok := interface{}(m.GetSamplingRuleManifest()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return XRayConfigValidationError{ + field: "SamplingRuleManifest", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// XRayConfigValidationError is the validation error returned by +// XRayConfig.Validate if the designated constraints aren't met. +type XRayConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e XRayConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e XRayConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e XRayConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e XRayConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e XRayConfigValidationError) ErrorName() string { return "XRayConfigValidationError" } + +// Error satisfies the builtin error interface +func (e XRayConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sXRayConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = XRayConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = XRayConfigValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/rbac/v3/rbac.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/rbac/v3/rbac.pb.go new file mode 100644 index 000000000..b68057500 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/rbac/v3/rbac.pb.go @@ -0,0 +1,144 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/extensions/filters/http/rbac/v3/rbac.proto + +package envoy_extensions_filters_http_rbac_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/rbac/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type RBAC struct { + Rules *v3.RBAC `protobuf:"bytes,1,opt,name=rules,proto3" json:"rules,omitempty"` + ShadowRules *v3.RBAC `protobuf:"bytes,2,opt,name=shadow_rules,json=shadowRules,proto3" json:"shadow_rules,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RBAC) Reset() { *m = RBAC{} } +func (m *RBAC) String() string { return proto.CompactTextString(m) } +func (*RBAC) ProtoMessage() {} +func (*RBAC) Descriptor() ([]byte, []int) { + return fileDescriptor_b77e76eac62eed05, []int{0} +} + +func (m *RBAC) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RBAC.Unmarshal(m, b) +} +func (m *RBAC) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RBAC.Marshal(b, m, deterministic) +} +func (m *RBAC) XXX_Merge(src proto.Message) { + xxx_messageInfo_RBAC.Merge(m, src) +} +func (m *RBAC) XXX_Size() int { + return xxx_messageInfo_RBAC.Size(m) +} +func (m *RBAC) XXX_DiscardUnknown() { + xxx_messageInfo_RBAC.DiscardUnknown(m) +} + +var xxx_messageInfo_RBAC proto.InternalMessageInfo + +func (m *RBAC) GetRules() *v3.RBAC { + if m != nil { + return m.Rules + } + return nil +} + +func (m *RBAC) GetShadowRules() *v3.RBAC { + if m != nil { + return m.ShadowRules + } + return nil +} + +type RBACPerRoute struct { + Rbac *RBAC `protobuf:"bytes,2,opt,name=rbac,proto3" json:"rbac,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RBACPerRoute) Reset() { *m = RBACPerRoute{} } +func (m *RBACPerRoute) String() string { return proto.CompactTextString(m) } +func (*RBACPerRoute) ProtoMessage() {} +func (*RBACPerRoute) Descriptor() ([]byte, []int) { + return fileDescriptor_b77e76eac62eed05, []int{1} +} + +func (m *RBACPerRoute) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RBACPerRoute.Unmarshal(m, b) +} +func (m *RBACPerRoute) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RBACPerRoute.Marshal(b, m, deterministic) +} +func (m *RBACPerRoute) XXX_Merge(src proto.Message) { + xxx_messageInfo_RBACPerRoute.Merge(m, src) +} +func (m *RBACPerRoute) XXX_Size() int { + return xxx_messageInfo_RBACPerRoute.Size(m) +} +func (m *RBACPerRoute) XXX_DiscardUnknown() { + xxx_messageInfo_RBACPerRoute.DiscardUnknown(m) +} + +var xxx_messageInfo_RBACPerRoute proto.InternalMessageInfo + +func (m *RBACPerRoute) GetRbac() *RBAC { + if m != nil { + return m.Rbac + } + return nil +} + +func init() { + proto.RegisterType((*RBAC)(nil), "envoy.extensions.filters.http.rbac.v3.RBAC") + proto.RegisterType((*RBACPerRoute)(nil), "envoy.extensions.filters.http.rbac.v3.RBACPerRoute") +} + +func init() { + proto.RegisterFile("envoy/extensions/filters/http/rbac/v3/rbac.proto", fileDescriptor_b77e76eac62eed05) +} + +var fileDescriptor_b77e76eac62eed05 = []byte{ + // 321 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x91, 0x4f, 0x4b, 0xc3, 0x30, + 0x18, 0xc6, 0x49, 0x99, 0x43, 0xb3, 0x1d, 0x46, 0x2f, 0xca, 0xc0, 0x7f, 0x83, 0xa1, 0xa0, 0x26, + 0x63, 0xf5, 0x34, 0x10, 0xb1, 0xde, 0x76, 0x2a, 0xfd, 0x02, 0x92, 0xb6, 0xd9, 0x16, 0x28, 0x49, + 0x49, 0xd2, 0xba, 0xdd, 0x3c, 0x0a, 0x7e, 0x03, 0xef, 0x7e, 0x09, 0xef, 0x82, 0x57, 0xbf, 0x91, + 0x24, 0x69, 0x51, 0x51, 0xb0, 0xa7, 0x06, 0xde, 0xdf, 0xef, 0x7d, 0x1e, 0xde, 0xc2, 0x09, 0xe5, + 0x95, 0xd8, 0x60, 0xba, 0xd6, 0x94, 0x2b, 0x26, 0xb8, 0xc2, 0x0b, 0x96, 0x6b, 0x2a, 0x15, 0x5e, + 0x69, 0x5d, 0x60, 0x99, 0x90, 0x14, 0x57, 0x81, 0xfd, 0xa2, 0x42, 0x0a, 0x2d, 0xfc, 0xb1, 0x35, + 0xd0, 0x97, 0x81, 0x6a, 0x03, 0x19, 0x03, 0x59, 0xb2, 0x0a, 0x86, 0x87, 0x6e, 0x71, 0x2a, 0xf8, + 0x82, 0x2d, 0xff, 0xd8, 0x33, 0xdc, 0x2f, 0xb3, 0x82, 0x60, 0xc2, 0xb9, 0xd0, 0x44, 0xdb, 0x64, + 0xa5, 0x89, 0x2e, 0x55, 0x3d, 0x3e, 0xfe, 0x35, 0xae, 0xa8, 0x34, 0x79, 0x8c, 0x2f, 0x6b, 0x64, + 0xb7, 0x22, 0x39, 0xcb, 0x88, 0xa6, 0xb8, 0x79, 0xb8, 0xc1, 0xe8, 0x05, 0xc0, 0x4e, 0x1c, 0xde, + 0xdc, 0xfa, 0x13, 0xb8, 0x25, 0xcb, 0x9c, 0xaa, 0x3d, 0x70, 0x04, 0x4e, 0x7b, 0xd3, 0x21, 0x72, + 0xdd, 0x5d, 0xa9, 0xa6, 0x2a, 0x32, 0x68, 0xec, 0x40, 0xff, 0x0a, 0xf6, 0xd5, 0x8a, 0x64, 0xe2, + 0xfe, 0xce, 0x89, 0xde, 0xbf, 0x62, 0xcf, 0xf1, 0xb1, 0xc1, 0x67, 0xe7, 0xcf, 0x6f, 0x8f, 0x07, + 0x27, 0x70, 0xfc, 0x03, 0x77, 0xf7, 0xf9, 0x7e, 0x9e, 0xa9, 0x55, 0x47, 0x4f, 0x00, 0xf6, 0xcd, + 0x23, 0xa2, 0x32, 0x16, 0xa5, 0xa6, 0xfe, 0x35, 0xec, 0x18, 0xa0, 0x4e, 0x3d, 0x43, 0xad, 0x4e, + 0xed, 0x6a, 0x58, 0x71, 0x76, 0x69, 0xf2, 0x31, 0xbc, 0x68, 0x95, 0xdf, 0xc4, 0xce, 0x3b, 0xdb, + 0x60, 0xe0, 0x85, 0xf3, 0xd7, 0x87, 0xf7, 0x8f, 0xae, 0x37, 0xf0, 0x60, 0xc0, 0x84, 0x8b, 0x2e, + 0xa4, 0x58, 0x6f, 0xda, 0xb5, 0x08, 0x77, 0xe2, 0x84, 0xa4, 0x91, 0xb9, 0x7f, 0x04, 0x92, 0xae, + 0xfd, 0x11, 0xc1, 0x67, 0x00, 0x00, 0x00, 0xff, 0xff, 0x30, 0xb6, 0xb2, 0xb6, 0x5f, 0x02, 0x00, + 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/rbac/v3/rbac.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/rbac/v3/rbac.pb.validate.go new file mode 100644 index 000000000..a3e21fa3e --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/rbac/v3/rbac.pb.validate.go @@ -0,0 +1,196 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/extensions/filters/http/rbac/v3/rbac.proto + +package envoy_extensions_filters_http_rbac_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _rbac_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on RBAC with the rules defined in the proto +// definition for this message. If any rules are violated, an error is returned. +func (m *RBAC) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetRules()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RBACValidationError{ + field: "Rules", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetShadowRules()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RBACValidationError{ + field: "ShadowRules", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// RBACValidationError is the validation error returned by RBAC.Validate if the +// designated constraints aren't met. +type RBACValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RBACValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RBACValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RBACValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RBACValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RBACValidationError) ErrorName() string { return "RBACValidationError" } + +// Error satisfies the builtin error interface +func (e RBACValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRBAC.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RBACValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RBACValidationError{} + +// Validate checks the field values on RBACPerRoute with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *RBACPerRoute) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetRbac()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RBACPerRouteValidationError{ + field: "Rbac", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// RBACPerRouteValidationError is the validation error returned by +// RBACPerRoute.Validate if the designated constraints aren't met. +type RBACPerRouteValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RBACPerRouteValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RBACPerRouteValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RBACPerRouteValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RBACPerRouteValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RBACPerRouteValidationError) ErrorName() string { return "RBACPerRouteValidationError" } + +// Error satisfies the builtin error interface +func (e RBACPerRouteValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRBACPerRoute.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RBACPerRouteValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RBACPerRouteValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/listener/tls_inspector/v3/tls_inspector.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/listener/tls_inspector/v3/tls_inspector.pb.go new file mode 100644 index 000000000..b51c943e5 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/listener/tls_inspector/v3/tls_inspector.pb.go @@ -0,0 +1,79 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/extensions/filters/listener/tls_inspector/v3/tls_inspector.proto + +package envoy_extensions_filters_listener_tls_inspector_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type TlsInspector struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TlsInspector) Reset() { *m = TlsInspector{} } +func (m *TlsInspector) String() string { return proto.CompactTextString(m) } +func (*TlsInspector) ProtoMessage() {} +func (*TlsInspector) Descriptor() ([]byte, []int) { + return fileDescriptor_a303ec5271932b24, []int{0} +} + +func (m *TlsInspector) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TlsInspector.Unmarshal(m, b) +} +func (m *TlsInspector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TlsInspector.Marshal(b, m, deterministic) +} +func (m *TlsInspector) XXX_Merge(src proto.Message) { + xxx_messageInfo_TlsInspector.Merge(m, src) +} +func (m *TlsInspector) XXX_Size() int { + return xxx_messageInfo_TlsInspector.Size(m) +} +func (m *TlsInspector) XXX_DiscardUnknown() { + xxx_messageInfo_TlsInspector.DiscardUnknown(m) +} + +var xxx_messageInfo_TlsInspector proto.InternalMessageInfo + +func init() { + proto.RegisterType((*TlsInspector)(nil), "envoy.extensions.filters.listener.tls_inspector.v3.TlsInspector") +} + +func init() { + proto.RegisterFile("envoy/extensions/filters/listener/tls_inspector/v3/tls_inspector.proto", fileDescriptor_a303ec5271932b24) +} + +var fileDescriptor_a303ec5271932b24 = []byte{ + // 219 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x4b, 0xcd, 0x2b, 0xcb, + 0xaf, 0xd4, 0x4f, 0xad, 0x28, 0x49, 0xcd, 0x2b, 0xce, 0xcc, 0xcf, 0x2b, 0xd6, 0x4f, 0xcb, 0xcc, + 0x29, 0x49, 0x2d, 0x2a, 0xd6, 0xcf, 0xc9, 0x2c, 0x2e, 0x49, 0xcd, 0x4b, 0x2d, 0xd2, 0x2f, 0xc9, + 0x29, 0x8e, 0xcf, 0xcc, 0x2b, 0x2e, 0x48, 0x4d, 0x2e, 0xc9, 0x2f, 0xd2, 0x2f, 0x33, 0x46, 0x15, + 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x32, 0x02, 0x9b, 0xa3, 0x87, 0x30, 0x47, 0x0f, 0x6a, + 0x8e, 0x1e, 0xcc, 0x1c, 0x3d, 0x54, 0x6d, 0x65, 0xc6, 0x52, 0xb2, 0xa5, 0x29, 0x05, 0x89, 0xfa, + 0x89, 0x79, 0x79, 0xf9, 0x25, 0x89, 0x25, 0x60, 0xbb, 0x8b, 0x4b, 0x12, 0x4b, 0x4a, 0x8b, 0x21, + 0x46, 0x4a, 0x29, 0x62, 0x48, 0x97, 0xa5, 0x16, 0x81, 0xcc, 0xce, 0xcc, 0x4b, 0x87, 0x28, 0x51, + 0x0a, 0xe4, 0xe2, 0x09, 0xc9, 0x29, 0xf6, 0x84, 0x19, 0x6a, 0xe5, 0x38, 0xeb, 0x68, 0x87, 0x9c, + 0x0d, 0x97, 0x15, 0xc4, 0x31, 0xc9, 0xf9, 0x79, 0x69, 0x99, 0xe9, 0x50, 0x87, 0xe0, 0x74, 0x87, + 0x91, 0x1e, 0xb2, 0x11, 0x4e, 0xf1, 0xbb, 0x1a, 0x4e, 0x5c, 0x64, 0x63, 0x12, 0x60, 0xe2, 0x72, + 0xc8, 0xcc, 0xd7, 0x03, 0x1b, 0x54, 0x50, 0x94, 0x5f, 0x51, 0xa9, 0x47, 0xba, 0x07, 0x9d, 0x04, + 0x91, 0x4d, 0x0e, 0x00, 0xb9, 0x38, 0x80, 0x31, 0x89, 0x0d, 0xec, 0x74, 0x63, 0x40, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x6c, 0x95, 0xcb, 0x09, 0x7a, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/listener/tls_inspector/v3/tls_inspector.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/listener/tls_inspector/v3/tls_inspector.pb.validate.go new file mode 100644 index 000000000..baa0f89f7 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/listener/tls_inspector/v3/tls_inspector.pb.validate.go @@ -0,0 +1,102 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/extensions/filters/listener/tls_inspector/v3/tls_inspector.proto + +package envoy_extensions_filters_listener_tls_inspector_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _tls_inspector_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on TlsInspector with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *TlsInspector) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// TlsInspectorValidationError is the validation error returned by +// TlsInspector.Validate if the designated constraints aren't met. +type TlsInspectorValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TlsInspectorValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TlsInspectorValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TlsInspectorValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TlsInspectorValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TlsInspectorValidationError) ErrorName() string { return "TlsInspectorValidationError" } + +// Error satisfies the builtin error interface +func (e TlsInspectorValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTlsInspector.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TlsInspectorValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TlsInspectorValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.pb.go new file mode 100644 index 000000000..f424ec625 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.pb.go @@ -0,0 +1,1603 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto + +package envoy_extensions_filters_network_http_connection_manager_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/go-control-plane/envoy/annotations" + v32 "github.com/envoyproxy/go-control-plane/envoy/config/accesslog/v3" + v31 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/route/v3" + v35 "github.com/envoyproxy/go-control-plane/envoy/config/trace/v3" + v34 "github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3" + v33 "github.com/envoyproxy/go-control-plane/envoy/type/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + any "github.com/golang/protobuf/ptypes/any" + duration "github.com/golang/protobuf/ptypes/duration" + _struct "github.com/golang/protobuf/ptypes/struct" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type HttpConnectionManager_CodecType int32 + +const ( + HttpConnectionManager_AUTO HttpConnectionManager_CodecType = 0 + HttpConnectionManager_HTTP1 HttpConnectionManager_CodecType = 1 + HttpConnectionManager_HTTP2 HttpConnectionManager_CodecType = 2 + HttpConnectionManager_HTTP3 HttpConnectionManager_CodecType = 3 +) + +var HttpConnectionManager_CodecType_name = map[int32]string{ + 0: "AUTO", + 1: "HTTP1", + 2: "HTTP2", + 3: "HTTP3", +} + +var HttpConnectionManager_CodecType_value = map[string]int32{ + "AUTO": 0, + "HTTP1": 1, + "HTTP2": 2, + "HTTP3": 3, +} + +func (x HttpConnectionManager_CodecType) String() string { + return proto.EnumName(HttpConnectionManager_CodecType_name, int32(x)) +} + +func (HttpConnectionManager_CodecType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{0, 0} +} + +type HttpConnectionManager_ServerHeaderTransformation int32 + +const ( + HttpConnectionManager_OVERWRITE HttpConnectionManager_ServerHeaderTransformation = 0 + HttpConnectionManager_APPEND_IF_ABSENT HttpConnectionManager_ServerHeaderTransformation = 1 + HttpConnectionManager_PASS_THROUGH HttpConnectionManager_ServerHeaderTransformation = 2 +) + +var HttpConnectionManager_ServerHeaderTransformation_name = map[int32]string{ + 0: "OVERWRITE", + 1: "APPEND_IF_ABSENT", + 2: "PASS_THROUGH", +} + +var HttpConnectionManager_ServerHeaderTransformation_value = map[string]int32{ + "OVERWRITE": 0, + "APPEND_IF_ABSENT": 1, + "PASS_THROUGH": 2, +} + +func (x HttpConnectionManager_ServerHeaderTransformation) String() string { + return proto.EnumName(HttpConnectionManager_ServerHeaderTransformation_name, int32(x)) +} + +func (HttpConnectionManager_ServerHeaderTransformation) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{0, 1} +} + +type HttpConnectionManager_ForwardClientCertDetails int32 + +const ( + HttpConnectionManager_SANITIZE HttpConnectionManager_ForwardClientCertDetails = 0 + HttpConnectionManager_FORWARD_ONLY HttpConnectionManager_ForwardClientCertDetails = 1 + HttpConnectionManager_APPEND_FORWARD HttpConnectionManager_ForwardClientCertDetails = 2 + HttpConnectionManager_SANITIZE_SET HttpConnectionManager_ForwardClientCertDetails = 3 + HttpConnectionManager_ALWAYS_FORWARD_ONLY HttpConnectionManager_ForwardClientCertDetails = 4 +) + +var HttpConnectionManager_ForwardClientCertDetails_name = map[int32]string{ + 0: "SANITIZE", + 1: "FORWARD_ONLY", + 2: "APPEND_FORWARD", + 3: "SANITIZE_SET", + 4: "ALWAYS_FORWARD_ONLY", +} + +var HttpConnectionManager_ForwardClientCertDetails_value = map[string]int32{ + "SANITIZE": 0, + "FORWARD_ONLY": 1, + "APPEND_FORWARD": 2, + "SANITIZE_SET": 3, + "ALWAYS_FORWARD_ONLY": 4, +} + +func (x HttpConnectionManager_ForwardClientCertDetails) String() string { + return proto.EnumName(HttpConnectionManager_ForwardClientCertDetails_name, int32(x)) +} + +func (HttpConnectionManager_ForwardClientCertDetails) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{0, 2} +} + +type HttpConnectionManager_Tracing_OperationName int32 + +const ( + HttpConnectionManager_Tracing_INGRESS HttpConnectionManager_Tracing_OperationName = 0 + HttpConnectionManager_Tracing_EGRESS HttpConnectionManager_Tracing_OperationName = 1 +) + +var HttpConnectionManager_Tracing_OperationName_name = map[int32]string{ + 0: "INGRESS", + 1: "EGRESS", +} + +var HttpConnectionManager_Tracing_OperationName_value = map[string]int32{ + "INGRESS": 0, + "EGRESS": 1, +} + +func (x HttpConnectionManager_Tracing_OperationName) String() string { + return proto.EnumName(HttpConnectionManager_Tracing_OperationName_name, int32(x)) +} + +func (HttpConnectionManager_Tracing_OperationName) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{0, 0, 0} +} + +type HttpConnectionManager struct { + CodecType HttpConnectionManager_CodecType `protobuf:"varint,1,opt,name=codec_type,json=codecType,proto3,enum=envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager_CodecType" json:"codec_type,omitempty"` + StatPrefix string `protobuf:"bytes,2,opt,name=stat_prefix,json=statPrefix,proto3" json:"stat_prefix,omitempty"` + // Types that are valid to be assigned to RouteSpecifier: + // *HttpConnectionManager_Rds + // *HttpConnectionManager_RouteConfig + // *HttpConnectionManager_ScopedRoutes + RouteSpecifier isHttpConnectionManager_RouteSpecifier `protobuf_oneof:"route_specifier"` + HttpFilters []*HttpFilter `protobuf:"bytes,5,rep,name=http_filters,json=httpFilters,proto3" json:"http_filters,omitempty"` + AddUserAgent *wrappers.BoolValue `protobuf:"bytes,6,opt,name=add_user_agent,json=addUserAgent,proto3" json:"add_user_agent,omitempty"` + Tracing *HttpConnectionManager_Tracing `protobuf:"bytes,7,opt,name=tracing,proto3" json:"tracing,omitempty"` + CommonHttpProtocolOptions *v31.HttpProtocolOptions `protobuf:"bytes,35,opt,name=common_http_protocol_options,json=commonHttpProtocolOptions,proto3" json:"common_http_protocol_options,omitempty"` + HttpProtocolOptions *v31.Http1ProtocolOptions `protobuf:"bytes,8,opt,name=http_protocol_options,json=httpProtocolOptions,proto3" json:"http_protocol_options,omitempty"` + Http2ProtocolOptions *v31.Http2ProtocolOptions `protobuf:"bytes,9,opt,name=http2_protocol_options,json=http2ProtocolOptions,proto3" json:"http2_protocol_options,omitempty"` + ServerName string `protobuf:"bytes,10,opt,name=server_name,json=serverName,proto3" json:"server_name,omitempty"` + ServerHeaderTransformation HttpConnectionManager_ServerHeaderTransformation `protobuf:"varint,34,opt,name=server_header_transformation,json=serverHeaderTransformation,proto3,enum=envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager_ServerHeaderTransformation" json:"server_header_transformation,omitempty"` + MaxRequestHeadersKb *wrappers.UInt32Value `protobuf:"bytes,29,opt,name=max_request_headers_kb,json=maxRequestHeadersKb,proto3" json:"max_request_headers_kb,omitempty"` + HiddenEnvoyDeprecatedIdleTimeout *duration.Duration `protobuf:"bytes,11,opt,name=hidden_envoy_deprecated_idle_timeout,json=hiddenEnvoyDeprecatedIdleTimeout,proto3" json:"hidden_envoy_deprecated_idle_timeout,omitempty"` // Deprecated: Do not use. + StreamIdleTimeout *duration.Duration `protobuf:"bytes,24,opt,name=stream_idle_timeout,json=streamIdleTimeout,proto3" json:"stream_idle_timeout,omitempty"` + RequestTimeout *duration.Duration `protobuf:"bytes,28,opt,name=request_timeout,json=requestTimeout,proto3" json:"request_timeout,omitempty"` + DrainTimeout *duration.Duration `protobuf:"bytes,12,opt,name=drain_timeout,json=drainTimeout,proto3" json:"drain_timeout,omitempty"` + DelayedCloseTimeout *duration.Duration `protobuf:"bytes,26,opt,name=delayed_close_timeout,json=delayedCloseTimeout,proto3" json:"delayed_close_timeout,omitempty"` + AccessLog []*v32.AccessLog `protobuf:"bytes,13,rep,name=access_log,json=accessLog,proto3" json:"access_log,omitempty"` + UseRemoteAddress *wrappers.BoolValue `protobuf:"bytes,14,opt,name=use_remote_address,json=useRemoteAddress,proto3" json:"use_remote_address,omitempty"` + XffNumTrustedHops uint32 `protobuf:"varint,19,opt,name=xff_num_trusted_hops,json=xffNumTrustedHops,proto3" json:"xff_num_trusted_hops,omitempty"` + InternalAddressConfig *HttpConnectionManager_InternalAddressConfig `protobuf:"bytes,25,opt,name=internal_address_config,json=internalAddressConfig,proto3" json:"internal_address_config,omitempty"` + SkipXffAppend bool `protobuf:"varint,21,opt,name=skip_xff_append,json=skipXffAppend,proto3" json:"skip_xff_append,omitempty"` + Via string `protobuf:"bytes,22,opt,name=via,proto3" json:"via,omitempty"` + GenerateRequestId *wrappers.BoolValue `protobuf:"bytes,15,opt,name=generate_request_id,json=generateRequestId,proto3" json:"generate_request_id,omitempty"` + PreserveExternalRequestId bool `protobuf:"varint,32,opt,name=preserve_external_request_id,json=preserveExternalRequestId,proto3" json:"preserve_external_request_id,omitempty"` + ForwardClientCertDetails HttpConnectionManager_ForwardClientCertDetails `protobuf:"varint,16,opt,name=forward_client_cert_details,json=forwardClientCertDetails,proto3,enum=envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager_ForwardClientCertDetails" json:"forward_client_cert_details,omitempty"` + SetCurrentClientCertDetails *HttpConnectionManager_SetCurrentClientCertDetails `protobuf:"bytes,17,opt,name=set_current_client_cert_details,json=setCurrentClientCertDetails,proto3" json:"set_current_client_cert_details,omitempty"` + Proxy_100Continue bool `protobuf:"varint,18,opt,name=proxy_100_continue,json=proxy100Continue,proto3" json:"proxy_100_continue,omitempty"` + RepresentIpv4RemoteAddressAsIpv4MappedIpv6 bool `protobuf:"varint,20,opt,name=represent_ipv4_remote_address_as_ipv4_mapped_ipv6,json=representIpv4RemoteAddressAsIpv4MappedIpv6,proto3" json:"represent_ipv4_remote_address_as_ipv4_mapped_ipv6,omitempty"` + UpgradeConfigs []*HttpConnectionManager_UpgradeConfig `protobuf:"bytes,23,rep,name=upgrade_configs,json=upgradeConfigs,proto3" json:"upgrade_configs,omitempty"` + NormalizePath *wrappers.BoolValue `protobuf:"bytes,30,opt,name=normalize_path,json=normalizePath,proto3" json:"normalize_path,omitempty"` + MergeSlashes bool `protobuf:"varint,33,opt,name=merge_slashes,json=mergeSlashes,proto3" json:"merge_slashes,omitempty"` + RequestIdExtension *RequestIDExtension `protobuf:"bytes,36,opt,name=request_id_extension,json=requestIdExtension,proto3" json:"request_id_extension,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HttpConnectionManager) Reset() { *m = HttpConnectionManager{} } +func (m *HttpConnectionManager) String() string { return proto.CompactTextString(m) } +func (*HttpConnectionManager) ProtoMessage() {} +func (*HttpConnectionManager) Descriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{0} +} + +func (m *HttpConnectionManager) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HttpConnectionManager.Unmarshal(m, b) +} +func (m *HttpConnectionManager) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HttpConnectionManager.Marshal(b, m, deterministic) +} +func (m *HttpConnectionManager) XXX_Merge(src proto.Message) { + xxx_messageInfo_HttpConnectionManager.Merge(m, src) +} +func (m *HttpConnectionManager) XXX_Size() int { + return xxx_messageInfo_HttpConnectionManager.Size(m) +} +func (m *HttpConnectionManager) XXX_DiscardUnknown() { + xxx_messageInfo_HttpConnectionManager.DiscardUnknown(m) +} + +var xxx_messageInfo_HttpConnectionManager proto.InternalMessageInfo + +func (m *HttpConnectionManager) GetCodecType() HttpConnectionManager_CodecType { + if m != nil { + return m.CodecType + } + return HttpConnectionManager_AUTO +} + +func (m *HttpConnectionManager) GetStatPrefix() string { + if m != nil { + return m.StatPrefix + } + return "" +} + +type isHttpConnectionManager_RouteSpecifier interface { + isHttpConnectionManager_RouteSpecifier() +} + +type HttpConnectionManager_Rds struct { + Rds *Rds `protobuf:"bytes,3,opt,name=rds,proto3,oneof"` +} + +type HttpConnectionManager_RouteConfig struct { + RouteConfig *v3.RouteConfiguration `protobuf:"bytes,4,opt,name=route_config,json=routeConfig,proto3,oneof"` +} + +type HttpConnectionManager_ScopedRoutes struct { + ScopedRoutes *ScopedRoutes `protobuf:"bytes,31,opt,name=scoped_routes,json=scopedRoutes,proto3,oneof"` +} + +func (*HttpConnectionManager_Rds) isHttpConnectionManager_RouteSpecifier() {} + +func (*HttpConnectionManager_RouteConfig) isHttpConnectionManager_RouteSpecifier() {} + +func (*HttpConnectionManager_ScopedRoutes) isHttpConnectionManager_RouteSpecifier() {} + +func (m *HttpConnectionManager) GetRouteSpecifier() isHttpConnectionManager_RouteSpecifier { + if m != nil { + return m.RouteSpecifier + } + return nil +} + +func (m *HttpConnectionManager) GetRds() *Rds { + if x, ok := m.GetRouteSpecifier().(*HttpConnectionManager_Rds); ok { + return x.Rds + } + return nil +} + +func (m *HttpConnectionManager) GetRouteConfig() *v3.RouteConfiguration { + if x, ok := m.GetRouteSpecifier().(*HttpConnectionManager_RouteConfig); ok { + return x.RouteConfig + } + return nil +} + +func (m *HttpConnectionManager) GetScopedRoutes() *ScopedRoutes { + if x, ok := m.GetRouteSpecifier().(*HttpConnectionManager_ScopedRoutes); ok { + return x.ScopedRoutes + } + return nil +} + +func (m *HttpConnectionManager) GetHttpFilters() []*HttpFilter { + if m != nil { + return m.HttpFilters + } + return nil +} + +func (m *HttpConnectionManager) GetAddUserAgent() *wrappers.BoolValue { + if m != nil { + return m.AddUserAgent + } + return nil +} + +func (m *HttpConnectionManager) GetTracing() *HttpConnectionManager_Tracing { + if m != nil { + return m.Tracing + } + return nil +} + +func (m *HttpConnectionManager) GetCommonHttpProtocolOptions() *v31.HttpProtocolOptions { + if m != nil { + return m.CommonHttpProtocolOptions + } + return nil +} + +func (m *HttpConnectionManager) GetHttpProtocolOptions() *v31.Http1ProtocolOptions { + if m != nil { + return m.HttpProtocolOptions + } + return nil +} + +func (m *HttpConnectionManager) GetHttp2ProtocolOptions() *v31.Http2ProtocolOptions { + if m != nil { + return m.Http2ProtocolOptions + } + return nil +} + +func (m *HttpConnectionManager) GetServerName() string { + if m != nil { + return m.ServerName + } + return "" +} + +func (m *HttpConnectionManager) GetServerHeaderTransformation() HttpConnectionManager_ServerHeaderTransformation { + if m != nil { + return m.ServerHeaderTransformation + } + return HttpConnectionManager_OVERWRITE +} + +func (m *HttpConnectionManager) GetMaxRequestHeadersKb() *wrappers.UInt32Value { + if m != nil { + return m.MaxRequestHeadersKb + } + return nil +} + +// Deprecated: Do not use. +func (m *HttpConnectionManager) GetHiddenEnvoyDeprecatedIdleTimeout() *duration.Duration { + if m != nil { + return m.HiddenEnvoyDeprecatedIdleTimeout + } + return nil +} + +func (m *HttpConnectionManager) GetStreamIdleTimeout() *duration.Duration { + if m != nil { + return m.StreamIdleTimeout + } + return nil +} + +func (m *HttpConnectionManager) GetRequestTimeout() *duration.Duration { + if m != nil { + return m.RequestTimeout + } + return nil +} + +func (m *HttpConnectionManager) GetDrainTimeout() *duration.Duration { + if m != nil { + return m.DrainTimeout + } + return nil +} + +func (m *HttpConnectionManager) GetDelayedCloseTimeout() *duration.Duration { + if m != nil { + return m.DelayedCloseTimeout + } + return nil +} + +func (m *HttpConnectionManager) GetAccessLog() []*v32.AccessLog { + if m != nil { + return m.AccessLog + } + return nil +} + +func (m *HttpConnectionManager) GetUseRemoteAddress() *wrappers.BoolValue { + if m != nil { + return m.UseRemoteAddress + } + return nil +} + +func (m *HttpConnectionManager) GetXffNumTrustedHops() uint32 { + if m != nil { + return m.XffNumTrustedHops + } + return 0 +} + +func (m *HttpConnectionManager) GetInternalAddressConfig() *HttpConnectionManager_InternalAddressConfig { + if m != nil { + return m.InternalAddressConfig + } + return nil +} + +func (m *HttpConnectionManager) GetSkipXffAppend() bool { + if m != nil { + return m.SkipXffAppend + } + return false +} + +func (m *HttpConnectionManager) GetVia() string { + if m != nil { + return m.Via + } + return "" +} + +func (m *HttpConnectionManager) GetGenerateRequestId() *wrappers.BoolValue { + if m != nil { + return m.GenerateRequestId + } + return nil +} + +func (m *HttpConnectionManager) GetPreserveExternalRequestId() bool { + if m != nil { + return m.PreserveExternalRequestId + } + return false +} + +func (m *HttpConnectionManager) GetForwardClientCertDetails() HttpConnectionManager_ForwardClientCertDetails { + if m != nil { + return m.ForwardClientCertDetails + } + return HttpConnectionManager_SANITIZE +} + +func (m *HttpConnectionManager) GetSetCurrentClientCertDetails() *HttpConnectionManager_SetCurrentClientCertDetails { + if m != nil { + return m.SetCurrentClientCertDetails + } + return nil +} + +func (m *HttpConnectionManager) GetProxy_100Continue() bool { + if m != nil { + return m.Proxy_100Continue + } + return false +} + +func (m *HttpConnectionManager) GetRepresentIpv4RemoteAddressAsIpv4MappedIpv6() bool { + if m != nil { + return m.RepresentIpv4RemoteAddressAsIpv4MappedIpv6 + } + return false +} + +func (m *HttpConnectionManager) GetUpgradeConfigs() []*HttpConnectionManager_UpgradeConfig { + if m != nil { + return m.UpgradeConfigs + } + return nil +} + +func (m *HttpConnectionManager) GetNormalizePath() *wrappers.BoolValue { + if m != nil { + return m.NormalizePath + } + return nil +} + +func (m *HttpConnectionManager) GetMergeSlashes() bool { + if m != nil { + return m.MergeSlashes + } + return false +} + +func (m *HttpConnectionManager) GetRequestIdExtension() *RequestIDExtension { + if m != nil { + return m.RequestIdExtension + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*HttpConnectionManager) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*HttpConnectionManager_Rds)(nil), + (*HttpConnectionManager_RouteConfig)(nil), + (*HttpConnectionManager_ScopedRoutes)(nil), + } +} + +type HttpConnectionManager_Tracing struct { + HiddenEnvoyDeprecatedOperationName HttpConnectionManager_Tracing_OperationName `protobuf:"varint,1,opt,name=hidden_envoy_deprecated_operation_name,json=hiddenEnvoyDeprecatedOperationName,proto3,enum=envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager_Tracing_OperationName" json:"hidden_envoy_deprecated_operation_name,omitempty"` // Deprecated: Do not use. + HiddenEnvoyDeprecatedRequestHeadersForTags []string `protobuf:"bytes,2,rep,name=hidden_envoy_deprecated_request_headers_for_tags,json=hiddenEnvoyDeprecatedRequestHeadersForTags,proto3" json:"hidden_envoy_deprecated_request_headers_for_tags,omitempty"` // Deprecated: Do not use. + ClientSampling *v33.Percent `protobuf:"bytes,3,opt,name=client_sampling,json=clientSampling,proto3" json:"client_sampling,omitempty"` + RandomSampling *v33.Percent `protobuf:"bytes,4,opt,name=random_sampling,json=randomSampling,proto3" json:"random_sampling,omitempty"` + OverallSampling *v33.Percent `protobuf:"bytes,5,opt,name=overall_sampling,json=overallSampling,proto3" json:"overall_sampling,omitempty"` + Verbose bool `protobuf:"varint,6,opt,name=verbose,proto3" json:"verbose,omitempty"` + MaxPathTagLength *wrappers.UInt32Value `protobuf:"bytes,7,opt,name=max_path_tag_length,json=maxPathTagLength,proto3" json:"max_path_tag_length,omitempty"` + CustomTags []*v34.CustomTag `protobuf:"bytes,8,rep,name=custom_tags,json=customTags,proto3" json:"custom_tags,omitempty"` + Provider *v35.Tracing_Http `protobuf:"bytes,9,opt,name=provider,proto3" json:"provider,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HttpConnectionManager_Tracing) Reset() { *m = HttpConnectionManager_Tracing{} } +func (m *HttpConnectionManager_Tracing) String() string { return proto.CompactTextString(m) } +func (*HttpConnectionManager_Tracing) ProtoMessage() {} +func (*HttpConnectionManager_Tracing) Descriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{0, 0} +} + +func (m *HttpConnectionManager_Tracing) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HttpConnectionManager_Tracing.Unmarshal(m, b) +} +func (m *HttpConnectionManager_Tracing) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HttpConnectionManager_Tracing.Marshal(b, m, deterministic) +} +func (m *HttpConnectionManager_Tracing) XXX_Merge(src proto.Message) { + xxx_messageInfo_HttpConnectionManager_Tracing.Merge(m, src) +} +func (m *HttpConnectionManager_Tracing) XXX_Size() int { + return xxx_messageInfo_HttpConnectionManager_Tracing.Size(m) +} +func (m *HttpConnectionManager_Tracing) XXX_DiscardUnknown() { + xxx_messageInfo_HttpConnectionManager_Tracing.DiscardUnknown(m) +} + +var xxx_messageInfo_HttpConnectionManager_Tracing proto.InternalMessageInfo + +// Deprecated: Do not use. +func (m *HttpConnectionManager_Tracing) GetHiddenEnvoyDeprecatedOperationName() HttpConnectionManager_Tracing_OperationName { + if m != nil { + return m.HiddenEnvoyDeprecatedOperationName + } + return HttpConnectionManager_Tracing_INGRESS +} + +// Deprecated: Do not use. +func (m *HttpConnectionManager_Tracing) GetHiddenEnvoyDeprecatedRequestHeadersForTags() []string { + if m != nil { + return m.HiddenEnvoyDeprecatedRequestHeadersForTags + } + return nil +} + +func (m *HttpConnectionManager_Tracing) GetClientSampling() *v33.Percent { + if m != nil { + return m.ClientSampling + } + return nil +} + +func (m *HttpConnectionManager_Tracing) GetRandomSampling() *v33.Percent { + if m != nil { + return m.RandomSampling + } + return nil +} + +func (m *HttpConnectionManager_Tracing) GetOverallSampling() *v33.Percent { + if m != nil { + return m.OverallSampling + } + return nil +} + +func (m *HttpConnectionManager_Tracing) GetVerbose() bool { + if m != nil { + return m.Verbose + } + return false +} + +func (m *HttpConnectionManager_Tracing) GetMaxPathTagLength() *wrappers.UInt32Value { + if m != nil { + return m.MaxPathTagLength + } + return nil +} + +func (m *HttpConnectionManager_Tracing) GetCustomTags() []*v34.CustomTag { + if m != nil { + return m.CustomTags + } + return nil +} + +func (m *HttpConnectionManager_Tracing) GetProvider() *v35.Tracing_Http { + if m != nil { + return m.Provider + } + return nil +} + +type HttpConnectionManager_InternalAddressConfig struct { + UnixSockets bool `protobuf:"varint,1,opt,name=unix_sockets,json=unixSockets,proto3" json:"unix_sockets,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HttpConnectionManager_InternalAddressConfig) Reset() { + *m = HttpConnectionManager_InternalAddressConfig{} +} +func (m *HttpConnectionManager_InternalAddressConfig) String() string { + return proto.CompactTextString(m) +} +func (*HttpConnectionManager_InternalAddressConfig) ProtoMessage() {} +func (*HttpConnectionManager_InternalAddressConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{0, 1} +} + +func (m *HttpConnectionManager_InternalAddressConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HttpConnectionManager_InternalAddressConfig.Unmarshal(m, b) +} +func (m *HttpConnectionManager_InternalAddressConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HttpConnectionManager_InternalAddressConfig.Marshal(b, m, deterministic) +} +func (m *HttpConnectionManager_InternalAddressConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_HttpConnectionManager_InternalAddressConfig.Merge(m, src) +} +func (m *HttpConnectionManager_InternalAddressConfig) XXX_Size() int { + return xxx_messageInfo_HttpConnectionManager_InternalAddressConfig.Size(m) +} +func (m *HttpConnectionManager_InternalAddressConfig) XXX_DiscardUnknown() { + xxx_messageInfo_HttpConnectionManager_InternalAddressConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_HttpConnectionManager_InternalAddressConfig proto.InternalMessageInfo + +func (m *HttpConnectionManager_InternalAddressConfig) GetUnixSockets() bool { + if m != nil { + return m.UnixSockets + } + return false +} + +type HttpConnectionManager_SetCurrentClientCertDetails struct { + Subject *wrappers.BoolValue `protobuf:"bytes,1,opt,name=subject,proto3" json:"subject,omitempty"` + Cert bool `protobuf:"varint,3,opt,name=cert,proto3" json:"cert,omitempty"` + Chain bool `protobuf:"varint,6,opt,name=chain,proto3" json:"chain,omitempty"` + Dns bool `protobuf:"varint,4,opt,name=dns,proto3" json:"dns,omitempty"` + Uri bool `protobuf:"varint,5,opt,name=uri,proto3" json:"uri,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HttpConnectionManager_SetCurrentClientCertDetails) Reset() { + *m = HttpConnectionManager_SetCurrentClientCertDetails{} +} +func (m *HttpConnectionManager_SetCurrentClientCertDetails) String() string { + return proto.CompactTextString(m) +} +func (*HttpConnectionManager_SetCurrentClientCertDetails) ProtoMessage() {} +func (*HttpConnectionManager_SetCurrentClientCertDetails) Descriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{0, 2} +} + +func (m *HttpConnectionManager_SetCurrentClientCertDetails) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HttpConnectionManager_SetCurrentClientCertDetails.Unmarshal(m, b) +} +func (m *HttpConnectionManager_SetCurrentClientCertDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HttpConnectionManager_SetCurrentClientCertDetails.Marshal(b, m, deterministic) +} +func (m *HttpConnectionManager_SetCurrentClientCertDetails) XXX_Merge(src proto.Message) { + xxx_messageInfo_HttpConnectionManager_SetCurrentClientCertDetails.Merge(m, src) +} +func (m *HttpConnectionManager_SetCurrentClientCertDetails) XXX_Size() int { + return xxx_messageInfo_HttpConnectionManager_SetCurrentClientCertDetails.Size(m) +} +func (m *HttpConnectionManager_SetCurrentClientCertDetails) XXX_DiscardUnknown() { + xxx_messageInfo_HttpConnectionManager_SetCurrentClientCertDetails.DiscardUnknown(m) +} + +var xxx_messageInfo_HttpConnectionManager_SetCurrentClientCertDetails proto.InternalMessageInfo + +func (m *HttpConnectionManager_SetCurrentClientCertDetails) GetSubject() *wrappers.BoolValue { + if m != nil { + return m.Subject + } + return nil +} + +func (m *HttpConnectionManager_SetCurrentClientCertDetails) GetCert() bool { + if m != nil { + return m.Cert + } + return false +} + +func (m *HttpConnectionManager_SetCurrentClientCertDetails) GetChain() bool { + if m != nil { + return m.Chain + } + return false +} + +func (m *HttpConnectionManager_SetCurrentClientCertDetails) GetDns() bool { + if m != nil { + return m.Dns + } + return false +} + +func (m *HttpConnectionManager_SetCurrentClientCertDetails) GetUri() bool { + if m != nil { + return m.Uri + } + return false +} + +type HttpConnectionManager_UpgradeConfig struct { + UpgradeType string `protobuf:"bytes,1,opt,name=upgrade_type,json=upgradeType,proto3" json:"upgrade_type,omitempty"` + Filters []*HttpFilter `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"` + Enabled *wrappers.BoolValue `protobuf:"bytes,3,opt,name=enabled,proto3" json:"enabled,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HttpConnectionManager_UpgradeConfig) Reset() { *m = HttpConnectionManager_UpgradeConfig{} } +func (m *HttpConnectionManager_UpgradeConfig) String() string { return proto.CompactTextString(m) } +func (*HttpConnectionManager_UpgradeConfig) ProtoMessage() {} +func (*HttpConnectionManager_UpgradeConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{0, 3} +} + +func (m *HttpConnectionManager_UpgradeConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HttpConnectionManager_UpgradeConfig.Unmarshal(m, b) +} +func (m *HttpConnectionManager_UpgradeConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HttpConnectionManager_UpgradeConfig.Marshal(b, m, deterministic) +} +func (m *HttpConnectionManager_UpgradeConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_HttpConnectionManager_UpgradeConfig.Merge(m, src) +} +func (m *HttpConnectionManager_UpgradeConfig) XXX_Size() int { + return xxx_messageInfo_HttpConnectionManager_UpgradeConfig.Size(m) +} +func (m *HttpConnectionManager_UpgradeConfig) XXX_DiscardUnknown() { + xxx_messageInfo_HttpConnectionManager_UpgradeConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_HttpConnectionManager_UpgradeConfig proto.InternalMessageInfo + +func (m *HttpConnectionManager_UpgradeConfig) GetUpgradeType() string { + if m != nil { + return m.UpgradeType + } + return "" +} + +func (m *HttpConnectionManager_UpgradeConfig) GetFilters() []*HttpFilter { + if m != nil { + return m.Filters + } + return nil +} + +func (m *HttpConnectionManager_UpgradeConfig) GetEnabled() *wrappers.BoolValue { + if m != nil { + return m.Enabled + } + return nil +} + +type Rds struct { + ConfigSource *v31.ConfigSource `protobuf:"bytes,1,opt,name=config_source,json=configSource,proto3" json:"config_source,omitempty"` + RouteConfigName string `protobuf:"bytes,2,opt,name=route_config_name,json=routeConfigName,proto3" json:"route_config_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Rds) Reset() { *m = Rds{} } +func (m *Rds) String() string { return proto.CompactTextString(m) } +func (*Rds) ProtoMessage() {} +func (*Rds) Descriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{1} +} + +func (m *Rds) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Rds.Unmarshal(m, b) +} +func (m *Rds) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Rds.Marshal(b, m, deterministic) +} +func (m *Rds) XXX_Merge(src proto.Message) { + xxx_messageInfo_Rds.Merge(m, src) +} +func (m *Rds) XXX_Size() int { + return xxx_messageInfo_Rds.Size(m) +} +func (m *Rds) XXX_DiscardUnknown() { + xxx_messageInfo_Rds.DiscardUnknown(m) +} + +var xxx_messageInfo_Rds proto.InternalMessageInfo + +func (m *Rds) GetConfigSource() *v31.ConfigSource { + if m != nil { + return m.ConfigSource + } + return nil +} + +func (m *Rds) GetRouteConfigName() string { + if m != nil { + return m.RouteConfigName + } + return "" +} + +type ScopedRouteConfigurationsList struct { + ScopedRouteConfigurations []*v3.ScopedRouteConfiguration `protobuf:"bytes,1,rep,name=scoped_route_configurations,json=scopedRouteConfigurations,proto3" json:"scoped_route_configurations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ScopedRouteConfigurationsList) Reset() { *m = ScopedRouteConfigurationsList{} } +func (m *ScopedRouteConfigurationsList) String() string { return proto.CompactTextString(m) } +func (*ScopedRouteConfigurationsList) ProtoMessage() {} +func (*ScopedRouteConfigurationsList) Descriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{2} +} + +func (m *ScopedRouteConfigurationsList) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ScopedRouteConfigurationsList.Unmarshal(m, b) +} +func (m *ScopedRouteConfigurationsList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ScopedRouteConfigurationsList.Marshal(b, m, deterministic) +} +func (m *ScopedRouteConfigurationsList) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScopedRouteConfigurationsList.Merge(m, src) +} +func (m *ScopedRouteConfigurationsList) XXX_Size() int { + return xxx_messageInfo_ScopedRouteConfigurationsList.Size(m) +} +func (m *ScopedRouteConfigurationsList) XXX_DiscardUnknown() { + xxx_messageInfo_ScopedRouteConfigurationsList.DiscardUnknown(m) +} + +var xxx_messageInfo_ScopedRouteConfigurationsList proto.InternalMessageInfo + +func (m *ScopedRouteConfigurationsList) GetScopedRouteConfigurations() []*v3.ScopedRouteConfiguration { + if m != nil { + return m.ScopedRouteConfigurations + } + return nil +} + +type ScopedRoutes struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + ScopeKeyBuilder *ScopedRoutes_ScopeKeyBuilder `protobuf:"bytes,2,opt,name=scope_key_builder,json=scopeKeyBuilder,proto3" json:"scope_key_builder,omitempty"` + RdsConfigSource *v31.ConfigSource `protobuf:"bytes,3,opt,name=rds_config_source,json=rdsConfigSource,proto3" json:"rds_config_source,omitempty"` + // Types that are valid to be assigned to ConfigSpecifier: + // *ScopedRoutes_ScopedRouteConfigurationsList + // *ScopedRoutes_ScopedRds + ConfigSpecifier isScopedRoutes_ConfigSpecifier `protobuf_oneof:"config_specifier"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ScopedRoutes) Reset() { *m = ScopedRoutes{} } +func (m *ScopedRoutes) String() string { return proto.CompactTextString(m) } +func (*ScopedRoutes) ProtoMessage() {} +func (*ScopedRoutes) Descriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{3} +} + +func (m *ScopedRoutes) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ScopedRoutes.Unmarshal(m, b) +} +func (m *ScopedRoutes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ScopedRoutes.Marshal(b, m, deterministic) +} +func (m *ScopedRoutes) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScopedRoutes.Merge(m, src) +} +func (m *ScopedRoutes) XXX_Size() int { + return xxx_messageInfo_ScopedRoutes.Size(m) +} +func (m *ScopedRoutes) XXX_DiscardUnknown() { + xxx_messageInfo_ScopedRoutes.DiscardUnknown(m) +} + +var xxx_messageInfo_ScopedRoutes proto.InternalMessageInfo + +func (m *ScopedRoutes) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *ScopedRoutes) GetScopeKeyBuilder() *ScopedRoutes_ScopeKeyBuilder { + if m != nil { + return m.ScopeKeyBuilder + } + return nil +} + +func (m *ScopedRoutes) GetRdsConfigSource() *v31.ConfigSource { + if m != nil { + return m.RdsConfigSource + } + return nil +} + +type isScopedRoutes_ConfigSpecifier interface { + isScopedRoutes_ConfigSpecifier() +} + +type ScopedRoutes_ScopedRouteConfigurationsList struct { + ScopedRouteConfigurationsList *ScopedRouteConfigurationsList `protobuf:"bytes,4,opt,name=scoped_route_configurations_list,json=scopedRouteConfigurationsList,proto3,oneof"` +} + +type ScopedRoutes_ScopedRds struct { + ScopedRds *ScopedRds `protobuf:"bytes,5,opt,name=scoped_rds,json=scopedRds,proto3,oneof"` +} + +func (*ScopedRoutes_ScopedRouteConfigurationsList) isScopedRoutes_ConfigSpecifier() {} + +func (*ScopedRoutes_ScopedRds) isScopedRoutes_ConfigSpecifier() {} + +func (m *ScopedRoutes) GetConfigSpecifier() isScopedRoutes_ConfigSpecifier { + if m != nil { + return m.ConfigSpecifier + } + return nil +} + +func (m *ScopedRoutes) GetScopedRouteConfigurationsList() *ScopedRouteConfigurationsList { + if x, ok := m.GetConfigSpecifier().(*ScopedRoutes_ScopedRouteConfigurationsList); ok { + return x.ScopedRouteConfigurationsList + } + return nil +} + +func (m *ScopedRoutes) GetScopedRds() *ScopedRds { + if x, ok := m.GetConfigSpecifier().(*ScopedRoutes_ScopedRds); ok { + return x.ScopedRds + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ScopedRoutes) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ScopedRoutes_ScopedRouteConfigurationsList)(nil), + (*ScopedRoutes_ScopedRds)(nil), + } +} + +type ScopedRoutes_ScopeKeyBuilder struct { + Fragments []*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder `protobuf:"bytes,1,rep,name=fragments,proto3" json:"fragments,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ScopedRoutes_ScopeKeyBuilder) Reset() { *m = ScopedRoutes_ScopeKeyBuilder{} } +func (m *ScopedRoutes_ScopeKeyBuilder) String() string { return proto.CompactTextString(m) } +func (*ScopedRoutes_ScopeKeyBuilder) ProtoMessage() {} +func (*ScopedRoutes_ScopeKeyBuilder) Descriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{3, 0} +} + +func (m *ScopedRoutes_ScopeKeyBuilder) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder.Unmarshal(m, b) +} +func (m *ScopedRoutes_ScopeKeyBuilder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder.Marshal(b, m, deterministic) +} +func (m *ScopedRoutes_ScopeKeyBuilder) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder.Merge(m, src) +} +func (m *ScopedRoutes_ScopeKeyBuilder) XXX_Size() int { + return xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder.Size(m) +} +func (m *ScopedRoutes_ScopeKeyBuilder) XXX_DiscardUnknown() { + xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder.DiscardUnknown(m) +} + +var xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder proto.InternalMessageInfo + +func (m *ScopedRoutes_ScopeKeyBuilder) GetFragments() []*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder { + if m != nil { + return m.Fragments + } + return nil +} + +type ScopedRoutes_ScopeKeyBuilder_FragmentBuilder struct { + // Types that are valid to be assigned to Type: + // *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_ + Type isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) Reset() { + *m = ScopedRoutes_ScopeKeyBuilder_FragmentBuilder{} +} +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) String() string { + return proto.CompactTextString(m) +} +func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) ProtoMessage() {} +func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) Descriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{3, 0, 0} +} + +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder.Unmarshal(m, b) +} +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder.Marshal(b, m, deterministic) +} +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder.Merge(m, src) +} +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) XXX_Size() int { + return xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder.Size(m) +} +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) XXX_DiscardUnknown() { + xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder.DiscardUnknown(m) +} + +var xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder proto.InternalMessageInfo + +type isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_Type interface { + isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_Type() +} + +type ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_ struct { + HeaderValueExtractor *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor `protobuf:"bytes,1,opt,name=header_value_extractor,json=headerValueExtractor,proto3,oneof"` +} + +func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_) isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_Type() { +} + +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) GetType() isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) GetHeaderValueExtractor() *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor { + if x, ok := m.GetType().(*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_); ok { + return x.HeaderValueExtractor + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_)(nil), + } +} + +type ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + ElementSeparator string `protobuf:"bytes,2,opt,name=element_separator,json=elementSeparator,proto3" json:"element_separator,omitempty"` + // Types that are valid to be assigned to ExtractType: + // *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Index + // *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Element + ExtractType isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_ExtractType `protobuf_oneof:"extract_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) Reset() { + *m = ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor{} +} +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) String() string { + return proto.CompactTextString(m) +} +func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) ProtoMessage() {} +func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) Descriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{3, 0, 0, 0} +} + +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor.Unmarshal(m, b) +} +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor.Marshal(b, m, deterministic) +} +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor.Merge(m, src) +} +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) XXX_Size() int { + return xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor.Size(m) +} +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) XXX_DiscardUnknown() { + xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor.DiscardUnknown(m) +} + +var xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor proto.InternalMessageInfo + +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) GetElementSeparator() string { + if m != nil { + return m.ElementSeparator + } + return "" +} + +type isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_ExtractType interface { + isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_ExtractType() +} + +type ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Index struct { + Index uint32 `protobuf:"varint,3,opt,name=index,proto3,oneof"` +} + +type ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Element struct { + Element *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement `protobuf:"bytes,4,opt,name=element,proto3,oneof"` +} + +func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Index) isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_ExtractType() { +} + +func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Element) isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_ExtractType() { +} + +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) GetExtractType() isScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_ExtractType { + if m != nil { + return m.ExtractType + } + return nil +} + +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) GetIndex() uint32 { + if x, ok := m.GetExtractType().(*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Index); ok { + return x.Index + } + return 0 +} + +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) GetElement() *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement { + if x, ok := m.GetExtractType().(*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Element); ok { + return x.Element + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Index)(nil), + (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Element)(nil), + } +} + +type ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement struct { + Separator string `protobuf:"bytes,1,opt,name=separator,proto3" json:"separator,omitempty"` + Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement) Reset() { + *m = ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement{} +} +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement) String() string { + return proto.CompactTextString(m) +} +func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement) ProtoMessage() {} +func (*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement) Descriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{3, 0, 0, 0, 0} +} + +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement.Unmarshal(m, b) +} +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement.Marshal(b, m, deterministic) +} +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement.Merge(m, src) +} +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement) XXX_Size() int { + return xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement.Size(m) +} +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement) XXX_DiscardUnknown() { + xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement.DiscardUnknown(m) +} + +var xxx_messageInfo_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement proto.InternalMessageInfo + +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement) GetSeparator() string { + if m != nil { + return m.Separator + } + return "" +} + +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement) GetKey() string { + if m != nil { + return m.Key + } + return "" +} + +type ScopedRds struct { + ScopedRdsConfigSource *v31.ConfigSource `protobuf:"bytes,1,opt,name=scoped_rds_config_source,json=scopedRdsConfigSource,proto3" json:"scoped_rds_config_source,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ScopedRds) Reset() { *m = ScopedRds{} } +func (m *ScopedRds) String() string { return proto.CompactTextString(m) } +func (*ScopedRds) ProtoMessage() {} +func (*ScopedRds) Descriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{4} +} + +func (m *ScopedRds) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ScopedRds.Unmarshal(m, b) +} +func (m *ScopedRds) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ScopedRds.Marshal(b, m, deterministic) +} +func (m *ScopedRds) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScopedRds.Merge(m, src) +} +func (m *ScopedRds) XXX_Size() int { + return xxx_messageInfo_ScopedRds.Size(m) +} +func (m *ScopedRds) XXX_DiscardUnknown() { + xxx_messageInfo_ScopedRds.DiscardUnknown(m) +} + +var xxx_messageInfo_ScopedRds proto.InternalMessageInfo + +func (m *ScopedRds) GetScopedRdsConfigSource() *v31.ConfigSource { + if m != nil { + return m.ScopedRdsConfigSource + } + return nil +} + +type HttpFilter struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Types that are valid to be assigned to ConfigType: + // *HttpFilter_HiddenEnvoyDeprecatedConfig + // *HttpFilter_TypedConfig + ConfigType isHttpFilter_ConfigType `protobuf_oneof:"config_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HttpFilter) Reset() { *m = HttpFilter{} } +func (m *HttpFilter) String() string { return proto.CompactTextString(m) } +func (*HttpFilter) ProtoMessage() {} +func (*HttpFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{5} +} + +func (m *HttpFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HttpFilter.Unmarshal(m, b) +} +func (m *HttpFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HttpFilter.Marshal(b, m, deterministic) +} +func (m *HttpFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_HttpFilter.Merge(m, src) +} +func (m *HttpFilter) XXX_Size() int { + return xxx_messageInfo_HttpFilter.Size(m) +} +func (m *HttpFilter) XXX_DiscardUnknown() { + xxx_messageInfo_HttpFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_HttpFilter proto.InternalMessageInfo + +func (m *HttpFilter) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type isHttpFilter_ConfigType interface { + isHttpFilter_ConfigType() +} + +type HttpFilter_HiddenEnvoyDeprecatedConfig struct { + HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"` +} + +type HttpFilter_TypedConfig struct { + TypedConfig *any.Any `protobuf:"bytes,4,opt,name=typed_config,json=typedConfig,proto3,oneof"` +} + +func (*HttpFilter_HiddenEnvoyDeprecatedConfig) isHttpFilter_ConfigType() {} + +func (*HttpFilter_TypedConfig) isHttpFilter_ConfigType() {} + +func (m *HttpFilter) GetConfigType() isHttpFilter_ConfigType { + if m != nil { + return m.ConfigType + } + return nil +} + +// Deprecated: Do not use. +func (m *HttpFilter) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct { + if x, ok := m.GetConfigType().(*HttpFilter_HiddenEnvoyDeprecatedConfig); ok { + return x.HiddenEnvoyDeprecatedConfig + } + return nil +} + +func (m *HttpFilter) GetTypedConfig() *any.Any { + if x, ok := m.GetConfigType().(*HttpFilter_TypedConfig); ok { + return x.TypedConfig + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*HttpFilter) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*HttpFilter_HiddenEnvoyDeprecatedConfig)(nil), + (*HttpFilter_TypedConfig)(nil), + } +} + +type RequestIDExtension struct { + TypedConfig *any.Any `protobuf:"bytes,1,opt,name=typed_config,json=typedConfig,proto3" json:"typed_config,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RequestIDExtension) Reset() { *m = RequestIDExtension{} } +func (m *RequestIDExtension) String() string { return proto.CompactTextString(m) } +func (*RequestIDExtension) ProtoMessage() {} +func (*RequestIDExtension) Descriptor() ([]byte, []int) { + return fileDescriptor_7f8b1b876d9c097a, []int{6} +} + +func (m *RequestIDExtension) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RequestIDExtension.Unmarshal(m, b) +} +func (m *RequestIDExtension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RequestIDExtension.Marshal(b, m, deterministic) +} +func (m *RequestIDExtension) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestIDExtension.Merge(m, src) +} +func (m *RequestIDExtension) XXX_Size() int { + return xxx_messageInfo_RequestIDExtension.Size(m) +} +func (m *RequestIDExtension) XXX_DiscardUnknown() { + xxx_messageInfo_RequestIDExtension.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestIDExtension proto.InternalMessageInfo + +func (m *RequestIDExtension) GetTypedConfig() *any.Any { + if m != nil { + return m.TypedConfig + } + return nil +} + +func init() { + proto.RegisterEnum("envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager_CodecType", HttpConnectionManager_CodecType_name, HttpConnectionManager_CodecType_value) + proto.RegisterEnum("envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager_ServerHeaderTransformation", HttpConnectionManager_ServerHeaderTransformation_name, HttpConnectionManager_ServerHeaderTransformation_value) + proto.RegisterEnum("envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager_ForwardClientCertDetails", HttpConnectionManager_ForwardClientCertDetails_name, HttpConnectionManager_ForwardClientCertDetails_value) + proto.RegisterEnum("envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager_Tracing_OperationName", HttpConnectionManager_Tracing_OperationName_name, HttpConnectionManager_Tracing_OperationName_value) + proto.RegisterType((*HttpConnectionManager)(nil), "envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager") + proto.RegisterType((*HttpConnectionManager_Tracing)(nil), "envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing") + proto.RegisterType((*HttpConnectionManager_InternalAddressConfig)(nil), "envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.InternalAddressConfig") + proto.RegisterType((*HttpConnectionManager_SetCurrentClientCertDetails)(nil), "envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.SetCurrentClientCertDetails") + proto.RegisterType((*HttpConnectionManager_UpgradeConfig)(nil), "envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.UpgradeConfig") + proto.RegisterType((*Rds)(nil), "envoy.extensions.filters.network.http_connection_manager.v3.Rds") + proto.RegisterType((*ScopedRouteConfigurationsList)(nil), "envoy.extensions.filters.network.http_connection_manager.v3.ScopedRouteConfigurationsList") + proto.RegisterType((*ScopedRoutes)(nil), "envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes") + proto.RegisterType((*ScopedRoutes_ScopeKeyBuilder)(nil), "envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder") + proto.RegisterType((*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder)(nil), "envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder.FragmentBuilder") + proto.RegisterType((*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor)(nil), "envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder.FragmentBuilder.HeaderValueExtractor") + proto.RegisterType((*ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement)(nil), "envoy.extensions.filters.network.http_connection_manager.v3.ScopedRoutes.ScopeKeyBuilder.FragmentBuilder.HeaderValueExtractor.KvElement") + proto.RegisterType((*ScopedRds)(nil), "envoy.extensions.filters.network.http_connection_manager.v3.ScopedRds") + proto.RegisterType((*HttpFilter)(nil), "envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter") + proto.RegisterType((*RequestIDExtension)(nil), "envoy.extensions.filters.network.http_connection_manager.v3.RequestIDExtension") +} + +func init() { + proto.RegisterFile("envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto", fileDescriptor_7f8b1b876d9c097a) +} + +var fileDescriptor_7f8b1b876d9c097a = []byte{ + // 2751 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcb, 0x6f, 0x23, 0xc7, + 0xd1, 0xd7, 0x50, 0xd2, 0x8a, 0x2c, 0x52, 0xd2, 0xa8, 0x57, 0xd2, 0x8e, 0x28, 0xed, 0x5a, 0xcb, + 0xf5, 0x67, 0xc8, 0xfb, 0x05, 0xd4, 0xae, 0x64, 0x38, 0x08, 0x13, 0xc4, 0x26, 0xb5, 0xd2, 0x92, + 0xbb, 0x6b, 0x49, 0x19, 0x72, 0x6d, 0xef, 0xc6, 0xc8, 0xb8, 0x35, 0xd3, 0x24, 0x67, 0x45, 0xce, + 0x8c, 0xbb, 0x87, 0xb4, 0xe4, 0x43, 0x1e, 0x06, 0x0c, 0x38, 0xc9, 0xc1, 0x48, 0x72, 0x09, 0x72, + 0x49, 0x2e, 0x46, 0x6e, 0x39, 0x05, 0x41, 0x1e, 0xe7, 0x00, 0x39, 0x05, 0x49, 0x80, 0x1c, 0x82, + 0xfc, 0x05, 0xb9, 0xe4, 0x90, 0x4b, 0x02, 0xe7, 0x12, 0xf4, 0x63, 0xf8, 0x90, 0x48, 0x0a, 0xb0, + 0x24, 0xfb, 0xd6, 0xd3, 0x5d, 0xf5, 0xab, 0xea, 0xea, 0xaa, 0xea, 0xea, 0x1a, 0x78, 0x42, 0xbc, + 0xb6, 0x7f, 0xbc, 0x4e, 0x8e, 0x42, 0xe2, 0x31, 0xd7, 0xf7, 0xd8, 0x7a, 0xd5, 0x6d, 0x84, 0x84, + 0xb2, 0x75, 0x8f, 0x84, 0xef, 0xfa, 0xf4, 0x70, 0xbd, 0x1e, 0x86, 0x81, 0x65, 0xfb, 0x9e, 0x47, + 0xec, 0xd0, 0xf5, 0x3d, 0xab, 0x89, 0x3d, 0x5c, 0x23, 0x74, 0xbd, 0xbd, 0x39, 0x6c, 0x29, 0x1b, + 0x50, 0x3f, 0xf4, 0xd1, 0x97, 0x05, 0x74, 0xb6, 0x0b, 0x9d, 0x55, 0xd0, 0x59, 0x05, 0x9d, 0x1d, + 0xc6, 0xdf, 0xde, 0x4c, 0xbf, 0x28, 0xf5, 0xb2, 0x7d, 0xaf, 0xea, 0xd6, 0xd6, 0xb1, 0x6d, 0x13, + 0xc6, 0x1a, 0x7e, 0x8d, 0x4b, 0xed, 0x7c, 0x48, 0x39, 0xe9, 0xb5, 0x3e, 0x52, 0xdb, 0xa7, 0x84, + 0x53, 0xc9, 0x4f, 0x8b, 0xf9, 0x2d, 0x6a, 0x13, 0x45, 0x79, 0x6b, 0x20, 0xa5, 0x58, 0xb3, 0xfd, + 0x86, 0x22, 0xba, 0xd9, 0x47, 0x44, 0xfd, 0x56, 0x28, 0xa8, 0xc4, 0x60, 0xa0, 0xc4, 0x0e, 0x09, + 0xb3, 0xfd, 0x80, 0x38, 0x56, 0x2f, 0x65, 0x3f, 0x58, 0x48, 0xb1, 0x2d, 0x28, 0xc5, 0x40, 0x91, + 0xbc, 0x20, 0x49, 0xc2, 0xe3, 0x80, 0x88, 0x79, 0xd7, 0x13, 0xbb, 0xb4, 0x5b, 0x2c, 0xf4, 0x9b, + 0x56, 0x88, 0xa3, 0x6d, 0x2e, 0xf7, 0xd0, 0x71, 0xad, 0x09, 0xb5, 0x89, 0x17, 0xaa, 0xc5, 0xa5, + 0x9a, 0xef, 0xd7, 0x1a, 0x44, 0xee, 0xe5, 0xa0, 0x55, 0x5d, 0xc7, 0xde, 0xb1, 0x5a, 0xba, 0x71, + 0x72, 0xc9, 0x69, 0x51, 0xcc, 0xcd, 0xad, 0xd6, 0x57, 0x4e, 0xae, 0xb3, 0x90, 0xb6, 0xec, 0x70, + 0x18, 0xf7, 0xbb, 0x14, 0x07, 0x01, 0x3f, 0xc4, 0x3e, 0x93, 0x62, 0xcf, 0xf3, 0x43, 0x81, 0xca, + 0xd6, 0x1d, 0x12, 0x50, 0x62, 0xf7, 0x8a, 0xb8, 0xde, 0x72, 0x02, 0xdc, 0x47, 0xc3, 0x42, 0x1c, + 0xb6, 0x22, 0x8c, 0x9b, 0xa7, 0x96, 0xdb, 0x84, 0x72, 0x8f, 0x71, 0xbd, 0x68, 0xf3, 0xd7, 0xda, + 0xb8, 0xe1, 0x3a, 0x98, 0xdb, 0x59, 0x0d, 0xe4, 0x42, 0xe6, 0x47, 0x2f, 0xc2, 0x42, 0x31, 0x0c, + 0x83, 0xad, 0x8e, 0x17, 0xbd, 0x26, 0x9d, 0x08, 0x7d, 0xa0, 0x01, 0xd8, 0xbe, 0x43, 0x6c, 0x8b, + 0x9b, 0xcc, 0xd0, 0x56, 0xb5, 0xb5, 0x99, 0x8d, 0xb7, 0xb2, 0xe7, 0x70, 0xca, 0xec, 0x40, 0x41, + 0xd9, 0x2d, 0x2e, 0xa4, 0x72, 0x1c, 0x90, 0x42, 0xfc, 0x93, 0xc2, 0xe4, 0xfb, 0x5a, 0x4c, 0xd7, + 0xcc, 0x84, 0x1d, 0x4d, 0xa2, 0x35, 0x48, 0xf2, 0xdd, 0x5a, 0x01, 0x25, 0x55, 0xf7, 0xc8, 0x88, + 0xad, 0x6a, 0x6b, 0x89, 0xc2, 0xd4, 0x27, 0x85, 0x09, 0x1a, 0x5b, 0xd5, 0x4c, 0xe0, 0x6b, 0xfb, + 0x62, 0x09, 0x55, 0x60, 0x9c, 0x3a, 0xcc, 0x18, 0x5f, 0xd5, 0xd6, 0x92, 0x1b, 0xaf, 0x9e, 0x4b, + 0x53, 0xd3, 0x61, 0xc5, 0x31, 0x93, 0xc3, 0xa1, 0x5d, 0x48, 0x09, 0x8f, 0xb4, 0xa4, 0x13, 0x1a, + 0x13, 0x02, 0xfe, 0x45, 0x05, 0x2f, 0x27, 0xb3, 0xd2, 0x67, 0x39, 0x23, 0x1f, 0x6c, 0x89, 0x49, + 0xe5, 0x26, 0xc5, 0x31, 0x33, 0x49, 0xbb, 0xb3, 0x28, 0x80, 0xe9, 0x5e, 0x47, 0x67, 0xc6, 0x73, + 0x02, 0xb0, 0x74, 0x2e, 0x7d, 0xcb, 0x02, 0x51, 0x08, 0xe7, 0x8a, 0xa7, 0x58, 0xcf, 0x37, 0x7a, + 0x06, 0x29, 0xc1, 0xaa, 0xf0, 0x8c, 0xc9, 0xd5, 0xf1, 0xb5, 0xe4, 0xc6, 0xfd, 0x73, 0x1f, 0xe5, + 0x8e, 0x20, 0x37, 0x93, 0xf5, 0xce, 0x98, 0xa1, 0x57, 0x61, 0x06, 0x3b, 0x8e, 0xd5, 0x62, 0x84, + 0x5a, 0xb8, 0x46, 0xbc, 0xd0, 0xb8, 0x22, 0xb6, 0x97, 0xce, 0xca, 0x40, 0xc8, 0x46, 0x81, 0x90, + 0x2d, 0xf8, 0x7e, 0xe3, 0x75, 0xdc, 0x68, 0x11, 0x33, 0x85, 0x1d, 0xe7, 0x31, 0x23, 0x34, 0xcf, + 0xe9, 0x51, 0x08, 0x53, 0x2a, 0x8c, 0x8d, 0x29, 0xc1, 0xfa, 0xf4, 0x12, 0x7c, 0xae, 0x22, 0x25, + 0x98, 0x91, 0x28, 0xf4, 0x0c, 0x56, 0x6c, 0xbf, 0xd9, 0xf4, 0x3d, 0x4b, 0x60, 0x45, 0x39, 0xcd, + 0xf2, 0x03, 0x11, 0x51, 0xc6, 0xad, 0x41, 0xa7, 0xce, 0x33, 0x60, 0x24, 0x63, 0x5f, 0x71, 0xec, + 0x49, 0x06, 0x73, 0x49, 0xc2, 0x0d, 0x58, 0x42, 0xdf, 0x80, 0x85, 0xc1, 0x42, 0xe2, 0x42, 0xc8, + 0xed, 0xe1, 0x42, 0xee, 0x9e, 0x94, 0x72, 0xb5, 0x3e, 0x00, 0xff, 0x6d, 0x58, 0xe4, 0xd3, 0x1b, + 0xa7, 0x05, 0x24, 0xce, 0x12, 0xb0, 0x71, 0x52, 0xc0, 0x7c, 0x7d, 0xc0, 0x2c, 0x7a, 0x0e, 0x92, + 0x8c, 0xd0, 0x36, 0xa1, 0x96, 0x87, 0x9b, 0xc4, 0x00, 0x1e, 0x93, 0x26, 0xc8, 0xa9, 0x5d, 0xdc, + 0x24, 0xe8, 0x37, 0x1a, 0xac, 0x28, 0x8a, 0x3a, 0xc1, 0x0e, 0xa1, 0x56, 0x48, 0xb1, 0xc7, 0xaa, + 0x3e, 0x6d, 0x8a, 0xa0, 0x30, 0x32, 0x22, 0x9d, 0x34, 0x2f, 0xe1, 0x68, 0xcb, 0x42, 0x6c, 0x51, + 0x48, 0xad, 0xf4, 0x09, 0xed, 0xc9, 0x2f, 0x69, 0x36, 0x94, 0x0a, 0xbd, 0x05, 0x8b, 0x4d, 0x7c, + 0x64, 0x51, 0xf2, 0x4e, 0x8b, 0xb0, 0x50, 0xe9, 0xcf, 0xac, 0xc3, 0x03, 0xe3, 0xba, 0x30, 0xdf, + 0xca, 0x29, 0x57, 0x7e, 0x5c, 0xf2, 0xc2, 0xcd, 0x0d, 0xe1, 0xcc, 0x85, 0xc4, 0x27, 0x85, 0x2b, + 0xb7, 0x27, 0x8c, 0xb7, 0x57, 0xc7, 0xcc, 0xab, 0x4d, 0x7c, 0x64, 0x4a, 0x14, 0x29, 0x88, 0x3d, + 0x3c, 0x40, 0x0c, 0x9e, 0xaf, 0xbb, 0x8e, 0x43, 0x3c, 0x4b, 0x6c, 0xdd, 0x8a, 0xb2, 0x3d, 0x71, + 0x2c, 0xd7, 0x69, 0x10, 0x2b, 0x74, 0x9b, 0xc4, 0x6f, 0x85, 0x46, 0x52, 0xc8, 0x5a, 0x3a, 0x25, + 0xeb, 0x9e, 0x4a, 0x2b, 0x85, 0xf8, 0xaf, 0xff, 0xf9, 0xaf, 0xbf, 0x4c, 0x6a, 0x86, 0x66, 0xae, + 0x4a, 0xc0, 0x6d, 0x8e, 0x77, 0xaf, 0x03, 0x57, 0x72, 0x1a, 0xa4, 0x22, 0xc1, 0x50, 0x09, 0xae, + 0xb2, 0x90, 0x12, 0xdc, 0xec, 0x97, 0x61, 0x9c, 0x21, 0xc3, 0x9c, 0x93, 0x5c, 0xbd, 0x50, 0x05, + 0x98, 0x8d, 0x2c, 0x13, 0xc1, 0xac, 0x9c, 0x05, 0x33, 0xa3, 0x38, 0x22, 0x8c, 0xaf, 0xc2, 0xb4, + 0x43, 0xb1, 0xeb, 0x75, 0x10, 0x52, 0x67, 0x21, 0xa4, 0x04, 0x7d, 0xc4, 0xff, 0x1a, 0x2c, 0x38, + 0xa4, 0x81, 0x8f, 0x89, 0x63, 0xd9, 0x0d, 0x9f, 0x75, 0x37, 0x94, 0x3e, 0x0b, 0xe7, 0xaa, 0xe2, + 0xdb, 0xe2, 0x6c, 0x11, 0xdc, 0x16, 0x80, 0xac, 0x89, 0xac, 0x86, 0x5f, 0x33, 0xa6, 0x45, 0x76, + 0x7c, 0xbe, 0x3f, 0x46, 0xba, 0x35, 0x53, 0x7b, 0x33, 0x9b, 0x17, 0x1f, 0x8f, 0xfc, 0x9a, 0x99, + 0xc0, 0xd1, 0x10, 0x15, 0x01, 0xb5, 0x18, 0xb1, 0x28, 0x69, 0xfa, 0x21, 0xb1, 0xb0, 0xe3, 0x50, + 0xc2, 0x98, 0x31, 0x73, 0x66, 0xf2, 0xd3, 0x5b, 0x8c, 0x98, 0x82, 0x29, 0x2f, 0x79, 0xd0, 0x3a, + 0xcc, 0x1f, 0x55, 0xab, 0x96, 0xd7, 0x6a, 0x5a, 0x21, 0x6d, 0x31, 0xee, 0x19, 0x75, 0x3f, 0x60, + 0xc6, 0xd5, 0x55, 0x6d, 0x6d, 0xda, 0x9c, 0x3b, 0xaa, 0x56, 0x77, 0x5b, 0xcd, 0x8a, 0x5c, 0x29, + 0xfa, 0x01, 0x43, 0x3f, 0xd3, 0xe0, 0x9a, 0xeb, 0x85, 0x84, 0x7a, 0xb8, 0x11, 0x49, 0x8e, 0x6e, + 0xab, 0x25, 0xa1, 0x40, 0xfd, 0x12, 0xe2, 0xac, 0xa4, 0x24, 0x2a, 0xb5, 0xe5, 0xed, 0x66, 0x2e, + 0xb8, 0x83, 0xa6, 0xd1, 0x0b, 0x30, 0xcb, 0x0e, 0xdd, 0xc0, 0xe2, 0x1b, 0xe3, 0xf5, 0x8f, 0xe7, + 0x18, 0x0b, 0xab, 0xda, 0x5a, 0xdc, 0x9c, 0xe6, 0xd3, 0x6f, 0x56, 0xab, 0x79, 0x31, 0x89, 0x74, + 0x18, 0x6f, 0xbb, 0xd8, 0x58, 0x14, 0x09, 0x85, 0x0f, 0xd1, 0x03, 0xb8, 0x5a, 0x23, 0x1e, 0xa1, + 0x38, 0x24, 0x9d, 0x90, 0x74, 0x1d, 0x63, 0xf6, 0x4c, 0xc3, 0xce, 0x45, 0x6c, 0x2a, 0x04, 0x4b, + 0x0e, 0x7a, 0x05, 0x56, 0x02, 0x4a, 0x44, 0xe8, 0x5b, 0xdc, 0x14, 0xc2, 0x60, 0x3d, 0xa0, 0xab, + 0x42, 0xa5, 0xa5, 0x88, 0x66, 0x5b, 0x91, 0x74, 0x01, 0x7e, 0xa9, 0xc1, 0x72, 0xd5, 0xa7, 0xef, + 0x62, 0xca, 0x3d, 0xcf, 0x25, 0x5e, 0x68, 0xd9, 0x84, 0x86, 0x96, 0x43, 0x42, 0xec, 0x36, 0x98, + 0xa1, 0x8b, 0xac, 0x76, 0x78, 0x09, 0xd6, 0xde, 0x91, 0x52, 0xb7, 0x84, 0xd0, 0x2d, 0x42, 0xc3, + 0x7b, 0x52, 0x64, 0x4f, 0x4e, 0x33, 0xaa, 0x43, 0x68, 0xb8, 0xda, 0xcf, 0x31, 0x12, 0x5a, 0x76, + 0x8b, 0x52, 0xa1, 0xf3, 0x00, 0xd5, 0xe7, 0x84, 0x41, 0xbd, 0x4b, 0x49, 0xc8, 0xe1, 0x96, 0x14, + 0x7c, 0x4a, 0x33, 0x73, 0x99, 0x0d, 0x5f, 0x44, 0x5f, 0x00, 0x14, 0x50, 0xff, 0xe8, 0xd8, 0xba, + 0x7b, 0xe7, 0x0e, 0x97, 0x18, 0xba, 0x5e, 0x8b, 0x18, 0x48, 0x1c, 0x92, 0x2e, 0x56, 0xee, 0xde, + 0xb9, 0xb3, 0xa5, 0xe6, 0x11, 0x81, 0xbb, 0x94, 0x88, 0xa3, 0xf3, 0x42, 0xcb, 0x0d, 0xda, 0x2f, + 0x9d, 0x88, 0x45, 0x0b, 0x33, 0x39, 0xdd, 0xe4, 0x0e, 0xe8, 0xf0, 0xf1, 0xcb, 0xc6, 0xbc, 0x00, + 0xbb, 0xdd, 0x61, 0x2c, 0x05, 0xed, 0x97, 0xfa, 0xa2, 0x31, 0xcf, 0xf8, 0xd4, 0x6b, 0x82, 0xa5, + 0x14, 0xb4, 0x5f, 0x46, 0xdf, 0xd5, 0x60, 0xb6, 0x15, 0xd4, 0x28, 0x76, 0xa2, 0x8a, 0x90, 0x19, + 0xd7, 0x44, 0xca, 0x78, 0xfb, 0x12, 0x6c, 0xf7, 0x58, 0x4a, 0x52, 0xc1, 0x35, 0xd3, 0xea, 0xfd, + 0x64, 0x28, 0x0f, 0x33, 0x1e, 0xbf, 0xb6, 0x1a, 0xee, 0x7b, 0xc4, 0x0a, 0x70, 0x58, 0x37, 0x6e, + 0x9c, 0x19, 0x16, 0xd3, 0x1d, 0x8e, 0x7d, 0x1c, 0xd6, 0xd1, 0x2d, 0x98, 0x6e, 0x12, 0x5a, 0x23, + 0x16, 0x6b, 0x60, 0x56, 0x27, 0xcc, 0xb8, 0x29, 0x2c, 0x92, 0x12, 0x93, 0x65, 0x39, 0x87, 0xbe, + 0xa3, 0xc1, 0x7c, 0x37, 0x4c, 0xac, 0xce, 0x06, 0x8d, 0xe7, 0x85, 0xb8, 0xbd, 0xf3, 0x95, 0xda, + 0x2a, 0xba, 0xee, 0x6d, 0x47, 0xec, 0x26, 0xa2, 0x51, 0xc4, 0x75, 0xe6, 0xd2, 0xff, 0xbd, 0x02, + 0x53, 0xaa, 0x6a, 0x43, 0x7f, 0xd4, 0xe0, 0x85, 0x61, 0x97, 0xa8, 0x1f, 0x10, 0x99, 0xeb, 0x65, + 0x69, 0x22, 0x9f, 0x2d, 0xf5, 0xcb, 0x2b, 0x21, 0xb3, 0x7b, 0x91, 0x40, 0x5e, 0xf8, 0x14, 0xf4, + 0x28, 0x1c, 0x3b, 0xb7, 0x73, 0x66, 0xe0, 0xed, 0xdc, 0xc7, 0x85, 0xea, 0x70, 0x67, 0xd8, 0x7e, + 0x4e, 0x96, 0x21, 0x55, 0x9f, 0xf2, 0x47, 0x2d, 0x33, 0x62, 0xab, 0xe3, 0x6b, 0x89, 0x42, 0xcc, + 0xd0, 0xcc, 0xdb, 0x03, 0x25, 0xf4, 0x57, 0x1e, 0x3b, 0x3e, 0xad, 0xe0, 0x1a, 0x43, 0xaf, 0xc0, + 0xac, 0x8a, 0x7e, 0x86, 0x9b, 0x41, 0x83, 0x57, 0xd9, 0xf2, 0xbd, 0xb4, 0xa8, 0x4c, 0xc4, 0x1f, + 0x7b, 0x7c, 0xd3, 0xfb, 0xf2, 0x7d, 0x6c, 0xce, 0x48, 0xf2, 0xb2, 0xa2, 0xe6, 0x00, 0x14, 0x7b, + 0x8e, 0xdf, 0xec, 0x02, 0x4c, 0x8c, 0x06, 0x90, 0xe4, 0x1d, 0x80, 0x3c, 0xe8, 0x7e, 0x9b, 0x50, + 0xdc, 0x68, 0x74, 0x11, 0x26, 0x47, 0x22, 0xcc, 0x2a, 0xfa, 0x0e, 0x84, 0x01, 0x53, 0x6d, 0x42, + 0x0f, 0x7c, 0x46, 0xc4, 0xeb, 0x22, 0x6e, 0x46, 0x9f, 0xe8, 0x21, 0xf0, 0xa2, 0x4b, 0xc4, 0x02, + 0xb7, 0x92, 0xd5, 0x20, 0x5e, 0x2d, 0xac, 0xab, 0x87, 0xc4, 0xc8, 0xc2, 0xcd, 0xd4, 0x9b, 0xf8, + 0x88, 0x87, 0x44, 0x05, 0xd7, 0x1e, 0x09, 0x2e, 0x94, 0x87, 0x64, 0xb7, 0x8b, 0xc0, 0xab, 0x73, + 0x1e, 0xe5, 0xab, 0xbd, 0x4a, 0xaa, 0xd7, 0x03, 0x57, 0x76, 0x4b, 0x50, 0x56, 0x70, 0xcd, 0x04, + 0x3b, 0x1a, 0x72, 0x73, 0xc7, 0x03, 0xea, 0xb7, 0x5d, 0x87, 0x50, 0x55, 0x7c, 0xdf, 0xea, 0x2f, + 0x2c, 0x64, 0x27, 0xa3, 0xbd, 0xd9, 0x71, 0x27, 0xee, 0x6c, 0x66, 0x87, 0x29, 0xb3, 0x06, 0xd3, + 0xfd, 0xae, 0x92, 0x84, 0xa9, 0xd2, 0xee, 0x7d, 0x73, 0xbb, 0x5c, 0xd6, 0xc7, 0x10, 0xc0, 0x95, + 0x6d, 0x39, 0xd6, 0x72, 0x5f, 0xff, 0xc9, 0xef, 0x3f, 0xbc, 0xf1, 0x3a, 0x54, 0xfa, 0xe0, 0xa5, + 0x97, 0x9f, 0xed, 0xe4, 0x1b, 0xa3, 0x9d, 0x3c, 0xfd, 0xb1, 0x06, 0x0b, 0x03, 0x2f, 0x7c, 0x74, + 0x13, 0x52, 0x2d, 0xcf, 0x3d, 0xb2, 0x98, 0x6f, 0x1f, 0x92, 0x90, 0x89, 0x80, 0x8b, 0x9b, 0x49, + 0x3e, 0x57, 0x96, 0x53, 0x39, 0x97, 0x6b, 0xe6, 0xc0, 0xc1, 0x85, 0x6a, 0x36, 0x50, 0x9b, 0xf4, + 0x8f, 0x63, 0xb0, 0x3c, 0xe2, 0xbe, 0x41, 0x2f, 0xc1, 0x14, 0x6b, 0x1d, 0x3c, 0x23, 0x76, 0x28, + 0x14, 0x1d, 0x9d, 0x2a, 0x23, 0x52, 0x84, 0x60, 0x82, 0xdf, 0x95, 0x22, 0x52, 0xe2, 0xa6, 0x18, + 0xa3, 0x79, 0x98, 0xb4, 0xeb, 0xd8, 0xf5, 0x94, 0x07, 0xca, 0x0f, 0x5e, 0xbf, 0x38, 0x1e, 0x13, + 0x11, 0x11, 0x37, 0xf9, 0x90, 0xcf, 0xb4, 0xa8, 0x2b, 0x3c, 0x3c, 0x6e, 0xf2, 0x61, 0xce, 0xe7, + 0xe6, 0x78, 0x06, 0xf5, 0x0b, 0x35, 0xc7, 0x88, 0x4d, 0x3f, 0x98, 0x88, 0xc7, 0xf4, 0xf1, 0xf4, + 0x2f, 0x62, 0x30, 0xdd, 0x77, 0x9d, 0x88, 0xa3, 0x53, 0x37, 0x59, 0xa7, 0xc5, 0x93, 0x30, 0x93, + 0x6a, 0x4e, 0x34, 0x5f, 0x30, 0x4c, 0x45, 0x5d, 0x83, 0xd8, 0xc5, 0x76, 0x0d, 0x22, 0x5c, 0x7e, + 0x24, 0xc4, 0xc3, 0x07, 0x0d, 0xe2, 0xa8, 0x4c, 0x34, 0xf2, 0x48, 0x14, 0x69, 0x0e, 0x73, 0x23, + 0xbe, 0x05, 0x4f, 0x2f, 0xd4, 0x88, 0x7d, 0xe6, 0xc9, 0xbc, 0x0c, 0x89, 0x4e, 0x6b, 0x0a, 0xc5, + 0x61, 0x22, 0xff, 0xb8, 0xb2, 0xa7, 0x8f, 0xa1, 0x04, 0x4c, 0x16, 0x2b, 0x95, 0xfd, 0xbb, 0xba, + 0x16, 0x0d, 0x37, 0xf4, 0x58, 0x34, 0xdc, 0xd4, 0xc7, 0x33, 0x65, 0x48, 0x0f, 0x7f, 0x83, 0xa2, + 0x69, 0x48, 0xec, 0xbd, 0xbe, 0x6d, 0xbe, 0x61, 0x96, 0x2a, 0xdb, 0xfa, 0x18, 0x9a, 0x07, 0x3d, + 0xbf, 0xbf, 0xbf, 0xbd, 0x7b, 0xcf, 0x2a, 0xed, 0x58, 0xf9, 0x42, 0x79, 0x7b, 0xb7, 0xa2, 0x6b, + 0x48, 0x87, 0xd4, 0x7e, 0xbe, 0x5c, 0xb6, 0x2a, 0x45, 0x73, 0xef, 0xf1, 0xfd, 0xa2, 0x1e, 0xcb, + 0x1c, 0x83, 0x31, 0xac, 0x04, 0x44, 0x29, 0x88, 0x97, 0xf3, 0xbb, 0xa5, 0x4a, 0xe9, 0x29, 0x47, + 0xd4, 0x21, 0xb5, 0xb3, 0x67, 0xbe, 0x91, 0x37, 0xef, 0x59, 0x7b, 0xbb, 0x8f, 0x9e, 0xe8, 0x1a, + 0x42, 0x30, 0xa3, 0x64, 0xa8, 0x05, 0x3d, 0xc6, 0xa9, 0x22, 0x1e, 0xab, 0xbc, 0x5d, 0xd1, 0xc7, + 0xd1, 0x35, 0xb8, 0x9a, 0x7f, 0xf4, 0x46, 0xfe, 0x49, 0xd9, 0xea, 0x63, 0x9f, 0xc8, 0x95, 0xb9, + 0xa9, 0x77, 0xe1, 0xd1, 0x45, 0x9a, 0xba, 0xb0, 0x08, 0xb3, 0xb2, 0xab, 0xc6, 0x02, 0x62, 0xbb, + 0x55, 0x97, 0x50, 0x34, 0xfe, 0x9f, 0x82, 0xf6, 0x60, 0x22, 0xbe, 0xac, 0xaf, 0x64, 0xfe, 0xa4, + 0xc1, 0xb8, 0xe9, 0x30, 0xf4, 0x35, 0x98, 0xee, 0xeb, 0x43, 0xab, 0xa0, 0xcd, 0x0c, 0x6e, 0x60, + 0xc8, 0x73, 0x2b, 0x0b, 0x4a, 0x51, 0x17, 0x7f, 0x4f, 0xd4, 0xc5, 0x29, 0xbb, 0x67, 0x1e, 0x6d, + 0xc2, 0x5c, 0x6f, 0x3b, 0x4f, 0x56, 0x09, 0x27, 0x9a, 0x8a, 0xb3, 0x3d, 0xfd, 0x3a, 0x9e, 0x74, + 0x73, 0x79, 0x6e, 0x82, 0xaf, 0x40, 0xee, 0x53, 0x9a, 0xc0, 0x74, 0x58, 0xe6, 0xdf, 0x1a, 0x5c, + 0xef, 0xe9, 0xd2, 0xf5, 0xb5, 0x08, 0xd9, 0x23, 0x97, 0x85, 0xe8, 0x18, 0x96, 0x7b, 0x1b, 0x83, + 0x4a, 0xc1, 0x88, 0xc4, 0xd0, 0x44, 0xfc, 0xad, 0x0f, 0xe9, 0x3b, 0x0e, 0x83, 0x16, 0x76, 0xf8, + 0xa1, 0x16, 0x8b, 0x6b, 0xe6, 0x12, 0x1b, 0x26, 0xfe, 0xbc, 0x77, 0xc7, 0xc8, 0x7d, 0x65, 0xfe, + 0x31, 0x03, 0xa9, 0xde, 0xfe, 0x24, 0x5a, 0x86, 0x89, 0x4e, 0x6d, 0xd6, 0x63, 0x75, 0x31, 0x89, + 0x3e, 0xd2, 0x60, 0x4e, 0x28, 0x6a, 0x1d, 0x92, 0x63, 0xeb, 0xa0, 0xe5, 0x36, 0xf8, 0xdd, 0x19, + 0x13, 0xe7, 0xfe, 0xe4, 0xc2, 0x7a, 0xa4, 0xf2, 0xe3, 0x21, 0x39, 0x2e, 0x48, 0x01, 0x3d, 0xee, + 0x32, 0xcb, 0xfa, 0x97, 0xd0, 0x9b, 0x30, 0x47, 0x9d, 0xe8, 0x41, 0x1d, 0x39, 0xe2, 0xf8, 0xa7, + 0x70, 0xc4, 0x59, 0xea, 0xb0, 0xde, 0x25, 0xf4, 0xb1, 0x06, 0xab, 0x23, 0x8e, 0xdc, 0x6a, 0xb8, + 0x2c, 0x54, 0xd5, 0xd5, 0xd3, 0x8b, 0xda, 0xfa, 0xe9, 0x03, 0x2a, 0x8e, 0x99, 0xd7, 0xd9, 0x48, + 0xcf, 0xac, 0x01, 0x44, 0x6a, 0x3a, 0x4c, 0x15, 0x6b, 0x3b, 0x17, 0xa1, 0x90, 0xe8, 0xb2, 0x27, + 0x58, 0xf4, 0x91, 0xfe, 0x5b, 0x02, 0x66, 0x4f, 0x9c, 0x0c, 0xfa, 0x81, 0x06, 0x89, 0x2a, 0xc5, + 0xb5, 0x26, 0xf1, 0xc2, 0x28, 0x0a, 0xdc, 0x4b, 0x73, 0x84, 0xec, 0x8e, 0x12, 0xd5, 0xeb, 0x18, + 0x32, 0x7e, 0xba, 0x5a, 0xa4, 0xff, 0x3a, 0x05, 0xb3, 0x27, 0x08, 0xd1, 0xaf, 0x34, 0x58, 0x54, + 0xbd, 0xce, 0x36, 0xbf, 0xab, 0xf8, 0x33, 0x89, 0x62, 0x3b, 0xf4, 0xa9, 0xca, 0x5a, 0xdf, 0xfc, + 0xcc, 0x94, 0xce, 0xca, 0x9b, 0x47, 0x5c, 0x99, 0xdb, 0x91, 0x16, 0xc5, 0x31, 0x73, 0xbe, 0x3e, + 0x60, 0x3e, 0xfd, 0xd1, 0x24, 0xcc, 0x0f, 0x62, 0x18, 0x1d, 0xa7, 0xff, 0x0f, 0x73, 0xa4, 0x41, + 0x9a, 0xe2, 0x25, 0x41, 0x02, 0x4c, 0x31, 0xdf, 0xa8, 0xc8, 0xa3, 0xa6, 0xae, 0x16, 0xca, 0xd1, + 0x3c, 0x5a, 0x84, 0x49, 0xd7, 0x73, 0xc8, 0x91, 0x08, 0x9b, 0xe9, 0xe2, 0x98, 0x29, 0x3f, 0x79, + 0x00, 0x4c, 0x29, 0x62, 0xe5, 0xe7, 0x1f, 0x6a, 0x9f, 0xaf, 0x95, 0xb2, 0x0f, 0xdb, 0xdb, 0x52, + 0xa1, 0xe2, 0x98, 0x19, 0xe9, 0x96, 0xfe, 0xbb, 0x06, 0x89, 0xce, 0x02, 0xfa, 0x3f, 0x48, 0x74, + 0xb7, 0x7c, 0xc2, 0x38, 0xdd, 0x15, 0xb4, 0x04, 0xe3, 0x87, 0xe4, 0xf8, 0xe4, 0xdd, 0xc2, 0xe7, + 0x72, 0xdf, 0xd7, 0x78, 0xc2, 0xfd, 0x40, 0x83, 0xf7, 0xb5, 0xf3, 0xa7, 0xdc, 0xf3, 0x6e, 0x34, + 0xf7, 0x2d, 0xae, 0xcc, 0x7b, 0x70, 0xf4, 0x79, 0xa9, 0x52, 0x98, 0x81, 0x94, 0x0a, 0x16, 0x51, + 0x88, 0xe6, 0x9e, 0x71, 0x85, 0x08, 0xd8, 0x9f, 0x81, 0x42, 0x85, 0x24, 0x4c, 0x70, 0x99, 0xa2, + 0xfa, 0xc8, 0x3d, 0xe5, 0x82, 0x1f, 0x43, 0xf9, 0x12, 0x04, 0xe7, 0x1e, 0x70, 0xec, 0x6d, 0xd8, + 0xba, 0x00, 0xec, 0xc2, 0x35, 0xd0, 0xa3, 0xeb, 0xa8, 0xaf, 0x7c, 0xca, 0xfc, 0x4e, 0x83, 0x44, + 0x27, 0xb7, 0x22, 0x02, 0x46, 0x37, 0x6f, 0x5b, 0xe7, 0xaf, 0xa4, 0x16, 0x3a, 0x99, 0xba, 0x97, + 0x20, 0x77, 0x9f, 0xef, 0xac, 0x00, 0xaf, 0x9e, 0x6f, 0x67, 0x0e, 0xcb, 0xfc, 0x3c, 0x06, 0xd0, + 0x7d, 0x22, 0x8c, 0xce, 0x3f, 0x07, 0x70, 0x63, 0x58, 0xcb, 0x44, 0xb5, 0xbe, 0x65, 0xcd, 0x70, + 0xed, 0xd4, 0x6b, 0xa2, 0x2c, 0xfe, 0xcf, 0x17, 0x62, 0x86, 0x56, 0x1c, 0x33, 0x97, 0x07, 0xf6, + 0x4e, 0xd4, 0x03, 0xe9, 0x4b, 0x90, 0xe2, 0xbe, 0xe1, 0xf4, 0xff, 0xfa, 0x9d, 0x3f, 0x85, 0x98, + 0xf7, 0x8e, 0x8b, 0x63, 0x66, 0x52, 0xd0, 0x4a, 0xd6, 0x5c, 0x91, 0xdb, 0x64, 0x0b, 0xf2, 0xe7, + 0x28, 0x9a, 0xa5, 0x15, 0x0a, 0xd3, 0x90, 0x54, 0x27, 0xc7, 0xf1, 0x1f, 0x4c, 0xc4, 0xc7, 0xf5, + 0x89, 0xcc, 0x4f, 0x35, 0x40, 0xa7, 0x1b, 0x67, 0xe8, 0x8b, 0x27, 0x14, 0xd6, 0x86, 0x2b, 0xdc, + 0xaf, 0xee, 0x3e, 0x57, 0xf7, 0x21, 0x94, 0x3e, 0x6d, 0x81, 0x7b, 0x4a, 0x95, 0xc2, 0x3b, 0xbf, + 0xfd, 0xf6, 0x1f, 0xfe, 0x7c, 0x25, 0xa6, 0xc7, 0xa0, 0xe4, 0xfa, 0xd2, 0xcb, 0x44, 0xcb, 0xf6, + 0x3c, 0xe9, 0xbd, 0x90, 0x1e, 0xf8, 0x98, 0x10, 0x7f, 0x27, 0xf7, 0xb5, 0x83, 0x2b, 0x62, 0x7f, + 0x9b, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xb8, 0xfa, 0x64, 0x4f, 0x94, 0x23, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.pb.validate.go new file mode 100644 index 000000000..0bd04775b --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.pb.validate.go @@ -0,0 +1,1765 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto + +package envoy_extensions_filters_network_http_connection_manager_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _http_connection_manager_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on HttpConnectionManager with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *HttpConnectionManager) Validate() error { + if m == nil { + return nil + } + + if _, ok := HttpConnectionManager_CodecType_name[int32(m.GetCodecType())]; !ok { + return HttpConnectionManagerValidationError{ + field: "CodecType", + reason: "value must be one of the defined enum values", + } + } + + if len(m.GetStatPrefix()) < 1 { + return HttpConnectionManagerValidationError{ + field: "StatPrefix", + reason: "value length must be at least 1 bytes", + } + } + + for idx, item := range m.GetHttpFilters() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: fmt.Sprintf("HttpFilters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetAddUserAgent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "AddUserAgent", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetTracing()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "Tracing", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetCommonHttpProtocolOptions()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "CommonHttpProtocolOptions", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetHttpProtocolOptions()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "HttpProtocolOptions", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetHttp2ProtocolOptions()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "Http2ProtocolOptions", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for ServerName + + if _, ok := HttpConnectionManager_ServerHeaderTransformation_name[int32(m.GetServerHeaderTransformation())]; !ok { + return HttpConnectionManagerValidationError{ + field: "ServerHeaderTransformation", + reason: "value must be one of the defined enum values", + } + } + + if wrapper := m.GetMaxRequestHeadersKb(); wrapper != nil { + + if val := wrapper.GetValue(); val <= 0 || val > 96 { + return HttpConnectionManagerValidationError{ + field: "MaxRequestHeadersKb", + reason: "value must be inside range (0, 96]", + } + } + + } + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedIdleTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "HiddenEnvoyDeprecatedIdleTimeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetStreamIdleTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "StreamIdleTimeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetRequestTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "RequestTimeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetDrainTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "DrainTimeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetDelayedCloseTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "DelayedCloseTimeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetAccessLog() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: fmt.Sprintf("AccessLog[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetUseRemoteAddress()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "UseRemoteAddress", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for XffNumTrustedHops + + if v, ok := interface{}(m.GetInternalAddressConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "InternalAddressConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for SkipXffAppend + + // no validation rules for Via + + if v, ok := interface{}(m.GetGenerateRequestId()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "GenerateRequestId", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for PreserveExternalRequestId + + if _, ok := HttpConnectionManager_ForwardClientCertDetails_name[int32(m.GetForwardClientCertDetails())]; !ok { + return HttpConnectionManagerValidationError{ + field: "ForwardClientCertDetails", + reason: "value must be one of the defined enum values", + } + } + + if v, ok := interface{}(m.GetSetCurrentClientCertDetails()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "SetCurrentClientCertDetails", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for Proxy_100Continue + + // no validation rules for RepresentIpv4RemoteAddressAsIpv4MappedIpv6 + + for idx, item := range m.GetUpgradeConfigs() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: fmt.Sprintf("UpgradeConfigs[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetNormalizePath()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "NormalizePath", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for MergeSlashes + + if v, ok := interface{}(m.GetRequestIdExtension()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "RequestIdExtension", + reason: "embedded message failed validation", + cause: err, + } + } + } + + switch m.RouteSpecifier.(type) { + + case *HttpConnectionManager_Rds: + + if v, ok := interface{}(m.GetRds()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "Rds", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *HttpConnectionManager_RouteConfig: + + if v, ok := interface{}(m.GetRouteConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "RouteConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *HttpConnectionManager_ScopedRoutes: + + if v, ok := interface{}(m.GetScopedRoutes()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManagerValidationError{ + field: "ScopedRoutes", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return HttpConnectionManagerValidationError{ + field: "RouteSpecifier", + reason: "value is required", + } + + } + + return nil +} + +// HttpConnectionManagerValidationError is the validation error returned by +// HttpConnectionManager.Validate if the designated constraints aren't met. +type HttpConnectionManagerValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HttpConnectionManagerValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HttpConnectionManagerValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HttpConnectionManagerValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HttpConnectionManagerValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HttpConnectionManagerValidationError) ErrorName() string { + return "HttpConnectionManagerValidationError" +} + +// Error satisfies the builtin error interface +func (e HttpConnectionManagerValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHttpConnectionManager.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HttpConnectionManagerValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HttpConnectionManagerValidationError{} + +// Validate checks the field values on Rds with the rules defined in the proto +// definition for this message. If any rules are violated, an error is returned. +func (m *Rds) Validate() error { + if m == nil { + return nil + } + + if m.GetConfigSource() == nil { + return RdsValidationError{ + field: "ConfigSource", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetConfigSource()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RdsValidationError{ + field: "ConfigSource", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(m.GetRouteConfigName()) < 1 { + return RdsValidationError{ + field: "RouteConfigName", + reason: "value length must be at least 1 bytes", + } + } + + return nil +} + +// RdsValidationError is the validation error returned by Rds.Validate if the +// designated constraints aren't met. +type RdsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RdsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RdsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RdsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RdsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RdsValidationError) ErrorName() string { return "RdsValidationError" } + +// Error satisfies the builtin error interface +func (e RdsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRds.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RdsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RdsValidationError{} + +// Validate checks the field values on ScopedRouteConfigurationsList with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *ScopedRouteConfigurationsList) Validate() error { + if m == nil { + return nil + } + + if len(m.GetScopedRouteConfigurations()) < 1 { + return ScopedRouteConfigurationsListValidationError{ + field: "ScopedRouteConfigurations", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetScopedRouteConfigurations() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ScopedRouteConfigurationsListValidationError{ + field: fmt.Sprintf("ScopedRouteConfigurations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// ScopedRouteConfigurationsListValidationError is the validation error +// returned by ScopedRouteConfigurationsList.Validate if the designated +// constraints aren't met. +type ScopedRouteConfigurationsListValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ScopedRouteConfigurationsListValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ScopedRouteConfigurationsListValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ScopedRouteConfigurationsListValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ScopedRouteConfigurationsListValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ScopedRouteConfigurationsListValidationError) ErrorName() string { + return "ScopedRouteConfigurationsListValidationError" +} + +// Error satisfies the builtin error interface +func (e ScopedRouteConfigurationsListValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sScopedRouteConfigurationsList.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ScopedRouteConfigurationsListValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ScopedRouteConfigurationsListValidationError{} + +// Validate checks the field values on ScopedRoutes with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *ScopedRoutes) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return ScopedRoutesValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + if m.GetScopeKeyBuilder() == nil { + return ScopedRoutesValidationError{ + field: "ScopeKeyBuilder", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetScopeKeyBuilder()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ScopedRoutesValidationError{ + field: "ScopeKeyBuilder", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if m.GetRdsConfigSource() == nil { + return ScopedRoutesValidationError{ + field: "RdsConfigSource", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetRdsConfigSource()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ScopedRoutesValidationError{ + field: "RdsConfigSource", + reason: "embedded message failed validation", + cause: err, + } + } + } + + switch m.ConfigSpecifier.(type) { + + case *ScopedRoutes_ScopedRouteConfigurationsList: + + if v, ok := interface{}(m.GetScopedRouteConfigurationsList()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ScopedRoutesValidationError{ + field: "ScopedRouteConfigurationsList", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ScopedRoutes_ScopedRds: + + if v, ok := interface{}(m.GetScopedRds()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ScopedRoutesValidationError{ + field: "ScopedRds", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return ScopedRoutesValidationError{ + field: "ConfigSpecifier", + reason: "value is required", + } + + } + + return nil +} + +// ScopedRoutesValidationError is the validation error returned by +// ScopedRoutes.Validate if the designated constraints aren't met. +type ScopedRoutesValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ScopedRoutesValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ScopedRoutesValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ScopedRoutesValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ScopedRoutesValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ScopedRoutesValidationError) ErrorName() string { return "ScopedRoutesValidationError" } + +// Error satisfies the builtin error interface +func (e ScopedRoutesValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sScopedRoutes.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ScopedRoutesValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ScopedRoutesValidationError{} + +// Validate checks the field values on ScopedRds with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *ScopedRds) Validate() error { + if m == nil { + return nil + } + + if m.GetScopedRdsConfigSource() == nil { + return ScopedRdsValidationError{ + field: "ScopedRdsConfigSource", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetScopedRdsConfigSource()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ScopedRdsValidationError{ + field: "ScopedRdsConfigSource", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// ScopedRdsValidationError is the validation error returned by +// ScopedRds.Validate if the designated constraints aren't met. +type ScopedRdsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ScopedRdsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ScopedRdsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ScopedRdsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ScopedRdsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ScopedRdsValidationError) ErrorName() string { return "ScopedRdsValidationError" } + +// Error satisfies the builtin error interface +func (e ScopedRdsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sScopedRds.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ScopedRdsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ScopedRdsValidationError{} + +// Validate checks the field values on HttpFilter with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *HttpFilter) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return HttpFilterValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + switch m.ConfigType.(type) { + + case *HttpFilter_HiddenEnvoyDeprecatedConfig: + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpFilterValidationError{ + field: "HiddenEnvoyDeprecatedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *HttpFilter_TypedConfig: + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpFilterValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// HttpFilterValidationError is the validation error returned by +// HttpFilter.Validate if the designated constraints aren't met. +type HttpFilterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HttpFilterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HttpFilterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HttpFilterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HttpFilterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HttpFilterValidationError) ErrorName() string { return "HttpFilterValidationError" } + +// Error satisfies the builtin error interface +func (e HttpFilterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHttpFilter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HttpFilterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HttpFilterValidationError{} + +// Validate checks the field values on RequestIDExtension with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *RequestIDExtension) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RequestIDExtensionValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// RequestIDExtensionValidationError is the validation error returned by +// RequestIDExtension.Validate if the designated constraints aren't met. +type RequestIDExtensionValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RequestIDExtensionValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RequestIDExtensionValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RequestIDExtensionValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RequestIDExtensionValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RequestIDExtensionValidationError) ErrorName() string { + return "RequestIDExtensionValidationError" +} + +// Error satisfies the builtin error interface +func (e RequestIDExtensionValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRequestIDExtension.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RequestIDExtensionValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RequestIDExtensionValidationError{} + +// Validate checks the field values on HttpConnectionManager_Tracing with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *HttpConnectionManager_Tracing) Validate() error { + if m == nil { + return nil + } + + if _, ok := HttpConnectionManager_Tracing_OperationName_name[int32(m.GetHiddenEnvoyDeprecatedOperationName())]; !ok { + return HttpConnectionManager_TracingValidationError{ + field: "HiddenEnvoyDeprecatedOperationName", + reason: "value must be one of the defined enum values", + } + } + + if v, ok := interface{}(m.GetClientSampling()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManager_TracingValidationError{ + field: "ClientSampling", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetRandomSampling()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManager_TracingValidationError{ + field: "RandomSampling", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetOverallSampling()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManager_TracingValidationError{ + field: "OverallSampling", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for Verbose + + if v, ok := interface{}(m.GetMaxPathTagLength()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManager_TracingValidationError{ + field: "MaxPathTagLength", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetCustomTags() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManager_TracingValidationError{ + field: fmt.Sprintf("CustomTags[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetProvider()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManager_TracingValidationError{ + field: "Provider", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// HttpConnectionManager_TracingValidationError is the validation error +// returned by HttpConnectionManager_Tracing.Validate if the designated +// constraints aren't met. +type HttpConnectionManager_TracingValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HttpConnectionManager_TracingValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HttpConnectionManager_TracingValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HttpConnectionManager_TracingValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HttpConnectionManager_TracingValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HttpConnectionManager_TracingValidationError) ErrorName() string { + return "HttpConnectionManager_TracingValidationError" +} + +// Error satisfies the builtin error interface +func (e HttpConnectionManager_TracingValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHttpConnectionManager_Tracing.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HttpConnectionManager_TracingValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HttpConnectionManager_TracingValidationError{} + +// Validate checks the field values on +// HttpConnectionManager_InternalAddressConfig with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *HttpConnectionManager_InternalAddressConfig) Validate() error { + if m == nil { + return nil + } + + // no validation rules for UnixSockets + + return nil +} + +// HttpConnectionManager_InternalAddressConfigValidationError is the validation +// error returned by HttpConnectionManager_InternalAddressConfig.Validate if +// the designated constraints aren't met. +type HttpConnectionManager_InternalAddressConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HttpConnectionManager_InternalAddressConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HttpConnectionManager_InternalAddressConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HttpConnectionManager_InternalAddressConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HttpConnectionManager_InternalAddressConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HttpConnectionManager_InternalAddressConfigValidationError) ErrorName() string { + return "HttpConnectionManager_InternalAddressConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e HttpConnectionManager_InternalAddressConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHttpConnectionManager_InternalAddressConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HttpConnectionManager_InternalAddressConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HttpConnectionManager_InternalAddressConfigValidationError{} + +// Validate checks the field values on +// HttpConnectionManager_SetCurrentClientCertDetails with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *HttpConnectionManager_SetCurrentClientCertDetails) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetSubject()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManager_SetCurrentClientCertDetailsValidationError{ + field: "Subject", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for Cert + + // no validation rules for Chain + + // no validation rules for Dns + + // no validation rules for Uri + + return nil +} + +// HttpConnectionManager_SetCurrentClientCertDetailsValidationError is the +// validation error returned by +// HttpConnectionManager_SetCurrentClientCertDetails.Validate if the +// designated constraints aren't met. +type HttpConnectionManager_SetCurrentClientCertDetailsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HttpConnectionManager_SetCurrentClientCertDetailsValidationError) Field() string { + return e.field +} + +// Reason function returns reason value. +func (e HttpConnectionManager_SetCurrentClientCertDetailsValidationError) Reason() string { + return e.reason +} + +// Cause function returns cause value. +func (e HttpConnectionManager_SetCurrentClientCertDetailsValidationError) Cause() error { + return e.cause +} + +// Key function returns key value. +func (e HttpConnectionManager_SetCurrentClientCertDetailsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HttpConnectionManager_SetCurrentClientCertDetailsValidationError) ErrorName() string { + return "HttpConnectionManager_SetCurrentClientCertDetailsValidationError" +} + +// Error satisfies the builtin error interface +func (e HttpConnectionManager_SetCurrentClientCertDetailsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHttpConnectionManager_SetCurrentClientCertDetails.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HttpConnectionManager_SetCurrentClientCertDetailsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HttpConnectionManager_SetCurrentClientCertDetailsValidationError{} + +// Validate checks the field values on HttpConnectionManager_UpgradeConfig with +// the rules defined in the proto definition for this message. If any rules +// are violated, an error is returned. +func (m *HttpConnectionManager_UpgradeConfig) Validate() error { + if m == nil { + return nil + } + + // no validation rules for UpgradeType + + for idx, item := range m.GetFilters() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManager_UpgradeConfigValidationError{ + field: fmt.Sprintf("Filters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetEnabled()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HttpConnectionManager_UpgradeConfigValidationError{ + field: "Enabled", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// HttpConnectionManager_UpgradeConfigValidationError is the validation error +// returned by HttpConnectionManager_UpgradeConfig.Validate if the designated +// constraints aren't met. +type HttpConnectionManager_UpgradeConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HttpConnectionManager_UpgradeConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HttpConnectionManager_UpgradeConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HttpConnectionManager_UpgradeConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HttpConnectionManager_UpgradeConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HttpConnectionManager_UpgradeConfigValidationError) ErrorName() string { + return "HttpConnectionManager_UpgradeConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e HttpConnectionManager_UpgradeConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHttpConnectionManager_UpgradeConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HttpConnectionManager_UpgradeConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HttpConnectionManager_UpgradeConfigValidationError{} + +// Validate checks the field values on ScopedRoutes_ScopeKeyBuilder with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *ScopedRoutes_ScopeKeyBuilder) Validate() error { + if m == nil { + return nil + } + + if len(m.GetFragments()) < 1 { + return ScopedRoutes_ScopeKeyBuilderValidationError{ + field: "Fragments", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetFragments() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ScopedRoutes_ScopeKeyBuilderValidationError{ + field: fmt.Sprintf("Fragments[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// ScopedRoutes_ScopeKeyBuilderValidationError is the validation error returned +// by ScopedRoutes_ScopeKeyBuilder.Validate if the designated constraints +// aren't met. +type ScopedRoutes_ScopeKeyBuilderValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ScopedRoutes_ScopeKeyBuilderValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ScopedRoutes_ScopeKeyBuilderValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ScopedRoutes_ScopeKeyBuilderValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ScopedRoutes_ScopeKeyBuilderValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ScopedRoutes_ScopeKeyBuilderValidationError) ErrorName() string { + return "ScopedRoutes_ScopeKeyBuilderValidationError" +} + +// Error satisfies the builtin error interface +func (e ScopedRoutes_ScopeKeyBuilderValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sScopedRoutes_ScopeKeyBuilder.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ScopedRoutes_ScopeKeyBuilderValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ScopedRoutes_ScopeKeyBuilderValidationError{} + +// Validate checks the field values on +// ScopedRoutes_ScopeKeyBuilder_FragmentBuilder with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder) Validate() error { + if m == nil { + return nil + } + + switch m.Type.(type) { + + case *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_: + + if v, ok := interface{}(m.GetHeaderValueExtractor()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ScopedRoutes_ScopeKeyBuilder_FragmentBuilderValidationError{ + field: "HeaderValueExtractor", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return ScopedRoutes_ScopeKeyBuilder_FragmentBuilderValidationError{ + field: "Type", + reason: "value is required", + } + + } + + return nil +} + +// ScopedRoutes_ScopeKeyBuilder_FragmentBuilderValidationError is the +// validation error returned by +// ScopedRoutes_ScopeKeyBuilder_FragmentBuilder.Validate if the designated +// constraints aren't met. +type ScopedRoutes_ScopeKeyBuilder_FragmentBuilderValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ScopedRoutes_ScopeKeyBuilder_FragmentBuilderValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ScopedRoutes_ScopeKeyBuilder_FragmentBuilderValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ScopedRoutes_ScopeKeyBuilder_FragmentBuilderValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ScopedRoutes_ScopeKeyBuilder_FragmentBuilderValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ScopedRoutes_ScopeKeyBuilder_FragmentBuilderValidationError) ErrorName() string { + return "ScopedRoutes_ScopeKeyBuilder_FragmentBuilderValidationError" +} + +// Error satisfies the builtin error interface +func (e ScopedRoutes_ScopeKeyBuilder_FragmentBuilderValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sScopedRoutes_ScopeKeyBuilder_FragmentBuilder.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ScopedRoutes_ScopeKeyBuilder_FragmentBuilderValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ScopedRoutes_ScopeKeyBuilder_FragmentBuilderValidationError{} + +// Validate checks the field values on +// ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractorValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + // no validation rules for ElementSeparator + + switch m.ExtractType.(type) { + + case *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Index: + // no validation rules for Index + + case *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_Element: + + if v, ok := interface{}(m.GetElement()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractorValidationError{ + field: "Element", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractorValidationError +// is the validation error returned by +// ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor.Validate +// if the designated constraints aren't met. +type ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractorValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractorValidationError) Field() string { + return e.field +} + +// Reason function returns reason value. +func (e ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractorValidationError) Reason() string { + return e.reason +} + +// Cause function returns cause value. +func (e ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractorValidationError) Cause() error { + return e.cause +} + +// Key function returns key value. +func (e ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractorValidationError) Key() bool { + return e.key +} + +// ErrorName returns error name. +func (e ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractorValidationError) ErrorName() string { + return "ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractorValidationError" +} + +// Error satisfies the builtin error interface +func (e ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractorValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractorValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractorValidationError{} + +// Validate checks the field values on +// ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement +// with the rules defined in the proto definition for this message. If any +// rules are violated, an error is returned. +func (m *ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement) Validate() error { + if m == nil { + return nil + } + + if len(m.GetSeparator()) < 1 { + return ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElementValidationError{ + field: "Separator", + reason: "value length must be at least 1 bytes", + } + } + + if len(m.GetKey()) < 1 { + return ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElementValidationError{ + field: "Key", + reason: "value length must be at least 1 bytes", + } + } + + return nil +} + +// ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElementValidationError +// is the validation error returned by +// ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement.Validate +// if the designated constraints aren't met. +type ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElementValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElementValidationError) Field() string { + return e.field +} + +// Reason function returns reason value. +func (e ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElementValidationError) Reason() string { + return e.reason +} + +// Cause function returns cause value. +func (e ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElementValidationError) Cause() error { + return e.cause +} + +// Key function returns key value. +func (e ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElementValidationError) Key() bool { + return e.key +} + +// ErrorName returns error name. +func (e ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElementValidationError) ErrorName() string { + return "ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElementValidationError" +} + +// Error satisfies the builtin error interface +func (e ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElementValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElementValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElementValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/rbac/v3/rbac.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/rbac/v3/rbac.pb.go new file mode 100644 index 000000000..38b877619 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/rbac/v3/rbac.pb.go @@ -0,0 +1,151 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/extensions/filters/network/rbac/v3/rbac.proto + +package envoy_extensions_filters_network_rbac_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/rbac/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type RBAC_EnforcementType int32 + +const ( + RBAC_ONE_TIME_ON_FIRST_BYTE RBAC_EnforcementType = 0 + RBAC_CONTINUOUS RBAC_EnforcementType = 1 +) + +var RBAC_EnforcementType_name = map[int32]string{ + 0: "ONE_TIME_ON_FIRST_BYTE", + 1: "CONTINUOUS", +} + +var RBAC_EnforcementType_value = map[string]int32{ + "ONE_TIME_ON_FIRST_BYTE": 0, + "CONTINUOUS": 1, +} + +func (x RBAC_EnforcementType) String() string { + return proto.EnumName(RBAC_EnforcementType_name, int32(x)) +} + +func (RBAC_EnforcementType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_287a9975e9b41589, []int{0, 0} +} + +type RBAC struct { + Rules *v3.RBAC `protobuf:"bytes,1,opt,name=rules,proto3" json:"rules,omitempty"` + ShadowRules *v3.RBAC `protobuf:"bytes,2,opt,name=shadow_rules,json=shadowRules,proto3" json:"shadow_rules,omitempty"` + StatPrefix string `protobuf:"bytes,3,opt,name=stat_prefix,json=statPrefix,proto3" json:"stat_prefix,omitempty"` + EnforcementType RBAC_EnforcementType `protobuf:"varint,4,opt,name=enforcement_type,json=enforcementType,proto3,enum=envoy.extensions.filters.network.rbac.v3.RBAC_EnforcementType" json:"enforcement_type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RBAC) Reset() { *m = RBAC{} } +func (m *RBAC) String() string { return proto.CompactTextString(m) } +func (*RBAC) ProtoMessage() {} +func (*RBAC) Descriptor() ([]byte, []int) { + return fileDescriptor_287a9975e9b41589, []int{0} +} + +func (m *RBAC) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RBAC.Unmarshal(m, b) +} +func (m *RBAC) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RBAC.Marshal(b, m, deterministic) +} +func (m *RBAC) XXX_Merge(src proto.Message) { + xxx_messageInfo_RBAC.Merge(m, src) +} +func (m *RBAC) XXX_Size() int { + return xxx_messageInfo_RBAC.Size(m) +} +func (m *RBAC) XXX_DiscardUnknown() { + xxx_messageInfo_RBAC.DiscardUnknown(m) +} + +var xxx_messageInfo_RBAC proto.InternalMessageInfo + +func (m *RBAC) GetRules() *v3.RBAC { + if m != nil { + return m.Rules + } + return nil +} + +func (m *RBAC) GetShadowRules() *v3.RBAC { + if m != nil { + return m.ShadowRules + } + return nil +} + +func (m *RBAC) GetStatPrefix() string { + if m != nil { + return m.StatPrefix + } + return "" +} + +func (m *RBAC) GetEnforcementType() RBAC_EnforcementType { + if m != nil { + return m.EnforcementType + } + return RBAC_ONE_TIME_ON_FIRST_BYTE +} + +func init() { + proto.RegisterEnum("envoy.extensions.filters.network.rbac.v3.RBAC_EnforcementType", RBAC_EnforcementType_name, RBAC_EnforcementType_value) + proto.RegisterType((*RBAC)(nil), "envoy.extensions.filters.network.rbac.v3.RBAC") +} + +func init() { + proto.RegisterFile("envoy/extensions/filters/network/rbac/v3/rbac.proto", fileDescriptor_287a9975e9b41589) +} + +var fileDescriptor_287a9975e9b41589 = []byte{ + // 402 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x91, 0x41, 0x8b, 0xd3, 0x40, + 0x14, 0xc7, 0x4d, 0xac, 0x2b, 0x3b, 0x95, 0xdd, 0x90, 0x83, 0x96, 0x80, 0x1a, 0xf7, 0x14, 0x3c, + 0xcc, 0x48, 0x03, 0x1e, 0x84, 0x15, 0x4c, 0x89, 0xd0, 0x43, 0x93, 0x92, 0xa6, 0x07, 0x4f, 0x61, + 0x9a, 0x4e, 0xea, 0x60, 0x9d, 0x09, 0x93, 0x69, 0xda, 0xdc, 0x3c, 0xfa, 0x19, 0xfc, 0x28, 0xde, + 0x05, 0xaf, 0x7e, 0x1d, 0xf1, 0x20, 0x99, 0x49, 0x29, 0xad, 0xc2, 0xf6, 0x94, 0x30, 0xff, 0xff, + 0xff, 0xbd, 0xdf, 0x7b, 0x0f, 0xf8, 0x84, 0xd5, 0xbc, 0x41, 0x64, 0x27, 0x09, 0xab, 0x28, 0x67, + 0x15, 0x2a, 0xe8, 0x5a, 0x12, 0x51, 0x21, 0x46, 0xe4, 0x96, 0x8b, 0x4f, 0x48, 0x2c, 0x70, 0x8e, + 0x6a, 0x5f, 0x7d, 0x61, 0x29, 0xb8, 0xe4, 0xb6, 0xa7, 0x42, 0xf0, 0x10, 0x82, 0x5d, 0x08, 0x76, + 0x21, 0xa8, 0xcc, 0xb5, 0xef, 0x3c, 0xd7, 0xe5, 0x73, 0xce, 0x0a, 0xba, 0xfa, 0x4f, 0x29, 0xe7, + 0xe9, 0x66, 0x59, 0x62, 0x84, 0x19, 0xe3, 0x12, 0x4b, 0xd5, 0xbf, 0x92, 0x58, 0x6e, 0xaa, 0x4e, + 0x7e, 0xf1, 0x8f, 0x5c, 0x13, 0xd1, 0xb6, 0xa4, 0x6c, 0xd5, 0x59, 0x9e, 0xd4, 0x78, 0x4d, 0x97, + 0x58, 0x12, 0xb4, 0xff, 0xd1, 0xc2, 0xcd, 0x1f, 0x13, 0xf4, 0x92, 0xe0, 0xdd, 0xc8, 0x7e, 0x05, + 0x1e, 0x88, 0xcd, 0x9a, 0x54, 0x03, 0xc3, 0x35, 0xbc, 0xfe, 0xd0, 0x81, 0x1a, 0x5f, 0x43, 0xed, + 0x51, 0x61, 0x6b, 0x4d, 0xb4, 0xd1, 0xbe, 0x05, 0x8f, 0xaa, 0x8f, 0x78, 0xc9, 0xb7, 0x99, 0x0e, + 0x9a, 0x77, 0x06, 0xfb, 0xda, 0x9f, 0xa8, 0xb8, 0x07, 0xfa, 0xed, 0x14, 0x59, 0x29, 0x48, 0x41, + 0x77, 0x83, 0xfb, 0xae, 0xe1, 0x5d, 0x06, 0x0f, 0x7f, 0x07, 0x3d, 0x61, 0xba, 0x46, 0x02, 0x5a, + 0x6d, 0xaa, 0x24, 0x9b, 0x02, 0x8b, 0xb0, 0x82, 0x8b, 0x9c, 0x7c, 0x26, 0x4c, 0x66, 0xb2, 0x29, + 0xc9, 0xa0, 0xe7, 0x1a, 0xde, 0xd5, 0xf0, 0x2d, 0x3c, 0x77, 0xc9, 0x0a, 0x00, 0x86, 0x87, 0x32, + 0x69, 0x53, 0x92, 0xe4, 0x9a, 0x1c, 0x3f, 0xdc, 0xdc, 0x82, 0xeb, 0x13, 0x8f, 0xed, 0x80, 0xc7, + 0x71, 0x14, 0x66, 0xe9, 0x78, 0x12, 0x66, 0x71, 0x94, 0xbd, 0x1f, 0x27, 0xb3, 0x34, 0x0b, 0x3e, + 0xa4, 0xa1, 0x75, 0xcf, 0xbe, 0x02, 0x60, 0x14, 0x47, 0xe9, 0x38, 0x9a, 0xc7, 0xf3, 0x99, 0x65, + 0xbc, 0x41, 0xdf, 0x7e, 0x7c, 0x7d, 0xf6, 0x12, 0x78, 0x47, 0x2b, 0xd0, 0x44, 0x27, 0x40, 0x43, + 0x05, 0x14, 0x4c, 0xbe, 0x7f, 0xf9, 0xf9, 0xeb, 0xc2, 0xb4, 0x4c, 0xf0, 0x9a, 0x72, 0x3d, 0x4c, + 0x29, 0xf8, 0xae, 0x39, 0x7b, 0xae, 0xe0, 0x32, 0x59, 0xe0, 0x7c, 0xda, 0xde, 0x72, 0x6a, 0x2c, + 0x2e, 0xd4, 0x51, 0xfd, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x81, 0x07, 0xa8, 0xb8, 0xb1, 0x02, + 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/rbac/v3/rbac.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/rbac/v3/rbac.pb.validate.go new file mode 100644 index 000000000..908afd36e --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/rbac/v3/rbac.pb.validate.go @@ -0,0 +1,130 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/extensions/filters/network/rbac/v3/rbac.proto + +package envoy_extensions_filters_network_rbac_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _rbac_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on RBAC with the rules defined in the proto +// definition for this message. If any rules are violated, an error is returned. +func (m *RBAC) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetRules()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RBACValidationError{ + field: "Rules", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetShadowRules()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RBACValidationError{ + field: "ShadowRules", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(m.GetStatPrefix()) < 1 { + return RBACValidationError{ + field: "StatPrefix", + reason: "value length must be at least 1 bytes", + } + } + + // no validation rules for EnforcementType + + return nil +} + +// RBACValidationError is the validation error returned by RBAC.Validate if the +// designated constraints aren't met. +type RBACValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RBACValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RBACValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RBACValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RBACValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RBACValidationError) ErrorName() string { return "RBACValidationError" } + +// Error satisfies the builtin error interface +func (e RBACValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRBAC.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RBACValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RBACValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/sni_cluster/v3/sni_cluster.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/sni_cluster/v3/sni_cluster.pb.go new file mode 100644 index 000000000..5cda56aaa --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/sni_cluster/v3/sni_cluster.pb.go @@ -0,0 +1,79 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/extensions/filters/network/sni_cluster/v3/sni_cluster.proto + +package envoy_extensions_filters_network_sni_cluster_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type SniCluster struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SniCluster) Reset() { *m = SniCluster{} } +func (m *SniCluster) String() string { return proto.CompactTextString(m) } +func (*SniCluster) ProtoMessage() {} +func (*SniCluster) Descriptor() ([]byte, []int) { + return fileDescriptor_87ea91e392e51dd8, []int{0} +} + +func (m *SniCluster) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SniCluster.Unmarshal(m, b) +} +func (m *SniCluster) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SniCluster.Marshal(b, m, deterministic) +} +func (m *SniCluster) XXX_Merge(src proto.Message) { + xxx_messageInfo_SniCluster.Merge(m, src) +} +func (m *SniCluster) XXX_Size() int { + return xxx_messageInfo_SniCluster.Size(m) +} +func (m *SniCluster) XXX_DiscardUnknown() { + xxx_messageInfo_SniCluster.DiscardUnknown(m) +} + +var xxx_messageInfo_SniCluster proto.InternalMessageInfo + +func init() { + proto.RegisterType((*SniCluster)(nil), "envoy.extensions.filters.network.sni_cluster.v3.SniCluster") +} + +func init() { + proto.RegisterFile("envoy/extensions/filters/network/sni_cluster/v3/sni_cluster.proto", fileDescriptor_87ea91e392e51dd8) +} + +var fileDescriptor_87ea91e392e51dd8 = []byte{ + // 215 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x4c, 0xcd, 0x2b, 0xcb, + 0xaf, 0xd4, 0x4f, 0xad, 0x28, 0x49, 0xcd, 0x2b, 0xce, 0xcc, 0xcf, 0x2b, 0xd6, 0x4f, 0xcb, 0xcc, + 0x29, 0x49, 0x2d, 0x2a, 0xd6, 0xcf, 0x4b, 0x2d, 0x29, 0xcf, 0x2f, 0xca, 0xd6, 0x2f, 0xce, 0xcb, + 0x8c, 0x4f, 0xce, 0x29, 0x2d, 0x2e, 0x49, 0x2d, 0xd2, 0x2f, 0x33, 0x46, 0xe6, 0xea, 0x15, 0x14, + 0xe5, 0x97, 0xe4, 0x0b, 0xe9, 0x83, 0x8d, 0xd0, 0x43, 0x18, 0xa1, 0x07, 0x35, 0x42, 0x0f, 0x6a, + 0x84, 0x1e, 0xb2, 0x9e, 0x32, 0x63, 0x29, 0xd9, 0xd2, 0x94, 0x82, 0x44, 0xfd, 0xc4, 0xbc, 0xbc, + 0xfc, 0x92, 0xc4, 0x12, 0xb0, 0x9d, 0xc5, 0x25, 0x89, 0x25, 0xa5, 0xc5, 0x10, 0xf3, 0xa4, 0x14, + 0x31, 0xa4, 0xcb, 0x52, 0x8b, 0x40, 0x06, 0x67, 0xe6, 0xa5, 0x43, 0x94, 0x28, 0x79, 0x71, 0x71, + 0x05, 0xe7, 0x65, 0x3a, 0x43, 0x8c, 0xb4, 0xb2, 0x99, 0x75, 0xb4, 0x43, 0xce, 0x9c, 0xcb, 0x14, + 0xe2, 0x8e, 0xe4, 0xfc, 0xbc, 0xb4, 0xcc, 0x74, 0xa8, 0x1b, 0xb0, 0x3b, 0xc1, 0x48, 0x0f, 0xa1, + 0xdb, 0x29, 0x6a, 0x57, 0xc3, 0x89, 0x8b, 0x6c, 0x4c, 0x02, 0x4c, 0x5c, 0xb6, 0x99, 0xf9, 0x7a, + 0x60, 0x33, 0x0a, 0x8a, 0xf2, 0x2b, 0x2a, 0xf5, 0x48, 0xf4, 0x96, 0x13, 0x3f, 0xc2, 0xd0, 0x00, + 0x90, 0x2b, 0x03, 0x18, 0x93, 0xd8, 0xc0, 0xce, 0x35, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x71, + 0x28, 0x00, 0xbf, 0x66, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/sni_cluster/v3/sni_cluster.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/sni_cluster/v3/sni_cluster.pb.validate.go new file mode 100644 index 000000000..b1e495640 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/sni_cluster/v3/sni_cluster.pb.validate.go @@ -0,0 +1,101 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/extensions/filters/network/sni_cluster/v3/sni_cluster.proto + +package envoy_extensions_filters_network_sni_cluster_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _sni_cluster_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on SniCluster with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *SniCluster) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// SniClusterValidationError is the validation error returned by +// SniCluster.Validate if the designated constraints aren't met. +type SniClusterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e SniClusterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e SniClusterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e SniClusterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e SniClusterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e SniClusterValidationError) ErrorName() string { return "SniClusterValidationError" } + +// Error satisfies the builtin error interface +func (e SniClusterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSniCluster.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = SniClusterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = SniClusterValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/tcp_proxy/v3/tcp_proxy.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/tcp_proxy/v3/tcp_proxy.pb.go new file mode 100644 index 000000000..6675add13 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/tcp_proxy/v3/tcp_proxy.pb.go @@ -0,0 +1,515 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/extensions/filters/network/tcp_proxy/v3/tcp_proxy.proto + +package envoy_extensions_filters_network_tcp_proxy_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v31 "github.com/envoyproxy/go-control-plane/envoy/config/accesslog/v3" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + v32 "github.com/envoyproxy/go-control-plane/envoy/type/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + duration "github.com/golang/protobuf/ptypes/duration" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type TcpProxy struct { + StatPrefix string `protobuf:"bytes,1,opt,name=stat_prefix,json=statPrefix,proto3" json:"stat_prefix,omitempty"` + // Types that are valid to be assigned to ClusterSpecifier: + // *TcpProxy_Cluster + // *TcpProxy_WeightedClusters + ClusterSpecifier isTcpProxy_ClusterSpecifier `protobuf_oneof:"cluster_specifier"` + MetadataMatch *v3.Metadata `protobuf:"bytes,9,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"` + IdleTimeout *duration.Duration `protobuf:"bytes,8,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"` + DownstreamIdleTimeout *duration.Duration `protobuf:"bytes,3,opt,name=downstream_idle_timeout,json=downstreamIdleTimeout,proto3" json:"downstream_idle_timeout,omitempty"` + UpstreamIdleTimeout *duration.Duration `protobuf:"bytes,4,opt,name=upstream_idle_timeout,json=upstreamIdleTimeout,proto3" json:"upstream_idle_timeout,omitempty"` + AccessLog []*v31.AccessLog `protobuf:"bytes,5,rep,name=access_log,json=accessLog,proto3" json:"access_log,omitempty"` + HiddenEnvoyDeprecatedDeprecatedV1 *TcpProxy_DeprecatedV1 `protobuf:"bytes,6,opt,name=hidden_envoy_deprecated_deprecated_v1,json=hiddenEnvoyDeprecatedDeprecatedV1,proto3" json:"hidden_envoy_deprecated_deprecated_v1,omitempty"` // Deprecated: Do not use. + MaxConnectAttempts *wrappers.UInt32Value `protobuf:"bytes,7,opt,name=max_connect_attempts,json=maxConnectAttempts,proto3" json:"max_connect_attempts,omitempty"` + HashPolicy []*v32.HashPolicy `protobuf:"bytes,11,rep,name=hash_policy,json=hashPolicy,proto3" json:"hash_policy,omitempty"` + TunnelingConfig *TcpProxy_TunnelingConfig `protobuf:"bytes,12,opt,name=tunneling_config,json=tunnelingConfig,proto3" json:"tunneling_config,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TcpProxy) Reset() { *m = TcpProxy{} } +func (m *TcpProxy) String() string { return proto.CompactTextString(m) } +func (*TcpProxy) ProtoMessage() {} +func (*TcpProxy) Descriptor() ([]byte, []int) { + return fileDescriptor_926036763459e38f, []int{0} +} + +func (m *TcpProxy) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TcpProxy.Unmarshal(m, b) +} +func (m *TcpProxy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TcpProxy.Marshal(b, m, deterministic) +} +func (m *TcpProxy) XXX_Merge(src proto.Message) { + xxx_messageInfo_TcpProxy.Merge(m, src) +} +func (m *TcpProxy) XXX_Size() int { + return xxx_messageInfo_TcpProxy.Size(m) +} +func (m *TcpProxy) XXX_DiscardUnknown() { + xxx_messageInfo_TcpProxy.DiscardUnknown(m) +} + +var xxx_messageInfo_TcpProxy proto.InternalMessageInfo + +func (m *TcpProxy) GetStatPrefix() string { + if m != nil { + return m.StatPrefix + } + return "" +} + +type isTcpProxy_ClusterSpecifier interface { + isTcpProxy_ClusterSpecifier() +} + +type TcpProxy_Cluster struct { + Cluster string `protobuf:"bytes,2,opt,name=cluster,proto3,oneof"` +} + +type TcpProxy_WeightedClusters struct { + WeightedClusters *TcpProxy_WeightedCluster `protobuf:"bytes,10,opt,name=weighted_clusters,json=weightedClusters,proto3,oneof"` +} + +func (*TcpProxy_Cluster) isTcpProxy_ClusterSpecifier() {} + +func (*TcpProxy_WeightedClusters) isTcpProxy_ClusterSpecifier() {} + +func (m *TcpProxy) GetClusterSpecifier() isTcpProxy_ClusterSpecifier { + if m != nil { + return m.ClusterSpecifier + } + return nil +} + +func (m *TcpProxy) GetCluster() string { + if x, ok := m.GetClusterSpecifier().(*TcpProxy_Cluster); ok { + return x.Cluster + } + return "" +} + +func (m *TcpProxy) GetWeightedClusters() *TcpProxy_WeightedCluster { + if x, ok := m.GetClusterSpecifier().(*TcpProxy_WeightedClusters); ok { + return x.WeightedClusters + } + return nil +} + +func (m *TcpProxy) GetMetadataMatch() *v3.Metadata { + if m != nil { + return m.MetadataMatch + } + return nil +} + +func (m *TcpProxy) GetIdleTimeout() *duration.Duration { + if m != nil { + return m.IdleTimeout + } + return nil +} + +func (m *TcpProxy) GetDownstreamIdleTimeout() *duration.Duration { + if m != nil { + return m.DownstreamIdleTimeout + } + return nil +} + +func (m *TcpProxy) GetUpstreamIdleTimeout() *duration.Duration { + if m != nil { + return m.UpstreamIdleTimeout + } + return nil +} + +func (m *TcpProxy) GetAccessLog() []*v31.AccessLog { + if m != nil { + return m.AccessLog + } + return nil +} + +// Deprecated: Do not use. +func (m *TcpProxy) GetHiddenEnvoyDeprecatedDeprecatedV1() *TcpProxy_DeprecatedV1 { + if m != nil { + return m.HiddenEnvoyDeprecatedDeprecatedV1 + } + return nil +} + +func (m *TcpProxy) GetMaxConnectAttempts() *wrappers.UInt32Value { + if m != nil { + return m.MaxConnectAttempts + } + return nil +} + +func (m *TcpProxy) GetHashPolicy() []*v32.HashPolicy { + if m != nil { + return m.HashPolicy + } + return nil +} + +func (m *TcpProxy) GetTunnelingConfig() *TcpProxy_TunnelingConfig { + if m != nil { + return m.TunnelingConfig + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*TcpProxy) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*TcpProxy_Cluster)(nil), + (*TcpProxy_WeightedClusters)(nil), + } +} + +// Deprecated: Do not use. +type TcpProxy_DeprecatedV1 struct { + Routes []*TcpProxy_DeprecatedV1_TCPRoute `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TcpProxy_DeprecatedV1) Reset() { *m = TcpProxy_DeprecatedV1{} } +func (m *TcpProxy_DeprecatedV1) String() string { return proto.CompactTextString(m) } +func (*TcpProxy_DeprecatedV1) ProtoMessage() {} +func (*TcpProxy_DeprecatedV1) Descriptor() ([]byte, []int) { + return fileDescriptor_926036763459e38f, []int{0, 0} +} + +func (m *TcpProxy_DeprecatedV1) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TcpProxy_DeprecatedV1.Unmarshal(m, b) +} +func (m *TcpProxy_DeprecatedV1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TcpProxy_DeprecatedV1.Marshal(b, m, deterministic) +} +func (m *TcpProxy_DeprecatedV1) XXX_Merge(src proto.Message) { + xxx_messageInfo_TcpProxy_DeprecatedV1.Merge(m, src) +} +func (m *TcpProxy_DeprecatedV1) XXX_Size() int { + return xxx_messageInfo_TcpProxy_DeprecatedV1.Size(m) +} +func (m *TcpProxy_DeprecatedV1) XXX_DiscardUnknown() { + xxx_messageInfo_TcpProxy_DeprecatedV1.DiscardUnknown(m) +} + +var xxx_messageInfo_TcpProxy_DeprecatedV1 proto.InternalMessageInfo + +func (m *TcpProxy_DeprecatedV1) GetRoutes() []*TcpProxy_DeprecatedV1_TCPRoute { + if m != nil { + return m.Routes + } + return nil +} + +type TcpProxy_DeprecatedV1_TCPRoute struct { + Cluster string `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"` + DestinationIpList []*v3.CidrRange `protobuf:"bytes,2,rep,name=destination_ip_list,json=destinationIpList,proto3" json:"destination_ip_list,omitempty"` + DestinationPorts string `protobuf:"bytes,3,opt,name=destination_ports,json=destinationPorts,proto3" json:"destination_ports,omitempty"` + SourceIpList []*v3.CidrRange `protobuf:"bytes,4,rep,name=source_ip_list,json=sourceIpList,proto3" json:"source_ip_list,omitempty"` + SourcePorts string `protobuf:"bytes,5,opt,name=source_ports,json=sourcePorts,proto3" json:"source_ports,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TcpProxy_DeprecatedV1_TCPRoute) Reset() { *m = TcpProxy_DeprecatedV1_TCPRoute{} } +func (m *TcpProxy_DeprecatedV1_TCPRoute) String() string { return proto.CompactTextString(m) } +func (*TcpProxy_DeprecatedV1_TCPRoute) ProtoMessage() {} +func (*TcpProxy_DeprecatedV1_TCPRoute) Descriptor() ([]byte, []int) { + return fileDescriptor_926036763459e38f, []int{0, 0, 0} +} + +func (m *TcpProxy_DeprecatedV1_TCPRoute) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TcpProxy_DeprecatedV1_TCPRoute.Unmarshal(m, b) +} +func (m *TcpProxy_DeprecatedV1_TCPRoute) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TcpProxy_DeprecatedV1_TCPRoute.Marshal(b, m, deterministic) +} +func (m *TcpProxy_DeprecatedV1_TCPRoute) XXX_Merge(src proto.Message) { + xxx_messageInfo_TcpProxy_DeprecatedV1_TCPRoute.Merge(m, src) +} +func (m *TcpProxy_DeprecatedV1_TCPRoute) XXX_Size() int { + return xxx_messageInfo_TcpProxy_DeprecatedV1_TCPRoute.Size(m) +} +func (m *TcpProxy_DeprecatedV1_TCPRoute) XXX_DiscardUnknown() { + xxx_messageInfo_TcpProxy_DeprecatedV1_TCPRoute.DiscardUnknown(m) +} + +var xxx_messageInfo_TcpProxy_DeprecatedV1_TCPRoute proto.InternalMessageInfo + +func (m *TcpProxy_DeprecatedV1_TCPRoute) GetCluster() string { + if m != nil { + return m.Cluster + } + return "" +} + +func (m *TcpProxy_DeprecatedV1_TCPRoute) GetDestinationIpList() []*v3.CidrRange { + if m != nil { + return m.DestinationIpList + } + return nil +} + +func (m *TcpProxy_DeprecatedV1_TCPRoute) GetDestinationPorts() string { + if m != nil { + return m.DestinationPorts + } + return "" +} + +func (m *TcpProxy_DeprecatedV1_TCPRoute) GetSourceIpList() []*v3.CidrRange { + if m != nil { + return m.SourceIpList + } + return nil +} + +func (m *TcpProxy_DeprecatedV1_TCPRoute) GetSourcePorts() string { + if m != nil { + return m.SourcePorts + } + return "" +} + +type TcpProxy_WeightedCluster struct { + Clusters []*TcpProxy_WeightedCluster_ClusterWeight `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TcpProxy_WeightedCluster) Reset() { *m = TcpProxy_WeightedCluster{} } +func (m *TcpProxy_WeightedCluster) String() string { return proto.CompactTextString(m) } +func (*TcpProxy_WeightedCluster) ProtoMessage() {} +func (*TcpProxy_WeightedCluster) Descriptor() ([]byte, []int) { + return fileDescriptor_926036763459e38f, []int{0, 1} +} + +func (m *TcpProxy_WeightedCluster) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TcpProxy_WeightedCluster.Unmarshal(m, b) +} +func (m *TcpProxy_WeightedCluster) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TcpProxy_WeightedCluster.Marshal(b, m, deterministic) +} +func (m *TcpProxy_WeightedCluster) XXX_Merge(src proto.Message) { + xxx_messageInfo_TcpProxy_WeightedCluster.Merge(m, src) +} +func (m *TcpProxy_WeightedCluster) XXX_Size() int { + return xxx_messageInfo_TcpProxy_WeightedCluster.Size(m) +} +func (m *TcpProxy_WeightedCluster) XXX_DiscardUnknown() { + xxx_messageInfo_TcpProxy_WeightedCluster.DiscardUnknown(m) +} + +var xxx_messageInfo_TcpProxy_WeightedCluster proto.InternalMessageInfo + +func (m *TcpProxy_WeightedCluster) GetClusters() []*TcpProxy_WeightedCluster_ClusterWeight { + if m != nil { + return m.Clusters + } + return nil +} + +type TcpProxy_WeightedCluster_ClusterWeight struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Weight uint32 `protobuf:"varint,2,opt,name=weight,proto3" json:"weight,omitempty"` + MetadataMatch *v3.Metadata `protobuf:"bytes,3,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TcpProxy_WeightedCluster_ClusterWeight) Reset() { + *m = TcpProxy_WeightedCluster_ClusterWeight{} +} +func (m *TcpProxy_WeightedCluster_ClusterWeight) String() string { return proto.CompactTextString(m) } +func (*TcpProxy_WeightedCluster_ClusterWeight) ProtoMessage() {} +func (*TcpProxy_WeightedCluster_ClusterWeight) Descriptor() ([]byte, []int) { + return fileDescriptor_926036763459e38f, []int{0, 1, 0} +} + +func (m *TcpProxy_WeightedCluster_ClusterWeight) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TcpProxy_WeightedCluster_ClusterWeight.Unmarshal(m, b) +} +func (m *TcpProxy_WeightedCluster_ClusterWeight) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TcpProxy_WeightedCluster_ClusterWeight.Marshal(b, m, deterministic) +} +func (m *TcpProxy_WeightedCluster_ClusterWeight) XXX_Merge(src proto.Message) { + xxx_messageInfo_TcpProxy_WeightedCluster_ClusterWeight.Merge(m, src) +} +func (m *TcpProxy_WeightedCluster_ClusterWeight) XXX_Size() int { + return xxx_messageInfo_TcpProxy_WeightedCluster_ClusterWeight.Size(m) +} +func (m *TcpProxy_WeightedCluster_ClusterWeight) XXX_DiscardUnknown() { + xxx_messageInfo_TcpProxy_WeightedCluster_ClusterWeight.DiscardUnknown(m) +} + +var xxx_messageInfo_TcpProxy_WeightedCluster_ClusterWeight proto.InternalMessageInfo + +func (m *TcpProxy_WeightedCluster_ClusterWeight) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *TcpProxy_WeightedCluster_ClusterWeight) GetWeight() uint32 { + if m != nil { + return m.Weight + } + return 0 +} + +func (m *TcpProxy_WeightedCluster_ClusterWeight) GetMetadataMatch() *v3.Metadata { + if m != nil { + return m.MetadataMatch + } + return nil +} + +type TcpProxy_TunnelingConfig struct { + Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TcpProxy_TunnelingConfig) Reset() { *m = TcpProxy_TunnelingConfig{} } +func (m *TcpProxy_TunnelingConfig) String() string { return proto.CompactTextString(m) } +func (*TcpProxy_TunnelingConfig) ProtoMessage() {} +func (*TcpProxy_TunnelingConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_926036763459e38f, []int{0, 2} +} + +func (m *TcpProxy_TunnelingConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TcpProxy_TunnelingConfig.Unmarshal(m, b) +} +func (m *TcpProxy_TunnelingConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TcpProxy_TunnelingConfig.Marshal(b, m, deterministic) +} +func (m *TcpProxy_TunnelingConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_TcpProxy_TunnelingConfig.Merge(m, src) +} +func (m *TcpProxy_TunnelingConfig) XXX_Size() int { + return xxx_messageInfo_TcpProxy_TunnelingConfig.Size(m) +} +func (m *TcpProxy_TunnelingConfig) XXX_DiscardUnknown() { + xxx_messageInfo_TcpProxy_TunnelingConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_TcpProxy_TunnelingConfig proto.InternalMessageInfo + +func (m *TcpProxy_TunnelingConfig) GetHostname() string { + if m != nil { + return m.Hostname + } + return "" +} + +func init() { + proto.RegisterType((*TcpProxy)(nil), "envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy") + proto.RegisterType((*TcpProxy_DeprecatedV1)(nil), "envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy.DeprecatedV1") + proto.RegisterType((*TcpProxy_DeprecatedV1_TCPRoute)(nil), "envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy.DeprecatedV1.TCPRoute") + proto.RegisterType((*TcpProxy_WeightedCluster)(nil), "envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy.WeightedCluster") + proto.RegisterType((*TcpProxy_WeightedCluster_ClusterWeight)(nil), "envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy.WeightedCluster.ClusterWeight") + proto.RegisterType((*TcpProxy_TunnelingConfig)(nil), "envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy.TunnelingConfig") +} + +func init() { + proto.RegisterFile("envoy/extensions/filters/network/tcp_proxy/v3/tcp_proxy.proto", fileDescriptor_926036763459e38f) +} + +var fileDescriptor_926036763459e38f = []byte{ + // 998 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0xcb, 0x6e, 0xdb, 0x46, + 0x17, 0x0e, 0x65, 0x5b, 0x96, 0x8f, 0xec, 0xdf, 0x32, 0xf3, 0x07, 0x61, 0xd4, 0xd6, 0x97, 0xb4, + 0x05, 0xd4, 0x16, 0x25, 0x61, 0x6b, 0x53, 0xa8, 0x17, 0xd4, 0x92, 0x03, 0xdb, 0x40, 0xdc, 0x28, + 0x84, 0xe3, 0x2c, 0x89, 0x31, 0x39, 0x92, 0x06, 0xa5, 0x66, 0x88, 0x99, 0xa1, 0x24, 0xa3, 0x9b, + 0x2c, 0xbb, 0xee, 0x32, 0x4f, 0xd1, 0x65, 0xd1, 0x7d, 0xd1, 0x6e, 0xfb, 0x10, 0xdd, 0xf5, 0x01, + 0x8a, 0xac, 0x8a, 0x99, 0x21, 0x75, 0x8b, 0x5a, 0xd7, 0x71, 0x56, 0xe4, 0x9c, 0xcb, 0xf7, 0xcd, + 0x7c, 0x67, 0xce, 0x19, 0xf8, 0x12, 0xd3, 0x01, 0xbb, 0xf2, 0xf0, 0x48, 0x62, 0x2a, 0x08, 0xa3, + 0xc2, 0xeb, 0x90, 0x58, 0x62, 0x2e, 0x3c, 0x8a, 0xe5, 0x90, 0xf1, 0x6f, 0x3d, 0x19, 0x26, 0x41, + 0xc2, 0xd9, 0xe8, 0xca, 0x1b, 0xd4, 0x27, 0x0b, 0x37, 0xe1, 0x4c, 0x32, 0xfb, 0x53, 0x9d, 0xee, + 0x4e, 0xd2, 0xdd, 0x2c, 0xdd, 0xcd, 0xd2, 0xdd, 0x49, 0xc6, 0xa0, 0x5e, 0xfd, 0xc8, 0xb0, 0x85, + 0x8c, 0x76, 0x48, 0xd7, 0x43, 0x61, 0x88, 0x85, 0x88, 0x59, 0x57, 0x21, 0x8f, 0x17, 0x06, 0xb9, + 0xfa, 0x70, 0x26, 0x34, 0x64, 0x1c, 0xeb, 0xa8, 0x28, 0xe2, 0x58, 0x88, 0x2c, 0x66, 0x67, 0x61, + 0xcc, 0x25, 0x12, 0x78, 0x36, 0x40, 0x5e, 0x25, 0xda, 0xd3, 0x43, 0xa2, 0x17, 0x24, 0x2c, 0x26, + 0x61, 0xb6, 0xff, 0xea, 0x76, 0x97, 0xb1, 0x6e, 0x8c, 0x3d, 0xbd, 0xba, 0x4c, 0x3b, 0x5e, 0x94, + 0x72, 0x24, 0x09, 0xa3, 0xff, 0xe4, 0x1f, 0x72, 0x94, 0x24, 0xea, 0x7c, 0xc6, 0xff, 0x5e, 0x1a, + 0x25, 0xc8, 0x43, 0x94, 0x32, 0xa9, 0xd3, 0x84, 0x27, 0x24, 0x92, 0x69, 0xee, 0xde, 0x7b, 0xcd, + 0x3d, 0xc0, 0x5c, 0xe9, 0x44, 0x68, 0x7e, 0xce, 0xfb, 0x03, 0x14, 0x93, 0x08, 0x49, 0xec, 0xe5, + 0x3f, 0xc6, 0xf1, 0xf0, 0xa7, 0x2d, 0x28, 0x9d, 0x87, 0x49, 0x5b, 0x69, 0x67, 0xd7, 0xa0, 0xac, + 0x80, 0x83, 0x84, 0xe3, 0x0e, 0x19, 0x39, 0xd6, 0xae, 0x55, 0x5b, 0x6b, 0xae, 0xbe, 0x6a, 0x2e, + 0xf3, 0xc2, 0xae, 0xe5, 0x83, 0xf2, 0xb5, 0xb5, 0xcb, 0xae, 0xc2, 0x6a, 0x18, 0xa7, 0x42, 0x62, + 0xee, 0x14, 0x54, 0xd4, 0xc9, 0x1d, 0x3f, 0x37, 0xd8, 0x03, 0xd8, 0x1a, 0x62, 0xd2, 0xed, 0x49, + 0x1c, 0x05, 0x99, 0x4d, 0x38, 0xb0, 0x6b, 0xd5, 0xca, 0x07, 0xc7, 0xee, 0x8d, 0x2a, 0xe9, 0xe6, + 0x3b, 0x73, 0x9f, 0x67, 0x80, 0x2d, 0x83, 0x77, 0x72, 0xc7, 0xaf, 0x0c, 0x67, 0x4d, 0xc2, 0x7e, + 0x04, 0xff, 0xeb, 0x63, 0x89, 0x22, 0x24, 0x51, 0xd0, 0x47, 0x32, 0xec, 0x39, 0x6b, 0x9a, 0x74, + 0x3b, 0x23, 0x35, 0x05, 0x74, 0x55, 0x01, 0x15, 0xf6, 0x59, 0x16, 0xeb, 0x6f, 0xe4, 0x59, 0x67, + 0x2a, 0xc9, 0xfe, 0x02, 0xd6, 0x49, 0x14, 0xe3, 0x40, 0x92, 0x3e, 0x66, 0xa9, 0x74, 0x4a, 0x1a, + 0xe4, 0x81, 0x6b, 0x6a, 0xe4, 0xe6, 0x35, 0x72, 0x8f, 0xb2, 0x1a, 0xfa, 0x65, 0x15, 0x7e, 0x6e, + 0xa2, 0xed, 0xa7, 0x70, 0x3f, 0x62, 0x43, 0x2a, 0x24, 0xc7, 0xa8, 0x1f, 0xcc, 0x00, 0x2d, 0x5d, + 0x07, 0x74, 0x6f, 0x92, 0x79, 0x3a, 0x05, 0x79, 0x06, 0xf7, 0xd2, 0x64, 0x11, 0xe0, 0xf2, 0x75, + 0x80, 0x77, 0xf3, 0xbc, 0x69, 0xb8, 0x16, 0x80, 0xe9, 0x82, 0x20, 0x66, 0x5d, 0x67, 0x65, 0x77, + 0xa9, 0x56, 0x3e, 0xf8, 0x60, 0x56, 0xa2, 0x49, 0x97, 0x0c, 0xea, 0xee, 0xa1, 0x5e, 0x3c, 0x66, + 0x5d, 0x7f, 0x0d, 0xe5, 0xbf, 0xf6, 0x4b, 0x0b, 0x3e, 0xec, 0x91, 0x28, 0xc2, 0x34, 0xd0, 0x99, + 0x41, 0x84, 0x13, 0x8e, 0x43, 0xa4, 0x6a, 0x3e, 0xf5, 0x3b, 0xd8, 0x77, 0x8a, 0x7a, 0x93, 0x47, + 0x6f, 0x5a, 0xf8, 0xa3, 0x31, 0xd8, 0xc5, 0x7e, 0xb3, 0xe0, 0x58, 0xfe, 0x9e, 0xa1, 0x7d, 0xa4, + 0xe0, 0x26, 0xce, 0xe9, 0x30, 0xfb, 0x39, 0xfc, 0xbf, 0x8f, 0x46, 0x41, 0xc8, 0x28, 0xc5, 0xa1, + 0x0c, 0x90, 0x94, 0xb8, 0x9f, 0x48, 0xe1, 0xac, 0xea, 0xad, 0xbc, 0xfb, 0x9a, 0x5e, 0xcf, 0x4e, + 0xa9, 0xac, 0x1f, 0x5c, 0xa0, 0x38, 0xc5, 0xfa, 0xb6, 0x7f, 0x5c, 0xa8, 0x59, 0xbe, 0xdd, 0x47, + 0xa3, 0x96, 0x41, 0x38, 0xcc, 0x00, 0xec, 0x23, 0x28, 0x4f, 0x35, 0xb7, 0x53, 0xd6, 0xda, 0x3d, + 0xc8, 0x8e, 0xa6, 0xda, 0x5f, 0x6d, 0xfd, 0x04, 0x89, 0x5e, 0x5b, 0x07, 0x34, 0x4b, 0xaf, 0x9a, + 0x2b, 0x3f, 0x58, 0x85, 0x8a, 0xe5, 0x43, 0x6f, 0x6c, 0xb5, 0x39, 0x54, 0x64, 0x4a, 0x29, 0x8e, + 0x09, 0xed, 0x06, 0x46, 0x71, 0x67, 0xfd, 0x76, 0xed, 0x71, 0x9e, 0xe3, 0xb5, 0x34, 0x9c, 0xbf, + 0x29, 0x67, 0x0d, 0xd5, 0x1f, 0x97, 0x61, 0x7d, 0x46, 0x23, 0x06, 0x45, 0xce, 0x52, 0x89, 0x85, + 0x63, 0xe9, 0x53, 0x9c, 0xbd, 0x8d, 0x02, 0xb9, 0xe7, 0xad, 0xb6, 0xaf, 0x50, 0xf3, 0x93, 0x97, + 0x2c, 0x3f, 0xa3, 0xa9, 0xfe, 0x51, 0x80, 0x52, 0xee, 0xb6, 0xf7, 0x26, 0xe3, 0x63, 0x6e, 0xc8, + 0x8c, 0xa7, 0xc8, 0x13, 0xb8, 0x1b, 0x61, 0x21, 0x09, 0xd5, 0x57, 0x39, 0x20, 0x49, 0x10, 0x13, + 0x21, 0x9d, 0x82, 0xde, 0xed, 0xce, 0xe2, 0x96, 0x6e, 0x91, 0x88, 0xfb, 0x88, 0x76, 0xb1, 0xbf, + 0x35, 0x95, 0x7b, 0x9a, 0x3c, 0x26, 0x42, 0xda, 0x9f, 0xc0, 0xb4, 0x31, 0x48, 0x18, 0x97, 0x42, + 0xf7, 0xe4, 0x9a, 0x5f, 0x99, 0x72, 0xb4, 0x95, 0x5d, 0xcd, 0x12, 0xc1, 0x52, 0x1e, 0xe2, 0x31, + 0xf1, 0xf2, 0x7f, 0x23, 0x5e, 0x37, 0x69, 0x19, 0xe7, 0x1e, 0x64, 0xeb, 0x8c, 0x6e, 0x45, 0xd3, + 0x95, 0x8d, 0x4d, 0x33, 0x35, 0xbe, 0x79, 0xf9, 0xcb, 0xf7, 0xdb, 0xa7, 0x70, 0x3c, 0x83, 0x6b, + 0xa4, 0x5f, 0xa4, 0xfc, 0xc1, 0x35, 0xca, 0x37, 0x8e, 0x15, 0xde, 0xd7, 0xf0, 0xd5, 0xed, 0xf0, + 0x1c, 0xab, 0xfa, 0xeb, 0x12, 0x6c, 0xce, 0x8d, 0x5d, 0xfb, 0x3b, 0x28, 0x8d, 0x27, 0xba, 0xb9, + 0x37, 0xcf, 0xde, 0xd2, 0x44, 0x77, 0xb3, 0xaf, 0x31, 0x4f, 0xdd, 0x9f, 0x31, 0x61, 0xf5, 0x4f, + 0x0b, 0x36, 0x66, 0xa2, 0xec, 0x77, 0x60, 0x99, 0xa2, 0x3e, 0x9e, 0xbf, 0x43, 0xda, 0x68, 0xef, + 0x40, 0xd1, 0x3c, 0x11, 0xfa, 0x85, 0xda, 0x98, 0x74, 0x76, 0x66, 0x5e, 0xf0, 0x5e, 0x2c, 0xbd, + 0xc1, 0x7b, 0xd1, 0xb8, 0x50, 0x82, 0x3f, 0x85, 0x27, 0x37, 0x17, 0xfc, 0x5f, 0x25, 0x68, 0x9c, + 0x28, 0xdc, 0x16, 0x1c, 0xde, 0x1a, 0xb7, 0xfa, 0xc2, 0x82, 0xcd, 0xb9, 0x09, 0x61, 0xbf, 0x0f, + 0xa5, 0x1e, 0x13, 0x72, 0x91, 0x7c, 0x63, 0xc7, 0x2d, 0xb6, 0x30, 0x47, 0xd7, 0xf8, 0x4c, 0x21, + 0xd5, 0x61, 0xff, 0xc6, 0x48, 0x4d, 0x07, 0xb6, 0xb2, 0x1b, 0x10, 0x88, 0x04, 0x87, 0xa4, 0x43, + 0x30, 0xb7, 0x97, 0xfe, 0x6a, 0x5a, 0xcd, 0x8b, 0x9f, 0x5f, 0xfc, 0xf6, 0x7b, 0xb1, 0x50, 0x29, + 0xc0, 0xe7, 0x84, 0x99, 0x9a, 0x99, 0xf4, 0x1b, 0xdd, 0xc8, 0xe6, 0x46, 0x4e, 0xd5, 0x56, 0xef, + 0x41, 0xdb, 0xba, 0x2c, 0xea, 0x87, 0xa1, 0xfe, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x64, 0xa8, + 0x03, 0x21, 0xb5, 0x0a, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/tcp_proxy/v3/tcp_proxy.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/tcp_proxy/v3/tcp_proxy.pb.validate.go new file mode 100644 index 000000000..66757a0de --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/tcp_proxy/v3/tcp_proxy.pb.validate.go @@ -0,0 +1,694 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/extensions/filters/network/tcp_proxy/v3/tcp_proxy.proto + +package envoy_extensions_filters_network_tcp_proxy_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _tcp_proxy_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on TcpProxy with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *TcpProxy) Validate() error { + if m == nil { + return nil + } + + if len(m.GetStatPrefix()) < 1 { + return TcpProxyValidationError{ + field: "StatPrefix", + reason: "value length must be at least 1 bytes", + } + } + + if v, ok := interface{}(m.GetMetadataMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TcpProxyValidationError{ + field: "MetadataMatch", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetIdleTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TcpProxyValidationError{ + field: "IdleTimeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetDownstreamIdleTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TcpProxyValidationError{ + field: "DownstreamIdleTimeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetUpstreamIdleTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TcpProxyValidationError{ + field: "UpstreamIdleTimeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetAccessLog() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TcpProxyValidationError{ + field: fmt.Sprintf("AccessLog[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedDeprecatedV1()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TcpProxyValidationError{ + field: "HiddenEnvoyDeprecatedDeprecatedV1", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if wrapper := m.GetMaxConnectAttempts(); wrapper != nil { + + if wrapper.GetValue() < 1 { + return TcpProxyValidationError{ + field: "MaxConnectAttempts", + reason: "value must be greater than or equal to 1", + } + } + + } + + if len(m.GetHashPolicy()) > 1 { + return TcpProxyValidationError{ + field: "HashPolicy", + reason: "value must contain no more than 1 item(s)", + } + } + + for idx, item := range m.GetHashPolicy() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TcpProxyValidationError{ + field: fmt.Sprintf("HashPolicy[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetTunnelingConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TcpProxyValidationError{ + field: "TunnelingConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + switch m.ClusterSpecifier.(type) { + + case *TcpProxy_Cluster: + // no validation rules for Cluster + + case *TcpProxy_WeightedClusters: + + if v, ok := interface{}(m.GetWeightedClusters()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TcpProxyValidationError{ + field: "WeightedClusters", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return TcpProxyValidationError{ + field: "ClusterSpecifier", + reason: "value is required", + } + + } + + return nil +} + +// TcpProxyValidationError is the validation error returned by +// TcpProxy.Validate if the designated constraints aren't met. +type TcpProxyValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TcpProxyValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TcpProxyValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TcpProxyValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TcpProxyValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TcpProxyValidationError) ErrorName() string { return "TcpProxyValidationError" } + +// Error satisfies the builtin error interface +func (e TcpProxyValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTcpProxy.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TcpProxyValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TcpProxyValidationError{} + +// Validate checks the field values on TcpProxy_DeprecatedV1 with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *TcpProxy_DeprecatedV1) Validate() error { + if m == nil { + return nil + } + + if len(m.GetRoutes()) < 1 { + return TcpProxy_DeprecatedV1ValidationError{ + field: "Routes", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetRoutes() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TcpProxy_DeprecatedV1ValidationError{ + field: fmt.Sprintf("Routes[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// TcpProxy_DeprecatedV1ValidationError is the validation error returned by +// TcpProxy_DeprecatedV1.Validate if the designated constraints aren't met. +type TcpProxy_DeprecatedV1ValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TcpProxy_DeprecatedV1ValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TcpProxy_DeprecatedV1ValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TcpProxy_DeprecatedV1ValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TcpProxy_DeprecatedV1ValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TcpProxy_DeprecatedV1ValidationError) ErrorName() string { + return "TcpProxy_DeprecatedV1ValidationError" +} + +// Error satisfies the builtin error interface +func (e TcpProxy_DeprecatedV1ValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTcpProxy_DeprecatedV1.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TcpProxy_DeprecatedV1ValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TcpProxy_DeprecatedV1ValidationError{} + +// Validate checks the field values on TcpProxy_WeightedCluster with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *TcpProxy_WeightedCluster) Validate() error { + if m == nil { + return nil + } + + if len(m.GetClusters()) < 1 { + return TcpProxy_WeightedClusterValidationError{ + field: "Clusters", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetClusters() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TcpProxy_WeightedClusterValidationError{ + field: fmt.Sprintf("Clusters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// TcpProxy_WeightedClusterValidationError is the validation error returned by +// TcpProxy_WeightedCluster.Validate if the designated constraints aren't met. +type TcpProxy_WeightedClusterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TcpProxy_WeightedClusterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TcpProxy_WeightedClusterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TcpProxy_WeightedClusterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TcpProxy_WeightedClusterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TcpProxy_WeightedClusterValidationError) ErrorName() string { + return "TcpProxy_WeightedClusterValidationError" +} + +// Error satisfies the builtin error interface +func (e TcpProxy_WeightedClusterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTcpProxy_WeightedCluster.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TcpProxy_WeightedClusterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TcpProxy_WeightedClusterValidationError{} + +// Validate checks the field values on TcpProxy_TunnelingConfig with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *TcpProxy_TunnelingConfig) Validate() error { + if m == nil { + return nil + } + + if len(m.GetHostname()) < 1 { + return TcpProxy_TunnelingConfigValidationError{ + field: "Hostname", + reason: "value length must be at least 1 bytes", + } + } + + return nil +} + +// TcpProxy_TunnelingConfigValidationError is the validation error returned by +// TcpProxy_TunnelingConfig.Validate if the designated constraints aren't met. +type TcpProxy_TunnelingConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TcpProxy_TunnelingConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TcpProxy_TunnelingConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TcpProxy_TunnelingConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TcpProxy_TunnelingConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TcpProxy_TunnelingConfigValidationError) ErrorName() string { + return "TcpProxy_TunnelingConfigValidationError" +} + +// Error satisfies the builtin error interface +func (e TcpProxy_TunnelingConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTcpProxy_TunnelingConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TcpProxy_TunnelingConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TcpProxy_TunnelingConfigValidationError{} + +// Validate checks the field values on TcpProxy_DeprecatedV1_TCPRoute with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *TcpProxy_DeprecatedV1_TCPRoute) Validate() error { + if m == nil { + return nil + } + + if len(m.GetCluster()) < 1 { + return TcpProxy_DeprecatedV1_TCPRouteValidationError{ + field: "Cluster", + reason: "value length must be at least 1 bytes", + } + } + + for idx, item := range m.GetDestinationIpList() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TcpProxy_DeprecatedV1_TCPRouteValidationError{ + field: fmt.Sprintf("DestinationIpList[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for DestinationPorts + + for idx, item := range m.GetSourceIpList() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TcpProxy_DeprecatedV1_TCPRouteValidationError{ + field: fmt.Sprintf("SourceIpList[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for SourcePorts + + return nil +} + +// TcpProxy_DeprecatedV1_TCPRouteValidationError is the validation error +// returned by TcpProxy_DeprecatedV1_TCPRoute.Validate if the designated +// constraints aren't met. +type TcpProxy_DeprecatedV1_TCPRouteValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TcpProxy_DeprecatedV1_TCPRouteValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TcpProxy_DeprecatedV1_TCPRouteValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TcpProxy_DeprecatedV1_TCPRouteValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TcpProxy_DeprecatedV1_TCPRouteValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TcpProxy_DeprecatedV1_TCPRouteValidationError) ErrorName() string { + return "TcpProxy_DeprecatedV1_TCPRouteValidationError" +} + +// Error satisfies the builtin error interface +func (e TcpProxy_DeprecatedV1_TCPRouteValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTcpProxy_DeprecatedV1_TCPRoute.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TcpProxy_DeprecatedV1_TCPRouteValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TcpProxy_DeprecatedV1_TCPRouteValidationError{} + +// Validate checks the field values on TcpProxy_WeightedCluster_ClusterWeight +// with the rules defined in the proto definition for this message. If any +// rules are violated, an error is returned. +func (m *TcpProxy_WeightedCluster_ClusterWeight) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return TcpProxy_WeightedCluster_ClusterWeightValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + if m.GetWeight() < 1 { + return TcpProxy_WeightedCluster_ClusterWeightValidationError{ + field: "Weight", + reason: "value must be greater than or equal to 1", + } + } + + if v, ok := interface{}(m.GetMetadataMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TcpProxy_WeightedCluster_ClusterWeightValidationError{ + field: "MetadataMatch", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// TcpProxy_WeightedCluster_ClusterWeightValidationError is the validation +// error returned by TcpProxy_WeightedCluster_ClusterWeight.Validate if the +// designated constraints aren't met. +type TcpProxy_WeightedCluster_ClusterWeightValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TcpProxy_WeightedCluster_ClusterWeightValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TcpProxy_WeightedCluster_ClusterWeightValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TcpProxy_WeightedCluster_ClusterWeightValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TcpProxy_WeightedCluster_ClusterWeightValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TcpProxy_WeightedCluster_ClusterWeightValidationError) ErrorName() string { + return "TcpProxy_WeightedCluster_ClusterWeightValidationError" +} + +// Error satisfies the builtin error interface +func (e TcpProxy_WeightedCluster_ClusterWeightValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTcpProxy_WeightedCluster_ClusterWeight.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TcpProxy_WeightedCluster_ClusterWeightValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TcpProxy_WeightedCluster_ClusterWeightValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3/cert.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3/cert.pb.go new file mode 100644 index 000000000..7e99a9e27 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3/cert.pb.go @@ -0,0 +1,1174 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/extensions/transport_sockets/tls/v3/cert.proto + +package envoy_extensions_transport_sockets_tls_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + v31 "github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + any "github.com/golang/protobuf/ptypes/any" + duration "github.com/golang/protobuf/ptypes/duration" + _struct "github.com/golang/protobuf/ptypes/struct" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type TlsParameters_TlsProtocol int32 + +const ( + TlsParameters_TLS_AUTO TlsParameters_TlsProtocol = 0 + TlsParameters_TLSv1_0 TlsParameters_TlsProtocol = 1 + TlsParameters_TLSv1_1 TlsParameters_TlsProtocol = 2 + TlsParameters_TLSv1_2 TlsParameters_TlsProtocol = 3 + TlsParameters_TLSv1_3 TlsParameters_TlsProtocol = 4 +) + +var TlsParameters_TlsProtocol_name = map[int32]string{ + 0: "TLS_AUTO", + 1: "TLSv1_0", + 2: "TLSv1_1", + 3: "TLSv1_2", + 4: "TLSv1_3", +} + +var TlsParameters_TlsProtocol_value = map[string]int32{ + "TLS_AUTO": 0, + "TLSv1_0": 1, + "TLSv1_1": 2, + "TLSv1_2": 3, + "TLSv1_3": 4, +} + +func (x TlsParameters_TlsProtocol) String() string { + return proto.EnumName(TlsParameters_TlsProtocol_name, int32(x)) +} + +func (TlsParameters_TlsProtocol) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_f024ddf67fb198ab, []int{0, 0} +} + +type CertificateValidationContext_TrustChainVerification int32 + +const ( + CertificateValidationContext_VERIFY_TRUST_CHAIN CertificateValidationContext_TrustChainVerification = 0 + CertificateValidationContext_ACCEPT_UNTRUSTED CertificateValidationContext_TrustChainVerification = 1 +) + +var CertificateValidationContext_TrustChainVerification_name = map[int32]string{ + 0: "VERIFY_TRUST_CHAIN", + 1: "ACCEPT_UNTRUSTED", +} + +var CertificateValidationContext_TrustChainVerification_value = map[string]int32{ + "VERIFY_TRUST_CHAIN": 0, + "ACCEPT_UNTRUSTED": 1, +} + +func (x CertificateValidationContext_TrustChainVerification) String() string { + return proto.EnumName(CertificateValidationContext_TrustChainVerification_name, int32(x)) +} + +func (CertificateValidationContext_TrustChainVerification) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_f024ddf67fb198ab, []int{4, 0} +} + +type TlsParameters struct { + TlsMinimumProtocolVersion TlsParameters_TlsProtocol `protobuf:"varint,1,opt,name=tls_minimum_protocol_version,json=tlsMinimumProtocolVersion,proto3,enum=envoy.extensions.transport_sockets.tls.v3.TlsParameters_TlsProtocol" json:"tls_minimum_protocol_version,omitempty"` + TlsMaximumProtocolVersion TlsParameters_TlsProtocol `protobuf:"varint,2,opt,name=tls_maximum_protocol_version,json=tlsMaximumProtocolVersion,proto3,enum=envoy.extensions.transport_sockets.tls.v3.TlsParameters_TlsProtocol" json:"tls_maximum_protocol_version,omitempty"` + CipherSuites []string `protobuf:"bytes,3,rep,name=cipher_suites,json=cipherSuites,proto3" json:"cipher_suites,omitempty"` + EcdhCurves []string `protobuf:"bytes,4,rep,name=ecdh_curves,json=ecdhCurves,proto3" json:"ecdh_curves,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TlsParameters) Reset() { *m = TlsParameters{} } +func (m *TlsParameters) String() string { return proto.CompactTextString(m) } +func (*TlsParameters) ProtoMessage() {} +func (*TlsParameters) Descriptor() ([]byte, []int) { + return fileDescriptor_f024ddf67fb198ab, []int{0} +} + +func (m *TlsParameters) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TlsParameters.Unmarshal(m, b) +} +func (m *TlsParameters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TlsParameters.Marshal(b, m, deterministic) +} +func (m *TlsParameters) XXX_Merge(src proto.Message) { + xxx_messageInfo_TlsParameters.Merge(m, src) +} +func (m *TlsParameters) XXX_Size() int { + return xxx_messageInfo_TlsParameters.Size(m) +} +func (m *TlsParameters) XXX_DiscardUnknown() { + xxx_messageInfo_TlsParameters.DiscardUnknown(m) +} + +var xxx_messageInfo_TlsParameters proto.InternalMessageInfo + +func (m *TlsParameters) GetTlsMinimumProtocolVersion() TlsParameters_TlsProtocol { + if m != nil { + return m.TlsMinimumProtocolVersion + } + return TlsParameters_TLS_AUTO +} + +func (m *TlsParameters) GetTlsMaximumProtocolVersion() TlsParameters_TlsProtocol { + if m != nil { + return m.TlsMaximumProtocolVersion + } + return TlsParameters_TLS_AUTO +} + +func (m *TlsParameters) GetCipherSuites() []string { + if m != nil { + return m.CipherSuites + } + return nil +} + +func (m *TlsParameters) GetEcdhCurves() []string { + if m != nil { + return m.EcdhCurves + } + return nil +} + +type PrivateKeyProvider struct { + ProviderName string `protobuf:"bytes,1,opt,name=provider_name,json=providerName,proto3" json:"provider_name,omitempty"` + // Types that are valid to be assigned to ConfigType: + // *PrivateKeyProvider_HiddenEnvoyDeprecatedConfig + // *PrivateKeyProvider_TypedConfig + ConfigType isPrivateKeyProvider_ConfigType `protobuf_oneof:"config_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PrivateKeyProvider) Reset() { *m = PrivateKeyProvider{} } +func (m *PrivateKeyProvider) String() string { return proto.CompactTextString(m) } +func (*PrivateKeyProvider) ProtoMessage() {} +func (*PrivateKeyProvider) Descriptor() ([]byte, []int) { + return fileDescriptor_f024ddf67fb198ab, []int{1} +} + +func (m *PrivateKeyProvider) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PrivateKeyProvider.Unmarshal(m, b) +} +func (m *PrivateKeyProvider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PrivateKeyProvider.Marshal(b, m, deterministic) +} +func (m *PrivateKeyProvider) XXX_Merge(src proto.Message) { + xxx_messageInfo_PrivateKeyProvider.Merge(m, src) +} +func (m *PrivateKeyProvider) XXX_Size() int { + return xxx_messageInfo_PrivateKeyProvider.Size(m) +} +func (m *PrivateKeyProvider) XXX_DiscardUnknown() { + xxx_messageInfo_PrivateKeyProvider.DiscardUnknown(m) +} + +var xxx_messageInfo_PrivateKeyProvider proto.InternalMessageInfo + +func (m *PrivateKeyProvider) GetProviderName() string { + if m != nil { + return m.ProviderName + } + return "" +} + +type isPrivateKeyProvider_ConfigType interface { + isPrivateKeyProvider_ConfigType() +} + +type PrivateKeyProvider_HiddenEnvoyDeprecatedConfig struct { + HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"` +} + +type PrivateKeyProvider_TypedConfig struct { + TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"` +} + +func (*PrivateKeyProvider_HiddenEnvoyDeprecatedConfig) isPrivateKeyProvider_ConfigType() {} + +func (*PrivateKeyProvider_TypedConfig) isPrivateKeyProvider_ConfigType() {} + +func (m *PrivateKeyProvider) GetConfigType() isPrivateKeyProvider_ConfigType { + if m != nil { + return m.ConfigType + } + return nil +} + +// Deprecated: Do not use. +func (m *PrivateKeyProvider) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct { + if x, ok := m.GetConfigType().(*PrivateKeyProvider_HiddenEnvoyDeprecatedConfig); ok { + return x.HiddenEnvoyDeprecatedConfig + } + return nil +} + +func (m *PrivateKeyProvider) GetTypedConfig() *any.Any { + if x, ok := m.GetConfigType().(*PrivateKeyProvider_TypedConfig); ok { + return x.TypedConfig + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*PrivateKeyProvider) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*PrivateKeyProvider_HiddenEnvoyDeprecatedConfig)(nil), + (*PrivateKeyProvider_TypedConfig)(nil), + } +} + +type TlsCertificate struct { + CertificateChain *v3.DataSource `protobuf:"bytes,1,opt,name=certificate_chain,json=certificateChain,proto3" json:"certificate_chain,omitempty"` + PrivateKey *v3.DataSource `protobuf:"bytes,2,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"` + PrivateKeyProvider *PrivateKeyProvider `protobuf:"bytes,6,opt,name=private_key_provider,json=privateKeyProvider,proto3" json:"private_key_provider,omitempty"` + Password *v3.DataSource `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"` + OcspStaple *v3.DataSource `protobuf:"bytes,4,opt,name=ocsp_staple,json=ocspStaple,proto3" json:"ocsp_staple,omitempty"` + SignedCertificateTimestamp []*v3.DataSource `protobuf:"bytes,5,rep,name=signed_certificate_timestamp,json=signedCertificateTimestamp,proto3" json:"signed_certificate_timestamp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TlsCertificate) Reset() { *m = TlsCertificate{} } +func (m *TlsCertificate) String() string { return proto.CompactTextString(m) } +func (*TlsCertificate) ProtoMessage() {} +func (*TlsCertificate) Descriptor() ([]byte, []int) { + return fileDescriptor_f024ddf67fb198ab, []int{2} +} + +func (m *TlsCertificate) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TlsCertificate.Unmarshal(m, b) +} +func (m *TlsCertificate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TlsCertificate.Marshal(b, m, deterministic) +} +func (m *TlsCertificate) XXX_Merge(src proto.Message) { + xxx_messageInfo_TlsCertificate.Merge(m, src) +} +func (m *TlsCertificate) XXX_Size() int { + return xxx_messageInfo_TlsCertificate.Size(m) +} +func (m *TlsCertificate) XXX_DiscardUnknown() { + xxx_messageInfo_TlsCertificate.DiscardUnknown(m) +} + +var xxx_messageInfo_TlsCertificate proto.InternalMessageInfo + +func (m *TlsCertificate) GetCertificateChain() *v3.DataSource { + if m != nil { + return m.CertificateChain + } + return nil +} + +func (m *TlsCertificate) GetPrivateKey() *v3.DataSource { + if m != nil { + return m.PrivateKey + } + return nil +} + +func (m *TlsCertificate) GetPrivateKeyProvider() *PrivateKeyProvider { + if m != nil { + return m.PrivateKeyProvider + } + return nil +} + +func (m *TlsCertificate) GetPassword() *v3.DataSource { + if m != nil { + return m.Password + } + return nil +} + +func (m *TlsCertificate) GetOcspStaple() *v3.DataSource { + if m != nil { + return m.OcspStaple + } + return nil +} + +func (m *TlsCertificate) GetSignedCertificateTimestamp() []*v3.DataSource { + if m != nil { + return m.SignedCertificateTimestamp + } + return nil +} + +type TlsSessionTicketKeys struct { + Keys []*v3.DataSource `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TlsSessionTicketKeys) Reset() { *m = TlsSessionTicketKeys{} } +func (m *TlsSessionTicketKeys) String() string { return proto.CompactTextString(m) } +func (*TlsSessionTicketKeys) ProtoMessage() {} +func (*TlsSessionTicketKeys) Descriptor() ([]byte, []int) { + return fileDescriptor_f024ddf67fb198ab, []int{3} +} + +func (m *TlsSessionTicketKeys) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TlsSessionTicketKeys.Unmarshal(m, b) +} +func (m *TlsSessionTicketKeys) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TlsSessionTicketKeys.Marshal(b, m, deterministic) +} +func (m *TlsSessionTicketKeys) XXX_Merge(src proto.Message) { + xxx_messageInfo_TlsSessionTicketKeys.Merge(m, src) +} +func (m *TlsSessionTicketKeys) XXX_Size() int { + return xxx_messageInfo_TlsSessionTicketKeys.Size(m) +} +func (m *TlsSessionTicketKeys) XXX_DiscardUnknown() { + xxx_messageInfo_TlsSessionTicketKeys.DiscardUnknown(m) +} + +var xxx_messageInfo_TlsSessionTicketKeys proto.InternalMessageInfo + +func (m *TlsSessionTicketKeys) GetKeys() []*v3.DataSource { + if m != nil { + return m.Keys + } + return nil +} + +type CertificateValidationContext struct { + TrustedCa *v3.DataSource `protobuf:"bytes,1,opt,name=trusted_ca,json=trustedCa,proto3" json:"trusted_ca,omitempty"` + VerifyCertificateSpki []string `protobuf:"bytes,3,rep,name=verify_certificate_spki,json=verifyCertificateSpki,proto3" json:"verify_certificate_spki,omitempty"` + VerifyCertificateHash []string `protobuf:"bytes,2,rep,name=verify_certificate_hash,json=verifyCertificateHash,proto3" json:"verify_certificate_hash,omitempty"` + HiddenEnvoyDeprecatedVerifySubjectAltName []string `protobuf:"bytes,4,rep,name=hidden_envoy_deprecated_verify_subject_alt_name,json=hiddenEnvoyDeprecatedVerifySubjectAltName,proto3" json:"hidden_envoy_deprecated_verify_subject_alt_name,omitempty"` // Deprecated: Do not use. + MatchSubjectAltNames []*v31.StringMatcher `protobuf:"bytes,9,rep,name=match_subject_alt_names,json=matchSubjectAltNames,proto3" json:"match_subject_alt_names,omitempty"` + RequireOcspStaple *wrappers.BoolValue `protobuf:"bytes,5,opt,name=require_ocsp_staple,json=requireOcspStaple,proto3" json:"require_ocsp_staple,omitempty"` + RequireSignedCertificateTimestamp *wrappers.BoolValue `protobuf:"bytes,6,opt,name=require_signed_certificate_timestamp,json=requireSignedCertificateTimestamp,proto3" json:"require_signed_certificate_timestamp,omitempty"` + Crl *v3.DataSource `protobuf:"bytes,7,opt,name=crl,proto3" json:"crl,omitempty"` + AllowExpiredCertificate bool `protobuf:"varint,8,opt,name=allow_expired_certificate,json=allowExpiredCertificate,proto3" json:"allow_expired_certificate,omitempty"` + TrustChainVerification CertificateValidationContext_TrustChainVerification `protobuf:"varint,10,opt,name=trust_chain_verification,json=trustChainVerification,proto3,enum=envoy.extensions.transport_sockets.tls.v3.CertificateValidationContext_TrustChainVerification" json:"trust_chain_verification,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CertificateValidationContext) Reset() { *m = CertificateValidationContext{} } +func (m *CertificateValidationContext) String() string { return proto.CompactTextString(m) } +func (*CertificateValidationContext) ProtoMessage() {} +func (*CertificateValidationContext) Descriptor() ([]byte, []int) { + return fileDescriptor_f024ddf67fb198ab, []int{4} +} + +func (m *CertificateValidationContext) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CertificateValidationContext.Unmarshal(m, b) +} +func (m *CertificateValidationContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CertificateValidationContext.Marshal(b, m, deterministic) +} +func (m *CertificateValidationContext) XXX_Merge(src proto.Message) { + xxx_messageInfo_CertificateValidationContext.Merge(m, src) +} +func (m *CertificateValidationContext) XXX_Size() int { + return xxx_messageInfo_CertificateValidationContext.Size(m) +} +func (m *CertificateValidationContext) XXX_DiscardUnknown() { + xxx_messageInfo_CertificateValidationContext.DiscardUnknown(m) +} + +var xxx_messageInfo_CertificateValidationContext proto.InternalMessageInfo + +func (m *CertificateValidationContext) GetTrustedCa() *v3.DataSource { + if m != nil { + return m.TrustedCa + } + return nil +} + +func (m *CertificateValidationContext) GetVerifyCertificateSpki() []string { + if m != nil { + return m.VerifyCertificateSpki + } + return nil +} + +func (m *CertificateValidationContext) GetVerifyCertificateHash() []string { + if m != nil { + return m.VerifyCertificateHash + } + return nil +} + +// Deprecated: Do not use. +func (m *CertificateValidationContext) GetHiddenEnvoyDeprecatedVerifySubjectAltName() []string { + if m != nil { + return m.HiddenEnvoyDeprecatedVerifySubjectAltName + } + return nil +} + +func (m *CertificateValidationContext) GetMatchSubjectAltNames() []*v31.StringMatcher { + if m != nil { + return m.MatchSubjectAltNames + } + return nil +} + +func (m *CertificateValidationContext) GetRequireOcspStaple() *wrappers.BoolValue { + if m != nil { + return m.RequireOcspStaple + } + return nil +} + +func (m *CertificateValidationContext) GetRequireSignedCertificateTimestamp() *wrappers.BoolValue { + if m != nil { + return m.RequireSignedCertificateTimestamp + } + return nil +} + +func (m *CertificateValidationContext) GetCrl() *v3.DataSource { + if m != nil { + return m.Crl + } + return nil +} + +func (m *CertificateValidationContext) GetAllowExpiredCertificate() bool { + if m != nil { + return m.AllowExpiredCertificate + } + return false +} + +func (m *CertificateValidationContext) GetTrustChainVerification() CertificateValidationContext_TrustChainVerification { + if m != nil { + return m.TrustChainVerification + } + return CertificateValidationContext_VERIFY_TRUST_CHAIN +} + +type CommonTlsContext struct { + TlsParams *TlsParameters `protobuf:"bytes,1,opt,name=tls_params,json=tlsParams,proto3" json:"tls_params,omitempty"` + TlsCertificates []*TlsCertificate `protobuf:"bytes,2,rep,name=tls_certificates,json=tlsCertificates,proto3" json:"tls_certificates,omitempty"` + TlsCertificateSdsSecretConfigs []*SdsSecretConfig `protobuf:"bytes,6,rep,name=tls_certificate_sds_secret_configs,json=tlsCertificateSdsSecretConfigs,proto3" json:"tls_certificate_sds_secret_configs,omitempty"` + // Types that are valid to be assigned to ValidationContextType: + // *CommonTlsContext_ValidationContext + // *CommonTlsContext_ValidationContextSdsSecretConfig + // *CommonTlsContext_CombinedValidationContext + ValidationContextType isCommonTlsContext_ValidationContextType `protobuf_oneof:"validation_context_type"` + AlpnProtocols []string `protobuf:"bytes,4,rep,name=alpn_protocols,json=alpnProtocols,proto3" json:"alpn_protocols,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CommonTlsContext) Reset() { *m = CommonTlsContext{} } +func (m *CommonTlsContext) String() string { return proto.CompactTextString(m) } +func (*CommonTlsContext) ProtoMessage() {} +func (*CommonTlsContext) Descriptor() ([]byte, []int) { + return fileDescriptor_f024ddf67fb198ab, []int{5} +} + +func (m *CommonTlsContext) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommonTlsContext.Unmarshal(m, b) +} +func (m *CommonTlsContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommonTlsContext.Marshal(b, m, deterministic) +} +func (m *CommonTlsContext) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommonTlsContext.Merge(m, src) +} +func (m *CommonTlsContext) XXX_Size() int { + return xxx_messageInfo_CommonTlsContext.Size(m) +} +func (m *CommonTlsContext) XXX_DiscardUnknown() { + xxx_messageInfo_CommonTlsContext.DiscardUnknown(m) +} + +var xxx_messageInfo_CommonTlsContext proto.InternalMessageInfo + +func (m *CommonTlsContext) GetTlsParams() *TlsParameters { + if m != nil { + return m.TlsParams + } + return nil +} + +func (m *CommonTlsContext) GetTlsCertificates() []*TlsCertificate { + if m != nil { + return m.TlsCertificates + } + return nil +} + +func (m *CommonTlsContext) GetTlsCertificateSdsSecretConfigs() []*SdsSecretConfig { + if m != nil { + return m.TlsCertificateSdsSecretConfigs + } + return nil +} + +type isCommonTlsContext_ValidationContextType interface { + isCommonTlsContext_ValidationContextType() +} + +type CommonTlsContext_ValidationContext struct { + ValidationContext *CertificateValidationContext `protobuf:"bytes,3,opt,name=validation_context,json=validationContext,proto3,oneof"` +} + +type CommonTlsContext_ValidationContextSdsSecretConfig struct { + ValidationContextSdsSecretConfig *SdsSecretConfig `protobuf:"bytes,7,opt,name=validation_context_sds_secret_config,json=validationContextSdsSecretConfig,proto3,oneof"` +} + +type CommonTlsContext_CombinedValidationContext struct { + CombinedValidationContext *CommonTlsContext_CombinedCertificateValidationContext `protobuf:"bytes,8,opt,name=combined_validation_context,json=combinedValidationContext,proto3,oneof"` +} + +func (*CommonTlsContext_ValidationContext) isCommonTlsContext_ValidationContextType() {} + +func (*CommonTlsContext_ValidationContextSdsSecretConfig) isCommonTlsContext_ValidationContextType() {} + +func (*CommonTlsContext_CombinedValidationContext) isCommonTlsContext_ValidationContextType() {} + +func (m *CommonTlsContext) GetValidationContextType() isCommonTlsContext_ValidationContextType { + if m != nil { + return m.ValidationContextType + } + return nil +} + +func (m *CommonTlsContext) GetValidationContext() *CertificateValidationContext { + if x, ok := m.GetValidationContextType().(*CommonTlsContext_ValidationContext); ok { + return x.ValidationContext + } + return nil +} + +func (m *CommonTlsContext) GetValidationContextSdsSecretConfig() *SdsSecretConfig { + if x, ok := m.GetValidationContextType().(*CommonTlsContext_ValidationContextSdsSecretConfig); ok { + return x.ValidationContextSdsSecretConfig + } + return nil +} + +func (m *CommonTlsContext) GetCombinedValidationContext() *CommonTlsContext_CombinedCertificateValidationContext { + if x, ok := m.GetValidationContextType().(*CommonTlsContext_CombinedValidationContext); ok { + return x.CombinedValidationContext + } + return nil +} + +func (m *CommonTlsContext) GetAlpnProtocols() []string { + if m != nil { + return m.AlpnProtocols + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*CommonTlsContext) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*CommonTlsContext_ValidationContext)(nil), + (*CommonTlsContext_ValidationContextSdsSecretConfig)(nil), + (*CommonTlsContext_CombinedValidationContext)(nil), + } +} + +type CommonTlsContext_CombinedCertificateValidationContext struct { + DefaultValidationContext *CertificateValidationContext `protobuf:"bytes,1,opt,name=default_validation_context,json=defaultValidationContext,proto3" json:"default_validation_context,omitempty"` + ValidationContextSdsSecretConfig *SdsSecretConfig `protobuf:"bytes,2,opt,name=validation_context_sds_secret_config,json=validationContextSdsSecretConfig,proto3" json:"validation_context_sds_secret_config,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CommonTlsContext_CombinedCertificateValidationContext) Reset() { + *m = CommonTlsContext_CombinedCertificateValidationContext{} +} +func (m *CommonTlsContext_CombinedCertificateValidationContext) String() string { + return proto.CompactTextString(m) +} +func (*CommonTlsContext_CombinedCertificateValidationContext) ProtoMessage() {} +func (*CommonTlsContext_CombinedCertificateValidationContext) Descriptor() ([]byte, []int) { + return fileDescriptor_f024ddf67fb198ab, []int{5, 0} +} + +func (m *CommonTlsContext_CombinedCertificateValidationContext) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommonTlsContext_CombinedCertificateValidationContext.Unmarshal(m, b) +} +func (m *CommonTlsContext_CombinedCertificateValidationContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommonTlsContext_CombinedCertificateValidationContext.Marshal(b, m, deterministic) +} +func (m *CommonTlsContext_CombinedCertificateValidationContext) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommonTlsContext_CombinedCertificateValidationContext.Merge(m, src) +} +func (m *CommonTlsContext_CombinedCertificateValidationContext) XXX_Size() int { + return xxx_messageInfo_CommonTlsContext_CombinedCertificateValidationContext.Size(m) +} +func (m *CommonTlsContext_CombinedCertificateValidationContext) XXX_DiscardUnknown() { + xxx_messageInfo_CommonTlsContext_CombinedCertificateValidationContext.DiscardUnknown(m) +} + +var xxx_messageInfo_CommonTlsContext_CombinedCertificateValidationContext proto.InternalMessageInfo + +func (m *CommonTlsContext_CombinedCertificateValidationContext) GetDefaultValidationContext() *CertificateValidationContext { + if m != nil { + return m.DefaultValidationContext + } + return nil +} + +func (m *CommonTlsContext_CombinedCertificateValidationContext) GetValidationContextSdsSecretConfig() *SdsSecretConfig { + if m != nil { + return m.ValidationContextSdsSecretConfig + } + return nil +} + +type UpstreamTlsContext struct { + CommonTlsContext *CommonTlsContext `protobuf:"bytes,1,opt,name=common_tls_context,json=commonTlsContext,proto3" json:"common_tls_context,omitempty"` + Sni string `protobuf:"bytes,2,opt,name=sni,proto3" json:"sni,omitempty"` + AllowRenegotiation bool `protobuf:"varint,3,opt,name=allow_renegotiation,json=allowRenegotiation,proto3" json:"allow_renegotiation,omitempty"` + MaxSessionKeys *wrappers.UInt32Value `protobuf:"bytes,4,opt,name=max_session_keys,json=maxSessionKeys,proto3" json:"max_session_keys,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UpstreamTlsContext) Reset() { *m = UpstreamTlsContext{} } +func (m *UpstreamTlsContext) String() string { return proto.CompactTextString(m) } +func (*UpstreamTlsContext) ProtoMessage() {} +func (*UpstreamTlsContext) Descriptor() ([]byte, []int) { + return fileDescriptor_f024ddf67fb198ab, []int{6} +} + +func (m *UpstreamTlsContext) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpstreamTlsContext.Unmarshal(m, b) +} +func (m *UpstreamTlsContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpstreamTlsContext.Marshal(b, m, deterministic) +} +func (m *UpstreamTlsContext) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpstreamTlsContext.Merge(m, src) +} +func (m *UpstreamTlsContext) XXX_Size() int { + return xxx_messageInfo_UpstreamTlsContext.Size(m) +} +func (m *UpstreamTlsContext) XXX_DiscardUnknown() { + xxx_messageInfo_UpstreamTlsContext.DiscardUnknown(m) +} + +var xxx_messageInfo_UpstreamTlsContext proto.InternalMessageInfo + +func (m *UpstreamTlsContext) GetCommonTlsContext() *CommonTlsContext { + if m != nil { + return m.CommonTlsContext + } + return nil +} + +func (m *UpstreamTlsContext) GetSni() string { + if m != nil { + return m.Sni + } + return "" +} + +func (m *UpstreamTlsContext) GetAllowRenegotiation() bool { + if m != nil { + return m.AllowRenegotiation + } + return false +} + +func (m *UpstreamTlsContext) GetMaxSessionKeys() *wrappers.UInt32Value { + if m != nil { + return m.MaxSessionKeys + } + return nil +} + +type DownstreamTlsContext struct { + CommonTlsContext *CommonTlsContext `protobuf:"bytes,1,opt,name=common_tls_context,json=commonTlsContext,proto3" json:"common_tls_context,omitempty"` + RequireClientCertificate *wrappers.BoolValue `protobuf:"bytes,2,opt,name=require_client_certificate,json=requireClientCertificate,proto3" json:"require_client_certificate,omitempty"` + RequireSni *wrappers.BoolValue `protobuf:"bytes,3,opt,name=require_sni,json=requireSni,proto3" json:"require_sni,omitempty"` + // Types that are valid to be assigned to SessionTicketKeysType: + // *DownstreamTlsContext_SessionTicketKeys + // *DownstreamTlsContext_SessionTicketKeysSdsSecretConfig + SessionTicketKeysType isDownstreamTlsContext_SessionTicketKeysType `protobuf_oneof:"session_ticket_keys_type"` + SessionTimeout *duration.Duration `protobuf:"bytes,6,opt,name=session_timeout,json=sessionTimeout,proto3" json:"session_timeout,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DownstreamTlsContext) Reset() { *m = DownstreamTlsContext{} } +func (m *DownstreamTlsContext) String() string { return proto.CompactTextString(m) } +func (*DownstreamTlsContext) ProtoMessage() {} +func (*DownstreamTlsContext) Descriptor() ([]byte, []int) { + return fileDescriptor_f024ddf67fb198ab, []int{7} +} + +func (m *DownstreamTlsContext) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DownstreamTlsContext.Unmarshal(m, b) +} +func (m *DownstreamTlsContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DownstreamTlsContext.Marshal(b, m, deterministic) +} +func (m *DownstreamTlsContext) XXX_Merge(src proto.Message) { + xxx_messageInfo_DownstreamTlsContext.Merge(m, src) +} +func (m *DownstreamTlsContext) XXX_Size() int { + return xxx_messageInfo_DownstreamTlsContext.Size(m) +} +func (m *DownstreamTlsContext) XXX_DiscardUnknown() { + xxx_messageInfo_DownstreamTlsContext.DiscardUnknown(m) +} + +var xxx_messageInfo_DownstreamTlsContext proto.InternalMessageInfo + +func (m *DownstreamTlsContext) GetCommonTlsContext() *CommonTlsContext { + if m != nil { + return m.CommonTlsContext + } + return nil +} + +func (m *DownstreamTlsContext) GetRequireClientCertificate() *wrappers.BoolValue { + if m != nil { + return m.RequireClientCertificate + } + return nil +} + +func (m *DownstreamTlsContext) GetRequireSni() *wrappers.BoolValue { + if m != nil { + return m.RequireSni + } + return nil +} + +type isDownstreamTlsContext_SessionTicketKeysType interface { + isDownstreamTlsContext_SessionTicketKeysType() +} + +type DownstreamTlsContext_SessionTicketKeys struct { + SessionTicketKeys *TlsSessionTicketKeys `protobuf:"bytes,4,opt,name=session_ticket_keys,json=sessionTicketKeys,proto3,oneof"` +} + +type DownstreamTlsContext_SessionTicketKeysSdsSecretConfig struct { + SessionTicketKeysSdsSecretConfig *SdsSecretConfig `protobuf:"bytes,5,opt,name=session_ticket_keys_sds_secret_config,json=sessionTicketKeysSdsSecretConfig,proto3,oneof"` +} + +func (*DownstreamTlsContext_SessionTicketKeys) isDownstreamTlsContext_SessionTicketKeysType() {} + +func (*DownstreamTlsContext_SessionTicketKeysSdsSecretConfig) isDownstreamTlsContext_SessionTicketKeysType() { +} + +func (m *DownstreamTlsContext) GetSessionTicketKeysType() isDownstreamTlsContext_SessionTicketKeysType { + if m != nil { + return m.SessionTicketKeysType + } + return nil +} + +func (m *DownstreamTlsContext) GetSessionTicketKeys() *TlsSessionTicketKeys { + if x, ok := m.GetSessionTicketKeysType().(*DownstreamTlsContext_SessionTicketKeys); ok { + return x.SessionTicketKeys + } + return nil +} + +func (m *DownstreamTlsContext) GetSessionTicketKeysSdsSecretConfig() *SdsSecretConfig { + if x, ok := m.GetSessionTicketKeysType().(*DownstreamTlsContext_SessionTicketKeysSdsSecretConfig); ok { + return x.SessionTicketKeysSdsSecretConfig + } + return nil +} + +func (m *DownstreamTlsContext) GetSessionTimeout() *duration.Duration { + if m != nil { + return m.SessionTimeout + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*DownstreamTlsContext) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*DownstreamTlsContext_SessionTicketKeys)(nil), + (*DownstreamTlsContext_SessionTicketKeysSdsSecretConfig)(nil), + } +} + +type GenericSecret struct { + Secret *v3.DataSource `protobuf:"bytes,1,opt,name=secret,proto3" json:"secret,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GenericSecret) Reset() { *m = GenericSecret{} } +func (m *GenericSecret) String() string { return proto.CompactTextString(m) } +func (*GenericSecret) ProtoMessage() {} +func (*GenericSecret) Descriptor() ([]byte, []int) { + return fileDescriptor_f024ddf67fb198ab, []int{8} +} + +func (m *GenericSecret) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GenericSecret.Unmarshal(m, b) +} +func (m *GenericSecret) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GenericSecret.Marshal(b, m, deterministic) +} +func (m *GenericSecret) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenericSecret.Merge(m, src) +} +func (m *GenericSecret) XXX_Size() int { + return xxx_messageInfo_GenericSecret.Size(m) +} +func (m *GenericSecret) XXX_DiscardUnknown() { + xxx_messageInfo_GenericSecret.DiscardUnknown(m) +} + +var xxx_messageInfo_GenericSecret proto.InternalMessageInfo + +func (m *GenericSecret) GetSecret() *v3.DataSource { + if m != nil { + return m.Secret + } + return nil +} + +type SdsSecretConfig struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + SdsConfig *v3.ConfigSource `protobuf:"bytes,2,opt,name=sds_config,json=sdsConfig,proto3" json:"sds_config,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SdsSecretConfig) Reset() { *m = SdsSecretConfig{} } +func (m *SdsSecretConfig) String() string { return proto.CompactTextString(m) } +func (*SdsSecretConfig) ProtoMessage() {} +func (*SdsSecretConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_f024ddf67fb198ab, []int{9} +} + +func (m *SdsSecretConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SdsSecretConfig.Unmarshal(m, b) +} +func (m *SdsSecretConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SdsSecretConfig.Marshal(b, m, deterministic) +} +func (m *SdsSecretConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_SdsSecretConfig.Merge(m, src) +} +func (m *SdsSecretConfig) XXX_Size() int { + return xxx_messageInfo_SdsSecretConfig.Size(m) +} +func (m *SdsSecretConfig) XXX_DiscardUnknown() { + xxx_messageInfo_SdsSecretConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_SdsSecretConfig proto.InternalMessageInfo + +func (m *SdsSecretConfig) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *SdsSecretConfig) GetSdsConfig() *v3.ConfigSource { + if m != nil { + return m.SdsConfig + } + return nil +} + +type Secret struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Types that are valid to be assigned to Type: + // *Secret_TlsCertificate + // *Secret_SessionTicketKeys + // *Secret_ValidationContext + // *Secret_GenericSecret + Type isSecret_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Secret) Reset() { *m = Secret{} } +func (m *Secret) String() string { return proto.CompactTextString(m) } +func (*Secret) ProtoMessage() {} +func (*Secret) Descriptor() ([]byte, []int) { + return fileDescriptor_f024ddf67fb198ab, []int{10} +} + +func (m *Secret) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Secret.Unmarshal(m, b) +} +func (m *Secret) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Secret.Marshal(b, m, deterministic) +} +func (m *Secret) XXX_Merge(src proto.Message) { + xxx_messageInfo_Secret.Merge(m, src) +} +func (m *Secret) XXX_Size() int { + return xxx_messageInfo_Secret.Size(m) +} +func (m *Secret) XXX_DiscardUnknown() { + xxx_messageInfo_Secret.DiscardUnknown(m) +} + +var xxx_messageInfo_Secret proto.InternalMessageInfo + +func (m *Secret) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type isSecret_Type interface { + isSecret_Type() +} + +type Secret_TlsCertificate struct { + TlsCertificate *TlsCertificate `protobuf:"bytes,2,opt,name=tls_certificate,json=tlsCertificate,proto3,oneof"` +} + +type Secret_SessionTicketKeys struct { + SessionTicketKeys *TlsSessionTicketKeys `protobuf:"bytes,3,opt,name=session_ticket_keys,json=sessionTicketKeys,proto3,oneof"` +} + +type Secret_ValidationContext struct { + ValidationContext *CertificateValidationContext `protobuf:"bytes,4,opt,name=validation_context,json=validationContext,proto3,oneof"` +} + +type Secret_GenericSecret struct { + GenericSecret *GenericSecret `protobuf:"bytes,5,opt,name=generic_secret,json=genericSecret,proto3,oneof"` +} + +func (*Secret_TlsCertificate) isSecret_Type() {} + +func (*Secret_SessionTicketKeys) isSecret_Type() {} + +func (*Secret_ValidationContext) isSecret_Type() {} + +func (*Secret_GenericSecret) isSecret_Type() {} + +func (m *Secret) GetType() isSecret_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *Secret) GetTlsCertificate() *TlsCertificate { + if x, ok := m.GetType().(*Secret_TlsCertificate); ok { + return x.TlsCertificate + } + return nil +} + +func (m *Secret) GetSessionTicketKeys() *TlsSessionTicketKeys { + if x, ok := m.GetType().(*Secret_SessionTicketKeys); ok { + return x.SessionTicketKeys + } + return nil +} + +func (m *Secret) GetValidationContext() *CertificateValidationContext { + if x, ok := m.GetType().(*Secret_ValidationContext); ok { + return x.ValidationContext + } + return nil +} + +func (m *Secret) GetGenericSecret() *GenericSecret { + if x, ok := m.GetType().(*Secret_GenericSecret); ok { + return x.GenericSecret + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Secret) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*Secret_TlsCertificate)(nil), + (*Secret_SessionTicketKeys)(nil), + (*Secret_ValidationContext)(nil), + (*Secret_GenericSecret)(nil), + } +} + +func init() { + proto.RegisterEnum("envoy.extensions.transport_sockets.tls.v3.TlsParameters_TlsProtocol", TlsParameters_TlsProtocol_name, TlsParameters_TlsProtocol_value) + proto.RegisterEnum("envoy.extensions.transport_sockets.tls.v3.CertificateValidationContext_TrustChainVerification", CertificateValidationContext_TrustChainVerification_name, CertificateValidationContext_TrustChainVerification_value) + proto.RegisterType((*TlsParameters)(nil), "envoy.extensions.transport_sockets.tls.v3.TlsParameters") + proto.RegisterType((*PrivateKeyProvider)(nil), "envoy.extensions.transport_sockets.tls.v3.PrivateKeyProvider") + proto.RegisterType((*TlsCertificate)(nil), "envoy.extensions.transport_sockets.tls.v3.TlsCertificate") + proto.RegisterType((*TlsSessionTicketKeys)(nil), "envoy.extensions.transport_sockets.tls.v3.TlsSessionTicketKeys") + proto.RegisterType((*CertificateValidationContext)(nil), "envoy.extensions.transport_sockets.tls.v3.CertificateValidationContext") + proto.RegisterType((*CommonTlsContext)(nil), "envoy.extensions.transport_sockets.tls.v3.CommonTlsContext") + proto.RegisterType((*CommonTlsContext_CombinedCertificateValidationContext)(nil), "envoy.extensions.transport_sockets.tls.v3.CommonTlsContext.CombinedCertificateValidationContext") + proto.RegisterType((*UpstreamTlsContext)(nil), "envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext") + proto.RegisterType((*DownstreamTlsContext)(nil), "envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext") + proto.RegisterType((*GenericSecret)(nil), "envoy.extensions.transport_sockets.tls.v3.GenericSecret") + proto.RegisterType((*SdsSecretConfig)(nil), "envoy.extensions.transport_sockets.tls.v3.SdsSecretConfig") + proto.RegisterType((*Secret)(nil), "envoy.extensions.transport_sockets.tls.v3.Secret") +} + +func init() { + proto.RegisterFile("envoy/extensions/transport_sockets/tls/v3/cert.proto", fileDescriptor_f024ddf67fb198ab) +} + +var fileDescriptor_f024ddf67fb198ab = []byte{ + // 1935 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6f, 0x23, 0x49, + 0x15, 0x4f, 0xdb, 0x8e, 0xc7, 0x79, 0x9e, 0x64, 0x3c, 0x35, 0x61, 0xd2, 0xf1, 0x86, 0x19, 0x8f, + 0x37, 0x3b, 0x64, 0xc4, 0x60, 0xef, 0x26, 0x20, 0xc0, 0x2b, 0xb4, 0x1b, 0x3b, 0x99, 0x49, 0x76, + 0x77, 0x32, 0x51, 0xdb, 0x09, 0x20, 0x24, 0x9a, 0x4a, 0xbb, 0x12, 0x37, 0x69, 0x77, 0xf7, 0x56, + 0x95, 0x3d, 0xf1, 0x2d, 0x70, 0x42, 0x2c, 0x08, 0x34, 0xe2, 0xc4, 0x05, 0x09, 0x21, 0x21, 0xc1, + 0x89, 0x13, 0x08, 0x71, 0xe1, 0x80, 0xc4, 0x95, 0x7f, 0x85, 0xe3, 0x70, 0x00, 0x55, 0x55, 0x77, + 0xdc, 0x76, 0x77, 0x12, 0x67, 0x3e, 0xd8, 0x9b, 0xab, 0xea, 0xbd, 0xdf, 0x7b, 0xfd, 0xbe, 0xea, + 0x57, 0x86, 0xaf, 0x12, 0xb7, 0xef, 0x0d, 0xaa, 0xe4, 0x84, 0x13, 0x97, 0xd9, 0x9e, 0xcb, 0xaa, + 0x9c, 0x62, 0x97, 0xf9, 0x1e, 0xe5, 0x26, 0xf3, 0xac, 0x63, 0xc2, 0x59, 0x95, 0x3b, 0xac, 0xda, + 0x5f, 0xab, 0x5a, 0x84, 0xf2, 0x8a, 0x4f, 0x3d, 0xee, 0xa1, 0x07, 0x52, 0xab, 0x32, 0xd4, 0xaa, + 0xc4, 0xb4, 0x2a, 0xdc, 0x61, 0x95, 0xfe, 0x5a, 0xf1, 0xae, 0x32, 0x60, 0x79, 0xee, 0xa1, 0x7d, + 0x54, 0xb5, 0x3c, 0x4a, 0x04, 0xd6, 0x01, 0x66, 0x44, 0x61, 0x15, 0x57, 0x12, 0x05, 0xd4, 0xd2, + 0x64, 0x5e, 0x8f, 0x5a, 0xa1, 0x64, 0x59, 0x49, 0xf2, 0x81, 0x4f, 0xaa, 0x5d, 0xcc, 0xad, 0x0e, + 0xa1, 0x42, 0x94, 0x71, 0x6a, 0xbb, 0x47, 0x81, 0xcc, 0xe2, 0x91, 0xe7, 0x1d, 0x39, 0xa4, 0x2a, + 0x57, 0x07, 0xbd, 0xc3, 0x2a, 0x76, 0x07, 0xc1, 0xd1, 0x9d, 0xf1, 0xa3, 0x76, 0x8f, 0x62, 0x6e, + 0x7b, 0x6e, 0x70, 0xbe, 0x34, 0x7e, 0xce, 0x38, 0xed, 0x59, 0xfc, 0x3c, 0xed, 0x67, 0x14, 0xfb, + 0x3e, 0xa1, 0x2c, 0x38, 0x2f, 0xf5, 0xda, 0x3e, 0xae, 0x62, 0xd7, 0xf5, 0xb8, 0x04, 0x65, 0x55, + 0x26, 0x62, 0xc3, 0xed, 0x7e, 0xe8, 0xfe, 0x17, 0xe3, 0x12, 0x1c, 0xf3, 0x5e, 0x08, 0x70, 0x2f, + 0x76, 0xdc, 0x27, 0x54, 0x04, 0x77, 0xf8, 0x71, 0x0b, 0x7d, 0xec, 0xd8, 0x6d, 0xcc, 0x49, 0x35, + 0xfc, 0xa1, 0x0e, 0xca, 0xff, 0x4e, 0xc3, 0x6c, 0xcb, 0x61, 0xbb, 0x98, 0xe2, 0x2e, 0xe1, 0x84, + 0x32, 0xf4, 0x0b, 0x0d, 0x96, 0xb8, 0xc3, 0xcc, 0xae, 0xed, 0xda, 0xdd, 0x5e, 0xd7, 0x94, 0x72, + 0x96, 0xe7, 0x98, 0x01, 0xa8, 0xae, 0x95, 0xb4, 0x95, 0xb9, 0xd5, 0x8d, 0xca, 0xc4, 0x99, 0xac, + 0x8c, 0x18, 0x90, 0xab, 0x00, 0xb3, 0x9e, 0x7b, 0x51, 0x9f, 0xfe, 0xb1, 0x96, 0x2a, 0x68, 0xc6, + 0x22, 0x77, 0xd8, 0x13, 0x65, 0x32, 0x3c, 0xdd, 0x57, 0x06, 0x87, 0x1e, 0xe1, 0x93, 0x64, 0x8f, + 0x52, 0x6f, 0xce, 0x23, 0x65, 0x72, 0xdc, 0xa3, 0xb7, 0x61, 0xd6, 0xb2, 0xfd, 0x0e, 0xa1, 0x26, + 0xeb, 0xd9, 0x9c, 0x30, 0x3d, 0x5d, 0x4a, 0xaf, 0xcc, 0x18, 0xd7, 0xd5, 0x66, 0x53, 0xee, 0xa1, + 0xbb, 0x90, 0x27, 0x56, 0xbb, 0x63, 0x5a, 0x3d, 0xda, 0x27, 0x4c, 0xcf, 0x48, 0x11, 0x10, 0x5b, + 0x0d, 0xb9, 0x53, 0x7e, 0x0a, 0xf9, 0x88, 0x65, 0x74, 0x1d, 0x72, 0xad, 0x4f, 0x9a, 0xe6, 0xfa, + 0x5e, 0xeb, 0x69, 0x61, 0x0a, 0xe5, 0xe1, 0x5a, 0xeb, 0x93, 0x66, 0xff, 0x3d, 0xf3, 0xdd, 0x82, + 0x36, 0x5c, 0xbc, 0x57, 0x48, 0x0d, 0x17, 0xab, 0x85, 0xf4, 0x70, 0xb1, 0x56, 0xc8, 0xd4, 0xee, + 0xff, 0xfa, 0x1f, 0x3f, 0xb9, 0x73, 0x0f, 0x54, 0xe3, 0x54, 0xb0, 0x6f, 0x57, 0xfa, 0xab, 0x15, + 0xdc, 0xe3, 0x9d, 0xd1, 0xef, 0x2d, 0xff, 0x31, 0x05, 0x68, 0x97, 0xda, 0x7d, 0xcc, 0xc9, 0xc7, + 0x64, 0xb0, 0x4b, 0xbd, 0xbe, 0xdd, 0x26, 0x14, 0x3d, 0x84, 0x59, 0x3f, 0xf8, 0x6d, 0xba, 0xb8, + 0x4b, 0x64, 0xa6, 0x67, 0xea, 0xd7, 0x5e, 0xd4, 0x33, 0x34, 0x55, 0xd2, 0x8c, 0xeb, 0xe1, 0xe9, + 0x0e, 0xee, 0x12, 0xd4, 0x81, 0x3b, 0x1d, 0xbb, 0xdd, 0x26, 0xae, 0x29, 0xcd, 0x99, 0x6d, 0xe2, + 0x53, 0x62, 0x61, 0x4e, 0xda, 0xa6, 0x6a, 0x41, 0x99, 0x96, 0xfc, 0xea, 0x42, 0x45, 0xd5, 0x7f, + 0x25, 0xac, 0xff, 0x4a, 0x53, 0x76, 0x47, 0x3d, 0xf7, 0x97, 0x3f, 0x7f, 0xf6, 0xbb, 0x94, 0xa6, + 0x6b, 0x5b, 0x53, 0xc6, 0x5b, 0x0a, 0x6a, 0x53, 0x20, 0x6d, 0x9c, 0x01, 0x35, 0x24, 0x0e, 0x5a, + 0x87, 0xeb, 0xa2, 0x73, 0xcf, 0x70, 0xd3, 0x12, 0x77, 0x3e, 0x86, 0xbb, 0xee, 0x0e, 0xea, 0x59, + 0x05, 0xba, 0x35, 0x65, 0xe4, 0xa5, 0x8e, 0x82, 0xa8, 0x7d, 0x59, 0x44, 0xe6, 0x3e, 0x2c, 0xc7, + 0x23, 0x13, 0x8f, 0x43, 0x7d, 0x16, 0xf2, 0xc1, 0x10, 0x11, 0x10, 0xe5, 0x3f, 0x65, 0x60, 0xae, + 0xe5, 0xb0, 0x06, 0xa1, 0xdc, 0x3e, 0xb4, 0x85, 0x63, 0xe8, 0x09, 0xdc, 0xb4, 0x86, 0x4b, 0xd3, + 0xea, 0x60, 0x5b, 0xf5, 0x45, 0x7e, 0xb5, 0x14, 0x54, 0xa1, 0x42, 0xa8, 0x88, 0xa9, 0x24, 0x0a, + 0x6e, 0x03, 0x73, 0xdc, 0x94, 0x23, 0xc9, 0x28, 0x44, 0x54, 0x1b, 0x42, 0x13, 0x6d, 0x43, 0xde, + 0x57, 0x6e, 0x98, 0xc7, 0x64, 0x10, 0xc4, 0xed, 0x52, 0xa0, 0xf0, 0x5b, 0x0d, 0xf0, 0xcf, 0xbe, + 0x01, 0x79, 0x30, 0x1f, 0x81, 0x32, 0xc3, 0x8c, 0xe9, 0x59, 0x89, 0xf9, 0xad, 0x2b, 0xb4, 0x48, + 0x3c, 0x30, 0x06, 0xf2, 0xe3, 0x45, 0xb3, 0x01, 0x39, 0x1f, 0x33, 0xf6, 0xcc, 0xa3, 0xed, 0x20, + 0x31, 0x93, 0x3b, 0x7e, 0xa6, 0x89, 0xd6, 0x21, 0xef, 0x59, 0xcc, 0x37, 0x19, 0xc7, 0xbe, 0x43, + 0xf4, 0xcc, 0x84, 0xa1, 0x04, 0xa1, 0xd4, 0x94, 0x3a, 0xe8, 0x00, 0x96, 0x98, 0x7d, 0xe4, 0x8a, + 0x32, 0x89, 0xa4, 0x86, 0xdb, 0x5d, 0xc2, 0x38, 0xee, 0xfa, 0xfa, 0x74, 0x29, 0x3d, 0x11, 0x66, + 0x51, 0xa1, 0x44, 0xd2, 0xdd, 0x0a, 0x31, 0x6a, 0x5f, 0x12, 0x65, 0x54, 0x86, 0x52, 0x62, 0x83, + 0x45, 0x34, 0xca, 0x9f, 0x69, 0x30, 0xdf, 0x72, 0x58, 0x93, 0x30, 0x11, 0xe5, 0x96, 0x2d, 0x22, + 0xfb, 0x31, 0x19, 0x30, 0xb4, 0x01, 0x99, 0x63, 0x32, 0x60, 0xba, 0x36, 0x99, 0x37, 0xf5, 0xb9, + 0x17, 0xf5, 0xe9, 0xe7, 0x5a, 0x2a, 0xa7, 0x05, 0x21, 0x93, 0xda, 0xb5, 0xaf, 0x08, 0x3f, 0x56, + 0xe0, 0x7e, 0xa2, 0x1f, 0x31, 0xa3, 0xe5, 0x1f, 0xe5, 0x60, 0x29, 0xe2, 0xdd, 0xbe, 0xba, 0x02, + 0x6c, 0xcf, 0x6d, 0x78, 0x2e, 0x27, 0x27, 0x1c, 0x7d, 0x00, 0xc0, 0x69, 0x8f, 0xc9, 0xde, 0xc5, + 0x13, 0x17, 0xf2, 0x4c, 0xa0, 0xd3, 0xc0, 0xe8, 0x11, 0x2c, 0xf4, 0x09, 0xb5, 0x0f, 0x07, 0x23, + 0xc1, 0x67, 0xfe, 0xb1, 0xad, 0x46, 0xa3, 0xf8, 0x8e, 0xfc, 0x73, 0x2d, 0x57, 0xce, 0xd2, 0x4c, + 0xe9, 0xe1, 0xca, 0x43, 0xe3, 0x0b, 0x4a, 0x3c, 0xe2, 0x55, 0xd3, 0x3f, 0xb6, 0xcf, 0xc1, 0xe9, + 0x60, 0xd6, 0xd1, 0x53, 0x31, 0x9c, 0x0f, 0x57, 0xcc, 0x04, 0x9c, 0x2d, 0xcc, 0x3a, 0xe8, 0x10, + 0xaa, 0xe7, 0x0d, 0xa7, 0x00, 0x9f, 0xf5, 0x0e, 0x7e, 0x48, 0x2c, 0x6e, 0x62, 0x87, 0xab, 0x61, + 0x27, 0xe7, 0x73, 0x3d, 0xa5, 0x6b, 0xc6, 0x83, 0xc4, 0x61, 0xb4, 0x2f, 0xf5, 0x9a, 0x4a, 0x6d, + 0xdd, 0xe1, 0x72, 0x08, 0x7e, 0x0f, 0x16, 0x24, 0x9f, 0x88, 0xc1, 0x31, 0x7d, 0x46, 0x66, 0x78, + 0x39, 0x88, 0xa2, 0x98, 0x24, 0x95, 0x80, 0x7a, 0x88, 0x30, 0x36, 0x25, 0xf5, 0x78, 0xa2, 0x36, + 0x8c, 0x79, 0x79, 0x32, 0x8a, 0xcd, 0xd0, 0x47, 0x70, 0x8b, 0x92, 0x4f, 0x7b, 0x36, 0x25, 0x66, + 0xb4, 0x39, 0xa6, 0x65, 0x7a, 0x8a, 0xb1, 0xf1, 0x57, 0xf7, 0x3c, 0x67, 0x1f, 0x3b, 0x3d, 0x62, + 0xdc, 0x0c, 0xd4, 0x9e, 0x0e, 0xbb, 0xe3, 0x18, 0x96, 0x43, 0xac, 0x0b, 0xbb, 0x24, 0x7b, 0x29, + 0xf8, 0xbd, 0x00, 0xa7, 0x79, 0x6e, 0x9b, 0xa0, 0x55, 0x48, 0x5b, 0xd4, 0xd1, 0xaf, 0x4d, 0x58, + 0x47, 0x42, 0x18, 0xd5, 0x60, 0x11, 0x3b, 0x8e, 0xf7, 0xcc, 0x24, 0x27, 0xbe, 0x4d, 0x47, 0xfd, + 0xd3, 0x73, 0x25, 0x6d, 0x25, 0x67, 0x2c, 0x48, 0x81, 0x4d, 0x75, 0x1e, 0x1d, 0xc7, 0xbf, 0xd5, + 0x40, 0x97, 0xb5, 0xa8, 0x26, 0xb1, 0x4a, 0xb1, 0x38, 0x12, 0xe4, 0x00, 0x24, 0x39, 0xf8, 0xfe, + 0x15, 0x26, 0xdf, 0x45, 0xad, 0x52, 0x69, 0x09, 0x3b, 0x72, 0x6c, 0xef, 0x47, 0xac, 0x44, 0x68, + 0xc3, 0x6d, 0x9e, 0x28, 0x51, 0x7e, 0x04, 0xb7, 0x93, 0x75, 0xd1, 0x6d, 0x40, 0xfb, 0x9b, 0xc6, + 0xf6, 0xa3, 0xef, 0x9a, 0x2d, 0x63, 0xaf, 0xd9, 0x32, 0x1b, 0x5b, 0xeb, 0xdb, 0x3b, 0x85, 0x29, + 0x34, 0x0f, 0x85, 0xf5, 0x46, 0x63, 0x73, 0xb7, 0x65, 0xee, 0xed, 0xc8, 0x93, 0xcd, 0x8d, 0x82, + 0x56, 0xfb, 0x9a, 0xe8, 0xfd, 0x77, 0xa1, 0x12, 0xef, 0xfd, 0x8b, 0xfc, 0x2e, 0xff, 0x1e, 0xa0, + 0xd0, 0xf0, 0xba, 0x5d, 0xcf, 0x15, 0xa3, 0x2a, 0xe8, 0xfb, 0x6f, 0x03, 0x08, 0x62, 0xe5, 0x0b, + 0x6a, 0xc0, 0x82, 0xbe, 0xff, 0xc6, 0xcb, 0xd2, 0x28, 0x63, 0x86, 0x07, 0x4b, 0x86, 0xda, 0x50, + 0x10, 0xc0, 0x91, 0x1c, 0x32, 0xd9, 0xc0, 0xf9, 0xd5, 0x6f, 0x5e, 0x0d, 0x3e, 0xf2, 0x4d, 0xc6, + 0x0d, 0x3e, 0xb2, 0x66, 0xe8, 0x97, 0x1a, 0x94, 0xc7, 0xcc, 0x98, 0xac, 0xcd, 0x4c, 0x46, 0x2c, + 0x4a, 0x78, 0x40, 0x17, 0x98, 0x9e, 0x95, 0x86, 0x6b, 0x57, 0x30, 0xdc, 0x6c, 0xb3, 0xa6, 0xc4, + 0x50, 0xf4, 0x41, 0x66, 0xf7, 0xb9, 0xcc, 0xee, 0x9d, 0x51, 0x1f, 0xc6, 0x04, 0x19, 0x3a, 0x01, + 0xd4, 0x3f, 0x8b, 0xbd, 0xf0, 0x40, 0xc4, 0x39, 0xb8, 0x18, 0x1f, 0xbf, 0xa6, 0x1a, 0xdc, 0x9a, + 0x32, 0x6e, 0xf6, 0x63, 0x33, 0xfc, 0x67, 0x1a, 0x2c, 0xc7, 0x4d, 0xc7, 0xe3, 0x11, 0xb4, 0xe5, + 0x2b, 0x84, 0x63, 0x6b, 0xca, 0x28, 0xc5, 0xec, 0x8f, 0xc9, 0x88, 0x9e, 0x7c, 0xcb, 0xf2, 0xba, + 0x07, 0xb6, 0x98, 0x35, 0x09, 0x21, 0xc9, 0x49, 0x2f, 0x7e, 0x70, 0x95, 0x90, 0x8c, 0x55, 0xaf, + 0xd8, 0x90, 0xf0, 0x97, 0xc4, 0x6a, 0x31, 0x74, 0x23, 0x7e, 0xef, 0xbd, 0x03, 0x73, 0xd8, 0xf1, + 0xdd, 0xb3, 0x17, 0x45, 0xc8, 0xd2, 0x67, 0xc5, 0x6e, 0x48, 0xcc, 0x59, 0xf1, 0x37, 0x69, 0x58, + 0x9e, 0xc4, 0x98, 0x78, 0xa9, 0x14, 0xdb, 0xe4, 0x10, 0xf7, 0x1c, 0x9e, 0xf4, 0xcd, 0xda, 0x6b, + 0x2d, 0x03, 0x59, 0x95, 0x3f, 0x95, 0x55, 0xa9, 0x07, 0x46, 0xe3, 0x1e, 0xfd, 0x6a, 0xd2, 0xaa, + 0x48, 0xbd, 0x6a, 0x55, 0x44, 0xdc, 0xb9, 0xb4, 0x3a, 0x6a, 0x3b, 0x62, 0x88, 0x6d, 0xc3, 0xe3, + 0x84, 0x21, 0xf6, 0x32, 0x59, 0xae, 0x3d, 0x10, 0x78, 0xcb, 0x50, 0xbe, 0x1c, 0xaf, 0xbe, 0x08, + 0x0b, 0x09, 0x01, 0x11, 0xf7, 0xf3, 0x47, 0x99, 0xdc, 0x74, 0x21, 0x5b, 0xfe, 0x7b, 0x0a, 0xd0, + 0x9e, 0xcf, 0x38, 0x25, 0xb8, 0x1b, 0x99, 0x95, 0x36, 0x20, 0x4b, 0x62, 0x99, 0x72, 0xe4, 0x8c, + 0xa4, 0xf4, 0xfd, 0x57, 0x28, 0x63, 0xa3, 0x60, 0x8d, 0x8f, 0xe5, 0x22, 0xa4, 0x99, 0x6b, 0xcb, + 0x94, 0xcc, 0xc8, 0xb0, 0xd2, 0xf4, 0xca, 0x7f, 0x35, 0x43, 0x6c, 0xa2, 0x2a, 0xdc, 0x52, 0xf7, + 0x24, 0x25, 0x2e, 0x39, 0xf2, 0xb8, 0xad, 0x6e, 0xb9, 0xb4, 0xbc, 0x21, 0x91, 0x3c, 0x32, 0xa2, + 0x27, 0xe8, 0x11, 0x14, 0xba, 0xf8, 0xc4, 0x64, 0x8a, 0x15, 0x9a, 0x92, 0x7d, 0x2a, 0x7e, 0xbd, + 0x14, 0xbb, 0xe5, 0xf7, 0xb6, 0x5d, 0xbe, 0xb6, 0xaa, 0xee, 0xf9, 0xb9, 0x2e, 0x3e, 0x09, 0xa8, + 0xa4, 0x20, 0x91, 0x17, 0x3c, 0xa1, 0xe2, 0xc1, 0x2a, 0xff, 0x6d, 0x1a, 0xe6, 0x37, 0xbc, 0x67, + 0xee, 0xe7, 0x19, 0xc5, 0xef, 0x40, 0x31, 0xa4, 0x3c, 0x96, 0x63, 0x13, 0x97, 0x8f, 0x50, 0x8a, + 0xd4, 0xa5, 0x44, 0x47, 0x0f, 0xb4, 0x1b, 0x52, 0x39, 0xca, 0x37, 0xde, 0x87, 0xfc, 0x19, 0x99, + 0x72, 0xed, 0x60, 0xba, 0x5f, 0x04, 0x05, 0x21, 0x67, 0x72, 0x6d, 0xf4, 0x29, 0xdc, 0x0a, 0x73, + 0xc1, 0x25, 0x45, 0x8f, 0xa6, 0xe4, 0x83, 0xab, 0xdd, 0x8e, 0x31, 0xaa, 0x2f, 0xae, 0x06, 0x16, + 0x7b, 0x74, 0xfc, 0x5c, 0x83, 0x77, 0x12, 0x6c, 0x26, 0x4c, 0x81, 0xe9, 0xd7, 0x71, 0x37, 0xc4, + 0x1c, 0x18, 0xbf, 0x1b, 0x5a, 0x70, 0x63, 0xe8, 0x4e, 0x97, 0x78, 0x3d, 0x1e, 0xf0, 0xce, 0xc5, + 0x58, 0x0c, 0x37, 0x82, 0x7f, 0xda, 0xea, 0x85, 0x17, 0xf5, 0xd9, 0x3f, 0x68, 0x50, 0xcc, 0xe6, + 0x4e, 0x4f, 0x4f, 0x4f, 0x0b, 0xab, 0x53, 0xc6, 0xdc, 0x99, 0x1d, 0x09, 0x71, 0xc1, 0xa3, 0x28, + 0xa9, 0x12, 0xeb, 0x45, 0xd0, 0x93, 0x62, 0x22, 0x9f, 0xfc, 0x03, 0x98, 0x7d, 0x4c, 0x5c, 0x42, + 0x6d, 0x4b, 0xf9, 0x8d, 0x3e, 0x84, 0xac, 0x0a, 0xd4, 0xa4, 0x8f, 0xa3, 0xb3, 0x37, 0x6e, 0xa0, + 0x77, 0xc1, 0x7f, 0x33, 0x23, 0x96, 0xca, 0xcf, 0x35, 0xb8, 0x31, 0x1e, 0x2f, 0x04, 0x99, 0xe1, + 0xff, 0x31, 0x86, 0xfc, 0x8d, 0xd6, 0x01, 0x44, 0xfa, 0x46, 0xa6, 0x77, 0x39, 0xd9, 0x2b, 0x85, + 0x12, 0x3e, 0xda, 0x58, 0x9b, 0x05, 0x43, 0x78, 0x45, 0xb8, 0xf4, 0x36, 0xdc, 0x8b, 0xbb, 0x34, + 0xe6, 0x40, 0xf9, 0x3f, 0x69, 0xc8, 0x06, 0x91, 0x48, 0xf2, 0xa5, 0x0d, 0x37, 0xc6, 0x68, 0x58, + 0xe0, 0xd0, 0xcb, 0x93, 0xbd, 0xad, 0x29, 0x63, 0x6e, 0x94, 0x6a, 0x9d, 0xd7, 0x38, 0xe9, 0x37, + 0xd8, 0x38, 0xc9, 0x6c, 0x2e, 0xf3, 0x7f, 0x60, 0x73, 0x18, 0xe6, 0x8e, 0x54, 0x5d, 0x04, 0x1d, + 0x1a, 0xb4, 0xe6, 0x55, 0xd8, 0xf9, 0x48, 0x61, 0x6d, 0x4d, 0x19, 0xb3, 0x47, 0xd1, 0x8d, 0xda, + 0x5d, 0x91, 0xfe, 0x22, 0xe8, 0x09, 0xe9, 0x97, 0x02, 0xf5, 0x2c, 0x64, 0x44, 0x37, 0xd4, 0x77, + 0xfe, 0x7a, 0xfa, 0xcf, 0x7f, 0x65, 0x53, 0x85, 0x14, 0x7c, 0xdd, 0xf6, 0x94, 0x7d, 0x9f, 0x7a, + 0x27, 0x83, 0xc9, 0x5d, 0xa9, 0xcf, 0x88, 0x08, 0x48, 0x42, 0xb5, 0xab, 0x1d, 0x64, 0x65, 0x77, + 0xaf, 0xfd, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x49, 0x4e, 0x92, 0xe5, 0x42, 0x18, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3/cert.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3/cert.pb.validate.go new file mode 100644 index 000000000..179693130 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3/cert.pb.validate.go @@ -0,0 +1,1368 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/extensions/transport_sockets/tls/v3/cert.proto + +package envoy_extensions_transport_sockets_tls_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _cert_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on TlsParameters with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *TlsParameters) Validate() error { + if m == nil { + return nil + } + + if _, ok := TlsParameters_TlsProtocol_name[int32(m.GetTlsMinimumProtocolVersion())]; !ok { + return TlsParametersValidationError{ + field: "TlsMinimumProtocolVersion", + reason: "value must be one of the defined enum values", + } + } + + if _, ok := TlsParameters_TlsProtocol_name[int32(m.GetTlsMaximumProtocolVersion())]; !ok { + return TlsParametersValidationError{ + field: "TlsMaximumProtocolVersion", + reason: "value must be one of the defined enum values", + } + } + + return nil +} + +// TlsParametersValidationError is the validation error returned by +// TlsParameters.Validate if the designated constraints aren't met. +type TlsParametersValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TlsParametersValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TlsParametersValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TlsParametersValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TlsParametersValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TlsParametersValidationError) ErrorName() string { return "TlsParametersValidationError" } + +// Error satisfies the builtin error interface +func (e TlsParametersValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTlsParameters.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TlsParametersValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TlsParametersValidationError{} + +// Validate checks the field values on PrivateKeyProvider with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *PrivateKeyProvider) Validate() error { + if m == nil { + return nil + } + + if len(m.GetProviderName()) < 1 { + return PrivateKeyProviderValidationError{ + field: "ProviderName", + reason: "value length must be at least 1 bytes", + } + } + + switch m.ConfigType.(type) { + + case *PrivateKeyProvider_HiddenEnvoyDeprecatedConfig: + + if v, ok := interface{}(m.GetHiddenEnvoyDeprecatedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PrivateKeyProviderValidationError{ + field: "HiddenEnvoyDeprecatedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *PrivateKeyProvider_TypedConfig: + + if v, ok := interface{}(m.GetTypedConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PrivateKeyProviderValidationError{ + field: "TypedConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// PrivateKeyProviderValidationError is the validation error returned by +// PrivateKeyProvider.Validate if the designated constraints aren't met. +type PrivateKeyProviderValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e PrivateKeyProviderValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e PrivateKeyProviderValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e PrivateKeyProviderValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e PrivateKeyProviderValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e PrivateKeyProviderValidationError) ErrorName() string { + return "PrivateKeyProviderValidationError" +} + +// Error satisfies the builtin error interface +func (e PrivateKeyProviderValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sPrivateKeyProvider.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = PrivateKeyProviderValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = PrivateKeyProviderValidationError{} + +// Validate checks the field values on TlsCertificate with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *TlsCertificate) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetCertificateChain()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TlsCertificateValidationError{ + field: "CertificateChain", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetPrivateKey()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TlsCertificateValidationError{ + field: "PrivateKey", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetPrivateKeyProvider()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TlsCertificateValidationError{ + field: "PrivateKeyProvider", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetPassword()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TlsCertificateValidationError{ + field: "Password", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetOcspStaple()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TlsCertificateValidationError{ + field: "OcspStaple", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetSignedCertificateTimestamp() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TlsCertificateValidationError{ + field: fmt.Sprintf("SignedCertificateTimestamp[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// TlsCertificateValidationError is the validation error returned by +// TlsCertificate.Validate if the designated constraints aren't met. +type TlsCertificateValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TlsCertificateValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TlsCertificateValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TlsCertificateValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TlsCertificateValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TlsCertificateValidationError) ErrorName() string { return "TlsCertificateValidationError" } + +// Error satisfies the builtin error interface +func (e TlsCertificateValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTlsCertificate.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TlsCertificateValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TlsCertificateValidationError{} + +// Validate checks the field values on TlsSessionTicketKeys with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *TlsSessionTicketKeys) Validate() error { + if m == nil { + return nil + } + + if len(m.GetKeys()) < 1 { + return TlsSessionTicketKeysValidationError{ + field: "Keys", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetKeys() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TlsSessionTicketKeysValidationError{ + field: fmt.Sprintf("Keys[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// TlsSessionTicketKeysValidationError is the validation error returned by +// TlsSessionTicketKeys.Validate if the designated constraints aren't met. +type TlsSessionTicketKeysValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TlsSessionTicketKeysValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TlsSessionTicketKeysValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TlsSessionTicketKeysValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TlsSessionTicketKeysValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TlsSessionTicketKeysValidationError) ErrorName() string { + return "TlsSessionTicketKeysValidationError" +} + +// Error satisfies the builtin error interface +func (e TlsSessionTicketKeysValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTlsSessionTicketKeys.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TlsSessionTicketKeysValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TlsSessionTicketKeysValidationError{} + +// Validate checks the field values on CertificateValidationContext with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *CertificateValidationContext) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetTrustedCa()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CertificateValidationContextValidationError{ + field: "TrustedCa", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetVerifyCertificateSpki() { + _, _ = idx, item + + if len(item) != 44 { + return CertificateValidationContextValidationError{ + field: fmt.Sprintf("VerifyCertificateSpki[%v]", idx), + reason: "value length must be 44 bytes", + } + } + + } + + for idx, item := range m.GetVerifyCertificateHash() { + _, _ = idx, item + + if l := len(item); l < 64 || l > 95 { + return CertificateValidationContextValidationError{ + field: fmt.Sprintf("VerifyCertificateHash[%v]", idx), + reason: "value length must be between 64 and 95 bytes, inclusive", + } + } + + } + + for idx, item := range m.GetMatchSubjectAltNames() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CertificateValidationContextValidationError{ + field: fmt.Sprintf("MatchSubjectAltNames[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if v, ok := interface{}(m.GetRequireOcspStaple()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CertificateValidationContextValidationError{ + field: "RequireOcspStaple", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetRequireSignedCertificateTimestamp()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CertificateValidationContextValidationError{ + field: "RequireSignedCertificateTimestamp", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetCrl()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CertificateValidationContextValidationError{ + field: "Crl", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for AllowExpiredCertificate + + if _, ok := CertificateValidationContext_TrustChainVerification_name[int32(m.GetTrustChainVerification())]; !ok { + return CertificateValidationContextValidationError{ + field: "TrustChainVerification", + reason: "value must be one of the defined enum values", + } + } + + return nil +} + +// CertificateValidationContextValidationError is the validation error returned +// by CertificateValidationContext.Validate if the designated constraints +// aren't met. +type CertificateValidationContextValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CertificateValidationContextValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CertificateValidationContextValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CertificateValidationContextValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CertificateValidationContextValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CertificateValidationContextValidationError) ErrorName() string { + return "CertificateValidationContextValidationError" +} + +// Error satisfies the builtin error interface +func (e CertificateValidationContextValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCertificateValidationContext.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CertificateValidationContextValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CertificateValidationContextValidationError{} + +// Validate checks the field values on CommonTlsContext with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *CommonTlsContext) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetTlsParams()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CommonTlsContextValidationError{ + field: "TlsParams", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetTlsCertificates() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CommonTlsContextValidationError{ + field: fmt.Sprintf("TlsCertificates[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(m.GetTlsCertificateSdsSecretConfigs()) > 1 { + return CommonTlsContextValidationError{ + field: "TlsCertificateSdsSecretConfigs", + reason: "value must contain no more than 1 item(s)", + } + } + + for idx, item := range m.GetTlsCertificateSdsSecretConfigs() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CommonTlsContextValidationError{ + field: fmt.Sprintf("TlsCertificateSdsSecretConfigs[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + switch m.ValidationContextType.(type) { + + case *CommonTlsContext_ValidationContext: + + if v, ok := interface{}(m.GetValidationContext()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CommonTlsContextValidationError{ + field: "ValidationContext", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *CommonTlsContext_ValidationContextSdsSecretConfig: + + if v, ok := interface{}(m.GetValidationContextSdsSecretConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CommonTlsContextValidationError{ + field: "ValidationContextSdsSecretConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *CommonTlsContext_CombinedValidationContext: + + if v, ok := interface{}(m.GetCombinedValidationContext()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CommonTlsContextValidationError{ + field: "CombinedValidationContext", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// CommonTlsContextValidationError is the validation error returned by +// CommonTlsContext.Validate if the designated constraints aren't met. +type CommonTlsContextValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CommonTlsContextValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CommonTlsContextValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CommonTlsContextValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CommonTlsContextValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CommonTlsContextValidationError) ErrorName() string { return "CommonTlsContextValidationError" } + +// Error satisfies the builtin error interface +func (e CommonTlsContextValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCommonTlsContext.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CommonTlsContextValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CommonTlsContextValidationError{} + +// Validate checks the field values on UpstreamTlsContext with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *UpstreamTlsContext) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetCommonTlsContext()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpstreamTlsContextValidationError{ + field: "CommonTlsContext", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(m.GetSni()) > 255 { + return UpstreamTlsContextValidationError{ + field: "Sni", + reason: "value length must be at most 255 bytes", + } + } + + // no validation rules for AllowRenegotiation + + if v, ok := interface{}(m.GetMaxSessionKeys()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpstreamTlsContextValidationError{ + field: "MaxSessionKeys", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// UpstreamTlsContextValidationError is the validation error returned by +// UpstreamTlsContext.Validate if the designated constraints aren't met. +type UpstreamTlsContextValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpstreamTlsContextValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpstreamTlsContextValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpstreamTlsContextValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpstreamTlsContextValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpstreamTlsContextValidationError) ErrorName() string { + return "UpstreamTlsContextValidationError" +} + +// Error satisfies the builtin error interface +func (e UpstreamTlsContextValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpstreamTlsContext.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpstreamTlsContextValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpstreamTlsContextValidationError{} + +// Validate checks the field values on DownstreamTlsContext with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *DownstreamTlsContext) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetCommonTlsContext()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DownstreamTlsContextValidationError{ + field: "CommonTlsContext", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetRequireClientCertificate()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DownstreamTlsContextValidationError{ + field: "RequireClientCertificate", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetRequireSni()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DownstreamTlsContextValidationError{ + field: "RequireSni", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if d := m.GetSessionTimeout(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return DownstreamTlsContextValidationError{ + field: "SessionTimeout", + reason: "value is not a valid duration", + cause: err, + } + } + + lt := time.Duration(4294967296*time.Second + 0*time.Nanosecond) + gte := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur < gte || dur >= lt { + return DownstreamTlsContextValidationError{ + field: "SessionTimeout", + reason: "value must be inside range [0s, 1193046h28m16s)", + } + } + + } + + switch m.SessionTicketKeysType.(type) { + + case *DownstreamTlsContext_SessionTicketKeys: + + if v, ok := interface{}(m.GetSessionTicketKeys()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DownstreamTlsContextValidationError{ + field: "SessionTicketKeys", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *DownstreamTlsContext_SessionTicketKeysSdsSecretConfig: + + if v, ok := interface{}(m.GetSessionTicketKeysSdsSecretConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DownstreamTlsContextValidationError{ + field: "SessionTicketKeysSdsSecretConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// DownstreamTlsContextValidationError is the validation error returned by +// DownstreamTlsContext.Validate if the designated constraints aren't met. +type DownstreamTlsContextValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DownstreamTlsContextValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DownstreamTlsContextValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DownstreamTlsContextValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DownstreamTlsContextValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DownstreamTlsContextValidationError) ErrorName() string { + return "DownstreamTlsContextValidationError" +} + +// Error satisfies the builtin error interface +func (e DownstreamTlsContextValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDownstreamTlsContext.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DownstreamTlsContextValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DownstreamTlsContextValidationError{} + +// Validate checks the field values on GenericSecret with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *GenericSecret) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetSecret()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GenericSecretValidationError{ + field: "Secret", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// GenericSecretValidationError is the validation error returned by +// GenericSecret.Validate if the designated constraints aren't met. +type GenericSecretValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GenericSecretValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GenericSecretValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GenericSecretValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GenericSecretValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GenericSecretValidationError) ErrorName() string { return "GenericSecretValidationError" } + +// Error satisfies the builtin error interface +func (e GenericSecretValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGenericSecret.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GenericSecretValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GenericSecretValidationError{} + +// Validate checks the field values on SdsSecretConfig with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *SdsSecretConfig) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Name + + if v, ok := interface{}(m.GetSdsConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return SdsSecretConfigValidationError{ + field: "SdsConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// SdsSecretConfigValidationError is the validation error returned by +// SdsSecretConfig.Validate if the designated constraints aren't met. +type SdsSecretConfigValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e SdsSecretConfigValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e SdsSecretConfigValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e SdsSecretConfigValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e SdsSecretConfigValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e SdsSecretConfigValidationError) ErrorName() string { return "SdsSecretConfigValidationError" } + +// Error satisfies the builtin error interface +func (e SdsSecretConfigValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSdsSecretConfig.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = SdsSecretConfigValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = SdsSecretConfigValidationError{} + +// Validate checks the field values on Secret with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Secret) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Name + + switch m.Type.(type) { + + case *Secret_TlsCertificate: + + if v, ok := interface{}(m.GetTlsCertificate()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return SecretValidationError{ + field: "TlsCertificate", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Secret_SessionTicketKeys: + + if v, ok := interface{}(m.GetSessionTicketKeys()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return SecretValidationError{ + field: "SessionTicketKeys", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Secret_ValidationContext: + + if v, ok := interface{}(m.GetValidationContext()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return SecretValidationError{ + field: "ValidationContext", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Secret_GenericSecret: + + if v, ok := interface{}(m.GetGenericSecret()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return SecretValidationError{ + field: "GenericSecret", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// SecretValidationError is the validation error returned by Secret.Validate if +// the designated constraints aren't met. +type SecretValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e SecretValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e SecretValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e SecretValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e SecretValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e SecretValidationError) ErrorName() string { return "SecretValidationError" } + +// Error satisfies the builtin error interface +func (e SecretValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSecret.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = SecretValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = SecretValidationError{} + +// Validate checks the field values on +// CommonTlsContext_CombinedCertificateValidationContext with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *CommonTlsContext_CombinedCertificateValidationContext) Validate() error { + if m == nil { + return nil + } + + if m.GetDefaultValidationContext() == nil { + return CommonTlsContext_CombinedCertificateValidationContextValidationError{ + field: "DefaultValidationContext", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetDefaultValidationContext()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CommonTlsContext_CombinedCertificateValidationContextValidationError{ + field: "DefaultValidationContext", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if m.GetValidationContextSdsSecretConfig() == nil { + return CommonTlsContext_CombinedCertificateValidationContextValidationError{ + field: "ValidationContextSdsSecretConfig", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetValidationContextSdsSecretConfig()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CommonTlsContext_CombinedCertificateValidationContextValidationError{ + field: "ValidationContextSdsSecretConfig", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// CommonTlsContext_CombinedCertificateValidationContextValidationError is the +// validation error returned by +// CommonTlsContext_CombinedCertificateValidationContext.Validate if the +// designated constraints aren't met. +type CommonTlsContext_CombinedCertificateValidationContextValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CommonTlsContext_CombinedCertificateValidationContextValidationError) Field() string { + return e.field +} + +// Reason function returns reason value. +func (e CommonTlsContext_CombinedCertificateValidationContextValidationError) Reason() string { + return e.reason +} + +// Cause function returns cause value. +func (e CommonTlsContext_CombinedCertificateValidationContextValidationError) Cause() error { + return e.cause +} + +// Key function returns key value. +func (e CommonTlsContext_CombinedCertificateValidationContextValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CommonTlsContext_CombinedCertificateValidationContextValidationError) ErrorName() string { + return "CommonTlsContext_CombinedCertificateValidationContextValidationError" +} + +// Error satisfies the builtin error interface +func (e CommonTlsContext_CombinedCertificateValidationContextValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCommonTlsContext_CombinedCertificateValidationContext.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CommonTlsContext_CombinedCertificateValidationContextValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CommonTlsContext_CombinedCertificateValidationContextValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/service/auth/v2/attribute_context.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/service/auth/v2/attribute_context.pb.go deleted file mode 100644 index 338664f0b..000000000 --- a/vendor/github.com/envoyproxy/go-control-plane/envoy/service/auth/v2/attribute_context.pb.go +++ /dev/null @@ -1,392 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: envoy/service/auth/v2/attribute_context.proto - -package envoy_service_auth_v2 - -import ( - fmt "fmt" - _ "github.com/cncf/udpa/go/udpa/annotations" - core "github.com/envoyproxy/go-control-plane/envoy/api/v2/core" - proto "github.com/golang/protobuf/proto" - timestamp "github.com/golang/protobuf/ptypes/timestamp" - math "math" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package - -type AttributeContext struct { - Source *AttributeContext_Peer `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` - Destination *AttributeContext_Peer `protobuf:"bytes,2,opt,name=destination,proto3" json:"destination,omitempty"` - Request *AttributeContext_Request `protobuf:"bytes,4,opt,name=request,proto3" json:"request,omitempty"` - ContextExtensions map[string]string `protobuf:"bytes,10,rep,name=context_extensions,json=contextExtensions,proto3" json:"context_extensions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - MetadataContext *core.Metadata `protobuf:"bytes,11,opt,name=metadata_context,json=metadataContext,proto3" json:"metadata_context,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AttributeContext) Reset() { *m = AttributeContext{} } -func (m *AttributeContext) String() string { return proto.CompactTextString(m) } -func (*AttributeContext) ProtoMessage() {} -func (*AttributeContext) Descriptor() ([]byte, []int) { - return fileDescriptor_a6030c9468e3591b, []int{0} -} - -func (m *AttributeContext) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AttributeContext.Unmarshal(m, b) -} -func (m *AttributeContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AttributeContext.Marshal(b, m, deterministic) -} -func (m *AttributeContext) XXX_Merge(src proto.Message) { - xxx_messageInfo_AttributeContext.Merge(m, src) -} -func (m *AttributeContext) XXX_Size() int { - return xxx_messageInfo_AttributeContext.Size(m) -} -func (m *AttributeContext) XXX_DiscardUnknown() { - xxx_messageInfo_AttributeContext.DiscardUnknown(m) -} - -var xxx_messageInfo_AttributeContext proto.InternalMessageInfo - -func (m *AttributeContext) GetSource() *AttributeContext_Peer { - if m != nil { - return m.Source - } - return nil -} - -func (m *AttributeContext) GetDestination() *AttributeContext_Peer { - if m != nil { - return m.Destination - } - return nil -} - -func (m *AttributeContext) GetRequest() *AttributeContext_Request { - if m != nil { - return m.Request - } - return nil -} - -func (m *AttributeContext) GetContextExtensions() map[string]string { - if m != nil { - return m.ContextExtensions - } - return nil -} - -func (m *AttributeContext) GetMetadataContext() *core.Metadata { - if m != nil { - return m.MetadataContext - } - return nil -} - -type AttributeContext_Peer struct { - Address *core.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - Service string `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"` - Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Principal string `protobuf:"bytes,4,opt,name=principal,proto3" json:"principal,omitempty"` - Certificate string `protobuf:"bytes,5,opt,name=certificate,proto3" json:"certificate,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AttributeContext_Peer) Reset() { *m = AttributeContext_Peer{} } -func (m *AttributeContext_Peer) String() string { return proto.CompactTextString(m) } -func (*AttributeContext_Peer) ProtoMessage() {} -func (*AttributeContext_Peer) Descriptor() ([]byte, []int) { - return fileDescriptor_a6030c9468e3591b, []int{0, 0} -} - -func (m *AttributeContext_Peer) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AttributeContext_Peer.Unmarshal(m, b) -} -func (m *AttributeContext_Peer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AttributeContext_Peer.Marshal(b, m, deterministic) -} -func (m *AttributeContext_Peer) XXX_Merge(src proto.Message) { - xxx_messageInfo_AttributeContext_Peer.Merge(m, src) -} -func (m *AttributeContext_Peer) XXX_Size() int { - return xxx_messageInfo_AttributeContext_Peer.Size(m) -} -func (m *AttributeContext_Peer) XXX_DiscardUnknown() { - xxx_messageInfo_AttributeContext_Peer.DiscardUnknown(m) -} - -var xxx_messageInfo_AttributeContext_Peer proto.InternalMessageInfo - -func (m *AttributeContext_Peer) GetAddress() *core.Address { - if m != nil { - return m.Address - } - return nil -} - -func (m *AttributeContext_Peer) GetService() string { - if m != nil { - return m.Service - } - return "" -} - -func (m *AttributeContext_Peer) GetLabels() map[string]string { - if m != nil { - return m.Labels - } - return nil -} - -func (m *AttributeContext_Peer) GetPrincipal() string { - if m != nil { - return m.Principal - } - return "" -} - -func (m *AttributeContext_Peer) GetCertificate() string { - if m != nil { - return m.Certificate - } - return "" -} - -type AttributeContext_Request struct { - Time *timestamp.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` - Http *AttributeContext_HttpRequest `protobuf:"bytes,2,opt,name=http,proto3" json:"http,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AttributeContext_Request) Reset() { *m = AttributeContext_Request{} } -func (m *AttributeContext_Request) String() string { return proto.CompactTextString(m) } -func (*AttributeContext_Request) ProtoMessage() {} -func (*AttributeContext_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_a6030c9468e3591b, []int{0, 1} -} - -func (m *AttributeContext_Request) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AttributeContext_Request.Unmarshal(m, b) -} -func (m *AttributeContext_Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AttributeContext_Request.Marshal(b, m, deterministic) -} -func (m *AttributeContext_Request) XXX_Merge(src proto.Message) { - xxx_messageInfo_AttributeContext_Request.Merge(m, src) -} -func (m *AttributeContext_Request) XXX_Size() int { - return xxx_messageInfo_AttributeContext_Request.Size(m) -} -func (m *AttributeContext_Request) XXX_DiscardUnknown() { - xxx_messageInfo_AttributeContext_Request.DiscardUnknown(m) -} - -var xxx_messageInfo_AttributeContext_Request proto.InternalMessageInfo - -func (m *AttributeContext_Request) GetTime() *timestamp.Timestamp { - if m != nil { - return m.Time - } - return nil -} - -func (m *AttributeContext_Request) GetHttp() *AttributeContext_HttpRequest { - if m != nil { - return m.Http - } - return nil -} - -type AttributeContext_HttpRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"` - Headers map[string]string `protobuf:"bytes,3,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Path string `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"` - Host string `protobuf:"bytes,5,opt,name=host,proto3" json:"host,omitempty"` - Scheme string `protobuf:"bytes,6,opt,name=scheme,proto3" json:"scheme,omitempty"` - Query string `protobuf:"bytes,7,opt,name=query,proto3" json:"query,omitempty"` - Fragment string `protobuf:"bytes,8,opt,name=fragment,proto3" json:"fragment,omitempty"` - Size int64 `protobuf:"varint,9,opt,name=size,proto3" json:"size,omitempty"` - Protocol string `protobuf:"bytes,10,opt,name=protocol,proto3" json:"protocol,omitempty"` - Body string `protobuf:"bytes,11,opt,name=body,proto3" json:"body,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AttributeContext_HttpRequest) Reset() { *m = AttributeContext_HttpRequest{} } -func (m *AttributeContext_HttpRequest) String() string { return proto.CompactTextString(m) } -func (*AttributeContext_HttpRequest) ProtoMessage() {} -func (*AttributeContext_HttpRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_a6030c9468e3591b, []int{0, 2} -} - -func (m *AttributeContext_HttpRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AttributeContext_HttpRequest.Unmarshal(m, b) -} -func (m *AttributeContext_HttpRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AttributeContext_HttpRequest.Marshal(b, m, deterministic) -} -func (m *AttributeContext_HttpRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_AttributeContext_HttpRequest.Merge(m, src) -} -func (m *AttributeContext_HttpRequest) XXX_Size() int { - return xxx_messageInfo_AttributeContext_HttpRequest.Size(m) -} -func (m *AttributeContext_HttpRequest) XXX_DiscardUnknown() { - xxx_messageInfo_AttributeContext_HttpRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_AttributeContext_HttpRequest proto.InternalMessageInfo - -func (m *AttributeContext_HttpRequest) GetId() string { - if m != nil { - return m.Id - } - return "" -} - -func (m *AttributeContext_HttpRequest) GetMethod() string { - if m != nil { - return m.Method - } - return "" -} - -func (m *AttributeContext_HttpRequest) GetHeaders() map[string]string { - if m != nil { - return m.Headers - } - return nil -} - -func (m *AttributeContext_HttpRequest) GetPath() string { - if m != nil { - return m.Path - } - return "" -} - -func (m *AttributeContext_HttpRequest) GetHost() string { - if m != nil { - return m.Host - } - return "" -} - -func (m *AttributeContext_HttpRequest) GetScheme() string { - if m != nil { - return m.Scheme - } - return "" -} - -func (m *AttributeContext_HttpRequest) GetQuery() string { - if m != nil { - return m.Query - } - return "" -} - -func (m *AttributeContext_HttpRequest) GetFragment() string { - if m != nil { - return m.Fragment - } - return "" -} - -func (m *AttributeContext_HttpRequest) GetSize() int64 { - if m != nil { - return m.Size - } - return 0 -} - -func (m *AttributeContext_HttpRequest) GetProtocol() string { - if m != nil { - return m.Protocol - } - return "" -} - -func (m *AttributeContext_HttpRequest) GetBody() string { - if m != nil { - return m.Body - } - return "" -} - -func init() { - proto.RegisterType((*AttributeContext)(nil), "envoy.service.auth.v2.AttributeContext") - proto.RegisterMapType((map[string]string)(nil), "envoy.service.auth.v2.AttributeContext.ContextExtensionsEntry") - proto.RegisterType((*AttributeContext_Peer)(nil), "envoy.service.auth.v2.AttributeContext.Peer") - proto.RegisterMapType((map[string]string)(nil), "envoy.service.auth.v2.AttributeContext.Peer.LabelsEntry") - proto.RegisterType((*AttributeContext_Request)(nil), "envoy.service.auth.v2.AttributeContext.Request") - proto.RegisterType((*AttributeContext_HttpRequest)(nil), "envoy.service.auth.v2.AttributeContext.HttpRequest") - proto.RegisterMapType((map[string]string)(nil), "envoy.service.auth.v2.AttributeContext.HttpRequest.HeadersEntry") -} - -func init() { - proto.RegisterFile("envoy/service/auth/v2/attribute_context.proto", fileDescriptor_a6030c9468e3591b) -} - -var fileDescriptor_a6030c9468e3591b = []byte{ - // 668 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x53, 0xcd, 0x6e, 0xd3, 0x40, - 0x10, 0x56, 0x7e, 0x9a, 0x34, 0x13, 0x04, 0x61, 0x45, 0x2b, 0xcb, 0x14, 0x35, 0x82, 0x4b, 0x0f, - 0x60, 0x4b, 0x29, 0x87, 0xd2, 0x03, 0xa2, 0xa5, 0x2d, 0x45, 0x02, 0x14, 0x59, 0x9c, 0xb8, 0x54, - 0x1b, 0x7b, 0xda, 0xac, 0x48, 0xbc, 0xee, 0xee, 0x38, 0x6a, 0x38, 0x21, 0x78, 0x12, 0xc4, 0x5b, - 0xf0, 0x04, 0x5c, 0x79, 0x23, 0xb4, 0x3f, 0x2e, 0x51, 0xc9, 0xa1, 0xed, 0xc9, 0x33, 0xe3, 0x6f, - 0xbe, 0x9d, 0x99, 0x6f, 0x06, 0x9e, 0x61, 0x3e, 0x93, 0xf3, 0x58, 0xa3, 0x9a, 0x89, 0x14, 0x63, - 0x5e, 0xd2, 0x38, 0x9e, 0x0d, 0x62, 0x4e, 0xa4, 0xc4, 0xa8, 0x24, 0x3c, 0x49, 0x65, 0x4e, 0x78, - 0x41, 0x51, 0xa1, 0x24, 0x49, 0xb6, 0x66, 0xe1, 0x91, 0x87, 0x47, 0x06, 0x1e, 0xcd, 0x06, 0xe1, - 0xa6, 0x63, 0xe1, 0x85, 0x30, 0xc9, 0xa9, 0x54, 0x18, 0xf3, 0x2c, 0x53, 0xa8, 0xb5, 0xcb, 0x0b, - 0x37, 0xfe, 0x07, 0x8c, 0xb8, 0x46, 0xff, 0x77, 0xf3, 0x4c, 0xca, 0xb3, 0x09, 0xc6, 0xd6, 0x1b, - 0x95, 0xa7, 0x31, 0x89, 0x29, 0x6a, 0xe2, 0xd3, 0xc2, 0x03, 0x1e, 0x95, 0x59, 0xc1, 0x63, 0x9e, - 0xe7, 0x92, 0x38, 0x09, 0x99, 0xeb, 0x58, 0x13, 0xa7, 0xd2, 0xb3, 0x3f, 0xfe, 0x01, 0xd0, 0xdb, - 0xab, 0x2a, 0x7e, 0xed, 0x0a, 0x66, 0x07, 0xd0, 0xd2, 0xb2, 0x54, 0x29, 0x06, 0xb5, 0x7e, 0x6d, - 0xab, 0x3b, 0x78, 0x1a, 0x2d, 0xad, 0x3d, 0xba, 0x9a, 0x18, 0x0d, 0x11, 0x55, 0xe2, 0x73, 0xd9, - 0x07, 0xe8, 0x66, 0xa8, 0x49, 0xe4, 0xf6, 0xdd, 0xa0, 0x7e, 0x0b, 0xaa, 0x45, 0x02, 0xf6, 0x16, - 0xda, 0x0a, 0xcf, 0x4b, 0xd4, 0x14, 0x34, 0x2d, 0x57, 0x7c, 0x5d, 0xae, 0xc4, 0xa5, 0x25, 0x55, - 0x3e, 0x9b, 0x02, 0xf3, 0xe2, 0x9c, 0xe0, 0x05, 0x61, 0xae, 0xcd, 0x60, 0x02, 0xe8, 0x37, 0xb6, - 0xba, 0x83, 0x97, 0xd7, 0x65, 0xf5, 0xdf, 0xc3, 0x4b, 0x82, 0xc3, 0x9c, 0xd4, 0x3c, 0xb9, 0x9f, - 0x5e, 0x8d, 0xb3, 0x23, 0xe8, 0x4d, 0x91, 0x78, 0xc6, 0x89, 0x57, 0x4b, 0x11, 0x74, 0x6d, 0x0b, - 0x0f, 0xfd, 0x63, 0xbc, 0x10, 0xe6, 0x0d, 0xa3, 0x6e, 0xf4, 0xde, 0x43, 0x93, 0x7b, 0x55, 0x92, - 0x7f, 0x29, 0xfc, 0x59, 0x87, 0xa6, 0x99, 0x0b, 0x7b, 0x0e, 0x6d, 0xbf, 0x24, 0x5e, 0xa1, 0x70, - 0x09, 0xcf, 0x9e, 0x43, 0x24, 0x15, 0x94, 0x05, 0xd0, 0xf6, 0x4d, 0x59, 0x31, 0x3a, 0x49, 0xe5, - 0xb2, 0x21, 0xb4, 0x26, 0x7c, 0x84, 0x13, 0x1d, 0x34, 0xec, 0x0c, 0x76, 0x6e, 0xa2, 0x52, 0xf4, - 0xce, 0xa6, 0xba, 0xee, 0x3d, 0x0f, 0xdb, 0x80, 0x4e, 0xa1, 0x44, 0x9e, 0x8a, 0x82, 0x4f, 0xac, - 0x5c, 0x9d, 0xe4, 0x5f, 0x80, 0xf5, 0xa1, 0x9b, 0xa2, 0x22, 0x71, 0x2a, 0x52, 0x4e, 0x18, 0xac, - 0xd8, 0xff, 0x8b, 0xa1, 0xf0, 0x05, 0x74, 0x17, 0x68, 0x59, 0x0f, 0x1a, 0x9f, 0x71, 0x6e, 0x9b, - 0xed, 0x24, 0xc6, 0x64, 0x0f, 0x60, 0x65, 0xc6, 0x27, 0x65, 0xd5, 0x8a, 0x73, 0x76, 0xeb, 0x3b, - 0xb5, 0xf0, 0x5b, 0x0d, 0xda, 0x5e, 0x71, 0x16, 0x41, 0xd3, 0x1c, 0xc4, 0xe5, 0x94, 0xdc, 0xb5, - 0x44, 0xd5, 0xb5, 0x44, 0x1f, 0xab, 0x6b, 0x49, 0x2c, 0x8e, 0xbd, 0x81, 0xe6, 0x98, 0xa8, 0xf0, - 0xcb, 0xba, 0x7d, 0xdd, 0x31, 0x1c, 0x13, 0x15, 0xd5, 0x92, 0x59, 0x82, 0xf0, 0x7b, 0x03, 0xba, - 0x0b, 0x51, 0x76, 0x17, 0xea, 0x22, 0xf3, 0xf5, 0xd7, 0x45, 0xc6, 0xd6, 0xa1, 0x35, 0x45, 0x1a, - 0xcb, 0xcc, 0xd7, 0xef, 0x3d, 0xf6, 0x09, 0xda, 0x63, 0xe4, 0x19, 0xaa, 0x4a, 0x8a, 0x57, 0xb7, - 0xa8, 0x21, 0x3a, 0x76, 0x14, 0x4e, 0x92, 0x8a, 0x90, 0x31, 0x68, 0x16, 0x9c, 0xc6, 0x5e, 0x0e, - 0x6b, 0x9b, 0xd8, 0x58, 0x6a, 0xf2, 0x12, 0x58, 0xdb, 0xd4, 0xa6, 0xd3, 0x31, 0x4e, 0x31, 0x68, - 0xb9, 0xda, 0x9c, 0x67, 0x46, 0x7e, 0x5e, 0xa2, 0x9a, 0x07, 0x6d, 0x37, 0x72, 0xeb, 0xb0, 0x10, - 0x56, 0x4f, 0x15, 0x3f, 0x9b, 0x62, 0x4e, 0xc1, 0xaa, 0xfd, 0x71, 0xe9, 0x1b, 0x76, 0x2d, 0xbe, - 0x60, 0xd0, 0xe9, 0xd7, 0xb6, 0x1a, 0x89, 0xb5, 0x0d, 0xde, 0x8e, 0x3f, 0x95, 0x93, 0x00, 0x1c, - 0xbe, 0xf2, 0x0d, 0x7e, 0x24, 0xb3, 0xb9, 0x3d, 0x8e, 0x4e, 0x62, 0xed, 0x70, 0x17, 0xee, 0x2c, - 0xb6, 0x73, 0xa3, 0x55, 0x38, 0x80, 0xf5, 0xe5, 0x57, 0x7a, 0x13, 0x96, 0xfd, 0xa3, 0x5f, 0x5f, - 0x7f, 0xff, 0x69, 0xd5, 0x7b, 0x35, 0x78, 0x22, 0xa4, 0x93, 0xa3, 0x50, 0xf2, 0x62, 0xbe, 0x5c, - 0x99, 0xfd, 0xb5, 0xab, 0xd2, 0x0c, 0x4d, 0x7b, 0xc3, 0xda, 0xa8, 0x65, 0xfb, 0xdc, 0xfe, 0x1b, - 0x00, 0x00, 0xff, 0xff, 0xd1, 0xda, 0x79, 0x9c, 0x39, 0x06, 0x00, 0x00, -} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/service/auth/v2/attribute_context.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/service/auth/v2/attribute_context.pb.validate.go deleted file mode 100644 index 5b85f8732..000000000 --- a/vendor/github.com/envoyproxy/go-control-plane/envoy/service/auth/v2/attribute_context.pb.validate.go +++ /dev/null @@ -1,406 +0,0 @@ -// Code generated by protoc-gen-validate. DO NOT EDIT. -// source: envoy/service/auth/v2/attribute_context.proto - -package envoy_service_auth_v2 - -import ( - "bytes" - "errors" - "fmt" - "net" - "net/mail" - "net/url" - "regexp" - "strings" - "time" - "unicode/utf8" - - "github.com/golang/protobuf/ptypes" -) - -// ensure the imports are used -var ( - _ = bytes.MinRead - _ = errors.New("") - _ = fmt.Print - _ = utf8.UTFMax - _ = (*regexp.Regexp)(nil) - _ = (*strings.Reader)(nil) - _ = net.IPv4len - _ = time.Duration(0) - _ = (*url.URL)(nil) - _ = (*mail.Address)(nil) - _ = ptypes.DynamicAny{} -) - -// define the regex for a UUID once up-front -var _attribute_context_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") - -// Validate checks the field values on AttributeContext with the rules defined -// in the proto definition for this message. If any rules are violated, an -// error is returned. -func (m *AttributeContext) Validate() error { - if m == nil { - return nil - } - - if v, ok := interface{}(m.GetSource()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return AttributeContextValidationError{ - field: "Source", - reason: "embedded message failed validation", - cause: err, - } - } - } - - if v, ok := interface{}(m.GetDestination()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return AttributeContextValidationError{ - field: "Destination", - reason: "embedded message failed validation", - cause: err, - } - } - } - - if v, ok := interface{}(m.GetRequest()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return AttributeContextValidationError{ - field: "Request", - reason: "embedded message failed validation", - cause: err, - } - } - } - - // no validation rules for ContextExtensions - - if v, ok := interface{}(m.GetMetadataContext()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return AttributeContextValidationError{ - field: "MetadataContext", - reason: "embedded message failed validation", - cause: err, - } - } - } - - return nil -} - -// AttributeContextValidationError is the validation error returned by -// AttributeContext.Validate if the designated constraints aren't met. -type AttributeContextValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e AttributeContextValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e AttributeContextValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e AttributeContextValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e AttributeContextValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e AttributeContextValidationError) ErrorName() string { return "AttributeContextValidationError" } - -// Error satisfies the builtin error interface -func (e AttributeContextValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sAttributeContext.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = AttributeContextValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = AttributeContextValidationError{} - -// Validate checks the field values on AttributeContext_Peer with the rules -// defined in the proto definition for this message. If any rules are -// violated, an error is returned. -func (m *AttributeContext_Peer) Validate() error { - if m == nil { - return nil - } - - if v, ok := interface{}(m.GetAddress()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return AttributeContext_PeerValidationError{ - field: "Address", - reason: "embedded message failed validation", - cause: err, - } - } - } - - // no validation rules for Service - - // no validation rules for Labels - - // no validation rules for Principal - - // no validation rules for Certificate - - return nil -} - -// AttributeContext_PeerValidationError is the validation error returned by -// AttributeContext_Peer.Validate if the designated constraints aren't met. -type AttributeContext_PeerValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e AttributeContext_PeerValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e AttributeContext_PeerValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e AttributeContext_PeerValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e AttributeContext_PeerValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e AttributeContext_PeerValidationError) ErrorName() string { - return "AttributeContext_PeerValidationError" -} - -// Error satisfies the builtin error interface -func (e AttributeContext_PeerValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sAttributeContext_Peer.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = AttributeContext_PeerValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = AttributeContext_PeerValidationError{} - -// Validate checks the field values on AttributeContext_Request with the rules -// defined in the proto definition for this message. If any rules are -// violated, an error is returned. -func (m *AttributeContext_Request) Validate() error { - if m == nil { - return nil - } - - if v, ok := interface{}(m.GetTime()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return AttributeContext_RequestValidationError{ - field: "Time", - reason: "embedded message failed validation", - cause: err, - } - } - } - - if v, ok := interface{}(m.GetHttp()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return AttributeContext_RequestValidationError{ - field: "Http", - reason: "embedded message failed validation", - cause: err, - } - } - } - - return nil -} - -// AttributeContext_RequestValidationError is the validation error returned by -// AttributeContext_Request.Validate if the designated constraints aren't met. -type AttributeContext_RequestValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e AttributeContext_RequestValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e AttributeContext_RequestValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e AttributeContext_RequestValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e AttributeContext_RequestValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e AttributeContext_RequestValidationError) ErrorName() string { - return "AttributeContext_RequestValidationError" -} - -// Error satisfies the builtin error interface -func (e AttributeContext_RequestValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sAttributeContext_Request.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = AttributeContext_RequestValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = AttributeContext_RequestValidationError{} - -// Validate checks the field values on AttributeContext_HttpRequest with the -// rules defined in the proto definition for this message. If any rules are -// violated, an error is returned. -func (m *AttributeContext_HttpRequest) Validate() error { - if m == nil { - return nil - } - - // no validation rules for Id - - // no validation rules for Method - - // no validation rules for Headers - - // no validation rules for Path - - // no validation rules for Host - - // no validation rules for Scheme - - // no validation rules for Query - - // no validation rules for Fragment - - // no validation rules for Size - - // no validation rules for Protocol - - // no validation rules for Body - - return nil -} - -// AttributeContext_HttpRequestValidationError is the validation error returned -// by AttributeContext_HttpRequest.Validate if the designated constraints -// aren't met. -type AttributeContext_HttpRequestValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e AttributeContext_HttpRequestValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e AttributeContext_HttpRequestValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e AttributeContext_HttpRequestValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e AttributeContext_HttpRequestValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e AttributeContext_HttpRequestValidationError) ErrorName() string { - return "AttributeContext_HttpRequestValidationError" -} - -// Error satisfies the builtin error interface -func (e AttributeContext_HttpRequestValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sAttributeContext_HttpRequest.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = AttributeContext_HttpRequestValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = AttributeContext_HttpRequestValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/service/auth/v2/external_auth.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/service/auth/v2/external_auth.pb.go deleted file mode 100644 index 3a0266947..000000000 --- a/vendor/github.com/envoyproxy/go-control-plane/envoy/service/auth/v2/external_auth.pb.go +++ /dev/null @@ -1,378 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: envoy/service/auth/v2/external_auth.proto - -package envoy_service_auth_v2 - -import ( - context "context" - fmt "fmt" - _ "github.com/cncf/udpa/go/udpa/annotations" - core "github.com/envoyproxy/go-control-plane/envoy/api/v2/core" - _type "github.com/envoyproxy/go-control-plane/envoy/type" - _ "github.com/envoyproxy/protoc-gen-validate/validate" - proto "github.com/golang/protobuf/proto" - status "google.golang.org/genproto/googleapis/rpc/status" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status1 "google.golang.org/grpc/status" - math "math" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package - -type CheckRequest struct { - Attributes *AttributeContext `protobuf:"bytes,1,opt,name=attributes,proto3" json:"attributes,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CheckRequest) Reset() { *m = CheckRequest{} } -func (m *CheckRequest) String() string { return proto.CompactTextString(m) } -func (*CheckRequest) ProtoMessage() {} -func (*CheckRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_5257cfee93a30acb, []int{0} -} - -func (m *CheckRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CheckRequest.Unmarshal(m, b) -} -func (m *CheckRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CheckRequest.Marshal(b, m, deterministic) -} -func (m *CheckRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_CheckRequest.Merge(m, src) -} -func (m *CheckRequest) XXX_Size() int { - return xxx_messageInfo_CheckRequest.Size(m) -} -func (m *CheckRequest) XXX_DiscardUnknown() { - xxx_messageInfo_CheckRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_CheckRequest proto.InternalMessageInfo - -func (m *CheckRequest) GetAttributes() *AttributeContext { - if m != nil { - return m.Attributes - } - return nil -} - -type DeniedHttpResponse struct { - Status *_type.HttpStatus `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Headers []*core.HeaderValueOption `protobuf:"bytes,2,rep,name=headers,proto3" json:"headers,omitempty"` - Body string `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DeniedHttpResponse) Reset() { *m = DeniedHttpResponse{} } -func (m *DeniedHttpResponse) String() string { return proto.CompactTextString(m) } -func (*DeniedHttpResponse) ProtoMessage() {} -func (*DeniedHttpResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_5257cfee93a30acb, []int{1} -} - -func (m *DeniedHttpResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeniedHttpResponse.Unmarshal(m, b) -} -func (m *DeniedHttpResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeniedHttpResponse.Marshal(b, m, deterministic) -} -func (m *DeniedHttpResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeniedHttpResponse.Merge(m, src) -} -func (m *DeniedHttpResponse) XXX_Size() int { - return xxx_messageInfo_DeniedHttpResponse.Size(m) -} -func (m *DeniedHttpResponse) XXX_DiscardUnknown() { - xxx_messageInfo_DeniedHttpResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_DeniedHttpResponse proto.InternalMessageInfo - -func (m *DeniedHttpResponse) GetStatus() *_type.HttpStatus { - if m != nil { - return m.Status - } - return nil -} - -func (m *DeniedHttpResponse) GetHeaders() []*core.HeaderValueOption { - if m != nil { - return m.Headers - } - return nil -} - -func (m *DeniedHttpResponse) GetBody() string { - if m != nil { - return m.Body - } - return "" -} - -type OkHttpResponse struct { - Headers []*core.HeaderValueOption `protobuf:"bytes,2,rep,name=headers,proto3" json:"headers,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *OkHttpResponse) Reset() { *m = OkHttpResponse{} } -func (m *OkHttpResponse) String() string { return proto.CompactTextString(m) } -func (*OkHttpResponse) ProtoMessage() {} -func (*OkHttpResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_5257cfee93a30acb, []int{2} -} - -func (m *OkHttpResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OkHttpResponse.Unmarshal(m, b) -} -func (m *OkHttpResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OkHttpResponse.Marshal(b, m, deterministic) -} -func (m *OkHttpResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_OkHttpResponse.Merge(m, src) -} -func (m *OkHttpResponse) XXX_Size() int { - return xxx_messageInfo_OkHttpResponse.Size(m) -} -func (m *OkHttpResponse) XXX_DiscardUnknown() { - xxx_messageInfo_OkHttpResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_OkHttpResponse proto.InternalMessageInfo - -func (m *OkHttpResponse) GetHeaders() []*core.HeaderValueOption { - if m != nil { - return m.Headers - } - return nil -} - -type CheckResponse struct { - Status *status.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - // Types that are valid to be assigned to HttpResponse: - // *CheckResponse_DeniedResponse - // *CheckResponse_OkResponse - HttpResponse isCheckResponse_HttpResponse `protobuf_oneof:"http_response"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CheckResponse) Reset() { *m = CheckResponse{} } -func (m *CheckResponse) String() string { return proto.CompactTextString(m) } -func (*CheckResponse) ProtoMessage() {} -func (*CheckResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_5257cfee93a30acb, []int{3} -} - -func (m *CheckResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CheckResponse.Unmarshal(m, b) -} -func (m *CheckResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CheckResponse.Marshal(b, m, deterministic) -} -func (m *CheckResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_CheckResponse.Merge(m, src) -} -func (m *CheckResponse) XXX_Size() int { - return xxx_messageInfo_CheckResponse.Size(m) -} -func (m *CheckResponse) XXX_DiscardUnknown() { - xxx_messageInfo_CheckResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_CheckResponse proto.InternalMessageInfo - -func (m *CheckResponse) GetStatus() *status.Status { - if m != nil { - return m.Status - } - return nil -} - -type isCheckResponse_HttpResponse interface { - isCheckResponse_HttpResponse() -} - -type CheckResponse_DeniedResponse struct { - DeniedResponse *DeniedHttpResponse `protobuf:"bytes,2,opt,name=denied_response,json=deniedResponse,proto3,oneof"` -} - -type CheckResponse_OkResponse struct { - OkResponse *OkHttpResponse `protobuf:"bytes,3,opt,name=ok_response,json=okResponse,proto3,oneof"` -} - -func (*CheckResponse_DeniedResponse) isCheckResponse_HttpResponse() {} - -func (*CheckResponse_OkResponse) isCheckResponse_HttpResponse() {} - -func (m *CheckResponse) GetHttpResponse() isCheckResponse_HttpResponse { - if m != nil { - return m.HttpResponse - } - return nil -} - -func (m *CheckResponse) GetDeniedResponse() *DeniedHttpResponse { - if x, ok := m.GetHttpResponse().(*CheckResponse_DeniedResponse); ok { - return x.DeniedResponse - } - return nil -} - -func (m *CheckResponse) GetOkResponse() *OkHttpResponse { - if x, ok := m.GetHttpResponse().(*CheckResponse_OkResponse); ok { - return x.OkResponse - } - return nil -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*CheckResponse) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*CheckResponse_DeniedResponse)(nil), - (*CheckResponse_OkResponse)(nil), - } -} - -func init() { - proto.RegisterType((*CheckRequest)(nil), "envoy.service.auth.v2.CheckRequest") - proto.RegisterType((*DeniedHttpResponse)(nil), "envoy.service.auth.v2.DeniedHttpResponse") - proto.RegisterType((*OkHttpResponse)(nil), "envoy.service.auth.v2.OkHttpResponse") - proto.RegisterType((*CheckResponse)(nil), "envoy.service.auth.v2.CheckResponse") -} - -func init() { - proto.RegisterFile("envoy/service/auth/v2/external_auth.proto", fileDescriptor_5257cfee93a30acb) -} - -var fileDescriptor_5257cfee93a30acb = []byte{ - // 500 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x93, 0xc1, 0x6e, 0x13, 0x3f, - 0x10, 0xc6, 0xe3, 0xe4, 0xdf, 0xfc, 0xc1, 0x21, 0x6d, 0xb1, 0x04, 0x8d, 0x22, 0x90, 0xa2, 0xb4, - 0x88, 0x14, 0x09, 0x5b, 0x0a, 0x17, 0x4e, 0x48, 0x4d, 0xa9, 0xc8, 0xad, 0xd1, 0x52, 0xc1, 0x31, - 0x72, 0x76, 0x47, 0xcd, 0x2a, 0xd1, 0xda, 0xd8, 0xb3, 0xab, 0x84, 0x13, 0x47, 0xc4, 0x63, 0xf0, - 0x18, 0x3c, 0x01, 0x57, 0xde, 0x83, 0x27, 0xe0, 0x84, 0xd6, 0x76, 0x42, 0x03, 0x09, 0x17, 0x6e, - 0xd6, 0xce, 0xf7, 0xfd, 0x3c, 0xdf, 0x78, 0x96, 0x9e, 0x42, 0x56, 0xa8, 0xa5, 0xb0, 0x60, 0x8a, - 0x34, 0x06, 0x21, 0x73, 0x9c, 0x8a, 0xa2, 0x2f, 0x60, 0x81, 0x60, 0x32, 0x39, 0x1f, 0x97, 0x1f, - 0xb8, 0x36, 0x0a, 0x15, 0xbb, 0xe7, 0xa4, 0x3c, 0x48, 0xb9, 0xab, 0x14, 0xfd, 0xf6, 0x03, 0x4f, - 0x90, 0x3a, 0x2d, 0x8d, 0xb1, 0x32, 0x20, 0x26, 0xd2, 0x82, 0x37, 0xb5, 0x9f, 0x6e, 0xe7, 0x4b, - 0x44, 0x93, 0x4e, 0x72, 0x84, 0x71, 0xac, 0x32, 0x84, 0x05, 0x06, 0x79, 0x80, 0xe1, 0x52, 0x83, - 0x98, 0x22, 0xea, 0xb1, 0x45, 0x89, 0xb9, 0x0d, 0xd5, 0xa3, 0x6b, 0xa5, 0xae, 0xe7, 0x20, 0x8c, - 0x8e, 0xc5, 0x46, 0xe1, 0x61, 0x9e, 0x68, 0x29, 0x64, 0x96, 0x29, 0x94, 0x98, 0xaa, 0xcc, 0x6e, - 0x96, 0x8f, 0x0a, 0x39, 0x4f, 0x13, 0x89, 0x20, 0x56, 0x07, 0x5f, 0xe8, 0xbe, 0xa5, 0x77, 0xce, - 0xa7, 0x10, 0xcf, 0x22, 0x78, 0x97, 0x83, 0x45, 0xf6, 0x8a, 0xd2, 0x75, 0x67, 0xb6, 0x45, 0x3a, - 0xa4, 0xd7, 0xe8, 0x3f, 0xe6, 0x5b, 0x73, 0xf3, 0xb3, 0x95, 0xf0, 0xdc, 0x27, 0x88, 0x6e, 0x58, - 0xbb, 0x9f, 0x09, 0x65, 0x2f, 0x21, 0x4b, 0x21, 0x19, 0x22, 0xea, 0x08, 0xac, 0x56, 0x99, 0x05, - 0xf6, 0x9c, 0xd6, 0x7d, 0x63, 0x81, 0x7d, 0x3f, 0xb0, 0xcb, 0xbc, 0xbc, 0x54, 0xbe, 0x76, 0xd5, - 0xc1, 0xad, 0x1f, 0x83, 0xbd, 0x4f, 0xa4, 0x7a, 0x48, 0xa2, 0xa0, 0x67, 0x2f, 0xe8, 0xff, 0x53, - 0x90, 0x09, 0x18, 0xdb, 0xaa, 0x76, 0x6a, 0xbd, 0x46, 0xff, 0x24, 0x58, 0xa5, 0x4e, 0xcb, 0x6e, - 0xca, 0xb9, 0xf3, 0xa1, 0x53, 0xbc, 0x91, 0xf3, 0x1c, 0x2e, 0x75, 0x39, 0x87, 0x68, 0x65, 0x62, - 0x8c, 0xfe, 0x37, 0x51, 0xc9, 0xb2, 0x55, 0xeb, 0x90, 0xde, 0xed, 0xc8, 0x9d, 0xbb, 0x23, 0xba, - 0x7f, 0x39, 0xdb, 0xe8, 0xef, 0x1f, 0x6f, 0xe9, 0x7e, 0x27, 0xb4, 0x19, 0x06, 0x1a, 0x88, 0x4f, - 0x7e, 0x4b, 0xcc, 0xb8, 0x7f, 0x43, 0x6e, 0x74, 0xcc, 0x7d, 0xda, 0x75, 0xc6, 0x2b, 0x7a, 0x90, - 0xb8, 0x99, 0x8d, 0x4d, 0xb0, 0xb7, 0xaa, 0xce, 0x74, 0xba, 0xe3, 0x09, 0xfe, 0x9c, 0xf0, 0xb0, - 0x12, 0xed, 0x7b, 0xc6, 0xba, 0x83, 0x21, 0x6d, 0xa8, 0xd9, 0x2f, 0x62, 0xcd, 0x11, 0x1f, 0xed, - 0x20, 0x6e, 0xce, 0x63, 0x58, 0x89, 0xa8, 0x5a, 0x67, 0x19, 0x1c, 0xd0, 0xa6, 0xdb, 0xc9, 0x15, - 0xab, 0x0f, 0xb4, 0x79, 0x96, 0xe3, 0x54, 0x99, 0xf4, 0xbd, 0x5b, 0x3b, 0x76, 0x45, 0xf7, 0x5c, - 0x7c, 0x76, 0xbc, 0x83, 0x7f, 0x73, 0xdb, 0xda, 0x27, 0x7f, 0x17, 0xf9, 0x4b, 0xba, 0x95, 0xc1, - 0xc5, 0x97, 0x0f, 0x5f, 0xbf, 0xd5, 0xab, 0x87, 0x84, 0x1e, 0xa7, 0xca, 0x7b, 0xb4, 0x51, 0x8b, - 0xe5, 0x76, 0xfb, 0xe0, 0xee, 0x45, 0xf8, 0x79, 0xcb, 0xde, 0x46, 0xe5, 0x9e, 0x8f, 0xc8, 0x47, - 0x42, 0x26, 0x75, 0xb7, 0xf3, 0xcf, 0x7e, 0x06, 0x00, 0x00, 0xff, 0xff, 0x0d, 0x1b, 0x7b, 0xd5, - 0xf3, 0x03, 0x00, 0x00, -} - -// 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 - -// AuthorizationClient is the client API for Authorization service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type AuthorizationClient interface { - Check(ctx context.Context, in *CheckRequest, opts ...grpc.CallOption) (*CheckResponse, error) -} - -type authorizationClient struct { - cc *grpc.ClientConn -} - -func NewAuthorizationClient(cc *grpc.ClientConn) AuthorizationClient { - return &authorizationClient{cc} -} - -func (c *authorizationClient) Check(ctx context.Context, in *CheckRequest, opts ...grpc.CallOption) (*CheckResponse, error) { - out := new(CheckResponse) - err := c.cc.Invoke(ctx, "/envoy.service.auth.v2.Authorization/Check", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// AuthorizationServer is the server API for Authorization service. -type AuthorizationServer interface { - Check(context.Context, *CheckRequest) (*CheckResponse, error) -} - -// UnimplementedAuthorizationServer can be embedded to have forward compatible implementations. -type UnimplementedAuthorizationServer struct { -} - -func (*UnimplementedAuthorizationServer) Check(ctx context.Context, req *CheckRequest) (*CheckResponse, error) { - return nil, status1.Errorf(codes.Unimplemented, "method Check not implemented") -} - -func RegisterAuthorizationServer(s *grpc.Server, srv AuthorizationServer) { - s.RegisterService(&_Authorization_serviceDesc, srv) -} - -func _Authorization_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.(AuthorizationServer).Check(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/envoy.service.auth.v2.Authorization/Check", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizationServer).Check(ctx, req.(*CheckRequest)) - } - return interceptor(ctx, in, info, handler) -} - -var _Authorization_serviceDesc = grpc.ServiceDesc{ - ServiceName: "envoy.service.auth.v2.Authorization", - HandlerType: (*AuthorizationServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "Check", - Handler: _Authorization_Check_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "envoy/service/auth/v2/external_auth.proto", -} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/service/auth/v2/external_auth.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/service/auth/v2/external_auth.pb.validate.go deleted file mode 100644 index d68cf17ab..000000000 --- a/vendor/github.com/envoyproxy/go-control-plane/envoy/service/auth/v2/external_auth.pb.validate.go +++ /dev/null @@ -1,396 +0,0 @@ -// Code generated by protoc-gen-validate. DO NOT EDIT. -// source: envoy/service/auth/v2/external_auth.proto - -package envoy_service_auth_v2 - -import ( - "bytes" - "errors" - "fmt" - "net" - "net/mail" - "net/url" - "regexp" - "strings" - "time" - "unicode/utf8" - - "github.com/golang/protobuf/ptypes" -) - -// ensure the imports are used -var ( - _ = bytes.MinRead - _ = errors.New("") - _ = fmt.Print - _ = utf8.UTFMax - _ = (*regexp.Regexp)(nil) - _ = (*strings.Reader)(nil) - _ = net.IPv4len - _ = time.Duration(0) - _ = (*url.URL)(nil) - _ = (*mail.Address)(nil) - _ = ptypes.DynamicAny{} -) - -// define the regex for a UUID once up-front -var _external_auth_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") - -// Validate checks the field values on CheckRequest with the rules defined in -// the proto definition for this message. If any rules are violated, an error -// is returned. -func (m *CheckRequest) Validate() error { - if m == nil { - return nil - } - - if v, ok := interface{}(m.GetAttributes()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return CheckRequestValidationError{ - field: "Attributes", - reason: "embedded message failed validation", - cause: err, - } - } - } - - return nil -} - -// CheckRequestValidationError is the validation error returned by -// CheckRequest.Validate if the designated constraints aren't met. -type CheckRequestValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e CheckRequestValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e CheckRequestValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e CheckRequestValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e CheckRequestValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e CheckRequestValidationError) ErrorName() string { return "CheckRequestValidationError" } - -// Error satisfies the builtin error interface -func (e CheckRequestValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sCheckRequest.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = CheckRequestValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = CheckRequestValidationError{} - -// Validate checks the field values on DeniedHttpResponse with the rules -// defined in the proto definition for this message. If any rules are -// violated, an error is returned. -func (m *DeniedHttpResponse) Validate() error { - if m == nil { - return nil - } - - if m.GetStatus() == nil { - return DeniedHttpResponseValidationError{ - field: "Status", - reason: "value is required", - } - } - - if v, ok := interface{}(m.GetStatus()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return DeniedHttpResponseValidationError{ - field: "Status", - reason: "embedded message failed validation", - cause: err, - } - } - } - - for idx, item := range m.GetHeaders() { - _, _ = idx, item - - if v, ok := interface{}(item).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return DeniedHttpResponseValidationError{ - field: fmt.Sprintf("Headers[%v]", idx), - reason: "embedded message failed validation", - cause: err, - } - } - } - - } - - // no validation rules for Body - - return nil -} - -// DeniedHttpResponseValidationError is the validation error returned by -// DeniedHttpResponse.Validate if the designated constraints aren't met. -type DeniedHttpResponseValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e DeniedHttpResponseValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e DeniedHttpResponseValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e DeniedHttpResponseValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e DeniedHttpResponseValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e DeniedHttpResponseValidationError) ErrorName() string { - return "DeniedHttpResponseValidationError" -} - -// Error satisfies the builtin error interface -func (e DeniedHttpResponseValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sDeniedHttpResponse.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = DeniedHttpResponseValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = DeniedHttpResponseValidationError{} - -// Validate checks the field values on OkHttpResponse with the rules defined in -// the proto definition for this message. If any rules are violated, an error -// is returned. -func (m *OkHttpResponse) Validate() error { - if m == nil { - return nil - } - - for idx, item := range m.GetHeaders() { - _, _ = idx, item - - if v, ok := interface{}(item).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return OkHttpResponseValidationError{ - field: fmt.Sprintf("Headers[%v]", idx), - reason: "embedded message failed validation", - cause: err, - } - } - } - - } - - return nil -} - -// OkHttpResponseValidationError is the validation error returned by -// OkHttpResponse.Validate if the designated constraints aren't met. -type OkHttpResponseValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e OkHttpResponseValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e OkHttpResponseValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e OkHttpResponseValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e OkHttpResponseValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e OkHttpResponseValidationError) ErrorName() string { return "OkHttpResponseValidationError" } - -// Error satisfies the builtin error interface -func (e OkHttpResponseValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sOkHttpResponse.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = OkHttpResponseValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = OkHttpResponseValidationError{} - -// Validate checks the field values on CheckResponse with the rules defined in -// the proto definition for this message. If any rules are violated, an error -// is returned. -func (m *CheckResponse) Validate() error { - if m == nil { - return nil - } - - if v, ok := interface{}(m.GetStatus()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return CheckResponseValidationError{ - field: "Status", - reason: "embedded message failed validation", - cause: err, - } - } - } - - switch m.HttpResponse.(type) { - - case *CheckResponse_DeniedResponse: - - if v, ok := interface{}(m.GetDeniedResponse()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return CheckResponseValidationError{ - field: "DeniedResponse", - reason: "embedded message failed validation", - cause: err, - } - } - } - - case *CheckResponse_OkResponse: - - if v, ok := interface{}(m.GetOkResponse()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return CheckResponseValidationError{ - field: "OkResponse", - reason: "embedded message failed validation", - cause: err, - } - } - } - - } - - return nil -} - -// CheckResponseValidationError is the validation error returned by -// CheckResponse.Validate if the designated constraints aren't met. -type CheckResponseValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e CheckResponseValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e CheckResponseValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e CheckResponseValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e CheckResponseValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e CheckResponseValidationError) ErrorName() string { return "CheckResponseValidationError" } - -// Error satisfies the builtin error interface -func (e CheckResponseValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sCheckResponse.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = CheckResponseValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = CheckResponseValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3/ads.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3/ads.pb.go new file mode 100644 index 000000000..fd24faedf --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3/ads.pb.go @@ -0,0 +1,268 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/service/discovery/v3/ads.proto + +package envoy_service_discovery_v3 + +import ( + context "context" + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + proto "github.com/golang/protobuf/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type AdsDummy struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdsDummy) Reset() { *m = AdsDummy{} } +func (m *AdsDummy) String() string { return proto.CompactTextString(m) } +func (*AdsDummy) ProtoMessage() {} +func (*AdsDummy) Descriptor() ([]byte, []int) { + return fileDescriptor_1cbfe82b86373f2f, []int{0} +} + +func (m *AdsDummy) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdsDummy.Unmarshal(m, b) +} +func (m *AdsDummy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdsDummy.Marshal(b, m, deterministic) +} +func (m *AdsDummy) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdsDummy.Merge(m, src) +} +func (m *AdsDummy) XXX_Size() int { + return xxx_messageInfo_AdsDummy.Size(m) +} +func (m *AdsDummy) XXX_DiscardUnknown() { + xxx_messageInfo_AdsDummy.DiscardUnknown(m) +} + +var xxx_messageInfo_AdsDummy proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdsDummy)(nil), "envoy.service.discovery.v3.AdsDummy") +} + +func init() { + proto.RegisterFile("envoy/service/discovery/v3/ads.proto", fileDescriptor_1cbfe82b86373f2f) +} + +var fileDescriptor_1cbfe82b86373f2f = []byte{ + // 293 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x91, 0x4f, 0x4a, 0xf3, 0x40, + 0x18, 0xc6, 0xbf, 0xe9, 0xa2, 0x7c, 0xcc, 0x4a, 0xb2, 0xd2, 0x01, 0x05, 0xab, 0x42, 0x29, 0x3a, + 0xa3, 0x0d, 0xb8, 0x70, 0x97, 0x92, 0x03, 0x94, 0xf6, 0x04, 0x63, 0xf2, 0x12, 0x06, 0xcc, 0x4c, + 0x9c, 0x77, 0x32, 0x98, 0x8d, 0xb8, 0xb3, 0x67, 0xf0, 0x00, 0x1e, 0xc2, 0xbd, 0xe0, 0xd6, 0x1b, + 0x49, 0x92, 0xfe, 0x11, 0x6a, 0x83, 0xae, 0xe7, 0xf7, 0xfc, 0xde, 0x67, 0x78, 0xe8, 0x29, 0x68, + 0x6f, 0x2a, 0x81, 0x60, 0xbd, 0x4a, 0x40, 0xa4, 0x0a, 0x13, 0xe3, 0xc1, 0x56, 0xc2, 0x87, 0x42, + 0xa6, 0xc8, 0x0b, 0x6b, 0x9c, 0x09, 0x58, 0x43, 0xf1, 0x25, 0xc5, 0xd7, 0x14, 0xf7, 0x21, 0x1b, + 0x75, 0x18, 0x36, 0x60, 0xe3, 0x61, 0x87, 0x65, 0x5a, 0x48, 0x21, 0xb5, 0x36, 0x4e, 0x3a, 0x65, + 0x34, 0x0a, 0x74, 0xd2, 0x95, 0xcb, 0x33, 0xec, 0x78, 0xeb, 0xd9, 0x83, 0x45, 0x65, 0xb4, 0xd2, + 0x59, 0x8b, 0x0c, 0xae, 0xe9, 0xff, 0x28, 0xc5, 0xb8, 0xcc, 0xf3, 0xea, 0x66, 0xf4, 0xf2, 0xbe, + 0x38, 0x3a, 0xa3, 0x27, 0x3b, 0xcb, 0x8d, 0xf9, 0x8a, 0x1d, 0xbf, 0xf6, 0x28, 0x8b, 0xb2, 0xcc, + 0x42, 0x26, 0x1d, 0xa4, 0xf1, 0x8a, 0x99, 0xb7, 0xa1, 0xe0, 0x91, 0x1e, 0xcc, 0x9d, 0x05, 0x99, + 0x6f, 0x98, 0x19, 0xa0, 0x29, 0x6d, 0x02, 0x18, 0x9c, 0xf3, 0xdd, 0xdf, 0xe7, 0x6b, 0xd5, 0x0c, + 0xee, 0x4b, 0x40, 0xc7, 0x2e, 0x7e, 0x49, 0x63, 0x61, 0x34, 0xc2, 0xe0, 0xdf, 0x90, 0x5c, 0x92, + 0xe0, 0x99, 0xd0, 0xfd, 0x18, 0xee, 0x9c, 0xfc, 0xe9, 0xfe, 0x55, 0xa7, 0xb1, 0x4e, 0x6d, 0x95, + 0x18, 0xff, 0x25, 0xf2, 0xbd, 0xc9, 0x24, 0x7a, 0x7b, 0xfa, 0xf8, 0xec, 0xf7, 0xf6, 0x7a, 0x74, + 0xa8, 0x4c, 0x6b, 0x29, 0xac, 0x79, 0xa8, 0x3a, 0x84, 0x93, 0x7a, 0x92, 0x69, 0x3d, 0xcf, 0x94, + 0x2c, 0x08, 0xb9, 0xed, 0x37, 0x53, 0x85, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x31, 0x5e, 0x16, + 0x41, 0x5c, 0x02, 0x00, 0x00, +} + +// 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 + +// AggregatedDiscoveryServiceClient is the client API for AggregatedDiscoveryService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type AggregatedDiscoveryServiceClient interface { + StreamAggregatedResources(ctx context.Context, opts ...grpc.CallOption) (AggregatedDiscoveryService_StreamAggregatedResourcesClient, error) + DeltaAggregatedResources(ctx context.Context, opts ...grpc.CallOption) (AggregatedDiscoveryService_DeltaAggregatedResourcesClient, error) +} + +type aggregatedDiscoveryServiceClient struct { + cc *grpc.ClientConn +} + +func NewAggregatedDiscoveryServiceClient(cc *grpc.ClientConn) AggregatedDiscoveryServiceClient { + return &aggregatedDiscoveryServiceClient{cc} +} + +func (c *aggregatedDiscoveryServiceClient) StreamAggregatedResources(ctx context.Context, opts ...grpc.CallOption) (AggregatedDiscoveryService_StreamAggregatedResourcesClient, error) { + stream, err := c.cc.NewStream(ctx, &_AggregatedDiscoveryService_serviceDesc.Streams[0], "/envoy.service.discovery.v3.AggregatedDiscoveryService/StreamAggregatedResources", opts...) + if err != nil { + return nil, err + } + x := &aggregatedDiscoveryServiceStreamAggregatedResourcesClient{stream} + return x, nil +} + +type AggregatedDiscoveryService_StreamAggregatedResourcesClient interface { + Send(*DiscoveryRequest) error + Recv() (*DiscoveryResponse, error) + grpc.ClientStream +} + +type aggregatedDiscoveryServiceStreamAggregatedResourcesClient struct { + grpc.ClientStream +} + +func (x *aggregatedDiscoveryServiceStreamAggregatedResourcesClient) Send(m *DiscoveryRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *aggregatedDiscoveryServiceStreamAggregatedResourcesClient) Recv() (*DiscoveryResponse, error) { + m := new(DiscoveryResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *aggregatedDiscoveryServiceClient) DeltaAggregatedResources(ctx context.Context, opts ...grpc.CallOption) (AggregatedDiscoveryService_DeltaAggregatedResourcesClient, error) { + stream, err := c.cc.NewStream(ctx, &_AggregatedDiscoveryService_serviceDesc.Streams[1], "/envoy.service.discovery.v3.AggregatedDiscoveryService/DeltaAggregatedResources", opts...) + if err != nil { + return nil, err + } + x := &aggregatedDiscoveryServiceDeltaAggregatedResourcesClient{stream} + return x, nil +} + +type AggregatedDiscoveryService_DeltaAggregatedResourcesClient interface { + Send(*DeltaDiscoveryRequest) error + Recv() (*DeltaDiscoveryResponse, error) + grpc.ClientStream +} + +type aggregatedDiscoveryServiceDeltaAggregatedResourcesClient struct { + grpc.ClientStream +} + +func (x *aggregatedDiscoveryServiceDeltaAggregatedResourcesClient) Send(m *DeltaDiscoveryRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *aggregatedDiscoveryServiceDeltaAggregatedResourcesClient) Recv() (*DeltaDiscoveryResponse, error) { + m := new(DeltaDiscoveryResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +// AggregatedDiscoveryServiceServer is the server API for AggregatedDiscoveryService service. +type AggregatedDiscoveryServiceServer interface { + StreamAggregatedResources(AggregatedDiscoveryService_StreamAggregatedResourcesServer) error + DeltaAggregatedResources(AggregatedDiscoveryService_DeltaAggregatedResourcesServer) error +} + +// UnimplementedAggregatedDiscoveryServiceServer can be embedded to have forward compatible implementations. +type UnimplementedAggregatedDiscoveryServiceServer struct { +} + +func (*UnimplementedAggregatedDiscoveryServiceServer) StreamAggregatedResources(srv AggregatedDiscoveryService_StreamAggregatedResourcesServer) error { + return status.Errorf(codes.Unimplemented, "method StreamAggregatedResources not implemented") +} +func (*UnimplementedAggregatedDiscoveryServiceServer) DeltaAggregatedResources(srv AggregatedDiscoveryService_DeltaAggregatedResourcesServer) error { + return status.Errorf(codes.Unimplemented, "method DeltaAggregatedResources not implemented") +} + +func RegisterAggregatedDiscoveryServiceServer(s *grpc.Server, srv AggregatedDiscoveryServiceServer) { + s.RegisterService(&_AggregatedDiscoveryService_serviceDesc, srv) +} + +func _AggregatedDiscoveryService_StreamAggregatedResources_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(AggregatedDiscoveryServiceServer).StreamAggregatedResources(&aggregatedDiscoveryServiceStreamAggregatedResourcesServer{stream}) +} + +type AggregatedDiscoveryService_StreamAggregatedResourcesServer interface { + Send(*DiscoveryResponse) error + Recv() (*DiscoveryRequest, error) + grpc.ServerStream +} + +type aggregatedDiscoveryServiceStreamAggregatedResourcesServer struct { + grpc.ServerStream +} + +func (x *aggregatedDiscoveryServiceStreamAggregatedResourcesServer) Send(m *DiscoveryResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *aggregatedDiscoveryServiceStreamAggregatedResourcesServer) Recv() (*DiscoveryRequest, error) { + m := new(DiscoveryRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _AggregatedDiscoveryService_DeltaAggregatedResources_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(AggregatedDiscoveryServiceServer).DeltaAggregatedResources(&aggregatedDiscoveryServiceDeltaAggregatedResourcesServer{stream}) +} + +type AggregatedDiscoveryService_DeltaAggregatedResourcesServer interface { + Send(*DeltaDiscoveryResponse) error + Recv() (*DeltaDiscoveryRequest, error) + grpc.ServerStream +} + +type aggregatedDiscoveryServiceDeltaAggregatedResourcesServer struct { + grpc.ServerStream +} + +func (x *aggregatedDiscoveryServiceDeltaAggregatedResourcesServer) Send(m *DeltaDiscoveryResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *aggregatedDiscoveryServiceDeltaAggregatedResourcesServer) Recv() (*DeltaDiscoveryRequest, error) { + m := new(DeltaDiscoveryRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +var _AggregatedDiscoveryService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "envoy.service.discovery.v3.AggregatedDiscoveryService", + HandlerType: (*AggregatedDiscoveryServiceServer)(nil), + Methods: []grpc.MethodDesc{}, + Streams: []grpc.StreamDesc{ + { + StreamName: "StreamAggregatedResources", + Handler: _AggregatedDiscoveryService_StreamAggregatedResources_Handler, + ServerStreams: true, + ClientStreams: true, + }, + { + StreamName: "DeltaAggregatedResources", + Handler: _AggregatedDiscoveryService_DeltaAggregatedResources_Handler, + ServerStreams: true, + ClientStreams: true, + }, + }, + Metadata: "envoy/service/discovery/v3/ads.proto", +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3/ads.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3/ads.pb.validate.go new file mode 100644 index 000000000..b62a843a1 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3/ads.pb.validate.go @@ -0,0 +1,101 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/service/discovery/v3/ads.proto + +package envoy_service_discovery_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _ads_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on AdsDummy with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *AdsDummy) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// AdsDummyValidationError is the validation error returned by +// AdsDummy.Validate if the designated constraints aren't met. +type AdsDummyValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdsDummyValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdsDummyValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdsDummyValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdsDummyValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdsDummyValidationError) ErrorName() string { return "AdsDummyValidationError" } + +// Error satisfies the builtin error interface +func (e AdsDummyValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdsDummy.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdsDummyValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdsDummyValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3/discovery.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3/discovery.pb.go new file mode 100644 index 000000000..e6659a8a7 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3/discovery.pb.go @@ -0,0 +1,470 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/service/discovery/v3/discovery.proto + +package envoy_service_discovery_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" + proto "github.com/golang/protobuf/proto" + any "github.com/golang/protobuf/ptypes/any" + status "google.golang.org/genproto/googleapis/rpc/status" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type DiscoveryRequest struct { + VersionInfo string `protobuf:"bytes,1,opt,name=version_info,json=versionInfo,proto3" json:"version_info,omitempty"` + Node *v3.Node `protobuf:"bytes,2,opt,name=node,proto3" json:"node,omitempty"` + ResourceNames []string `protobuf:"bytes,3,rep,name=resource_names,json=resourceNames,proto3" json:"resource_names,omitempty"` + TypeUrl string `protobuf:"bytes,4,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"` + ResponseNonce string `protobuf:"bytes,5,opt,name=response_nonce,json=responseNonce,proto3" json:"response_nonce,omitempty"` + ErrorDetail *status.Status `protobuf:"bytes,6,opt,name=error_detail,json=errorDetail,proto3" json:"error_detail,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DiscoveryRequest) Reset() { *m = DiscoveryRequest{} } +func (m *DiscoveryRequest) String() string { return proto.CompactTextString(m) } +func (*DiscoveryRequest) ProtoMessage() {} +func (*DiscoveryRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_02592d4e1a886d33, []int{0} +} + +func (m *DiscoveryRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DiscoveryRequest.Unmarshal(m, b) +} +func (m *DiscoveryRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DiscoveryRequest.Marshal(b, m, deterministic) +} +func (m *DiscoveryRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DiscoveryRequest.Merge(m, src) +} +func (m *DiscoveryRequest) XXX_Size() int { + return xxx_messageInfo_DiscoveryRequest.Size(m) +} +func (m *DiscoveryRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DiscoveryRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DiscoveryRequest proto.InternalMessageInfo + +func (m *DiscoveryRequest) GetVersionInfo() string { + if m != nil { + return m.VersionInfo + } + return "" +} + +func (m *DiscoveryRequest) GetNode() *v3.Node { + if m != nil { + return m.Node + } + return nil +} + +func (m *DiscoveryRequest) GetResourceNames() []string { + if m != nil { + return m.ResourceNames + } + return nil +} + +func (m *DiscoveryRequest) GetTypeUrl() string { + if m != nil { + return m.TypeUrl + } + return "" +} + +func (m *DiscoveryRequest) GetResponseNonce() string { + if m != nil { + return m.ResponseNonce + } + return "" +} + +func (m *DiscoveryRequest) GetErrorDetail() *status.Status { + if m != nil { + return m.ErrorDetail + } + return nil +} + +type DiscoveryResponse struct { + VersionInfo string `protobuf:"bytes,1,opt,name=version_info,json=versionInfo,proto3" json:"version_info,omitempty"` + Resources []*any.Any `protobuf:"bytes,2,rep,name=resources,proto3" json:"resources,omitempty"` + Canary bool `protobuf:"varint,3,opt,name=canary,proto3" json:"canary,omitempty"` + TypeUrl string `protobuf:"bytes,4,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"` + Nonce string `protobuf:"bytes,5,opt,name=nonce,proto3" json:"nonce,omitempty"` + ControlPlane *v3.ControlPlane `protobuf:"bytes,6,opt,name=control_plane,json=controlPlane,proto3" json:"control_plane,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DiscoveryResponse) Reset() { *m = DiscoveryResponse{} } +func (m *DiscoveryResponse) String() string { return proto.CompactTextString(m) } +func (*DiscoveryResponse) ProtoMessage() {} +func (*DiscoveryResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_02592d4e1a886d33, []int{1} +} + +func (m *DiscoveryResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DiscoveryResponse.Unmarshal(m, b) +} +func (m *DiscoveryResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DiscoveryResponse.Marshal(b, m, deterministic) +} +func (m *DiscoveryResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DiscoveryResponse.Merge(m, src) +} +func (m *DiscoveryResponse) XXX_Size() int { + return xxx_messageInfo_DiscoveryResponse.Size(m) +} +func (m *DiscoveryResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DiscoveryResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DiscoveryResponse proto.InternalMessageInfo + +func (m *DiscoveryResponse) GetVersionInfo() string { + if m != nil { + return m.VersionInfo + } + return "" +} + +func (m *DiscoveryResponse) GetResources() []*any.Any { + if m != nil { + return m.Resources + } + return nil +} + +func (m *DiscoveryResponse) GetCanary() bool { + if m != nil { + return m.Canary + } + return false +} + +func (m *DiscoveryResponse) GetTypeUrl() string { + if m != nil { + return m.TypeUrl + } + return "" +} + +func (m *DiscoveryResponse) GetNonce() string { + if m != nil { + return m.Nonce + } + return "" +} + +func (m *DiscoveryResponse) GetControlPlane() *v3.ControlPlane { + if m != nil { + return m.ControlPlane + } + return nil +} + +type DeltaDiscoveryRequest struct { + Node *v3.Node `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"` + TypeUrl string `protobuf:"bytes,2,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"` + ResourceNamesSubscribe []string `protobuf:"bytes,3,rep,name=resource_names_subscribe,json=resourceNamesSubscribe,proto3" json:"resource_names_subscribe,omitempty"` + ResourceNamesUnsubscribe []string `protobuf:"bytes,4,rep,name=resource_names_unsubscribe,json=resourceNamesUnsubscribe,proto3" json:"resource_names_unsubscribe,omitempty"` + InitialResourceVersions map[string]string `protobuf:"bytes,5,rep,name=initial_resource_versions,json=initialResourceVersions,proto3" json:"initial_resource_versions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ResponseNonce string `protobuf:"bytes,6,opt,name=response_nonce,json=responseNonce,proto3" json:"response_nonce,omitempty"` + ErrorDetail *status.Status `protobuf:"bytes,7,opt,name=error_detail,json=errorDetail,proto3" json:"error_detail,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeltaDiscoveryRequest) Reset() { *m = DeltaDiscoveryRequest{} } +func (m *DeltaDiscoveryRequest) String() string { return proto.CompactTextString(m) } +func (*DeltaDiscoveryRequest) ProtoMessage() {} +func (*DeltaDiscoveryRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_02592d4e1a886d33, []int{2} +} + +func (m *DeltaDiscoveryRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeltaDiscoveryRequest.Unmarshal(m, b) +} +func (m *DeltaDiscoveryRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeltaDiscoveryRequest.Marshal(b, m, deterministic) +} +func (m *DeltaDiscoveryRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeltaDiscoveryRequest.Merge(m, src) +} +func (m *DeltaDiscoveryRequest) XXX_Size() int { + return xxx_messageInfo_DeltaDiscoveryRequest.Size(m) +} +func (m *DeltaDiscoveryRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeltaDiscoveryRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeltaDiscoveryRequest proto.InternalMessageInfo + +func (m *DeltaDiscoveryRequest) GetNode() *v3.Node { + if m != nil { + return m.Node + } + return nil +} + +func (m *DeltaDiscoveryRequest) GetTypeUrl() string { + if m != nil { + return m.TypeUrl + } + return "" +} + +func (m *DeltaDiscoveryRequest) GetResourceNamesSubscribe() []string { + if m != nil { + return m.ResourceNamesSubscribe + } + return nil +} + +func (m *DeltaDiscoveryRequest) GetResourceNamesUnsubscribe() []string { + if m != nil { + return m.ResourceNamesUnsubscribe + } + return nil +} + +func (m *DeltaDiscoveryRequest) GetInitialResourceVersions() map[string]string { + if m != nil { + return m.InitialResourceVersions + } + return nil +} + +func (m *DeltaDiscoveryRequest) GetResponseNonce() string { + if m != nil { + return m.ResponseNonce + } + return "" +} + +func (m *DeltaDiscoveryRequest) GetErrorDetail() *status.Status { + if m != nil { + return m.ErrorDetail + } + return nil +} + +type DeltaDiscoveryResponse struct { + SystemVersionInfo string `protobuf:"bytes,1,opt,name=system_version_info,json=systemVersionInfo,proto3" json:"system_version_info,omitempty"` + Resources []*Resource `protobuf:"bytes,2,rep,name=resources,proto3" json:"resources,omitempty"` + TypeUrl string `protobuf:"bytes,4,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"` + RemovedResources []string `protobuf:"bytes,6,rep,name=removed_resources,json=removedResources,proto3" json:"removed_resources,omitempty"` + Nonce string `protobuf:"bytes,5,opt,name=nonce,proto3" json:"nonce,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeltaDiscoveryResponse) Reset() { *m = DeltaDiscoveryResponse{} } +func (m *DeltaDiscoveryResponse) String() string { return proto.CompactTextString(m) } +func (*DeltaDiscoveryResponse) ProtoMessage() {} +func (*DeltaDiscoveryResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_02592d4e1a886d33, []int{3} +} + +func (m *DeltaDiscoveryResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeltaDiscoveryResponse.Unmarshal(m, b) +} +func (m *DeltaDiscoveryResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeltaDiscoveryResponse.Marshal(b, m, deterministic) +} +func (m *DeltaDiscoveryResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeltaDiscoveryResponse.Merge(m, src) +} +func (m *DeltaDiscoveryResponse) XXX_Size() int { + return xxx_messageInfo_DeltaDiscoveryResponse.Size(m) +} +func (m *DeltaDiscoveryResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DeltaDiscoveryResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DeltaDiscoveryResponse proto.InternalMessageInfo + +func (m *DeltaDiscoveryResponse) GetSystemVersionInfo() string { + if m != nil { + return m.SystemVersionInfo + } + return "" +} + +func (m *DeltaDiscoveryResponse) GetResources() []*Resource { + if m != nil { + return m.Resources + } + return nil +} + +func (m *DeltaDiscoveryResponse) GetTypeUrl() string { + if m != nil { + return m.TypeUrl + } + return "" +} + +func (m *DeltaDiscoveryResponse) GetRemovedResources() []string { + if m != nil { + return m.RemovedResources + } + return nil +} + +func (m *DeltaDiscoveryResponse) GetNonce() string { + if m != nil { + return m.Nonce + } + return "" +} + +type Resource struct { + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Aliases []string `protobuf:"bytes,4,rep,name=aliases,proto3" json:"aliases,omitempty"` + Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + Resource *any.Any `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Resource) Reset() { *m = Resource{} } +func (m *Resource) String() string { return proto.CompactTextString(m) } +func (*Resource) ProtoMessage() {} +func (*Resource) Descriptor() ([]byte, []int) { + return fileDescriptor_02592d4e1a886d33, []int{4} +} + +func (m *Resource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Resource.Unmarshal(m, b) +} +func (m *Resource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Resource.Marshal(b, m, deterministic) +} +func (m *Resource) XXX_Merge(src proto.Message) { + xxx_messageInfo_Resource.Merge(m, src) +} +func (m *Resource) XXX_Size() int { + return xxx_messageInfo_Resource.Size(m) +} +func (m *Resource) XXX_DiscardUnknown() { + xxx_messageInfo_Resource.DiscardUnknown(m) +} + +var xxx_messageInfo_Resource proto.InternalMessageInfo + +func (m *Resource) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Resource) GetAliases() []string { + if m != nil { + return m.Aliases + } + return nil +} + +func (m *Resource) GetVersion() string { + if m != nil { + return m.Version + } + return "" +} + +func (m *Resource) GetResource() *any.Any { + if m != nil { + return m.Resource + } + return nil +} + +func init() { + proto.RegisterType((*DiscoveryRequest)(nil), "envoy.service.discovery.v3.DiscoveryRequest") + proto.RegisterType((*DiscoveryResponse)(nil), "envoy.service.discovery.v3.DiscoveryResponse") + proto.RegisterType((*DeltaDiscoveryRequest)(nil), "envoy.service.discovery.v3.DeltaDiscoveryRequest") + proto.RegisterMapType((map[string]string)(nil), "envoy.service.discovery.v3.DeltaDiscoveryRequest.InitialResourceVersionsEntry") + proto.RegisterType((*DeltaDiscoveryResponse)(nil), "envoy.service.discovery.v3.DeltaDiscoveryResponse") + proto.RegisterType((*Resource)(nil), "envoy.service.discovery.v3.Resource") +} + +func init() { + proto.RegisterFile("envoy/service/discovery/v3/discovery.proto", fileDescriptor_02592d4e1a886d33) +} + +var fileDescriptor_02592d4e1a886d33 = []byte{ + // 781 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xcd, 0x6a, 0xdb, 0x4c, + 0x14, 0x45, 0xb2, 0xe3, 0xd8, 0xe3, 0x24, 0x38, 0xf3, 0xe5, 0x47, 0x31, 0xf9, 0x71, 0xfc, 0x25, + 0xe0, 0xa6, 0x30, 0x2a, 0x36, 0x85, 0x60, 0xba, 0x69, 0xea, 0x52, 0xd2, 0x85, 0x09, 0x0a, 0xc9, + 0x56, 0x8c, 0xe5, 0xb1, 0x19, 0xaa, 0xcc, 0xa8, 0x33, 0x92, 0xa8, 0x76, 0x5d, 0x96, 0x3e, 0x40, + 0x17, 0x5d, 0xb6, 0xcb, 0xbe, 0x41, 0xe9, 0xb6, 0xd0, 0x6d, 0xdf, 0xa8, 0x48, 0x1a, 0xf9, 0x27, + 0x51, 0x8c, 0x77, 0xba, 0x73, 0xce, 0xdc, 0xb9, 0xf7, 0xdc, 0x73, 0x05, 0xce, 0x08, 0x0b, 0x79, + 0x64, 0x4a, 0x22, 0x42, 0xea, 0x10, 0x73, 0x48, 0xa5, 0xc3, 0x43, 0x22, 0x22, 0x33, 0xec, 0x4c, + 0x03, 0xe4, 0x09, 0xee, 0x73, 0x58, 0x4f, 0xb8, 0x48, 0x71, 0xd1, 0x14, 0x0e, 0x3b, 0xf5, 0xa3, + 0x34, 0x8f, 0xc3, 0xd9, 0x88, 0x8e, 0x4d, 0x87, 0x0b, 0x12, 0x67, 0x18, 0x60, 0x49, 0xd2, 0xcb, + 0xf5, 0xbd, 0x31, 0xe7, 0x63, 0x97, 0x98, 0x49, 0x34, 0x08, 0x46, 0x26, 0x66, 0x2a, 0x6f, 0x7d, + 0x57, 0x41, 0xc2, 0x73, 0x4c, 0xe9, 0x63, 0x3f, 0x90, 0x0a, 0x38, 0x08, 0x86, 0x1e, 0x36, 0x31, + 0x63, 0xdc, 0xc7, 0x3e, 0xe5, 0x4c, 0xce, 0xc3, 0xc7, 0x0f, 0xe0, 0x90, 0x08, 0x49, 0x39, 0xa3, + 0x6c, 0x9c, 0x52, 0x9a, 0x3f, 0x74, 0x50, 0xeb, 0x65, 0x75, 0x5a, 0xe4, 0x7d, 0x40, 0xa4, 0x0f, + 0x8f, 0xc1, 0x9a, 0x22, 0xda, 0x94, 0x8d, 0xb8, 0xa1, 0x35, 0xb4, 0x56, 0xc5, 0xaa, 0xaa, 0xb3, + 0x4b, 0x36, 0xe2, 0x10, 0x81, 0x22, 0xe3, 0x43, 0x62, 0xe8, 0x0d, 0xad, 0x55, 0x6d, 0xd7, 0x51, + 0xda, 0x79, 0xda, 0x1d, 0x8a, 0xbb, 0x43, 0x61, 0x07, 0xf5, 0xf9, 0x90, 0x58, 0x09, 0x0f, 0x9e, + 0x82, 0x0d, 0x41, 0x24, 0x0f, 0x84, 0x43, 0x6c, 0x86, 0xef, 0x88, 0x34, 0x0a, 0x8d, 0x42, 0xab, + 0x62, 0xad, 0x67, 0xa7, 0xfd, 0xf8, 0x10, 0xee, 0x81, 0xb2, 0x1f, 0x79, 0xc4, 0x0e, 0x84, 0x6b, + 0x14, 0x93, 0x57, 0x57, 0xe3, 0xf8, 0x46, 0xb8, 0x2a, 0x83, 0xc7, 0x99, 0x24, 0x36, 0xe3, 0xcc, + 0x21, 0xc6, 0x4a, 0x42, 0x58, 0xcf, 0x4e, 0xfb, 0xf1, 0x21, 0x7c, 0x0e, 0xd6, 0x88, 0x10, 0x5c, + 0xd8, 0x43, 0xe2, 0x63, 0xea, 0x1a, 0xa5, 0xa4, 0x40, 0x88, 0x52, 0x09, 0x91, 0xf0, 0x1c, 0x74, + 0x9d, 0x68, 0x64, 0x55, 0x13, 0x5e, 0x2f, 0xa1, 0x75, 0x4f, 0xbe, 0xfe, 0xfe, 0x74, 0x78, 0x04, + 0x0e, 0xd2, 0x3e, 0xb0, 0x47, 0x51, 0xd8, 0x46, 0xf7, 0x85, 0x69, 0x7e, 0xd7, 0xc1, 0xe6, 0xcc, + 0x61, 0xfa, 0xee, 0x32, 0x72, 0xb5, 0x41, 0x25, 0x6b, 0x54, 0x1a, 0x7a, 0xa3, 0xd0, 0xaa, 0xb6, + 0xb7, 0xb2, 0x92, 0xb2, 0x81, 0xa3, 0x97, 0x2c, 0xb2, 0xa6, 0x34, 0xb8, 0x03, 0x4a, 0x0e, 0x66, + 0x58, 0x44, 0x46, 0xa1, 0xa1, 0xb5, 0xca, 0x96, 0x8a, 0x16, 0x69, 0xb4, 0x05, 0x56, 0x66, 0xa5, + 0x49, 0x03, 0xf8, 0x06, 0xac, 0x3b, 0x9c, 0xf9, 0x82, 0xbb, 0xb6, 0xe7, 0x62, 0x46, 0x94, 0x26, + 0xcd, 0xfc, 0xa1, 0xbd, 0x4a, 0xa9, 0x57, 0x31, 0xd3, 0x5a, 0x73, 0x66, 0xa2, 0xee, 0x69, 0x2c, + 0x52, 0x03, 0x1c, 0x3e, 0x26, 0x52, 0xaa, 0x47, 0xf3, 0x57, 0x11, 0x6c, 0xf7, 0x88, 0xeb, 0xe3, + 0x07, 0xc6, 0xca, 0x5c, 0xa3, 0x2d, 0xe9, 0x9a, 0xd9, 0x56, 0xf5, 0xf9, 0x56, 0xcf, 0x81, 0x31, + 0x6f, 0x28, 0x5b, 0x06, 0x03, 0xe9, 0x08, 0x3a, 0x20, 0xca, 0x5a, 0x3b, 0x73, 0xd6, 0xba, 0xce, + 0x50, 0xf8, 0x02, 0xd4, 0xef, 0xdd, 0x0c, 0xd8, 0xf4, 0x6e, 0x31, 0xb9, 0x6b, 0xcc, 0xdd, 0xbd, + 0x99, 0xe2, 0xf0, 0xb3, 0x06, 0xf6, 0x28, 0xa3, 0x3e, 0xc5, 0xae, 0x3d, 0x49, 0xa3, 0x46, 0x2d, + 0x8d, 0x95, 0x64, 0xb4, 0x7d, 0xf4, 0xf8, 0x8f, 0x00, 0xe5, 0x2a, 0x83, 0x2e, 0xd3, 0x94, 0x96, + 0xca, 0x78, 0xab, 0x12, 0xbe, 0x66, 0xbe, 0x88, 0xac, 0x5d, 0x9a, 0x8f, 0xe6, 0xec, 0x44, 0x69, + 0x99, 0x9d, 0x58, 0x5d, 0x6a, 0x27, 0xea, 0x6f, 0xc1, 0xfe, 0xa2, 0xb2, 0x60, 0x0d, 0x14, 0xde, + 0x91, 0x48, 0xd9, 0x3d, 0xfe, 0x8c, 0xfd, 0x17, 0x62, 0x37, 0x20, 0x6a, 0x58, 0x69, 0xd0, 0xd5, + 0xcf, 0xb5, 0xee, 0x93, 0xd8, 0x3a, 0x27, 0xa0, 0x39, 0x6f, 0x9d, 0x3c, 0x29, 0x9a, 0x5f, 0x74, + 0xb0, 0x73, 0x1f, 0x51, 0x9b, 0x86, 0xc0, 0x7f, 0x32, 0x92, 0x3e, 0xb9, 0xb3, 0x73, 0x16, 0x6e, + 0x33, 0x85, 0x6e, 0x67, 0xd6, 0xee, 0xe2, 0xe1, 0xda, 0x9d, 0x2c, 0x9a, 0x4d, 0xd6, 0xe7, 0xec, + 0x1a, 0x2e, 0x58, 0xb7, 0xa7, 0x60, 0x53, 0x90, 0x3b, 0x1e, 0x92, 0xa1, 0x3d, 0x7d, 0xa6, 0x94, + 0x18, 0xa8, 0xa6, 0x00, 0x6b, 0x92, 0x27, 0x77, 0x37, 0xbb, 0x67, 0xb1, 0x2e, 0xa7, 0xe0, 0xff, + 0x85, 0xba, 0xa8, 0xbd, 0xfa, 0xa6, 0x81, 0x72, 0x96, 0x0f, 0x42, 0x50, 0x8c, 0xcd, 0x9b, 0xfc, + 0x1b, 0x2a, 0x56, 0xf2, 0x0d, 0x0d, 0xb0, 0x8a, 0x5d, 0x8a, 0x25, 0x91, 0xca, 0xc6, 0x59, 0x18, + 0x23, 0x4a, 0x31, 0x25, 0x56, 0x16, 0xc2, 0x67, 0xa0, 0x9c, 0xd5, 0xae, 0x7e, 0xe6, 0xf9, 0x3f, + 0xa6, 0x09, 0xab, 0xbb, 0x1f, 0x97, 0xbc, 0x0b, 0xb6, 0xe7, 0x4a, 0xce, 0xea, 0xba, 0xe8, 0xfd, + 0xfc, 0xf8, 0xe7, 0x6f, 0x49, 0xaf, 0xe9, 0xa0, 0x45, 0x79, 0xaa, 0xb5, 0x27, 0xf8, 0x87, 0x68, + 0x81, 0xec, 0x17, 0x1b, 0x93, 0x5e, 0xaf, 0xe2, 0x27, 0xaf, 0xb4, 0x41, 0x29, 0x79, 0xbb, 0xf3, + 0x2f, 0x00, 0x00, 0xff, 0xff, 0xc5, 0xbb, 0x0b, 0xfc, 0x7e, 0x07, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3/discovery.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3/discovery.pb.validate.go new file mode 100644 index 000000000..5842ccf26 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3/discovery.pb.validate.go @@ -0,0 +1,487 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/service/discovery/v3/discovery.proto + +package envoy_service_discovery_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _discovery_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on DiscoveryRequest with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *DiscoveryRequest) Validate() error { + if m == nil { + return nil + } + + // no validation rules for VersionInfo + + if v, ok := interface{}(m.GetNode()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DiscoveryRequestValidationError{ + field: "Node", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for TypeUrl + + // no validation rules for ResponseNonce + + if v, ok := interface{}(m.GetErrorDetail()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DiscoveryRequestValidationError{ + field: "ErrorDetail", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// DiscoveryRequestValidationError is the validation error returned by +// DiscoveryRequest.Validate if the designated constraints aren't met. +type DiscoveryRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DiscoveryRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DiscoveryRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DiscoveryRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DiscoveryRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DiscoveryRequestValidationError) ErrorName() string { return "DiscoveryRequestValidationError" } + +// Error satisfies the builtin error interface +func (e DiscoveryRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDiscoveryRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DiscoveryRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DiscoveryRequestValidationError{} + +// Validate checks the field values on DiscoveryResponse with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *DiscoveryResponse) Validate() error { + if m == nil { + return nil + } + + // no validation rules for VersionInfo + + for idx, item := range m.GetResources() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DiscoveryResponseValidationError{ + field: fmt.Sprintf("Resources[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Canary + + // no validation rules for TypeUrl + + // no validation rules for Nonce + + if v, ok := interface{}(m.GetControlPlane()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DiscoveryResponseValidationError{ + field: "ControlPlane", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// DiscoveryResponseValidationError is the validation error returned by +// DiscoveryResponse.Validate if the designated constraints aren't met. +type DiscoveryResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DiscoveryResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DiscoveryResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DiscoveryResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DiscoveryResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DiscoveryResponseValidationError) ErrorName() string { + return "DiscoveryResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e DiscoveryResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDiscoveryResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DiscoveryResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DiscoveryResponseValidationError{} + +// Validate checks the field values on DeltaDiscoveryRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *DeltaDiscoveryRequest) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetNode()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DeltaDiscoveryRequestValidationError{ + field: "Node", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for TypeUrl + + // no validation rules for InitialResourceVersions + + // no validation rules for ResponseNonce + + if v, ok := interface{}(m.GetErrorDetail()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DeltaDiscoveryRequestValidationError{ + field: "ErrorDetail", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// DeltaDiscoveryRequestValidationError is the validation error returned by +// DeltaDiscoveryRequest.Validate if the designated constraints aren't met. +type DeltaDiscoveryRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeltaDiscoveryRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeltaDiscoveryRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeltaDiscoveryRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeltaDiscoveryRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeltaDiscoveryRequestValidationError) ErrorName() string { + return "DeltaDiscoveryRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e DeltaDiscoveryRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDeltaDiscoveryRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeltaDiscoveryRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeltaDiscoveryRequestValidationError{} + +// Validate checks the field values on DeltaDiscoveryResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *DeltaDiscoveryResponse) Validate() error { + if m == nil { + return nil + } + + // no validation rules for SystemVersionInfo + + for idx, item := range m.GetResources() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DeltaDiscoveryResponseValidationError{ + field: fmt.Sprintf("Resources[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for TypeUrl + + // no validation rules for Nonce + + return nil +} + +// DeltaDiscoveryResponseValidationError is the validation error returned by +// DeltaDiscoveryResponse.Validate if the designated constraints aren't met. +type DeltaDiscoveryResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeltaDiscoveryResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeltaDiscoveryResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeltaDiscoveryResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeltaDiscoveryResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeltaDiscoveryResponseValidationError) ErrorName() string { + return "DeltaDiscoveryResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e DeltaDiscoveryResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDeltaDiscoveryResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeltaDiscoveryResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeltaDiscoveryResponseValidationError{} + +// Validate checks the field values on Resource with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Resource) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Name + + // no validation rules for Version + + if v, ok := interface{}(m.GetResource()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ResourceValidationError{ + field: "Resource", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// ResourceValidationError is the validation error returned by +// Resource.Validate if the designated constraints aren't met. +type ResourceValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ResourceValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ResourceValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ResourceValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ResourceValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ResourceValidationError) ErrorName() string { return "ResourceValidationError" } + +// Error satisfies the builtin error interface +func (e ResourceValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sResource.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ResourceValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ResourceValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/metadata.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/metadata.pb.go new file mode 100644 index 000000000..09df9607f --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/metadata.pb.go @@ -0,0 +1,178 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/type/matcher/v3/metadata.proto + +package envoy_type_matcher_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type MetadataMatcher struct { + Filter string `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"` + Path []*MetadataMatcher_PathSegment `protobuf:"bytes,2,rep,name=path,proto3" json:"path,omitempty"` + Value *ValueMatcher `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MetadataMatcher) Reset() { *m = MetadataMatcher{} } +func (m *MetadataMatcher) String() string { return proto.CompactTextString(m) } +func (*MetadataMatcher) ProtoMessage() {} +func (*MetadataMatcher) Descriptor() ([]byte, []int) { + return fileDescriptor_ea39646b3de596af, []int{0} +} + +func (m *MetadataMatcher) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MetadataMatcher.Unmarshal(m, b) +} +func (m *MetadataMatcher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MetadataMatcher.Marshal(b, m, deterministic) +} +func (m *MetadataMatcher) XXX_Merge(src proto.Message) { + xxx_messageInfo_MetadataMatcher.Merge(m, src) +} +func (m *MetadataMatcher) XXX_Size() int { + return xxx_messageInfo_MetadataMatcher.Size(m) +} +func (m *MetadataMatcher) XXX_DiscardUnknown() { + xxx_messageInfo_MetadataMatcher.DiscardUnknown(m) +} + +var xxx_messageInfo_MetadataMatcher proto.InternalMessageInfo + +func (m *MetadataMatcher) GetFilter() string { + if m != nil { + return m.Filter + } + return "" +} + +func (m *MetadataMatcher) GetPath() []*MetadataMatcher_PathSegment { + if m != nil { + return m.Path + } + return nil +} + +func (m *MetadataMatcher) GetValue() *ValueMatcher { + if m != nil { + return m.Value + } + return nil +} + +type MetadataMatcher_PathSegment struct { + // Types that are valid to be assigned to Segment: + // *MetadataMatcher_PathSegment_Key + Segment isMetadataMatcher_PathSegment_Segment `protobuf_oneof:"segment"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MetadataMatcher_PathSegment) Reset() { *m = MetadataMatcher_PathSegment{} } +func (m *MetadataMatcher_PathSegment) String() string { return proto.CompactTextString(m) } +func (*MetadataMatcher_PathSegment) ProtoMessage() {} +func (*MetadataMatcher_PathSegment) Descriptor() ([]byte, []int) { + return fileDescriptor_ea39646b3de596af, []int{0, 0} +} + +func (m *MetadataMatcher_PathSegment) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MetadataMatcher_PathSegment.Unmarshal(m, b) +} +func (m *MetadataMatcher_PathSegment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MetadataMatcher_PathSegment.Marshal(b, m, deterministic) +} +func (m *MetadataMatcher_PathSegment) XXX_Merge(src proto.Message) { + xxx_messageInfo_MetadataMatcher_PathSegment.Merge(m, src) +} +func (m *MetadataMatcher_PathSegment) XXX_Size() int { + return xxx_messageInfo_MetadataMatcher_PathSegment.Size(m) +} +func (m *MetadataMatcher_PathSegment) XXX_DiscardUnknown() { + xxx_messageInfo_MetadataMatcher_PathSegment.DiscardUnknown(m) +} + +var xxx_messageInfo_MetadataMatcher_PathSegment proto.InternalMessageInfo + +type isMetadataMatcher_PathSegment_Segment interface { + isMetadataMatcher_PathSegment_Segment() +} + +type MetadataMatcher_PathSegment_Key struct { + Key string `protobuf:"bytes,1,opt,name=key,proto3,oneof"` +} + +func (*MetadataMatcher_PathSegment_Key) isMetadataMatcher_PathSegment_Segment() {} + +func (m *MetadataMatcher_PathSegment) GetSegment() isMetadataMatcher_PathSegment_Segment { + if m != nil { + return m.Segment + } + return nil +} + +func (m *MetadataMatcher_PathSegment) GetKey() string { + if x, ok := m.GetSegment().(*MetadataMatcher_PathSegment_Key); ok { + return x.Key + } + return "" +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*MetadataMatcher_PathSegment) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*MetadataMatcher_PathSegment_Key)(nil), + } +} + +func init() { + proto.RegisterType((*MetadataMatcher)(nil), "envoy.type.matcher.v3.MetadataMatcher") + proto.RegisterType((*MetadataMatcher_PathSegment)(nil), "envoy.type.matcher.v3.MetadataMatcher.PathSegment") +} + +func init() { + proto.RegisterFile("envoy/type/matcher/v3/metadata.proto", fileDescriptor_ea39646b3de596af) +} + +var fileDescriptor_ea39646b3de596af = []byte{ + // 351 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x91, 0x3f, 0x4b, 0xc3, 0x40, + 0x18, 0xc6, 0xbd, 0xa4, 0xff, 0xbc, 0xa2, 0x96, 0x80, 0x58, 0x2a, 0x6a, 0xfa, 0x67, 0xa8, 0xcb, + 0x9d, 0xb4, 0xb8, 0x74, 0x70, 0x38, 0x17, 0x97, 0x42, 0x88, 0xe0, 0x7e, 0xda, 0xb3, 0x0d, 0xb6, + 0x77, 0x31, 0x79, 0x1b, 0xcc, 0xe6, 0x28, 0x8e, 0x8e, 0x7e, 0x14, 0x77, 0xc1, 0xd5, 0x4f, 0xe1, + 0x57, 0x90, 0x4e, 0x92, 0xe4, 0x0a, 0x52, 0xa3, 0x6e, 0xc7, 0xbd, 0xcf, 0xf3, 0x7b, 0xde, 0x87, + 0x17, 0x77, 0x84, 0x8c, 0x54, 0x4c, 0x21, 0xf6, 0x05, 0x9d, 0x71, 0xb8, 0x9a, 0x88, 0x80, 0x46, + 0x7d, 0x3a, 0x13, 0xc0, 0x47, 0x1c, 0x38, 0xf1, 0x03, 0x05, 0xca, 0xda, 0x4e, 0x55, 0x24, 0x51, + 0x11, 0xad, 0x22, 0x51, 0xbf, 0xd1, 0xcc, 0x37, 0x47, 0x7c, 0x3a, 0x17, 0x99, 0xb3, 0xb1, 0x37, + 0x1f, 0xf9, 0x9c, 0x72, 0x29, 0x15, 0x70, 0xf0, 0x94, 0x0c, 0x69, 0x08, 0x1c, 0xe6, 0xa1, 0x1e, + 0x37, 0x7f, 0x8c, 0x23, 0x11, 0x84, 0x9e, 0x92, 0x9e, 0x1c, 0x6b, 0xc9, 0x4e, 0xc4, 0xa7, 0xde, + 0x88, 0x83, 0xa0, 0xcb, 0x47, 0x36, 0x68, 0x7d, 0x18, 0x78, 0x6b, 0xa8, 0xf7, 0x1c, 0x66, 0xe9, + 0xd6, 0x01, 0x2e, 0x5d, 0x7b, 0x53, 0x10, 0x41, 0x1d, 0xd9, 0xa8, 0xbb, 0xce, 0xca, 0x0b, 0x56, + 0x08, 0x0c, 0x1b, 0xb9, 0xfa, 0xdb, 0x72, 0x70, 0xc1, 0xe7, 0x30, 0xa9, 0x1b, 0xb6, 0xd9, 0xad, + 0xf6, 0x7a, 0x24, 0xb7, 0x18, 0x59, 0xc1, 0x12, 0x87, 0xc3, 0xe4, 0x5c, 0x8c, 0x67, 0x42, 0x02, + 0xab, 0x2c, 0x58, 0xf1, 0x09, 0x19, 0x15, 0xe4, 0xa6, 0x24, 0xeb, 0x14, 0x17, 0xd3, 0xc2, 0x75, + 0xd3, 0x46, 0xdd, 0x6a, 0xaf, 0xfd, 0x0b, 0xf2, 0x22, 0xd1, 0x68, 0x5e, 0xca, 0x78, 0x44, 0x46, + 0x0d, 0xb9, 0x99, 0xb7, 0x71, 0x8b, 0xab, 0xdf, 0x32, 0xac, 0x5d, 0x6c, 0xde, 0x88, 0x78, 0xa5, + 0xc3, 0xd9, 0x9a, 0x9b, 0xfc, 0x0e, 0x8e, 0x9f, 0x5f, 0x1f, 0xf6, 0x8f, 0x70, 0x5e, 0xce, 0x5f, + 0x7b, 0x6f, 0xe2, 0x72, 0xa8, 0xf1, 0xe6, 0x27, 0x43, 0x83, 0xc3, 0x04, 0xd3, 0xc1, 0xad, 0xff, + 0x31, 0xec, 0xe4, 0xe5, 0xfe, 0xed, 0xbd, 0x64, 0xd4, 0x0c, 0xdc, 0xf6, 0x54, 0x96, 0xeb, 0x07, + 0xea, 0x2e, 0xce, 0xaf, 0xca, 0x36, 0x96, 0x7e, 0x27, 0xb9, 0x93, 0x83, 0x2e, 0x4b, 0xe9, 0xc1, + 0xfa, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x03, 0x1e, 0xda, 0xc6, 0x6d, 0x02, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/metadata.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/metadata.pb.validate.go new file mode 100644 index 000000000..9d0699023 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/metadata.pb.validate.go @@ -0,0 +1,235 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/type/matcher/v3/metadata.proto + +package envoy_type_matcher_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _metadata_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on MetadataMatcher with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *MetadataMatcher) Validate() error { + if m == nil { + return nil + } + + if len(m.GetFilter()) < 1 { + return MetadataMatcherValidationError{ + field: "Filter", + reason: "value length must be at least 1 bytes", + } + } + + if len(m.GetPath()) < 1 { + return MetadataMatcherValidationError{ + field: "Path", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetPath() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return MetadataMatcherValidationError{ + field: fmt.Sprintf("Path[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if m.GetValue() == nil { + return MetadataMatcherValidationError{ + field: "Value", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetValue()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return MetadataMatcherValidationError{ + field: "Value", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// MetadataMatcherValidationError is the validation error returned by +// MetadataMatcher.Validate if the designated constraints aren't met. +type MetadataMatcherValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MetadataMatcherValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MetadataMatcherValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MetadataMatcherValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MetadataMatcherValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MetadataMatcherValidationError) ErrorName() string { return "MetadataMatcherValidationError" } + +// Error satisfies the builtin error interface +func (e MetadataMatcherValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMetadataMatcher.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MetadataMatcherValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MetadataMatcherValidationError{} + +// Validate checks the field values on MetadataMatcher_PathSegment with the +// rules defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *MetadataMatcher_PathSegment) Validate() error { + if m == nil { + return nil + } + + switch m.Segment.(type) { + + case *MetadataMatcher_PathSegment_Key: + + if len(m.GetKey()) < 1 { + return MetadataMatcher_PathSegmentValidationError{ + field: "Key", + reason: "value length must be at least 1 bytes", + } + } + + default: + return MetadataMatcher_PathSegmentValidationError{ + field: "Segment", + reason: "value is required", + } + + } + + return nil +} + +// MetadataMatcher_PathSegmentValidationError is the validation error returned +// by MetadataMatcher_PathSegment.Validate if the designated constraints +// aren't met. +type MetadataMatcher_PathSegmentValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MetadataMatcher_PathSegmentValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MetadataMatcher_PathSegmentValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MetadataMatcher_PathSegmentValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MetadataMatcher_PathSegmentValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MetadataMatcher_PathSegmentValidationError) ErrorName() string { + return "MetadataMatcher_PathSegmentValidationError" +} + +// Error satisfies the builtin error interface +func (e MetadataMatcher_PathSegmentValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMetadataMatcher_PathSegment.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MetadataMatcher_PathSegmentValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MetadataMatcher_PathSegmentValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/node.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/node.pb.go new file mode 100644 index 000000000..c4108a245 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/node.pb.go @@ -0,0 +1,96 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/type/matcher/v3/node.proto + +package envoy_type_matcher_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type NodeMatcher struct { + NodeId *StringMatcher `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` + NodeMetadatas []*StructMatcher `protobuf:"bytes,2,rep,name=node_metadatas,json=nodeMetadatas,proto3" json:"node_metadatas,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeMatcher) Reset() { *m = NodeMatcher{} } +func (m *NodeMatcher) String() string { return proto.CompactTextString(m) } +func (*NodeMatcher) ProtoMessage() {} +func (*NodeMatcher) Descriptor() ([]byte, []int) { + return fileDescriptor_ccc0c3eef80eb4fc, []int{0} +} + +func (m *NodeMatcher) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeMatcher.Unmarshal(m, b) +} +func (m *NodeMatcher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeMatcher.Marshal(b, m, deterministic) +} +func (m *NodeMatcher) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeMatcher.Merge(m, src) +} +func (m *NodeMatcher) XXX_Size() int { + return xxx_messageInfo_NodeMatcher.Size(m) +} +func (m *NodeMatcher) XXX_DiscardUnknown() { + xxx_messageInfo_NodeMatcher.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeMatcher proto.InternalMessageInfo + +func (m *NodeMatcher) GetNodeId() *StringMatcher { + if m != nil { + return m.NodeId + } + return nil +} + +func (m *NodeMatcher) GetNodeMetadatas() []*StructMatcher { + if m != nil { + return m.NodeMetadatas + } + return nil +} + +func init() { + proto.RegisterType((*NodeMatcher)(nil), "envoy.type.matcher.v3.NodeMatcher") +} + +func init() { proto.RegisterFile("envoy/type/matcher/v3/node.proto", fileDescriptor_ccc0c3eef80eb4fc) } + +var fileDescriptor_ccc0c3eef80eb4fc = []byte{ + // 259 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x48, 0xcd, 0x2b, 0xcb, + 0xaf, 0xd4, 0x2f, 0xa9, 0x2c, 0x48, 0xd5, 0xcf, 0x4d, 0x2c, 0x49, 0xce, 0x48, 0x2d, 0xd2, 0x2f, + 0x33, 0xd6, 0xcf, 0xcb, 0x4f, 0x49, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x05, 0xab, + 0xd0, 0x03, 0xa9, 0xd0, 0x83, 0xaa, 0xd0, 0x2b, 0x33, 0x96, 0x52, 0xc2, 0xae, 0xb1, 0xb8, 0xa4, + 0x28, 0x33, 0x2f, 0x1d, 0xa2, 0x15, 0x8f, 0x9a, 0xd2, 0xe4, 0x12, 0xa8, 0x1a, 0xd9, 0xd2, 0x94, + 0x82, 0x44, 0xfd, 0xc4, 0xbc, 0xbc, 0xfc, 0x92, 0xc4, 0x92, 0xcc, 0xfc, 0xbc, 0x62, 0xfd, 0xe2, + 0x92, 0xc4, 0x92, 0xd2, 0x62, 0xa8, 0xb4, 0x22, 0x86, 0x74, 0x59, 0x6a, 0x51, 0x71, 0x66, 0x7e, + 0x1e, 0xdc, 0x16, 0xa5, 0x03, 0x8c, 0x5c, 0xdc, 0x7e, 0xf9, 0x29, 0xa9, 0xbe, 0x10, 0x1b, 0x84, + 0x6c, 0xb9, 0xd8, 0x41, 0xce, 0x8f, 0xcf, 0x4c, 0x91, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x36, 0x52, + 0xd1, 0xc3, 0xea, 0x05, 0xbd, 0x60, 0xb0, 0x5b, 0xa1, 0xda, 0x82, 0xd8, 0x40, 0x9a, 0x3c, 0x53, + 0x84, 0xbc, 0xb9, 0xf8, 0xc0, 0xda, 0x73, 0x53, 0x4b, 0x12, 0x53, 0x12, 0x4b, 0x12, 0x8b, 0x25, + 0x98, 0x14, 0x98, 0xf1, 0x9b, 0x52, 0x9a, 0x5c, 0x02, 0x33, 0x85, 0x17, 0xa4, 0xd7, 0x17, 0xa6, + 0xd5, 0x4a, 0x75, 0xd6, 0xd1, 0x0e, 0x39, 0x05, 0x2e, 0x39, 0x2c, 0x5a, 0x91, 0x9c, 0xec, 0x64, + 0xb5, 0xab, 0xe1, 0xc4, 0x45, 0x36, 0x26, 0x01, 0x26, 0x2e, 0xe5, 0xcc, 0x7c, 0x88, 0x3d, 0x05, + 0x45, 0xf9, 0x15, 0x95, 0xd8, 0xad, 0x74, 0xe2, 0x04, 0xe9, 0x0d, 0x00, 0x79, 0x3e, 0x80, 0x31, + 0x89, 0x0d, 0x1c, 0x0a, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2a, 0x5e, 0x40, 0xe7, 0xca, + 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/node.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/node.pb.validate.go new file mode 100644 index 000000000..30eef4f65 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/node.pb.validate.go @@ -0,0 +1,127 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/type/matcher/v3/node.proto + +package envoy_type_matcher_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _node_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on NodeMatcher with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *NodeMatcher) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetNodeId()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return NodeMatcherValidationError{ + field: "NodeId", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetNodeMetadatas() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return NodeMatcherValidationError{ + field: fmt.Sprintf("NodeMetadatas[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// NodeMatcherValidationError is the validation error returned by +// NodeMatcher.Validate if the designated constraints aren't met. +type NodeMatcherValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e NodeMatcherValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e NodeMatcherValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e NodeMatcherValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e NodeMatcherValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e NodeMatcherValidationError) ErrorName() string { return "NodeMatcherValidationError" } + +// Error satisfies the builtin error interface +func (e NodeMatcherValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sNodeMatcher.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = NodeMatcherValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = NodeMatcherValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/number.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/number.pb.go new file mode 100644 index 000000000..e5419cb90 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/number.pb.go @@ -0,0 +1,132 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/type/matcher/v3/number.proto + +package envoy_type_matcher_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/type/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type DoubleMatcher struct { + // Types that are valid to be assigned to MatchPattern: + // *DoubleMatcher_Range + // *DoubleMatcher_Exact + MatchPattern isDoubleMatcher_MatchPattern `protobuf_oneof:"match_pattern"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DoubleMatcher) Reset() { *m = DoubleMatcher{} } +func (m *DoubleMatcher) String() string { return proto.CompactTextString(m) } +func (*DoubleMatcher) ProtoMessage() {} +func (*DoubleMatcher) Descriptor() ([]byte, []int) { + return fileDescriptor_9de077d68a31b59d, []int{0} +} + +func (m *DoubleMatcher) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DoubleMatcher.Unmarshal(m, b) +} +func (m *DoubleMatcher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DoubleMatcher.Marshal(b, m, deterministic) +} +func (m *DoubleMatcher) XXX_Merge(src proto.Message) { + xxx_messageInfo_DoubleMatcher.Merge(m, src) +} +func (m *DoubleMatcher) XXX_Size() int { + return xxx_messageInfo_DoubleMatcher.Size(m) +} +func (m *DoubleMatcher) XXX_DiscardUnknown() { + xxx_messageInfo_DoubleMatcher.DiscardUnknown(m) +} + +var xxx_messageInfo_DoubleMatcher proto.InternalMessageInfo + +type isDoubleMatcher_MatchPattern interface { + isDoubleMatcher_MatchPattern() +} + +type DoubleMatcher_Range struct { + Range *v3.DoubleRange `protobuf:"bytes,1,opt,name=range,proto3,oneof"` +} + +type DoubleMatcher_Exact struct { + Exact float64 `protobuf:"fixed64,2,opt,name=exact,proto3,oneof"` +} + +func (*DoubleMatcher_Range) isDoubleMatcher_MatchPattern() {} + +func (*DoubleMatcher_Exact) isDoubleMatcher_MatchPattern() {} + +func (m *DoubleMatcher) GetMatchPattern() isDoubleMatcher_MatchPattern { + if m != nil { + return m.MatchPattern + } + return nil +} + +func (m *DoubleMatcher) GetRange() *v3.DoubleRange { + if x, ok := m.GetMatchPattern().(*DoubleMatcher_Range); ok { + return x.Range + } + return nil +} + +func (m *DoubleMatcher) GetExact() float64 { + if x, ok := m.GetMatchPattern().(*DoubleMatcher_Exact); ok { + return x.Exact + } + return 0 +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*DoubleMatcher) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*DoubleMatcher_Range)(nil), + (*DoubleMatcher_Exact)(nil), + } +} + +func init() { + proto.RegisterType((*DoubleMatcher)(nil), "envoy.type.matcher.v3.DoubleMatcher") +} + +func init() { proto.RegisterFile("envoy/type/matcher/v3/number.proto", fileDescriptor_9de077d68a31b59d) } + +var fileDescriptor_9de077d68a31b59d = []byte{ + // 280 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x4a, 0xcd, 0x2b, 0xcb, + 0xaf, 0xd4, 0x2f, 0xa9, 0x2c, 0x48, 0xd5, 0xcf, 0x4d, 0x2c, 0x49, 0xce, 0x48, 0x2d, 0xd2, 0x2f, + 0x33, 0xd6, 0xcf, 0x2b, 0xcd, 0x4d, 0x4a, 0x2d, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, + 0x05, 0xab, 0xd1, 0x03, 0xa9, 0xd1, 0x83, 0xaa, 0xd1, 0x2b, 0x33, 0x96, 0x92, 0x44, 0xd2, 0x5a, + 0x66, 0xac, 0x5f, 0x94, 0x98, 0x97, 0x9e, 0x0a, 0xd1, 0x21, 0x25, 0x5b, 0x9a, 0x52, 0x90, 0xa8, + 0x9f, 0x98, 0x97, 0x97, 0x5f, 0x92, 0x58, 0x92, 0x99, 0x9f, 0x57, 0xac, 0x5f, 0x5c, 0x92, 0x58, + 0x52, 0x5a, 0x0c, 0x95, 0x56, 0xc4, 0x90, 0x2e, 0x4b, 0x2d, 0x2a, 0xce, 0xcc, 0xcf, 0xcb, 0xcc, + 0x4b, 0x87, 0x2a, 0x11, 0x2f, 0x4b, 0xcc, 0xc9, 0x4c, 0x49, 0x2c, 0x49, 0xd5, 0x87, 0x31, 0x20, + 0x12, 0x4a, 0xb3, 0x18, 0xb9, 0x78, 0x5d, 0xf2, 0x4b, 0x93, 0x72, 0x52, 0x7d, 0x21, 0x4e, 0x11, + 0x32, 0xe2, 0x62, 0x05, 0xdb, 0x2d, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x6d, 0x24, 0xa5, 0x87, 0xe4, + 0xdc, 0x32, 0x63, 0x3d, 0x88, 0xe2, 0x20, 0x90, 0x0a, 0x0f, 0x86, 0x20, 0x88, 0x52, 0x21, 0x31, + 0x2e, 0xd6, 0xd4, 0x8a, 0xc4, 0xe4, 0x12, 0x09, 0x26, 0x05, 0x46, 0x0d, 0x46, 0x90, 0x38, 0x98, + 0x6b, 0xa5, 0x3e, 0xeb, 0x68, 0x87, 0x9c, 0x12, 0x97, 0x02, 0x16, 0x1f, 0xa3, 0x58, 0xea, 0x24, + 0xc2, 0xc5, 0x0b, 0x96, 0x88, 0x2f, 0x48, 0x2c, 0x29, 0x49, 0x2d, 0xca, 0x13, 0x62, 0xfe, 0xe1, + 0xc4, 0xe8, 0x64, 0xb3, 0xab, 0xe1, 0xc4, 0x45, 0x36, 0x26, 0x01, 0x26, 0x2e, 0xe5, 0xcc, 0x7c, + 0x88, 0x3b, 0x0a, 0x8a, 0xf2, 0x2b, 0x2a, 0xf5, 0xb0, 0x86, 0xa0, 0x13, 0xb7, 0x1f, 0x38, 0x98, + 0x03, 0x40, 0x1e, 0x0b, 0x60, 0x4c, 0x62, 0x03, 0xfb, 0xd0, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, + 0xcf, 0xca, 0xd5, 0x32, 0x94, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/number.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/number.pb.validate.go new file mode 100644 index 000000000..2bf1f2cf3 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/number.pb.validate.go @@ -0,0 +1,127 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/type/matcher/v3/number.proto + +package envoy_type_matcher_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _number_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on DoubleMatcher with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *DoubleMatcher) Validate() error { + if m == nil { + return nil + } + + switch m.MatchPattern.(type) { + + case *DoubleMatcher_Range: + + if v, ok := interface{}(m.GetRange()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DoubleMatcherValidationError{ + field: "Range", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *DoubleMatcher_Exact: + // no validation rules for Exact + + default: + return DoubleMatcherValidationError{ + field: "MatchPattern", + reason: "value is required", + } + + } + + return nil +} + +// DoubleMatcherValidationError is the validation error returned by +// DoubleMatcher.Validate if the designated constraints aren't met. +type DoubleMatcherValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DoubleMatcherValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DoubleMatcherValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DoubleMatcherValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DoubleMatcherValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DoubleMatcherValidationError) ErrorName() string { return "DoubleMatcherValidationError" } + +// Error satisfies the builtin error interface +func (e DoubleMatcherValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDoubleMatcher.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DoubleMatcherValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DoubleMatcherValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/path.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/path.pb.go new file mode 100644 index 000000000..c143c6f11 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/path.pb.go @@ -0,0 +1,114 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/type/matcher/v3/path.proto + +package envoy_type_matcher_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type PathMatcher struct { + // Types that are valid to be assigned to Rule: + // *PathMatcher_Path + Rule isPathMatcher_Rule `protobuf_oneof:"rule"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PathMatcher) Reset() { *m = PathMatcher{} } +func (m *PathMatcher) String() string { return proto.CompactTextString(m) } +func (*PathMatcher) ProtoMessage() {} +func (*PathMatcher) Descriptor() ([]byte, []int) { + return fileDescriptor_ad26ce2b727dd011, []int{0} +} + +func (m *PathMatcher) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PathMatcher.Unmarshal(m, b) +} +func (m *PathMatcher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PathMatcher.Marshal(b, m, deterministic) +} +func (m *PathMatcher) XXX_Merge(src proto.Message) { + xxx_messageInfo_PathMatcher.Merge(m, src) +} +func (m *PathMatcher) XXX_Size() int { + return xxx_messageInfo_PathMatcher.Size(m) +} +func (m *PathMatcher) XXX_DiscardUnknown() { + xxx_messageInfo_PathMatcher.DiscardUnknown(m) +} + +var xxx_messageInfo_PathMatcher proto.InternalMessageInfo + +type isPathMatcher_Rule interface { + isPathMatcher_Rule() +} + +type PathMatcher_Path struct { + Path *StringMatcher `protobuf:"bytes,1,opt,name=path,proto3,oneof"` +} + +func (*PathMatcher_Path) isPathMatcher_Rule() {} + +func (m *PathMatcher) GetRule() isPathMatcher_Rule { + if m != nil { + return m.Rule + } + return nil +} + +func (m *PathMatcher) GetPath() *StringMatcher { + if x, ok := m.GetRule().(*PathMatcher_Path); ok { + return x.Path + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*PathMatcher) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*PathMatcher_Path)(nil), + } +} + +func init() { + proto.RegisterType((*PathMatcher)(nil), "envoy.type.matcher.v3.PathMatcher") +} + +func init() { proto.RegisterFile("envoy/type/matcher/v3/path.proto", fileDescriptor_ad26ce2b727dd011) } + +var fileDescriptor_ad26ce2b727dd011 = []byte{ + // 253 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x48, 0xcd, 0x2b, 0xcb, + 0xaf, 0xd4, 0x2f, 0xa9, 0x2c, 0x48, 0xd5, 0xcf, 0x4d, 0x2c, 0x49, 0xce, 0x48, 0x2d, 0xd2, 0x2f, + 0x33, 0xd6, 0x2f, 0x48, 0x2c, 0xc9, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x05, 0xab, + 0xd0, 0x03, 0xa9, 0xd0, 0x83, 0xaa, 0xd0, 0x2b, 0x33, 0x96, 0x52, 0xc2, 0xae, 0xb1, 0xb8, 0xa4, + 0x28, 0x33, 0x2f, 0x1d, 0xa2, 0x55, 0x4a, 0xb6, 0x34, 0xa5, 0x20, 0x51, 0x3f, 0x31, 0x2f, 0x2f, + 0xbf, 0x24, 0xb1, 0x24, 0x33, 0x3f, 0xaf, 0x58, 0xbf, 0xb8, 0x24, 0xb1, 0xa4, 0xb4, 0x18, 0x2a, + 0xad, 0x88, 0x21, 0x5d, 0x96, 0x5a, 0x54, 0x9c, 0x99, 0x9f, 0x87, 0x30, 0x41, 0xbc, 0x2c, 0x31, + 0x27, 0x33, 0x25, 0xb1, 0x24, 0x55, 0x1f, 0xc6, 0x80, 0x48, 0x28, 0xb5, 0x33, 0x72, 0x71, 0x07, + 0x24, 0x96, 0x64, 0xf8, 0x42, 0xac, 0x16, 0x72, 0xe1, 0x62, 0x01, 0xb9, 0x59, 0x82, 0x51, 0x81, + 0x51, 0x83, 0xdb, 0x48, 0x45, 0x0f, 0xab, 0xa3, 0xf5, 0x82, 0xc1, 0xae, 0x83, 0xea, 0x71, 0xe2, + 0xf8, 0xe5, 0xc4, 0xda, 0xc5, 0xc8, 0x24, 0xc0, 0xe8, 0xc1, 0x10, 0x04, 0xd6, 0x6d, 0xa5, 0x3a, + 0xeb, 0x68, 0x87, 0x9c, 0x02, 0x97, 0x1c, 0x16, 0xdd, 0x48, 0x96, 0x39, 0x71, 0x73, 0xb1, 0x14, + 0x95, 0xe6, 0xa4, 0x0a, 0x31, 0xff, 0x70, 0x62, 0x74, 0xb2, 0xda, 0xd5, 0x70, 0xe2, 0x22, 0x1b, + 0x93, 0x00, 0x13, 0x97, 0x72, 0x66, 0x3e, 0xc4, 0xde, 0x82, 0xa2, 0xfc, 0x8a, 0x4a, 0xec, 0x4e, + 0x70, 0xe2, 0x04, 0x19, 0x14, 0x00, 0xf2, 0x43, 0x00, 0x63, 0x12, 0x1b, 0xd8, 0x33, 0xc6, 0x80, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xcf, 0x23, 0x95, 0x8d, 0x86, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/path.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/path.pb.validate.go new file mode 100644 index 000000000..7cfec4ca7 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/path.pb.validate.go @@ -0,0 +1,131 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/type/matcher/v3/path.proto + +package envoy_type_matcher_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _path_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on PathMatcher with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *PathMatcher) Validate() error { + if m == nil { + return nil + } + + switch m.Rule.(type) { + + case *PathMatcher_Path: + + if m.GetPath() == nil { + return PathMatcherValidationError{ + field: "Path", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetPath()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return PathMatcherValidationError{ + field: "Path", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return PathMatcherValidationError{ + field: "Rule", + reason: "value is required", + } + + } + + return nil +} + +// PathMatcherValidationError is the validation error returned by +// PathMatcher.Validate if the designated constraints aren't met. +type PathMatcherValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e PathMatcherValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e PathMatcherValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e PathMatcherValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e PathMatcherValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e PathMatcherValidationError) ErrorName() string { return "PathMatcherValidationError" } + +// Error satisfies the builtin error interface +func (e PathMatcherValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sPathMatcher.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = PathMatcherValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = PathMatcherValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/regex.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/regex.pb.go new file mode 100644 index 000000000..572e0f768 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/regex.pb.go @@ -0,0 +1,223 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/type/matcher/v3/regex.proto + +package envoy_type_matcher_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type RegexMatcher struct { + // Types that are valid to be assigned to EngineType: + // *RegexMatcher_GoogleRe2 + EngineType isRegexMatcher_EngineType `protobuf_oneof:"engine_type"` + Regex string `protobuf:"bytes,2,opt,name=regex,proto3" json:"regex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RegexMatcher) Reset() { *m = RegexMatcher{} } +func (m *RegexMatcher) String() string { return proto.CompactTextString(m) } +func (*RegexMatcher) ProtoMessage() {} +func (*RegexMatcher) Descriptor() ([]byte, []int) { + return fileDescriptor_7de4f215ebc85482, []int{0} +} + +func (m *RegexMatcher) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RegexMatcher.Unmarshal(m, b) +} +func (m *RegexMatcher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RegexMatcher.Marshal(b, m, deterministic) +} +func (m *RegexMatcher) XXX_Merge(src proto.Message) { + xxx_messageInfo_RegexMatcher.Merge(m, src) +} +func (m *RegexMatcher) XXX_Size() int { + return xxx_messageInfo_RegexMatcher.Size(m) +} +func (m *RegexMatcher) XXX_DiscardUnknown() { + xxx_messageInfo_RegexMatcher.DiscardUnknown(m) +} + +var xxx_messageInfo_RegexMatcher proto.InternalMessageInfo + +type isRegexMatcher_EngineType interface { + isRegexMatcher_EngineType() +} + +type RegexMatcher_GoogleRe2 struct { + GoogleRe2 *RegexMatcher_GoogleRE2 `protobuf:"bytes,1,opt,name=google_re2,json=googleRe2,proto3,oneof"` +} + +func (*RegexMatcher_GoogleRe2) isRegexMatcher_EngineType() {} + +func (m *RegexMatcher) GetEngineType() isRegexMatcher_EngineType { + if m != nil { + return m.EngineType + } + return nil +} + +func (m *RegexMatcher) GetGoogleRe2() *RegexMatcher_GoogleRE2 { + if x, ok := m.GetEngineType().(*RegexMatcher_GoogleRe2); ok { + return x.GoogleRe2 + } + return nil +} + +func (m *RegexMatcher) GetRegex() string { + if m != nil { + return m.Regex + } + return "" +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*RegexMatcher) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*RegexMatcher_GoogleRe2)(nil), + } +} + +type RegexMatcher_GoogleRE2 struct { + MaxProgramSize *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=max_program_size,json=maxProgramSize,proto3" json:"max_program_size,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RegexMatcher_GoogleRE2) Reset() { *m = RegexMatcher_GoogleRE2{} } +func (m *RegexMatcher_GoogleRE2) String() string { return proto.CompactTextString(m) } +func (*RegexMatcher_GoogleRE2) ProtoMessage() {} +func (*RegexMatcher_GoogleRE2) Descriptor() ([]byte, []int) { + return fileDescriptor_7de4f215ebc85482, []int{0, 0} +} + +func (m *RegexMatcher_GoogleRE2) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RegexMatcher_GoogleRE2.Unmarshal(m, b) +} +func (m *RegexMatcher_GoogleRE2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RegexMatcher_GoogleRE2.Marshal(b, m, deterministic) +} +func (m *RegexMatcher_GoogleRE2) XXX_Merge(src proto.Message) { + xxx_messageInfo_RegexMatcher_GoogleRE2.Merge(m, src) +} +func (m *RegexMatcher_GoogleRE2) XXX_Size() int { + return xxx_messageInfo_RegexMatcher_GoogleRE2.Size(m) +} +func (m *RegexMatcher_GoogleRE2) XXX_DiscardUnknown() { + xxx_messageInfo_RegexMatcher_GoogleRE2.DiscardUnknown(m) +} + +var xxx_messageInfo_RegexMatcher_GoogleRE2 proto.InternalMessageInfo + +func (m *RegexMatcher_GoogleRE2) GetMaxProgramSize() *wrappers.UInt32Value { + if m != nil { + return m.MaxProgramSize + } + return nil +} + +type RegexMatchAndSubstitute struct { + Pattern *RegexMatcher `protobuf:"bytes,1,opt,name=pattern,proto3" json:"pattern,omitempty"` + Substitution string `protobuf:"bytes,2,opt,name=substitution,proto3" json:"substitution,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RegexMatchAndSubstitute) Reset() { *m = RegexMatchAndSubstitute{} } +func (m *RegexMatchAndSubstitute) String() string { return proto.CompactTextString(m) } +func (*RegexMatchAndSubstitute) ProtoMessage() {} +func (*RegexMatchAndSubstitute) Descriptor() ([]byte, []int) { + return fileDescriptor_7de4f215ebc85482, []int{1} +} + +func (m *RegexMatchAndSubstitute) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RegexMatchAndSubstitute.Unmarshal(m, b) +} +func (m *RegexMatchAndSubstitute) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RegexMatchAndSubstitute.Marshal(b, m, deterministic) +} +func (m *RegexMatchAndSubstitute) XXX_Merge(src proto.Message) { + xxx_messageInfo_RegexMatchAndSubstitute.Merge(m, src) +} +func (m *RegexMatchAndSubstitute) XXX_Size() int { + return xxx_messageInfo_RegexMatchAndSubstitute.Size(m) +} +func (m *RegexMatchAndSubstitute) XXX_DiscardUnknown() { + xxx_messageInfo_RegexMatchAndSubstitute.DiscardUnknown(m) +} + +var xxx_messageInfo_RegexMatchAndSubstitute proto.InternalMessageInfo + +func (m *RegexMatchAndSubstitute) GetPattern() *RegexMatcher { + if m != nil { + return m.Pattern + } + return nil +} + +func (m *RegexMatchAndSubstitute) GetSubstitution() string { + if m != nil { + return m.Substitution + } + return "" +} + +func init() { + proto.RegisterType((*RegexMatcher)(nil), "envoy.type.matcher.v3.RegexMatcher") + proto.RegisterType((*RegexMatcher_GoogleRE2)(nil), "envoy.type.matcher.v3.RegexMatcher.GoogleRE2") + proto.RegisterType((*RegexMatchAndSubstitute)(nil), "envoy.type.matcher.v3.RegexMatchAndSubstitute") +} + +func init() { proto.RegisterFile("envoy/type/matcher/v3/regex.proto", fileDescriptor_7de4f215ebc85482) } + +var fileDescriptor_7de4f215ebc85482 = []byte{ + // 434 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x91, 0x4f, 0x8b, 0x13, 0x31, + 0x18, 0xc6, 0xcd, 0xe8, 0xee, 0xda, 0x77, 0x17, 0x29, 0x03, 0xb2, 0x4b, 0x71, 0xd7, 0xb6, 0x0b, + 0xb2, 0xfe, 0x4b, 0x74, 0x7a, 0xab, 0x78, 0x30, 0xe0, 0xbf, 0x83, 0x50, 0xb2, 0x28, 0xde, 0x4a, + 0x6a, 0x5f, 0xc7, 0x40, 0x9b, 0x84, 0x4c, 0x66, 0x6c, 0xf7, 0xe4, 0x45, 0x10, 0x3f, 0x82, 0x5f, + 0xc2, 0xbb, 0x77, 0x41, 0xf0, 0xe4, 0xb7, 0x91, 0x3d, 0xc9, 0x4c, 0x3a, 0x6a, 0x71, 0x50, 0x6f, + 0xe1, 0x7d, 0x9f, 0xe7, 0xe1, 0xf7, 0x3e, 0x81, 0x1e, 0xea, 0xc2, 0x2c, 0x99, 0x5f, 0x5a, 0x64, + 0x73, 0xe9, 0x5f, 0xbc, 0x42, 0xc7, 0x8a, 0x01, 0x73, 0x98, 0xe2, 0x82, 0x5a, 0x67, 0xbc, 0x89, + 0x2f, 0x56, 0x12, 0x5a, 0x4a, 0xe8, 0x4a, 0x42, 0x8b, 0x41, 0xe7, 0x20, 0x35, 0x26, 0x9d, 0x21, + 0xab, 0x44, 0x93, 0xfc, 0x25, 0x7b, 0xed, 0xa4, 0xb5, 0xe8, 0xb2, 0x60, 0xeb, 0xec, 0xe7, 0x53, + 0x2b, 0x99, 0xd4, 0xda, 0x78, 0xe9, 0x95, 0xd1, 0x19, 0xcb, 0xbc, 0xf4, 0x79, 0xbd, 0xee, 0xfd, + 0xb1, 0x2e, 0xd0, 0x65, 0xca, 0x68, 0xa5, 0xd3, 0x95, 0x64, 0xb7, 0x90, 0x33, 0x35, 0x95, 0x1e, + 0x59, 0xfd, 0x08, 0x8b, 0xfe, 0xd7, 0x08, 0x76, 0x44, 0x49, 0xf8, 0x24, 0xe0, 0xc4, 0xcf, 0x01, + 0x02, 0xcd, 0xd8, 0x61, 0xb2, 0x47, 0xba, 0xe4, 0x68, 0x3b, 0xb9, 0x49, 0x1b, 0xb9, 0xe9, 0xef, + 0x46, 0xfa, 0xb0, 0x72, 0x89, 0xfb, 0x09, 0x3f, 0x7f, 0xca, 0x37, 0xde, 0x93, 0xa8, 0x4d, 0x1e, + 0x9d, 0x11, 0xad, 0x10, 0x26, 0x30, 0x89, 0xf7, 0x61, 0xa3, 0xea, 0x62, 0x2f, 0xea, 0x92, 0xa3, + 0x16, 0xdf, 0x3a, 0xe5, 0xe7, 0x5c, 0xd4, 0x25, 0x22, 0x4c, 0x3b, 0x6f, 0x09, 0xb4, 0x7e, 0x66, + 0xc4, 0x0f, 0xa0, 0x3d, 0x97, 0x8b, 0xb1, 0x75, 0x26, 0x75, 0x72, 0x3e, 0xce, 0xd4, 0x09, 0xae, + 0x60, 0x2e, 0xd1, 0x10, 0x49, 0xeb, 0xb6, 0xe8, 0xd3, 0xc7, 0xda, 0x0f, 0x92, 0x67, 0x72, 0x96, + 0xa3, 0xb8, 0x30, 0x97, 0x8b, 0x51, 0x30, 0x1d, 0xab, 0x13, 0x1c, 0xde, 0xfa, 0xf0, 0xf9, 0xdd, + 0xc1, 0x75, 0xb8, 0xda, 0x70, 0x40, 0x33, 0xfd, 0xf0, 0x4a, 0xe9, 0xe8, 0xc1, 0xe5, 0x7f, 0x38, + 0x78, 0x0c, 0xdb, 0xa8, 0x53, 0xa5, 0x71, 0x5c, 0x6a, 0xe2, 0xb3, 0xdf, 0x39, 0xe9, 0x7f, 0x24, + 0xb0, 0xfb, 0x4b, 0x74, 0x4f, 0x4f, 0x8f, 0xf3, 0x49, 0xe6, 0x95, 0xcf, 0x3d, 0xc6, 0x77, 0x61, + 0xcb, 0x4a, 0xef, 0xd1, 0xe9, 0xd5, 0x21, 0x87, 0xff, 0xd1, 0xaa, 0xa8, 0x3d, 0x71, 0x1f, 0x76, + 0xb2, 0x3a, 0x4c, 0x19, 0x1d, 0x4a, 0x14, 0x6b, 0xb3, 0xe1, 0xed, 0x12, 0xfd, 0x06, 0x5c, 0xfb, + 0x2b, 0xfa, 0x1a, 0x15, 0xbf, 0xf3, 0xe9, 0xcd, 0x97, 0x6f, 0x9b, 0x51, 0x3b, 0x82, 0x43, 0x65, + 0x02, 0x90, 0x75, 0x66, 0xb1, 0x6c, 0x66, 0xe3, 0x50, 0xe5, 0x8c, 0xca, 0xe6, 0x47, 0x64, 0xb2, + 0x59, 0x7d, 0xc1, 0xe0, 0x47, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2a, 0x5c, 0x3f, 0x10, 0xfa, 0x02, + 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/regex.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/regex.pb.validate.go new file mode 100644 index 000000000..6ee2a7038 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/regex.pb.validate.go @@ -0,0 +1,294 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/type/matcher/v3/regex.proto + +package envoy_type_matcher_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _regex_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on RegexMatcher with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *RegexMatcher) Validate() error { + if m == nil { + return nil + } + + if len(m.GetRegex()) < 1 { + return RegexMatcherValidationError{ + field: "Regex", + reason: "value length must be at least 1 bytes", + } + } + + switch m.EngineType.(type) { + + case *RegexMatcher_GoogleRe2: + + if m.GetGoogleRe2() == nil { + return RegexMatcherValidationError{ + field: "GoogleRe2", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetGoogleRe2()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RegexMatcherValidationError{ + field: "GoogleRe2", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return RegexMatcherValidationError{ + field: "EngineType", + reason: "value is required", + } + + } + + return nil +} + +// RegexMatcherValidationError is the validation error returned by +// RegexMatcher.Validate if the designated constraints aren't met. +type RegexMatcherValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RegexMatcherValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RegexMatcherValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RegexMatcherValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RegexMatcherValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RegexMatcherValidationError) ErrorName() string { return "RegexMatcherValidationError" } + +// Error satisfies the builtin error interface +func (e RegexMatcherValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRegexMatcher.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RegexMatcherValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RegexMatcherValidationError{} + +// Validate checks the field values on RegexMatchAndSubstitute with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *RegexMatchAndSubstitute) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetPattern()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RegexMatchAndSubstituteValidationError{ + field: "Pattern", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for Substitution + + return nil +} + +// RegexMatchAndSubstituteValidationError is the validation error returned by +// RegexMatchAndSubstitute.Validate if the designated constraints aren't met. +type RegexMatchAndSubstituteValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RegexMatchAndSubstituteValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RegexMatchAndSubstituteValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RegexMatchAndSubstituteValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RegexMatchAndSubstituteValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RegexMatchAndSubstituteValidationError) ErrorName() string { + return "RegexMatchAndSubstituteValidationError" +} + +// Error satisfies the builtin error interface +func (e RegexMatchAndSubstituteValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRegexMatchAndSubstitute.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RegexMatchAndSubstituteValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RegexMatchAndSubstituteValidationError{} + +// Validate checks the field values on RegexMatcher_GoogleRE2 with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *RegexMatcher_GoogleRE2) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetMaxProgramSize()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RegexMatcher_GoogleRE2ValidationError{ + field: "MaxProgramSize", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// RegexMatcher_GoogleRE2ValidationError is the validation error returned by +// RegexMatcher_GoogleRE2.Validate if the designated constraints aren't met. +type RegexMatcher_GoogleRE2ValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RegexMatcher_GoogleRE2ValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RegexMatcher_GoogleRE2ValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RegexMatcher_GoogleRE2ValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RegexMatcher_GoogleRE2ValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RegexMatcher_GoogleRE2ValidationError) ErrorName() string { + return "RegexMatcher_GoogleRE2ValidationError" +} + +// Error satisfies the builtin error interface +func (e RegexMatcher_GoogleRE2ValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRegexMatcher_GoogleRE2.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RegexMatcher_GoogleRE2ValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RegexMatcher_GoogleRE2ValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/string.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/string.pb.go new file mode 100644 index 000000000..b9eec8947 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/string.pb.go @@ -0,0 +1,237 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/type/matcher/v3/string.proto + +package envoy_type_matcher_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/go-control-plane/envoy/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type StringMatcher struct { + // Types that are valid to be assigned to MatchPattern: + // *StringMatcher_Exact + // *StringMatcher_Prefix + // *StringMatcher_Suffix + // *StringMatcher_HiddenEnvoyDeprecatedRegex + // *StringMatcher_SafeRegex + MatchPattern isStringMatcher_MatchPattern `protobuf_oneof:"match_pattern"` + IgnoreCase bool `protobuf:"varint,6,opt,name=ignore_case,json=ignoreCase,proto3" json:"ignore_case,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StringMatcher) Reset() { *m = StringMatcher{} } +func (m *StringMatcher) String() string { return proto.CompactTextString(m) } +func (*StringMatcher) ProtoMessage() {} +func (*StringMatcher) Descriptor() ([]byte, []int) { + return fileDescriptor_e33cffa01bf36e0e, []int{0} +} + +func (m *StringMatcher) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StringMatcher.Unmarshal(m, b) +} +func (m *StringMatcher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StringMatcher.Marshal(b, m, deterministic) +} +func (m *StringMatcher) XXX_Merge(src proto.Message) { + xxx_messageInfo_StringMatcher.Merge(m, src) +} +func (m *StringMatcher) XXX_Size() int { + return xxx_messageInfo_StringMatcher.Size(m) +} +func (m *StringMatcher) XXX_DiscardUnknown() { + xxx_messageInfo_StringMatcher.DiscardUnknown(m) +} + +var xxx_messageInfo_StringMatcher proto.InternalMessageInfo + +type isStringMatcher_MatchPattern interface { + isStringMatcher_MatchPattern() +} + +type StringMatcher_Exact struct { + Exact string `protobuf:"bytes,1,opt,name=exact,proto3,oneof"` +} + +type StringMatcher_Prefix struct { + Prefix string `protobuf:"bytes,2,opt,name=prefix,proto3,oneof"` +} + +type StringMatcher_Suffix struct { + Suffix string `protobuf:"bytes,3,opt,name=suffix,proto3,oneof"` +} + +type StringMatcher_HiddenEnvoyDeprecatedRegex struct { + HiddenEnvoyDeprecatedRegex string `protobuf:"bytes,4,opt,name=hidden_envoy_deprecated_regex,json=hiddenEnvoyDeprecatedRegex,proto3,oneof"` +} + +type StringMatcher_SafeRegex struct { + SafeRegex *RegexMatcher `protobuf:"bytes,5,opt,name=safe_regex,json=safeRegex,proto3,oneof"` +} + +func (*StringMatcher_Exact) isStringMatcher_MatchPattern() {} + +func (*StringMatcher_Prefix) isStringMatcher_MatchPattern() {} + +func (*StringMatcher_Suffix) isStringMatcher_MatchPattern() {} + +func (*StringMatcher_HiddenEnvoyDeprecatedRegex) isStringMatcher_MatchPattern() {} + +func (*StringMatcher_SafeRegex) isStringMatcher_MatchPattern() {} + +func (m *StringMatcher) GetMatchPattern() isStringMatcher_MatchPattern { + if m != nil { + return m.MatchPattern + } + return nil +} + +func (m *StringMatcher) GetExact() string { + if x, ok := m.GetMatchPattern().(*StringMatcher_Exact); ok { + return x.Exact + } + return "" +} + +func (m *StringMatcher) GetPrefix() string { + if x, ok := m.GetMatchPattern().(*StringMatcher_Prefix); ok { + return x.Prefix + } + return "" +} + +func (m *StringMatcher) GetSuffix() string { + if x, ok := m.GetMatchPattern().(*StringMatcher_Suffix); ok { + return x.Suffix + } + return "" +} + +// Deprecated: Do not use. +func (m *StringMatcher) GetHiddenEnvoyDeprecatedRegex() string { + if x, ok := m.GetMatchPattern().(*StringMatcher_HiddenEnvoyDeprecatedRegex); ok { + return x.HiddenEnvoyDeprecatedRegex + } + return "" +} + +func (m *StringMatcher) GetSafeRegex() *RegexMatcher { + if x, ok := m.GetMatchPattern().(*StringMatcher_SafeRegex); ok { + return x.SafeRegex + } + return nil +} + +func (m *StringMatcher) GetIgnoreCase() bool { + if m != nil { + return m.IgnoreCase + } + return false +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*StringMatcher) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*StringMatcher_Exact)(nil), + (*StringMatcher_Prefix)(nil), + (*StringMatcher_Suffix)(nil), + (*StringMatcher_HiddenEnvoyDeprecatedRegex)(nil), + (*StringMatcher_SafeRegex)(nil), + } +} + +type ListStringMatcher struct { + Patterns []*StringMatcher `protobuf:"bytes,1,rep,name=patterns,proto3" json:"patterns,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListStringMatcher) Reset() { *m = ListStringMatcher{} } +func (m *ListStringMatcher) String() string { return proto.CompactTextString(m) } +func (*ListStringMatcher) ProtoMessage() {} +func (*ListStringMatcher) Descriptor() ([]byte, []int) { + return fileDescriptor_e33cffa01bf36e0e, []int{1} +} + +func (m *ListStringMatcher) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListStringMatcher.Unmarshal(m, b) +} +func (m *ListStringMatcher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListStringMatcher.Marshal(b, m, deterministic) +} +func (m *ListStringMatcher) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListStringMatcher.Merge(m, src) +} +func (m *ListStringMatcher) XXX_Size() int { + return xxx_messageInfo_ListStringMatcher.Size(m) +} +func (m *ListStringMatcher) XXX_DiscardUnknown() { + xxx_messageInfo_ListStringMatcher.DiscardUnknown(m) +} + +var xxx_messageInfo_ListStringMatcher proto.InternalMessageInfo + +func (m *ListStringMatcher) GetPatterns() []*StringMatcher { + if m != nil { + return m.Patterns + } + return nil +} + +func init() { + proto.RegisterType((*StringMatcher)(nil), "envoy.type.matcher.v3.StringMatcher") + proto.RegisterType((*ListStringMatcher)(nil), "envoy.type.matcher.v3.ListStringMatcher") +} + +func init() { proto.RegisterFile("envoy/type/matcher/v3/string.proto", fileDescriptor_e33cffa01bf36e0e) } + +var fileDescriptor_e33cffa01bf36e0e = []byte{ + // 457 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0x4f, 0x8b, 0xd3, 0x40, + 0x18, 0xc6, 0x77, 0xd2, 0x4d, 0xcd, 0x4e, 0x59, 0xa8, 0xc1, 0x3f, 0xa1, 0xb0, 0x9a, 0xb6, 0x8b, + 0x06, 0x84, 0x04, 0xb6, 0xb7, 0xc5, 0xd3, 0xa8, 0xb0, 0x88, 0xca, 0x12, 0xf1, 0x1c, 0xc6, 0xe6, + 0x6d, 0x77, 0x40, 0x67, 0xc2, 0xcc, 0x34, 0xb4, 0xb7, 0x3d, 0x8a, 0x78, 0xf2, 0xe8, 0x27, 0x11, + 0xef, 0x82, 0x57, 0xfd, 0x20, 0x1e, 0xc4, 0x83, 0xf4, 0x24, 0x33, 0x93, 0x2d, 0x94, 0x66, 0x6f, + 0x9d, 0x3e, 0xcf, 0xef, 0x7d, 0xe6, 0x79, 0x33, 0x78, 0x04, 0xbc, 0x16, 0xab, 0x4c, 0xaf, 0x2a, + 0xc8, 0xde, 0x53, 0x3d, 0xbd, 0x00, 0x99, 0xd5, 0x93, 0x4c, 0x69, 0xc9, 0xf8, 0x3c, 0xad, 0xa4, + 0xd0, 0x22, 0xbc, 0x6d, 0x3d, 0xa9, 0xf1, 0xa4, 0x8d, 0x27, 0xad, 0x27, 0x83, 0x61, 0x3b, 0x2a, + 0x61, 0x0e, 0x4b, 0x47, 0x0e, 0xc6, 0xce, 0x42, 0x39, 0x17, 0x9a, 0x6a, 0x26, 0xb8, 0xca, 0x4a, + 0xa8, 0x24, 0x4c, 0xed, 0xa1, 0x31, 0x1d, 0x2d, 0xca, 0x8a, 0x6e, 0x79, 0x94, 0xa6, 0x7a, 0xa1, + 0x1a, 0x79, 0xb8, 0x23, 0xd7, 0x20, 0x15, 0x13, 0x7c, 0x73, 0xc1, 0xc1, 0xdd, 0x9a, 0xbe, 0x63, + 0x25, 0xd5, 0x90, 0x5d, 0xfd, 0x70, 0xc2, 0xe8, 0xaf, 0x87, 0x0f, 0x5f, 0xdb, 0x2a, 0x2f, 0xdd, + 0x05, 0xc3, 0x3b, 0xd8, 0x87, 0x25, 0x9d, 0xea, 0x08, 0xc5, 0x28, 0x39, 0x38, 0xdb, 0xcb, 0xdd, + 0x31, 0x1c, 0xe2, 0x6e, 0x25, 0x61, 0xc6, 0x96, 0x91, 0x67, 0x04, 0x72, 0x63, 0x4d, 0xf6, 0xa5, + 0x17, 0xa3, 0xb3, 0xbd, 0xbc, 0x11, 0x8c, 0x45, 0x2d, 0x66, 0xc6, 0xd2, 0xd9, 0xb1, 0x38, 0x21, + 0x7c, 0x83, 0x8f, 0x2e, 0x58, 0x59, 0x02, 0x2f, 0x6c, 0xf1, 0xe2, 0xaa, 0x2c, 0x94, 0x85, 0x5d, + 0x4b, 0xb4, 0x6f, 0xc9, 0xfe, 0x9a, 0xf8, 0xb2, 0x93, 0x5c, 0x06, 0x5f, 0x7f, 0xff, 0xf9, 0xe5, + 0xa3, 0xc8, 0x8c, 0x18, 0x38, 0xf0, 0x99, 0xe1, 0x9e, 0x6e, 0xb0, 0xdc, 0x50, 0xe1, 0x2b, 0x8c, + 0x15, 0x9d, 0x41, 0x33, 0xc3, 0x8f, 0x51, 0xd2, 0x3b, 0x19, 0xa7, 0xad, 0x5f, 0x25, 0xb5, 0x44, + 0xd3, 0x96, 0x04, 0x6b, 0xe2, 0x7f, 0x44, 0x5e, 0xdf, 0x04, 0x1c, 0x98, 0x11, 0x6e, 0xde, 0x7d, + 0xdc, 0x63, 0x73, 0x2e, 0x24, 0x14, 0x53, 0xaa, 0x20, 0xea, 0xc6, 0x28, 0x09, 0x72, 0xec, 0xfe, + 0x7a, 0x42, 0x15, 0x9c, 0x3e, 0xfc, 0xf2, 0xfd, 0xc3, 0xbd, 0x11, 0x8e, 0x5b, 0x22, 0xb6, 0xd6, + 0x49, 0x6e, 0xe1, 0x43, 0x2b, 0x14, 0x15, 0xd5, 0x1a, 0x24, 0x0f, 0x3b, 0xff, 0x08, 0x1a, 0x7d, + 0x42, 0xf8, 0xe6, 0x0b, 0xa6, 0xf4, 0xf6, 0xea, 0x9f, 0xe3, 0xa0, 0x71, 0xa9, 0x08, 0xc5, 0x9d, + 0xa4, 0x77, 0x72, 0x7c, 0x4d, 0x87, 0xed, 0x0c, 0x53, 0xe2, 0x33, 0xf2, 0x02, 0x94, 0x6f, 0xf8, + 0xd3, 0x47, 0xe6, 0x82, 0x0f, 0xf0, 0x71, 0x0b, 0xbf, 0x13, 0x4c, 0x1e, 0x7f, 0xbb, 0xfc, 0xf1, + 0xb3, 0xeb, 0xf5, 0x3d, 0x3c, 0x66, 0xc2, 0x45, 0x56, 0x52, 0x2c, 0x57, 0xed, 0xe9, 0xa4, 0xe7, + 0xe8, 0x73, 0xf3, 0x82, 0xce, 0xd1, 0xdb, 0xae, 0x7d, 0x4a, 0x93, 0xff, 0x01, 0x00, 0x00, 0xff, + 0xff, 0xa7, 0x29, 0x55, 0xfb, 0x2a, 0x03, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/string.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/string.pb.validate.go new file mode 100644 index 000000000..e6bdc5a99 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/string.pb.validate.go @@ -0,0 +1,252 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/type/matcher/v3/string.proto + +package envoy_type_matcher_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _string_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on StringMatcher with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *StringMatcher) Validate() error { + if m == nil { + return nil + } + + // no validation rules for IgnoreCase + + switch m.MatchPattern.(type) { + + case *StringMatcher_Exact: + // no validation rules for Exact + + case *StringMatcher_Prefix: + + if len(m.GetPrefix()) < 1 { + return StringMatcherValidationError{ + field: "Prefix", + reason: "value length must be at least 1 bytes", + } + } + + case *StringMatcher_Suffix: + + if len(m.GetSuffix()) < 1 { + return StringMatcherValidationError{ + field: "Suffix", + reason: "value length must be at least 1 bytes", + } + } + + case *StringMatcher_HiddenEnvoyDeprecatedRegex: + + if len(m.GetHiddenEnvoyDeprecatedRegex()) > 1024 { + return StringMatcherValidationError{ + field: "HiddenEnvoyDeprecatedRegex", + reason: "value length must be at most 1024 bytes", + } + } + + case *StringMatcher_SafeRegex: + + if m.GetSafeRegex() == nil { + return StringMatcherValidationError{ + field: "SafeRegex", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetSafeRegex()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StringMatcherValidationError{ + field: "SafeRegex", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return StringMatcherValidationError{ + field: "MatchPattern", + reason: "value is required", + } + + } + + return nil +} + +// StringMatcherValidationError is the validation error returned by +// StringMatcher.Validate if the designated constraints aren't met. +type StringMatcherValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e StringMatcherValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e StringMatcherValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e StringMatcherValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e StringMatcherValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e StringMatcherValidationError) ErrorName() string { return "StringMatcherValidationError" } + +// Error satisfies the builtin error interface +func (e StringMatcherValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sStringMatcher.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = StringMatcherValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = StringMatcherValidationError{} + +// Validate checks the field values on ListStringMatcher with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *ListStringMatcher) Validate() error { + if m == nil { + return nil + } + + if len(m.GetPatterns()) < 1 { + return ListStringMatcherValidationError{ + field: "Patterns", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetPatterns() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListStringMatcherValidationError{ + field: fmt.Sprintf("Patterns[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// ListStringMatcherValidationError is the validation error returned by +// ListStringMatcher.Validate if the designated constraints aren't met. +type ListStringMatcherValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListStringMatcherValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListStringMatcherValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListStringMatcherValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListStringMatcherValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListStringMatcherValidationError) ErrorName() string { + return "ListStringMatcherValidationError" +} + +// Error satisfies the builtin error interface +func (e ListStringMatcherValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListStringMatcher.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListStringMatcherValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListStringMatcherValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/struct.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/struct.pb.go new file mode 100644 index 000000000..ee98379fa --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/struct.pb.go @@ -0,0 +1,167 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/type/matcher/v3/struct.proto + +package envoy_type_matcher_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type StructMatcher struct { + Path []*StructMatcher_PathSegment `protobuf:"bytes,2,rep,name=path,proto3" json:"path,omitempty"` + Value *ValueMatcher `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StructMatcher) Reset() { *m = StructMatcher{} } +func (m *StructMatcher) String() string { return proto.CompactTextString(m) } +func (*StructMatcher) ProtoMessage() {} +func (*StructMatcher) Descriptor() ([]byte, []int) { + return fileDescriptor_2eb06d41ab351944, []int{0} +} + +func (m *StructMatcher) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StructMatcher.Unmarshal(m, b) +} +func (m *StructMatcher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StructMatcher.Marshal(b, m, deterministic) +} +func (m *StructMatcher) XXX_Merge(src proto.Message) { + xxx_messageInfo_StructMatcher.Merge(m, src) +} +func (m *StructMatcher) XXX_Size() int { + return xxx_messageInfo_StructMatcher.Size(m) +} +func (m *StructMatcher) XXX_DiscardUnknown() { + xxx_messageInfo_StructMatcher.DiscardUnknown(m) +} + +var xxx_messageInfo_StructMatcher proto.InternalMessageInfo + +func (m *StructMatcher) GetPath() []*StructMatcher_PathSegment { + if m != nil { + return m.Path + } + return nil +} + +func (m *StructMatcher) GetValue() *ValueMatcher { + if m != nil { + return m.Value + } + return nil +} + +type StructMatcher_PathSegment struct { + // Types that are valid to be assigned to Segment: + // *StructMatcher_PathSegment_Key + Segment isStructMatcher_PathSegment_Segment `protobuf_oneof:"segment"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StructMatcher_PathSegment) Reset() { *m = StructMatcher_PathSegment{} } +func (m *StructMatcher_PathSegment) String() string { return proto.CompactTextString(m) } +func (*StructMatcher_PathSegment) ProtoMessage() {} +func (*StructMatcher_PathSegment) Descriptor() ([]byte, []int) { + return fileDescriptor_2eb06d41ab351944, []int{0, 0} +} + +func (m *StructMatcher_PathSegment) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StructMatcher_PathSegment.Unmarshal(m, b) +} +func (m *StructMatcher_PathSegment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StructMatcher_PathSegment.Marshal(b, m, deterministic) +} +func (m *StructMatcher_PathSegment) XXX_Merge(src proto.Message) { + xxx_messageInfo_StructMatcher_PathSegment.Merge(m, src) +} +func (m *StructMatcher_PathSegment) XXX_Size() int { + return xxx_messageInfo_StructMatcher_PathSegment.Size(m) +} +func (m *StructMatcher_PathSegment) XXX_DiscardUnknown() { + xxx_messageInfo_StructMatcher_PathSegment.DiscardUnknown(m) +} + +var xxx_messageInfo_StructMatcher_PathSegment proto.InternalMessageInfo + +type isStructMatcher_PathSegment_Segment interface { + isStructMatcher_PathSegment_Segment() +} + +type StructMatcher_PathSegment_Key struct { + Key string `protobuf:"bytes,1,opt,name=key,proto3,oneof"` +} + +func (*StructMatcher_PathSegment_Key) isStructMatcher_PathSegment_Segment() {} + +func (m *StructMatcher_PathSegment) GetSegment() isStructMatcher_PathSegment_Segment { + if m != nil { + return m.Segment + } + return nil +} + +func (m *StructMatcher_PathSegment) GetKey() string { + if x, ok := m.GetSegment().(*StructMatcher_PathSegment_Key); ok { + return x.Key + } + return "" +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*StructMatcher_PathSegment) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*StructMatcher_PathSegment_Key)(nil), + } +} + +func init() { + proto.RegisterType((*StructMatcher)(nil), "envoy.type.matcher.v3.StructMatcher") + proto.RegisterType((*StructMatcher_PathSegment)(nil), "envoy.type.matcher.v3.StructMatcher.PathSegment") +} + +func init() { proto.RegisterFile("envoy/type/matcher/v3/struct.proto", fileDescriptor_2eb06d41ab351944) } + +var fileDescriptor_2eb06d41ab351944 = []byte{ + // 335 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x91, 0x3f, 0x4b, 0xc3, 0x40, + 0x18, 0xc6, 0xbd, 0x4b, 0xff, 0x79, 0x41, 0x29, 0x01, 0xb1, 0x54, 0x94, 0xb4, 0x1d, 0xec, 0x20, + 0x77, 0xd2, 0x6c, 0xc5, 0xe9, 0x5c, 0x5c, 0x94, 0xd2, 0x82, 0xfb, 0xd9, 0x1e, 0x6d, 0xb0, 0xbd, + 0x0b, 0xc9, 0x9b, 0x60, 0x36, 0x47, 0x71, 0x74, 0xf4, 0xa3, 0x38, 0xb8, 0x09, 0xae, 0x7e, 0x1b, + 0xe9, 0x24, 0xc9, 0x45, 0x50, 0x4c, 0x71, 0x3b, 0xee, 0x7d, 0x9e, 0xdf, 0xfb, 0x3c, 0x77, 0xa4, + 0x2b, 0x55, 0xa2, 0x53, 0x06, 0x69, 0x20, 0xd9, 0x4a, 0xc0, 0x74, 0x21, 0x43, 0x96, 0x78, 0x2c, + 0x82, 0x30, 0x9e, 0x02, 0x0d, 0x42, 0x0d, 0xda, 0xd9, 0xcb, 0x35, 0x34, 0xd3, 0xd0, 0x42, 0x43, + 0x13, 0xaf, 0xdd, 0x29, 0xb7, 0x26, 0x62, 0x19, 0x4b, 0xe3, 0x6c, 0x1f, 0xc6, 0xb3, 0x40, 0x30, + 0xa1, 0x94, 0x06, 0x01, 0xbe, 0x56, 0x11, 0x8b, 0x40, 0x40, 0x1c, 0x15, 0xe3, 0xce, 0x9f, 0x71, + 0x22, 0xc3, 0xc8, 0xd7, 0xca, 0x57, 0xf3, 0x42, 0xb2, 0x9f, 0x88, 0xa5, 0x3f, 0x13, 0x20, 0xd9, + 0xf7, 0xc1, 0x0c, 0xba, 0xaf, 0x98, 0xec, 0x4c, 0xf2, 0x94, 0x97, 0x66, 0xb7, 0x73, 0x45, 0x2a, + 0x81, 0x80, 0x45, 0x0b, 0xbb, 0x56, 0xdf, 0x1e, 0x9c, 0xd2, 0xd2, 0xd4, 0xf4, 0x97, 0x87, 0x8e, + 0x04, 0x2c, 0x26, 0x72, 0xbe, 0x92, 0x0a, 0x78, 0x63, 0xcd, 0xab, 0x4f, 0x08, 0x37, 0xd0, 0x38, + 0xe7, 0x38, 0xe7, 0xa4, 0x9a, 0x77, 0x69, 0x59, 0x2e, 0xea, 0xdb, 0x83, 0xde, 0x06, 0xe0, 0x75, + 0xa6, 0x29, 0x78, 0x39, 0xe3, 0x11, 0xe1, 0x26, 0x1a, 0x1b, 0x6f, 0x5b, 0x13, 0xfb, 0xc7, 0x0e, + 0xe7, 0x80, 0x58, 0xb7, 0x32, 0x6d, 0x21, 0x17, 0xf5, 0xb7, 0x79, 0x7d, 0xcd, 0x2b, 0x21, 0x76, + 0xd1, 0xc5, 0xd6, 0x38, 0xbb, 0x1d, 0x7a, 0xcf, 0x6f, 0x0f, 0x47, 0x94, 0x9c, 0x94, 0xec, 0xd9, + 0x9c, 0x7a, 0x97, 0xd4, 0xa3, 0x02, 0x6e, 0x7d, 0x72, 0x34, 0x3c, 0xce, 0x20, 0x5d, 0xe2, 0xfe, + 0x07, 0xe1, 0x67, 0x2f, 0xf7, 0xef, 0x1f, 0x35, 0xdc, 0xc4, 0xa4, 0xe7, 0x6b, 0xd3, 0x2d, 0x08, + 0xf5, 0x5d, 0x5a, 0x5e, 0x93, 0xdb, 0xc6, 0x3d, 0xca, 0x1e, 0x7f, 0x84, 0x6e, 0x6a, 0xf9, 0x2f, + 0x78, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xb3, 0xae, 0xa1, 0xab, 0x40, 0x02, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/struct.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/struct.pb.validate.go new file mode 100644 index 000000000..28ced0485 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/struct.pb.validate.go @@ -0,0 +1,227 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/type/matcher/v3/struct.proto + +package envoy_type_matcher_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _struct_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on StructMatcher with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *StructMatcher) Validate() error { + if m == nil { + return nil + } + + if len(m.GetPath()) < 1 { + return StructMatcherValidationError{ + field: "Path", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetPath() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StructMatcherValidationError{ + field: fmt.Sprintf("Path[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if m.GetValue() == nil { + return StructMatcherValidationError{ + field: "Value", + reason: "value is required", + } + } + + if v, ok := interface{}(m.GetValue()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return StructMatcherValidationError{ + field: "Value", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// StructMatcherValidationError is the validation error returned by +// StructMatcher.Validate if the designated constraints aren't met. +type StructMatcherValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e StructMatcherValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e StructMatcherValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e StructMatcherValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e StructMatcherValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e StructMatcherValidationError) ErrorName() string { return "StructMatcherValidationError" } + +// Error satisfies the builtin error interface +func (e StructMatcherValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sStructMatcher.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = StructMatcherValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = StructMatcherValidationError{} + +// Validate checks the field values on StructMatcher_PathSegment with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *StructMatcher_PathSegment) Validate() error { + if m == nil { + return nil + } + + switch m.Segment.(type) { + + case *StructMatcher_PathSegment_Key: + + if len(m.GetKey()) < 1 { + return StructMatcher_PathSegmentValidationError{ + field: "Key", + reason: "value length must be at least 1 bytes", + } + } + + default: + return StructMatcher_PathSegmentValidationError{ + field: "Segment", + reason: "value is required", + } + + } + + return nil +} + +// StructMatcher_PathSegmentValidationError is the validation error returned by +// StructMatcher_PathSegment.Validate if the designated constraints aren't met. +type StructMatcher_PathSegmentValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e StructMatcher_PathSegmentValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e StructMatcher_PathSegmentValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e StructMatcher_PathSegmentValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e StructMatcher_PathSegmentValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e StructMatcher_PathSegmentValidationError) ErrorName() string { + return "StructMatcher_PathSegmentValidationError" +} + +// Error satisfies the builtin error interface +func (e StructMatcher_PathSegmentValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sStructMatcher_PathSegment.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = StructMatcher_PathSegmentValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = StructMatcher_PathSegmentValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/value.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/value.pb.go new file mode 100644 index 000000000..7006678dd --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/value.pb.go @@ -0,0 +1,298 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/type/matcher/v3/value.proto + +package envoy_type_matcher_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type ValueMatcher struct { + // Types that are valid to be assigned to MatchPattern: + // *ValueMatcher_NullMatch_ + // *ValueMatcher_DoubleMatch + // *ValueMatcher_StringMatch + // *ValueMatcher_BoolMatch + // *ValueMatcher_PresentMatch + // *ValueMatcher_ListMatch + MatchPattern isValueMatcher_MatchPattern `protobuf_oneof:"match_pattern"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ValueMatcher) Reset() { *m = ValueMatcher{} } +func (m *ValueMatcher) String() string { return proto.CompactTextString(m) } +func (*ValueMatcher) ProtoMessage() {} +func (*ValueMatcher) Descriptor() ([]byte, []int) { + return fileDescriptor_bd6368dfc3b13d42, []int{0} +} + +func (m *ValueMatcher) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ValueMatcher.Unmarshal(m, b) +} +func (m *ValueMatcher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ValueMatcher.Marshal(b, m, deterministic) +} +func (m *ValueMatcher) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValueMatcher.Merge(m, src) +} +func (m *ValueMatcher) XXX_Size() int { + return xxx_messageInfo_ValueMatcher.Size(m) +} +func (m *ValueMatcher) XXX_DiscardUnknown() { + xxx_messageInfo_ValueMatcher.DiscardUnknown(m) +} + +var xxx_messageInfo_ValueMatcher proto.InternalMessageInfo + +type isValueMatcher_MatchPattern interface { + isValueMatcher_MatchPattern() +} + +type ValueMatcher_NullMatch_ struct { + NullMatch *ValueMatcher_NullMatch `protobuf:"bytes,1,opt,name=null_match,json=nullMatch,proto3,oneof"` +} + +type ValueMatcher_DoubleMatch struct { + DoubleMatch *DoubleMatcher `protobuf:"bytes,2,opt,name=double_match,json=doubleMatch,proto3,oneof"` +} + +type ValueMatcher_StringMatch struct { + StringMatch *StringMatcher `protobuf:"bytes,3,opt,name=string_match,json=stringMatch,proto3,oneof"` +} + +type ValueMatcher_BoolMatch struct { + BoolMatch bool `protobuf:"varint,4,opt,name=bool_match,json=boolMatch,proto3,oneof"` +} + +type ValueMatcher_PresentMatch struct { + PresentMatch bool `protobuf:"varint,5,opt,name=present_match,json=presentMatch,proto3,oneof"` +} + +type ValueMatcher_ListMatch struct { + ListMatch *ListMatcher `protobuf:"bytes,6,opt,name=list_match,json=listMatch,proto3,oneof"` +} + +func (*ValueMatcher_NullMatch_) isValueMatcher_MatchPattern() {} + +func (*ValueMatcher_DoubleMatch) isValueMatcher_MatchPattern() {} + +func (*ValueMatcher_StringMatch) isValueMatcher_MatchPattern() {} + +func (*ValueMatcher_BoolMatch) isValueMatcher_MatchPattern() {} + +func (*ValueMatcher_PresentMatch) isValueMatcher_MatchPattern() {} + +func (*ValueMatcher_ListMatch) isValueMatcher_MatchPattern() {} + +func (m *ValueMatcher) GetMatchPattern() isValueMatcher_MatchPattern { + if m != nil { + return m.MatchPattern + } + return nil +} + +func (m *ValueMatcher) GetNullMatch() *ValueMatcher_NullMatch { + if x, ok := m.GetMatchPattern().(*ValueMatcher_NullMatch_); ok { + return x.NullMatch + } + return nil +} + +func (m *ValueMatcher) GetDoubleMatch() *DoubleMatcher { + if x, ok := m.GetMatchPattern().(*ValueMatcher_DoubleMatch); ok { + return x.DoubleMatch + } + return nil +} + +func (m *ValueMatcher) GetStringMatch() *StringMatcher { + if x, ok := m.GetMatchPattern().(*ValueMatcher_StringMatch); ok { + return x.StringMatch + } + return nil +} + +func (m *ValueMatcher) GetBoolMatch() bool { + if x, ok := m.GetMatchPattern().(*ValueMatcher_BoolMatch); ok { + return x.BoolMatch + } + return false +} + +func (m *ValueMatcher) GetPresentMatch() bool { + if x, ok := m.GetMatchPattern().(*ValueMatcher_PresentMatch); ok { + return x.PresentMatch + } + return false +} + +func (m *ValueMatcher) GetListMatch() *ListMatcher { + if x, ok := m.GetMatchPattern().(*ValueMatcher_ListMatch); ok { + return x.ListMatch + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ValueMatcher) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ValueMatcher_NullMatch_)(nil), + (*ValueMatcher_DoubleMatch)(nil), + (*ValueMatcher_StringMatch)(nil), + (*ValueMatcher_BoolMatch)(nil), + (*ValueMatcher_PresentMatch)(nil), + (*ValueMatcher_ListMatch)(nil), + } +} + +type ValueMatcher_NullMatch struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ValueMatcher_NullMatch) Reset() { *m = ValueMatcher_NullMatch{} } +func (m *ValueMatcher_NullMatch) String() string { return proto.CompactTextString(m) } +func (*ValueMatcher_NullMatch) ProtoMessage() {} +func (*ValueMatcher_NullMatch) Descriptor() ([]byte, []int) { + return fileDescriptor_bd6368dfc3b13d42, []int{0, 0} +} + +func (m *ValueMatcher_NullMatch) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ValueMatcher_NullMatch.Unmarshal(m, b) +} +func (m *ValueMatcher_NullMatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ValueMatcher_NullMatch.Marshal(b, m, deterministic) +} +func (m *ValueMatcher_NullMatch) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValueMatcher_NullMatch.Merge(m, src) +} +func (m *ValueMatcher_NullMatch) XXX_Size() int { + return xxx_messageInfo_ValueMatcher_NullMatch.Size(m) +} +func (m *ValueMatcher_NullMatch) XXX_DiscardUnknown() { + xxx_messageInfo_ValueMatcher_NullMatch.DiscardUnknown(m) +} + +var xxx_messageInfo_ValueMatcher_NullMatch proto.InternalMessageInfo + +type ListMatcher struct { + // Types that are valid to be assigned to MatchPattern: + // *ListMatcher_OneOf + MatchPattern isListMatcher_MatchPattern `protobuf_oneof:"match_pattern"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListMatcher) Reset() { *m = ListMatcher{} } +func (m *ListMatcher) String() string { return proto.CompactTextString(m) } +func (*ListMatcher) ProtoMessage() {} +func (*ListMatcher) Descriptor() ([]byte, []int) { + return fileDescriptor_bd6368dfc3b13d42, []int{1} +} + +func (m *ListMatcher) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListMatcher.Unmarshal(m, b) +} +func (m *ListMatcher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListMatcher.Marshal(b, m, deterministic) +} +func (m *ListMatcher) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListMatcher.Merge(m, src) +} +func (m *ListMatcher) XXX_Size() int { + return xxx_messageInfo_ListMatcher.Size(m) +} +func (m *ListMatcher) XXX_DiscardUnknown() { + xxx_messageInfo_ListMatcher.DiscardUnknown(m) +} + +var xxx_messageInfo_ListMatcher proto.InternalMessageInfo + +type isListMatcher_MatchPattern interface { + isListMatcher_MatchPattern() +} + +type ListMatcher_OneOf struct { + OneOf *ValueMatcher `protobuf:"bytes,1,opt,name=one_of,json=oneOf,proto3,oneof"` +} + +func (*ListMatcher_OneOf) isListMatcher_MatchPattern() {} + +func (m *ListMatcher) GetMatchPattern() isListMatcher_MatchPattern { + if m != nil { + return m.MatchPattern + } + return nil +} + +func (m *ListMatcher) GetOneOf() *ValueMatcher { + if x, ok := m.GetMatchPattern().(*ListMatcher_OneOf); ok { + return x.OneOf + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ListMatcher) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ListMatcher_OneOf)(nil), + } +} + +func init() { + proto.RegisterType((*ValueMatcher)(nil), "envoy.type.matcher.v3.ValueMatcher") + proto.RegisterType((*ValueMatcher_NullMatch)(nil), "envoy.type.matcher.v3.ValueMatcher.NullMatch") + proto.RegisterType((*ListMatcher)(nil), "envoy.type.matcher.v3.ListMatcher") +} + +func init() { proto.RegisterFile("envoy/type/matcher/v3/value.proto", fileDescriptor_bd6368dfc3b13d42) } + +var fileDescriptor_bd6368dfc3b13d42 = []byte{ + // 431 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xcf, 0xcb, 0xd3, 0x30, + 0x18, 0xc7, 0xd7, 0xcd, 0x15, 0xf7, 0x6c, 0x03, 0x29, 0x8a, 0x32, 0x70, 0x3f, 0x3a, 0x27, 0x13, + 0xb1, 0x15, 0x77, 0x9b, 0x7a, 0xa9, 0x1e, 0x26, 0xe8, 0x1c, 0x13, 0xbc, 0x8e, 0xd4, 0x66, 0x5a, + 0xc8, 0x92, 0x92, 0xa4, 0xc5, 0xdd, 0x3c, 0xee, 0x6f, 0xf0, 0x4f, 0xf1, 0x2e, 0x78, 0xf5, 0xbf, + 0xf1, 0x24, 0x92, 0x34, 0xb5, 0x85, 0xb7, 0x7b, 0xdf, 0xf7, 0x96, 0x3c, 0xf9, 0x7c, 0xbf, 0xf9, + 0x3e, 0x4f, 0x02, 0x13, 0x4c, 0x33, 0x76, 0xf4, 0xe5, 0x31, 0xc1, 0xfe, 0x01, 0xc9, 0x4f, 0x5f, + 0x30, 0xf7, 0xb3, 0x85, 0x9f, 0x21, 0x92, 0x62, 0x2f, 0xe1, 0x4c, 0x32, 0xe7, 0x8e, 0x46, 0x3c, + 0x85, 0x78, 0x06, 0xf1, 0xb2, 0xc5, 0xc0, 0xad, 0x57, 0xd2, 0xf4, 0x10, 0x62, 0x9e, 0x4b, 0xcf, + 0x31, 0x42, 0xf2, 0x98, 0x7e, 0x36, 0xcc, 0xfd, 0x34, 0x4a, 0x90, 0x8f, 0x28, 0x65, 0x12, 0xc9, + 0x98, 0x51, 0xe1, 0x0b, 0x89, 0x64, 0x2a, 0xcc, 0xf1, 0xe4, 0xc2, 0x71, 0x86, 0xb9, 0x88, 0x19, + 0x2d, 0x1d, 0xee, 0x66, 0x88, 0xc4, 0x11, 0x92, 0xd8, 0x2f, 0x16, 0xf9, 0x81, 0xfb, 0xb7, 0x05, + 0xbd, 0x8f, 0xaa, 0x93, 0x77, 0xf9, 0xdd, 0xce, 0x1a, 0x80, 0xa6, 0x84, 0xec, 0x74, 0x96, 0x7b, + 0xd6, 0xd8, 0x9a, 0x77, 0x9f, 0x3d, 0xf1, 0x6a, 0xfb, 0xf3, 0xaa, 0x42, 0x6f, 0x9d, 0x12, 0xa2, + 0xd7, 0xab, 0xc6, 0xb6, 0x43, 0x8b, 0x8d, 0xf3, 0x06, 0x7a, 0x11, 0x4b, 0x43, 0x82, 0x8d, 0x63, + 0x53, 0x3b, 0x3e, 0x38, 0xe3, 0xf8, 0x5a, 0xa3, 0xc6, 0x72, 0xd5, 0xd8, 0x76, 0xa3, 0xb2, 0xa0, + 0xac, 0xf2, 0xb1, 0x18, 0xab, 0xd6, 0xa5, 0x56, 0x1f, 0x34, 0x5a, 0xb1, 0x12, 0x65, 0xc1, 0x19, + 0x01, 0x84, 0x8c, 0x15, 0x5d, 0xde, 0x18, 0x5b, 0xf3, 0x9b, 0x2a, 0xb6, 0xaa, 0xe5, 0xc0, 0x0c, + 0xfa, 0x09, 0xc7, 0x02, 0x53, 0x69, 0x98, 0xb6, 0x61, 0x7a, 0xa6, 0x9c, 0x63, 0xaf, 0x00, 0x48, + 0x2c, 0x0a, 0xc6, 0xd6, 0x81, 0xdc, 0x33, 0x81, 0xde, 0xc6, 0x42, 0x96, 0x71, 0x3a, 0xa4, 0xd8, + 0x0e, 0x5e, 0x42, 0xe7, 0xff, 0xf0, 0x96, 0x4f, 0xbf, 0xff, 0x3c, 0x0d, 0x1f, 0xc3, 0xa3, 0x1a, + 0x8f, 0xfa, 0x71, 0x2f, 0x1f, 0x2a, 0xc5, 0x04, 0x46, 0x57, 0x28, 0x82, 0xdb, 0xd0, 0xd7, 0xf5, + 0x5d, 0x82, 0xa4, 0xc4, 0x9c, 0x3a, 0xad, 0x3f, 0x81, 0xe5, 0x9e, 0x2c, 0xe8, 0x56, 0x92, 0x39, + 0x2f, 0xc0, 0x66, 0x14, 0xef, 0xd8, 0xde, 0xbc, 0xfd, 0xf4, 0x1a, 0x6f, 0xbf, 0x6a, 0x6c, 0xdb, + 0x8c, 0xe2, 0xf7, 0xfb, 0xe5, 0x4c, 0x65, 0x19, 0xc3, 0xb0, 0x46, 0x53, 0xb9, 0xa4, 0x3e, 0x4a, + 0xf0, 0xfc, 0xc7, 0xb7, 0x5f, 0xbf, 0xed, 0xe6, 0xad, 0x26, 0x4c, 0x63, 0x96, 0x5f, 0x9b, 0x70, + 0xf6, 0xf5, 0x58, 0x9f, 0x20, 0x00, 0x1d, 0x61, 0xa3, 0xbe, 0xf1, 0xc6, 0x0a, 0x6d, 0xfd, 0x9f, + 0x17, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x89, 0x64, 0x25, 0xba, 0xae, 0x03, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/value.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/value.pb.validate.go new file mode 100644 index 000000000..6a46f60e7 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3/value.pb.validate.go @@ -0,0 +1,320 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/type/matcher/v3/value.proto + +package envoy_type_matcher_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _value_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on ValueMatcher with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *ValueMatcher) Validate() error { + if m == nil { + return nil + } + + switch m.MatchPattern.(type) { + + case *ValueMatcher_NullMatch_: + + if v, ok := interface{}(m.GetNullMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ValueMatcherValidationError{ + field: "NullMatch", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ValueMatcher_DoubleMatch: + + if v, ok := interface{}(m.GetDoubleMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ValueMatcherValidationError{ + field: "DoubleMatch", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ValueMatcher_StringMatch: + + if v, ok := interface{}(m.GetStringMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ValueMatcherValidationError{ + field: "StringMatch", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ValueMatcher_BoolMatch: + // no validation rules for BoolMatch + + case *ValueMatcher_PresentMatch: + // no validation rules for PresentMatch + + case *ValueMatcher_ListMatch: + + if v, ok := interface{}(m.GetListMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ValueMatcherValidationError{ + field: "ListMatch", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return ValueMatcherValidationError{ + field: "MatchPattern", + reason: "value is required", + } + + } + + return nil +} + +// ValueMatcherValidationError is the validation error returned by +// ValueMatcher.Validate if the designated constraints aren't met. +type ValueMatcherValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ValueMatcherValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ValueMatcherValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ValueMatcherValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ValueMatcherValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ValueMatcherValidationError) ErrorName() string { return "ValueMatcherValidationError" } + +// Error satisfies the builtin error interface +func (e ValueMatcherValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sValueMatcher.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ValueMatcherValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ValueMatcherValidationError{} + +// Validate checks the field values on ListMatcher with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *ListMatcher) Validate() error { + if m == nil { + return nil + } + + switch m.MatchPattern.(type) { + + case *ListMatcher_OneOf: + + if v, ok := interface{}(m.GetOneOf()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListMatcherValidationError{ + field: "OneOf", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return ListMatcherValidationError{ + field: "MatchPattern", + reason: "value is required", + } + + } + + return nil +} + +// ListMatcherValidationError is the validation error returned by +// ListMatcher.Validate if the designated constraints aren't met. +type ListMatcherValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListMatcherValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListMatcherValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListMatcherValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListMatcherValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListMatcherValidationError) ErrorName() string { return "ListMatcherValidationError" } + +// Error satisfies the builtin error interface +func (e ListMatcherValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListMatcher.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListMatcherValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListMatcherValidationError{} + +// Validate checks the field values on ValueMatcher_NullMatch with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *ValueMatcher_NullMatch) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// ValueMatcher_NullMatchValidationError is the validation error returned by +// ValueMatcher_NullMatch.Validate if the designated constraints aren't met. +type ValueMatcher_NullMatchValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ValueMatcher_NullMatchValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ValueMatcher_NullMatchValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ValueMatcher_NullMatchValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ValueMatcher_NullMatchValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ValueMatcher_NullMatchValidationError) ErrorName() string { + return "ValueMatcher_NullMatchValidationError" +} + +// Error satisfies the builtin error interface +func (e ValueMatcher_NullMatchValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sValueMatcher_NullMatch.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ValueMatcher_NullMatchValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ValueMatcher_NullMatchValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/metadata/v3/metadata.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/metadata/v3/metadata.pb.go new file mode 100644 index 000000000..38fc2f24c --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/metadata/v3/metadata.pb.go @@ -0,0 +1,417 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/type/metadata/v3/metadata.proto + +package envoy_type_metadata_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type MetadataKey struct { + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Path []*MetadataKey_PathSegment `protobuf:"bytes,2,rep,name=path,proto3" json:"path,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MetadataKey) Reset() { *m = MetadataKey{} } +func (m *MetadataKey) String() string { return proto.CompactTextString(m) } +func (*MetadataKey) ProtoMessage() {} +func (*MetadataKey) Descriptor() ([]byte, []int) { + return fileDescriptor_5e32e19e721ad753, []int{0} +} + +func (m *MetadataKey) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MetadataKey.Unmarshal(m, b) +} +func (m *MetadataKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MetadataKey.Marshal(b, m, deterministic) +} +func (m *MetadataKey) XXX_Merge(src proto.Message) { + xxx_messageInfo_MetadataKey.Merge(m, src) +} +func (m *MetadataKey) XXX_Size() int { + return xxx_messageInfo_MetadataKey.Size(m) +} +func (m *MetadataKey) XXX_DiscardUnknown() { + xxx_messageInfo_MetadataKey.DiscardUnknown(m) +} + +var xxx_messageInfo_MetadataKey proto.InternalMessageInfo + +func (m *MetadataKey) GetKey() string { + if m != nil { + return m.Key + } + return "" +} + +func (m *MetadataKey) GetPath() []*MetadataKey_PathSegment { + if m != nil { + return m.Path + } + return nil +} + +type MetadataKey_PathSegment struct { + // Types that are valid to be assigned to Segment: + // *MetadataKey_PathSegment_Key + Segment isMetadataKey_PathSegment_Segment `protobuf_oneof:"segment"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MetadataKey_PathSegment) Reset() { *m = MetadataKey_PathSegment{} } +func (m *MetadataKey_PathSegment) String() string { return proto.CompactTextString(m) } +func (*MetadataKey_PathSegment) ProtoMessage() {} +func (*MetadataKey_PathSegment) Descriptor() ([]byte, []int) { + return fileDescriptor_5e32e19e721ad753, []int{0, 0} +} + +func (m *MetadataKey_PathSegment) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MetadataKey_PathSegment.Unmarshal(m, b) +} +func (m *MetadataKey_PathSegment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MetadataKey_PathSegment.Marshal(b, m, deterministic) +} +func (m *MetadataKey_PathSegment) XXX_Merge(src proto.Message) { + xxx_messageInfo_MetadataKey_PathSegment.Merge(m, src) +} +func (m *MetadataKey_PathSegment) XXX_Size() int { + return xxx_messageInfo_MetadataKey_PathSegment.Size(m) +} +func (m *MetadataKey_PathSegment) XXX_DiscardUnknown() { + xxx_messageInfo_MetadataKey_PathSegment.DiscardUnknown(m) +} + +var xxx_messageInfo_MetadataKey_PathSegment proto.InternalMessageInfo + +type isMetadataKey_PathSegment_Segment interface { + isMetadataKey_PathSegment_Segment() +} + +type MetadataKey_PathSegment_Key struct { + Key string `protobuf:"bytes,1,opt,name=key,proto3,oneof"` +} + +func (*MetadataKey_PathSegment_Key) isMetadataKey_PathSegment_Segment() {} + +func (m *MetadataKey_PathSegment) GetSegment() isMetadataKey_PathSegment_Segment { + if m != nil { + return m.Segment + } + return nil +} + +func (m *MetadataKey_PathSegment) GetKey() string { + if x, ok := m.GetSegment().(*MetadataKey_PathSegment_Key); ok { + return x.Key + } + return "" +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*MetadataKey_PathSegment) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*MetadataKey_PathSegment_Key)(nil), + } +} + +type MetadataKind struct { + // Types that are valid to be assigned to Kind: + // *MetadataKind_Request_ + // *MetadataKind_Route_ + // *MetadataKind_Cluster_ + // *MetadataKind_Host_ + Kind isMetadataKind_Kind `protobuf_oneof:"kind"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MetadataKind) Reset() { *m = MetadataKind{} } +func (m *MetadataKind) String() string { return proto.CompactTextString(m) } +func (*MetadataKind) ProtoMessage() {} +func (*MetadataKind) Descriptor() ([]byte, []int) { + return fileDescriptor_5e32e19e721ad753, []int{1} +} + +func (m *MetadataKind) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MetadataKind.Unmarshal(m, b) +} +func (m *MetadataKind) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MetadataKind.Marshal(b, m, deterministic) +} +func (m *MetadataKind) XXX_Merge(src proto.Message) { + xxx_messageInfo_MetadataKind.Merge(m, src) +} +func (m *MetadataKind) XXX_Size() int { + return xxx_messageInfo_MetadataKind.Size(m) +} +func (m *MetadataKind) XXX_DiscardUnknown() { + xxx_messageInfo_MetadataKind.DiscardUnknown(m) +} + +var xxx_messageInfo_MetadataKind proto.InternalMessageInfo + +type isMetadataKind_Kind interface { + isMetadataKind_Kind() +} + +type MetadataKind_Request_ struct { + Request *MetadataKind_Request `protobuf:"bytes,1,opt,name=request,proto3,oneof"` +} + +type MetadataKind_Route_ struct { + Route *MetadataKind_Route `protobuf:"bytes,2,opt,name=route,proto3,oneof"` +} + +type MetadataKind_Cluster_ struct { + Cluster *MetadataKind_Cluster `protobuf:"bytes,3,opt,name=cluster,proto3,oneof"` +} + +type MetadataKind_Host_ struct { + Host *MetadataKind_Host `protobuf:"bytes,4,opt,name=host,proto3,oneof"` +} + +func (*MetadataKind_Request_) isMetadataKind_Kind() {} + +func (*MetadataKind_Route_) isMetadataKind_Kind() {} + +func (*MetadataKind_Cluster_) isMetadataKind_Kind() {} + +func (*MetadataKind_Host_) isMetadataKind_Kind() {} + +func (m *MetadataKind) GetKind() isMetadataKind_Kind { + if m != nil { + return m.Kind + } + return nil +} + +func (m *MetadataKind) GetRequest() *MetadataKind_Request { + if x, ok := m.GetKind().(*MetadataKind_Request_); ok { + return x.Request + } + return nil +} + +func (m *MetadataKind) GetRoute() *MetadataKind_Route { + if x, ok := m.GetKind().(*MetadataKind_Route_); ok { + return x.Route + } + return nil +} + +func (m *MetadataKind) GetCluster() *MetadataKind_Cluster { + if x, ok := m.GetKind().(*MetadataKind_Cluster_); ok { + return x.Cluster + } + return nil +} + +func (m *MetadataKind) GetHost() *MetadataKind_Host { + if x, ok := m.GetKind().(*MetadataKind_Host_); ok { + return x.Host + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*MetadataKind) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*MetadataKind_Request_)(nil), + (*MetadataKind_Route_)(nil), + (*MetadataKind_Cluster_)(nil), + (*MetadataKind_Host_)(nil), + } +} + +type MetadataKind_Request struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MetadataKind_Request) Reset() { *m = MetadataKind_Request{} } +func (m *MetadataKind_Request) String() string { return proto.CompactTextString(m) } +func (*MetadataKind_Request) ProtoMessage() {} +func (*MetadataKind_Request) Descriptor() ([]byte, []int) { + return fileDescriptor_5e32e19e721ad753, []int{1, 0} +} + +func (m *MetadataKind_Request) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MetadataKind_Request.Unmarshal(m, b) +} +func (m *MetadataKind_Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MetadataKind_Request.Marshal(b, m, deterministic) +} +func (m *MetadataKind_Request) XXX_Merge(src proto.Message) { + xxx_messageInfo_MetadataKind_Request.Merge(m, src) +} +func (m *MetadataKind_Request) XXX_Size() int { + return xxx_messageInfo_MetadataKind_Request.Size(m) +} +func (m *MetadataKind_Request) XXX_DiscardUnknown() { + xxx_messageInfo_MetadataKind_Request.DiscardUnknown(m) +} + +var xxx_messageInfo_MetadataKind_Request proto.InternalMessageInfo + +type MetadataKind_Route struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MetadataKind_Route) Reset() { *m = MetadataKind_Route{} } +func (m *MetadataKind_Route) String() string { return proto.CompactTextString(m) } +func (*MetadataKind_Route) ProtoMessage() {} +func (*MetadataKind_Route) Descriptor() ([]byte, []int) { + return fileDescriptor_5e32e19e721ad753, []int{1, 1} +} + +func (m *MetadataKind_Route) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MetadataKind_Route.Unmarshal(m, b) +} +func (m *MetadataKind_Route) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MetadataKind_Route.Marshal(b, m, deterministic) +} +func (m *MetadataKind_Route) XXX_Merge(src proto.Message) { + xxx_messageInfo_MetadataKind_Route.Merge(m, src) +} +func (m *MetadataKind_Route) XXX_Size() int { + return xxx_messageInfo_MetadataKind_Route.Size(m) +} +func (m *MetadataKind_Route) XXX_DiscardUnknown() { + xxx_messageInfo_MetadataKind_Route.DiscardUnknown(m) +} + +var xxx_messageInfo_MetadataKind_Route proto.InternalMessageInfo + +type MetadataKind_Cluster struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MetadataKind_Cluster) Reset() { *m = MetadataKind_Cluster{} } +func (m *MetadataKind_Cluster) String() string { return proto.CompactTextString(m) } +func (*MetadataKind_Cluster) ProtoMessage() {} +func (*MetadataKind_Cluster) Descriptor() ([]byte, []int) { + return fileDescriptor_5e32e19e721ad753, []int{1, 2} +} + +func (m *MetadataKind_Cluster) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MetadataKind_Cluster.Unmarshal(m, b) +} +func (m *MetadataKind_Cluster) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MetadataKind_Cluster.Marshal(b, m, deterministic) +} +func (m *MetadataKind_Cluster) XXX_Merge(src proto.Message) { + xxx_messageInfo_MetadataKind_Cluster.Merge(m, src) +} +func (m *MetadataKind_Cluster) XXX_Size() int { + return xxx_messageInfo_MetadataKind_Cluster.Size(m) +} +func (m *MetadataKind_Cluster) XXX_DiscardUnknown() { + xxx_messageInfo_MetadataKind_Cluster.DiscardUnknown(m) +} + +var xxx_messageInfo_MetadataKind_Cluster proto.InternalMessageInfo + +type MetadataKind_Host struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MetadataKind_Host) Reset() { *m = MetadataKind_Host{} } +func (m *MetadataKind_Host) String() string { return proto.CompactTextString(m) } +func (*MetadataKind_Host) ProtoMessage() {} +func (*MetadataKind_Host) Descriptor() ([]byte, []int) { + return fileDescriptor_5e32e19e721ad753, []int{1, 3} +} + +func (m *MetadataKind_Host) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MetadataKind_Host.Unmarshal(m, b) +} +func (m *MetadataKind_Host) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MetadataKind_Host.Marshal(b, m, deterministic) +} +func (m *MetadataKind_Host) XXX_Merge(src proto.Message) { + xxx_messageInfo_MetadataKind_Host.Merge(m, src) +} +func (m *MetadataKind_Host) XXX_Size() int { + return xxx_messageInfo_MetadataKind_Host.Size(m) +} +func (m *MetadataKind_Host) XXX_DiscardUnknown() { + xxx_messageInfo_MetadataKind_Host.DiscardUnknown(m) +} + +var xxx_messageInfo_MetadataKind_Host proto.InternalMessageInfo + +func init() { + proto.RegisterType((*MetadataKey)(nil), "envoy.type.metadata.v3.MetadataKey") + proto.RegisterType((*MetadataKey_PathSegment)(nil), "envoy.type.metadata.v3.MetadataKey.PathSegment") + proto.RegisterType((*MetadataKind)(nil), "envoy.type.metadata.v3.MetadataKind") + proto.RegisterType((*MetadataKind_Request)(nil), "envoy.type.metadata.v3.MetadataKind.Request") + proto.RegisterType((*MetadataKind_Route)(nil), "envoy.type.metadata.v3.MetadataKind.Route") + proto.RegisterType((*MetadataKind_Cluster)(nil), "envoy.type.metadata.v3.MetadataKind.Cluster") + proto.RegisterType((*MetadataKind_Host)(nil), "envoy.type.metadata.v3.MetadataKind.Host") +} + +func init() { + proto.RegisterFile("envoy/type/metadata/v3/metadata.proto", fileDescriptor_5e32e19e721ad753) +} + +var fileDescriptor_5e32e19e721ad753 = []byte{ + // 467 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x93, 0x41, 0x8b, 0xd3, 0x40, + 0x14, 0xc7, 0x9b, 0x34, 0xdd, 0xae, 0x2f, 0x2a, 0x92, 0x83, 0xc6, 0x88, 0x52, 0xeb, 0x2e, 0xb4, + 0x5d, 0x4d, 0x96, 0x16, 0x11, 0x03, 0xb2, 0x30, 0x5e, 0x02, 0xb2, 0x50, 0xe2, 0x27, 0x18, 0xcd, + 0xb0, 0x0d, 0xbb, 0x3b, 0x93, 0xcd, 0x4c, 0x82, 0xb9, 0x79, 0xf4, 0x2c, 0x78, 0xf1, 0xa3, 0x78, + 0x17, 0xbc, 0xea, 0xa7, 0x91, 0x3d, 0xc9, 0x9b, 0xa4, 0xa5, 0x60, 0x97, 0xa6, 0xb7, 0x49, 0xde, + 0xfb, 0xfd, 0xff, 0xef, 0xfd, 0x99, 0x81, 0x43, 0xc6, 0x4b, 0x51, 0x05, 0xaa, 0xca, 0x58, 0x70, + 0xc9, 0x14, 0x4d, 0xa8, 0xa2, 0x41, 0x39, 0x5b, 0x9d, 0xfd, 0x2c, 0x17, 0x4a, 0x38, 0xf7, 0x75, + 0x9b, 0x8f, 0x6d, 0xfe, 0xaa, 0x54, 0xce, 0xbc, 0xc7, 0x45, 0x92, 0xd1, 0x80, 0x72, 0x2e, 0x14, + 0x55, 0xa9, 0xe0, 0x32, 0x90, 0x8a, 0xaa, 0x42, 0xd6, 0x98, 0xf7, 0xf4, 0xbf, 0x72, 0xc9, 0x72, + 0x99, 0x0a, 0x9e, 0xf2, 0xb3, 0xa6, 0xe5, 0x41, 0x49, 0x2f, 0xd2, 0x84, 0x2a, 0x16, 0x2c, 0x0f, + 0x75, 0x61, 0xf8, 0xcd, 0x04, 0xfb, 0xb4, 0xb1, 0x7a, 0xc7, 0x2a, 0xe7, 0x21, 0x74, 0xcf, 0x59, + 0xe5, 0x1a, 0x03, 0x63, 0x74, 0x8b, 0xf4, 0xaf, 0x89, 0x95, 0x9b, 0x03, 0x23, 0xc6, 0x7f, 0xce, + 0x29, 0x58, 0x19, 0x55, 0x0b, 0xd7, 0x1c, 0x74, 0x47, 0xf6, 0x34, 0xf0, 0x37, 0x0f, 0xeb, 0xaf, + 0xa9, 0xf9, 0x73, 0xaa, 0x16, 0xef, 0xd9, 0xd9, 0x25, 0xe3, 0x8a, 0xec, 0x5f, 0x93, 0xde, 0x57, + 0xc3, 0xdc, 0x37, 0x62, 0x2d, 0xe3, 0x5d, 0x81, 0xbd, 0x56, 0x76, 0x1e, 0x6d, 0x32, 0x8e, 0x3a, + 0xda, 0x3a, 0x7c, 0xf9, 0xfd, 0xe7, 0x97, 0x27, 0xc7, 0xb0, 0xd9, 0x72, 0x7a, 0xa3, 0xe5, 0x5d, + 0xe8, 0xcb, 0x46, 0xbe, 0xfb, 0x97, 0x18, 0xe1, 0x18, 0x65, 0x0e, 0x60, 0xb8, 0x5d, 0x66, 0xf8, + 0xc7, 0x82, 0xdb, 0xab, 0xef, 0x94, 0x27, 0x4e, 0x04, 0xfd, 0x9c, 0x5d, 0x15, 0x4c, 0x2a, 0x3d, + 0xa3, 0x3d, 0x7d, 0xbe, 0x35, 0x80, 0x94, 0x27, 0x7e, 0x5c, 0x33, 0x51, 0x27, 0x5e, 0xe2, 0x0e, + 0x81, 0x5e, 0x2e, 0x0a, 0xc5, 0x5c, 0x53, 0xeb, 0x4c, 0xda, 0xe9, 0x20, 0x11, 0x75, 0xe2, 0x1a, + 0xc5, 0x69, 0x3e, 0x5e, 0x14, 0x52, 0xb1, 0xdc, 0xed, 0xee, 0x30, 0xcd, 0xdb, 0x9a, 0xc1, 0x69, + 0x1a, 0xdc, 0x39, 0x01, 0x6b, 0x21, 0xa4, 0x72, 0x2d, 0x2d, 0x33, 0x6e, 0x25, 0x13, 0x09, 0xbd, + 0x91, 0x06, 0xbd, 0x37, 0xd0, 0x6f, 0x96, 0x0c, 0xa7, 0x98, 0xef, 0x0b, 0x38, 0xda, 0x96, 0xef, + 0x5a, 0x30, 0xde, 0x6b, 0xe8, 0xe9, 0xdd, 0xc2, 0x63, 0x84, 0x8f, 0x60, 0xdc, 0x0a, 0x46, 0x02, + 0x9d, 0x9b, 0x85, 0x76, 0x72, 0x6e, 0x18, 0xef, 0x15, 0x58, 0xb8, 0x48, 0x18, 0x20, 0x3b, 0x81, + 0x51, 0x1b, 0x56, 0x03, 0x13, 0x04, 0x0e, 0xe1, 0x59, 0x0b, 0x80, 0xd8, 0x60, 0x9d, 0xe3, 0xf5, + 0xc1, 0xfb, 0x47, 0x4e, 0x7e, 0x7c, 0xfe, 0xf5, 0x7b, 0xcf, 0xbc, 0x67, 0xc2, 0x41, 0x2a, 0xea, + 0xa4, 0xb3, 0x5c, 0x7c, 0xaa, 0x6e, 0x08, 0x9d, 0xdc, 0x59, 0x4a, 0xcd, 0xf1, 0xad, 0xce, 0x8d, + 0x0f, 0x7b, 0xfa, 0xd1, 0xce, 0xfe, 0x05, 0x00, 0x00, 0xff, 0xff, 0x7d, 0x33, 0x2d, 0xea, 0x50, + 0x04, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/metadata/v3/metadata.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/metadata/v3/metadata.pb.validate.go new file mode 100644 index 000000000..5ff9355cb --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/metadata/v3/metadata.pb.validate.go @@ -0,0 +1,608 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/type/metadata/v3/metadata.proto + +package envoy_type_metadata_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _metadata_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on MetadataKey with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *MetadataKey) Validate() error { + if m == nil { + return nil + } + + if len(m.GetKey()) < 1 { + return MetadataKeyValidationError{ + field: "Key", + reason: "value length must be at least 1 bytes", + } + } + + if len(m.GetPath()) < 1 { + return MetadataKeyValidationError{ + field: "Path", + reason: "value must contain at least 1 item(s)", + } + } + + for idx, item := range m.GetPath() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return MetadataKeyValidationError{ + field: fmt.Sprintf("Path[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + return nil +} + +// MetadataKeyValidationError is the validation error returned by +// MetadataKey.Validate if the designated constraints aren't met. +type MetadataKeyValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MetadataKeyValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MetadataKeyValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MetadataKeyValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MetadataKeyValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MetadataKeyValidationError) ErrorName() string { return "MetadataKeyValidationError" } + +// Error satisfies the builtin error interface +func (e MetadataKeyValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMetadataKey.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MetadataKeyValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MetadataKeyValidationError{} + +// Validate checks the field values on MetadataKind with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *MetadataKind) Validate() error { + if m == nil { + return nil + } + + switch m.Kind.(type) { + + case *MetadataKind_Request_: + + if v, ok := interface{}(m.GetRequest()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return MetadataKindValidationError{ + field: "Request", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *MetadataKind_Route_: + + if v, ok := interface{}(m.GetRoute()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return MetadataKindValidationError{ + field: "Route", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *MetadataKind_Cluster_: + + if v, ok := interface{}(m.GetCluster()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return MetadataKindValidationError{ + field: "Cluster", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *MetadataKind_Host_: + + if v, ok := interface{}(m.GetHost()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return MetadataKindValidationError{ + field: "Host", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return MetadataKindValidationError{ + field: "Kind", + reason: "value is required", + } + + } + + return nil +} + +// MetadataKindValidationError is the validation error returned by +// MetadataKind.Validate if the designated constraints aren't met. +type MetadataKindValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MetadataKindValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MetadataKindValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MetadataKindValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MetadataKindValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MetadataKindValidationError) ErrorName() string { return "MetadataKindValidationError" } + +// Error satisfies the builtin error interface +func (e MetadataKindValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMetadataKind.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MetadataKindValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MetadataKindValidationError{} + +// Validate checks the field values on MetadataKey_PathSegment with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *MetadataKey_PathSegment) Validate() error { + if m == nil { + return nil + } + + switch m.Segment.(type) { + + case *MetadataKey_PathSegment_Key: + + if len(m.GetKey()) < 1 { + return MetadataKey_PathSegmentValidationError{ + field: "Key", + reason: "value length must be at least 1 bytes", + } + } + + default: + return MetadataKey_PathSegmentValidationError{ + field: "Segment", + reason: "value is required", + } + + } + + return nil +} + +// MetadataKey_PathSegmentValidationError is the validation error returned by +// MetadataKey_PathSegment.Validate if the designated constraints aren't met. +type MetadataKey_PathSegmentValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MetadataKey_PathSegmentValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MetadataKey_PathSegmentValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MetadataKey_PathSegmentValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MetadataKey_PathSegmentValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MetadataKey_PathSegmentValidationError) ErrorName() string { + return "MetadataKey_PathSegmentValidationError" +} + +// Error satisfies the builtin error interface +func (e MetadataKey_PathSegmentValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMetadataKey_PathSegment.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MetadataKey_PathSegmentValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MetadataKey_PathSegmentValidationError{} + +// Validate checks the field values on MetadataKind_Request with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *MetadataKind_Request) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// MetadataKind_RequestValidationError is the validation error returned by +// MetadataKind_Request.Validate if the designated constraints aren't met. +type MetadataKind_RequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MetadataKind_RequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MetadataKind_RequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MetadataKind_RequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MetadataKind_RequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MetadataKind_RequestValidationError) ErrorName() string { + return "MetadataKind_RequestValidationError" +} + +// Error satisfies the builtin error interface +func (e MetadataKind_RequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMetadataKind_Request.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MetadataKind_RequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MetadataKind_RequestValidationError{} + +// Validate checks the field values on MetadataKind_Route with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *MetadataKind_Route) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// MetadataKind_RouteValidationError is the validation error returned by +// MetadataKind_Route.Validate if the designated constraints aren't met. +type MetadataKind_RouteValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MetadataKind_RouteValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MetadataKind_RouteValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MetadataKind_RouteValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MetadataKind_RouteValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MetadataKind_RouteValidationError) ErrorName() string { + return "MetadataKind_RouteValidationError" +} + +// Error satisfies the builtin error interface +func (e MetadataKind_RouteValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMetadataKind_Route.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MetadataKind_RouteValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MetadataKind_RouteValidationError{} + +// Validate checks the field values on MetadataKind_Cluster with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *MetadataKind_Cluster) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// MetadataKind_ClusterValidationError is the validation error returned by +// MetadataKind_Cluster.Validate if the designated constraints aren't met. +type MetadataKind_ClusterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MetadataKind_ClusterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MetadataKind_ClusterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MetadataKind_ClusterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MetadataKind_ClusterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MetadataKind_ClusterValidationError) ErrorName() string { + return "MetadataKind_ClusterValidationError" +} + +// Error satisfies the builtin error interface +func (e MetadataKind_ClusterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMetadataKind_Cluster.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MetadataKind_ClusterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MetadataKind_ClusterValidationError{} + +// Validate checks the field values on MetadataKind_Host with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *MetadataKind_Host) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// MetadataKind_HostValidationError is the validation error returned by +// MetadataKind_Host.Validate if the designated constraints aren't met. +type MetadataKind_HostValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MetadataKind_HostValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MetadataKind_HostValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MetadataKind_HostValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MetadataKind_HostValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MetadataKind_HostValidationError) ErrorName() string { + return "MetadataKind_HostValidationError" +} + +// Error satisfies the builtin error interface +func (e MetadataKind_HostValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMetadataKind_Host.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MetadataKind_HostValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MetadataKind_HostValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3/custom_tag.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3/custom_tag.pb.go new file mode 100644 index 000000000..6741f2770 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3/custom_tag.pb.go @@ -0,0 +1,381 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/type/tracing/v3/custom_tag.proto + +package envoy_type_tracing_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + v3 "github.com/envoyproxy/go-control-plane/envoy/type/metadata/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type CustomTag struct { + Tag string `protobuf:"bytes,1,opt,name=tag,proto3" json:"tag,omitempty"` + // Types that are valid to be assigned to Type: + // *CustomTag_Literal_ + // *CustomTag_Environment_ + // *CustomTag_RequestHeader + // *CustomTag_Metadata_ + Type isCustomTag_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CustomTag) Reset() { *m = CustomTag{} } +func (m *CustomTag) String() string { return proto.CompactTextString(m) } +func (*CustomTag) ProtoMessage() {} +func (*CustomTag) Descriptor() ([]byte, []int) { + return fileDescriptor_75fb41267f4395b6, []int{0} +} + +func (m *CustomTag) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CustomTag.Unmarshal(m, b) +} +func (m *CustomTag) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CustomTag.Marshal(b, m, deterministic) +} +func (m *CustomTag) XXX_Merge(src proto.Message) { + xxx_messageInfo_CustomTag.Merge(m, src) +} +func (m *CustomTag) XXX_Size() int { + return xxx_messageInfo_CustomTag.Size(m) +} +func (m *CustomTag) XXX_DiscardUnknown() { + xxx_messageInfo_CustomTag.DiscardUnknown(m) +} + +var xxx_messageInfo_CustomTag proto.InternalMessageInfo + +func (m *CustomTag) GetTag() string { + if m != nil { + return m.Tag + } + return "" +} + +type isCustomTag_Type interface { + isCustomTag_Type() +} + +type CustomTag_Literal_ struct { + Literal *CustomTag_Literal `protobuf:"bytes,2,opt,name=literal,proto3,oneof"` +} + +type CustomTag_Environment_ struct { + Environment *CustomTag_Environment `protobuf:"bytes,3,opt,name=environment,proto3,oneof"` +} + +type CustomTag_RequestHeader struct { + RequestHeader *CustomTag_Header `protobuf:"bytes,4,opt,name=request_header,json=requestHeader,proto3,oneof"` +} + +type CustomTag_Metadata_ struct { + Metadata *CustomTag_Metadata `protobuf:"bytes,5,opt,name=metadata,proto3,oneof"` +} + +func (*CustomTag_Literal_) isCustomTag_Type() {} + +func (*CustomTag_Environment_) isCustomTag_Type() {} + +func (*CustomTag_RequestHeader) isCustomTag_Type() {} + +func (*CustomTag_Metadata_) isCustomTag_Type() {} + +func (m *CustomTag) GetType() isCustomTag_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *CustomTag) GetLiteral() *CustomTag_Literal { + if x, ok := m.GetType().(*CustomTag_Literal_); ok { + return x.Literal + } + return nil +} + +func (m *CustomTag) GetEnvironment() *CustomTag_Environment { + if x, ok := m.GetType().(*CustomTag_Environment_); ok { + return x.Environment + } + return nil +} + +func (m *CustomTag) GetRequestHeader() *CustomTag_Header { + if x, ok := m.GetType().(*CustomTag_RequestHeader); ok { + return x.RequestHeader + } + return nil +} + +func (m *CustomTag) GetMetadata() *CustomTag_Metadata { + if x, ok := m.GetType().(*CustomTag_Metadata_); ok { + return x.Metadata + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*CustomTag) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*CustomTag_Literal_)(nil), + (*CustomTag_Environment_)(nil), + (*CustomTag_RequestHeader)(nil), + (*CustomTag_Metadata_)(nil), + } +} + +type CustomTag_Literal struct { + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CustomTag_Literal) Reset() { *m = CustomTag_Literal{} } +func (m *CustomTag_Literal) String() string { return proto.CompactTextString(m) } +func (*CustomTag_Literal) ProtoMessage() {} +func (*CustomTag_Literal) Descriptor() ([]byte, []int) { + return fileDescriptor_75fb41267f4395b6, []int{0, 0} +} + +func (m *CustomTag_Literal) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CustomTag_Literal.Unmarshal(m, b) +} +func (m *CustomTag_Literal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CustomTag_Literal.Marshal(b, m, deterministic) +} +func (m *CustomTag_Literal) XXX_Merge(src proto.Message) { + xxx_messageInfo_CustomTag_Literal.Merge(m, src) +} +func (m *CustomTag_Literal) XXX_Size() int { + return xxx_messageInfo_CustomTag_Literal.Size(m) +} +func (m *CustomTag_Literal) XXX_DiscardUnknown() { + xxx_messageInfo_CustomTag_Literal.DiscardUnknown(m) +} + +var xxx_messageInfo_CustomTag_Literal proto.InternalMessageInfo + +func (m *CustomTag_Literal) GetValue() string { + if m != nil { + return m.Value + } + return "" +} + +type CustomTag_Environment struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + DefaultValue string `protobuf:"bytes,2,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CustomTag_Environment) Reset() { *m = CustomTag_Environment{} } +func (m *CustomTag_Environment) String() string { return proto.CompactTextString(m) } +func (*CustomTag_Environment) ProtoMessage() {} +func (*CustomTag_Environment) Descriptor() ([]byte, []int) { + return fileDescriptor_75fb41267f4395b6, []int{0, 1} +} + +func (m *CustomTag_Environment) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CustomTag_Environment.Unmarshal(m, b) +} +func (m *CustomTag_Environment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CustomTag_Environment.Marshal(b, m, deterministic) +} +func (m *CustomTag_Environment) XXX_Merge(src proto.Message) { + xxx_messageInfo_CustomTag_Environment.Merge(m, src) +} +func (m *CustomTag_Environment) XXX_Size() int { + return xxx_messageInfo_CustomTag_Environment.Size(m) +} +func (m *CustomTag_Environment) XXX_DiscardUnknown() { + xxx_messageInfo_CustomTag_Environment.DiscardUnknown(m) +} + +var xxx_messageInfo_CustomTag_Environment proto.InternalMessageInfo + +func (m *CustomTag_Environment) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *CustomTag_Environment) GetDefaultValue() string { + if m != nil { + return m.DefaultValue + } + return "" +} + +type CustomTag_Header struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + DefaultValue string `protobuf:"bytes,2,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CustomTag_Header) Reset() { *m = CustomTag_Header{} } +func (m *CustomTag_Header) String() string { return proto.CompactTextString(m) } +func (*CustomTag_Header) ProtoMessage() {} +func (*CustomTag_Header) Descriptor() ([]byte, []int) { + return fileDescriptor_75fb41267f4395b6, []int{0, 2} +} + +func (m *CustomTag_Header) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CustomTag_Header.Unmarshal(m, b) +} +func (m *CustomTag_Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CustomTag_Header.Marshal(b, m, deterministic) +} +func (m *CustomTag_Header) XXX_Merge(src proto.Message) { + xxx_messageInfo_CustomTag_Header.Merge(m, src) +} +func (m *CustomTag_Header) XXX_Size() int { + return xxx_messageInfo_CustomTag_Header.Size(m) +} +func (m *CustomTag_Header) XXX_DiscardUnknown() { + xxx_messageInfo_CustomTag_Header.DiscardUnknown(m) +} + +var xxx_messageInfo_CustomTag_Header proto.InternalMessageInfo + +func (m *CustomTag_Header) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *CustomTag_Header) GetDefaultValue() string { + if m != nil { + return m.DefaultValue + } + return "" +} + +type CustomTag_Metadata struct { + Kind *v3.MetadataKind `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"` + MetadataKey *v3.MetadataKey `protobuf:"bytes,2,opt,name=metadata_key,json=metadataKey,proto3" json:"metadata_key,omitempty"` + DefaultValue string `protobuf:"bytes,3,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CustomTag_Metadata) Reset() { *m = CustomTag_Metadata{} } +func (m *CustomTag_Metadata) String() string { return proto.CompactTextString(m) } +func (*CustomTag_Metadata) ProtoMessage() {} +func (*CustomTag_Metadata) Descriptor() ([]byte, []int) { + return fileDescriptor_75fb41267f4395b6, []int{0, 3} +} + +func (m *CustomTag_Metadata) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CustomTag_Metadata.Unmarshal(m, b) +} +func (m *CustomTag_Metadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CustomTag_Metadata.Marshal(b, m, deterministic) +} +func (m *CustomTag_Metadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_CustomTag_Metadata.Merge(m, src) +} +func (m *CustomTag_Metadata) XXX_Size() int { + return xxx_messageInfo_CustomTag_Metadata.Size(m) +} +func (m *CustomTag_Metadata) XXX_DiscardUnknown() { + xxx_messageInfo_CustomTag_Metadata.DiscardUnknown(m) +} + +var xxx_messageInfo_CustomTag_Metadata proto.InternalMessageInfo + +func (m *CustomTag_Metadata) GetKind() *v3.MetadataKind { + if m != nil { + return m.Kind + } + return nil +} + +func (m *CustomTag_Metadata) GetMetadataKey() *v3.MetadataKey { + if m != nil { + return m.MetadataKey + } + return nil +} + +func (m *CustomTag_Metadata) GetDefaultValue() string { + if m != nil { + return m.DefaultValue + } + return "" +} + +func init() { + proto.RegisterType((*CustomTag)(nil), "envoy.type.tracing.v3.CustomTag") + proto.RegisterType((*CustomTag_Literal)(nil), "envoy.type.tracing.v3.CustomTag.Literal") + proto.RegisterType((*CustomTag_Environment)(nil), "envoy.type.tracing.v3.CustomTag.Environment") + proto.RegisterType((*CustomTag_Header)(nil), "envoy.type.tracing.v3.CustomTag.Header") + proto.RegisterType((*CustomTag_Metadata)(nil), "envoy.type.tracing.v3.CustomTag.Metadata") +} + +func init() { + proto.RegisterFile("envoy/type/tracing/v3/custom_tag.proto", fileDescriptor_75fb41267f4395b6) +} + +var fileDescriptor_75fb41267f4395b6 = []byte{ + // 551 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x4d, 0x8b, 0xd3, 0x40, + 0x18, 0xee, 0xb4, 0xdd, 0x7e, 0xbc, 0xd9, 0x2e, 0x32, 0x20, 0xd6, 0xc8, 0x6a, 0x6b, 0x75, 0xb7, + 0xab, 0x6e, 0x02, 0xed, 0x45, 0xf6, 0x22, 0xc4, 0xaf, 0x82, 0x0a, 0x25, 0x88, 0x78, 0x2b, 0xe3, + 0x66, 0xac, 0x61, 0xdb, 0x99, 0x3a, 0x99, 0x04, 0x73, 0x52, 0xf0, 0xe2, 0x6f, 0xf0, 0xa7, 0x78, + 0xf2, 0x22, 0xec, 0x55, 0xf0, 0x17, 0xf8, 0x2b, 0x64, 0x4f, 0x32, 0x93, 0x8f, 0x8d, 0xb6, 0x18, + 0xbc, 0x25, 0xef, 0xfb, 0x3c, 0xcf, 0xfb, 0xbc, 0xcf, 0x24, 0x03, 0x7b, 0x94, 0x45, 0x3c, 0xb6, + 0x65, 0xbc, 0xa2, 0xb6, 0x14, 0xe4, 0xd8, 0x67, 0x73, 0x3b, 0x1a, 0xdb, 0xc7, 0x61, 0x20, 0xf9, + 0x72, 0x26, 0xc9, 0xdc, 0x5a, 0x09, 0x2e, 0x39, 0xbe, 0xa8, 0x71, 0x96, 0xc2, 0x59, 0x29, 0xce, + 0x8a, 0xc6, 0xe6, 0xcd, 0x02, 0x7d, 0x49, 0x25, 0xf1, 0x88, 0x24, 0x8a, 0x9f, 0x3d, 0x27, 0x6c, + 0x73, 0x37, 0xf4, 0x56, 0xc4, 0x26, 0x8c, 0x71, 0x49, 0xa4, 0xcf, 0x59, 0x60, 0x07, 0x92, 0xc8, + 0x30, 0x48, 0xdb, 0xfd, 0xb5, 0x76, 0x44, 0x45, 0xe0, 0x73, 0xa6, 0xa6, 0x24, 0x90, 0x4b, 0x11, + 0x59, 0xf8, 0x1e, 0x91, 0xd4, 0xce, 0x1e, 0x92, 0xc6, 0xf5, 0x1f, 0x4d, 0x68, 0xdf, 0xd7, 0x6e, + 0x9f, 0x93, 0x39, 0xbe, 0x0c, 0x35, 0x49, 0xe6, 0x5d, 0xd4, 0x43, 0xc3, 0xb6, 0xd3, 0x3c, 0x73, + 0xea, 0xa2, 0xda, 0x43, 0xae, 0xaa, 0xe1, 0x07, 0xd0, 0x5c, 0xf8, 0x92, 0x0a, 0xb2, 0xe8, 0x56, + 0x7b, 0x68, 0x68, 0x8c, 0x86, 0xd6, 0xc6, 0x9d, 0xac, 0x5c, 0xcd, 0x7a, 0x9a, 0xe0, 0x27, 0x15, + 0x37, 0xa3, 0xe2, 0x29, 0x18, 0x94, 0x45, 0xbe, 0xe0, 0x6c, 0x49, 0x99, 0xec, 0xd6, 0xb4, 0xd2, + 0x9d, 0x52, 0xa5, 0x87, 0xe7, 0x9c, 0x49, 0xc5, 0x2d, 0x4a, 0xe0, 0x29, 0xec, 0x08, 0xfa, 0x36, + 0xa4, 0x81, 0x9c, 0xbd, 0xa1, 0xc4, 0xa3, 0xa2, 0x5b, 0xd7, 0xa2, 0xfb, 0xa5, 0xa2, 0x13, 0x0d, + 0x9f, 0x54, 0xdc, 0x4e, 0x2a, 0x90, 0x14, 0xf0, 0x63, 0x68, 0x65, 0xf9, 0x77, 0xb7, 0xb4, 0xd6, + 0x41, 0xa9, 0xd6, 0xb3, 0x94, 0x30, 0xa9, 0xb8, 0x39, 0xd9, 0x7c, 0x09, 0xcd, 0x34, 0x02, 0xbc, + 0x0b, 0x5b, 0x11, 0x59, 0x84, 0xf4, 0xef, 0x68, 0x93, 0xea, 0x91, 0xf5, 0xf9, 0xdb, 0xa7, 0xab, + 0x07, 0xb0, 0xbf, 0x69, 0xcc, 0x68, 0x3d, 0x51, 0xf3, 0x23, 0x02, 0xa3, 0x90, 0x09, 0xbe, 0x02, + 0x75, 0x46, 0x96, 0x6b, 0xea, 0xba, 0x88, 0x07, 0xd0, 0xf1, 0xe8, 0x6b, 0x12, 0x2e, 0xe4, 0x2c, + 0xf1, 0xa0, 0xce, 0xaf, 0xed, 0x6e, 0xa7, 0xc5, 0x17, 0xda, 0xc1, 0x48, 0x39, 0x38, 0x84, 0xdb, + 0x65, 0x0e, 0x0a, 0x53, 0xcd, 0xf7, 0xd0, 0x48, 0x23, 0xeb, 0xff, 0x31, 0xbf, 0x73, 0xe6, 0x80, + 0x68, 0xf5, 0xd0, 0x57, 0x84, 0x4e, 0x51, 0xe5, 0x7f, 0x5c, 0x1c, 0x2a, 0x17, 0xc3, 0xf4, 0xaf, + 0xfa, 0x87, 0x8b, 0x64, 0xac, 0xf9, 0x13, 0x41, 0x2b, 0x4b, 0x1e, 0xdf, 0x85, 0xfa, 0x89, 0xcf, + 0x3c, 0xed, 0xc1, 0x18, 0xdd, 0x28, 0x1e, 0x59, 0xfe, 0x3b, 0x45, 0xe3, 0xfc, 0xa4, 0x9e, 0xf8, + 0xcc, 0x73, 0x35, 0x03, 0x3f, 0x82, 0xed, 0x0c, 0x31, 0x3b, 0xa1, 0x71, 0xfa, 0x7d, 0x0f, 0x4a, + 0x15, 0x68, 0xec, 0x1a, 0xcb, 0xf3, 0x97, 0xf5, 0x15, 0x6b, 0x1b, 0x56, 0xb4, 0xd5, 0x8a, 0xb7, + 0x60, 0x58, 0xb6, 0x62, 0x36, 0xe5, 0x68, 0x4f, 0x11, 0xfa, 0x70, 0xad, 0x84, 0xe0, 0x18, 0x50, + 0x57, 0x4d, 0x5c, 0xfb, 0xe5, 0x20, 0xe7, 0xde, 0x97, 0x0f, 0xa7, 0xdf, 0x1b, 0xd5, 0x0b, 0x55, + 0x18, 0xf8, 0x3c, 0x59, 0x64, 0x25, 0xf8, 0xbb, 0x78, 0xf3, 0x87, 0xec, 0xec, 0xe4, 0x32, 0x53, + 0x75, 0x2b, 0x4c, 0xd1, 0xab, 0x86, 0xbe, 0x1e, 0xc6, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xea, + 0x72, 0x4f, 0xac, 0xe1, 0x04, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3/custom_tag.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3/custom_tag.pb.validate.go new file mode 100644 index 000000000..634781556 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3/custom_tag.pb.validate.go @@ -0,0 +1,488 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/type/tracing/v3/custom_tag.proto + +package envoy_type_tracing_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _custom_tag_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on CustomTag with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *CustomTag) Validate() error { + if m == nil { + return nil + } + + if len(m.GetTag()) < 1 { + return CustomTagValidationError{ + field: "Tag", + reason: "value length must be at least 1 bytes", + } + } + + switch m.Type.(type) { + + case *CustomTag_Literal_: + + if v, ok := interface{}(m.GetLiteral()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CustomTagValidationError{ + field: "Literal", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *CustomTag_Environment_: + + if v, ok := interface{}(m.GetEnvironment()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CustomTagValidationError{ + field: "Environment", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *CustomTag_RequestHeader: + + if v, ok := interface{}(m.GetRequestHeader()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CustomTagValidationError{ + field: "RequestHeader", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *CustomTag_Metadata_: + + if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CustomTagValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return CustomTagValidationError{ + field: "Type", + reason: "value is required", + } + + } + + return nil +} + +// CustomTagValidationError is the validation error returned by +// CustomTag.Validate if the designated constraints aren't met. +type CustomTagValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CustomTagValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CustomTagValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CustomTagValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CustomTagValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CustomTagValidationError) ErrorName() string { return "CustomTagValidationError" } + +// Error satisfies the builtin error interface +func (e CustomTagValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCustomTag.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CustomTagValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CustomTagValidationError{} + +// Validate checks the field values on CustomTag_Literal with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *CustomTag_Literal) Validate() error { + if m == nil { + return nil + } + + if len(m.GetValue()) < 1 { + return CustomTag_LiteralValidationError{ + field: "Value", + reason: "value length must be at least 1 bytes", + } + } + + return nil +} + +// CustomTag_LiteralValidationError is the validation error returned by +// CustomTag_Literal.Validate if the designated constraints aren't met. +type CustomTag_LiteralValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CustomTag_LiteralValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CustomTag_LiteralValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CustomTag_LiteralValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CustomTag_LiteralValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CustomTag_LiteralValidationError) ErrorName() string { + return "CustomTag_LiteralValidationError" +} + +// Error satisfies the builtin error interface +func (e CustomTag_LiteralValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCustomTag_Literal.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CustomTag_LiteralValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CustomTag_LiteralValidationError{} + +// Validate checks the field values on CustomTag_Environment with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *CustomTag_Environment) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return CustomTag_EnvironmentValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + // no validation rules for DefaultValue + + return nil +} + +// CustomTag_EnvironmentValidationError is the validation error returned by +// CustomTag_Environment.Validate if the designated constraints aren't met. +type CustomTag_EnvironmentValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CustomTag_EnvironmentValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CustomTag_EnvironmentValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CustomTag_EnvironmentValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CustomTag_EnvironmentValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CustomTag_EnvironmentValidationError) ErrorName() string { + return "CustomTag_EnvironmentValidationError" +} + +// Error satisfies the builtin error interface +func (e CustomTag_EnvironmentValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCustomTag_Environment.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CustomTag_EnvironmentValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CustomTag_EnvironmentValidationError{} + +// Validate checks the field values on CustomTag_Header with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *CustomTag_Header) Validate() error { + if m == nil { + return nil + } + + if len(m.GetName()) < 1 { + return CustomTag_HeaderValidationError{ + field: "Name", + reason: "value length must be at least 1 bytes", + } + } + + if !_CustomTag_Header_Name_Pattern.MatchString(m.GetName()) { + return CustomTag_HeaderValidationError{ + field: "Name", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + } + + // no validation rules for DefaultValue + + return nil +} + +// CustomTag_HeaderValidationError is the validation error returned by +// CustomTag_Header.Validate if the designated constraints aren't met. +type CustomTag_HeaderValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CustomTag_HeaderValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CustomTag_HeaderValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CustomTag_HeaderValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CustomTag_HeaderValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CustomTag_HeaderValidationError) ErrorName() string { return "CustomTag_HeaderValidationError" } + +// Error satisfies the builtin error interface +func (e CustomTag_HeaderValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCustomTag_Header.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CustomTag_HeaderValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CustomTag_HeaderValidationError{} + +var _CustomTag_Header_Name_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +// Validate checks the field values on CustomTag_Metadata with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *CustomTag_Metadata) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetKind()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CustomTag_MetadataValidationError{ + field: "Kind", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetMetadataKey()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CustomTag_MetadataValidationError{ + field: "MetadataKey", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for DefaultValue + + return nil +} + +// CustomTag_MetadataValidationError is the validation error returned by +// CustomTag_Metadata.Validate if the designated constraints aren't met. +type CustomTag_MetadataValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CustomTag_MetadataValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CustomTag_MetadataValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CustomTag_MetadataValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CustomTag_MetadataValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CustomTag_MetadataValidationError) ErrorName() string { + return "CustomTag_MetadataValidationError" +} + +// Error satisfies the builtin error interface +func (e CustomTag_MetadataValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCustomTag_Metadata.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CustomTag_MetadataValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CustomTag_MetadataValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/hash_policy.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/hash_policy.pb.go new file mode 100644 index 000000000..e16b91bc4 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/hash_policy.pb.go @@ -0,0 +1,147 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/type/v3/hash_policy.proto + +package envoy_type_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type HashPolicy struct { + // Types that are valid to be assigned to PolicySpecifier: + // *HashPolicy_SourceIp_ + PolicySpecifier isHashPolicy_PolicySpecifier `protobuf_oneof:"policy_specifier"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HashPolicy) Reset() { *m = HashPolicy{} } +func (m *HashPolicy) String() string { return proto.CompactTextString(m) } +func (*HashPolicy) ProtoMessage() {} +func (*HashPolicy) Descriptor() ([]byte, []int) { + return fileDescriptor_6cc16c1c24253da6, []int{0} +} + +func (m *HashPolicy) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HashPolicy.Unmarshal(m, b) +} +func (m *HashPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HashPolicy.Marshal(b, m, deterministic) +} +func (m *HashPolicy) XXX_Merge(src proto.Message) { + xxx_messageInfo_HashPolicy.Merge(m, src) +} +func (m *HashPolicy) XXX_Size() int { + return xxx_messageInfo_HashPolicy.Size(m) +} +func (m *HashPolicy) XXX_DiscardUnknown() { + xxx_messageInfo_HashPolicy.DiscardUnknown(m) +} + +var xxx_messageInfo_HashPolicy proto.InternalMessageInfo + +type isHashPolicy_PolicySpecifier interface { + isHashPolicy_PolicySpecifier() +} + +type HashPolicy_SourceIp_ struct { + SourceIp *HashPolicy_SourceIp `protobuf:"bytes,1,opt,name=source_ip,json=sourceIp,proto3,oneof"` +} + +func (*HashPolicy_SourceIp_) isHashPolicy_PolicySpecifier() {} + +func (m *HashPolicy) GetPolicySpecifier() isHashPolicy_PolicySpecifier { + if m != nil { + return m.PolicySpecifier + } + return nil +} + +func (m *HashPolicy) GetSourceIp() *HashPolicy_SourceIp { + if x, ok := m.GetPolicySpecifier().(*HashPolicy_SourceIp_); ok { + return x.SourceIp + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*HashPolicy) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*HashPolicy_SourceIp_)(nil), + } +} + +type HashPolicy_SourceIp struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HashPolicy_SourceIp) Reset() { *m = HashPolicy_SourceIp{} } +func (m *HashPolicy_SourceIp) String() string { return proto.CompactTextString(m) } +func (*HashPolicy_SourceIp) ProtoMessage() {} +func (*HashPolicy_SourceIp) Descriptor() ([]byte, []int) { + return fileDescriptor_6cc16c1c24253da6, []int{0, 0} +} + +func (m *HashPolicy_SourceIp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HashPolicy_SourceIp.Unmarshal(m, b) +} +func (m *HashPolicy_SourceIp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HashPolicy_SourceIp.Marshal(b, m, deterministic) +} +func (m *HashPolicy_SourceIp) XXX_Merge(src proto.Message) { + xxx_messageInfo_HashPolicy_SourceIp.Merge(m, src) +} +func (m *HashPolicy_SourceIp) XXX_Size() int { + return xxx_messageInfo_HashPolicy_SourceIp.Size(m) +} +func (m *HashPolicy_SourceIp) XXX_DiscardUnknown() { + xxx_messageInfo_HashPolicy_SourceIp.DiscardUnknown(m) +} + +var xxx_messageInfo_HashPolicy_SourceIp proto.InternalMessageInfo + +func init() { + proto.RegisterType((*HashPolicy)(nil), "envoy.type.v3.HashPolicy") + proto.RegisterType((*HashPolicy_SourceIp)(nil), "envoy.type.v3.HashPolicy.SourceIp") +} + +func init() { proto.RegisterFile("envoy/type/v3/hash_policy.proto", fileDescriptor_6cc16c1c24253da6) } + +var fileDescriptor_6cc16c1c24253da6 = []byte{ + // 265 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4f, 0xcd, 0x2b, 0xcb, + 0xaf, 0xd4, 0x2f, 0xa9, 0x2c, 0x48, 0xd5, 0x2f, 0x33, 0xd6, 0xcf, 0x48, 0x2c, 0xce, 0x88, 0x2f, + 0xc8, 0xcf, 0xc9, 0x4c, 0xae, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x05, 0x2b, 0xd0, + 0x03, 0x29, 0xd0, 0x2b, 0x33, 0x96, 0x92, 0x2d, 0x4d, 0x29, 0x48, 0xd4, 0x4f, 0xcc, 0xcb, 0xcb, + 0x2f, 0x49, 0x2c, 0xc9, 0xcc, 0xcf, 0x2b, 0xd6, 0x2f, 0x2e, 0x49, 0x2c, 0x29, 0x2d, 0x86, 0xa8, + 0x96, 0x52, 0xc4, 0x90, 0x2e, 0x4b, 0x2d, 0x2a, 0xce, 0xcc, 0xcf, 0xcb, 0xcc, 0x4b, 0x87, 0x2a, + 0x11, 0x2f, 0x4b, 0xcc, 0xc9, 0x4c, 0x49, 0x2c, 0x49, 0xd5, 0x87, 0x31, 0x20, 0x12, 0x4a, 0x3b, + 0x19, 0xb9, 0xb8, 0x3c, 0x12, 0x8b, 0x33, 0x02, 0xc0, 0xd6, 0x0b, 0x39, 0x72, 0x71, 0x16, 0xe7, + 0x97, 0x16, 0x25, 0xa7, 0xc6, 0x67, 0x16, 0x48, 0x30, 0x2a, 0x30, 0x6a, 0x70, 0x1b, 0x29, 0xe9, + 0xa1, 0x38, 0x46, 0x0f, 0xa1, 0x5a, 0x2f, 0x18, 0xac, 0xd4, 0xb3, 0xc0, 0x83, 0x21, 0x88, 0xa3, + 0x18, 0xca, 0x96, 0x32, 0xe4, 0xe2, 0x80, 0x89, 0x5b, 0xa9, 0xce, 0x3a, 0xda, 0x21, 0xa7, 0xc0, + 0x25, 0x87, 0x64, 0x02, 0x16, 0xed, 0x56, 0x32, 0x20, 0x65, 0xe2, 0x5c, 0xa2, 0x58, 0x95, 0x39, + 0x89, 0x73, 0x09, 0x40, 0x02, 0x27, 0xbe, 0xb8, 0x20, 0x35, 0x39, 0x33, 0x2d, 0x33, 0xb5, 0x48, + 0x88, 0xf9, 0x87, 0x13, 0xa3, 0x93, 0xc5, 0xae, 0x86, 0x13, 0x17, 0xd9, 0x98, 0x04, 0x98, 0xb8, + 0xa4, 0x33, 0xf3, 0x21, 0xae, 0x2c, 0x28, 0xca, 0xaf, 0xa8, 0x44, 0x75, 0xb0, 0x13, 0x3f, 0xc2, + 0xac, 0x00, 0x90, 0x9f, 0x03, 0x18, 0x93, 0xd8, 0xc0, 0x9e, 0x37, 0x06, 0x04, 0x00, 0x00, 0xff, + 0xff, 0x2e, 0x27, 0x3a, 0x24, 0x89, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/hash_policy.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/hash_policy.pb.validate.go new file mode 100644 index 000000000..60b8f42c9 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/hash_policy.pb.validate.go @@ -0,0 +1,190 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/type/v3/hash_policy.proto + +package envoy_type_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _hash_policy_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on HashPolicy with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *HashPolicy) Validate() error { + if m == nil { + return nil + } + + switch m.PolicySpecifier.(type) { + + case *HashPolicy_SourceIp_: + + if v, ok := interface{}(m.GetSourceIp()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HashPolicyValidationError{ + field: "SourceIp", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + return HashPolicyValidationError{ + field: "PolicySpecifier", + reason: "value is required", + } + + } + + return nil +} + +// HashPolicyValidationError is the validation error returned by +// HashPolicy.Validate if the designated constraints aren't met. +type HashPolicyValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HashPolicyValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HashPolicyValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HashPolicyValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HashPolicyValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HashPolicyValidationError) ErrorName() string { return "HashPolicyValidationError" } + +// Error satisfies the builtin error interface +func (e HashPolicyValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHashPolicy.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HashPolicyValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HashPolicyValidationError{} + +// Validate checks the field values on HashPolicy_SourceIp with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *HashPolicy_SourceIp) Validate() error { + if m == nil { + return nil + } + + return nil +} + +// HashPolicy_SourceIpValidationError is the validation error returned by +// HashPolicy_SourceIp.Validate if the designated constraints aren't met. +type HashPolicy_SourceIpValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HashPolicy_SourceIpValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HashPolicy_SourceIpValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HashPolicy_SourceIpValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HashPolicy_SourceIpValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HashPolicy_SourceIpValidationError) ErrorName() string { + return "HashPolicy_SourceIpValidationError" +} + +// Error satisfies the builtin error interface +func (e HashPolicy_SourceIpValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHashPolicy_SourceIp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HashPolicy_SourceIpValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HashPolicy_SourceIpValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/http.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/http.pb.go new file mode 100644 index 000000000..d76d5d09e --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/http.pb.go @@ -0,0 +1,71 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/type/v3/http.proto + +package envoy_type_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type CodecClientType int32 + +const ( + CodecClientType_HTTP1 CodecClientType = 0 + CodecClientType_HTTP2 CodecClientType = 1 + CodecClientType_HTTP3 CodecClientType = 2 +) + +var CodecClientType_name = map[int32]string{ + 0: "HTTP1", + 1: "HTTP2", + 2: "HTTP3", +} + +var CodecClientType_value = map[string]int32{ + "HTTP1": 0, + "HTTP2": 1, + "HTTP3": 2, +} + +func (x CodecClientType) String() string { + return proto.EnumName(CodecClientType_name, int32(x)) +} + +func (CodecClientType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_be3dbeecdd3b88ea, []int{0} +} + +func init() { + proto.RegisterEnum("envoy.type.v3.CodecClientType", CodecClientType_name, CodecClientType_value) +} + +func init() { proto.RegisterFile("envoy/type/v3/http.proto", fileDescriptor_be3dbeecdd3b88ea) } + +var fileDescriptor_be3dbeecdd3b88ea = []byte{ + // 168 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x48, 0xcd, 0x2b, 0xcb, + 0xaf, 0xd4, 0x2f, 0xa9, 0x2c, 0x48, 0xd5, 0x2f, 0x33, 0xd6, 0xcf, 0x28, 0x29, 0x29, 0xd0, 0x2b, + 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x05, 0xcb, 0xe8, 0x81, 0x64, 0xf4, 0xca, 0x8c, 0xa5, 0x64, + 0x4b, 0x53, 0x0a, 0x12, 0xf5, 0x13, 0xf3, 0xf2, 0xf2, 0x4b, 0x12, 0x4b, 0x32, 0xf3, 0xf3, 0x8a, + 0xf5, 0x8b, 0x4b, 0x12, 0x4b, 0x4a, 0x8b, 0x21, 0xaa, 0xb5, 0x8c, 0xb8, 0xf8, 0x9d, 0xf3, 0x53, + 0x52, 0x93, 0x9d, 0x73, 0x32, 0x53, 0xf3, 0x4a, 0x42, 0x2a, 0x0b, 0x52, 0x85, 0x38, 0xb9, 0x58, + 0x3d, 0x42, 0x42, 0x02, 0x0c, 0x05, 0x18, 0x60, 0x4c, 0x23, 0x01, 0x46, 0x18, 0xd3, 0x58, 0x80, + 0xc9, 0xc9, 0x68, 0x57, 0xc3, 0x89, 0x8b, 0x6c, 0x4c, 0x02, 0x4c, 0x5c, 0xd2, 0x99, 0xf9, 0x7a, + 0x60, 0xeb, 0x0a, 0x8a, 0xf2, 0x2b, 0x2a, 0xf5, 0x50, 0x6c, 0x76, 0xe2, 0xf4, 0x28, 0x29, 0x29, + 0x08, 0x00, 0xd9, 0x12, 0xc0, 0x98, 0xc4, 0x06, 0xb6, 0xce, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, + 0x4e, 0x89, 0xa2, 0x9d, 0xb8, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/http.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/http.pb.validate.go new file mode 100644 index 000000000..7e9f844ce --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/http.pb.validate.go @@ -0,0 +1,37 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/type/v3/http.proto + +package envoy_type_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _http_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/http_status.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/http_status.pb.go new file mode 100644 index 000000000..f767689e8 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/http_status.pb.go @@ -0,0 +1,324 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/type/v3/http_status.proto + +package envoy_type_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type StatusCode int32 + +const ( + StatusCode_Empty StatusCode = 0 + StatusCode_Continue StatusCode = 100 + StatusCode_OK StatusCode = 200 + StatusCode_Created StatusCode = 201 + StatusCode_Accepted StatusCode = 202 + StatusCode_NonAuthoritativeInformation StatusCode = 203 + StatusCode_NoContent StatusCode = 204 + StatusCode_ResetContent StatusCode = 205 + StatusCode_PartialContent StatusCode = 206 + StatusCode_MultiStatus StatusCode = 207 + StatusCode_AlreadyReported StatusCode = 208 + StatusCode_IMUsed StatusCode = 226 + StatusCode_MultipleChoices StatusCode = 300 + StatusCode_MovedPermanently StatusCode = 301 + StatusCode_Found StatusCode = 302 + StatusCode_SeeOther StatusCode = 303 + StatusCode_NotModified StatusCode = 304 + StatusCode_UseProxy StatusCode = 305 + StatusCode_TemporaryRedirect StatusCode = 307 + StatusCode_PermanentRedirect StatusCode = 308 + StatusCode_BadRequest StatusCode = 400 + StatusCode_Unauthorized StatusCode = 401 + StatusCode_PaymentRequired StatusCode = 402 + StatusCode_Forbidden StatusCode = 403 + StatusCode_NotFound StatusCode = 404 + StatusCode_MethodNotAllowed StatusCode = 405 + StatusCode_NotAcceptable StatusCode = 406 + StatusCode_ProxyAuthenticationRequired StatusCode = 407 + StatusCode_RequestTimeout StatusCode = 408 + StatusCode_Conflict StatusCode = 409 + StatusCode_Gone StatusCode = 410 + StatusCode_LengthRequired StatusCode = 411 + StatusCode_PreconditionFailed StatusCode = 412 + StatusCode_PayloadTooLarge StatusCode = 413 + StatusCode_URITooLong StatusCode = 414 + StatusCode_UnsupportedMediaType StatusCode = 415 + StatusCode_RangeNotSatisfiable StatusCode = 416 + StatusCode_ExpectationFailed StatusCode = 417 + StatusCode_MisdirectedRequest StatusCode = 421 + StatusCode_UnprocessableEntity StatusCode = 422 + StatusCode_Locked StatusCode = 423 + StatusCode_FailedDependency StatusCode = 424 + StatusCode_UpgradeRequired StatusCode = 426 + StatusCode_PreconditionRequired StatusCode = 428 + StatusCode_TooManyRequests StatusCode = 429 + StatusCode_RequestHeaderFieldsTooLarge StatusCode = 431 + StatusCode_InternalServerError StatusCode = 500 + StatusCode_NotImplemented StatusCode = 501 + StatusCode_BadGateway StatusCode = 502 + StatusCode_ServiceUnavailable StatusCode = 503 + StatusCode_GatewayTimeout StatusCode = 504 + StatusCode_HTTPVersionNotSupported StatusCode = 505 + StatusCode_VariantAlsoNegotiates StatusCode = 506 + StatusCode_InsufficientStorage StatusCode = 507 + StatusCode_LoopDetected StatusCode = 508 + StatusCode_NotExtended StatusCode = 510 + StatusCode_NetworkAuthenticationRequired StatusCode = 511 +) + +var StatusCode_name = map[int32]string{ + 0: "Empty", + 100: "Continue", + 200: "OK", + 201: "Created", + 202: "Accepted", + 203: "NonAuthoritativeInformation", + 204: "NoContent", + 205: "ResetContent", + 206: "PartialContent", + 207: "MultiStatus", + 208: "AlreadyReported", + 226: "IMUsed", + 300: "MultipleChoices", + 301: "MovedPermanently", + 302: "Found", + 303: "SeeOther", + 304: "NotModified", + 305: "UseProxy", + 307: "TemporaryRedirect", + 308: "PermanentRedirect", + 400: "BadRequest", + 401: "Unauthorized", + 402: "PaymentRequired", + 403: "Forbidden", + 404: "NotFound", + 405: "MethodNotAllowed", + 406: "NotAcceptable", + 407: "ProxyAuthenticationRequired", + 408: "RequestTimeout", + 409: "Conflict", + 410: "Gone", + 411: "LengthRequired", + 412: "PreconditionFailed", + 413: "PayloadTooLarge", + 414: "URITooLong", + 415: "UnsupportedMediaType", + 416: "RangeNotSatisfiable", + 417: "ExpectationFailed", + 421: "MisdirectedRequest", + 422: "UnprocessableEntity", + 423: "Locked", + 424: "FailedDependency", + 426: "UpgradeRequired", + 428: "PreconditionRequired", + 429: "TooManyRequests", + 431: "RequestHeaderFieldsTooLarge", + 500: "InternalServerError", + 501: "NotImplemented", + 502: "BadGateway", + 503: "ServiceUnavailable", + 504: "GatewayTimeout", + 505: "HTTPVersionNotSupported", + 506: "VariantAlsoNegotiates", + 507: "InsufficientStorage", + 508: "LoopDetected", + 510: "NotExtended", + 511: "NetworkAuthenticationRequired", +} + +var StatusCode_value = map[string]int32{ + "Empty": 0, + "Continue": 100, + "OK": 200, + "Created": 201, + "Accepted": 202, + "NonAuthoritativeInformation": 203, + "NoContent": 204, + "ResetContent": 205, + "PartialContent": 206, + "MultiStatus": 207, + "AlreadyReported": 208, + "IMUsed": 226, + "MultipleChoices": 300, + "MovedPermanently": 301, + "Found": 302, + "SeeOther": 303, + "NotModified": 304, + "UseProxy": 305, + "TemporaryRedirect": 307, + "PermanentRedirect": 308, + "BadRequest": 400, + "Unauthorized": 401, + "PaymentRequired": 402, + "Forbidden": 403, + "NotFound": 404, + "MethodNotAllowed": 405, + "NotAcceptable": 406, + "ProxyAuthenticationRequired": 407, + "RequestTimeout": 408, + "Conflict": 409, + "Gone": 410, + "LengthRequired": 411, + "PreconditionFailed": 412, + "PayloadTooLarge": 413, + "URITooLong": 414, + "UnsupportedMediaType": 415, + "RangeNotSatisfiable": 416, + "ExpectationFailed": 417, + "MisdirectedRequest": 421, + "UnprocessableEntity": 422, + "Locked": 423, + "FailedDependency": 424, + "UpgradeRequired": 426, + "PreconditionRequired": 428, + "TooManyRequests": 429, + "RequestHeaderFieldsTooLarge": 431, + "InternalServerError": 500, + "NotImplemented": 501, + "BadGateway": 502, + "ServiceUnavailable": 503, + "GatewayTimeout": 504, + "HTTPVersionNotSupported": 505, + "VariantAlsoNegotiates": 506, + "InsufficientStorage": 507, + "LoopDetected": 508, + "NotExtended": 510, + "NetworkAuthenticationRequired": 511, +} + +func (x StatusCode) String() string { + return proto.EnumName(StatusCode_name, int32(x)) +} + +func (StatusCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_588aaadec77e6b51, []int{0} +} + +type HttpStatus struct { + Code StatusCode `protobuf:"varint,1,opt,name=code,proto3,enum=envoy.type.v3.StatusCode" json:"code,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HttpStatus) Reset() { *m = HttpStatus{} } +func (m *HttpStatus) String() string { return proto.CompactTextString(m) } +func (*HttpStatus) ProtoMessage() {} +func (*HttpStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_588aaadec77e6b51, []int{0} +} + +func (m *HttpStatus) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HttpStatus.Unmarshal(m, b) +} +func (m *HttpStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HttpStatus.Marshal(b, m, deterministic) +} +func (m *HttpStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_HttpStatus.Merge(m, src) +} +func (m *HttpStatus) XXX_Size() int { + return xxx_messageInfo_HttpStatus.Size(m) +} +func (m *HttpStatus) XXX_DiscardUnknown() { + xxx_messageInfo_HttpStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_HttpStatus proto.InternalMessageInfo + +func (m *HttpStatus) GetCode() StatusCode { + if m != nil { + return m.Code + } + return StatusCode_Empty +} + +func init() { + proto.RegisterEnum("envoy.type.v3.StatusCode", StatusCode_name, StatusCode_value) + proto.RegisterType((*HttpStatus)(nil), "envoy.type.v3.HttpStatus") +} + +func init() { proto.RegisterFile("envoy/type/v3/http_status.proto", fileDescriptor_588aaadec77e6b51) } + +var fileDescriptor_588aaadec77e6b51 = []byte{ + // 975 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x54, 0x49, 0x73, 0x1b, 0xc5, + 0x17, 0xcf, 0x68, 0xb2, 0xb9, 0x13, 0xdb, 0x2f, 0x9d, 0xf8, 0xef, 0xc4, 0x49, 0xfe, 0x98, 0x9c, + 0x28, 0x0e, 0x56, 0x15, 0xbe, 0x00, 0x37, 0xdb, 0xb1, 0x63, 0x17, 0x96, 0xa2, 0x92, 0xa5, 0x5c, + 0xa9, 0xf6, 0xf4, 0x93, 0xd4, 0x95, 0x51, 0xbf, 0x49, 0xcf, 0x93, 0xec, 0xe1, 0x44, 0x71, 0xe2, + 0xc8, 0xbe, 0x84, 0xfd, 0xc0, 0x52, 0x54, 0x42, 0xa0, 0x80, 0x0b, 0x77, 0xaa, 0xc2, 0x0e, 0x5f, + 0x81, 0xcf, 0xc0, 0x1a, 0x28, 0xa0, 0xba, 0xb5, 0xd8, 0x29, 0x8a, 0x9b, 0xf4, 0xfa, 0x2d, 0xbf, + 0xe5, 0xcd, 0x13, 0xf7, 0xa0, 0xed, 0x53, 0x51, 0xe6, 0x22, 0xc3, 0x72, 0x7f, 0xb1, 0xdc, 0x61, + 0xce, 0x1e, 0xcd, 0x59, 0x71, 0x2f, 0x5f, 0xc8, 0x1c, 0x31, 0xc9, 0xc9, 0x90, 0xb0, 0xe0, 0x13, + 0x16, 0xfa, 0x8b, 0x73, 0xe7, 0x7b, 0x3a, 0x53, 0x65, 0x65, 0x2d, 0xb1, 0x62, 0x43, 0x36, 0x2f, + 0xef, 0xcf, 0x9e, 0xbb, 0xf7, 0x5f, 0xcf, 0x7d, 0x74, 0xb9, 0x21, 0x6b, 0x6c, 0x7b, 0x98, 0x32, + 0xdb, 0x57, 0xa9, 0xd1, 0x8a, 0xb1, 0x3c, 0xfa, 0x31, 0x78, 0xb8, 0x80, 0x42, 0xac, 0x33, 0x67, + 0x5b, 0xa1, 0x9f, 0x7c, 0x48, 0x1c, 0x4c, 0x48, 0xe3, 0xe9, 0x68, 0x3e, 0xba, 0x6f, 0xea, 0x81, + 0x33, 0x0b, 0x77, 0xc1, 0x58, 0x18, 0x24, 0xad, 0x90, 0xc6, 0x65, 0x71, 0x67, 0xf9, 0xc8, 0x13, + 0xd1, 0x41, 0x88, 0xe6, 0x0f, 0xd4, 0x43, 0xc9, 0xc3, 0xe7, 0xae, 0x7f, 0xfe, 0xe4, 0xff, 0x67, + 0xc5, 0xcc, 0xbe, 0x92, 0xbd, 0xc6, 0xf7, 0x7f, 0x3a, 0x21, 0xc4, 0x5e, 0xb9, 0x9c, 0x10, 0x87, + 0x56, 0xbb, 0x19, 0x17, 0x70, 0x40, 0x1e, 0x17, 0x47, 0x57, 0xc8, 0xb2, 0xb1, 0x3d, 0x04, 0x2d, + 0x8f, 0x88, 0xd2, 0xe5, 0x47, 0xe0, 0x76, 0x24, 0x8f, 0x8b, 0x23, 0x2b, 0x0e, 0x15, 0xa3, 0x86, + 0x2f, 0x22, 0x39, 0x29, 0x8e, 0x2e, 0x25, 0x09, 0x66, 0xfe, 0xef, 0x97, 0x91, 0x9c, 0x17, 0x67, + 0xab, 0x64, 0x97, 0x7a, 0xdc, 0x21, 0x67, 0x3c, 0xe7, 0x3e, 0x6e, 0xd8, 0x16, 0xb9, 0x6e, 0xa0, + 0x0f, 0x5f, 0x45, 0x72, 0x4a, 0x4c, 0x54, 0xc9, 0xf7, 0x45, 0xcb, 0xf0, 0x75, 0x24, 0x4f, 0x88, + 0xe3, 0x75, 0xcc, 0x91, 0x47, 0xa1, 0x6f, 0x22, 0x79, 0x52, 0x4c, 0xd5, 0x94, 0x63, 0xa3, 0xd2, + 0x51, 0xf0, 0xdb, 0x48, 0x82, 0x38, 0x56, 0xe9, 0xa5, 0x6c, 0x06, 0x58, 0xe1, 0xbb, 0x48, 0x9e, + 0x12, 0xd3, 0x4b, 0xa9, 0x43, 0xa5, 0x8b, 0x3a, 0x66, 0xe4, 0x3c, 0x82, 0xef, 0x23, 0x79, 0x4c, + 0x1c, 0xde, 0xa8, 0x34, 0x73, 0xd4, 0xf0, 0x63, 0x48, 0x09, 0x45, 0x59, 0x8a, 0x2b, 0x1d, 0x32, + 0x09, 0xe6, 0x70, 0xa3, 0x24, 0x67, 0x04, 0x54, 0xa8, 0x8f, 0xba, 0x86, 0xae, 0xab, 0x2c, 0x5a, + 0x4e, 0x0b, 0xb8, 0x59, 0x92, 0x42, 0x1c, 0x5a, 0xa3, 0x9e, 0xd5, 0xf0, 0x41, 0xc9, 0xd3, 0xda, + 0x42, 0xbc, 0xcc, 0x1d, 0x74, 0x70, 0xab, 0xe4, 0x87, 0x57, 0x89, 0x2b, 0xa4, 0x4d, 0xcb, 0xa0, + 0x86, 0x0f, 0x43, 0x42, 0x33, 0xc7, 0x9a, 0xa3, 0xdd, 0x02, 0x3e, 0x2a, 0xc9, 0xff, 0x89, 0x13, + 0x0d, 0xec, 0x66, 0xe4, 0x94, 0x2b, 0xea, 0xa8, 0x8d, 0xc3, 0x84, 0xe1, 0xe3, 0x10, 0x1f, 0x4f, + 0x19, 0xc7, 0x3f, 0x29, 0xc9, 0x69, 0x21, 0x96, 0x95, 0xae, 0xe3, 0xb5, 0x1e, 0xe6, 0x0c, 0x4f, + 0xc5, 0x5e, 0x86, 0xa6, 0x55, 0x03, 0xdd, 0x1e, 0x43, 0x0d, 0x4f, 0xc7, 0x1e, 0x7c, 0x4d, 0x15, + 0xdd, 0x50, 0x79, 0xad, 0x67, 0x1c, 0x6a, 0x78, 0x26, 0xf6, 0xfa, 0xad, 0x91, 0xdb, 0x36, 0x5a, + 0xa3, 0x85, 0x67, 0x63, 0x0f, 0xa4, 0x4a, 0x3c, 0x00, 0xfe, 0x5c, 0x1c, 0xb8, 0x21, 0x77, 0x48, + 0x57, 0x89, 0x97, 0xd2, 0x94, 0x76, 0x50, 0xc3, 0xf3, 0xb1, 0x94, 0x62, 0xd2, 0x07, 0x82, 0x53, + 0x6a, 0x3b, 0x45, 0x78, 0x21, 0xf6, 0x5e, 0x05, 0xfc, 0xde, 0x2d, 0xb4, 0x6c, 0x92, 0xe0, 0xd1, + 0x78, 0xd6, 0x8b, 0xb1, 0x37, 0x62, 0x08, 0xb1, 0x61, 0xba, 0x48, 0x3d, 0x86, 0x97, 0xc2, 0xc0, + 0x15, 0xb2, 0xad, 0xd4, 0x24, 0x0c, 0x2f, 0xc7, 0x72, 0x42, 0x1c, 0xbc, 0x44, 0x16, 0xe1, 0x7a, + 0x48, 0xdf, 0x44, 0xdb, 0xe6, 0xce, 0xb8, 0xc7, 0x2b, 0xb1, 0x9c, 0x15, 0xb2, 0xe6, 0x30, 0x21, + 0xab, 0x8d, 0x6f, 0xbf, 0xa6, 0x4c, 0x8a, 0x1a, 0x5e, 0x1d, 0xd1, 0x4b, 0x49, 0xe9, 0x06, 0xd1, + 0xa6, 0x72, 0x6d, 0x84, 0xd7, 0x62, 0x2f, 0x4c, 0xb3, 0xbe, 0xe1, 0x23, 0x64, 0xdb, 0xf0, 0x7a, + 0x2c, 0xcf, 0x88, 0x53, 0x4d, 0x9b, 0xf7, 0xb2, 0x81, 0xc3, 0x15, 0xd4, 0x46, 0x35, 0x8a, 0x0c, + 0xe1, 0x8d, 0x58, 0x9e, 0x16, 0x27, 0xeb, 0xca, 0xb6, 0xb1, 0x4a, 0xbc, 0xa5, 0xd8, 0xe4, 0x2d, + 0x13, 0xa8, 0xbd, 0x19, 0x7b, 0xd9, 0x57, 0x77, 0x33, 0x4c, 0x06, 0x5f, 0xdd, 0x70, 0xe6, 0x5b, + 0x01, 0x4c, 0xc5, 0xe4, 0x03, 0x1b, 0x70, 0x2c, 0xff, 0xdb, 0xa1, 0x55, 0xd3, 0x66, 0x8e, 0x12, + 0xcc, 0x73, 0xdf, 0x64, 0xd5, 0xb2, 0xe1, 0x02, 0xde, 0x89, 0xfd, 0x3e, 0x6d, 0x52, 0x72, 0x15, + 0x35, 0xbc, 0x1b, 0xd4, 0x1d, 0x34, 0xbb, 0x88, 0x19, 0x5a, 0x8d, 0x36, 0x29, 0xe0, 0xbd, 0x40, + 0xa5, 0x99, 0xb5, 0x9d, 0xd2, 0x38, 0x66, 0xfe, 0x7e, 0x40, 0xbe, 0x9f, 0xf9, 0xf8, 0xe9, 0x46, + 0x28, 0x68, 0x10, 0x55, 0x94, 0x2d, 0x86, 0x18, 0x72, 0xb8, 0x19, 0x0c, 0x19, 0xfe, 0x5d, 0x47, + 0xa5, 0xd1, 0xad, 0x19, 0x4c, 0x75, 0x3e, 0x56, 0xe7, 0x56, 0x80, 0xb9, 0x61, 0x19, 0x9d, 0x55, + 0xe9, 0x16, 0xba, 0x3e, 0xba, 0x55, 0xe7, 0xc8, 0xc1, 0x4f, 0x41, 0xfb, 0x2a, 0xf1, 0x46, 0x37, + 0x4b, 0xd1, 0x6f, 0x0c, 0x6a, 0xf8, 0x39, 0x1e, 0x6e, 0xd9, 0x25, 0xc5, 0xb8, 0xa3, 0x0a, 0xf8, + 0x25, 0xf0, 0xf7, 0x75, 0x26, 0xc1, 0xa6, 0x55, 0x7d, 0x65, 0xd2, 0x20, 0xd8, 0xaf, 0xa1, 0x7c, + 0x98, 0x36, 0x72, 0xfa, 0xb7, 0x58, 0x9e, 0x13, 0xb3, 0xeb, 0x8d, 0x46, 0xed, 0xca, 0xe0, 0x64, + 0x79, 0x95, 0x47, 0x36, 0xc0, 0xef, 0xb1, 0x9c, 0x13, 0x33, 0x57, 0x94, 0x33, 0xca, 0xf2, 0x52, + 0x9a, 0x53, 0x15, 0xdb, 0xc4, 0x46, 0x31, 0xe6, 0x70, 0x67, 0x88, 0x33, 0xef, 0xb5, 0x5a, 0x26, + 0x31, 0x68, 0x79, 0x8b, 0xc9, 0xa9, 0x36, 0xc2, 0x1f, 0x61, 0xcf, 0x37, 0x89, 0xb2, 0x8b, 0xc8, + 0xc1, 0x02, 0xf8, 0x33, 0x1e, 0x7e, 0x5c, 0xab, 0xbb, 0xec, 0x15, 0xd5, 0xf0, 0x57, 0x2c, 0x2f, + 0x88, 0xf3, 0x55, 0xe4, 0x1d, 0x72, 0x57, 0xff, 0x63, 0x37, 0xff, 0x8e, 0x97, 0x1f, 0xfc, 0xec, + 0xf1, 0xdb, 0x3f, 0x1c, 0x2e, 0x41, 0x49, 0x9c, 0x35, 0x34, 0x38, 0x87, 0x99, 0xdf, 0xe6, 0xbb, + 0x2f, 0xe3, 0xf2, 0xf4, 0xde, 0xa9, 0xab, 0xf9, 0xb3, 0x5a, 0x8b, 0xb6, 0x0f, 0x87, 0xfb, 0xba, + 0xf8, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa2, 0x01, 0x4d, 0xee, 0xec, 0x05, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/http_status.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/http_status.pb.validate.go new file mode 100644 index 000000000..0df7c3889 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/http_status.pb.validate.go @@ -0,0 +1,119 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/type/v3/http_status.proto + +package envoy_type_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _http_status_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on HttpStatus with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *HttpStatus) Validate() error { + if m == nil { + return nil + } + + if _, ok := _HttpStatus_Code_NotInLookup[m.GetCode()]; ok { + return HttpStatusValidationError{ + field: "Code", + reason: "value must not be in list [0]", + } + } + + if _, ok := StatusCode_name[int32(m.GetCode())]; !ok { + return HttpStatusValidationError{ + field: "Code", + reason: "value must be one of the defined enum values", + } + } + + return nil +} + +// HttpStatusValidationError is the validation error returned by +// HttpStatus.Validate if the designated constraints aren't met. +type HttpStatusValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HttpStatusValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HttpStatusValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HttpStatusValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HttpStatusValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HttpStatusValidationError) ErrorName() string { return "HttpStatusValidationError" } + +// Error satisfies the builtin error interface +func (e HttpStatusValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHttpStatus.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HttpStatusValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HttpStatusValidationError{} + +var _HttpStatus_Code_NotInLookup = map[StatusCode]struct{}{ + 0: {}, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/percent.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/percent.pb.go new file mode 100644 index 000000000..24cf3f76c --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/percent.pb.go @@ -0,0 +1,172 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/type/v3/percent.proto + +package envoy_type_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type FractionalPercent_DenominatorType int32 + +const ( + FractionalPercent_HUNDRED FractionalPercent_DenominatorType = 0 + FractionalPercent_TEN_THOUSAND FractionalPercent_DenominatorType = 1 + FractionalPercent_MILLION FractionalPercent_DenominatorType = 2 +) + +var FractionalPercent_DenominatorType_name = map[int32]string{ + 0: "HUNDRED", + 1: "TEN_THOUSAND", + 2: "MILLION", +} + +var FractionalPercent_DenominatorType_value = map[string]int32{ + "HUNDRED": 0, + "TEN_THOUSAND": 1, + "MILLION": 2, +} + +func (x FractionalPercent_DenominatorType) String() string { + return proto.EnumName(FractionalPercent_DenominatorType_name, int32(x)) +} + +func (FractionalPercent_DenominatorType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_e15eda1cd726d6e9, []int{1, 0} +} + +type Percent struct { + Value float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Percent) Reset() { *m = Percent{} } +func (m *Percent) String() string { return proto.CompactTextString(m) } +func (*Percent) ProtoMessage() {} +func (*Percent) Descriptor() ([]byte, []int) { + return fileDescriptor_e15eda1cd726d6e9, []int{0} +} + +func (m *Percent) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Percent.Unmarshal(m, b) +} +func (m *Percent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Percent.Marshal(b, m, deterministic) +} +func (m *Percent) XXX_Merge(src proto.Message) { + xxx_messageInfo_Percent.Merge(m, src) +} +func (m *Percent) XXX_Size() int { + return xxx_messageInfo_Percent.Size(m) +} +func (m *Percent) XXX_DiscardUnknown() { + xxx_messageInfo_Percent.DiscardUnknown(m) +} + +var xxx_messageInfo_Percent proto.InternalMessageInfo + +func (m *Percent) GetValue() float64 { + if m != nil { + return m.Value + } + return 0 +} + +type FractionalPercent struct { + Numerator uint32 `protobuf:"varint,1,opt,name=numerator,proto3" json:"numerator,omitempty"` + Denominator FractionalPercent_DenominatorType `protobuf:"varint,2,opt,name=denominator,proto3,enum=envoy.type.v3.FractionalPercent_DenominatorType" json:"denominator,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FractionalPercent) Reset() { *m = FractionalPercent{} } +func (m *FractionalPercent) String() string { return proto.CompactTextString(m) } +func (*FractionalPercent) ProtoMessage() {} +func (*FractionalPercent) Descriptor() ([]byte, []int) { + return fileDescriptor_e15eda1cd726d6e9, []int{1} +} + +func (m *FractionalPercent) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FractionalPercent.Unmarshal(m, b) +} +func (m *FractionalPercent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FractionalPercent.Marshal(b, m, deterministic) +} +func (m *FractionalPercent) XXX_Merge(src proto.Message) { + xxx_messageInfo_FractionalPercent.Merge(m, src) +} +func (m *FractionalPercent) XXX_Size() int { + return xxx_messageInfo_FractionalPercent.Size(m) +} +func (m *FractionalPercent) XXX_DiscardUnknown() { + xxx_messageInfo_FractionalPercent.DiscardUnknown(m) +} + +var xxx_messageInfo_FractionalPercent proto.InternalMessageInfo + +func (m *FractionalPercent) GetNumerator() uint32 { + if m != nil { + return m.Numerator + } + return 0 +} + +func (m *FractionalPercent) GetDenominator() FractionalPercent_DenominatorType { + if m != nil { + return m.Denominator + } + return FractionalPercent_HUNDRED +} + +func init() { + proto.RegisterEnum("envoy.type.v3.FractionalPercent_DenominatorType", FractionalPercent_DenominatorType_name, FractionalPercent_DenominatorType_value) + proto.RegisterType((*Percent)(nil), "envoy.type.v3.Percent") + proto.RegisterType((*FractionalPercent)(nil), "envoy.type.v3.FractionalPercent") +} + +func init() { proto.RegisterFile("envoy/type/v3/percent.proto", fileDescriptor_e15eda1cd726d6e9) } + +var fileDescriptor_e15eda1cd726d6e9 = []byte{ + // 355 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4e, 0xcd, 0x2b, 0xcb, + 0xaf, 0xd4, 0x2f, 0xa9, 0x2c, 0x48, 0xd5, 0x2f, 0x33, 0xd6, 0x2f, 0x48, 0x2d, 0x4a, 0x4e, 0xcd, + 0x2b, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x05, 0x4b, 0xea, 0x81, 0x24, 0xf5, 0xca, + 0x8c, 0xa5, 0x64, 0x4b, 0x53, 0x0a, 0x12, 0xf5, 0x13, 0xf3, 0xf2, 0xf2, 0x4b, 0x12, 0x4b, 0x32, + 0xf3, 0xf3, 0x8a, 0xf5, 0x8b, 0x4b, 0x12, 0x4b, 0x4a, 0x8b, 0x21, 0xaa, 0xa5, 0x14, 0x31, 0xa4, + 0xcb, 0x52, 0x8b, 0x8a, 0x33, 0xf3, 0xf3, 0x32, 0xf3, 0xd2, 0xa1, 0x4a, 0xc4, 0xcb, 0x12, 0x73, + 0x32, 0x53, 0x12, 0x4b, 0x52, 0xf5, 0x61, 0x0c, 0x88, 0x84, 0x52, 0x30, 0x17, 0x7b, 0x00, 0xc4, + 0x6a, 0x21, 0x5d, 0x2e, 0xd6, 0xb2, 0xc4, 0x9c, 0xd2, 0x54, 0x09, 0x46, 0x05, 0x46, 0x0d, 0x46, + 0x27, 0xf1, 0x5f, 0x4e, 0x22, 0x42, 0x42, 0x92, 0x0c, 0x60, 0x10, 0xe9, 0xa0, 0xc9, 0x00, 0x05, + 0x41, 0x10, 0x55, 0x56, 0x92, 0xb3, 0x8e, 0x76, 0xc8, 0x89, 0x70, 0x09, 0x21, 0x39, 0x15, 0x6a, + 0x92, 0xd2, 0x67, 0x46, 0x2e, 0x41, 0xb7, 0xa2, 0xc4, 0x64, 0x90, 0x63, 0x12, 0x73, 0x60, 0xe6, + 0xcb, 0x70, 0x71, 0xe6, 0x95, 0xe6, 0xa6, 0x16, 0x25, 0x96, 0xe4, 0x17, 0x81, 0xed, 0xe0, 0x0d, + 0x42, 0x08, 0x08, 0xc5, 0x70, 0x71, 0xa7, 0xa4, 0xe6, 0xe5, 0xe7, 0x66, 0xe6, 0x81, 0xe5, 0x99, + 0x14, 0x18, 0x35, 0xf8, 0x8c, 0x0c, 0xf4, 0x50, 0x02, 0x42, 0x0f, 0xc3, 0x50, 0x3d, 0x17, 0x84, + 0x9e, 0x90, 0xca, 0x82, 0x54, 0x27, 0x8e, 0x5f, 0x4e, 0xac, 0x4d, 0x8c, 0x4c, 0x02, 0x8c, 0x41, + 0xc8, 0xc6, 0x29, 0xd9, 0x72, 0xf1, 0xa3, 0xa9, 0x14, 0xe2, 0xe6, 0x62, 0xf7, 0x08, 0xf5, 0x73, + 0x09, 0x72, 0x75, 0x11, 0x60, 0x10, 0x12, 0xe0, 0xe2, 0x09, 0x71, 0xf5, 0x8b, 0x0f, 0xf1, 0xf0, + 0x0f, 0x0d, 0x76, 0xf4, 0x73, 0x11, 0x60, 0x04, 0x49, 0xfb, 0x7a, 0xfa, 0xf8, 0x78, 0xfa, 0xfb, + 0x09, 0x30, 0x59, 0x29, 0x83, 0xfc, 0x2a, 0xc7, 0x25, 0x83, 0xe4, 0x1a, 0x0c, 0xa7, 0x38, 0x99, + 0xee, 0x6a, 0x38, 0x71, 0x91, 0x8d, 0x49, 0x80, 0x89, 0x4b, 0x3a, 0x33, 0x1f, 0xe2, 0xf0, 0x82, + 0xa2, 0xfc, 0x8a, 0x4a, 0x54, 0x3f, 0x38, 0xf1, 0x40, 0xd5, 0x07, 0x80, 0xc2, 0x3f, 0x80, 0x31, + 0x89, 0x0d, 0x1c, 0x11, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1b, 0x9f, 0xb3, 0xea, 0x11, + 0x02, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/percent.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/percent.pb.validate.go new file mode 100644 index 000000000..cc56e11ae --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/percent.pb.validate.go @@ -0,0 +1,184 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/type/v3/percent.proto + +package envoy_type_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _percent_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on Percent with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Percent) Validate() error { + if m == nil { + return nil + } + + if val := m.GetValue(); val < 0 || val > 100 { + return PercentValidationError{ + field: "Value", + reason: "value must be inside range [0, 100]", + } + } + + return nil +} + +// PercentValidationError is the validation error returned by Percent.Validate +// if the designated constraints aren't met. +type PercentValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e PercentValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e PercentValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e PercentValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e PercentValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e PercentValidationError) ErrorName() string { return "PercentValidationError" } + +// Error satisfies the builtin error interface +func (e PercentValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sPercent.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = PercentValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = PercentValidationError{} + +// Validate checks the field values on FractionalPercent with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *FractionalPercent) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Numerator + + if _, ok := FractionalPercent_DenominatorType_name[int32(m.GetDenominator())]; !ok { + return FractionalPercentValidationError{ + field: "Denominator", + reason: "value must be one of the defined enum values", + } + } + + return nil +} + +// FractionalPercentValidationError is the validation error returned by +// FractionalPercent.Validate if the designated constraints aren't met. +type FractionalPercentValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e FractionalPercentValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e FractionalPercentValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e FractionalPercentValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e FractionalPercentValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e FractionalPercentValidationError) ErrorName() string { + return "FractionalPercentValidationError" +} + +// Error satisfies the builtin error interface +func (e FractionalPercentValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sFractionalPercent.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = FractionalPercentValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = FractionalPercentValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/range.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/range.pb.go new file mode 100644 index 000000000..d91fa9991 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/range.pb.go @@ -0,0 +1,191 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/type/v3/range.proto + +package envoy_type_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type Int64Range struct { + Start int64 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"` + End int64 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Int64Range) Reset() { *m = Int64Range{} } +func (m *Int64Range) String() string { return proto.CompactTextString(m) } +func (*Int64Range) ProtoMessage() {} +func (*Int64Range) Descriptor() ([]byte, []int) { + return fileDescriptor_f7428ebfa7846465, []int{0} +} + +func (m *Int64Range) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Int64Range.Unmarshal(m, b) +} +func (m *Int64Range) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Int64Range.Marshal(b, m, deterministic) +} +func (m *Int64Range) XXX_Merge(src proto.Message) { + xxx_messageInfo_Int64Range.Merge(m, src) +} +func (m *Int64Range) XXX_Size() int { + return xxx_messageInfo_Int64Range.Size(m) +} +func (m *Int64Range) XXX_DiscardUnknown() { + xxx_messageInfo_Int64Range.DiscardUnknown(m) +} + +var xxx_messageInfo_Int64Range proto.InternalMessageInfo + +func (m *Int64Range) GetStart() int64 { + if m != nil { + return m.Start + } + return 0 +} + +func (m *Int64Range) GetEnd() int64 { + if m != nil { + return m.End + } + return 0 +} + +type Int32Range struct { + Start int32 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"` + End int32 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Int32Range) Reset() { *m = Int32Range{} } +func (m *Int32Range) String() string { return proto.CompactTextString(m) } +func (*Int32Range) ProtoMessage() {} +func (*Int32Range) Descriptor() ([]byte, []int) { + return fileDescriptor_f7428ebfa7846465, []int{1} +} + +func (m *Int32Range) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Int32Range.Unmarshal(m, b) +} +func (m *Int32Range) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Int32Range.Marshal(b, m, deterministic) +} +func (m *Int32Range) XXX_Merge(src proto.Message) { + xxx_messageInfo_Int32Range.Merge(m, src) +} +func (m *Int32Range) XXX_Size() int { + return xxx_messageInfo_Int32Range.Size(m) +} +func (m *Int32Range) XXX_DiscardUnknown() { + xxx_messageInfo_Int32Range.DiscardUnknown(m) +} + +var xxx_messageInfo_Int32Range proto.InternalMessageInfo + +func (m *Int32Range) GetStart() int32 { + if m != nil { + return m.Start + } + return 0 +} + +func (m *Int32Range) GetEnd() int32 { + if m != nil { + return m.End + } + return 0 +} + +type DoubleRange struct { + Start float64 `protobuf:"fixed64,1,opt,name=start,proto3" json:"start,omitempty"` + End float64 `protobuf:"fixed64,2,opt,name=end,proto3" json:"end,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DoubleRange) Reset() { *m = DoubleRange{} } +func (m *DoubleRange) String() string { return proto.CompactTextString(m) } +func (*DoubleRange) ProtoMessage() {} +func (*DoubleRange) Descriptor() ([]byte, []int) { + return fileDescriptor_f7428ebfa7846465, []int{2} +} + +func (m *DoubleRange) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DoubleRange.Unmarshal(m, b) +} +func (m *DoubleRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DoubleRange.Marshal(b, m, deterministic) +} +func (m *DoubleRange) XXX_Merge(src proto.Message) { + xxx_messageInfo_DoubleRange.Merge(m, src) +} +func (m *DoubleRange) XXX_Size() int { + return xxx_messageInfo_DoubleRange.Size(m) +} +func (m *DoubleRange) XXX_DiscardUnknown() { + xxx_messageInfo_DoubleRange.DiscardUnknown(m) +} + +var xxx_messageInfo_DoubleRange proto.InternalMessageInfo + +func (m *DoubleRange) GetStart() float64 { + if m != nil { + return m.Start + } + return 0 +} + +func (m *DoubleRange) GetEnd() float64 { + if m != nil { + return m.End + } + return 0 +} + +func init() { + proto.RegisterType((*Int64Range)(nil), "envoy.type.v3.Int64Range") + proto.RegisterType((*Int32Range)(nil), "envoy.type.v3.Int32Range") + proto.RegisterType((*DoubleRange)(nil), "envoy.type.v3.DoubleRange") +} + +func init() { proto.RegisterFile("envoy/type/v3/range.proto", fileDescriptor_f7428ebfa7846465) } + +var fileDescriptor_f7428ebfa7846465 = []byte{ + // 246 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4c, 0xcd, 0x2b, 0xcb, + 0xaf, 0xd4, 0x2f, 0xa9, 0x2c, 0x48, 0xd5, 0x2f, 0x33, 0xd6, 0x2f, 0x4a, 0xcc, 0x4b, 0x4f, 0xd5, + 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x05, 0x4b, 0xe9, 0x81, 0xa4, 0xf4, 0xca, 0x8c, 0xa5, + 0x64, 0x4b, 0x53, 0x0a, 0x12, 0xf5, 0x13, 0xf3, 0xf2, 0xf2, 0x4b, 0x12, 0x4b, 0x32, 0xf3, 0xf3, + 0x8a, 0xf5, 0x8b, 0x4b, 0x12, 0x4b, 0x4a, 0x8b, 0x21, 0xaa, 0xa5, 0x14, 0x31, 0xa4, 0xcb, 0x52, + 0x8b, 0x8a, 0x33, 0xf3, 0xf3, 0x32, 0xf3, 0xd2, 0x21, 0x4a, 0x94, 0x82, 0xb8, 0xb8, 0x3c, 0xf3, + 0x4a, 0xcc, 0x4c, 0x82, 0x40, 0x96, 0x08, 0x89, 0x70, 0xb1, 0x16, 0x97, 0x24, 0x16, 0x95, 0x48, + 0x30, 0x2a, 0x30, 0x6a, 0x30, 0x07, 0x41, 0x38, 0x42, 0x02, 0x5c, 0xcc, 0xa9, 0x79, 0x29, 0x12, + 0x4c, 0x60, 0x31, 0x10, 0xd3, 0x4a, 0x66, 0xd6, 0xd1, 0x0e, 0x39, 0x71, 0x2e, 0x51, 0x24, 0xd7, + 0x20, 0x4c, 0x81, 0x9a, 0x69, 0x6c, 0x84, 0xc5, 0x4c, 0x56, 0x2c, 0x66, 0xb2, 0xe2, 0x33, 0x13, + 0x6a, 0x8a, 0x52, 0x08, 0x17, 0xb7, 0x4b, 0x7e, 0x69, 0x52, 0x4e, 0x2a, 0x16, 0x43, 0x19, 0xb1, + 0x18, 0xca, 0x08, 0x31, 0x54, 0x16, 0x64, 0xa8, 0x04, 0x97, 0x18, 0x92, 0xa1, 0x48, 0xc6, 0x38, + 0x19, 0xef, 0x6a, 0x38, 0x71, 0x91, 0x8d, 0x49, 0x80, 0x89, 0x4b, 0x3a, 0x33, 0x5f, 0x0f, 0xac, + 0xa8, 0xa0, 0x28, 0xbf, 0xa2, 0x52, 0x0f, 0x25, 0x98, 0x9d, 0xb8, 0xc0, 0xaa, 0x03, 0x40, 0x01, + 0x16, 0xc0, 0x98, 0xc4, 0x06, 0x0e, 0x39, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x76, 0x3b, + 0xb5, 0xf2, 0xa7, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/range.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/range.pb.validate.go new file mode 100644 index 000000000..147d6516d --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/range.pb.validate.go @@ -0,0 +1,242 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/type/v3/range.proto + +package envoy_type_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _range_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on Int64Range with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Int64Range) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Start + + // no validation rules for End + + return nil +} + +// Int64RangeValidationError is the validation error returned by +// Int64Range.Validate if the designated constraints aren't met. +type Int64RangeValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Int64RangeValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Int64RangeValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Int64RangeValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Int64RangeValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Int64RangeValidationError) ErrorName() string { return "Int64RangeValidationError" } + +// Error satisfies the builtin error interface +func (e Int64RangeValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sInt64Range.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Int64RangeValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Int64RangeValidationError{} + +// Validate checks the field values on Int32Range with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *Int32Range) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Start + + // no validation rules for End + + return nil +} + +// Int32RangeValidationError is the validation error returned by +// Int32Range.Validate if the designated constraints aren't met. +type Int32RangeValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Int32RangeValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Int32RangeValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Int32RangeValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Int32RangeValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Int32RangeValidationError) ErrorName() string { return "Int32RangeValidationError" } + +// Error satisfies the builtin error interface +func (e Int32RangeValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sInt32Range.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Int32RangeValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Int32RangeValidationError{} + +// Validate checks the field values on DoubleRange with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *DoubleRange) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Start + + // no validation rules for End + + return nil +} + +// DoubleRangeValidationError is the validation error returned by +// DoubleRange.Validate if the designated constraints aren't met. +type DoubleRangeValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DoubleRangeValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DoubleRangeValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DoubleRangeValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DoubleRangeValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DoubleRangeValidationError) ErrorName() string { return "DoubleRangeValidationError" } + +// Error satisfies the builtin error interface +func (e DoubleRangeValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDoubleRange.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DoubleRangeValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DoubleRangeValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/semantic_version.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/semantic_version.pb.go new file mode 100644 index 000000000..7d92e7bac --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/semantic_version.pb.go @@ -0,0 +1,104 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/type/v3/semantic_version.proto + +package envoy_type_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + proto "github.com/golang/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type SemanticVersion struct { + MajorNumber uint32 `protobuf:"varint,1,opt,name=major_number,json=majorNumber,proto3" json:"major_number,omitempty"` + MinorNumber uint32 `protobuf:"varint,2,opt,name=minor_number,json=minorNumber,proto3" json:"minor_number,omitempty"` + Patch uint32 `protobuf:"varint,3,opt,name=patch,proto3" json:"patch,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SemanticVersion) Reset() { *m = SemanticVersion{} } +func (m *SemanticVersion) String() string { return proto.CompactTextString(m) } +func (*SemanticVersion) ProtoMessage() {} +func (*SemanticVersion) Descriptor() ([]byte, []int) { + return fileDescriptor_5d8ec35e89ef71eb, []int{0} +} + +func (m *SemanticVersion) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SemanticVersion.Unmarshal(m, b) +} +func (m *SemanticVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SemanticVersion.Marshal(b, m, deterministic) +} +func (m *SemanticVersion) XXX_Merge(src proto.Message) { + xxx_messageInfo_SemanticVersion.Merge(m, src) +} +func (m *SemanticVersion) XXX_Size() int { + return xxx_messageInfo_SemanticVersion.Size(m) +} +func (m *SemanticVersion) XXX_DiscardUnknown() { + xxx_messageInfo_SemanticVersion.DiscardUnknown(m) +} + +var xxx_messageInfo_SemanticVersion proto.InternalMessageInfo + +func (m *SemanticVersion) GetMajorNumber() uint32 { + if m != nil { + return m.MajorNumber + } + return 0 +} + +func (m *SemanticVersion) GetMinorNumber() uint32 { + if m != nil { + return m.MinorNumber + } + return 0 +} + +func (m *SemanticVersion) GetPatch() uint32 { + if m != nil { + return m.Patch + } + return 0 +} + +func init() { + proto.RegisterType((*SemanticVersion)(nil), "envoy.type.v3.SemanticVersion") +} + +func init() { + proto.RegisterFile("envoy/type/v3/semantic_version.proto", fileDescriptor_5d8ec35e89ef71eb) +} + +var fileDescriptor_5d8ec35e89ef71eb = []byte{ + // 231 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x49, 0xcd, 0x2b, 0xcb, + 0xaf, 0xd4, 0x2f, 0xa9, 0x2c, 0x48, 0xd5, 0x2f, 0x33, 0xd6, 0x2f, 0x4e, 0xcd, 0x4d, 0xcc, 0x2b, + 0xc9, 0x4c, 0x8e, 0x2f, 0x4b, 0x2d, 0x2a, 0xce, 0xcc, 0xcf, 0xd3, 0x2b, 0x28, 0xca, 0x2f, 0xc9, + 0x17, 0xe2, 0x05, 0xab, 0xd2, 0x03, 0xa9, 0xd2, 0x2b, 0x33, 0x96, 0x92, 0x2d, 0x4d, 0x29, 0x48, + 0xd4, 0x4f, 0xcc, 0xcb, 0xcb, 0x2f, 0x49, 0x2c, 0xc9, 0xcc, 0xcf, 0x2b, 0xd6, 0x2f, 0x2e, 0x49, + 0x2c, 0x29, 0x2d, 0x86, 0xa8, 0x96, 0x52, 0xc4, 0x90, 0x86, 0x9a, 0x96, 0x99, 0x97, 0x0e, 0x51, + 0xa2, 0x34, 0x81, 0x91, 0x8b, 0x3f, 0x18, 0x6a, 0x57, 0x18, 0x44, 0x52, 0x48, 0x91, 0x8b, 0x27, + 0x37, 0x31, 0x2b, 0xbf, 0x28, 0x3e, 0xaf, 0x34, 0x37, 0x29, 0xb5, 0x48, 0x82, 0x51, 0x81, 0x51, + 0x83, 0x37, 0x88, 0x1b, 0x2c, 0xe6, 0x07, 0x16, 0x02, 0x2b, 0xc9, 0xcc, 0x43, 0x28, 0x61, 0x82, + 0x2a, 0x01, 0x89, 0x41, 0x95, 0x88, 0x70, 0xb1, 0x16, 0x24, 0x96, 0x24, 0x67, 0x48, 0x30, 0x83, + 0xe5, 0x20, 0x1c, 0x2b, 0xc5, 0x59, 0x47, 0x3b, 0xe4, 0x64, 0xb8, 0xa4, 0x90, 0xfc, 0x81, 0x66, + 0xbd, 0x93, 0xed, 0xae, 0x86, 0x13, 0x17, 0xd9, 0x98, 0x04, 0x98, 0xb8, 0xa4, 0x33, 0xf3, 0xf5, + 0xc0, 0x0a, 0x0b, 0x8a, 0xf2, 0x2b, 0x2a, 0xf5, 0x50, 0xfc, 0xee, 0x24, 0x82, 0xa6, 0x2f, 0x00, + 0xe4, 0x9f, 0x00, 0xc6, 0x24, 0x36, 0xb0, 0xc7, 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe8, + 0x8d, 0xa3, 0xd0, 0x51, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/semantic_version.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/semantic_version.pb.validate.go new file mode 100644 index 000000000..f2b6bc006 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/semantic_version.pb.validate.go @@ -0,0 +1,108 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/type/v3/semantic_version.proto + +package envoy_type_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _semantic_version_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on SemanticVersion with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *SemanticVersion) Validate() error { + if m == nil { + return nil + } + + // no validation rules for MajorNumber + + // no validation rules for MinorNumber + + // no validation rules for Patch + + return nil +} + +// SemanticVersionValidationError is the validation error returned by +// SemanticVersion.Validate if the designated constraints aren't met. +type SemanticVersionValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e SemanticVersionValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e SemanticVersionValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e SemanticVersionValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e SemanticVersionValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e SemanticVersionValidationError) ErrorName() string { return "SemanticVersionValidationError" } + +// Error satisfies the builtin error interface +func (e SemanticVersionValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSemanticVersion.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = SemanticVersionValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = SemanticVersionValidationError{} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/token_bucket.pb.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/token_bucket.pb.go new file mode 100644 index 000000000..a64e4a439 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/token_bucket.pb.go @@ -0,0 +1,112 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: envoy/type/v3/token_bucket.proto + +package envoy_type_v3 + +import ( + fmt "fmt" + _ "github.com/cncf/udpa/go/udpa/annotations" + _ "github.com/envoyproxy/protoc-gen-validate/validate" + proto "github.com/golang/protobuf/proto" + duration "github.com/golang/protobuf/ptypes/duration" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type TokenBucket struct { + MaxTokens uint32 `protobuf:"varint,1,opt,name=max_tokens,json=maxTokens,proto3" json:"max_tokens,omitempty"` + TokensPerFill *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=tokens_per_fill,json=tokensPerFill,proto3" json:"tokens_per_fill,omitempty"` + FillInterval *duration.Duration `protobuf:"bytes,3,opt,name=fill_interval,json=fillInterval,proto3" json:"fill_interval,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TokenBucket) Reset() { *m = TokenBucket{} } +func (m *TokenBucket) String() string { return proto.CompactTextString(m) } +func (*TokenBucket) ProtoMessage() {} +func (*TokenBucket) Descriptor() ([]byte, []int) { + return fileDescriptor_5b88f84e3f7d4627, []int{0} +} + +func (m *TokenBucket) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TokenBucket.Unmarshal(m, b) +} +func (m *TokenBucket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TokenBucket.Marshal(b, m, deterministic) +} +func (m *TokenBucket) XXX_Merge(src proto.Message) { + xxx_messageInfo_TokenBucket.Merge(m, src) +} +func (m *TokenBucket) XXX_Size() int { + return xxx_messageInfo_TokenBucket.Size(m) +} +func (m *TokenBucket) XXX_DiscardUnknown() { + xxx_messageInfo_TokenBucket.DiscardUnknown(m) +} + +var xxx_messageInfo_TokenBucket proto.InternalMessageInfo + +func (m *TokenBucket) GetMaxTokens() uint32 { + if m != nil { + return m.MaxTokens + } + return 0 +} + +func (m *TokenBucket) GetTokensPerFill() *wrappers.UInt32Value { + if m != nil { + return m.TokensPerFill + } + return nil +} + +func (m *TokenBucket) GetFillInterval() *duration.Duration { + if m != nil { + return m.FillInterval + } + return nil +} + +func init() { + proto.RegisterType((*TokenBucket)(nil), "envoy.type.v3.TokenBucket") +} + +func init() { proto.RegisterFile("envoy/type/v3/token_bucket.proto", fileDescriptor_5b88f84e3f7d4627) } + +var fileDescriptor_5b88f84e3f7d4627 = []byte{ + // 349 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x91, 0xcf, 0x4a, 0x33, 0x31, + 0x14, 0xc5, 0x3b, 0xf3, 0x95, 0xf6, 0x33, 0x75, 0xb0, 0xcc, 0x42, 0xc7, 0x3f, 0x2d, 0xa3, 0x0b, + 0x29, 0x5d, 0x24, 0xd0, 0x59, 0xe9, 0x32, 0x88, 0x50, 0x41, 0x28, 0x45, 0xdd, 0x0e, 0xa9, 0x4d, + 0x4b, 0x68, 0x9a, 0x84, 0x4c, 0x66, 0x6c, 0x77, 0x2e, 0x7d, 0x06, 0x1f, 0xc1, 0x47, 0x70, 0x2f, + 0xb8, 0xf5, 0x49, 0xdc, 0x77, 0x25, 0x93, 0x99, 0x62, 0xa5, 0xbb, 0xc0, 0xf9, 0x9d, 0x93, 0x7b, + 0xee, 0x05, 0x21, 0x15, 0x99, 0x5c, 0x22, 0xb3, 0x54, 0x14, 0x65, 0x11, 0x32, 0x72, 0x46, 0x45, + 0x3c, 0x4a, 0x1f, 0x67, 0xd4, 0x40, 0xa5, 0xa5, 0x91, 0xbe, 0x67, 0x09, 0x98, 0x13, 0x30, 0x8b, + 0x8e, 0xda, 0x53, 0x29, 0xa7, 0x9c, 0x22, 0x2b, 0x8e, 0xd2, 0x09, 0x1a, 0xa7, 0x9a, 0x18, 0x26, + 0x45, 0x81, 0x6f, 0xeb, 0x4f, 0x9a, 0x28, 0x45, 0x75, 0x52, 0xea, 0xad, 0x74, 0xac, 0x08, 0x22, + 0x42, 0x48, 0x63, 0x6d, 0x09, 0x4a, 0x0c, 0x31, 0xe9, 0x5a, 0x3e, 0xdd, 0x92, 0x33, 0xaa, 0x13, + 0x26, 0x05, 0x13, 0xd3, 0x12, 0x39, 0xc8, 0x08, 0x67, 0x63, 0x62, 0x28, 0x5a, 0x3f, 0x0a, 0xe1, + 0xec, 0xdb, 0x01, 0x8d, 0xbb, 0xbc, 0x00, 0xb6, 0xf3, 0xfb, 0xe7, 0x00, 0xcc, 0xc9, 0x22, 0xb6, + 0x9d, 0x92, 0xc0, 0x09, 0x9d, 0x8e, 0x87, 0xeb, 0x2b, 0x5c, 0xed, 0xba, 0x61, 0x65, 0xb8, 0x33, + 0x27, 0x0b, 0x0b, 0x27, 0xfe, 0x2d, 0xd8, 0x2b, 0x98, 0x58, 0x51, 0x1d, 0x4f, 0x18, 0xe7, 0x81, + 0x1b, 0x3a, 0x9d, 0x46, 0xef, 0x04, 0x16, 0x65, 0xe0, 0xba, 0x0c, 0xbc, 0xef, 0x0b, 0x13, 0xf5, + 0x1e, 0x08, 0x4f, 0xe9, 0x6f, 0x94, 0x57, 0xb8, 0x07, 0x54, 0x5f, 0x33, 0xce, 0xfd, 0x1b, 0xe0, + 0xe5, 0x19, 0x31, 0x13, 0x86, 0xea, 0x8c, 0xf0, 0xe0, 0x9f, 0x0d, 0x3b, 0xdc, 0x0a, 0xbb, 0x2a, + 0x37, 0x87, 0xc1, 0x0a, 0xd7, 0xdf, 0x9c, 0xea, 0x7f, 0xa7, 0x5b, 0x19, 0xee, 0xe6, 0xde, 0x7e, + 0x69, 0xbd, 0x6c, 0xbd, 0x7e, 0xbc, 0xb4, 0x03, 0xb0, 0xbf, 0x71, 0x83, 0x8d, 0x86, 0xf8, 0xe2, + 0xfd, 0xf9, 0xf3, 0xab, 0xe6, 0x36, 0x5d, 0x70, 0xcc, 0x24, 0xb4, 0x90, 0xd2, 0x72, 0xb1, 0x84, + 0x7f, 0x6e, 0x86, 0x9b, 0x1b, 0x9e, 0x41, 0xfe, 0xfb, 0xc0, 0x19, 0xd5, 0xec, 0x18, 0xd1, 0x4f, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xe1, 0x2c, 0xa8, 0xc8, 0x01, 0x02, 0x00, 0x00, +} diff --git a/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/token_bucket.pb.validate.go b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/token_bucket.pb.validate.go new file mode 100644 index 000000000..f3b74b9f0 --- /dev/null +++ b/vendor/github.com/envoyproxy/go-control-plane/envoy/type/v3/token_bucket.pb.validate.go @@ -0,0 +1,148 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: envoy/type/v3/token_bucket.proto + +package envoy_type_v3 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/ptypes" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = ptypes.DynamicAny{} +) + +// define the regex for a UUID once up-front +var _token_bucket_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + +// Validate checks the field values on TokenBucket with the rules defined in +// the proto definition for this message. If any rules are violated, an error +// is returned. +func (m *TokenBucket) Validate() error { + if m == nil { + return nil + } + + if m.GetMaxTokens() <= 0 { + return TokenBucketValidationError{ + field: "MaxTokens", + reason: "value must be greater than 0", + } + } + + if wrapper := m.GetTokensPerFill(); wrapper != nil { + + if wrapper.GetValue() <= 0 { + return TokenBucketValidationError{ + field: "TokensPerFill", + reason: "value must be greater than 0", + } + } + + } + + if m.GetFillInterval() == nil { + return TokenBucketValidationError{ + field: "FillInterval", + reason: "value is required", + } + } + + if d := m.GetFillInterval(); d != nil { + dur, err := ptypes.Duration(d) + if err != nil { + return TokenBucketValidationError{ + field: "FillInterval", + reason: "value is not a valid duration", + cause: err, + } + } + + gt := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur <= gt { + return TokenBucketValidationError{ + field: "FillInterval", + reason: "value must be greater than 0s", + } + } + + } + + return nil +} + +// TokenBucketValidationError is the validation error returned by +// TokenBucket.Validate if the designated constraints aren't met. +type TokenBucketValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TokenBucketValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TokenBucketValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TokenBucketValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TokenBucketValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TokenBucketValidationError) ErrorName() string { return "TokenBucketValidationError" } + +// Error satisfies the builtin error interface +func (e TokenBucketValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTokenBucket.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TokenBucketValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TokenBucketValidationError{} diff --git a/vendor/modules.txt b/vendor/modules.txt index 9463d2ae6..da0fb207a 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -125,20 +125,43 @@ github.com/envoyproxy/go-control-plane/envoy/api/v2/core github.com/envoyproxy/go-control-plane/envoy/api/v2/endpoint github.com/envoyproxy/go-control-plane/envoy/api/v2/listener github.com/envoyproxy/go-control-plane/envoy/api/v2/route +github.com/envoyproxy/go-control-plane/envoy/config/accesslog/v3 +github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3 +github.com/envoyproxy/go-control-plane/envoy/config/core/v3 +github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3 github.com/envoyproxy/go-control-plane/envoy/config/filter/accesslog/v2 github.com/envoyproxy/go-control-plane/envoy/config/filter/http/rbac/v2 +github.com/envoyproxy/go-control-plane/envoy/config/filter/listener/tls_inspector/v2 github.com/envoyproxy/go-control-plane/envoy/config/filter/network/http_connection_manager/v2 github.com/envoyproxy/go-control-plane/envoy/config/filter/network/rbac/v2 +github.com/envoyproxy/go-control-plane/envoy/config/filter/network/sni_cluster/v2 github.com/envoyproxy/go-control-plane/envoy/config/filter/network/tcp_proxy/v2 github.com/envoyproxy/go-control-plane/envoy/config/listener/v2 +github.com/envoyproxy/go-control-plane/envoy/config/listener/v3 +github.com/envoyproxy/go-control-plane/envoy/config/metrics/v2 +github.com/envoyproxy/go-control-plane/envoy/config/metrics/v3 github.com/envoyproxy/go-control-plane/envoy/config/rbac/v2 +github.com/envoyproxy/go-control-plane/envoy/config/rbac/v3 +github.com/envoyproxy/go-control-plane/envoy/config/route/v3 github.com/envoyproxy/go-control-plane/envoy/config/trace/v2 -github.com/envoyproxy/go-control-plane/envoy/service/auth/v2 +github.com/envoyproxy/go-control-plane/envoy/config/trace/v3 +github.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/rbac/v3 +github.com/envoyproxy/go-control-plane/envoy/extensions/filters/listener/tls_inspector/v3 +github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3 +github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/rbac/v3 +github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/sni_cluster/v3 +github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/tcp_proxy/v3 +github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3 github.com/envoyproxy/go-control-plane/envoy/service/discovery/v2 +github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3 github.com/envoyproxy/go-control-plane/envoy/type github.com/envoyproxy/go-control-plane/envoy/type/matcher +github.com/envoyproxy/go-control-plane/envoy/type/matcher/v3 github.com/envoyproxy/go-control-plane/envoy/type/metadata/v2 +github.com/envoyproxy/go-control-plane/envoy/type/metadata/v3 github.com/envoyproxy/go-control-plane/envoy/type/tracing/v2 +github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3 +github.com/envoyproxy/go-control-plane/envoy/type/v3 # github.com/envoyproxy/protoc-gen-validate v0.1.0 github.com/envoyproxy/protoc-gen-validate/validate # github.com/fatih/color v1.9.0 diff --git a/website/content/commands/connect/envoy.mdx b/website/content/commands/connect/envoy.mdx index 185ea5bc9..7ec8aae6d 100644 --- a/website/content/commands/connect/envoy.mdx +++ b/website/content/commands/connect/envoy.mdx @@ -74,7 +74,7 @@ proxy configuration needed. allowed to access by [Connect intentions](/docs/connect/intentions). - `-envoy-version` - The version of envoy that is being started. Default is - `1.16.2`. This is required so that the correct configuration can be generated. + `1.17.0`. This is required so that the correct configuration can be generated. - `-no-central-config` - By default the proxy's bootstrap configuration can be customized centrally. This requires that the command run on the same agent diff --git a/website/content/docs/connect/proxies/envoy.mdx b/website/content/docs/connect/proxies/envoy.mdx index a376ec6b1..cd9188588 100644 --- a/website/content/docs/connect/proxies/envoy.mdx +++ b/website/content/docs/connect/proxies/envoy.mdx @@ -35,7 +35,7 @@ compatible Envoy versions. | Consul Version | Compatible Envoy Versions | | ------------------- | -------------------------------- | -| 1.10.x | 1.16.2, 1.15.3, 1.14.6‡ | +| 1.10.x | 1.17.0, 1.16.2, 1.15.3, 1.14.6‡, | | 1.9.x | 1.16.2, 1.15.3, 1.14.6‡, 1.13.7‡ | | 1.8.x | 1.14.6, 1.13.7, 1.12.7, 1.11.2 | | 1.7.x | 1.13.7, 1.12.7, 1.11.2, 1.10.0\* |